diff --git a/ChangeLog b/ChangeLog index 967284b485d..2384178e82c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,67 @@ +2013-08-11 Lars Magne Ingebrigtsen + + * configure.ac: Test for zlib. + +2013-08-10 Eli Zaretskii + + * configure.ac: Define and substitute UPDATE_MANIFEST. + +2013-08-04 Stephen Berman + + * info/dir: Add todo-mode. + +2013-08-04 Paul Eggert + + Fix some minor races in hosts lacking mkostemp (Bug#15015). + Gnulib's emulation of mkostemp doesn't have races that Emacs's does. + * configure.ac (mkostemp): Remove check for this function; + gnulib does the check now. + (mkstemp): Remove check for this no-longer-used function. + * lib/mkostemp.c, lib/secure_getenv.c, lib/tempname.c, lib/tempname.h: + * m4/mkostemp.m4, m4/secure_getenv.m4, m4/tempname.m4: + New files, copied from Gnulib. + * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. + +2013-07-29 Michael Albinus + + * INSTALL (DETAILED BUILDING AND INSTALLATION): Add + --without-file-notification to --without-all. + +2013-07-29 Xue Fuqiao + + * INSTALL: Fix description. + +2013-07-27 Glenn Morris + + * configure.ac: Extend the --with-sound option to allow + specification of OSS or ALSA (see bug#14812#64). + +2013-07-25 Glenn Morris + + * info/dir: Add ido. + + * make-dist: Add a --tests option, to include test/. + +2013-07-24 Glenn Morris + + * configure.ac: Use self-descriptive tags for AC_CONFIG_COMMANDS. + +2013-07-23 Glenn Morris + + * configure.ac (etc, lisp): No need to create specially. + Configure already creates lisp, src/Makefile now creates etc. + +2013-07-23 Paul Eggert + + Port to GNU/Linux systems with tinfo but not ncurses. + * configure.ac (USE_NCURSES): New symbol. + +2013-07-20 Paul Eggert + + Fix array bounds violation when pty allocation fails. + * configure.ac (PTY_TTY_NAME_SPRINTF): Use PTY_NAME_SIZE, + not sizeof pty_name, since pty_name is now a pointer to the array. + 2013-07-13 Paul Eggert * configure.ac: Simplify --with-file-notification handling. @@ -35,7 +99,7 @@ * lib/ignore-value.h: Remove this gnulib-imported file. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. -2013-07-08 Magnus Henoch (tiny change) +2013-07-08 Magnus Henoch (tiny change) * configure.ac (HAVE_IMAGEMAGICK): Check on NS also (Bug#14798). @@ -2001,7 +2065,7 @@ * Makefile.in (install-arch-indep, install-doc, install-info) (uninstall): Scrap superfluous subshells. -2012-05-19 Ulrich Mueller +2012-05-19 Ulrich Müller * Makefile.in (install-etc): Respect DESTDIR. (Bug#11518) @@ -3777,7 +3841,7 @@ * Makefile.in (install-arch-indep, info): Replace MAKEINFO = off with HAVE_MAKEINFO = no. -2010-12-29 Ulrich Mueller +2010-12-29 Ulrich Müller * configure.in: Make gameuser configurable (Bug#7717). @@ -4987,7 +5051,7 @@ * info/dir: Untabify. -2008-11-28 Ulrich Mueller +2008-11-28 Ulrich Müller * configure.in: Fix last change. @@ -5050,7 +5114,7 @@ * configure (*-sunos5*, *-solaris*): Use the new file sol2-10.h. Use sol2-6.h for Solaris 7-9. -2008-10-18 Ulrich Mueller +2008-10-18 Ulrich Müller * configure.in: Add support for GNU/Linux on SuperH. @@ -5134,7 +5198,7 @@ * configure.in (COCOA_EXPERIMENTAL_CTRL_G): Fix 2008-08-04 change. -2008-08-05 Ulrich Mueller +2008-08-05 Ulrich Müller * configure.in: Add checks for krb5_error.text and krb5_error.e_text struct members. @@ -5502,7 +5566,7 @@ * configure.in (--with-gcc): Remove. * INSTALL (DETAILED BUILDING AND INSTALLATION): Remove --with-gcc. -2008-02-05 Ulrich Mueller +2008-02-05 Ulrich Müller * INSTALL: Recommend giflib, not libungif. @@ -5524,7 +5588,7 @@ * configure.in: For libotf and m17n-flt checks, set shell vars HAVE_LIBOTF and HAVE_M17N_FLT instead of pkg_check_libotf and pkg_check_m17n_flt, respectively, for the sake of the summary output. - Reported by Ulrich Mueller. + Reported by Ulrich Müller. 2008-02-02 Eli Zaretskii @@ -5838,7 +5902,7 @@ * configure.in: Put quotes around nested macro calls. -2007-08-31 Ulrich Mueller (tiny change) +2007-08-31 Ulrich Müller (tiny change) * configure.in: Fix typo. * configure: Regenerate. diff --git a/INSTALL b/INSTALL index 28660998721..262928e63ac 100644 --- a/INSTALL +++ b/INSTALL @@ -70,24 +70,17 @@ sections if you need to. you, but there are no obvious errors, assume that `configure' did its job and proceed. - 4. If you need to run the `configure' script more than once (e.g., - with some non-default options), always clean the source - directories before running `configure' again: - - make distclean - ./configure - - 5. Invoke the `make' program: + 4. Invoke the `make' program: make - 6. If `make' succeeds, it will build an executable program `emacs' + 5. If `make' succeeds, it will build an executable program `emacs' in the `src' directory. You can try this program, to make sure it works: src/emacs -Q - 7. Assuming that the program `src/emacs' starts and displays its + 6. Assuming that the program `src/emacs' starts and displays its opening screen, you can install the program and its auxiliary files into their installation directories: @@ -101,6 +94,10 @@ sections if you need to. You can delete the entire build directory if you do not plan to build Emacs again, but it can be useful to keep for debugging. + If you want to build Emacs again with different configure options, + first clean the source directories: + + make distclean Note that the install automatically saves space by compressing (provided you have the `gzip' program) those installed Lisp source (.el) @@ -326,14 +323,15 @@ equivalent to --without-sound --without-dbus --without-libotf --without-selinux --without-xft --without-gsettings --without-gnutls --without-rsvg --without-xml2 --without-gconf --without-imagemagick --without-m17n-flt --without-jpeg --without-tiff --without-gif ---without-png --without-gpm. Note that --without-all leaves X support -enabled, and using the GTK2 or GTK3 toolkit creates a lot of library -dependencies. So if you want to build a small executable with very basic -X support, use --without-all --with-x-toolkit=no. For the smallest possible -executable without X, use --without-all --without-x. If you want to build -with just a few features enabled, you can combine --without-all with ---with-FEATURE. For example, you can use --without-all --with-dbus -to build with DBus support and nothing more. +--without-png --without-gpm --without-file-notification. Note that +--without-all leaves X support enabled, and using the GTK2 or GTK3 +toolkit creates a lot of library dependencies. So if you want to +build a small executable with very basic X support, use --without-all +--with-x-toolkit=no. For the smallest possible executable without X, +use --without-all --without-x. If you want to build with just a few +features enabled, you can combine --without-all with --with-FEATURE. +For example, you can use --without-all --with-dbus to build with DBus +support and nothing more. Use --with-wide-int to implement Emacs values with the type 'long long', even on hosts where a narrower type would do. With this option, on a diff --git a/Makefile.in b/Makefile.in index a5accbf04a9..dad0a571075 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,6 +1,4 @@ -# DIST: This is the distribution Makefile for Emacs. configure can -# DIST: make most of the changes to this file you might want, so try -# DIST: that first. +### @configure_input@ # Copyright (C) 1992-2013 Free Software Foundation, Inc. diff --git a/admin/ChangeLog b/admin/ChangeLog index cbcd698e8b1..791dbbc5989 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,12 @@ +2013-08-10 Xue Fuqiao + + * notes/hydra: New file. + +2013-08-04 Paul Eggert + + Fix some minor races in hosts lacking mkostemp (Bug#15015). + * merge-gnulib (GNULIB_MODULES): Add mkostemp. + 2013-07-12 Glenn Morris * admin.el (manual-style-string): Use non-abbreviated url. diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 005c6694228..3172854ede7 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -144,6 +144,8 @@ General steps (for each step, check for possible errors): Download them and check the signatures. Check they build. 12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. + Probably should also include the platform-testers list: + https://lists.gnu.org/mailman/listinfo/platform-testers For a release, also announce it on info-gnu@gnu.org. (Probably bcc the info- addresses to make it less likely that people will followup on those lists.) diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 82e0cd77fca..97126704d10 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -32,7 +32,7 @@ GNULIB_MODULES=' fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat - manywarnings memrchr mktime + manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat diff --git a/admin/notes/hydra b/admin/notes/hydra new file mode 100644 index 00000000000..776c1e2c680 --- /dev/null +++ b/admin/notes/hydra @@ -0,0 +1,57 @@ +-*- outline -*- + +Copyright (C) 2013 Free Software Foundation, Inc. +See the end of the file for license conditions. + +NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA + +A continuous build for Emacs trunk can be found at +http://hydra.nixos.org/jobset/gnu/emacs-trunk + +* It builds (and runs ERT tests) on these platforms: +i686-cygwin +i686-freebsd +i686-linux +x86_64-darwin +x86_64-linux + +* Mail notifications +Hydra sends notifications about build breakages in Emacs trunk to +emacs-buildstatus@gnu.org. + +If you want to receive these notifications, please subscribe at +http://lists.gnu.org/mailman/listinfo/emacs-buildstatus + +* The Emacs jobset consists of the following jobs: + +** The `tarball' job +which gets the source tree as input, and is just a `make dist' after +some autoconf/-make or bootstrap script. + +** The `build' job +which gets the result of the tarball job as input, together with +system identifier, this job basically does a normal make, make check, +make install. + +** The 'coverage' job +is now running `make check'. + +* Other GNU packages +For a list of other GNU packages that have a continuous build on +Hydra, see http://hydra.nixos.org/project/gnu + + +This file is part of GNU Emacs. + +GNU Emacs is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs. If not, see . diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index 49cd9bb6d3a..c759079a49a 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -1,4 +1,4 @@ -# Makefile -- Makefile to generate character property tables. +### @configure_input@ # Copyright (C) 2012-2013 Free Software Foundation, Inc. diff --git a/autogen/Makefile.in b/autogen/Makefile.in index d471a9eeb18..af3dbeaf264 100644 --- a/autogen/Makefile.in +++ b/autogen/Makefile.in @@ -59,7 +59,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=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --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 faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv 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=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --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 faccessat fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync getloadavg getopt-gnu gettime gettimeofday intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat sig2str socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub unsetenv utimens warnings VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -202,14 +202,14 @@ DIST_COMMON = $(srcdir)/../nt/gnulib.mk $(srcdir)/Makefile.am \ @BUILDING_FOR_WINDOWSNT_FALSE@ getopt_int.h gettimeofday.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ group-member.c intprops.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ inttypes.in.h lstat.c memrchr.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ mktime-internal.h mktime.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ openat.h pathmax.h pselect.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ pthread_sigmask.c putenv.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ acl-internal.h acl.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ mkostemp.c mktime-internal.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ mktime.c openat.h pathmax.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ pselect.c pthread_sigmask.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ putenv.c acl-internal.h acl.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ acl_entries.c readlink.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ at-func.c readlinkat.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ root-uid.h sig2str.c sig2str.h \ -@BUILDING_FOR_WINDOWSNT_FALSE@ signal.in.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ root-uid.h secure_getenv.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ sig2str.c sig2str.h signal.in.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ $(top_srcdir)/build-aux/snippet/c++defs.h \ @@ -224,12 +224,13 @@ DIST_COMMON = $(srcdir)/../nt/gnulib.mk $(srcdir)/Makefile.am \ @BUILDING_FOR_WINDOWSNT_FALSE@ strtoimax.c strtoumax.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ symlink.c sys_select.in.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ sys_stat.in.h sys_time.in.h \ -@BUILDING_FOR_WINDOWSNT_FALSE@ time.in.h time_r.c timespec.h \ -@BUILDING_FOR_WINDOWSNT_FALSE@ u64.h unistd.in.h unsetenv.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ utimens.h verify.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ tempname.h time.in.h time_r.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ timespec.h u64.h unistd.in.h \ +@BUILDING_FOR_WINDOWSNT_FALSE@ unsetenv.c utimens.h verify.h \ @BUILDING_FOR_WINDOWSNT_FALSE@ xalloc-oversized.h @BUILDING_FOR_WINDOWSNT_FALSE@@gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36_TRUE@am__append_10 = gettext.h @BUILDING_FOR_WINDOWSNT_FALSE@am__append_11 = sys sys +@BUILDING_FOR_WINDOWSNT_FALSE@@gl_GNULIB_ENABLED_tempname_TRUE@am__append_12 = tempname.c subdir = lib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ @@ -255,33 +256,35 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/manywarnings.m4 \ $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/memrchr.m4 \ - $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/multiarch.m4 \ - $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \ - $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/pipe2.m4 \ - $(top_srcdir)/m4/pselect.m4 \ + $(top_srcdir)/m4/mkostemp.m4 $(top_srcdir)/m4/mktime.m4 \ + $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nocrash.m4 \ + $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/pathmax.m4 \ + $(top_srcdir)/m4/pipe2.m4 $(top_srcdir)/m4/pselect.m4 \ $(top_srcdir)/m4/pthread_sigmask.m4 $(top_srcdir)/m4/putenv.m4 \ $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \ - $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/sha1.m4 \ - $(top_srcdir)/m4/sha256.m4 $(top_srcdir)/m4/sha512.m4 \ - $(top_srcdir)/m4/sig2str.m4 $(top_srcdir)/m4/signal_h.m4 \ - $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/ssize_t.m4 \ - $(top_srcdir)/m4/st_dm_mode.m4 $(top_srcdir)/m4/stat-time.m4 \ - $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \ - $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \ - $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ - $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ - $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/string_h.m4 \ - $(top_srcdir)/m4/strtoimax.m4 $(top_srcdir)/m4/strtoll.m4 \ - $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/strtoumax.m4 \ - $(top_srcdir)/m4/symlink.m4 $(top_srcdir)/m4/sys_select_h.m4 \ + $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/setenv.m4 \ + $(top_srcdir)/m4/sha1.m4 $(top_srcdir)/m4/sha256.m4 \ + $(top_srcdir)/m4/sha512.m4 $(top_srcdir)/m4/sig2str.m4 \ + $(top_srcdir)/m4/signal_h.m4 $(top_srcdir)/m4/socklen.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/st_dm_mode.m4 \ + $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.m4 \ + $(top_srcdir)/m4/stdalign.m4 $(top_srcdir)/m4/stdarg.m4 \ + $(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \ + $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ + $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strftime.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strtoimax.m4 \ + $(top_srcdir)/m4/strtoll.m4 $(top_srcdir)/m4/strtoull.m4 \ + $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \ + $(top_srcdir)/m4/sys_select_h.m4 \ $(top_srcdir)/m4/sys_socket_h.m4 \ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ - $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ - $(top_srcdir)/m4/timer_time.m4 $(top_srcdir)/m4/timespec.m4 \ - $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \ - $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \ - $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/warnings.m4 \ - $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/configure.ac + $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \ + $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timer_time.m4 \ + $(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ + $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/utimbuf.m4 \ + $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes.m4 \ + $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_t.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -296,10 +299,11 @@ am__libgnu_a_SOURCES_DIST = allocator.c binary-io.h binary-io.c \ careadlinkat.c close-stream.c md5.c sha1.c sha256.c sha512.c \ dtoastr.c dtotimespec.c filemode.c gettext.h gettime.c pipe2.c \ acl-errno-valid.c file-has-acl.c qcopy-acl.c qset-acl.c \ - stat-time.c strftime.c timespec.c timespec-add.c \ + stat-time.c strftime.c tempname.c timespec.c timespec-add.c \ timespec-sub.c u64.c unistd.c utimens.c openat-die.c \ save-cwd.c am__objects_1 = +@BUILDING_FOR_WINDOWSNT_FALSE@@gl_GNULIB_ENABLED_tempname_TRUE@am__objects_2 = tempname.$(OBJEXT) @BUILDING_FOR_WINDOWSNT_FALSE@am_libgnu_a_OBJECTS = \ @BUILDING_FOR_WINDOWSNT_FALSE@ allocator.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_FALSE@ binary-io.$(OBJEXT) \ @@ -323,6 +327,7 @@ am__objects_1 = @BUILDING_FOR_WINDOWSNT_FALSE@ qset-acl.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_FALSE@ stat-time.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_FALSE@ strftime.$(OBJEXT) \ +@BUILDING_FOR_WINDOWSNT_FALSE@ $(am__objects_2) \ @BUILDING_FOR_WINDOWSNT_FALSE@ timespec.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_FALSE@ timespec-add.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_FALSE@ timespec-sub.$(OBJEXT) \ @@ -350,15 +355,16 @@ am__objects_1 = @BUILDING_FOR_WINDOWSNT_TRUE@ timespec-add.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_TRUE@ timespec-sub.$(OBJEXT) \ @BUILDING_FOR_WINDOWSNT_TRUE@ u64.$(OBJEXT) utimens.$(OBJEXT) \ -@BUILDING_FOR_WINDOWSNT_TRUE@ $(am__objects_1) +@BUILDING_FOR_WINDOWSNT_TRUE@ $(am__objects_1) $(am__objects_2) am__EXTRA_libgnu_a_SOURCES_DIST = openat-proc.c ftoastr.c dup2.c \ euidaccess.c execinfo.c at-func.c faccessat.c fcntl.c \ fdatasync.c fdopendir.c fpending.c fstatat.c fsync.c \ getdtablesize.c getgroups.c getloadavg.c getopt.c getopt1.c \ - gettimeofday.c group-member.c lstat.c memrchr.c mktime.c \ - pselect.c pthread_sigmask.c putenv.c acl_entries.c readlink.c \ - readlinkat.c sig2str.c stat.c strtoimax.c strtol.c strtoll.c \ - strtoul.c strtoull.c strtoumax.c symlink.c time_r.c unsetenv.c + gettimeofday.c group-member.c lstat.c memrchr.c mkostemp.c \ + mktime.c pselect.c pthread_sigmask.c putenv.c acl_entries.c \ + readlink.c readlinkat.c secure_getenv.c sig2str.c stat.c \ + strtoimax.c strtol.c strtoll.c strtoul.c strtoull.c \ + strtoumax.c symlink.c time_r.c unsetenv.c libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles @@ -1123,6 +1129,7 @@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNEXEC_OBJ = @UNEXEC_OBJ@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +UPDATE_MANIFEST = @UPDATE_MANIFEST@ USE_ACL = @USE_ACL@ VERSION = @VERSION@ VMLIMIT_OBJ = @VMLIMIT_OBJ@ @@ -1248,10 +1255,10 @@ DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src @BUILDING_FOR_WINDOWSNT_FALSE@ acl-errno-valid.c file-has-acl.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ qcopy-acl.c qset-acl.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ stat-time.c strftime.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ timespec.c timespec-add.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ timespec-sub.c u64.c unistd.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ utimens.c openat-die.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ save-cwd.c +@BUILDING_FOR_WINDOWSNT_FALSE@ $(am__append_12) timespec.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ timespec-add.c timespec-sub.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ u64.c unistd.c utimens.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ openat-die.c save-cwd.c @BUILDING_FOR_WINDOWSNT_TRUE@libgnu_a_SOURCES = c-ctype.h c-ctype.c \ @BUILDING_FOR_WINDOWSNT_TRUE@ c-strcase.h c-strcasecmp.c \ @BUILDING_FOR_WINDOWSNT_TRUE@ c-strncasecmp.c close-stream.c \ @@ -1262,7 +1269,8 @@ DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src @BUILDING_FOR_WINDOWSNT_TRUE@ file-has-acl.c qcopy-acl.c \ @BUILDING_FOR_WINDOWSNT_TRUE@ stat-time.c strftime.c timespec.c \ @BUILDING_FOR_WINDOWSNT_TRUE@ timespec-add.c timespec-sub.c \ -@BUILDING_FOR_WINDOWSNT_TRUE@ u64.c utimens.c $(am__append_10) +@BUILDING_FOR_WINDOWSNT_TRUE@ u64.c utimens.c $(am__append_10) \ +@BUILDING_FOR_WINDOWSNT_TRUE@ $(am__append_12) @BUILDING_FOR_WINDOWSNT_FALSE@libgnu_a_LIBADD = $(gl_LIBOBJS) @BUILDING_FOR_WINDOWSNT_TRUE@libgnu_a_LIBADD = $(gl_LIBOBJS) @BUILDING_FOR_WINDOWSNT_FALSE@libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @@ -1276,11 +1284,12 @@ DEFAULT_INCLUDES = -I. -I$(top_srcdir)/lib -I../src -I$(top_srcdir)/src @BUILDING_FOR_WINDOWSNT_FALSE@ getgroups.c getloadavg.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ getopt.c getopt1.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ gettimeofday.c group-member.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ lstat.c memrchr.c mktime.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ pselect.c pthread_sigmask.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ putenv.c acl_entries.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ readlink.c at-func.c \ -@BUILDING_FOR_WINDOWSNT_FALSE@ readlinkat.c sig2str.c stat.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ lstat.c memrchr.c mkostemp.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ mktime.c pselect.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ pthread_sigmask.c putenv.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ acl_entries.c readlink.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ at-func.c readlinkat.c \ +@BUILDING_FOR_WINDOWSNT_FALSE@ secure_getenv.c sig2str.c stat.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ strtoimax.c strtol.c strtoll.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ strtol.c strtoul.c strtoull.c \ @BUILDING_FOR_WINDOWSNT_FALSE@ strtoimax.c strtoumax.c \ @@ -1402,6 +1411,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkostemp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@ @@ -1414,6 +1424,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secure_getenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512.Po@am__quote@ @@ -1428,6 +1439,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoull.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoumax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec-add.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec-sub.Po@am__quote@ diff --git a/autogen/aclocal.m4 b/autogen/aclocal.m4 index c9e796a081f..5beeef676cc 100644 --- a/autogen/aclocal.m4 +++ b/autogen/aclocal.m4 @@ -1024,6 +1024,7 @@ m4_include([m4/lstat.m4]) m4_include([m4/manywarnings.m4]) m4_include([m4/md5.m4]) m4_include([m4/memrchr.m4]) +m4_include([m4/mkostemp.m4]) m4_include([m4/mktime.m4]) m4_include([m4/multiarch.m4]) m4_include([m4/nocrash.m4]) @@ -1035,6 +1036,7 @@ m4_include([m4/pthread_sigmask.m4]) m4_include([m4/putenv.m4]) m4_include([m4/readlink.m4]) m4_include([m4/readlinkat.m4]) +m4_include([m4/secure_getenv.m4]) m4_include([m4/setenv.m4]) m4_include([m4/sha1.m4]) m4_include([m4/sha256.m4]) @@ -1064,6 +1066,7 @@ m4_include([m4/sys_select_h.m4]) m4_include([m4/sys_socket_h.m4]) m4_include([m4/sys_stat_h.m4]) m4_include([m4/sys_time_h.m4]) +m4_include([m4/tempname.m4]) m4_include([m4/time_h.m4]) m4_include([m4/time_r.m4]) m4_include([m4/timer_time.m4]) diff --git a/autogen/config.in b/autogen/config.in index 3fe82ce0f92..b996a5f071e 100644 --- a/autogen/config.in +++ b/autogen/config.in @@ -192,6 +192,10 @@ along with GNU Emacs. If not, see . */ whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module mkostemp shall be considered present. */ +#undef GNULIB_MKOSTEMP + /* enable some gnulib portability checks */ #undef GNULIB_PORTCHECK @@ -625,6 +629,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the `issetugid' function. */ +#undef HAVE_ISSETUGID + /* Define to 1 if you have the jpeg library (-ljpeg). */ #undef HAVE_JPEG @@ -753,9 +760,6 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `mkostemp' function. */ #undef HAVE_MKOSTEMP -/* Define to 1 if you have the `mkstemp' function. */ -#undef HAVE_MKSTEMP - /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP @@ -847,6 +851,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if using librsvg. */ #undef HAVE_RSVG +/* Define to 1 if you have the `secure_getenv' function. */ +#undef HAVE_SECURE_GETENV + /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT @@ -1201,6 +1208,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if you have the `__fpending' function. */ #undef HAVE___FPENDING +/* Define to 1 if you have the `__secure_getenv' function. */ +#undef HAVE___SECURE_GETENV + /* Define to support using a Hesiod database to find the POP server. */ #undef HESIOD @@ -1468,6 +1478,9 @@ along with GNU Emacs. If not, see . */ /* Define to 1 if using the Motif X toolkit. */ #undef USE_MOTIF +/* Define to 1 if you use ncurses. */ +#undef USE_NCURSES + /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE diff --git a/autogen/configure b/autogen/configure index 50786ead7a5..c319167fc51 100755 --- a/autogen/configure +++ b/autogen/configure @@ -614,12 +614,16 @@ LIBGNU_LIBDEPS gltests_WITNESS gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_FALSE gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_TRUE +gl_GNULIB_ENABLED_tempname_FALSE +gl_GNULIB_ENABLED_tempname_TRUE gl_GNULIB_ENABLED_strtoull_FALSE gl_GNULIB_ENABLED_strtoull_TRUE gl_GNULIB_ENABLED_strtoll_FALSE gl_GNULIB_ENABLED_strtoll_TRUE gl_GNULIB_ENABLED_stat_FALSE gl_GNULIB_ENABLED_stat_TRUE +gl_GNULIB_ENABLED_secure_getenv_FALSE +gl_GNULIB_ENABLED_secure_getenv_TRUE gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_FALSE gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_TRUE gl_GNULIB_ENABLED_pathmax_FALSE @@ -1364,6 +1368,7 @@ FIRSTFILE_OBJ W32_RES_LINK CLIENTW CLIENTRES +UPDATE_MANIFEST EMACS_MANIFEST EMACSRES W32_LIBS @@ -2233,7 +2238,9 @@ Optional Packages: --with-mail-unlink unlink, rather than empty, mail spool after reading --with-mailhost=HOSTNAME string giving default POP mail host - --without-sound don't compile with sound support + --with-sound=VALUE compile with sound support (VALUE one of: yes, + ossaudio, alsa, no; default yes). Only for + GNU/Linux, FreeBSD, NetBSD, MinGW. --with-x-toolkit=KIT use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no) --with-wide-int prefer wide Emacs integers (typically 62-bit) @@ -3388,6 +3395,7 @@ as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" as_fn_append ac_header_list " inttypes.h" as_fn_append ac_func_list " lstat" +as_fn_append ac_func_list " mkostemp" as_fn_append ac_func_list " pipe2" as_fn_append ac_header_list " sys/select.h" as_fn_append ac_func_list " pselect" @@ -3405,6 +3413,7 @@ as_fn_append ac_func_list " futimens" as_fn_append ac_func_list " utimensat" as_fn_append ac_func_list " lutimes" as_fn_append ac_func_list " getdtablesize" +as_fn_append ac_func_list " secure_getenv" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false @@ -4116,9 +4125,16 @@ fi # Check whether --with-sound was given. if test "${with_sound+set}" = set; then : - withval=$with_sound; + withval=$with_sound; case "${withval}" in + yes|no|ossaudio|alsa) val=$withval ;; + *) as_fn_error "\`--with-sound=$withval' is invalid; +this option's value should be \`yes', \`no', \`ossaudio', or \`alsa'." "$LINENO" 5 + ;; + esac + with_sound=$val + else - with_sound=$with_features + with_sound=$with_features fi @@ -7277,6 +7293,7 @@ esac # Code from module lstat: # Code from module manywarnings: # Code from module memrchr: + # Code from module mkostemp: # Code from module mktime: # Code from module multiarch: # Code from module nocrash: @@ -7290,6 +7307,7 @@ esac # Code from module readlink: # Code from module readlinkat: # Code from module root-uid: + # Code from module secure_getenv: # Code from module sig2str: # Code from module signal-h: # Code from module snippet/_Noreturn: @@ -7320,6 +7338,7 @@ esac # Code from module sys_select: # Code from module sys_stat: # Code from module sys_time: + # Code from module tempname: # Code from module time: # Code from module time_r: # Code from module timer-time: @@ -8995,6 +9014,7 @@ fi +HAVE_SOUND=no if test "${with_sound}" != "no"; then # Sound support for GNU/Linux, the free BSDs, and MinGW. for ac_header in machine/soundcard.h sys/soundcard.h soundcard.h @@ -9017,8 +9037,9 @@ fi done - # Emulation library used on NetBSD. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _oss_ioctl in -lossaudio" >&5 + if test "${with_sound}" = "ossaudio" || test "${with_sound}" = "yes"; then + # Emulation library used on NetBSD. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _oss_ioctl in -lossaudio" >&5 $as_echo_n "checking for _oss_ioctl in -lossaudio... " >&6; } if test "${ac_cv_lib_ossaudio__oss_ioctl+set}" = set; then : $as_echo_n "(cached) " >&6 @@ -9060,10 +9081,14 @@ else LIBSOUND= fi + test "${with_sound}" = "ossaudio" && test -z "$LIBSOUND" && \ + as_fn_error "ossaudio sound support requested but not found." "$LINENO" 5 + fi - ALSA_REQUIRED=1.0.0 - ALSA_MODULES="alsa >= $ALSA_REQUIRED" + if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then + ALSA_REQUIRED=1.0.0 + ALSA_MODULES="alsa >= $ALSA_REQUIRED" succeeded=no @@ -9115,12 +9140,12 @@ $as_echo "no" >&6; } HAVE_ALSA=no fi - if test $HAVE_ALSA = yes; then - SAVE_CFLAGS="$CFLAGS" - SAVE_LIBS="$LIBS" - CFLAGS="$ALSA_CFLAGS $CFLAGS" - LIBS="$ALSA_LIBS $LIBS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test $HAVE_ALSA = yes; then + SAVE_CFLAGS="$CFLAGS" + SAVE_LIBS="$LIBS" + CFLAGS="$ALSA_CFLAGS $CFLAGS" + LIBS="$ALSA_LIBS $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -9137,8 +9162,8 @@ else emacs_alsa_normal=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$emacs_alsa_normal" != yes; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$emacs_alsa_normal" != yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -9155,27 +9180,30 @@ else emacs_alsa_subdir=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$emacs_alsa_subdir" != yes; then - as_fn_error "pkg-config found alsa, but it does not compile. See config.log for error messages." "$LINENO" 5 + if test "$emacs_alsa_subdir" != yes; then + as_fn_error "pkg-config found alsa, but it does not compile. See config.log for error messages." "$LINENO" 5 + fi + ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" fi - ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" - fi - CFLAGS="$SAVE_CFLAGS" - LIBS="$SAVE_LIBS" - LIBSOUND="$LIBSOUND $ALSA_LIBS" - CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS" + CFLAGS="$SAVE_CFLAGS" + LIBS="$SAVE_LIBS" + LIBSOUND="$LIBSOUND $ALSA_LIBS" + CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS" $as_echo "#define HAVE_ALSA 1" >>confdefs.h + elif test "${with_sound}" = "alsa"; then + as_fn_error "ALSA sound support requested but not found." "$LINENO" 5 + fi fi - - if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then + if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then case "$opsys" in - gnu-linux|freebsd|netbsd|mingw32) + gnu-linux|freebsd|netbsd|mingw32) $as_echo "#define HAVE_SOUND 1" >>confdefs.h + HAVE_SOUND=yes ;; esac fi @@ -10053,6 +10081,7 @@ CLIENTRES= CLIENTW= W32_RES_LINK= EMACS_MANIFEST= +UPDATE_MANIFEST= if test "${with_w32}" != no; then case "${opsys}" in cygwin) @@ -10216,6 +10245,7 @@ fi x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;; *) EMACS_MANIFEST="emacs-x86.manifest" ;; esac + UPDATE_MANIFEST=update-game-score.exe.manifest if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" @@ -10253,6 +10283,7 @@ fi + if test "${HAVE_W32}" = "yes"; then window_system=w32 with_xft=no @@ -14674,7 +14705,7 @@ select getpagesize setlocale \ getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ -gai_strerror mkostemp mkstemp getline getdelim sync \ +gai_strerror getline getdelim sync \ difftime posix_memalign \ getpwent endpwent getgrent endgrent \ touchlock \ @@ -15022,6 +15053,11 @@ $as_echo "#define TERMINFO 1" >>confdefs.h TERMCAP_OBJ=terminfo.o fi +if test "X$LIBS_TERMCAP" = "X-lncurses"; then + +$as_echo "#define USE_NCURSES 1" >>confdefs.h + +fi @@ -16442,7 +16478,7 @@ $as_echo "#define UNIX98_PTYS 1" >>confdefs.h $as_echo "#define PTY_ITERATION int i; for (i = 0; i < 1; i++)" >>confdefs.h - $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h + $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, \"%s\", ptyname); }" >>confdefs.h if test "x$ac_cv_func_posix_openpt" = xyes; then $as_echo "#define PTY_OPEN fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY)" >>confdefs.h @@ -16487,12 +16523,12 @@ $as_echo "#define UNIX98_PTYS 1" >>confdefs.h ;; sol2* ) - $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h + $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, \"%s\", ptyname); }" >>confdefs.h ;; unixware ) - $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal(\"could not grant slave pty\"); if (unlockpt(fd) == -1) fatal(\"could not unlock slave pty\"); if (!(ptyname = ptsname(fd))) fatal (\"could not enable slave pty\"); snprintf (pty_name, sizeof pty_name, \"%s\", ptyname); }" >>confdefs.h + $as_echo "#define PTY_TTY_NAME_SPRINTF { char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal(\"could not grant slave pty\"); if (unlockpt(fd) == -1) fatal(\"could not unlock slave pty\"); if (!(ptyname = ptsname(fd))) fatal (\"could not enable slave pty\"); snprintf (pty_name, PTY_NAME_SIZE, \"%s\", ptyname); }" >>confdefs.h ;; esac @@ -20680,6 +20716,8 @@ cat >>confdefs.h <<_ACEOF _ACEOF + + GNULIB_MKTIME=0; GNULIB_NANOSLEEP=0; GNULIB_STRPTIME=0; @@ -21909,6 +21947,8 @@ _ACEOF + + if false; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' @@ -24067,6 +24107,48 @@ done + if test $ac_cv_func_mkostemp != yes; then + HAVE_MKOSTEMP=0 + fi + + if test $HAVE_MKOSTEMP = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS mkostemp.$ac_objext" + + + + fi + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_MKOSTEMP 1 +_ACEOF + + + + + + + + GNULIB_MKOSTEMP=1 + + + + + + + + + + + if test $APPLE_UNIVERSAL_BUILD = 1; then # A universal build on Apple Mac OS X platforms. # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode. @@ -27470,9 +27552,11 @@ $as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=false gl_gnulib_enabled_pathmax=false gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false + gl_gnulib_enabled_secure_getenv=false gl_gnulib_enabled_stat=false gl_gnulib_enabled_strtoll=false gl_gnulib_enabled_strtoull=false + gl_gnulib_enabled_tempname=false gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b () { @@ -28073,6 +28157,70 @@ fi gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=true fi } + func_gl_gnulib_m4code_secure_getenv () + { + if ! $gl_gnulib_enabled_secure_getenv; then + + + + + + if test $ac_cv_func_secure_getenv = no; then + HAVE_SECURE_GETENV=0 + fi + + if test $HAVE_SECURE_GETENV = 0; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS secure_getenv.$ac_objext" + + + for ac_func in __secure_getenv +do : + ac_fn_c_check_func "$LINENO" "__secure_getenv" "ac_cv_func___secure_getenv" +if test "x$ac_cv_func___secure_getenv" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE___SECURE_GETENV 1 +_ACEOF + +fi +done + + if test $ac_cv_func___secure_getenv = no; then + for ac_func in issetugid +do : + ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid" +if test "x$ac_cv_func_issetugid" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ISSETUGID 1 +_ACEOF + +fi +done + + fi + + fi + + + + + + GNULIB_SECURE_GETENV=1 + + + + + + gl_gnulib_enabled_secure_getenv=true + fi + } func_gl_gnulib_m4code_stat () { if ! $gl_gnulib_enabled_stat; then @@ -28317,6 +28465,18 @@ done gl_gnulib_enabled_strtoull=true fi } + func_gl_gnulib_m4code_tempname () + { + if ! $gl_gnulib_enabled_tempname; then + + + : + + + gl_gnulib_enabled_tempname=true + func_gl_gnulib_m4code_secure_getenv + fi + } func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec () { if ! $gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec; then @@ -28359,6 +28519,9 @@ done if test $REPLACE_LSTAT = 1; then func_gl_gnulib_m4code_stat fi + if test $HAVE_MKOSTEMP = 0; then + func_gl_gnulib_m4code_tempname + fi if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then func_gl_gnulib_m4code_stat fi @@ -28458,6 +28621,14 @@ else gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_FALSE= fi + if $gl_gnulib_enabled_secure_getenv; then + gl_GNULIB_ENABLED_secure_getenv_TRUE= + gl_GNULIB_ENABLED_secure_getenv_FALSE='#' +else + gl_GNULIB_ENABLED_secure_getenv_TRUE='#' + gl_GNULIB_ENABLED_secure_getenv_FALSE= +fi + if $gl_gnulib_enabled_stat; then gl_GNULIB_ENABLED_stat_TRUE= gl_GNULIB_ENABLED_stat_FALSE='#' @@ -28482,6 +28653,14 @@ else gl_GNULIB_ENABLED_strtoull_FALSE= fi + if $gl_gnulib_enabled_tempname; then + gl_GNULIB_ENABLED_tempname_TRUE= + gl_GNULIB_ENABLED_tempname_FALSE='#' +else + gl_GNULIB_ENABLED_tempname_TRUE='#' + gl_GNULIB_ENABLED_tempname_FALSE= +fi + if $gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec; then gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_TRUE= gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_FALSE='#' @@ -28674,6 +28853,8 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}" +echo " Does Emacs support sound? ${HAVE_SOUND}" + echo " Does Emacs use -lgpm? ${HAVE_GPM}" echo " Does Emacs use -ldbus? ${HAVE_DBUS}" echo " Does Emacs use -lgconf? ${HAVE_GCONF}" @@ -28768,13 +28949,10 @@ SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e -ac_config_commands="$ac_config_commands mkdirs" +ac_config_commands="$ac_config_commands src/epaths.h" -ac_config_commands="$ac_config_commands epaths" - - -ac_config_commands="$ac_config_commands gdbinit" +ac_config_commands="$ac_config_commands src/.gdbinit" cat >confcache <<\_ACEOF @@ -28971,6 +29149,10 @@ if test -z "${gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c_TRUE}" && test as_fn_error "conditional \"gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_secure_getenv_TRUE}" && test -z "${gl_GNULIB_ENABLED_secure_getenv_FALSE}"; then + as_fn_error "conditional \"gl_GNULIB_ENABLED_secure_getenv\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_stat_TRUE}" && test -z "${gl_GNULIB_ENABLED_stat_FALSE}"; then as_fn_error "conditional \"gl_GNULIB_ENABLED_stat\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -28983,6 +29165,10 @@ if test -z "${gl_GNULIB_ENABLED_strtoull_TRUE}" && test -z "${gl_GNULIB_ENABLED_ as_fn_error "conditional \"gl_GNULIB_ENABLED_strtoull\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${gl_GNULIB_ENABLED_tempname_TRUE}" && test -z "${gl_GNULIB_ENABLED_tempname_FALSE}"; then + as_fn_error "conditional \"gl_GNULIB_ENABLED_tempname\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_TRUE}" && test -z "${gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec_FALSE}"; then as_fn_error "conditional \"gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -29639,9 +29825,8 @@ do "nt/Makefile") CONFIG_FILES="$CONFIG_FILES nt/Makefile" ;; "test/automated/Makefile") CONFIG_FILES="$CONFIG_FILES test/automated/Makefile" ;; "admin/unidata/Makefile") CONFIG_FILES="$CONFIG_FILES admin/unidata/Makefile" ;; - "mkdirs") CONFIG_COMMANDS="$CONFIG_COMMANDS mkdirs" ;; - "epaths") CONFIG_COMMANDS="$CONFIG_COMMANDS epaths" ;; - "gdbinit") CONFIG_COMMANDS="$CONFIG_COMMANDS gdbinit" ;; + "src/epaths.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/epaths.h" ;; + "src/.gdbinit") CONFIG_COMMANDS="$CONFIG_COMMANDS src/.gdbinit" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -30360,22 +30545,15 @@ $as_echo X"$file" | done } ;; - "mkdirs":C) -for dir in etc lisp ; do - test -d ${dir} || mkdir ${dir} -done - ;; - "epaths":C) -echo creating src/epaths.h + "src/epaths.h":C) if test "${opsys}" = "mingw32"; then ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32 else ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force fi ;; - "gdbinit":C) + "src/.gdbinit":C) if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then - echo creating src/.gdbinit echo "source $srcdir/src/.gdbinit" > src/.gdbinit fi ;; diff --git a/configure.ac b/configure.ac index 4458ea3de70..49660f62519 100644 --- a/configure.ac +++ b/configure.ac @@ -141,7 +141,18 @@ AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME], [string giving default POP mail host])], AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.])) -OPTION_DEFAULT_ON([sound],[don't compile with sound support]) +AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE], + [compile with sound support (VALUE one of: yes, ossaudio, alsa, no; +default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])], + [ case "${withval}" in + yes|no|ossaudio|alsa) val=$withval ;; + *) AC_MSG_ERROR([`--with-sound=$withval' is invalid; +this option's value should be `yes', `no', `ossaudio', or `alsa'.]) + ;; + esac + with_sound=$val + ], + [with_sound=$with_features]) dnl FIXME currently it is not the last. dnl This should be the last --with option, because --with-x is @@ -1255,6 +1266,7 @@ AC_DEFUN([PKG_CHECK_MODULES], [ fi ]) +HAVE_SOUND=no if test "${with_sound}" != "no"; then # Sound support for GNU/Linux, the free BSDs, and MinGW. AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h], @@ -1264,47 +1276,61 @@ if test "${with_sound}" != "no"; then #include #endif ]) - # Emulation library used on NetBSD. - AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=) + if test "${with_sound}" = "ossaudio" || test "${with_sound}" = "yes"; then + # Emulation library used on NetBSD. + AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=) + test "${with_sound}" = "ossaudio" && test -z "$LIBSOUND" && \ + AC_MSG_ERROR([ossaudio sound support requested but not found.]) + dnl FIXME? If we did find ossaudio, should we set with_sound=ossaudio? + dnl Traditionally, we go on to check for alsa too. Does that make sense? + fi AC_SUBST(LIBSOUND) - ALSA_REQUIRED=1.0.0 - ALSA_MODULES="alsa >= $ALSA_REQUIRED" - PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no) - if test $HAVE_ALSA = yes; then - SAVE_CFLAGS="$CFLAGS" - SAVE_LIBS="$LIBS" - CFLAGS="$ALSA_CFLAGS $CFLAGS" - LIBS="$ALSA_LIBS $LIBS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[snd_lib_error_set_handler (0);]])], - emacs_alsa_normal=yes, - emacs_alsa_normal=no) - if test "$emacs_alsa_normal" != yes; then - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[snd_lib_error_set_handler (0);]])], - emacs_alsa_subdir=yes, - emacs_alsa_subdir=no) - if test "$emacs_alsa_subdir" != yes; then - AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.]) + if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then + ALSA_REQUIRED=1.0.0 + ALSA_MODULES="alsa >= $ALSA_REQUIRED" + PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no) + if test $HAVE_ALSA = yes; then + SAVE_CFLAGS="$CFLAGS" + SAVE_LIBS="$LIBS" + CFLAGS="$ALSA_CFLAGS $CFLAGS" + LIBS="$ALSA_LIBS $LIBS" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[snd_lib_error_set_handler (0);]])], + emacs_alsa_normal=yes, + emacs_alsa_normal=no) + if test "$emacs_alsa_normal" != yes; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[snd_lib_error_set_handler (0);]])], + emacs_alsa_subdir=yes, + emacs_alsa_subdir=no) + if test "$emacs_alsa_subdir" != yes; then + AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.]) + fi + ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" fi - ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE" - fi - CFLAGS="$SAVE_CFLAGS" - LIBS="$SAVE_LIBS" - LIBSOUND="$LIBSOUND $ALSA_LIBS" - CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS" - AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.]) - fi + CFLAGS="$SAVE_CFLAGS" + LIBS="$SAVE_LIBS" + LIBSOUND="$LIBSOUND $ALSA_LIBS" + CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS" + AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.]) + elif test "${with_sound}" = "alsa"; then + AC_MSG_ERROR([ALSA sound support requested but not found.]) + fi + fi dnl with_sound = alsa|yes dnl Define HAVE_SOUND if we have sound support. We know it works and dnl compiles only on the specified platforms. For others, it dnl probably doesn't make sense to try. + dnl FIXME So surely we should bypass this whole section if not using + dnl one of these platforms? if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then case "$opsys" in dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__ + dnl Adjust the --with-sound help text if you change this. gnu-linux|freebsd|netbsd|mingw32) AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.]) + HAVE_SOUND=yes ;; esac fi @@ -1617,6 +1643,7 @@ CLIENTRES= CLIENTW= W32_RES_LINK= EMACS_MANIFEST= +UPDATE_MANIFEST= if test "${with_w32}" != no; then case "${opsys}" in cygwin) @@ -1667,6 +1694,7 @@ if test "${HAVE_W32}" = "yes"; then x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;; *) EMACS_MANIFEST="emacs-x86.manifest" ;; esac + UPDATE_MANIFEST=update-game-score.exe.manifest if test "${opsys}" = "cygwin"; then W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" @@ -1693,6 +1721,7 @@ AC_SUBST(W32_OBJ) AC_SUBST(W32_LIBS) AC_SUBST(EMACSRES) AC_SUBST(EMACS_MANIFEST) +AC_SUBST(UPDATE_MANIFEST) AC_SUBST(CLIENTRES) AC_SUBST(CLIENTW) AC_SUBST(W32_RES_LINK) @@ -2952,6 +2981,24 @@ elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then fi AC_SUBST(LIBPNG) +HAVE_ZLIB=no +LIBZ= +if test "${HAVE_PNG}" = "yes"; then + ### PNG depends on zlib, so if we have PNG, we have zlib. + HAVE_ZLIB=yes + AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if you have the zlib library (-lz).]) +else + ### No PNG, so check zlib ourselves. + LIBS="-lz $LIBS" + AC_CHECK_LIB(z, inflateEnd, HAVE_ZLIB=yes, HAVE_ZLIB=no) + if test "${HAVE_ZLIB}" = "yes"; then + AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if you have the zlib library (-lz).]) + LIBZ=-lz + fi +fi +AC_SUBST(LIBZ) + + ### Use -ltiff if available, unless `--with-tiff=no'. ### mingw32 doesn't use -ltiff, since it loads the library dynamically. HAVE_TIFF=no @@ -3290,7 +3337,7 @@ select getpagesize setlocale \ getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ -gai_strerror mkostemp mkstemp getline getdelim sync \ +gai_strerror getline getdelim sync \ difftime posix_memalign \ getpwent endpwent getgrent endgrent \ touchlock \ @@ -3445,6 +3492,9 @@ if test $TERMINFO = yes; then AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.]) TERMCAP_OBJ=terminfo.o fi +if test "X$LIBS_TERMCAP" = "X-lncurses"; then + AC_DEFINE(USE_NCURSES, 1, [Define to 1 if you use ncurses.]) +fi AC_SUBST(LIBS_TERMCAP) AC_SUBST(TERMCAP_OBJ) @@ -3977,7 +4027,7 @@ case $opsys in AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)]) dnl Note that grantpt and unlockpt may fork. We must block SIGCHLD dnl to prevent sigchld_handler from intercepting the child's death. - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) dnl if HAVE_POSIX_OPENPT if test "x$ac_cv_func_posix_openpt" = xyes; then AC_DEFINE(PTY_OPEN, [fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY)]) @@ -4025,12 +4075,12 @@ case $opsys in dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler() dnl from intercepting that death. If any child but grantpt's should die dnl within, it should be caught after sigrelse(2). - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) ;; unixware ) dnl Comments are as per sol2*. - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) ;; esac @@ -4785,6 +4835,8 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}" +echo " Does Emacs support sound? ${HAVE_SOUND}" + echo " Does Emacs use -lgpm? ${HAVE_GPM}" echo " Does Emacs use -ldbus? ${HAVE_DBUS}" echo " Does Emacs use -lgconf? ${HAVE_GCONF}" @@ -4894,13 +4946,6 @@ SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e AC_SUBST(SUBDIR_MAKEFILES_IN) -dnl Make the necessary directories, if they don't exist. -AC_CONFIG_COMMANDS([mkdirs], [ -for dir in etc lisp ; do - test -d ${dir} || mkdir ${dir} -done -]) - dnl You might wonder (I did) why epaths.h is generated by running make, dnl rather than just letting configure generate it from epaths.in. dnl One reason is that the various paths are not fully expanded (see above); @@ -4909,8 +4954,7 @@ dnl Secondly, the GNU Coding standards require that one should be able dnl to run `make prefix=/some/where/else' and override the values set dnl by configure. This also explains the `move-if-change' test and dnl the use of force in the `epaths-force' rule in Makefile.in. -AC_CONFIG_COMMANDS([epaths], [ -echo creating src/epaths.h +AC_CONFIG_COMMANDS([src/epaths.h], [ if test "${opsys}" = "mingw32"; then ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32 else @@ -4918,9 +4962,8 @@ else fi ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS" opsys="$opsys"]) -AC_CONFIG_COMMANDS([gdbinit], [ +AC_CONFIG_COMMANDS([src/.gdbinit], [ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then - echo creating src/.gdbinit echo "source $srcdir/src/.gdbinit" > src/.gdbinit fi ]) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index e634117f89c..ad411e44ba6 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,44 @@ +2013-07-31 Eli Zaretskii + + * emacs.texi (Top): Remove menu item for the removed "Disabling + Multibyte" node. + +2013-07-31 Xue Fuqiao + + * rmail.texi (Rmail Coding): Move here from mule.texi. + + * custom.texi (Specifying File Variables): Fix cross-references. + + * mule.texi (Unibyte Mode): Fix cross-references. + (Disabling Multibyte): Remove. + + * macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'. + + * cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu. + (Mayan Calendar): Move here from calendar.texi. + * emacs.texi (Top): Update menu. + +2013-07-30 Xue Fuqiao + + * emacs.texi (Top): Add menu entry. + + * maintaining.texi (VC Ignore): New node. Document vc-ignore. + (VC Directory Commands): Add vc-dir-ignore. + +2013-07-28 Xue Fuqiao + + * glossary.texi (Glossary): Add some entries. + +2013-07-27 Xue Fuqiao + + * maintaining.texi (VC Directory Commands): Mention `D' and `L' in + vc-dir. (Bug#14948) + +2013-07-26 Eli Zaretskii + + * display.texi (Fringes): Document the variable fringe-mode. + (Bug#14946) + 2013-07-03 Glenn Morris * maintaining.texi (EDE): Fix cross-reference. diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in index 2fec57f838b..32bb39b127a 100644 --- a/doc/emacs/Makefile.in +++ b/doc/emacs/Makefile.in @@ -1,4 +1,4 @@ -#### Makefile for the Emacs Manual +### @configure_input@ # Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc. diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi index 1b182327d33..5c964bbb369 100644 --- a/doc/emacs/cal-xtra.texi +++ b/doc/emacs/cal-xtra.texi @@ -17,6 +17,7 @@ your personal tastes. @menu * Calendar Customizing:: Calendar layout and hooks. * Holiday Customizing:: Defining your own holidays. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. * Date Display Format:: Changing the format. * Time Display Format:: Changing the format. * Diary Customizing:: Defaults you can set. @@ -260,6 +261,99 @@ visible in the calendar window, with descriptive strings, like this: (((6 4 2012) "Lunar Eclipse") ((11 13 2012) "Solar Eclipse") ... ) @end smallexample +@node Mayan Calendar +@subsection Converting from the Mayan Calendar +@cindex Mayan calendar + + Here are the commands to select dates based on the Mayan calendar: + +@table @kbd +@item g m l +Move to a date specified by the long count calendar +(@code{calendar-mayan-goto-long-count-date}). +@item g m n t +Move to the next occurrence of a place in the +tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}). +@item g m p t +Move to the previous occurrence of a place in the +tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}). +@item g m n h +Move to the next occurrence of a place in the +haab calendar (@code{calendar-mayan-next-haab-date}). +@item g m p h +Move to the previous occurrence of a place in the +haab calendar (@code{calendar-mayan-previous-haab-date}). +@item g m n c +Move to the next occurrence of a place in the +calendar round (@code{calendar-mayan-next-calendar-round-date}). +@item g m p c +Move to the previous occurrence of a place in the +calendar round (@code{calendar-mayan-previous-calendar-round-date}). +@end table + +@cindex Mayan long count + To understand these commands, you need to understand the Mayan calendars. +The @dfn{long count} is a counting of days with these units: + +@display +1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal +1 katun = 20 tun@ @ @ 1 baktun = 20 katun +@end display + +@kindex g m @r{(Calendar mode)} +@findex calendar-mayan-goto-long-count-date +@noindent +Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 +tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long +count dates as early as 7.17.18.13.3, but no earlier. When you use the +@kbd{g m l} command, type the Mayan long count date with the baktun, +katun, tun, uinal, and kin separated by periods. + +@findex calendar-mayan-previous-tzolkin-date +@findex calendar-mayan-next-tzolkin-date +@cindex Mayan tzolkin calendar + The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of +independent cycles of 13 and 20 days. Since this cycle repeats +endlessly, Emacs provides commands to move backward and forward to the +previous or next point in the cycle. Type @kbd{g m p t} to go to the +previous tzolkin date; Emacs asks you for a tzolkin date and moves point +to the previous occurrence of that date. Similarly, type @kbd{g m n t} +to go to the next occurrence of a tzolkin date. + +@findex calendar-mayan-previous-haab-date +@findex calendar-mayan-next-haab-date +@cindex Mayan haab calendar + The Mayan haab calendar is a cycle of 365 days arranged as 18 months +of 20 days each, followed by a 5-day monthless period. Like the tzolkin +cycle, this cycle repeats endlessly, and there are commands to move +backward and forward to the previous or next point in the cycle. Type +@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab +date and moves point to the previous occurrence of that date. +Similarly, type @kbd{g m n h} to go to the next occurrence of a haab +date. + +@c This is omitted because it is too long for smallbook format. +@c @findex calendar-mayan-previous-calendar-round-date +@findex calendar-mayan-next-calendar-round-date +@cindex Mayan calendar round + The Maya also used the combination of the tzolkin date and the haab +date. This combination is a cycle of about 52 years called a +@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for +both a haab and a tzolkin date and then moves point to the previous +occurrence of that combination. Use @kbd{g m n c} to move point to the +next occurrence of a combination. These commands signal an error if the +haab/tzolkin date combination you have typed is impossible. + + Emacs uses strict completion +@iftex +(@pxref{Completion Exit,,, emacs, the Emacs Manual}) +@end iftex +@ifnottex +(@pxref{Completion Exit}) +@end ifnottex +whenever it asks you to type a Mayan name, so you don't have to worry +about spelling. + @node Date Display Format @subsection Date Display Format @vindex calendar-date-display-form diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 075d753ae7a..88f46984207 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -678,7 +678,6 @@ and from several other calendars. (aside from Gregorian). * To Other Calendar:: Converting the selected date to various calendars. * From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. @end menu @c FIXME perhaps most of the details should be moved to cal-xtra. @@ -913,93 +912,6 @@ years for the date given by point. If you are not in the calendar, this command first asks you for the date of death and the range of years, and then displays the list of yahrzeit dates. -@c FIXME move to emacs-xtra. -@node Mayan Calendar -@subsection Converting from the Mayan Calendar - - Here are the commands to select dates based on the Mayan calendar: - -@table @kbd -@item g m l -Move to a date specified by the long count calendar -(@code{calendar-mayan-goto-long-count-date}). -@item g m n t -Move to the next occurrence of a place in the -tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}). -@item g m p t -Move to the previous occurrence of a place in the -tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}). -@item g m n h -Move to the next occurrence of a place in the -haab calendar (@code{calendar-mayan-next-haab-date}). -@item g m p h -Move to the previous occurrence of a place in the -haab calendar (@code{calendar-mayan-previous-haab-date}). -@item g m n c -Move to the next occurrence of a place in the -calendar round (@code{calendar-mayan-next-calendar-round-date}). -@item g m p c -Move to the previous occurrence of a place in the -calendar round (@code{calendar-mayan-previous-calendar-round-date}). -@end table - -@cindex Mayan long count - To understand these commands, you need to understand the Mayan calendars. -The @dfn{long count} is a counting of days with these units: - -@display -1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal -1 katun = 20 tun@ @ @ 1 baktun = 20 katun -@end display - -@kindex g m @r{(Calendar mode)} -@findex calendar-mayan-goto-long-count-date -@noindent -Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 -tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long -count dates as early as 7.17.18.13.3, but no earlier. When you use the -@kbd{g m l} command, type the Mayan long count date with the baktun, -katun, tun, uinal, and kin separated by periods. - -@findex calendar-mayan-previous-tzolkin-date -@findex calendar-mayan-next-tzolkin-date -@cindex Mayan tzolkin calendar - The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of -independent cycles of 13 and 20 days. Since this cycle repeats -endlessly, Emacs provides commands to move backward and forward to the -previous or next point in the cycle. Type @kbd{g m p t} to go to the -previous tzolkin date; Emacs asks you for a tzolkin date and moves point -to the previous occurrence of that date. Similarly, type @kbd{g m n t} -to go to the next occurrence of a tzolkin date. - -@findex calendar-mayan-previous-haab-date -@findex calendar-mayan-next-haab-date -@cindex Mayan haab calendar - The Mayan haab calendar is a cycle of 365 days arranged as 18 months -of 20 days each, followed by a 5-day monthless period. Like the tzolkin -cycle, this cycle repeats endlessly, and there are commands to move -backward and forward to the previous or next point in the cycle. Type -@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab -date and moves point to the previous occurrence of that date. -Similarly, type @kbd{g m n h} to go to the next occurrence of a haab -date. - -@c This is omitted because it is too long for smallbook format. -@c @findex calendar-mayan-previous-calendar-round-date -@findex calendar-mayan-next-calendar-round-date -@cindex Mayan calendar round - The Maya also used the combination of the tzolkin date and the haab -date. This combination is a cycle of about 52 years called a -@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for -both a haab and a tzolkin date and then moves point to the previous -occurrence of that combination. Use @kbd{g m n c} to move point to the -next occurrence of a combination. These commands signal an error if the -haab/tzolkin date combination you have typed is impossible. - - Emacs uses strict completion (@pxref{Completion Exit}) whenever it -asks you to type a Mayan name, so you don't have to worry about -spelling. - @node Diary @section The Diary @cindex diary diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 45fa45191f3..f3e07fd8ba0 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi @@ -1166,7 +1166,10 @@ conversion of this file. @xref{Coding Systems}. @item @code{unibyte} says to load or compile a file of Emacs Lisp in unibyte -mode, if the value is @code{t}. @xref{Disabling Multibyte}. +mode, if the value is @code{t}. @xref{Disabling Multibyte, , +Disabling Multibyte Characters, elisp, GNU Emacs Lisp Reference +Manual}. + @end itemize @noindent diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 482d7e7741a..aa9977a52e5 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1017,12 +1017,15 @@ mode's symbol is a member of the list @code{hi-lock-exclude-modes}. @findex set-fringe-style @findex fringe-mode +@vindex fringe-mode @r{(variable)} On graphical displays, each Emacs window normally has narrow @dfn{fringes} on the left and right edges. The fringes are used to display symbols that provide information about the text in the window. You can type @kbd{M-x fringe-mode} to disable the fringes, or modify their width. This command affects fringes in all frames; to modify fringes on the selected frame only, use @kbd{M-x set-fringe-style}. +You can make your changes to the fringes permanent by customizing the +variable @code{fringe-mode}. The most common use of the fringes is to indicate a continuation line (@pxref{Continuation Lines}). When one line of text is split diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index e2d0b0eebf6..8a518b82abb 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -544,7 +544,6 @@ Frames and Graphical Displays International Character Set Support * International Chars:: Basic concepts of multibyte characters. -* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. @@ -798,6 +797,7 @@ Version Control * Old Revisions:: Examining and comparing old versions. * VC Change Log:: Viewing the VC Change Log. * VC Undo:: Canceling changes before or after committing. +* VC Ignore:: Ignore files under version control system. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. @ifnottex @@ -956,7 +956,6 @@ Conversion To and From Other Calendars (aside from Gregorian). * To Other Calendar:: Converting the selected date to various calendars. * From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. The Diary @@ -971,6 +970,7 @@ More advanced features of the Calendar and Diary * Calendar Customizing:: Calendar layout and hooks. * Holiday Customizing:: Defining your own holidays. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. * Date Display Format:: Changing the format. * Time Display Format:: Changing the format. * Diary Customizing:: Defaults you can set. diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi index ee41313c10f..43441c20814 100644 --- a/doc/emacs/glossary.texi +++ b/doc/emacs/glossary.texi @@ -4,6 +4,7 @@ @c See file emacs.texi for copying conditions. @node Glossary @unnumbered Glossary +@cindex glossary @table @asis @anchor{Glossary---Abbrev} @@ -18,7 +19,10 @@ Aborting means getting out of a recursive edit (q.v.). The commands @kbd{C-]} and @kbd{M-x top-level} are used for this. @xref{Quitting}. -@c FIXME? Active Region +@item Active Region +Setting the mark (q.v.@:) at a position in the text also activates it. +When the mark is active, we call the region an active region. +@xref{Mark}. @item Alt Alt is the name of a modifier bit that a keyboard input character may @@ -1365,7 +1369,11 @@ are not in a recursive editing level (q.v.@:) or the minibuffer (q.v.), and not in the middle of a command. You can get back to top level by aborting (q.v.@:) and quitting (q.v.). @xref{Quitting}. -@c FIXME? Transient Mark Mode +@item Transient Mark Mode +The default behavior of the mark (q.v.@:) and region (q.v.), in which +setting the mark activates it and highlights the region, is called +Transient Mark mode. In GNU Emacs 23 and onwards, it is enabled by +default. @xref{Disabled Transient Mark}. @item Transposition Transposing two units of text means putting each one into the place diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi index 4483c91802d..61c056ceb4b 100644 --- a/doc/emacs/macos.texi +++ b/doc/emacs/macos.texi @@ -40,13 +40,16 @@ Emacs provides a set of key bindings using this modifier key that mimic other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You can change these bindings in the usual way (@pxref{Key Bindings}). -@c FIXME mention ns-alternate-modifier? +@vindex ns-alternate-modifier +@vindex ns-right-alternate-modifier The variable @code{ns-right-alternate-modifier} controls the behavior of the right @key{alt} and @key{option} keys. These keys behave like the left-hand keys if the value is @code{left} (the default). A value of @code{control}, @code{meta}, @code{alt}, @code{super}, or @code{hyper} makes them behave like the corresponding -modifier keys; a value of @code{none} tells Emacs to ignore them. +modifier keys; a value to @code{left} means be the same key as +@code{ns-alternate-modifier}; a value of @code{none} tells Emacs to +ignore them. @kbd{S-Mouse-1} adjusts the region to the click position, just like @kbd{Mouse-3} (@code{mouse-save-then-kill}); it does not pop diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index e89660dfaf5..553375442d5 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -1,4 +1,4 @@ -@c This is part of the Emacs manual. +@c This is part of the Emacs manual., Abbrevs, This is part of the Emacs manual., Top @c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2013 Free Software @c Foundation, Inc. @c See file emacs.texi for copying conditions. @@ -56,6 +56,7 @@ variable @code{vc-handled-backends} to @code{nil} * Old Revisions:: Examining and comparing old versions. * VC Change Log:: Viewing the VC Change Log. * VC Undo:: Canceling changes before or after committing. +* VC Ignore:: Ignore files under version control system. * VC Directory Mode:: Listing files managed by version control. * Branches:: Multiple lines of development. @ifnottex @@ -1032,6 +1033,23 @@ unlocked; you must lock again to resume editing. You can also use @kbd{C-x v u} to unlock a file if you lock it and then decide not to change it. +@node VC Ignore +@subsection Ignore Version Control Files + +@table @kbd +@item C-x v G +Ignore a file under current version control system. (@code{vc-ignore}). +@end table + +@kindex C-x v G +@findex vc-ignore + Many source trees contain some files that do not need to be versioned, +such as editor backups, object or bytecode files, and built programs. +You can simply not add them, but then they’ll always crop up as +unknown files. You can also tell the version control system to ignore +these files by adding them to the ignore file at the top of the tree. +@kbd{C-x v G} (@code{vc-ignore}) can help you do this. + @node VC Directory Mode @subsection VC Directory Mode @@ -1222,7 +1240,7 @@ Revisions}), and @w{@kbd{C-x v u}} (@pxref{VC Undo}). The VC Directory buffer also defines some single-key shortcuts for VC commands with the @kbd{C-x v} prefix: @kbd{=}, @kbd{+}, @kbd{l}, -@kbd{i}, and @kbd{v}. +@kbd{i}, @kbd{D}, @kbd{L}, @kbd{G} and @kbd{v}. For example, you can commit a set of edited files by opening a VC Directory buffer, where the files are listed with the @samp{edited} diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index c8bd5027fa0..ebddc46be94 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -90,7 +90,6 @@ value to make sure Emacs interprets keyboard input correctly; see @menu * International Chars:: Basic concepts of multibyte characters. -* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. @@ -244,79 +243,6 @@ Character code properties: customize what to show decomposition: (65 768) ('A' '`') @end smallexample -@c FIXME? Does this section even belong in the user manual? -@c Seems more appropriate to the lispref? -@node Disabling Multibyte -@section Disabling Multibyte Characters - - By default, Emacs starts in multibyte mode: it stores the contents -of buffers and strings using an internal encoding that represents -non-@acronym{ASCII} characters using multi-byte sequences. Multibyte -mode allows you to use all the supported languages and scripts without -limitations. - -@cindex turn multibyte support on or off - Under very special circumstances, you may want to disable multibyte -character support, for a specific buffer. -When multibyte characters are disabled in a buffer, we call -that @dfn{unibyte mode}. In unibyte mode, each character in the -buffer has a character code ranging from 0 through 255 (0377 octal); 0 -through 127 (0177 octal) represent @acronym{ASCII} characters, and 128 -(0200 octal) through 255 (0377 octal) represent non-@acronym{ASCII} -characters. - - To edit a particular file in unibyte representation, visit it using -@code{find-file-literally}. @xref{Visiting}. You can convert a -multibyte buffer to unibyte by saving it to a file, killing the -buffer, and visiting the file again with @code{find-file-literally}. -Alternatively, you can use @kbd{C-x @key{RET} c} -(@code{universal-coding-system-argument}) and specify @samp{raw-text} -as the coding system with which to visit or save a file. @xref{Text -Coding}. Unlike @code{find-file-literally}, finding a file as -@samp{raw-text} doesn't disable format conversion, uncompression, or -auto mode selection. - -@c Not a single file in Emacs uses this feature. Is it really worth -@c mentioning in the _user_ manual? Also, this duplicates somewhat -@c "Loading Non-ASCII" from the lispref. -@cindex Lisp files, and multibyte operation -@cindex multibyte operation, and Lisp files -@cindex unibyte operation, and Lisp files -@cindex init file, and non-@acronym{ASCII} characters - Emacs normally loads Lisp files as multibyte. -This includes the Emacs initialization -file, @file{.emacs}, and the initialization files of packages -such as Gnus. However, you can specify unibyte loading for a -particular Lisp file, by adding an entry @samp{coding: raw-text} in a file -local variables section. @xref{Specify Coding}. -Then that file is always loaded as unibyte text. -@ignore -@c I don't see the point of this statement: -The motivation for these conventions is that it is more reliable to -always load any particular Lisp file in the same way. -@end ignore -You can also load a Lisp file as unibyte, on any one occasion, by -typing @kbd{C-x @key{RET} c raw-text @key{RET}} immediately before -loading it. - -@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip. -@vindex enable-multibyte-characters -The buffer-local variable @code{enable-multibyte-characters} is -non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones. -The mode line also indicates whether a buffer is multibyte or not. -@xref{Mode Line}. With a graphical display, in a multibyte buffer, -the portion of the mode line that indicates the character set has a -tooltip that (amongst other things) says that the buffer is multibyte. -In a unibyte buffer, the character set indicator is absent. Thus, in -a unibyte buffer (when using a graphical display) there is normally -nothing before the indication of the visited file's end-of-line -convention (colon, backslash, etc.), unless you are using an input -method. - -@findex toggle-enable-multibyte-characters -You can turn off multibyte support in a specific buffer by invoking the -command @code{toggle-enable-multibyte-characters} in that buffer. - @node Language Environments @section Language Environments @cindex language environments @@ -919,18 +845,6 @@ pattern, are decoded correctly. 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-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 -separate file. This uses the priority list of coding systems that you -have specified. If a MIME message specifies a character set, Rmail -obeys that specification. For reading and saving Rmail files -themselves, Emacs uses the coding system specified by the variable -@code{rmail-file-coding-system}. The default value is @code{nil}, -which means that Rmail files are not translated (they are read and -written in the Emacs internal character code). - @node Specify Coding @section Specifying a File's Coding System @@ -1591,15 +1505,13 @@ the range 0240 to 0377 octal (160 to 255 decimal) to handle the accented letters and punctuation needed by various European languages (and some non-European ones). Note that Emacs considers bytes with codes in this range as raw bytes, not as characters, even in a unibyte -buffer, i.e., if you disable multibyte characters. However, Emacs -can still handle these character codes as if they belonged to -@emph{one} of the single-byte character sets at a time. To specify -@emph{which} of these codes to use, invoke @kbd{M-x -set-language-environment} and specify a suitable language environment -such as @samp{Latin-@var{n}}. - - For more information about unibyte operation, see -@ref{Disabling Multibyte}. +buffer, i.e., if you disable multibyte characters. However, Emacs can +still handle these character codes as if they belonged to @emph{one} +of the single-byte character sets at a time. To specify @emph{which} +of these codes to use, invoke @kbd{M-x set-language-environment} and +specify a suitable language environment such as @samp{Latin-@var{n}}. +@xref{Disabling Multibyte, , Disabling Multibyte Characters, elisp, +GNU Emacs Lisp Reference Manual}. @vindex unibyte-display-via-language-environment Emacs can also display bytes in the range 160 to 255 as readable diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi index 62f35b2ee83..67afc29a277 100644 --- a/doc/emacs/rmail.texi +++ b/doc/emacs/rmail.texi @@ -1274,6 +1274,17 @@ It reads the name of a coding system, and then redecodes the message using the coding system you specified. If you specified the right coding system, the result should be readable. +@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 +separate file. This uses the priority list of coding systems that you +have specified. If a MIME message specifies a character set, Rmail +obeys that specification. For reading and saving Rmail files +themselves, Emacs uses the coding system specified by the variable +@code{rmail-file-coding-system}. The default value is @code{nil}, +which means that Rmail files are not translated (they are read and +written in the Emacs internal character code). + @node Rmail Editing @section Editing Within a Message diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index 4182b6a3184..7f1f9ab18c0 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,15 @@ +2013-08-07 Eli Zaretskii + + * emacs-lisp-intro.texi (Beginning init File): Rename from + "Beginning a .emacs File", since a node name cannot include a + period. + (Top, Emacs Initialization, Change a defun): All references + changed. (Bug#15038) + +2013-08-02 Xue Fuqiao + + * emacs-lisp-intro.texi (zap-to-char): Remove obsolete stuff. + 2013-07-06 Glenn Morris * emacs-lisp-intro.texi (Top): diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index b60c752e92b..d5462f9e70f 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -1,4 +1,4 @@ -#### Makefile for the Emacs Lisp Introduction manual +### @configure_input@ # Copyright (C) 1994-1999, 2001-2013 Free Software Foundation, Inc. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index dafee51a020..2160d7ba5a9 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -648,7 +648,7 @@ Your @file{.emacs} File * Default Configuration:: * Site-wide Init:: You can write site-wide init files. * defcustom:: Emacs will write code for you. -* Beginning a .emacs File:: How to write a @code{.emacs file}. +* Beginning init File:: How to write a @file{.emacs} init file. * Text and Auto-fill:: Automatically wrap lines. * Mail Aliases:: Use abbreviations for email addresses. * Indent Tabs Mode:: Don't use tabs with @TeX{} @@ -3260,7 +3260,7 @@ line that follows a semicolon is a comment. The end of the line is the end of the comment. To stretch a comment over two or more lines, begin each line with a semicolon. -@xref{Beginning a .emacs File, , Beginning a @file{.emacs} +@xref{Beginning init File, , Beginning a @file{.emacs} File}, and @ref{Comments, , Comments, elisp, The GNU Emacs Lisp Reference Manual}, for more about comments. @@ -7537,20 +7537,7 @@ retrieved. @xref{Yanking, , Yanking Text Back}. @section @code{zap-to-char} @findex zap-to-char -@c FIXME remove obsolete stuff -The @code{zap-to-char} function changed little between GNU Emacs -version 19 and GNU Emacs version 22. However, @code{zap-to-char} -calls another function, @code{kill-region}, which enjoyed a major -rewrite. - -The @code{kill-region} function in Emacs 19 is complex, but does not -use code that is important at this time. We will skip it. - -The @code{kill-region} function in Emacs 22 is easier to read than the -same function in Emacs 19 and introduces a very important concept, -that of error handling. We will walk through the function. - -But first, let us look at the interactive @code{zap-to-char} function. +Let us look at the interactive @code{zap-to-char} function. @menu * Complete zap-to-char:: The complete implementation. @@ -16719,7 +16706,7 @@ expressions in Emacs Lisp you can change or extend Emacs. * Default Configuration:: * Site-wide Init:: You can write site-wide init files. * defcustom:: Emacs will write code for you. -* Beginning a .emacs File:: How to write a @code{.emacs file}. +* Beginning init File:: How to write a @file{.emacs} init file. * Text and Auto-fill:: Automatically wrap lines. * Mail Aliases:: Use abbreviations for email addresses. * Indent Tabs Mode:: Don't use tabs with @TeX{} @@ -16990,7 +16977,7 @@ intent is that neither programs nor users should ever change a value set by @code{defconst}. (You can change it; the value set is a variable; but please do not.) -@node Beginning a .emacs File +@node Beginning init File @section Beginning a @file{.emacs} File @cindex @file{.emacs} file, beginning of diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 8b0dd6afa4e..9d90a98a1ae 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,76 @@ +2013-08-10 Xue Fuqiao + + * edebug.texi (Instrumenting Macro Calls): Use @defmac for macros. + +2013-08-09 Xue Fuqiao + + * control.texi (Error Symbols): Minor fix for previous change. + +2013-08-09 Stefan Monnier + + * errors.texi (Standard Errors): Don't refer to `error-conditions'. + + * control.texi (Signaling Errors): Refer to define-error. + (Error Symbols): Add `define-error'. + +2013-08-06 Dmitry Antipov + + * positions.texi (Motion by Screen Lines): + * display.texi (Truncation): Rename `cache-long-line-scans' + to `cache-long-scans'. + +2013-08-05 Xue Fuqiao + + * windows.texi (Window Start and End): Add an index. + +2013-08-02 Xue Fuqiao + + * display.texi (Face Functions): Add an index. + + * variables.texi (Variable Aliases): Add an index. + + * functions.texi (Defining Functions): Add an index. + + * nonascii.texi (Coding System Basics): Add an index. + +2013-07-31 Xue Fuqiao + + * nonascii.texi (Non-ASCII Characters): Update menu. + (Disabling Multibyte): Move here from doc/emacs/mule.texi. Fix cross-references. + + * elisp.texi (Top): Update menu. + +2013-07-30 Xue Fuqiao + + * windows.texi (Window History): Mention the default value of + switch-to-visible-buffer. Add cross-references. + +2013-07-24 Michael Albinus + + * errors.texi (Standard Errors): Fix typo. + + * files.texi (Magic File Names): + * os.texi (File Notifications): Remove file-notify-supported-p. + +2013-07-24 Paul Eggert + + * eval.texi (Special Forms): Mention 'lambda'. Also, say that + non-well-formed expressions result in unspecified behavior, though + Emacs will not crash. + +2013-07-22 Michael Albinus + + * files.texi (Magic File Names): Add file-notify-add-watch, + file-notify-rm-watch and file-notify-supported-p. Move + file-remote-p down. + + * errors.texi (Standard Errors): Add file-notify-error. + + * os.texi (Desktop Notifications): Rename from Notifications. + (File Notifications): New node. + + * elisp.texi (Top): Update menu for these changes. + 2013-07-19 Xue Fuqiao * windows.texi (Display Action Functions): Mention next-window. @@ -1054,7 +1127,7 @@ * display.texi (Face Attributes): Copyedits. Add a few cindex entries. Overlining no longer behaves exactly like underlining. -2012-06-16 Aurelien Aptel +2012-06-16 Aurélien Aptel * display.texi (Face Attributes): Document wave-style underline face attribute. diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in index 19cf2cc4a5d..8e6d034804e 100644 --- a/doc/lispref/Makefile.in +++ b/doc/lispref/Makefile.in @@ -1,4 +1,4 @@ -# Makefile for the GNU Emacs Lisp Reference Manual. +### @configure_input@ # Copyright (C) 1990-1996, 1998-2013 Free Software Foundation, Inc. diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index 9ee01299260..70eabcd84a4 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi @@ -890,9 +890,8 @@ argument @var{data} is a list of additional Lisp objects relevant to the circumstances of the error. The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol -bearing a property @code{error-conditions} whose value is a list of -condition names. This is how Emacs Lisp classifies different sorts of -errors. @xref{Error Symbols}, for a description of error symbols, +defined with @code{define-error}. This is how Emacs Lisp classifies different +sorts of errors. @xref{Error Symbols}, for a description of error symbols, error conditions and condition names. If the error is not handled, the two arguments are used in printing @@ -1118,8 +1117,8 @@ Here are examples of handlers: @end example Each error that occurs has an @dfn{error symbol} that describes what -kind of error it is. The @code{error-conditions} property of this -symbol is a list of condition names (@pxref{Error Symbols}). Emacs +kind of error it is, and which describes also a list of condition names +(@pxref{Error Symbols}). Emacs searches all the active @code{condition-case} forms for a handler that specifies one or more of these condition names; the innermost matching @code{condition-case} handles the error. Within this @@ -1259,6 +1258,7 @@ should be robust if one does occur. Note that this macro uses @cindex condition name @cindex user-defined error @kindex error-conditions +@kindex define-error When you signal an error, you specify an @dfn{error symbol} to specify the kind of error you have in mind. Each error has one and only one @@ -1275,42 +1275,38 @@ Thus, each error has one or more condition names: @code{error}, the error symbol if that is distinct from @code{error}, and perhaps some intermediate classifications. - In order for a symbol to be an error symbol, it must have an -@code{error-conditions} property which gives a list of condition names. -This list defines the conditions that this kind of error belongs to. -(The error symbol itself, and the symbol @code{error}, should always be -members of this list.) Thus, the hierarchy of condition names is -defined by the @code{error-conditions} properties of the error symbols. -Because quitting is not considered an error, the value of the -@code{error-conditions} property of @code{quit} is just @code{(quit)}. +@defun define-error name message &optional parent + In order for a symbol to be an error symbol, it must be defined with +@code{define-error} which takes a parent condition (defaults to @code{error}). +This parent defines the conditions that this kind of error belongs to. +The transitive set of parents always includes the error symbol itself, and the +symbol @code{error}. Because quitting is not considered an error, the set of +parents of @code{quit} is just @code{(quit)}. +@end defun @cindex peculiar error - In addition to the @code{error-conditions} list, the error symbol -should have an @code{error-message} property whose value is a string to -be printed when that error is signaled but not handled. If the -error symbol has no @code{error-message} property or if the -@code{error-message} property exists, but is not a string, the error -message @samp{peculiar error} is used. @xref{Definition of signal}. + In addition to its parents, the error symbol has a @var{message} which +is a string to be printed when that error is signaled but not handled. If that +message is not valid, the error message @samp{peculiar error} is used. +@xref{Definition of signal}. + +Internally, the set of parents is stored in the @code{error-conditions} +property of the error symbol and the message is stored in the +@code{error-message} property of the error symbol. Here is how we define a new error symbol, @code{new-error}: @example @group -(put 'new-error - 'error-conditions - '(error my-own-errors new-error)) -@result{} (error my-own-errors new-error) -@end group -@group -(put 'new-error 'error-message "A new error") -@result{} "A new error" +(define-error 'new-error "A new error" 'my-own-errors) @end group @end example @noindent -This error has three condition names: @code{new-error}, the narrowest +This error has several condition names: @code{new-error}, the narrowest classification; @code{my-own-errors}, which we imagine is a wider -classification; and @code{error}, which is the widest of all. +classification; and all the conditions of @code{my-own-errors} which should +include @code{error}, which is the widest of all. The error string should start with a capital letter but it should not end with a period. This is for consistency with the rest of Emacs. @@ -1326,7 +1322,7 @@ your code can do this: @end group @end example - This error can be handled through any of the three condition names. + This error can be handled through any of its condition names. This example handles @code{new-error} and any other errors in the class @code{my-own-errors}: diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 44fbc66a60e..6b8d24179e7 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -217,9 +217,9 @@ over the @code{line-prefix} variable. @xref{Special Properties}. continuation to display them, computing the continuation lines can make redisplay slow. The column computation and indentation functions also become slow. Then you might find it advisable to set -@code{cache-long-line-scans} to @code{t}. +@code{cache-long-scans} to @code{t}. -@defvar cache-long-line-scans +@defvar cache-long-scans If this variable is non-@code{nil}, various indentation and motion functions, and Emacs redisplay, cache the results of scanning the buffer, and consult the cache to avoid rescanning regions of the buffer @@ -1243,6 +1243,7 @@ Type RET when done reading @node Overlays @section Overlays @cindex overlays +@c FIXME: mention intervals in this section? You can use @dfn{overlays} to alter the appearance of a buffer's text on the screen, for the sake of presentation features. An overlay is an @@ -2738,6 +2739,7 @@ differently from the default face. @end defun @cindex face alias +@cindex alias, for faces A @dfn{face alias} provides an equivalent name for a face. You can define a face alias by giving the alias symbol the @code{face-alias} property, with a value of the target face name. The following example diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 8e394b5d92d..8384c31a380 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -1132,14 +1132,14 @@ from the macro definition with @code{def-edebug-spec}. Adding definitions in Lisp, but @code{def-edebug-spec} makes it possible to define Edebug specifications for special forms implemented in C. -@deffn Macro def-edebug-spec macro specification +@defmac def-edebug-spec macro specification Specify which expressions of a call to macro @var{macro} are forms to be evaluated. @var{specification} should be the edebug specification. Neither argument is evaluated. The @var{macro} argument can actually be any symbol, not just a macro name. -@end deffn +@end defmac Here is a table of the possibilities for @var{specification} and how each directs processing of arguments. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 59bbdec0229..230da1867dd 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -1194,6 +1194,7 @@ Text Properties Non-@acronym{ASCII} Characters * Text Representations:: How Emacs represents text. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Converting Representations:: Converting unibyte to multibyte and vice versa. * Selecting a Representation:: Treating a byte sequence as unibyte or multi. * Character Codes:: How unibyte and multibyte relate to @@ -1482,7 +1483,8 @@ Operating System Interface * Batch Mode:: Running Emacs without terminal interaction. * Session Management:: Saving and restoring state with X Session Management. -* Notifications:: Desktop notifications. +* Desktop Notifications:: Desktop notifications. +* File Notifications:: File notifications. * Dynamic Libraries:: On-demand loading of support libraries. Starting Up Emacs diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi index 3f3984e40d2..8a10fbf0c47 100644 --- a/doc/lispref/errors.texi +++ b/doc/lispref/errors.texi @@ -7,12 +7,11 @@ @appendix Standard Errors @cindex standard errors - Here is a list of the more important error symbols in standard Emacs, -grouped by concept. The list includes each symbol's message (on the -@code{error-message} property of the symbol) and a cross reference to a -description of how the error can occur. + Here is a list of the more important error symbols in standard Emacs, grouped +by concept. The list includes each symbol's message and a cross reference +to a description of how the error can occur. - Each error symbol has an @code{error-conditions} property that is a + Each error symbol has an set of parent error conditions that is a list of symbols. Normally this list includes the error symbol itself and the symbol @code{error}. Occasionally it includes additional symbols, which are intermediate classifications, narrower than @@ -24,8 +23,6 @@ conditions, that means it has none. As a special exception, the error symbol @code{quit} does not have the condition @code{error}, because quitting is not considered an error. -@c You can grep for "(put 'foo 'error-conditions ...) to find -@c examples defined in Lisp. E.g., soap-client.el, sasl.el. Most of these error symbols are defined in C (mainly @file{data.c}), but some are defined in Lisp. For example, the file @file{userlock.el} defines the @code{file-locked} and @code{file-supersession} errors. @@ -123,6 +120,11 @@ This is a subcategory of @code{file-error}. @xref{File Locks}. @item file-supersession This is a subcategory of @code{file-error}. @xref{Modification Time}. +@c filenotify.el +@item file-notify-error +This is a subcategory of @code{file-error}. It happens, when a file +could not be watched for changes. @xref{File Notifications}. + @c net/ange-ftp.el @item ftp-error This is a subcategory of @code{file-error}, which results from diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index 4b5ef187383..4b83d575fef 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi @@ -432,6 +432,14 @@ do. and which are used without evaluation. Whether a particular argument is evaluated may depend on the results of evaluating other arguments. + If an expression's first symbol is that of a special form, the +expression should follow the rules of that special form; otherwise, +Emacs's behavior is not well-defined (though it will not crash). For +example, @code{((lambda (x) x . 3) 4)} contains a subexpression that +begins with @code{lambda} but is not a well-formed @code{lambda} +expression, so Emacs may signal an error, or may return 3 or 4 or +@code{nil}, or may behave in other ways. + Here is a list, in alphabetical order, of all of the special forms in Emacs Lisp with a reference to where each is described. @@ -463,6 +471,9 @@ Emacs Lisp with a reference to where each is described. @item interactive @pxref{Interactive Call} +@item lambda +@pxref{Lambda Expressions} + @item let @itemx let* @pxref{Local Variables} diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 951d55ac90f..77b097ae90a 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -2772,16 +2772,17 @@ first, before handlers for jobs such as remote file access. @code{file-equal-p}, @code{file-executable-p}, @code{file-exists-p}, @code{file-in-directory-p}, -@code{file-local-copy}, @code{file-remote-p}, +@code{file-local-copy}, @code{file-modes}, @code{file-name-all-completions}, @code{file-name-as-directory}, @code{file-name-completion}, @code{file-name-directory}, @code{file-name-nondirectory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, +@code{file-notify-add-watch}, @code{file-notify-rm-watch}, @code{file-ownership-preserved-p}, @code{file-readable-p}, @code{file-regular-p}, -@code{file-selinux-context}, +@code{file-remote-p}, @code{file-selinux-context}, @code{file-symlink-p}, @code{file-truename}, @code{file-writable-p}, @code{find-backup-file-name}, @c Not sure why it was here: @code{find-file-noselect},@* @@ -2820,20 +2821,21 @@ first, before handlers for jobs such as remote file access. @code{file-accessible-direc@discretionary{}{}{}tory-p}, @code{file-acl}, @code{file-attributes}, -@code{file-direct@discretionary{}{}{}ory-p}, +@code{file-direc@discretionary{}{}{}tory-p}, @code{file-equal-p}, @code{file-executable-p}, @code{file-exists-p}, @code{file-in-directory-p}, -@code{file-local-copy}, @code{file-remote-p}, +@code{file-local-copy}, @code{file-modes}, @code{file-name-all-completions}, @code{file-name-as-directory}, @code{file-name-completion}, @code{file-name-directory}, @code{file-name-nondirec@discretionary{}{}{}tory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, +@code{file-notify-add-watch}, @code{file-notify-rm-watch}, @code{file-ownership-pre@discretionary{}{}{}served-p}, @code{file-readable-p}, @code{file-regular-p}, -@code{file-selinux-context}, +@code{file-remote-p}, @code{file-selinux-context}, @code{file-symlink-p}, @code{file-truename}, @code{file-writable-p}, @code{find-backup-file-name}, @c Not sure why it was here: @code{find-file-noselect}, diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 01d2d1d6c45..37b48cdb6a9 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -446,7 +446,7 @@ default parameters by supplying their own parameters. 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 -which affect just the initial frame, such as @samp{-geometry} and +which affect just the initial frame, such as @samp{--geometry} and @samp{--maximized}, add to @code{initial-frame-alist}; the others add to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index fcd345ef83b..39a9ff6b62c 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -580,6 +580,7 @@ redefinition from unintentional redefinition. @end defmac @cindex function aliases +@cindex alias, for functions @defun defalias name definition &optional doc @anchor{Definition of defalias} This function defines the symbol @var{name} as a function, with diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi index b8b62325bb4..090310c5545 100644 --- a/doc/lispref/nonascii.texi +++ b/doc/lispref/nonascii.texi @@ -13,6 +13,7 @@ how they are stored in strings and buffers. @menu * Text Representations:: How Emacs represents text. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Converting Representations:: Converting unibyte to multibyte and vice versa. * Selecting a Representation:: Treating a byte sequence as unibyte or multi. * Character Codes:: How unibyte and multibyte relate to @@ -140,6 +141,55 @@ This function concatenates all its argument @var{bytes} and makes the result a unibyte string. @end defun +@node Disabling Multibyte +@section Disabling Multibyte Characters +@cindex disabling multibyte + + By default, Emacs starts in multibyte mode: it stores the contents +of buffers and strings using an internal encoding that represents +non-@acronym{ASCII} characters using multi-byte sequences. Multibyte +mode allows you to use all the supported languages and scripts without +limitations. + +@cindex turn multibyte support on or off + Under very special circumstances, you may want to disable multibyte +character support, for a specific buffer. +When multibyte characters are disabled in a buffer, we call +that @dfn{unibyte mode}. In unibyte mode, each character in the +buffer has a character code ranging from 0 through 255 (0377 octal); 0 +through 127 (0177 octal) represent @acronym{ASCII} characters, and 128 +(0200 octal) through 255 (0377 octal) represent non-@acronym{ASCII} +characters. + + To edit a particular file in unibyte representation, visit it using +@code{find-file-literally}. @xref{Visiting Functions}. You can +convert a multibyte buffer to unibyte by saving it to a file, killing +the buffer, and visiting the file again with +@code{find-file-literally}. Alternatively, you can use @kbd{C-x +@key{RET} c} (@code{universal-coding-system-argument}) and specify +@samp{raw-text} as the coding system with which to visit or save a +file. @xref{Text Coding, , Specifying a Coding System for File Text, +emacs, GNU Emacs Manual}. Unlike @code{find-file-literally}, finding +a file as @samp{raw-text} doesn't disable format conversion, +uncompression, or auto mode selection. + +@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip. +@vindex enable-multibyte-characters +The buffer-local variable @code{enable-multibyte-characters} is +non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones. +The mode line also indicates whether a buffer is multibyte or not. +With a graphical display, in a multibyte buffer, the portion of the +mode line that indicates the character set has a tooltip that (amongst +other things) says that the buffer is multibyte. In a unibyte buffer, +the character set indicator is absent. Thus, in a unibyte buffer +(when using a graphical display) there is normally nothing before the +indication of the visited file's end-of-line convention (colon, +backslash, etc.), unless you are using an input method. + +@findex toggle-enable-multibyte-characters +You can turn off multibyte support in a specific buffer by invoking the +command @code{toggle-enable-multibyte-characters} in that buffer. + @node Converting Representations @section Converting Text Representations @@ -962,6 +1012,7 @@ The value of the @code{:mime-charset} property is also defined as an alias for the coding system. @end defun +@cindex alias, for coding systems @defun coding-system-aliases coding-system This function returns the list of aliases of @var{coding-system}. @end defun diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index b481c330f9f..071fcf526da 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -34,7 +34,8 @@ terminal and the screen. * X11 Keysyms:: Operating on key symbols for X Windows. * Batch Mode:: Running Emacs without terminal interaction. * Session Management:: Saving and restoring state with X Session Management. -* Notifications:: Desktop notifications. +* Desktop Notifications:: Desktop notifications. +* File Notifications:: File notifications. * Dynamic Libraries:: On-demand loading of support libraries. @end menu @@ -2270,7 +2271,7 @@ Emacs is restarted by the session manager. @end group @end example -@node Notifications +@node Desktop Notifications @section Desktop Notifications @cindex desktop notifications @@ -2510,6 +2511,156 @@ If @var{SPEC_VERSION} is @code{nil}, the server supports a specification prior to @samp{"1.0"}. @end defun +@node File Notifications +@section Notifications on File Changes +@cindex file notifications + +Several operating systems support watching of filesystems for changes +of files. If configured properly, Emacs links a respective library +like @file{gfilenotify}, @file{inotify}, or @file{w32notify} +statically. These libraries enable watching of filesystems on the +local machine. + +It is also possible to watch filesystems on remote machines, +@pxref{Remote Files,, Remote Files, emacs, The GNU Emacs Manual} +This does not depend on one of the libraries linked to Emacs. + +Since all these libraries emit different events on notified file +changes, there is the Emacs library @code{filenotify} which provides a +unique interface. + +@defun file-notify-add-watch file flags callback +Add a watch for filesystem events pertaining to @var{file}. This +arranges for filesystem events pertaining to @var{file} to be reported +to Emacs. + +The returned value is a descriptor for the added watch. Its type +depends on the underlying library, it cannot be assumed to be an +integer as in the example below. It should be used for comparison by +@code{equal} only. + +If the @var{file} cannot be watched for some reason, this function +signals a @code{file-notify-error} error. + +Sometimes, mounted filesystems cannot be watched for file changes. +This is not detected by this function, a non-@code{nil} return value +does not guarantee that changes on @var{file} will be notified. + +@var{flags} is a list of conditions to set what will be watched for. +It can include the following symbols: + +@table @code +@item change +watch for file changes +@item attribute-change +watch for file attribute changes, like permissions or modification +time +@end table + +If @var{file} is a directory, changes for all files in that directory +will be notified. This does not work recursively. + +When any event happens, Emacs will call the @var{callback} function +passing it a single argument @var{event}, which is of the form + +@lisp +(@var{descriptor} @var{action} @var{file} [@var{file1}]) +@end lisp + +@var{descriptor} is the same object as the one returned by this +function. @var{action} is the description of the event. It could be +any one of the following symbols: + +@table @code +@item created +@var{file} was created +@item deleted +@var{file} was deleted +@item changed +@var{file} has changed +@item renamed +@var{file} has been renamed to @var{file1} +@item attribute-changed +a @var{file} attribute was changed +@end table + +@var{file} and @var{file1} are the name of the file(s) whose event is +being reported. For example: + +@example +@group +(require 'filenotify) + @result{} filenotify +@end group + +@group +(defun my-notify-callback (event) + (message "Event %S" event)) + @result{} my-notify-callback +@end group + +@group +(file-notify-add-watch + "/tmp" '(change attribute-change) 'my-notify-callback) + @result{} 35025468 +@end group + +@group +(write-region "foo" nil "/tmp/foo") + @result{} Event (35025468 created "/tmp/.#foo") + Event (35025468 created "/tmp/foo") + Event (35025468 changed "/tmp/foo") + Event (35025468 deleted "/tmp/.#foo") +@end group + +@group +(write-region "bla" nil "/tmp/foo") + @result{} Event (35025468 created "/tmp/.#foo") + Event (35025468 changed "/tmp/foo") [2 times] + Event (35025468 deleted "/tmp/.#foo") +@end group + +@group +(set-file-modes "/tmp/foo" (default-file-modes)) + @result{} Event (35025468 attribute-changed "/tmp/foo") +@end group +@end example + +Whether the action @code{renamed} is returned, depends on the used +watch library. It can be expected, when a directory is watched, and +both @var{file} and @var{file1} belong to this directory. Otherwise, +the actions @code{deleted} and @code{created} could be returned in a +random order. + +@example +@group +(rename-file "/tmp/foo" "/tmp/bla") + @result{} Event (35025468 renamed "/tmp/foo" "/tmp/bla") +@end group + +@group +(file-notify-add-watch + "/var/tmp" '(change attribute-change) 'my-notify-callback) + @result{} 35025504 +@end group + +@group +(rename-file "/tmp/bla" "/var/tmp/bla") + @result{} ;; gfilenotify + Event (35025468 renamed "/tmp/bla" "/var/tmp/bla") + + @result{} ;; inotify + Event (35025504 created "/var/tmp/bla") + Event (35025468 deleted "/tmp/bla") +@end group +@end example +@end defun + +@defun file-notify-rm-watch descriptor +Removes an existing file watch specified by its @var{descriptor}. +@var{descriptor} should be an object returned by +@code{file-notify-add-watch}. +@end defun @node Dynamic Libraries @section Dynamically Loaded Libraries diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index e8b6166f63c..119ad98a53d 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi @@ -483,7 +483,7 @@ Display}. These functions scan text to determine where screen lines break, and thus take time proportional to the distance scanned. If you intend to use them heavily, Emacs provides caches which may improve the -performance of your code. @xref{Truncation, cache-long-line-scans}. +performance of your code. @xref{Truncation, cache-long-scans}. @defun vertical-motion count &optional window This function moves point to the start of the screen line @var{count} diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 4a38fa9ccd5..557add738ba 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1838,6 +1838,7 @@ updates this list. @node Variable Aliases @section Variable Aliases @cindex variable aliases +@cindex alias, for variables It is sometimes useful to make two variables synonyms, so that both variables always have the same value, and changing either one also diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 1f65f687014..13c9ca53222 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2244,8 +2244,9 @@ window and defaults to the selected one. Each list element has the form @code{(@var{buffer} @var{window-start} @var{window-pos})}, where @var{buffer} is a buffer previously shown in -the window, @var{window-start} is the window start position when that -buffer was last shown, and @var{window-pos} is the point position when +the window, @var{window-start} is the window start position +(@pxref{Window Start and End}) when that buffer was last shown, and +@var{window-pos} is the point position (@pxref{Window Point}) when that buffer was last shown in @var{window}. The list is ordered so that earlier elements correspond to more @@ -2328,10 +2329,11 @@ same frame. The following option can be used to override this behavior. @defopt switch-to-visible-buffer If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} may switch to a buffer that is already -visible on the same frame, provided the buffer was shown in the relevant -window before. If it is @code{nil}, @code{switch-to-prev-buffer} and -@code{switch-to-next-buffer} always try to avoid switching to a buffer -that is already visible in another window on the same frame. +visible on the same frame, provided the buffer was shown in the +relevant window before. If it is @code{nil}, +@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} always +try to avoid switching to a buffer that is already visible in another +window on the same frame. The default is @code{t}. @end defopt @@ -2362,6 +2364,7 @@ showing another buffer in that frame's only window. The function @code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is called when a buffer gets killed, deletes the window in case (1) and behaves like @code{delete-windows-on} otherwise. +@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)? When @code{bury-buffer} (@pxref{The Buffer List}) operates on the selected window (which shows the buffer that shall be buried), it @@ -2566,6 +2569,7 @@ so @code{window-point} will stay behind text inserted there. @node Window Start and End @section The Window Start and End Positions @cindex window start position +@cindex display-start position Each window maintains a marker used to keep track of a buffer position that specifies where in the buffer display should start. This position @@ -3191,6 +3195,7 @@ The value returned is @var{columns}. Here is how you can determine whether a given position @var{position} is off the screen due to horizontal scrolling: +@c FIXME: Maybe hscroll-on-screen-p is a better name? @example @group (defun hscroll-on-screen (window position) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 0400a7518dd..c24ef309bf7 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,123 @@ +2013-08-10 Xue Fuqiao + + * ido.texi (Working Directories): + (Flexible Matching, Regexp Matching, Find File At Point) + (Ignoring, Misc Customization): Use @defopt for user options. + +2013-08-09 Xue Fuqiao + + * htmlfontify.texi (Customization): Remove documentation of + `hfy-fast-lock-save'. Minor fixes. + +2013-08-08 Xue Fuqiao + + * ido.texi (Top): Insert node "Working Directories" in menu. + (Working Directories): New node. + (Misc Customization): Add documentation of + `ido-confirm-unique-completion' and some other user options. + +2013-08-07 Eli Zaretskii + + * todo-mode.texi: Update @dircategory. + (Overview, Todo Items as Diary Entries, Todo Mode Entry Points) + (File Editing, Marked Items, Item Prefix): Fix usage of @xref and + @ref. + +2013-08-07 Xue Fuqiao + + * sc.texi (Introduction): Fix index. + (Usage Overview): + (Citations, Citation Elements, Recognizing Citations) + (Information Keys and the Info Alist, Reference Headers) + (The Built-in Header Rewrite Functions) + (Electric References, Reply Buffer Initialization) + (Filling Cited Text, Selecting an Attribution) + (Attribution Preferences) + (Anonymous Attributions, Author Names) + (Using Regi, Post-yank Formatting Commands) + (Citing Commands, Insertion Commands) + (Mail Field Commands) + (Hints to MUA Authors, Thanks and History): Change from one space + between sentences to two. + (What Supercite Does): Typo fix. + + * newsticker.texi (Usage): Use @key for RET. + + * cl.texi (Argument Lists): + (For Clauses): + (Macros): Add indexes. + +2013-08-05 Xue Fuqiao + + * cl.texi (Blocks and Exits): Add an index. + +2013-08-04 Stephen Berman + + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add todo-mode. + (todo-mode, $(buildinfodir)/todo-mode$(INFO_EXT)): + (todo-mode.dvi, todo-mode.pdf): New rules. + + * todo-mode.texi: New file. + +2013-08-01 Lars Magne Ingebrigtsen + + * gnus.texi (Basic Usage): Mention that warp means jump here. + (The notmuch Engine): Mention notmuch. + +2013-07-30 Tassilo Horn + + * gnus.texi (Sorting the Summary Buffer): Document new defcustom + `gnus-subthread-sort-functions' and remove the obsolete documentation + of `gnus-sort-threads-recursively'. + +2013-07-29 David Engster + + * eieio.texi (top): Make clear that EIEIO is not a full CLOS + implementation. + (Introduction): Add further missing features. + (Building Classes): Add introductory paragraph. + (Wish List): Add metaclasses and EQL specialization. + +2013-07-29 Michael Albinus + + * tramp.texi (Frequently Asked Questions): Mention + `tramp-use-ssh-controlmaster-options'. + +2013-07-26 Tassilo Horn + + * gnus.texi (Sorting the Summary Buffer): Document new defcustom + `gnus-sort-threads-recursively'. + +2013-07-25 Glenn Morris + + * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add ido. + (ido, $(buildinfodir)/ido$(INFO_EXT), ido.dvi, ido.pdf): New rules. + + * erc.texi (Special Features): Update contact information. + (History): Avoid using @email. + + * eshell.texi (Bugs and ideas): Minor updates. + + * faq.texi (Reporting bugs, Origin of the term Emacs) + (Setting up a customization file) + (Using an already running Emacs process, Turning off beeping) + (Packages that do not come with Emacs) + (Replying to the sender of a message): Avoid using @email. + + * pcl-cvs.texi (Contributors, Bugs): Avoid using @email. + + * reftex.texi (Imprint): Avoid using @email. + + * ses.texi (Top): Update bug reporting instructions. + (Acknowledgments): Avoid using @email. + + * woman.texi (Introduction, Background): Remove outdated information. + (Bugs, Acknowledgments): Avoid using @email. + +2013-07-24 Xue Fuqiao + + * ido.texi: New file. + 2013-07-19 Geoff Kuenning (tiny change) * gnus.texi (Customizing Articles): Document function predicates. @@ -126,7 +246,7 @@ 2013-05-25 Xue Fuqiao - * flymake.texi: Changing from one space between sentences to two. + * flymake.texi: Change from one space between sentences to two. 2013-05-04 Stefan Monnier @@ -1092,7 +1212,7 @@ corresponding function names, according to `org-agenda-view-mode-dispatch'. -2012-09-30 Jan Bäcker +2012-09-30 Jan Böcker * org.texi (The spreadsheet): Fix typo. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 4fb4865b8a4..7e08c5a2088 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -1,4 +1,4 @@ -#### Makefile for documentation other than the Emacs manual. +### @configure_input@ # Copyright (C) 1994, 1996-2013 Free Software Foundation, Inc. @@ -45,10 +45,10 @@ MAKEINFO_OPTS = --force -I$(emacsdir) INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \ dbus dired-x ebrowse ede ediff edt eieio \ emacs-mime epa erc ert eshell eudc efaq \ - flymake forms gnus emacs-gnutls htmlfontify idlwave info.info \ + flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \ mairix-el message mh-e newsticker nxml-mode \ org pcl-cvs pgg rcirc remember reftex sasl \ - sc semantic ses sieve smtpmail speedbar srecode tramp \ + sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \ url vip viper widget wisent woman DVI_TARGETS = \ @@ -79,6 +79,7 @@ DVI_TARGETS = \ emacs-gnutls.dvi \ htmlfontify.dvi \ idlwave.dvi \ + ido.dvi \ info.dvi \ mairix-el.dvi \ message.dvi \ @@ -99,6 +100,7 @@ DVI_TARGETS = \ smtpmail.dvi \ speedbar.dvi \ srecode.dvi \ + todo-mode.dvi \ tramp.dvi \ url.dvi \ vip.dvi \ @@ -135,6 +137,7 @@ PDF_TARGETS = \ htmlfontify.pdf \ emacs-gnutls.pdf \ idlwave.pdf \ + ido.pdf \ info.pdf \ mairix-el.pdf \ message.pdf \ @@ -155,6 +158,7 @@ PDF_TARGETS = \ smtpmail.pdf \ speedbar.pdf \ srecode.pdf \ + todo-mode.pdf \ tramp.pdf \ url.pdf \ vip.pdf \ @@ -452,6 +456,15 @@ idlwave.dvi: ${srcdir}/idlwave.texi ${gfdl} idlwave.pdf: ${srcdir}/idlwave.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi +ido : $(buildinfodir)/ido$(INFO_EXT) +$(buildinfodir)/ido$(INFO_EXT): ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ido.texi +ido.dvi: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/ido.texi +ido.pdf: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/ido.texi + # NB this one needs --no-split even without a .info extension. # Avoid name clash with overall "info" target. info.info : $(buildinfodir)/info$(INFO_EXT) @@ -634,6 +647,15 @@ srecode.dvi: ${srcdir}/srecode.texi ${gfdl} srecode.pdf: ${srcdir}/srecode.texi ${gfdl} $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi +todo-mode : $(buildinfodir)/todo-mode$(INFO_EXT) +$(buildinfodir)/todo-mode$(INFO_EXT): ${srcdir}/todo-mode.texi ${gfdl} + $(mkinfodir) + $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/todo-mode.texi +todo-mode.dvi: ${srcdir}/todo-mode.texi ${gfdl} + $(ENVADD) $(TEXI2DVI) ${srcdir}/todo-mode.texi +todo-mode.pdf: ${srcdir}/todo-mode.texi ${gfdl} + $(ENVADD) $(TEXI2PDF) ${srcdir}/todo-mode.texi + tramp : $(buildinfodir)/tramp$(INFO_EXT) $(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} $(mkinfodir) diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 90f8a258d23..6dfc41d83f3 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -461,6 +461,7 @@ matter of stylistic taste: @var{body})) @end example +@cindex destructuring, in argument list Argument lists support @dfn{destructuring}. In Common Lisp, destructuring is only allowed with @code{defmacro}; this package allows it with @code{cl-defun} and other argument lists as well. @@ -1492,6 +1493,7 @@ simply returning @code{nil}. @node Blocks and Exits @section Blocks and Exits +@cindex block @noindent Common Lisp @dfn{blocks} provide a non-local exit mechanism very @@ -2139,6 +2141,7 @@ that was just set by the previous clause; in the second loop, based on the value of @code{x} left over from the previous time through the loop. +@cindex destructuring, in cl-loop Another feature of the @code{cl-loop} macro is @emph{destructuring}, similar in concept to the destructuring provided by @code{defmacro} (@pxref{Argument Lists}). @@ -2503,6 +2506,8 @@ if @var{expr} returns a list of the wrong number of arguments or with incorrect keyword arguments. @end defmac +@cindex compiler macros +@cindex define compiler macros This package also includes the Common Lisp @code{define-compiler-macro} facility, which allows you to define compile-time expansions and optimizations for your functions. diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index b16144e98a2..c8e8fb6d2e2 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -46,10 +46,10 @@ modify this GNU manual.'' @comment node-name, next, previous, up @top EIEIO -@eieio{} (``Enhanced Implementation of Emacs Interpreted Objects'') is -a CLOS (Common Lisp Object System) compatibility layer for Emacs Lisp. -It provides a framework for writing object-oriented applications in -Emacs. +@eieio{} (``Enhanced Implementation of Emacs Interpreted Objects'') +provides an Object Oriented layer for Emacs Lisp, following the basic +concepts of the Common Lisp Object System (CLOS). It provides a +framework for writing object-oriented applications in Emacs. @ifnottex @insertcopying @@ -201,8 +201,6 @@ Byte compilation support of methods. @item Help system extensions for classes and methods. @item -Automatic texinfo documentation generator. -@item Several base classes for interesting tasks. @item Simple test suite. @@ -212,20 +210,31 @@ Public and private classifications for slots (extensions to CLOS) Customization support in a class (extension to CLOS) @end enumerate -Here are some CLOS features that @eieio{} presently lacks: +Here are some important CLOS features that @eieio{} presently lacks: @table @asis -@item Complete @code{defclass} tag support -All CLOS tags are currently supported, but the following are not -currently implemented correctly: -@table @code -@item :metaclass -There is only one base superclass for all @eieio{} classes, which is -the @code{eieio-default-superclass}. -@item :default-initargs +@item Method dispatch +EIEO does not support method dispatch for built-in types and multiple +arguments types. In other words, method dispatch only looks at the +first argument, and this one must be an @eieio{} type. + +@item Support for metaclasses +There is just one default metaclass, @code{eieio-default-superclass}, +and you cannot define your own. The @code{:metaclass} tag in +@code{defclass} is ignored. Also, functions like `class-of' and +`find-class', which should return instances of the metaclass, behave +differently in @eieio{} in that they return symbols or plain structures +instead. + +@item EQL specialization +EIEIO does not support it. + +@item @code{:around} method tag +This CLOS method tag is non-functional. + +@item :default-initargs in @code{defclass} Each slot has an @code{:initarg} tag, so this is not really necessary. -@end table @item Mock object initializers Each class contains a mock object used for fast initialization of @@ -233,15 +242,23 @@ instantiated objects. Using functions with side effects on object slot values can potentially cause modifications in the mock object. @eieio{} should use a deep copy but currently does not. -@item @code{:around} method tag -This CLOS method tag is non-functional. - @end table @node Building Classes @comment node-name, next, previous, up @chapter Building Classes +First off, please note that this manual cannot serve as a complete +introduction to object oriented programming and generic functions in +LISP. Although EIEIO is not a complete CLOS implementation and also +differs from CLOS in several aspects, it follows the same basic +concepts. Therefore, it is highly recommended to learn these from a +textbook or tutorial first, especially if you only know OOP from +languages like C++ or Java. If on the other hand you are already +familiar with CLOS, you should be aware that @eieio{} does not implement +the full CLOS specificiation and also differs in some other aspects +(@xref{Introduction}, and @ref{CLOS compatibility}). + A @dfn{class} is a definition for organizing data and methods together. An @eieio{} class has structures similar to the classes found in other object-oriented (OO) languages. @@ -1930,8 +1947,9 @@ Some important compatibility features that would be good to add are: @enumerate @item +Support for metaclasses and EQL specialization. +@item @code{:around} method key. - @item Method dispatch for built-in types. @item diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 33686fd79fd..abf0766ee8f 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -234,9 +234,8 @@ forwards. Different channels and servers may have different language encodings. -In addition, it is possible to translate the messages that ERC uses -into multiple languages. Please contact the developers of Emacs at -@email{emacs-devel@@gnu.org} if you are interested in helping with the +multiple languages. Please contact the Emacs developers +if you are interested in helping with the translation effort. @item user scripting @@ -784,9 +783,9 @@ To report a bug in ERC, use @kbd{M-x report-emacs-bug}. @chapter History @cindex history, of ERC -ERC was originally written by Alexander L. Belikoff -@email{abel@@bfr.co.il} and Sergey Berezin -@email{sergey.berezin@@cs.cmu.edu}. They stopped development around +@c abel@@bfr.co.il, sergey.berezin@@cs.cmu.edu +ERC was originally written by Alexander L. Belikoff and Sergey Berezin. +They stopped development around December 1999. Their last released version was ERC 2.0. P.S.: If one of the original developers of ERC reads this, we'd like to @@ -796,8 +795,9 @@ general. @itemize @item 2001 -In June 2001, Mario Lang @email{mlang@@delysid.org} and Alex Schroeder -@email{alex@@gnu.org} took over development and created a ERC Project at +@c mlang@@delysid.org, alex@@gnu.org +In June 2001, Mario Lang and Alex Schroeder +took over development and created a ERC Project at @uref{http://sourceforge.net/projects/erc}. In reaction to a mail about the new ERC development effort, Sergey @@ -825,7 +825,8 @@ ERC 4.0 was released. @item 2005 -ERC 5.0 was released. Michael Olson @email{mwolson@@gnu.org} became +@c mwolson@@gnu.org +ERC 5.0 was released. Michael Olson became the release manager and eventually the maintainer. After some discussion between him and the Emacs developers, it was diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index bd0ac0828cc..4604b262e72 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -819,16 +819,18 @@ Eshell module.} You also need to load the following as shown: @cindex known bugs @cindex bugs, known -If you find a bug or misfeature, don't hesitate to let me know! Send -email to @email{johnw@@gnu.org}. Feature requests should also be sent -there. I prefer discussing one thing at a time. If you find several +If you find a bug or misfeature, don't hesitate to report it, by +using @kbd{M-x report-emacs-bug}. The same applies to feature requests. +It is best to discuss one thing at a time. If you find several unrelated bugs, please report them separately. +@ignore If you have ideas for improvements, or if you have written some extensions to this package, I would like to hear from you. I hope you find this package useful! +@end ignore -Below is a complete list of known problems with Eshell version 2.4.2, +Below is a list of some known problems with Eshell version 2.4.2, which is the version included with Emacs 22. @table @asis diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi index 18e3340a474..1354f68cc9f 100644 --- a/doc/misc/faq.texi +++ b/doc/misc/faq.texi @@ -444,9 +444,9 @@ mail-to-news gateway). The correct way to report Emacs bugs is to use the command @kbd{M-x report-emacs-bug}. It sets up a mail buffer with the -essential information and the correct e-mail address, which is -@email{bug-gnu-emacs@@gnu.org} for the released versions of Emacs. -Anything sent to @email{bug-gnu-emacs@@gnu.org} also appears in the +essential information and the correct e-mail address, +@email{bug-gnu-emacs@@gnu.org}. +Anything sent there also appears in the newsgroup @uref{news:gnu.emacs.bug}, but please use e-mail instead of news to submit the bug report. This ensures a reliable return address so you can be contacted for further details. @@ -459,13 +459,17 @@ report (@pxref{Bugs, , Reporting Bugs, emacs, The GNU Emacs Manual}). RMS says: @quotation -Sending bug reports to @email{help-gnu-emacs@@gnu.org} (which has the -effect of posting on @uref{news:gnu.emacs.help}) is undesirable because -it takes the time of an unnecessarily large group of people, most of -whom are just users and have no idea how to fix these problem. -@email{bug-gnu-emacs@@gnu.org} reaches a much smaller group of people -who are more likely to know what to do and have expressed a wish to -receive more messages about Emacs than the others. +Sending bug reports to +@url{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs, +the help-gnu-emacs mailing list} +(which has the effect of posting on @uref{news:gnu.emacs.help}) is +undesirable because it takes the time of an unnecessarily large group +of people, most of whom are just users and have no idea how to fix +these problem. +@url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs, The +bug-gnu-emacs list} reaches a much smaller group of people who are +more likely to know what to do and have expressed a wish to receive +more messages about Emacs than the others. @end quotation RMS says it is sometimes fine to post to @uref{news:gnu.emacs.help}: @@ -960,7 +964,8 @@ by RMS for the editor TECO (Text Editor and COrrector, originally Tape Editor and COrrector) under ITS (the Incompatible Timesharing System) on a PDP-10. RMS had already extended TECO with a ``real-time'' full-screen mode with reprogrammable keys. Emacs was started by -@email{gls@@east.sun.com, Guy Steele} as a project to unify the many +@c gls@@east.sun.com +Guy Steele as a project to unify the many divergent TECO command sets and key bindings at MIT, and completed by RMS. @@ -1340,7 +1345,9 @@ of files from Macintosh, Microsoft, and Unix platforms. In general, new Emacs users should not be provided with @file{.emacs} files, because this can cause confusing non-standard behavior. Then -they send questions to @email{help-gnu-emacs@@gnu.org} asking why Emacs +they send questions to +@url{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs, +the help-gnu-emacs mailing list} asking why Emacs isn't behaving as documented. Emacs includes the Customize facility (@pxref{Using Customize}). This @@ -1805,7 +1812,8 @@ requested by @code{emacsclient}, Emacs will switch to it; otherwise @cindex @code{gnuserv} There is an alternative version of @samp{emacsclient} called -@samp{gnuserv}, written by @email{ange@@hplb.hpl.hp.com, Andy Norman} +@c ange@@hplb.hpl.hp.com +@samp{gnuserv}, written by Andy Norman (@pxref{Packages that do not come with Emacs}). @samp{gnuserv} uses Internet domain sockets, so it can work across most network connections. @@ -1973,7 +1981,8 @@ On some systems, @key{Insert} toggles @code{overwrite-mode} on and off. @cindex Visible bell @cindex Bell, visible -@email{martin@@cc.gatech.edu, Martin R. Frank} writes: +@c martin@@cc.gatech.edu +Martin R. Frank writes: Tell Emacs to use the @dfn{visible bell} instead of the audible bell, and set the visible bell to nothing. @@ -3304,7 +3313,7 @@ to get more details about the features that it offers, and then if you wish, Emacs can download and automatically install it for you. @uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html, The Emacs Lisp -List (ELL)}, maintained by @email{S.J.Eglen@@damtp.cam.ac.uk, Stephen Eglen}, +List (ELL)}, maintained by Stephen Eglen, aims to provide one compact list with links to all of the current Emacs Lisp files on the Internet. The ELL can be browsed over the web, or from Emacs with @uref{http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.el, @@ -4313,7 +4322,8 @@ these systems, you should configure @code{movemail} to use @code{flock}. @cindex Sender, replying only to @cindex Rmail, replying to the sender of a message in -@email{isaacson@@seas.upenn.edu, Ron Isaacson} says: When you hit +@c isaacson@@seas.upenn.edu +Ron Isaacson says: When you hit @key{r} to reply in Rmail, by default it CCs all of the original recipients (everyone on the original @samp{To} and @samp{CC} lists). With a prefix argument (i.e., typing @kbd{C-u} before @key{r}), diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index be0425a679b..4edc1d62f1a 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -7394,6 +7394,14 @@ say something like: gnus-thread-sort-by-score)) @end lisp +By default, threads including their subthreads are sorted according to +the value of @code{gnus-thread-sort-functions}. By customizing +@code{gnus-subthread-sort-functions} you can define a custom sorting +order for subthreads. This allows for example to sort threads from +high score to low score in the summary buffer, but to have subthreads +still sorted chronologically from old to new without taking their +score into account. + @vindex gnus-thread-score-function The function in the @code{gnus-thread-score-function} variable (default @code{+}) is used for calculating the total score of a thread. Useful @@ -21101,17 +21109,17 @@ the articles that match this query, and takes you to a summary buffer showing these articles. Articles may then be read, moved and deleted using the usual commands. -The @code{nnir} group made in this way is an @code{ephemeral} group, and -some changes are not permanent: aside from reading, moving, and +The @code{nnir} group made in this way is an @code{ephemeral} group, +and some changes are not permanent: aside from reading, moving, and deleting, you can't act on the original article. But there is an -alternative: you can @emph{warp} to the original group for the article -on the current line with @kbd{A W}, aka +alternative: you can @emph{warp} (i.e., jump) to the original group +for the article on the current line with @kbd{A W}, aka @code{gnus-warp-to-article}. Even better, the function -@code{gnus-summary-refer-thread}, bound by default in summary buffers to -@kbd{A T}, will first warp to the original group before it works its -magic and includes all the articles in the thread. From here you can -read, move and delete articles, but also copy them, alter article marks, -whatever. Go nuts. +@code{gnus-summary-refer-thread}, bound by default in summary buffers +to @kbd{A T}, will first warp to the original group before it works +its magic and includes all the articles in the thread. From here you +can read, move and delete articles, but also copy them, alter article +marks, whatever. Go nuts. You say you want to search more than just the group on the current line? No problem: just process-mark the groups you want to search. You want @@ -21153,6 +21161,7 @@ query language anyway. * The swish++ Engine:: Swish++ configuration and usage. * The swish-e Engine:: Swish-e configuration and usage. * The namazu Engine:: Namazu configuration and usage. +* The notmuch Engine:: Notmuch configuration and usage. * The hyrex Engine:: Hyrex configuration and usage. * Customizations:: User customizable settings. @end menu @@ -21382,6 +21391,26 @@ mknmz --mailnews ~/Mail/archive/ ~/Mail/mail/ ~/Mail/lists/ For maximum searching efficiency you might want to have a cron job run this command periodically, say every four hours. + +@node The notmuch Engine +@subsubsection The notmuch Engine + +@table @code +@item nnir-notmuch-program +The name of the notmuch search executable. Defaults to +@samp{notmuch}. + +@item nnir-notmuch-additional-switches +A list of strings, to be given as additional arguments to notmuch. + +@item nnir-notmuch-remove-prefix +The prefix to remove from each file name returned by notmuch in order +to get a group name (albeit with @samp{/} instead of @samp{.}). This +is a regular expression. + +@end table + + @node The hyrex Engine @subsubsection The hyrex Engine This engine is obsolete. diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi index e45234872e2..4bb6a9d6900 100644 --- a/doc/misc/htmlfontify.texi +++ b/doc/misc/htmlfontify.texi @@ -1275,6 +1275,7 @@ normally be applied. @vindex hfy-html-quote-regex @anchor{hfy-html-quote-regex} +@c FIXME: the cross-reference below looks ugly Regex to match (with a single back-reference per match) strings in HTML which should be quoted with @ref{hfy-html-quote} (and @pxref{hfy-html-quote-map}) to make them safe. @@ -1340,31 +1341,6 @@ See also: @ref{hfy-page-footer} String to add to the @samp{