This commit is contained in:
Joakim Verona 2012-07-27 02:22:03 +02:00
commit 5fb6319784
669 changed files with 31672 additions and 21406 deletions

View file

@ -2,6 +2,7 @@
(sentence-end-double-space . t)
(fill-column . 70)))
(c-mode . ((c-file-style . "GNU")))
(objc-mode . ((c-file-style . "GNU")))
;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work.
;; See admin/notes/bugtracker.
(log-edit-mode . ((log-edit-rewrite-fixes

380
ChangeLog
View file

@ -1,3 +1,363 @@
2012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
Fix toolkit configuration report.
* configure.ac (USE_X_TOOLKIT): Report toolkit as GTK3 if
--with-x-toolkit=gtk3 is used.
2012-07-17 Paul Eggert <eggert@cs.ucla.edu>
Fix regression with pthread_sigmask on FreeBSD (Bug#11884).
* configure.ac: Configure gnulib at the end, not before running
pkg-config. This restores the behavior before 2012-06-22, when
higher-resolution time stamps were added, and fixes a bug whereby
LIB_PTHREAD was not used and gnulib's part of 'configure'
therefore incorrectly assumed that pthread_sigmask wasn't working.
Fix the problem with -lrt and clock_gettime a different way.
This should complete the fix for Bug#11884.
(pre_PKG_CONFIG_CFLAGS, pre_PKG_CONFIG_LIBS): New shell vars.
2012-07-15 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2012-07-15 pthread_sigmask: fix bug on FreeBSD 9 (Bug#11884)
2012-07-11 gettext: do not assume '#define ... defined ...' behavior
2012-07-14 Glenn Morris <rgm@gnu.org>
* configure.ac (GC_SETJMP_WORKS, GC_MARK_STACK): Move here from src/s.
(AH_BOTTOM): Move GC_SETJMP_WORKS GCC fallback to main body.
2012-07-13 Glenn Morris <rgm@gnu.org>
* configure.ac (opsysfile): Set to empty on gnu, cygwin.
* configure.ac (BSD4_2, BSD_SYSTEM, USG, USG5, _AIX, CYGWIN)
(DARWIN_OS, GNU_LINUX, HPUX, IRIX6_5, SOLARIS2):
Move "system type" macros here from src/s.
(BSD_SYSTEM_AHB): New hack macro.
(AH_BOTTOM): Set BSD_SYSTEM, using BSD_SYSTEM_AHB.
* configure.ac (NSIG_MINIMUM, ULIMIT_BREAK_VALUE, SETUP_SLAVE_PTY)
(GC_MARK_SECONDARY_STACK): Move here from src/s.
2012-07-12 Glenn Morris <rgm@gnu.org>
* configure.ac (AH_BOTTOM) [DARWIN_OS]: Move SYSTEM_PURESIZE_EXTRA
setting here from src/s/darwin.h.
* configure.ac (NO_MATHERR): Unconditionally define for Darwin;
as src/s/darwin.h used to.
* configure.ac (NARROWPROTO, NO_ABORT, BROKEN_GET_CURRENT_DIR_NAME)
(BROKEN_FIONREAD, BROKEN_PTY_READ_AFTER_EAGAIN, BROKEN_SIGAIO)
(BROKEN_SIGPOLL, BROKEN_SIGPTY, FIRST_PTY_LETTER, NO_EDITRES)
(G_SLICE_ALWAYS_MALLOC, PREFER_VSUSP, PTY_ITERATION, PTY_OPEN)
(PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF, RUN_TIME_REMAP)
(SETPGRP_RELEASES_CTTY, TAB3, TABDLY, RUN_TIME_REMAP, UNIX98_PTYS)
(XOS_NEEDS_TIME_H): Move here from src/s.
2012-07-11 Glenn Morris <rgm@gnu.org>
* configure.ac (INTERRUPT_INPUT): Move here from src/s.
(HAVE_PTYS, HAVE_SOCKETS): Define unconditionally.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
* configure.ac (tzset): Remove check that's redundant with gnulib.
2012-07-11 Glenn Morris <rgm@gnu.org>
* configure.ac (CLASH_DETECTION): Define unconditionally.
* configure.ac (opsysfile): Use bsd-common on gnu systems.
* configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT):
(SIGNALS_VIA_CHARACTERS): Move here from src/s.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
Assume mkdir, rename, rmdir, strerror.
* configure.ac (mkdir, rename, rmdir, strerror): Remove check.
2012-07-11 Glenn Morris <rgm@gnu.org>
* configure.ac (DONT_REOPEN_PTY): Move here from src/s.
* configure.ac (DEFAULT_SOUND_DEVICE): New definition.
2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
Remove "#define unix" that is no longer needed (Bug#11905).
Merge from gnulib to make "#define unix" unnecessary, incorporating:
2012-07-10 getloadavg: clean out old Emacs and Autoconf cruft
2012-07-09 getopt: Simplify after Emacs changed.
2012-07-10 Glenn Morris <rgm@gnu.org>
* configure.ac (DATA_START, DATA_SEG_BITS, PENDING_OUTPUT_COUNT):
Move here from src/s.
2012-07-09 Andreas Schwab <schwab@linux-m68k.org>
* configure.ac (PNG_DEPSTRUCT): Define this instead of
PNG_DEPRECATED.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
Add GCC-style 'const' attribute to functions that can use it.
* configure.ac (WARN_CFLAGS): Add -Wsuggest-attribute=const.
(ATTRIBUTE_CONST): New macro, in config.h.
2012-07-09 Juanma Barranquero <lekktu@gmail.com>
* lib/makefile.w32-in: Rework dependencies.
(GNU_LIB, NT_INC, C_CTYPE_H, MS_W32_H, CONFIG_H, FILEMODE_H)
(FTOASTR_H, FTOASTR_C, GETOPT_INT_H, MD5_H, SHA1_H, SHA256_H)
(U64_H, SHA512_H): New macros.
(SRC): Redefine to point to src/, not current directory.
($(BLD)/c-ctype.$(O), $(BLD)/c-strcasecmp.$(O))
($(BLD)/c-strncasecmp.$(O), $(BLD)/dtoastr.$(O))
($(BLD)/dtotimespec.$(O), $(BLD)/getopt.$(O), $(BLD)/getopt1.$(O))
($(BLD)/gettime.$(O), $(BLD)/strftime.$(O), $(BLD)/time_r.$(O))
($(BLD)/timespec-add.$(O), $(BLD)/timespec-sub.$(O), $(BLD)/md5.$(O))
($(BLD)/sha1.$(O), $(BLD)/sha256.$(O), $(BLD)/sha512.$(O))
($(BLD)/filemode.$(O)): Update dependencies.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2012-07-09 timespec: mark functions with const attributes
Rename configure.in to configure.ac (Bug#11603).
The name 'configure.in' has been obsolescent for quite some time,
and the next release of Autoconf will generate warnings for it.
See commit 'v2.69-4-g560f16b' of 2012-05-06, "general: deprecate
'configure.in' as autoconf input" in the Autoconf git repository.
* configure.ac: Rename from configure.in.
* INSTALL, INSTALL.BZR, README, make-dist:
* Makefile.in (AUTOCONF_INPUTS):
* autogen.sh (autoconf_min):
* autogen/update_autogen (sources):
Adjust to reflect new name.
2012-07-08 Paul Eggert <eggert@cs.ucla.edu>
Restore deprecation warnings, except for older libpng.
* configure.in (WARN_CFLAGS): Remove -Wno-deprecated-declarations.
(HAVE_LIBPNG_PNG_H): Don't bother checking for this if we have png.h.
(PNG_DEPRECATED): Define when compiling with older PNG versions.
2012-07-07 Andreas Schwab <schwab@linux-m68k.org>
* configure.in (WARN_CFLAGS): Add -Wno-deprecated-declarations.
2012-07-07 Paul Eggert <eggert@cs.ucla.edu>
Improve static checking when configured --with-ns.
See Samuel Bronson's remarks in
<http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00146.html>.
* configure.in (WARN_CFLAGS): Omit -Wunreachable-code, as it's
a no-op with recent GCC and harmful in earlier ones.
Omit -Wsync-nand, as it's irrelevant to Emacs and provokes a
warning when compiling with ObjC. Always omit
-Wunsafe-loop-optimizations, as we don't mind when optimization is
being done correctly.
2012-07-07 Glenn Morris <rgm@gnu.org>
* configure.in (BROKEN_SA_RESTART): Doc fix.
* configure.in: Rather than checking for things then undef'ing
them on some platforms, simply don't check for them.
(getwd): Don't check for it on unixware.
(random, rint): Don't check for these on hpux.
(res_init, libresolv): Don't check for these on darwin.
2012-07-07 Juanma Barranquero <lekktu@gmail.com>
* lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/c-ctype.$(O),
$(BLD)/c-strcasecmp.$(O) and $(BLD)/c-strncasecmp.$(O).
($(BLD)/c-ctype.$(O), $(BLD)/c-strcasecmp.$(O))
($(BLD)/c-strncasecmp.$(O)): New dependencies.
2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
* configure.in: Document --enable-gcc-warnings better.
Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
This is safer than strcasecmp, which has unspecified behavior
outside the POSIX locale and in practice sometimes does not work
in multibyte locales. Similarly for c_strncasecmp and strncasecmp.
* configure.in (strcasecmp, strncasecmp): Remove checks.
* lib/c-ctype.c, lib/c-ctype.h, lib/c-strcase.h, lib/c-strcasecmp.c:
* lib/c-strncasecmp.c: New files, taken from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
Merge from gnulib, incorporating:
2012-07-06 timespec-sub: avoid duplicate include
Reported by Juanma Barranquero.
2012-07-06 Glenn Morris <rgm@gnu.org>
* make-dist [update]: Let autoreconf figure out what needs updating.
Use `make info-real'. leim/leim-list.el should always exist.
Check cd return value.
2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib. This is for OpenBSD 5.1 amd64.
* m4/sys_time_h.m4: New version from gnulib, incorporating:
2012-07-05 sys_time: allow too-wide tv_sec
2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib.
* lib/alloca.in.h: New version from gnulib, incorporating:
2012-07-03 alloca: add support for HP NonStop TNS/E native
2012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in: If --enable-gcc-warnings, disable
-Wunsafe-loop-optimizations for -O1 optimization level.
2012-06-30 Glenn Morris <rgm@gnu.org>
* configure.in (standardlisppath): New output variable.
(lisppath): Use standardlisppath.
* Makefile.in (standardlisppath): New, set by configure.
(epaths-force): Use standardlisppath and locallisppath rather than
lisppath.
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in: Fix previous change. Remove --enable-asserts.
(CPPFLAGS): Remove conditional -DXASSERTS=1.
Add --enable-link-time-optimization.
* INSTALL: Mention this.
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in: Add glyphs category to --enable-checking option.
(GLYPH_DEBUG): Define if glyphs debugging is enabled.
2012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in (ENABLE_CHECKING): Update comment.
2012-06-28 Paul Eggert <eggert@cs.ucla.edu>
* configure.in: Don't check for sys/select.h, sys/time.h, utime.h.
Emacs proper no longer uses these headers, and can rely on Gnulib
for these checks.
Merge from gnulib.
* m4/getopt.m4: Copy new version from gnulib, incorporating:
getopt-posix: No longer guarantee that option processing is resettable.
2012-06-27 Glenn Morris <rgm@gnu.org>
* configure.in: Only check for paxctl on gnu-linux. (Bug#11398#26)
* INSTALL: Remove references to paths.el.
2012-06-26 Eli Zaretskii <eliz@gnu.org>
* lib/makefile.w32-in ($(GNULIBOBJS)): Depend on stamp_BLD. This
replaces separate dependency for each object file, which required
the same object file to be mentioned twice, causing failures in
parallel builds.
2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
Clean out last vestiges of the old HAVE_CONFIG_H stuff.
* lib/makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
* configure.in (AC_CHECK_FUNCS): Detect library functions
strcasecmp and strncasecmp.
2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
We might as well use the spelling standardized by C11,
as in the long run that should simplify maintenance.
* configure.in (NO_RETURN): Remove. All uses replaced by _Noreturn.
2012-06-24 Eli Zaretskii <eliz@gnu.org>
* lib/makefile.w32-in ($(BLD)/dtotimespec.$(O)):
($(BLD)/timespec-add.$(O)):
($(BLD)/timespec-sub.$(O)): Don't depend on
$(EMACS_ROOT)/nt/inc/sys/time.h.
* lib/stat-time.h:
* lib/timespec.h:
* lib/utimens.h: Revert last change.
2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib.
* m4/getopt.m4: Copy new version from gnulib, incorporating:
getopt-gnu: Handle suboptimal getopt_long's abbreviation handling.
2012-06-23 Eli Zaretskii <eliz@gnu.org>
Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
* lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/dtotimespec.$(O),
$(BLD)/gettime.$(O), $(BLD)/timespec-add.$(O), and
$(BLD)/timespec-sub.$(O).
($(BLD)/dtotimespec.$(O)):
($(BLD)/gettime.$(O)):
($(BLD)/timespec-add.$(O)):
($(BLD)/timespec-sub.$(O)): New dependencies.
* lib/stat-time.h:
* lib/timespec.h:
* lib/utimens.h: Include sys/time.h.
2012-06-23 Andreas Schwab <schwab@linux-m68k.org>
* configure.in: Don't use AC_CHECK_FUNCS_ONCE, which doesn't use
the correct CFLAGS and LIBS.
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Support higher-resolution time stamps (Bug#9000).
* configure.in (gl_ASSERT_NO_GNULIB_POSIXCHECK)
(gl_ASSERT_NO_GNULIB_TESTS, gl_INIT): Move these up earlier, so
that the new clock stuff doesn't clash with RSVG_LIBS.
(AC_CHECK_HEADERS): Don't check for sys/select.h, sys/time.h, utime.h,
as gnulib does that for us now.
(emacs_cv_struct_utimbuf, HAVE_STRUCT_UTIMBUF, HAVE_TIMEVAL)
(GETTIMEOFDAY_ONE_ARGUMENT): Remove; gnulib does these now.
(AC_CHECK_FUNCS): Remove utimes; no longer needed.
* lib/dtotimespec.c, lib/gettime.c, lib/gettimeofday.c, lib/pselect.c:
* lib/stat-time.h, lib/sys_select.in.h, lib/sys_time.in.h:
* lib/timespec-add.c, lib/timespec-sub.c, lib/timespec.h:
* lib/utimens.c, lib/utimens.h, m4/clock_time.m4, m4/gettime.m4:
* m4/gettimeofday.m4, m4/pselect.m4, m4/stat-time.m4:
* m4/sys_select_h.m4, m4/sys_socket_h.m4, m4/sys_time_h.m4:
* m4/timespec.m4, m4/utimbuf.m4, m4/utimens.m4, m4/utimes.m4:
New files, copied automatically from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Merge from gnulib.
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib.
* lib/filemode.h, lib/signal.in.h, lib/stat.c, lib/stdint.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/extensions.m4, m4/getloadavg.m4:
* m4/getopt.m4, m4/gnulib-common.m4, m4/largefile.m4, m4/mktime.m4:
* m4/multiarch.m4, m4/nocrash.m4, m4/stdio_h.m4, m4/time_r.m4:
Copy new versions from gnulib, incorporating the following changes:
2012-06-22 time_r: fix typo that always overrode localtime_r decl
2012-06-22 Write "Mac OS X" instead of "MacOS X".
2012-06-21 mktime: fix integer overflow in 'configure'-time test
2012-06-21 nonblocking: Avoid compilation error on mingw64.
2012-06-19 stat, fstat: Avoid warnings on mingw64.
2012-06-19 getopt-gnu: Fix exit code overflow in autoconf test.
2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
* configure.in: Rename --enable-use-lisp-union-type to
@ -610,7 +970,7 @@
2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
Port HAVE_PTHREAD configuration to MirBSD 10 (Bug#10201).
* configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking
* configure.in (HAVE_PTHREAD): Check for pthread_atfork if linking
to gmalloc.c. This should prevent a MirBSD 10 build failure reported
by Nelson H. F. Beebe in
<http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00065.html>.
@ -4690,7 +5050,7 @@
2005-06-08 Steven Tamm <steventamm@mac.com>
* configure.in: Support Darwin/MacOSX on Intel
* configure.in: Support Darwin/MacOSX on Intel.
2005-06-06 Jan Djärv <jan.h.d@swipnet.se>
@ -4820,7 +5180,7 @@
2004-10-08 Steven Tamm <steventamm@mac.com>
* configure.in (HAVE_MALLOC_MALLOC_H): Test for malloc/malloc.h
* configure.in (HAVE_MALLOC_MALLOC_H): Test for malloc/malloc.h.
2004-10-06 Jan Djärv <jan.h.d@swipnet.se>
@ -5175,7 +5535,7 @@
2003-01-19 Jan Djärv <jan.h.d@swipnet.se>
* configure.in: Add --with-gtk, --with-x-toolkit=gtk
* configure.in: Add --with-gtk, --with-x-toolkit=gtk.
* INSTALL (DETAILED BUILDING AND INSTALLATION): Add text about GTK.
@ -5188,7 +5548,7 @@
* configure.in: New option, --enable-carbon-app, to specify
that the application should be installed
* Makefile.in (install-arch-dep): On Mac OS X, install the
Emacs.app application if carbon-app is enabled
Emacs.app application if carbon-app is enabled.
2003-01-06 Dave Love <fx@gnu.org>
@ -7667,7 +8027,7 @@
1995-09-30 Richard Stallman <rms@mole.gnu.ai.mit.edu>
* configure.in (powerpc-*-solaris2): New alternative.x
* configure.in (powerpc-*-solaris2): New alternative.
1995-09-12 Karl Heuer <kwzh@gnu.ai.mit.edu>
@ -8181,11 +8541,11 @@
1994-09-21 Richard Stallman <rms@mole.gnu.ai.mit.edu>
* configure.in (i[345]86-sequent-ptx*): Handle
* configure.in (i[345]86-sequent-ptx*): Handle.
1994-09-20 Richard Stallman <rms@mole.gnu.ai.mit.edu>
* Makefile.in (paths-force): Depend on src/paths.h
* Makefile.in (paths-force): Depend on src/paths.h.
1994-09-19 Karl Heuer <kwzh@hal.gnu.ai.mit.edu>
@ -8193,7 +8553,7 @@
1994-09-18 Karl Heuer <kwzh@hal.gnu.ai.mit.edu>
* Makefile.in (install-arch-indep): Copy DOC-*, not DOC*
* Makefile.in (install-arch-indep): Copy DOC-*, not DOC*.
* configure.in: Add AC_AIX.
Add checks to set HAVE_STRUCT_UTIMBUF, HAVE_TIMEVAL, HAVE_SELECT.
@ -9026,7 +9386,7 @@
1993-09-12 Roland McGrath (roland@sugar-bombs.gnu.ai.mit.edu)
* make-dist: Dist vpath.sed
* make-dist: Dist vpath.sed.
* Makefile.in (lib-src/Makefile, src/Makefile, oldXMenu/Makefile):
Depend on vpath.sed.

49
INSTALL
View file

@ -323,6 +323,13 @@ and is useful with GNU-compatible compilers. On a recent GNU system
there should be no warnings; on older and on non-GNU systems the
generated warnings may still be useful.
Use --enable-link-time-optimization to enable link-time optimizer, which
is available in GNU compiler since version 4.5.0. If your compiler is not
GNU or older than version 4.5.0, this option does nothing. If `configure'
can determine number of online CPUS on your system, final link-time
optimization and code generation is executed in parallel using one job
per each available online CPU.
The `--prefix=PREFIXDIR' option specifies where the installation process
should put emacs and its data files. This defaults to `/usr/local'.
- Emacs (and the other utilities users run) go in PREFIXDIR/bin
@ -429,11 +436,19 @@ that supports the `VPATH' variable, such as GNU `make'.
to the real source directory--there is no need, and installation will
fail.)
4) Look at `./lisp/paths.el'; if some of those values are not right
for your system, set up the file `./lisp/site-init.el' with Emacs
Lisp code to override them; it is not a good idea to edit paths.el
itself. YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
rather than `defvar', as used by `./lisp/paths.el'. For example,
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
Lisp code you want Emacs to load before it is dumped out. Use
site-load.el for additional libraries if you arrange for their
documentation strings to be in the etc/DOC file (see
src/Makefile.in if you wish to figure out how to do that). For all
else, use site-init.el. Do not load byte-compiled code which
was built with a non-nil value of `byte-compile-dynamic'.
It is not a good idea to edit the normal .el files that come with Emacs.
Instead, use a file like site-init.el to change settings.
To change the value of a variable that is already defined in Emacs,
you should use the Lisp function `setq', not `defvar'. For example,
(setq news-inews-program "/usr/bin/inews")
@ -445,14 +460,6 @@ variable gets by default! Make sure you know what kind of value the
variable should have. If you don't pay attention to what you are
doing, you'll make a mistake.
5) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
Lisp code you want Emacs to load before it is dumped out. Use
site-load.el for additional libraries if you arrange for their
documentation strings to be in the etc/DOC file (see
src/Makefile.in if you wish to figure out how to do that). For all
else, use site-init.el. Do not load byte-compiled code which
was built with a non-nil value of `byte-compile-dynamic'.
If you set load-path to a different value in site-init.el or
site-load.el, Emacs will use *precisely* that value when it starts up
again. If you do this, you are on your own!
@ -460,10 +467,10 @@ again. If you do this, you are on your own!
The `site-*.el' files are nonexistent in the distribution. You do not
need to create them if you have nothing to put in them.
6) Refer to the file `./etc/TERMS' for information on fields you may
5) Refer to the file `./etc/TERMS' for information on fields you may
wish to add to various termcap entries. (This is unlikely to be necessary.)
7) Run `make' in the top directory of the Emacs distribution to finish
6) Run `make' in the top directory of the Emacs distribution to finish
building Emacs in the standard way. The final executable file is
named `src/emacs'. You can execute this file "in place" without
copying it, if you wish; then it automatically uses the sibling
@ -534,15 +541,15 @@ for its Lisp files by giving values for `make' variables as part of
the command. See the section below called `MAKE VARIABLES' for more
information on this.
8) Check the file `dir' in your site's info directory (usually
7) Check the file `dir' in your site's info directory (usually
/usr/local/share/info) to make sure that it has a menu entry for the
Emacs info files.
9) If your system uses lock files to interlock access to mailer inbox files,
8) If your system uses lock files to interlock access to mailer inbox files,
then you might need to make the movemail program setuid or setgid
to enable it to write the lock files. We believe this is safe.
10) You are done! You can remove executables and object files from
9) You are done! You can remove executables and object files from
the build directory by typing `make clean'. To also remove the files
that `configure' created (so you can compile Emacs for a different
configuration), type `make distclean'. If you don't need some, or all
@ -676,9 +683,9 @@ changing the s/*.h and m/*.h files.
corresponding `Makefile.in' files. This isn't so hard, just a matter
of editing in appropriate substitutions for the @...@ constructs.
The `configure' script is built from `configure.in' by the `autoconf'
The `configure' script is built from `configure.ac' by the `autoconf'
program. You need at least the version of autoconf specified in the
AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
AC_PREREQ(...) command to rebuild `configure' from `configure.ac'.
BUILDING GNU EMACS BY HAND
@ -727,7 +734,7 @@ Strictly speaking, not all of the executables in `./lib-src' need be copied.
used in building Emacs, and are not needed any more.
2) Copy the files in `./info' to the place specified in
`./lisp/site-init.el' or `./lisp/paths.el'. Note that if the
`./lisp/site-init.el' or `./lisp/info.el'. Note that if the
destination directory already contains a file named `dir', you
probably don't want to replace it with the `dir' file in the Emacs
distribution. Instead, you should make sure that the existing `dir'

View file

@ -8,7 +8,7 @@ Building Emacs from Bazaar requires some tools that are not needed
when building from a release. You will need:
autoconf - at least the version specified near the start of
configure.in (in the AC_PREREQ command).
configure.ac (in the AC_PREREQ command).
automake - we recommend at least version 1.11.
makeinfo - not strictly necessary, but highly recommended, so that
you can build the manuals.

View file

@ -186,16 +186,20 @@ iconsrcdir=$(srcdir)/etc/images/icons
lispdir=@lispdir@
leimdir=@leimdir@
# Directories Emacs should search for lisp files specific
# to this site (i.e. customizations), before consulting
# ${lispdir}. This should be a colon-separated list of
# directories.
# Directories Emacs should search for standard lisp files.
# The default is ${lispdir}:${leimdir}.
standardlisppath=@standardlisppath@
# Directories Emacs should search for lisp files specific to this
# site (i.e. customizations), before consulting ${standardlisppath}.
# This should be a colon-separated list of directories.
locallisppath=@locallisppath@
# Where Emacs will search to find its lisp files. Before
# changing this, check to see if your purpose wouldn't
# better be served by changing locallisppath. This
# should be a colon-separated list of directories.
# The default is ${locallisppath}:${standardlisppath}.
lisppath=@lisppath@
# Where Emacs will search for its lisp files while
@ -277,16 +281,18 @@ all: ${SUBDIR}
removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
# Generate epaths.h from epaths.in. This target is invoked by `configure'.
# See comments in configure.in for why it is done this way, as opposed
# See comments in configure.ac for why it is done this way, as opposed
# to just letting configure generate epaths.h from epaths.in in a
# similar way to how Makefile is made from Makefile.in.
epaths-force: FRC
@(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
@(standardlisppath=`echo ${standardlisppath} | ${removenullpaths}` ; \
locallisppath=`echo ${locallisppath} | ${removenullpaths}` ; \
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
x_default_search_path=`echo ${x_default_search_path}`; \
gamedir=`echo ${gamedir}`; \
sed < ${srcdir}/src/epaths.in > epaths.h.$$$$ \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'"$${lisppath}"'";' \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'"$${standardlisppath}"'";' \
-e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \
-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'"$${buildlisppath}"'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \
-e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \
@ -358,7 +364,7 @@ config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
./configure $(CONFIGURE_FLAGS); \
fi
AUTOCONF_INPUTS = $(srcdir)/configure.in $(srcdir)/aclocal.m4
AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
$(srcdir)/configure: $(AUTOCONF_INPUTS)
cd ${srcdir} && autoconf

6
README
View file

@ -37,12 +37,12 @@ oddities of your processor and operating system. It creates the file
process of building and installing Emacs. See INSTALL for more
detailed information.
The file `configure.in' is the input used by the autoconf program to
The file `configure.ac' is the input used by the autoconf program to
construct the `configure' script. Since Emacs has some configuration
requirements that autoconf can't meet directly, and for historical
reasons, `configure.in' uses an unholy marriage of custom-baked
reasons, `configure.ac' uses an unholy marriage of custom-baked
configuration code and autoconf macros. If you want to rebuild
`configure' from `configure.in', you will need to install a recent
`configure' from `configure.ac', you will need to install a recent
version of autoconf and GNU m4.
The file `Makefile.in' is a template used by `configure' to create

View file

@ -95,7 +95,6 @@ EMACS_CONFIGURATION
EMACS_CONFIG_OPTIONS
EMACS_INT
EMACS_UINT
FILE_SYSTEM_CASE
FLOAT_CHECK_DOMAIN
GC_LISP_OBJECT_ALIGNMENT
GC_MARK_SECONDARY_STACK
@ -131,17 +130,13 @@ HAVE_LOGB
HAVE_LONG_FILE_NAMES
HAVE_LRAND48
HAVE_MENUS
HAVE_MKDIR
HAVE_MKTIME
HAVE_MOUSE
HAVE_PERROR
HAVE_PSTAT_GETDYNAMIC
HAVE_PWD_H
HAVE_RANDOM
HAVE_RENAME
HAVE_RES_INIT
HAVE_RINT
HAVE_RMDIR
HAVE_SELECT
HAVE_SETLOCALE
HAVE_SETPGID
@ -151,7 +146,6 @@ HAVE_SHUTDOWN
HAVE_SOCKETS
HAVE_SOUND
HAVE_STDLIB_H
HAVE_STRERROR
HAVE_STRFTIME
HAVE_STRING_H
HAVE_STRUCT_UTIMBUF
@ -160,11 +154,9 @@ HAVE_SYS_SYSTEMINFO_H
HAVE_SYS_TIMEB_H
HAVE_SYS_TIME_H
HAVE_TCATTR
HAVE_TIMEVAL
HAVE_TM_ZONE
HAVE_TZSET
HAVE_UNISTD_H
HAVE_UTIMES
HAVE_UTIME_H
HAVE_WINDOW_SYSTEM
HAVE_WORKING_VFORK
@ -175,7 +167,6 @@ IS_ANY_SEP
IS_DIRECTORY_SEP
LINKER
LINUX_VERSION_CODE
LISP_FLOAT_TYPE
LNOFLSH
LOCALTIME_CACHE
MAIL_USE_FLOCK
@ -200,7 +191,6 @@ O_RDONLY
O_RDWR
PAGESIZE
PENDING_OUTPUT_COUNT
POSIX
PREFER_VSUSP
PTY_ITERATION
PTY_NAME_SPRINTF
@ -314,7 +304,6 @@ sleep
spawnve
srandom
strdup
strerror
stricmp
strnicmp
strupr

View file

@ -1,8 +1,88 @@
2012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
* coccinelle/unibyte_string.cocci: Semantic patch to convert from
make_unibyte_string to build_unibyte_string where appropriate.
2012-07-17 Eli Zaretskii <eliz@gnu.org>
* CPP-DEFINES: Remove FILE_SYSTEM_CASE.
2012-07-17 Chong Yidong <cyd@gnu.org>
* Version 24.1 released.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
Assume mkdir, perror, rename, rmdir, strerror.
* CPP-DEFINES (HAVE_MKDIR, HAVE_PERROR, HAVE_RENAME, HAVE_RMDIR)
(HAVE_STRERROR, strerror):
Remove.
2012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
* coccinelle/list_loop.cocci: Semantic patch to convert from Fcdr
to XCDR and consistently use CONSP in the list iteration loops.
* coccinelle/vector_contents.cocci: Fix indentation.
2012-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
* bzrmerge.el: Use cl-lib.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
Rename configure.in to configure.ac (Bug#11603).
* admin.el (set-version):
* quick-install-emacs (VERSION):
Get version number from configure.ac, not configure.in.
2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
* merge-gnulib (GNULIB_MODULES): Add c-strcase.
2012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
* coccinelle/xzalloc.cocci: Semantic patch to convert
calls to xmalloc with following memset to xzalloc.
2012-07-04 Juanma Barranquero <lekktu@gmail.com>
* CPP-DEFINES (LISP_FLOAT_TYPE): Remove, obsolete.
2012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
* coccinelle/build_string.cocci: Semantic patch
to convert from make_string to build_string.
2012-06-24 Dmitry Antipov <dmantipov@yandex.ru>
First Coccinelle semantic patch.
* coccinelle: New subdirectory
* coccinelle/README: Documentation stub.
* coccinelle/vector_contents.cocci: Semantic patch to replace direct
access to `contents' member of Lisp_Vector objects with AREF and ASET
where appropriate.
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Support higher-resolution time stamps (Bug#9000).
* merge-gnulib (GNULIB_MODULES): Add dtotimespec, gettime,
gettimeofday, pselect, stat-time, sys_time, time, timespec-add,
timespec-sub, utimens.
(GNULIB_TOOL_FLAGS): Add --avoid=select --avoid=sigprocmask.
This trims down the gnulib import, from the very latest gnulib.
Emacs does its own implementation of 'select' and 'sigprocmask'
on Windows, and it assumes 'select' and 'sigprocmask' on non-Windows
hosts, so it doesn't need these modules.
Similarly, avoid errno, fcntl, fcntl-h, fstat, and sys_types, as
these gnulib modules are only for Windows porting and Emacs ports
to Windows in a different way.
2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
* make-emacs: Rename --union-type to --check-lisp-type. Define
CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
* CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Renamed from
* make-emacs: Rename --union-type to --check-lisp-type.
Define CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
* CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Rename from
USE_LISP_UNION_TYPE.
2012-06-03 Glenn Morris <rgm@gnu.org>
@ -173,11 +253,11 @@
* unidata/makefile.w32-in (all): Remove src/biditype.h and
src/bidimirror.h.
(../../src/biditype.h, ../../src/bidimirror.h): Deleted.
(../../src/biditype.h, ../../src/bidimirror.h): Delete.
* unidata/Makefile.in (all): Remove src/biditype.h and
src/bidimirror.h.
(../../src/biditype.h, ../../src/bidimirror.h): Deleted.
(../../src/biditype.h, ../../src/bidimirror.h): Delete.
2011-07-07 Juanma Barranquero <lekktu@gmail.com>
@ -188,8 +268,8 @@
* unidata/unidata-gen.el (unidata-dir): New variable.
(unidata-setup-list): Expand unidata-text-file in unidata-dir.
(unidata-prop-alist): INDEX element may be a function. New
optional element VAL-LIST (for general-category and bidi-class).
(unidata-prop-alist): INDEX element may be a function.
New optional element VAL-LIST (for general-category and bidi-class).
New entry `mirroring'.
(unidata-prop-default, unidata-prop-val-list): New subst.
(unidata-get-character, unidata-put-character): Delete them.
@ -545,13 +625,13 @@
2009-04-17 Kenichi Handa <handa@m17n.org>
* unidata/unidata-gen.el (unidata-get-decomposition): Adjust
Hangle decomposition rule to Unicode.
* unidata/unidata-gen.el (unidata-get-decomposition):
Adjust Hangle decomposition rule to Unicode.
2009-04-09 Kenichi Handa <handa@m17n.org>
* unidata/unidata-gen.el (unidata-describe-decomposition): Return
a string with a composition property to disable combining
* unidata/unidata-gen.el (unidata-describe-decomposition):
Return a string with a composition property to disable combining
characters being composed.
2009-03-11 Miles Bader <miles@gnu.org>
@ -564,7 +644,7 @@
2009-02-23 Jason Rumney <jasonr@gnu.org>
* nt/README-ftp-server: Update for 23.0.91
* nt/README-ftp-server: Update for 23.0.91.
* nt/README.W32: Remove ever expanding versions of Windows.
Shorten FAQ URL. Remove mention of obsolete lock directory.
@ -1046,7 +1126,7 @@
2005-10-17 Bill Wohler <wohler@newt.com>
* FOR-RELEASE (DOCUMENTATION): Removed lisp/toolbar from list
* FOR-RELEASE (DOCUMENTATION): Remove lisp/toolbar from list
since it's gone. Also marked mh-e as done.
2005-10-11 Juanma Barranquero <lekktu@gmail.com>
@ -1093,7 +1173,7 @@
2005-03-30 Marcelo Toledo <marcelo@marcelotoledo.org>
* FOR-RELEASE (Documentation): Added check the Emacs Tutorial.
* FOR-RELEASE (Documentation): Add check the Emacs Tutorial.
The first line of every tutorial must begin with a sentence saying
"Emacs Tutorial" in the respective language. This should be
followed by "See end for copying conditions", likewise in the

View file

@ -62,7 +62,7 @@ Root must be the root of an Emacs source tree."
(set-version-in-file root "README" version
(rx (and "version" (1+ space)
(submatch (1+ (in "0-9."))))))
(set-version-in-file root "configure.in" version
(set-version-in-file root "configure.ac" version
(rx (and "AC_INIT" (1+ (not (in ?,)))
?, (0+ space)
(submatch (1+ (in "0-9."))))))

View file

@ -24,8 +24,7 @@
;;; Code:
(eval-when-compile
(require 'cl)) ; assert
(eval-when-compile (require 'cl-lib))
(defvar bzrmerge-skip-regexp
"back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\
@ -139,17 +138,17 @@ Type `y' to skip this revision,
`N' to include it and go on to the next revision,
`n' to not skip, but continue to search this log entry for skip regexps,
`q' to quit merging."))
(case (save-excursion
(pcase (save-excursion
(read-char-choice
(format "%s: Skip (y/n/N/q/%s)? " str
(key-description (vector help-char)))
'(?y ?n ?N ?q)))
(?y (setq skip t))
(?q (keyboard-quit))
(`?y (setq skip t))
(`?q (keyboard-quit))
;; A single log entry can match skip-regexp multiple
;; times. If you are sure you don't want to skip it,
;; you don't want to be asked multiple times.
(?N (setq skip 'no))))))
(`?N (setq skip 'no))))))
(if (eq skip t)
(push revno skipped)
(push revno revnos)))))
@ -256,17 +255,17 @@ Does not make other difference."
;; Do a "skip" (i.e. merge the meta-data only).
(setq beg (1- (car skip)))
(while (and skip (or (null merge) (< (car skip) (car merge))))
(assert (> (car skip) (or end beg)))
(cl-assert (> (car skip) (or end beg)))
(setq end (pop skip)))
(message "Skipping %s..%s" beg end)
(bzrmerge-add-metadata from end))
(t
;; Do a "normal" merge.
(assert (or (null skip) (< (car merge) (car skip))))
(cl-assert (or (null skip) (< (car merge) (car skip))))
(setq beg (1- (car merge)))
(while (and merge (or (null skip) (< (car merge) (car skip))))
(assert (> (car merge) (or end beg)))
(cl-assert (> (car merge) (or end beg)))
(setq end (pop merge)))
(message "Merging %s..%s" beg end)
(if (with-temp-buffer

3
admin/coccinelle/README Normal file
View file

@ -0,0 +1,3 @@
This directory contains semantic patches for Coccinelle, a program matching
and transformation tool for programs written in C. For more details, see
http://coccinelle.lip6.fr.

View file

@ -0,0 +1,6 @@
// Convert simple cases to build_string.
@@
identifier I;
@@
- make_string (I, strlen (I))
+ build_string (I)

View file

@ -0,0 +1,19 @@
// Omit redundant type check, consistently use CONSP.
@@
identifier A;
expression X;
statement S;
@@
(
for (A = X;
- !NILP (A);
+ CONSP (A);
- A = Fcdr (A))
+ A = XCDR (A))
S
|
for (A = X; CONSP (A);
- A = Fcdr (A))
+ A = XCDR (A))
S
)

View file

@ -0,0 +1,6 @@
// make_unibyte_string (str, strlen (str)) -> build_unibyte_string (str)
@@
identifier I;
@@
- make_unibyte_string (I, strlen (I))
+ build_unibyte_string (I)

View file

@ -0,0 +1,16 @@
// Avoid direct access to `contents' member of
// Lisp_Vector, use AREF and ASET where possible.
@expression@
identifier I1, I2;
expression E1, E2;
@@
(
- XVECTOR (I1)->contents[I2++] = E1
+ ASET (I1, I2, E1), I2++
|
- XVECTOR (I1)->contents[E1] = E2
+ ASET (I1, E1, E2)
|
- XVECTOR (I1)->contents[E1]
+ AREF (I1, E1)
)

View file

@ -0,0 +1,10 @@
@@
expression x;
expression E;
@@
x =
- xmalloc
+ xzalloc
(E)
...
- memset (x, 0, E);

View file

@ -26,18 +26,22 @@
GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
GNULIB_MODULES='
alloca-opt
alloca-opt c-strcase
careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
dtoastr dup2
filemode getloadavg getopt-gnu ignore-value intprops largefile lstat
manywarnings mktime pthread_sigmask readlink
socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat
dtoastr dtotimespec dup2
filemode getloadavg getopt-gnu gettime gettimeofday
ignore-value intprops largefile lstat
manywarnings mktime pselect pthread_sigmask readlink
socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat
sys_time time timespec-add timespec-sub utimens
warnings
'
GNULIB_TOOL_FLAGS='
--avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat
--avoid=msvc-inval --avoid=msvc-nothrow
--avoid=raise --avoid=threadlib
--avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types
--avoid=threadlib
--conditional-dependencies --import --no-changelog --no-vc-files
--makefile-name=gnulib.mk
'

View file

@ -125,7 +125,7 @@ Resent-CC: maintainer email address, plus any X-Debbugs-CC: entries
The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases.
** To not get acknowledgement mail from the tracker,
** To not get acknowledgment mail from the tracker,
add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus,
you can add an element to gnus-posting-styles to do this automatically, eg:

View file

@ -906,7 +906,7 @@ DIARY OF CHANGES
read_avail_input.
(Fixed. This was caused by unconditionally including stdin in
input_wait_mask in init_process. The select call in
input_wait_mask in init_process_emacs. The select call in
wait_reading_process_input always returned immediately, indicating
that there is pending input from stdin, which nobody read.

View file

@ -171,9 +171,9 @@ test x"$prefix" = x && { prefix="`get_config_var prefix`" || exit 4 ; }
test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; }
VERSION=`
sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.in
sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.ac
` || exit 4
test -n "$VERSION" || { echo >&2 "$me: no version in configure.in"; exit 4; }
test -n "$VERSION" || { echo >&2 "$me: no version in configure.ac"; exit 4; }
DST_SHARE="$prefix/share/emacs/$VERSION"
DST_BIN="$prefix/bin"

View file

@ -34,7 +34,7 @@
progs="autoconf automake"
## Minimum versions we need:
autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.in`
autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac`
## FIXME how to determine this from the sources?
automake_min=1.11

View file

@ -36,7 +36,7 @@
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dup2 filemode getloadavg getopt-gnu ignore-value intprops largefile lstat manywarnings mktime pthread_sigmask readlink socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat warnings
# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=errno --avoid=fcntl --avoid=fcntl-h --avoid=fstat --avoid=msvc-inval --avoid=msvc-nothrow --avoid=raise --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-strcase careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdarg stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timespec-add timespec-sub utimens warnings
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
@ -64,9 +64,11 @@ subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/c-strtod.m4 \
$(top_srcdir)/m4/dup2.m4 $(top_srcdir)/m4/extensions.m4 \
$(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/getloadavg.m4 \
$(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/dup2.m4 \
$(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/filemode.m4 \
$(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \
$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
$(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inttypes.m4 \
$(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/longlong.m4 \
@ -74,24 +76,28 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/md5.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/pselect.m4 \
$(top_srcdir)/m4/pthread_sigmask.m4 \
$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/sha1.m4 \
$(top_srcdir)/m4/sha256.m4 $(top_srcdir)/m4/sha512.m4 \
$(top_srcdir)/m4/signal_h.m4 \
$(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/socklen.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.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/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_stat_h.m4 $(top_srcdir)/m4/sys_types_h.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/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/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.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.in
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@ -101,13 +107,19 @@ CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES)
libgnu_a_AR = $(AR) $(ARFLAGS)
am__DEPENDENCIES_1 =
am__libgnu_a_SOURCES_DIST = allocator.c careadlinkat.c md5.c sha1.c \
sha256.c sha512.c dtoastr.c filemode.c gettext.h strftime.c
am__libgnu_a_SOURCES_DIST = allocator.c c-ctype.h c-ctype.c \
c-strcase.h c-strcasecmp.c c-strncasecmp.c careadlinkat.c \
md5.c sha1.c sha256.c sha512.c dtoastr.c dtotimespec.c \
filemode.c gettext.h gettime.c strftime.c timespec-add.c \
timespec-sub.c utimens.c
am__objects_1 =
am_libgnu_a_OBJECTS = allocator.$(OBJEXT) careadlinkat.$(OBJEXT) \
md5.$(OBJEXT) sha1.$(OBJEXT) sha256.$(OBJEXT) sha512.$(OBJEXT) \
dtoastr.$(OBJEXT) filemode.$(OBJEXT) $(am__objects_1) \
strftime.$(OBJEXT)
am_libgnu_a_OBJECTS = allocator.$(OBJEXT) c-ctype.$(OBJEXT) \
c-strcasecmp.$(OBJEXT) c-strncasecmp.$(OBJEXT) \
careadlinkat.$(OBJEXT) md5.$(OBJEXT) sha1.$(OBJEXT) \
sha256.$(OBJEXT) sha512.$(OBJEXT) dtoastr.$(OBJEXT) \
dtotimespec.$(OBJEXT) filemode.$(OBJEXT) $(am__objects_1) \
gettime.$(OBJEXT) strftime.$(OBJEXT) timespec-add.$(OBJEXT) \
timespec-sub.$(OBJEXT) utimens.$(OBJEXT)
libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
am__depfiles_maybe = depfiles
@ -232,6 +244,7 @@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
GNULIB_GRANTPT = @GNULIB_GRANTPT@
@ -270,6 +283,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
GNULIB_PREAD = @GNULIB_PREAD@
GNULIB_PRINTF = @GNULIB_PRINTF@
GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
GNULIB_PSELECT = @GNULIB_PSELECT@
GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
GNULIB_PTSNAME = @GNULIB_PTSNAME@
GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@ -292,6 +306,7 @@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
GNULIB_RMDIR = @GNULIB_RMDIR@
GNULIB_RPMATCH = @GNULIB_RPMATCH@
GNULIB_SCANF = @GNULIB_SCANF@
GNULIB_SELECT = @GNULIB_SELECT@
GNULIB_SETENV = @GNULIB_SETENV@
GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
GNULIB_SIGACTION = @GNULIB_SIGACTION@
@ -398,6 +413,7 @@ HAVE_GETLOGIN = @HAVE_GETLOGIN@
HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
HAVE_GRANTPT = @HAVE_GRANTPT@
HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
@ -427,6 +443,7 @@ HAVE_POPEN = @HAVE_POPEN@
HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
HAVE_PREAD = @HAVE_PREAD@
HAVE_PSELECT = @HAVE_PSELECT@
HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
HAVE_PTSNAME = @HAVE_PTSNAME@
HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@ -457,12 +474,15 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
HAVE_STRTOULL = @HAVE_STRTOULL@
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
HAVE_SYMLINK = @HAVE_SYMLINK@
HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
@ -476,6 +496,7 @@ HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
HAVE_WCHAR_H = @HAVE_WCHAR_H@
HAVE_WCHAR_T = @HAVE_WCHAR_T@
HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
HAVE_XSERVER = @HAVE_XSERVER@
HAVE__BOOL = @HAVE__BOOL@
HAVE__EXIT = @HAVE__EXIT@
@ -532,6 +553,7 @@ LIBXSM = @LIBXSM@
LIBXTR6 = @LIBXTR6@
LIBXT_OTHER = @LIBXT_OTHER@
LIBX_OTHER = @LIBX_OTHER@
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
LIB_GCC = @LIB_GCC@
LIB_MATH = @LIB_MATH@
LIB_PTHREAD = @LIB_PTHREAD@
@ -552,8 +574,9 @@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
NEXT_GETOPT_H = @NEXT_GETOPT_H@
@ -564,8 +587,9 @@ NEXT_STDDEF_H = @NEXT_STDDEF_H@
NEXT_STDINT_H = @NEXT_STDINT_H@
NEXT_STDIO_H = @NEXT_STDIO_H@
NEXT_STDLIB_H = @NEXT_STDLIB_H@
NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
NEXT_TIME_H = @NEXT_TIME_H@
NEXT_UNISTD_H = @NEXT_UNISTD_H@
NS_OBJ = @NS_OBJ@
@ -626,6 +650,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
REPLACE_GETLINE = @REPLACE_GETLINE@
REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
REPLACE_ISATTY = @REPLACE_ISATTY@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
REPLACE_LINK = @REPLACE_LINK@
@ -647,6 +672,7 @@ REPLACE_PERROR = @REPLACE_PERROR@
REPLACE_POPEN = @REPLACE_POPEN@
REPLACE_PREAD = @REPLACE_PREAD@
REPLACE_PRINTF = @REPLACE_PRINTF@
REPLACE_PSELECT = @REPLACE_PSELECT@
REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
REPLACE_PUTENV = @REPLACE_PUTENV@
@ -661,6 +687,7 @@ REPLACE_REMOVE = @REPLACE_REMOVE@
REPLACE_RENAME = @REPLACE_RENAME@
REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
REPLACE_RMDIR = @REPLACE_RMDIR@
REPLACE_SELECT = @REPLACE_SELECT@
REPLACE_SETENV = @REPLACE_SETENV@
REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
@ -670,6 +697,7 @@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
REPLACE_STRTOD = @REPLACE_STRTOD@
REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
REPLACE_SYMLINK = @REPLACE_SYMLINK@
REPLACE_TIMEGM = @REPLACE_TIMEGM@
REPLACE_TMPFILE = @REPLACE_TMPFILE@
@ -797,6 +825,7 @@ psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
standardlisppath = @standardlisppath@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
@ -817,43 +846,47 @@ x_default_search_path = @x_default_search_path@
BUILT_SOURCES = $(ALLOCA_H) $(GETOPT_H) inttypes.h signal.h \
arg-nonnull.h c++defs.h warn-on-use.h $(STDALIGN_H) \
$(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \
stdlib.h sys/stat.h sys/types.h time.h unistd.h
stdlib.h sys/select.h sys/stat.h sys/time.h time.h unistd.h
EXTRA_DIST = alloca.in.h allocator.h careadlinkat.h md5.h sha1.h \
sha256.h sha512.h dosname.h ftoastr.c ftoastr.h dup2.c \
filemode.h getloadavg.c getopt.c getopt.in.h getopt1.c \
getopt_int.h ignore-value.h intprops.h inttypes.in.h lstat.c \
mktime-internal.h mktime.c pathmax.h pthread_sigmask.c \
readlink.c signal.in.h sigprocmask.c \
getopt_int.h gettimeofday.c ignore-value.h intprops.h \
inttypes.in.h lstat.c mktime-internal.h mktime.c pathmax.h \
pselect.c pthread_sigmask.c readlink.c signal.in.h \
$(top_srcdir)/build-aux/snippet/_Noreturn.h \
$(top_srcdir)/build-aux/snippet/arg-nonnull.h \
$(top_srcdir)/build-aux/snippet/c++defs.h \
$(top_srcdir)/build-aux/snippet/warn-on-use.h stat.c \
stdalign.in.h stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h \
stdio.in.h stdlib.in.h strftime.h strtoimax.c strtol.c \
strtoll.c strtol.c strtoul.c strtoull.c strtoimax.c \
strtoumax.c symlink.c sys_stat.in.h sys_types.in.h time.in.h \
time_r.c u64.h unistd.in.h verify.h
MOSTLYCLEANDIRS = sys
stat-time.h stdalign.in.h stdarg.in.h stdbool.in.h stddef.in.h \
stdint.in.h stdio.in.h stdlib.in.h strftime.h strtoimax.c \
strtol.c strtoll.c strtol.c strtoul.c strtoull.c strtoimax.c \
strtoumax.c symlink.c sys_select.in.h sys_stat.in.h \
sys_time.in.h time.in.h time_r.c timespec.h u64.h unistd.in.h \
utimens.h verify.h
MOSTLYCLEANDIRS = sys sys
MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t getopt.h \
getopt.h-t inttypes.h inttypes.h-t signal.h signal.h-t \
arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
warn-on-use.h warn-on-use.h-t stdalign.h stdalign.h-t stdarg.h \
stdarg.h-t stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h \
stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t sys/stat.h \
sys/stat.h-t sys/types.h sys/types.h-t time.h time.h-t \
unistd.h unistd.h-t
stdint.h-t stdio.h stdio.h-t stdlib.h stdlib.h-t sys/select.h \
sys/select.h-t sys/stat.h sys/stat.h-t sys/time.h sys/time.h-t \
time.h time.h-t unistd.h unistd.h-t
noinst_LIBRARIES = libgnu.a
AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src
libgnu_a_SOURCES = allocator.c careadlinkat.c md5.c sha1.c sha256.c \
sha512.c dtoastr.c filemode.c $(am__append_1) strftime.c
libgnu_a_SOURCES = allocator.c c-ctype.h c-ctype.c c-strcase.h \
c-strcasecmp.c c-strncasecmp.c careadlinkat.c md5.c sha1.c \
sha256.c sha512.c dtoastr.c dtotimespec.c filemode.c \
$(am__append_1) gettime.c strftime.c timespec-add.c \
timespec-sub.c utimens.c
libgnu_a_LIBADD = $(gl_LIBOBJS)
libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
EXTRA_libgnu_a_SOURCES = ftoastr.c dup2.c getloadavg.c getopt.c \
getopt1.c lstat.c mktime.c pthread_sigmask.c readlink.c \
sigprocmask.c stat.c strtoimax.c strtol.c strtoll.c strtol.c \
strtoul.c strtoull.c strtoimax.c strtoumax.c symlink.c \
time_r.c
getopt1.c gettimeofday.c lstat.c mktime.c pselect.c \
pthread_sigmask.c readlink.c stat.c strtoimax.c strtol.c \
strtoll.c strtol.c strtoul.c strtoull.c strtoimax.c \
strtoumax.c symlink.c time_r.c
# Because this Makefile snippet defines a variable used by other
# gnulib Makefile snippets, it must be present in all Makefile.am that
@ -912,23 +945,29 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocator.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtoastr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dtotimespec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemode.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftoastr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@
@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)/mktime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pthread_sigmask.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.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@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@
@ -939,6 +978,9 @@ distclean-compile:
@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)/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@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimens.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@ -1580,6 +1622,30 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
} > $@-t && \
mv $@-t $@
# We need the following in order to create <sys/select.h> when the system
# doesn't have one that works with the given compiler.
sys/select.h: sys_select.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
-e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
-e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \
-e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \
-e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \
-e 's|@''REPLACE_SELECT''@|$(REPLACE_SELECT)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/sys_select.in.h; \
} > $@-t && \
mv $@-t $@
# We need the following in order to create <sys/stat.h> when the system
# has one that is incomplete.
sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
@ -1632,19 +1698,28 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNU
} > $@-t && \
mv $@-t $@
# We need the following in order to create <sys/types.h> when the system
# We need the following in order to create <sys/time.h> when the system
# doesn't have one that works with the given compiler.
sys/types.h: sys_types.in.h $(top_builddir)/config.status
sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
$(AM_V_at)$(MKDIR_P) sys
$(AM_V_GEN)rm -f $@-t $@ && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
sed -e 's|@''GUARD_PREFIX''@|GL|g' \
-e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
-e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
-e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
< $(srcdir)/sys_types.in.h; \
-e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
-e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
-e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
-e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \
-e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
-e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
-e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
< $(srcdir)/sys_time.in.h; \
} > $@-t && \
mv $@-t $@

14
autogen/aclocal.m4 vendored
View file

@ -987,11 +987,14 @@ AC_SUBST([am__untar])
m4_include([m4/00gnulib.m4])
m4_include([m4/alloca.m4])
m4_include([m4/c-strtod.m4])
m4_include([m4/clock_time.m4])
m4_include([m4/dup2.m4])
m4_include([m4/extensions.m4])
m4_include([m4/filemode.m4])
m4_include([m4/getloadavg.m4])
m4_include([m4/getopt.m4])
m4_include([m4/gettime.m4])
m4_include([m4/gettimeofday.m4])
m4_include([m4/gnulib-common.m4])
m4_include([m4/gnulib-comp.m4])
m4_include([m4/include_next.m4])
@ -1006,16 +1009,17 @@ m4_include([m4/multiarch.m4])
m4_include([m4/nocrash.m4])
m4_include([m4/off_t.m4])
m4_include([m4/pathmax.m4])
m4_include([m4/pselect.m4])
m4_include([m4/pthread_sigmask.m4])
m4_include([m4/readlink.m4])
m4_include([m4/sha1.m4])
m4_include([m4/sha256.m4])
m4_include([m4/sha512.m4])
m4_include([m4/signal_h.m4])
m4_include([m4/signalblocking.m4])
m4_include([m4/socklen.m4])
m4_include([m4/ssize_t.m4])
m4_include([m4/st_dm_mode.m4])
m4_include([m4/stat-time.m4])
m4_include([m4/stat.m4])
m4_include([m4/stdalign.m4])
m4_include([m4/stdarg.m4])
@ -1030,11 +1034,17 @@ m4_include([m4/strtoll.m4])
m4_include([m4/strtoull.m4])
m4_include([m4/strtoumax.m4])
m4_include([m4/symlink.m4])
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_types_h.m4])
m4_include([m4/sys_time_h.m4])
m4_include([m4/time_h.m4])
m4_include([m4/time_r.m4])
m4_include([m4/timespec.m4])
m4_include([m4/tm_gmtoff.m4])
m4_include([m4/unistd_h.m4])
m4_include([m4/utimbuf.m4])
m4_include([m4/utimens.m4])
m4_include([m4/utimes.m4])
m4_include([m4/warnings.m4])
m4_include([m4/wchar_t.m4])

View file

@ -1,4 +1,4 @@
/* src/config.in. Generated from configure.in by autoheader. */
/* src/config.in. Generated from configure.ac by autoheader. */
/* GNU Emacs site configuration template file.
@ -46,29 +46,81 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to the number of bits in type 'wint_t'. */
#undef BITSIZEOF_WINT_T
/* Define if SA_RESTART should not be used. */
/* Define if FIONREAD should not be used. */
#undef BROKEN_FIONREAD
/* Define if get_current_dir_name should not be used. */
#undef BROKEN_GET_CURRENT_DIR_NAME
/* Define on FreeBSD to work around an issue when reading from a PTY. */
#undef BROKEN_PTY_READ_AFTER_EAGAIN
/* Define if SA_RESTART should only be used in batch mode. */
#undef BROKEN_SA_RESTART
/* Define if SIGAIO should not be used. */
#undef BROKEN_SIGAIO
/* Define if SIGIO should not be used. */
#undef BROKEN_SIGIO
/* Define if SIGPOLL should not be used. */
#undef BROKEN_SIGPOLL
/* Define if SIGPTY should not be used. */
#undef BROKEN_SIGPTY
/* Define if the system is compatible with BSD 4.2. */
#undef BSD4_2
/* Define if the system is compatible with BSD 4.2. */
#undef BSD_SYSTEM
/* Define if AH_BOTTOM should change BSD_SYSTEM. */
#undef BSD_SYSTEM_AHB
/* Define if Emacs cannot be dumped on your system. */
#undef CANNOT_DUMP
/* Define this to enable compile time checks for the Lisp_Object data type. */
#undef CHECK_LISP_OBJECT_TYPE
/* Define if you want lock files to be written, so that Emacs can tell
instantly when you try to modify a file that someone else has modified in
his/her Emacs. */
#undef CLASH_DETECTION
/* Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP
systems. This function is required for 'alloca.c' support on those systems.
*/
#undef CRAY_STACKSEG_END
/* Define if the system is Cygwin. */
#undef CYGWIN
/* Define to 1 if using 'alloca.c'. */
#undef C_ALLOCA
/* Define if the system is Darwin. */
#undef DARWIN_OS
/* Extra bits to be or'd in with any pointers stored in a Lisp_Object. */
#undef DATA_SEG_BITS
/* Address of the start of the data segment. */
#undef DATA_START
/* Name of the default sound device. */
#undef DEFAULT_SOUND_DEVICE
/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
#undef DGUX
/* Define if process.c does not need to close a pty to make it a controlling
terminal (it is already a controlling terminal of the subprocess, because
we did ioctl TIOCSCTTY). */
#undef DONT_REOPEN_PTY
/* Define to 1 if you are using the GNU C Library. */
#undef DOUG_LEA_MALLOC
@ -78,9 +130,17 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to the options passed to configure. */
#undef EMACS_CONFIG_OPTIONS
/* Enable expensive run-time checking of data types? */
/* Define to 1 if expensive run-time data type and consistency checks are
enabled. */
#undef ENABLE_CHECKING
/* Letter to use in finding device name of first PTY, if PTYs are supported.
*/
#undef FIRST_PTY_LETTER
/* Define to 1 if futimesat mishandles a NULL file name. */
#undef FUTIMESAT_NULL_BUG
/* Define this to check for errors in cons list. */
#undef GC_CHECK_CONS_LIST
@ -95,18 +155,54 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define this to check for short string overrun. */
#undef GC_CHECK_STRING_OVERRUN
/* Mark a secondary stack, like the register stack on the ia64. */
#undef GC_MARK_SECONDARY_STACK
/* Define to GC_USE_GCPROS_AS_BEFORE if conservative garbage collection is not
known to work. */
#undef GC_MARK_STACK
/* Define if setjmp is known to save all registers relevant for conservative
garbage collection in the jmp_buf. */
#undef GC_SETJMP_WORKS
/* Define to 1 if the `getpgrp' function requires zero arguments. */
#undef GETPGRP_VOID
/* Define to 1 if gettimeofday accepts only one argument. */
#undef GETTIMEOFDAY_ONE_ARGUMENT
/* Define if gettimeofday clobbers the localtime buffer. */
#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME
/* Define this to 'void' or 'struct timezone' to match the system's
declaration of the second argument to gettimeofday. */
#undef GETTIMEOFDAY_TIMEZONE
/* Define this to enable glyphs debugging code. */
#undef GLYPH_DEBUG
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module fscanf shall be considered present. */
#undef GNULIB_FSCANF
/* enable some gnulib portability checks */
#undef GNULIB_PORTCHECK
/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module scanf shall be considered present. */
#undef GNULIB_SCANF
/* Value of PENDING_OUTPUT_COUNT if using the GNU C library. */
#undef GNU_LIBRARY_PENDING_OUTPUT_COUNT
/* Define if ths system is compatible with GNU/Linux. */
#undef GNU_LINUX
/* Define to 1 if you want to use the GNU memory allocator. */
#undef GNU_MALLOC
/* Define to set the G_SLICE environment variable to "always-malloc" at
startup, if using GTK. */
#undef G_SLICE_ALWAYS_MALLOC
/* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */
#undef HAVE_AIX_SMT_EXP
@ -139,6 +235,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `cfsetspeed' function. */
#undef HAVE_CFSETSPEED
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
/* Define to 1 if you have the `clock_settime' function. */
#undef HAVE_CLOCK_SETTIME
/* Define to 1 if you have the `closedir' function. */
#undef HAVE_CLOSEDIR
@ -263,6 +365,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `fsync' function. */
#undef HAVE_FSYNC
/* Define to 1 if you have the `futimens' function. */
#undef HAVE_FUTIMENS
/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES
/* Define to 1 if you have the `futimesat' function. */
#undef HAVE_FUTIMESAT
/* Define to 1 if you have the `gai_strerror' function. */
#undef HAVE_GAI_STRERROR
@ -522,6 +633,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
/* Define to 1 if you have the `lutimes' function. */
#undef HAVE_LUTIMES
/* Define to 1 if using libm17n-flt. */
#undef HAVE_M17N_FLT
@ -554,9 +668,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
systems that support xmenu.c. */
#undef HAVE_MENUS
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR
/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP
@ -566,6 +677,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have mouse support. */
#undef HAVE_MOUSE
/* Define to 1 if you have the `nanotime' function. */
#undef HAVE_NANOTIME
/* Define to 1 if you have the <net/if_dl.h> header file. */
#undef HAVE_NET_IF_DL_H
@ -597,6 +711,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the /proc filesystem. */
#undef HAVE_PROCFS
/* Define to 1 if you have the `pselect' function. */
#undef HAVE_PSELECT
/* Define to 1 if you have the `pstat_getdynamic' function. */
#undef HAVE_PSTAT_GETDYNAMIC
@ -609,6 +726,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if the pthread_sigmask function can be used (despite bugs). */
#undef HAVE_PTHREAD_SIGMASK
/* Define if the system supports pty devices. */
#undef HAVE_PTYS
/* Define to 1 if you have the <pty.h> header file. */
#undef HAVE_PTY_H
@ -627,18 +747,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `recvfrom' function. */
#undef HAVE_RECVFROM
/* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME
/* Define to 1 if res_init is available. */
#undef HAVE_RES_INIT
/* Define to 1 if you have the `rint' function. */
#undef HAVE_RINT
/* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR
/* Define to 1 if using librsvg. */
#undef HAVE_RSVG
@ -681,6 +795,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* Define if the system supports 4.2-compatible sockets. */
#undef HAVE_SOCKETS
/* Define to 1 if you have sound support. */
#undef HAVE_SOUND
@ -699,9 +816,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
@ -744,10 +858,32 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */
#undef HAVE_STRUCT_NLIST_N_UN_N_NAME
/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_ATIMENSEC
/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
/* Define to 1 if `tm_zone' is a member of `struct tm'. */
#undef HAVE_STRUCT_TM_TM_ZONE
/* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
have utime.h but don't declare the struct anywhere. */
#undef HAVE_STRUCT_UTIMBUF
/* Define if struct stat has an st_dm_mode member. */
@ -789,6 +925,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the <sys/systeminfo.h> header file. */
#undef HAVE_SYS_SYSTEMINFO_H
/* Define to 1 if you have the <sys/timeb.h> header file. */
#undef HAVE_SYS_TIMEB_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
@ -813,9 +952,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the tiff library (-ltiff). */
#undef HAVE_TIFF
/* Define to 1 if `struct timeval' is declared by <sys/time.h>. */
#undef HAVE_TIMEVAL
/* Define if struct tm has the tm_gmtoff member. */
#undef HAVE_TM_GMTOFF
@ -842,6 +978,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the <util.h> header file. */
#undef HAVE_UTIL_H
/* Define to 1 if you have the `utimensat' function. */
#undef HAVE_UTIMENSAT
/* Define to 1 if you have the `utimes' function. */
#undef HAVE_UTIMES
@ -866,9 +1005,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have a window system. */
#undef HAVE_WINDOW_SYSTEM
/* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H
/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
/* Define if utimes works properly. */
#undef HAVE_WORKING_UTIMES
/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
@ -924,6 +1069,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL
/* Define to 1 if you have the `_ftime' function. */
#undef HAVE__FTIME
/* Define to 1 if you have the `__builtin_unwind_init' function. */
#undef HAVE___BUILTIN_UNWIND_INIT
@ -936,6 +1084,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to support using a Hesiod database to find the POP server. */
#undef HESIOD
/* Define if the system is HPUX. */
#undef HPUX
/* Define to read input using SIGIO. */
#undef INTERRUPT_INPUT
/* Define if the system is IRIX. */
#undef IRIX6_5
/* Define to support Kerberos-authenticated POP mail retrieval. */
#undef KERBEROS
@ -967,6 +1124,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to support POP mail retrieval. */
#undef MAIL_USE_POP
/* Define if system's imake configuration file defines `NeedWidePrototypes' as
`NO'. */
#undef NARROWPROTO
/* Do not define abort in emacs.c. */
#undef NO_ABORT
/* Define if XEditRes should not be used. */
#undef NO_EDITRES
/* Define to 1 if you don't have struct exception in math.h. */
#undef NO_MATHERR
@ -976,6 +1143,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define if termio.h should not be included. */
#undef NO_TERMIO
/* Minimum value of NSIG. */
#undef NSIG_MINIMUM
/* Define to 1 if `NSInteger' is defined. */
#undef NS_HAVE_NSINTEGER
@ -1012,6 +1182,17 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Number of chars of output in the buffer of a stdio stream. */
#undef PENDING_OUTPUT_COUNT
/* Define to empty to suppress deprecation warnings when building with
--enable-gcc-warnings and with libpng versions before 1.5, which lack
png_longjmp. */
#undef PNG_DEPSTRUCT
/* Define if process_send_signal should use VSUSP instead of VSWTCH. */
#undef PREFER_VSUSP
/* Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno.
*/
#undef PTHREAD_SIGMASK_FAILS_WITH_ERRNO
@ -1026,6 +1207,18 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
'ptrdiff_t'. */
#undef PTRDIFF_T_SUFFIX
/* How to iterate over PTYs. */
#undef PTY_ITERATION
/* How to get the device name of the control end of a PTY, if non-standard. */
#undef PTY_NAME_SPRINTF
/* How to open a PTY, if non-standard. */
#undef PTY_OPEN
/* How to get device name of the tty end of a PTY, if non-standard. */
#undef PTY_TTY_NAME_SPRINTF
/* Define to 1 if readlink fails to recognize a trailing slash. */
#undef READLINK_TRAILING_SLASH_BUG
@ -1041,6 +1234,18 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
slash */
#undef REPLACE_FUNC_STAT_FILE
/* Define if emacs.c needs to call run_time_remap; for HPUX. */
#undef RUN_TIME_REMAP
/* Define if process.c:child_setup should not call setpgrp. */
#undef SETPGRP_RELEASES_CTTY
/* How to set up a slave PTY, if needed. */
#undef SETUP_SLAVE_PTY
/* Make process_send_signal work by "typing" a signal character on the pty. */
#undef SIGNALS_VIA_CHARACTERS
/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
'sig_atomic_t'. */
#undef SIG_ATOMIC_T_SUFFIX
@ -1049,6 +1254,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
'size_t'. */
#undef SIZE_T_SUFFIX
/* Define if the system is Solaris. */
#undef SOLARIS2
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
@ -1075,6 +1283,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* The type of system you are compiling for; sets `system-type'. */
#undef SYSTEM_TYPE
/* Undocumented. */
#undef TAB3
/* Undocumented. */
#undef TABDLY
/* Define to 1 if you use terminfo instead of termcap. */
#undef TERMINFO
@ -1084,6 +1298,13 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Define to 1 if the type of the st_atim member of a struct stat is struct
timespec. */
#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
/* Undocumented. */
#undef ULIMIT_BREAK_VALUE
/* Define to 1 for Encore UMAX. */
#undef UMAX
@ -1091,6 +1312,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
<sys/cpustats.h>. */
#undef UMAX4_3
/* Define if the system has Unix98 PTYs. */
#undef UNIX98_PTYS
/* Define to 1 if using GTK. */
#undef USE_GTK
@ -1112,6 +1336,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if using an X toolkit. */
#undef USE_X_TOOLKIT
/* Define if the system is compatible with System III. */
#undef USG
/* Define if the system is compatible with System V. */
#undef USG5
/* Define for USG systems where it works to open a pty's tty in the parent
process, then close and reopen it in the child. */
#undef USG_SUBTTY_WORKS
@ -1145,10 +1375,16 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define this to check for malloc buffer overrun. */
#undef XMALLOC_OVERRUN_CHECK
/* Compensate for a bug in Xos.h on some systems, where it requires time.h. */
#undef XOS_NEEDS_TIME_H
/* Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either
XPointer or XPointer*. */
#undef XRegisterIMInstantiateCallback_arg6
/* Define if the system is AIX. */
#undef _AIX
/* Enable large inode numbers on Mac OS X. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
@ -1207,7 +1443,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable general extensions on MacOS X. */
/* Enable general extensions on Mac OS X. */
#ifndef _DARWIN_C_SOURCE
# undef _DARWIN_C_SOURCE
#endif
@ -1243,6 +1479,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* A replacement for va_copy, if needed. */
#define gl_va_copy(a,b) ((a) = (b))
/* Define to rpl_gmtime if the replacement function should be used. */
#undef gmtime
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
@ -1252,7 +1491,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
__APPLE__ && __MACH__ test for MacOS X.
__APPLE__ && __MACH__ test for Mac OS X.
__APPLE_CC__ tests for the Apple compiler and its version.
__STDC_VERSION__ tests for the C99 mode. */
#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
@ -1262,6 +1501,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if the compiler is checking for lint. */
#undef lint
/* Define to rpl_localtime if the replacement function should be used. */
#undef localtime
/* Define to a type if <wchar.h> does not define. */
#undef mbstate_t
@ -1340,6 +1582,19 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
# error "alloca not available on this machine"
#endif
/* This silences a few compilation warnings on FreeBSD. */
#ifdef BSD_SYSTEM_AHB
#undef BSD_SYSTEM_AHB
#undef BSD_SYSTEM
#if __FreeBSD__ == 1
#define BSD_SYSTEM 199103
#elif __FreeBSD__ == 2
#define BSD_SYSTEM 199306
#elif __FreeBSD__ >= 3
#define BSD_SYSTEM 199506
#endif
#endif
/* Define AMPERSAND_FULL_NAME if you use the convention
that & in the full name stands for the login id. */
/* Turned on June 1996 supposing nobody will mind it. */
@ -1358,13 +1613,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
# include config_opsysfile
#endif
/* GNUstep needs a bit more pure memory. Of the existing knobs,
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.
(There is probably a better place to do this, but right now the
Cocoa side does this in s/darwin.h and we cannot parallel this
exactly since GNUstep is multi-OS. */
#if defined HAVE_NS && defined NS_IMPL_GNUSTEP
/* Mac OS X / GNUstep need a bit more pure memory. Of the existing knobs,
SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems. */
#ifdef HAVE_NS
#if defined NS_IMPL_GNUSTEP
# define SYSTEM_PURESIZE_EXTRA 30000
#elif defined DARWIN_OS
# define SYSTEM_PURESIZE_EXTRA 200000
#endif
#endif
#ifdef emacs /* Don't do this for lib-src. */
@ -1383,13 +1639,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdlib.h>
#if defined __GNUC__ && (__GNUC__ > 2 \
|| (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
#define NO_RETURN __attribute__ ((__noreturn__))
#else
#define NO_RETURN /* nothing */
#endif
#if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
#define NO_INLINE __attribute__((noinline))
#else
@ -1416,20 +1665,13 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
#endif
#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST
/* Some versions of GNU/Linux define noinline in their headers. */
#ifdef noinline
#undef noinline
#endif
/* These won't be used automatically yet. We also need to know, at least,
that the stack is continuous. */
#ifdef __GNUC__
# ifndef GC_SETJMP_WORKS
/* GC_SETJMP_WORKS is nearly always appropriate for GCC. */
# define GC_SETJMP_WORKS 1
# endif
#endif
#endif /* EMACS_CONFIG_H */
/*

View file

@ -3,7 +3,7 @@
## Helper script for those building Emacs from bzr without autoconf etc.
## This installs some pre-generated versions of the automatically
## generated files. It is highly recommended to install the necessary
## tools instead of using this. Note that if eg configure.in
## tools instead of using this. Note that if eg configure.ac
## is updated, the next time you run make it will attempt to
## regenerate configure and will fail if you do not have the required
## tools. You will have to run this script again.

View file

@ -79,7 +79,7 @@ lboot_flag=
## Parameters.
ldefs_in=lisp/loaddefs.el
ldefs_out=lisp/ldefs-boot.el
sources="configure.in lib/Makefile.am"
sources="configure.ac lib/Makefile.am"
genfiles="
configure aclocal.m4 src/config.in lib/Makefile.in
build-aux/compile build-aux/config.guess build-aux/config.sub

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,52 @@
2012-07-19 Chong Yidong <cyd@gnu.org>
* emacs.texi: Update ISBN.
2012-07-17 Chong Yidong <cyd@gnu.org>
* basic.texi (Inserting Text): Replace ucs-insert with
insert-char. Provide more details of input.
* mule.texi (International Chars, Input Methods): Likewise.
2012-07-13 Chong Yidong <cyd@gnu.org>
* custom.texi (Examining): Update C-h v message.
* buffers.texi (Misc Buffer): Document view-read-only.
2012-07-07 Chong Yidong <cyd@gnu.org>
* custom.texi (Init File): Index site-lisp (Bug#11435).
2012-07-06 Chong Yidong <cyd@gnu.org>
* emacs.texi: Re-order top-level menu to correspond to logical
order, to avoid makeinfo warnings.
* ack.texi (Acknowledgments): Note new python.el.
2012-06-29 Chong Yidong <cyd@gnu.org>
* maintaining.texi (Basic VC Editing, VC Pull, Merging):
* basic.texi (Erasing, Basic Undo): Fix markup.
2012-06-29 Glenn Morris <rgm@gnu.org>
* fixit.texi (Undo): Grammar fixes. (Bug#11779)
2012-06-29 Michael Witten <mfwitten@gmail.com> (tiny change)
* fixit.texi (Undo): Fix typo. (Bug#11775)
2012-06-27 Glenn Morris <rgm@gnu.org>
* ack.texi (Acknowledgments): Tiny update.
2012-06-21 Glenn Morris <rgm@gnu.org>
* Makefile.in: Rename infodir to buildinfodir throughout. (Bug#11737)
2012-06-17 Chong Yidong <cyd@gnu.org>
* emacs.texi: Remove urlcolor setting. Update ISBN and edition number.
@ -1270,7 +1319,6 @@
* custom.texi (Mouse Buttons):
* rmail.texi (Rmail Scrolling):
* search.texi (Isearch Scroll):
* display.texi (Scrolling): Replace scroll-up/down with
scroll-up/down-command. Fix scroll-preserve-screen-position
description. Document scroll-error-top-bottom.
@ -3089,9 +3137,9 @@
* ack.texi (Acknowledgments): General update based on AUTHORS,
including removal of some stuff no longer distributed.
2008-12-19 Agustin Martin <agustin.martin@hispalinux.es>
2008-12-19 Agustín Martín <agustin.martin@hispalinux.es>
* fixit.texi: Mention hunspell
* fixit.texi: Mention hunspell.
2008-12-19 Glenn Morris <rgm@gnu.org>

View file

@ -31,7 +31,7 @@ version=@version@
## This is a bit funny. Because the info files are in the
## distribution tarfiles, they are always made in $scrdir/../../info,
## even for out-of-tree builds.
infodir = $(srcdir)/../../info
buildinfodir = $(srcdir)/../../info
# Directory with the (customized) texinfo.tex file.
texinfodir = $(srcdir)/../misc
@ -121,11 +121,11 @@ EMACSSOURCES= \
## This seems pointless. The info/ directory exists in both the
## repository and the release tarfiles.
mkinfodir = @${MKDIR_P} ${infodir}
mkinfodir = @${MKDIR_P} ${buildinfodir}
.PHONY: info dvi html pdf ps
info: $(infodir)/emacs$(INFO_EXT)
info: $(buildinfodir)/emacs$(INFO_EXT)
dvi: emacs.dvi
html: emacs.html
pdf: emacs.pdf
@ -135,7 +135,7 @@ ps: emacs.ps
# There is no provision for Info files to exist in the build directory.
# In a distribution of Emacs, the Info files should be up to date.
# Note: "<" is not portable in ordinary make rules.
$(infodir)/emacs$(INFO_EXT): ${EMACSSOURCES}
$(buildinfodir)/emacs$(INFO_EXT): ${EMACSSOURCES}
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs.texi
@ -178,7 +178,7 @@ distclean: clean
## In the standalone tarfile, the clean rule runs this.
infoclean:
-cd $(infodir) && rm -f emacs$(INFO_EXT) emacs$(INFO_EXT)-[1-9] emacs$(INFO_EXT)-[1-9][0-9]
-cd $(buildinfodir) && rm -f emacs$(INFO_EXT) emacs$(INFO_EXT)-[1-9] emacs$(INFO_EXT)-[1-9][0-9]
maintainer-clean: distclean infoclean
@ -192,7 +192,8 @@ dist:
cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \
${srcdir}/ChangeLog* emacs-manual-${version}/
sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \
-e 's/^\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \
-e 's/^\(buildinfodir *=\).*/\1 ./' \
-e 's/^\(clean:.*\)/\1 infoclean/' \
-e "s/@ver[s]ion@/${version}/" \
${srcdir}/Makefile.in > emacs-manual-${version}/Makefile
tar -cf emacs-manual-${version}.tar emacs-manual-${version}

View file

@ -363,6 +363,10 @@ Kevin Gallagher rewrote and enhanced the EDT emulation, and wrote
@file{flow-ctrl.el}, a package for coping with unsuppressible XON/XOFF
flow control.
@item
Fabián E. Gallina rewrote @file{python.el}, the major mode for the
Python programming language used in Emacs 24.2 onwards.
@item
Kevin Gallo added multiple-frame support for Windows NT and wrote
@file{w32-win.el}, support functions for the MS-Windows window system.
@ -710,13 +714,13 @@ headers; @file{hl-line.el}, a minor mode for highlighting the line in
the current window on which point is; @file{cap-words.el}, a minor mode
for motion in ``CapitalizedWordIdentifiers''; @file{latin1-disp.el}, a
package that lets you display ISO 8859 characters on Latin-1 terminals
by setting up appropriate display tables; @file{python.el}, a major mode
for the Python programming language; @file{smiley.el}, a facility for
displaying smiley faces; @file{sym-comp.el}, a library for performing
mode-dependent symbol completion; @file{benchmark.el} for timing code
execution; and @file{tool-bar.el}, a mode to control the display of
the Emacs tool bar. With Riccardo Murri he wrote @file{vc-bzr.el},
support for the Bazaar version control system.
by setting up appropriate display tables; the version of
@file{python.el} used prior to Emacs 24.2; @file{smiley.el}, a
facility for displaying smiley faces; @file{sym-comp.el}, a library
for performing mode-dependent symbol completion; @file{benchmark.el}
for timing code execution; and @file{tool-bar.el}, a mode to control
the display of the Emacs tool bar. With Riccardo Murri he wrote
@file{vc-bzr.el}, support for the Bazaar version control system.
@item
Eric Ludlam wrote the Speedbar package; @file{checkdoc.el}, for checking
@ -831,7 +835,9 @@ diffs; @file{css-mode.el} for Cascading Style Sheets;
@file{bibtex-style.el} for Bib@TeX{} Style files; @file{mpc.el}, a
client for the ``Music Player Daemon''; @file{smie.el}, a generic
indentation engine; and @file{pcase.el}, implementing ML-style pattern
matching. He integrated the lexical binding code in Emacs 24.
matching. In Emacs 24, he integrated the lexical binding code,
and cleaned up the CL namespace (making it acceptable to use CL
functions at runtime).
@item
Morioka Tomohiko wrote several packages for MIME support in Gnus and

View file

@ -97,28 +97,29 @@ To use decimal or hexadecimal instead of octal, set the variable
the letters @kbd{a} to @kbd{f} serve as part of a character code,
just like digits. Case is ignored.
@findex ucs-insert
@findex insert-char
@kindex C-x 8 RET
@cindex Unicode characters, inserting
@cindex insert Unicode character
@cindex characters, inserting by name or code-point
Instead of @kbd{C-q}, you can use the command @kbd{C-x 8 @key{RET}}
(@code{ucs-insert}). This prompts for the Unicode name or code-point
Alternatively, you can use the command @kbd{C-x 8 @key{RET}}
(@code{insert-char}). This prompts for the Unicode name or code-point
of a character, using the minibuffer. If you enter a name, the
command provides completion (@pxref{Completion}). If you enter a
code-point, it should be a hexadecimal number (which is the convention
for Unicode). The command then inserts the corresponding character
into the buffer. For example, both of the following insert the
infinity sign (Unicode code-point @code{U+221E}):
code-point, it should be as a hexadecimal number (the convention for
Unicode), or a number with a specified radix, e.g.@: @code{#o23072}
(octal); @xref{Integer Basics,,, elisp, The Emacs Lisp Reference
Manual}. The command then inserts the corresponding character into
the buffer. For example, both of the following insert the infinity
sign (Unicode code-point @code{U+221E}):
@example
@kbd{C-x 8 @key{RET} infinity @key{RET}}
@kbd{C-x 8 @key{RET} 221e @key{RET}}
@end example
A numeric argument to either @kbd{C-q} or @kbd{C-x 8 @key{RET}}
specifies how many copies of the character to insert
(@pxref{Arguments}).
A numeric argument to @kbd{C-q} or @kbd{C-x 8 @key{RET}} specifies
how many copies of the character to insert (@pxref{Arguments}).
@node Moving Point
@section Changing the Location of Point
@ -345,7 +346,7 @@ moves down into it.
Delete the character before point, or the region if it is active
(@code{delete-backward-char}).
@itemx @key{Delete}
@item @key{Delete}
Delete the character after point, or the region if it is active
(@code{delete-forward-char}).
@ -403,7 +404,8 @@ commands.
@item C-/
Undo one entry of the undo records---usually, one command worth
(@code{undo}).
@itemx C-x u
@item C-x u
@itemx C-_
The same.
@end table

View file

@ -232,11 +232,14 @@ have special commands to operate on the text; also by visiting a file
whose access control says you cannot write it.
@findex toggle-read-only
@vindex view-read-only
The command @kbd{C-x C-q} (@code{toggle-read-only}) makes a read-only
buffer writable, and makes a writable buffer read-only. This works by
setting the variable @code{buffer-read-only}, which has a local value
in each buffer and makes the buffer read-only if its value is
non-@code{nil}.
non-@code{nil}. If you change the option @code{view-read-only} to a
non-@code{nil} value, making the buffer read-only with @kbd{C-x C-q}
also enables View mode in the buffer (@pxref{View Mode}).
@findex rename-buffer
@kbd{M-x rename-buffer} changes the name of the current buffer. You

View file

@ -766,7 +766,7 @@ displays something like this:
fill-column is a variable defined in `C source code'.
fill-column's value is 70
Automatically becomes buffer-local when set in any fashion.
Automatically becomes buffer-local when set.
This variable is safe as a file local variable if its value
satisfies the predicate `integerp'.
@ -2103,11 +2103,12 @@ loading of this library, use the option @samp{--no-site-file}.
better to put them in @file{default.el}, so that users can more easily
override them.
@cindex site-lisp directories
You can place @file{default.el} and @file{site-start.el} in any of
the directories which Emacs searches for Lisp libraries. The variable
@code{load-path} (@pxref{Lisp Libraries}) specifies these directories.
Many sites put these files in the @file{site-lisp} subdirectory of the
Emacs installation directory, typically
Many sites put these files in a subdirectory named @file{site-lisp} in
the Emacs installation directory, such as
@file{/usr/local/share/emacs/site-lisp}.
Byte-compiling your init file is not recommended (@pxref{Byte

View file

@ -94,7 +94,7 @@ developing GNU and promoting software freedom.''
Published by the Free Software Foundation @*
51 Franklin Street, Fifth Floor @*
Boston, MA 02110-1301 USA @*
ISBN 978-0-9831592-2-3
ISBN 978-0-9831592-3-0
@sp 2
Cover art by Etienne Suvasa; cover design by Matt Lee.
@ -131,17 +131,6 @@ Emacs Lisp Reference Manual}.
@menu
* Distrib:: How to get the latest Emacs distribution.
* Intro:: An introduction to Emacs concepts.
@c Note that in the printed manual, the glossary and indices come last.
* Glossary:: Terms used in this manual.
Indexes (each index contains a large menu)
* Key Index:: An item for each standard Emacs key sequence.
* Option Index:: An item for every command-line option.
* Command Index:: An item for each command name.
* Variable Index:: An item for each documented variable.
* Concept Index:: An item for each concept.
* Acknowledgments:: Major contributors to GNU Emacs.
Important General Concepts
* Screen:: How to interpret what you see on the screen.
@ -224,6 +213,18 @@ Appendices
* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
* Manifesto:: What's GNU? Gnu's Not Unix!
* Glossary:: Terms used in this manual.
@ifnottex
* Acknowledgments:: Major contributors to GNU Emacs.
@end ifnottex
Indexes (each index contains a large menu)
* Key Index:: An item for each standard Emacs key sequence.
* Option Index:: An item for every command-line option.
* Command Index:: An item for each command name.
* Variable Index:: An item for each documented variable.
* Concept Index:: An item for each concept.
@c Do NOT modify the following 3 lines! They must have this form to
@c be correctly identified by `texinfo-multiple-files-update'. In
@c particular, the detailed menu header line MUST be identical to the

View file

@ -35,7 +35,7 @@ These were described earlier in this manual. @xref{Erasing}.
The @dfn{undo} command reverses recent changes in the buffer's text.
Each buffer records changes individually, and the undo command always
applies to the current buffer. You can undo all the changes in a
buffer for as far as back its records go. Usually, each editing
buffer for as far back as the buffer's records go. Usually, each editing
command makes a separate entry in the undo records, but some commands
such as @code{query-replace} divide their changes into multiple
entries for flexibility in undoing. Consecutive character insertion
@ -109,9 +109,9 @@ Emacs to hold text that users don't normally look at or edit.
@vindex undo-strong-limit
@vindex undo-outer-limit
@cindex undo limit
When the undo records for a buffer becomes too large, Emacs discards
the oldest undo records from time to time (during @dfn{garbage
collection}). You can specify how much undo records to keep by
When the undo information for a buffer becomes too large, Emacs discards
the oldest records from time to time (during @dfn{garbage
collection}). You can specify how much undo information to keep by
setting the variables @code{undo-limit}, @code{undo-strong-limit}, and
@code{undo-outer-limit}. Their values are expressed in bytes.

View file

@ -426,7 +426,7 @@ VC fileset is handled individually; for example, a commit generates
one revision for each changed file.
@table @kbd
@itemx C-x v v
@item C-x v v
Perform the next appropriate version control operation on the current
VC fileset.
@end table
@ -1326,7 +1326,7 @@ commit will be committed to that specific branch.
@subsubsection Pulling Changes into a Branch
@table @kbd
@itemx C-x v +
@item C-x v +
On a decentralized version control system, update the current branch
by ``pulling in'' changes from another location.
@ -1366,7 +1366,7 @@ updates the current VC fileset from the repository.
@cindex merging changes
@table @kbd
@itemx C-x v m
@item C-x v m
On a decentralized version control system, merge changes from another
branch into the current one.

View file

@ -146,7 +146,7 @@ displayed on your terminal, they appear as @samp{?} or as hollow boxes
used, generally don't have keys for all the characters in them. You
can insert characters that your keyboard does not support, using
@kbd{C-q} (@code{quoted-insert}) or @kbd{C-x 8 @key{RET}}
(@code{ucs-insert}). @xref{Inserting Text}. Emacs also supports
(@code{insert-char}). @xref{Inserting Text}. Emacs also supports
various @dfn{input methods}, typically one for each script or
language, which make it easier to type characters in the script.
@xref{Input Methods}.
@ -548,7 +548,7 @@ possible characters to type next is displayed in the echo area (but
not when you are in the minibuffer).
Another facility for typing characters not on your keyboard is by
using @kbd{C-x 8 @key{RET}} (@code{ucs-insert}) to insert a single
using @kbd{C-x 8 @key{RET}} (@code{insert-char}) to insert a single
character based on its Unicode name or code-point; see @ref{Inserting
Text}.

View file

@ -1,3 +1,7 @@
2012-06-21 Glenn Morris <rgm@gnu.org>
* Makefile.in: Rename infodir to buildinfodir throughout. (Bug#11737)
2012-05-29 Glenn Morris <rgm@gnu.org>
* emacs-lisp-intro.texi: Nuke hand-written node pointers.
@ -385,7 +389,7 @@
`named' to `selected'.
(lengths-list-file): Remove extraneous parenthesis from reference.
(lengths-list-many-files): Explain `expand-file-name' better.
(Files List): Rephrase sentence regarding Lisp sources directory
(Files List): Rephrase sentence regarding Lisp sources directory.
2006-11-04 Robert J. Chassell <bob@rattlesnake.com>

View file

@ -22,7 +22,7 @@ SHELL = /bin/sh
srcdir = @srcdir@
version=@version@
infodir = $(srcdir)/../../info
buildinfodir = $(srcdir)/../../info
# Directory with the (customized) texinfo.tex file.
texinfodir = $(srcdir)/../misc
@ -41,11 +41,11 @@ DVIPS = dvips
ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
mkinfodir = @${MKDIR_P} ${infodir}
mkinfodir = @${MKDIR_P} ${buildinfodir}
.PHONY: info dvi html pdf ps
info: ${infodir}/eintr$(INFO_EXT)
info: ${buildinfodir}/eintr$(INFO_EXT)
dvi: emacs-lisp-intro.dvi
html: emacs-lisp-intro.html
@ -55,7 +55,7 @@ ps: emacs-lisp-intro.ps
# The file name eintr must fit within 5 characters, to allow for
# -NN extensions to fit into DOS 8+3 limits without clashing.
# Note: "<" is not portable in ordinary make rules.
${infodir}/eintr$(INFO_EXT): ${srcdir}/emacs-lisp-intro.texi
${buildinfodir}/eintr$(INFO_EXT): ${srcdir}/emacs-lisp-intro.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi
@ -85,7 +85,7 @@ clean: mostlyclean
distclean: clean
infoclean:
-cd $(infodir) && rm -f eintr$(INFO_EXT) eintr$(INFO_EXT)-[1-9]
-cd $(buildinfodir) && rm -f eintr$(INFO_EXT) eintr$(INFO_EXT)-[1-9]
maintainer-clean: distclean infoclean
@ -98,7 +98,8 @@ dist:
${texinfodir}/texinfo.tex \
${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/
sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \
-e 's/^\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \
-e 's/^\(buildinfodir *=\).*/\1 ./' \
-e 's/^\(clean:.*\)/\1 infoclean/' \
-e "s/@ver[s]ion@/${version}/" \
${srcdir}/Makefile.in > emacs-lispintro-${version}/Makefile
tar -cf emacs-lispintro-${version}.tar emacs-lispintro-${version}

View file

@ -1,3 +1,82 @@
2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
Prefer typical American spelling for "acknowledgment".
* intro.texi (Acknowledgments): Rename from Acknowledgements.
2012-07-21 Eli Zaretskii <eliz@gnu.org>
* commands.texi (Special Events): Mention language-change event.
(Input Events, Interactive Codes):
* keymaps.texi (Key Sequences): Mention events that are
non-keyboard but also non-mouse events.
2012-07-17 Chong Yidong <cyd@gnu.org>
* text.texi (Insertion): Document insert-char changes.
2012-07-15 Leo Liu <sdl.web@gmail.com>
* display.texi (Fringe Bitmaps): Add exclamation-mark.
2012-07-13 Chong Yidong <cyd@gnu.org>
* buffers.texi (Read Only Buffers): Document toggle-read-only
changes. Reword to account for the fact that read-only is
currently not supported in overlay properties.
2012-07-07 Chong Yidong <cyd@gnu.org>
* loading.texi (Library Search): Index site-lisp directories.
2012-07-06 Chong Yidong <cyd@gnu.org>
* intro.texi (A Sample Function Description): Fix incorrect
markup, undoing previous change.
(A Sample Variable Description): Minor clarifications and markup
improvements.
* elisp.texi (Top):
* text.texi (Text): Fix menu order.
2012-07-06 Richard Stallman <rms@gnu.org>
* intro.texi (Evaluation Notation, A Sample Function Description):
(A Sample Variable Description): Improve/undo previous changes.
2012-07-05 Glenn Morris <rgm@gnu.org>
* intro.texi (A Sample Function Description): Fix cross-refs.
2012-07-05 Michael Witten <mfwitten@gmail.com> (tiny change)
* intro.texi (Evaluation Notation, A Sample Function Description)
(A Sample Variable Description, Version Info): Copy edits (bug#11862).
2012-06-27 Chong Yidong <cyd@gnu.org>
* processes.texi (Asynchronous Processes, Input to Processes):
* internals.texi (Process Internals): Don't capitalize "pty".
2012-06-24 Thien-Thi Nguyen <ttn@gnuvola.org>
* processes.texi (Asynchronous Processes): Make the pty vs pipe
discussion more prominent.
2012-06-23 Eli Zaretskii <eliz@gnu.org>
* commands.texi (Misc Events): Document the language-change event.
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Support higher-resolution time stamps (Bug#9000).
* os.texi (Time of Day, Time Parsing, Processor Run Time, Idle Timers):
* processes.texi (System Processes):
Time stamp resolution is now picosecond, not microsecond.
2012-06-21 Glenn Morris <rgm@gnu.org>
* Makefile.in: Rename infodir to buildinfodir throughout. (Bug#11737)
2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
* functions.texi (Defining Functions):
@ -10857,8 +10936,8 @@
(Recording Input): Document that clear-this-command-keys clears
the vector to be returned by recent-keys.
* keymaps.texi (Scanning Keymaps) <where-is-internal>: The
argument keymap can be a list.
* keymaps.texi (Scanning Keymaps) <where-is-internal>:
The argument keymap can be a list.
* nonascii.texi (User-Chosen Coding Systems)
<select-safe-coding-system>: Document the new argument
@ -11103,7 +11182,7 @@
* Makefile (dist): Don't bother excluding autosave files; they'll
never make it into the temp directory anyway, and the hash marks
in the name are problematic for make and the Bourne shell.
(srcs):
(srcs): ???
1993-02-12 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)

View file

@ -24,7 +24,7 @@ srcdir = @srcdir@
version=@version@
infodir = $(srcdir)/../../info
buildinfodir = $(srcdir)/../../info
# Directory with the (customized) texinfo.tex file.
texinfodir = $(srcdir)/../misc
# Directory with emacsver.texi.
@ -101,18 +101,18 @@ srcs = \
$(srcdir)/gpl.texi \
$(srcdir)/doclicense.texi
mkinfodir = @${MKDIR_P} ${infodir}
mkinfodir = @${MKDIR_P} ${buildinfodir}
.PHONY: info dvi pdf ps
info: $(infodir)/elisp$(INFO_EXT)
info: $(buildinfodir)/elisp$(INFO_EXT)
dvi: elisp.dvi
html: elisp.html
pdf: elisp.pdf
ps: elisp.ps
## Note: "<" is not portable in ordinary make rules.
$(infodir)/elisp$(INFO_EXT): $(srcs)
$(buildinfodir)/elisp$(INFO_EXT): $(srcs)
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $(srcdir)/elisp.texi
@ -145,7 +145,7 @@ clean: mostlyclean
distclean: clean
infoclean:
-cd $(infodir) && rm -f elisp$(INFO_EXT) elisp$(INFO_EXT)-[1-9] elisp$(INFO_EXT)-[1-9][0-9]
-cd $(buildinfodir) && rm -f elisp$(INFO_EXT) elisp$(INFO_EXT)-[1-9] elisp$(INFO_EXT)-[1-9][0-9]
maintainer-clean: distclean infoclean
@ -160,7 +160,8 @@ dist:
${srcdir}/README emacs-lispref-${version}/
sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \
-e 's/^\(emacsdir *=\).*/\1 ./' \
-e 's/^\(infodir *=\).*/\1 ./' -e 's/^\(clean:.*\)/\1 infoclean/' \
-e 's/^\(buildinfodir *=\).*/\1 ./' \
-e 's/^\(clean:.*\)/\1 infoclean/' \
-e "s/@ver[s]ion@/${version}/" \
${srcdir}/Makefile.in > emacs-lispref-${version}/Makefile
tar -cf emacs-lispref-${version}.tar emacs-lispref-${version}

View file

@ -730,11 +730,9 @@ The buffer is read-only if this variable is non-@code{nil}.
@defvar inhibit-read-only
If this variable is non-@code{nil}, then read-only buffers and,
depending on the actual value, some or all read-only characters may be
modified. Read-only characters in a buffer are those that have
non-@code{nil} @code{read-only} properties (either text properties or
overlay properties). @xref{Special Properties}, for more information
about text properties. @xref{Overlays}, for more information about
overlays and their properties.
modified. Read-only characters in a buffer are those that have a
non-@code{nil} @code{read-only} text property. @xref{Special
Properties}, for more information about text properties.
If @code{inhibit-read-only} is @code{t}, all @code{read-only} character
properties have no effect. If @code{inhibit-read-only} is a list, then
@ -742,18 +740,31 @@ properties have no effect. If @code{inhibit-read-only} is a list, then
of the list (comparison is done with @code{eq}).
@end defvar
@deffn Command toggle-read-only &optional arg
This command toggles whether the current buffer is read-only. It is
intended for interactive use; do not use it in programs (it may have
side-effects, such as enabling View mode, and does not affect
read-only text properties). To change the read-only state of a buffer in
a program, explicitly set @code{buffer-read-only} to the proper value.
To temporarily ignore a read-only state, bind @code{inhibit-read-only}.
@deffn Command toggle-read-only &optional arg message
This command toggles whether the current buffer is read-only, by
setting the variable @code{buffer-read-only}. If @var{arg} is
non-@code{nil}, it should be a raw prefix argument; the command then
makes the buffer read-only if the numeric value of that prefix
argument is positive, and makes the buffer writable otherwise.
@xref{Prefix Command Arguments}.
If @var{arg} is non-@code{nil}, it should be a raw prefix argument.
@code{toggle-read-only} sets @code{buffer-read-only} to @code{t} if
the numeric value of that prefix argument is positive and to
@code{nil} otherwise. @xref{Prefix Command Arguments}.
If called interactively, or if called from Lisp with @var{message} is
non-@code{nil}, the command prints a message reporting the buffer's
new read-only status.
When making the buffer read-only, this command also enables View mode
if the option @code{view-read-only} is non-@code{nil}. @xref{Misc
Buffer,,Miscellaneous Buffer Operations, emacs, The GNU Emacs Manual}.
When making the buffer writable, it disables View mode if View mode
was enabled.
Lisp programs should only call @code{toggle-read-only} if they really
intend to do the same thing as the user command, including possibly
enabling or disabling View mode. Note also that this command works by
setting @code{buffer-read-only}, so even if you make the buffer
writable, characters with non-@code{nil} @code{read-only} text
properties will remain read-only. To temporarily ignore all read-only
states, bind @code{inhibit-read-only}, as described above.
@end deffn
@defun barf-if-buffer-read-only

View file

@ -379,9 +379,14 @@ current buffer, @code{default-directory} (@pxref{File Name Expansion}).
Existing, Completion, Default, Prompt.
@item e
The first or next mouse event in the key sequence that invoked the command.
More precisely, @samp{e} gets events that are lists, so you can look at
the data in the lists. @xref{Input Events}. No I/O.
The first or next non-keyboard event in the key sequence that invoked
the command. More precisely, @samp{e} gets events that are lists, so
you can look at the data in the lists. @xref{Input Events}. No I/O.
You use @samp{e} for mouse events and for special system events
(@pxref{Misc Events}). The event list that the command receives
depends on the event. @xref{Input Events}, which describes the forms
of the list for each event in the corresponding subsections.
You can use @samp{e} more than once in a single command's interactive
specification. If the key sequence that invoked the command has
@ -972,9 +977,10 @@ moving point out of these sequences is completely turned off.
@cindex input events
The Emacs command loop reads a sequence of @dfn{input events} that
represent keyboard or mouse activity. The events for keyboard activity
are characters or symbols; mouse events are always lists. This section
describes the representation and meaning of input events in detail.
represent keyboard or mouse activity, or system events sent to Emacs.
The events for keyboard activity are characters or symbols; other
events are always lists. This section describes the representation
and meaning of input events in detail.
@defun eventp object
This function returns non-@code{nil} if @var{object} is an input event
@ -1716,6 +1722,38 @@ To test the signal handler, you can make Emacs send a signal to itself:
@smallexample
(signal-process (emacs-pid) 'sigusr1)
@end smallexample
@cindex @code{language-change} event
@item language-change
This kind of event is generated on MS-Windows when the input language
has changed. This typically means that the keyboard keys will send to
Emacs characters from a different language. The generated event has
this form:
@smallexample
(language-change @var{frame} @var{codepage} @var{language-id})
@end smallexample
@noindent
Here @var{frame} is the frame which was current when the input
language changed; @var{codepage} is the new codepage number; and
@var{language-id} is the numerical ID of the new input language. The
coding-system (@pxref{Coding Systems}) that corresponds to
@var{codepage} is @code{cp@var{codepage}} or
@code{windows-@var{codepage}}. To convert @var{language-id} to a
string (e.g., to use it for various language-dependent features, such
as @code{set-language-environment}), use the
@code{w32-get-locale-info} function, like this:
@smallexample
;; Get the abbreviated language name, such as "ENU" for English
(w32-get-locale-info language-id)
;; Get the full English name of the language,
;; such as "English (United States)"
(w32-get-locale-info language-id 4097)
;; Get the full localized name of the language
(w32-get-locale-info language-id t)
@end smallexample
@end table
If one of these events arrives in the middle of a key sequence---that
@ -2808,11 +2846,11 @@ immediately after they are read, and this is the way for the event's
definition to find the actual event.
The events types @code{iconify-frame}, @code{make-frame-visible},
@code{delete-frame}, @code{drag-n-drop}, and user signals like
@code{sigusr1} are normally handled in this way. The keymap which
defines how to handle special events---and which events are
special---is in the variable @code{special-event-map} (@pxref{Active
Keymaps}).
@code{delete-frame}, @code{drag-n-drop}, @code{language-change}, and
user signals like @code{sigusr1} are normally handled in this way.
The keymap which defines how to handle special events---and which
events are special---is in the variable @code{special-event-map}
(@pxref{Active Keymaps}).
@node Waiting
@section Waiting for Elapsed Time or Input

View file

@ -3550,7 +3550,7 @@ Used to indicate buffer boundaries.
@itemx @code{vertical-bar}, @code{horizontal-bar}
Used for different types of fringe cursors.
@item @code{empty-line}, @code{question-mark}
@item @code{empty-line}, @code{question-mark}, @code{exclamation-mark}
Unused.
@end table

View file

@ -254,7 +254,7 @@ Introduction
* Lisp History:: Emacs Lisp is descended from Maclisp.
* Conventions:: How the manual is formatted.
* Version Info:: Which Emacs version is running?
* Acknowledgements:: The authors, editors, and sponsors of this manual.
* Acknowledgments:: The authors, editors, and sponsors of this manual.
Conventions
@ -1123,9 +1123,9 @@ Text
* Case Changes:: Case conversion of parts of the buffer.
* Text Properties:: Assigning Lisp property lists to text characters.
* Substitution:: Replacing a given character wherever it appears.
* Transposition:: Swapping two portions of a buffer.
* Registers:: How registers are implemented. Accessing
the text or position stored in a register.
* Transposition:: Swapping two portions of a buffer.
* Base 64:: Conversion to or from base 64 encoding.
* Checksum/Hash:: Computing cryptographic hashes.
* Parsing HTML/XML:: Parsing HTML and XML.

View file

@ -1846,6 +1846,17 @@ Note that the @samp{.~3~} in the two last examples is the backup part,
not an extension.
@end defun
@defun file-name-base &optional filename
This function is the composition of @code{file-name-sans-extension}
and @code{file-name-nondirectory}. For example,
@example
(file-name-base "/my/home/foo.c")
@result{} "foo"
@end example
The @var{filename} argument defaults to @code{buffer-file-name}.
@end defun
@node Relative File Names
@subsection Absolute and Relative File Names

View file

@ -1380,7 +1380,7 @@ needs to be reported, either by running the sentinel or by inserting a
message in the process buffer.
@item pty_flag
Non-@code{nil} if communication with the subprocess uses a @acronym{PTY};
Non-@code{nil} if communication with the subprocess uses a pty;
@code{nil} if it uses a pipe.
@item infd

View file

@ -44,7 +44,7 @@ corresponding to Emacs version @value{EMACSVER}.
* Lisp History:: Emacs Lisp is descended from Maclisp.
* Conventions:: How the manual is formatted.
* Version Info:: Which Emacs version is running?
* Acknowledgements:: The authors, editors, and sponsors of this manual.
* Acknowledgments:: The authors, editors, and sponsors of this manual.
@end menu
@node Caveats
@ -235,7 +235,7 @@ evaluation of the expanded form.
@result{} c
@end example
Sometimes to help describe one form we show another form that
To help describe one form, we sometimes show another form that
produces identical results. The exact equivalence of two forms is
indicated with @samp{@equiv{}}.
@ -351,7 +351,7 @@ you call the function.
The keyword @code{&rest} (which must be followed by a single
argument name) indicates that any number of arguments can follow. The
single argument name following @code{&rest} will receive, as its
single argument name following @code{&rest} receives, as its
value, a list of all the remaining arguments passed to the function.
Do not write @code{&rest} when you call the function.
@ -379,24 +379,25 @@ More generally,
@end example
@end defun
Any argument whose name contains the name of a type (e.g.,
@var{integer}, @var{integer1} or @var{buffer}) is expected to be of that
type. A plural of a type (such as @var{buffers}) often means a list of
objects of that type. Arguments named @var{object} may be of any type.
(@xref{Lisp Data Types}, for a list of Emacs object types.) Arguments
with other sorts of names (e.g., @var{new-file}) are discussed
specifically in the description of the function. In some sections,
features common to the arguments of several functions are described at
the beginning.
By convention, any argument whose name contains the name of a type
(e.g.@: @var{integer}, @var{integer1} or @var{buffer}) is expected to
be of that type. A plural of a type (such as @var{buffers}) often
means a list of objects of that type. An argument named @var{object}
may be of any type. (For a list of Emacs object types, @pxref{Lisp
Data Types}.) An argument with any other sort of name
(e.g.@: @var{new-file}) is specific to the function; if the function
has a documentation string, the type of the argument should be
described there (@pxref{Documentation}).
@xref{Lambda Expressions}, for a more complete description of optional
and rest arguments.
@xref{Lambda Expressions}, for a more complete description of
arguments modified by @code{&optional} and @code{&rest}.
Command, macro, and special form descriptions have the same format,
but the word `Function' is replaced by `Command', `Macro', or `Special
Form', respectively. Commands are simply functions that may be called
interactively; macros process their arguments differently from functions
(the arguments are not evaluated), but are presented the same way.
but the word @samp{Function} is replaced by @samp{Command},
@samp{Macro}, or @samp{Special Form}, respectively. Commands are
simply functions that may be called interactively; macros process
their arguments differently from functions (the arguments are not
evaluated), but are presented the same way.
The descriptions of macros and special forms use a more complex
notation to specify optional and repeated arguments, because they can
@ -445,11 +446,14 @@ from @var{body}, which includes all remaining elements of the form.
@cindex variable descriptions
@cindex option descriptions
A @dfn{variable} is a name that can hold a value. Although nearly
all variables can be set by the user, certain variables exist
specifically so that users can change them; these are called @dfn{user
options}. Ordinary variables and user options are described using a
format like that for functions except that there are no arguments.
A @dfn{variable} is a name that can be @dfn{bound} (or @dfn{set}) to
an object. The object to which a variable is bound is called a
@dfn{value}; we say also that variable holds that value.
Although nearly all variables can be set by the user, certain
variables exist specifically so that users can change them; these are
called @dfn{user options}. Ordinary variables and user options are
described using a format like that for functions, except that there
are no arguments.
Here is a description of the imaginary @code{electric-future-map}
variable.@refill
@ -460,8 +464,8 @@ Future mode. The functions in this map allow you to edit commands you
have not yet thought about executing.
@end defvar
User option descriptions have the same format, but `Variable' is
replaced by `User Option'.
User option descriptions have the same format, but @samp{Variable}
is replaced by @samp{User Option}.
@node Version Info
@section Version Information
@ -504,7 +508,7 @@ emacs-build-time
The value of this variable is the version of Emacs being run. It is a
string such as @code{"23.1.1"}. The last number in this string is not
really part of the Emacs release version number; it is incremented
each time you build Emacs in any given directory. A value with four
each time Emacs is built in any given directory. A value with four
numeric components, such as @code{"22.0.91.1"}, indicates an
unreleased test version.
@end defvar
@ -519,8 +523,8 @@ The minor version number of Emacs, as an integer. For Emacs version
23.1, the value is 1.
@end defvar
@node Acknowledgements
@section Acknowledgements
@node Acknowledgments
@section Acknowledgments
This manual was originally written by Robert Krawitz, Bil Lewis, Dan
LaLiberte, Richard@tie{}M. Stallman and Chris Welty, the volunteers of

View file

@ -45,7 +45,8 @@ is found. The whole process is called @dfn{key lookup}.
A @dfn{key sequence}, or @dfn{key} for short, is a sequence of one
or more input events that form a unit. Input events include
characters, function keys, and mouse actions (@pxref{Input Events}).
characters, function keys, mouse actions, or system events external to
Emacs, such as @code{iconify-frame} (@pxref{Input Events}).
The Emacs Lisp representation for a key sequence is a string or
vector. Unless otherwise stated, any Emacs Lisp function that accepts
a key sequence as an argument can handle both representations.
@ -62,9 +63,10 @@ sequence is the concatenation of the string representations of the
constituent events; thus, @code{"\C-xl"} represents the key sequence
@kbd{C-x l}.
Key sequences containing function keys, mouse button events, or
non-@acronym{ASCII} characters such as @kbd{C-=} or @kbd{H-a} cannot be
represented as strings; they have to be represented as vectors.
Key sequences containing function keys, mouse button events, system
events, or non-@acronym{ASCII} characters such as @kbd{C-=} or
@kbd{H-a} cannot be represented as strings; they have to be
represented as vectors.
In the vector representation, each element of the vector represents
an input event, in its Lisp form. @xref{Input Events}. For example,

View file

@ -262,6 +262,7 @@ Here is how to set it from @code{csh}:
setenv EMACSLOADPATH /home/foo/.emacs.d/lisp:/opt/emacs/lisp
@end example
@cindex site-lisp directories
If @env{EMACSLOADPATH} is not set (which is usually the case), Emacs
initializes @code{load-path} with the following two directories:

View file

@ -1166,7 +1166,9 @@ The value may be a floating point number.
zone.
@cindex epoch
Most of these functions represent time as a list of either three
Most of these functions represent time as a list of either four
integers, @code{(@var{sec-high} @var{sec-low} @var{microsec}
@var{picosec})}, or of three
integers, @code{(@var{sec-high} @var{sec-low} @var{microsec})}, or of
two integers, @code{(@var{sec-high} @var{sec-low})}. The integers
@var{sec-high} and @var{sec-low} give the high and low bits of an
@ -1181,12 +1183,15 @@ is the number of seconds from the @dfn{epoch} (0:00 January 1, 1970
UTC) to the specified time. The third list element @var{microsec}, if
present, gives the number of microseconds from the start of that
second to the specified time.
Similarly, the fourth list element @var{picosec}, if present, gives
the number of picoseconds from the start of that microsecond to the
specified time.
The return value of @code{current-time} represents time using three
integers, while the timestamps in the return value of
@code{file-attributes} use two integers (@pxref{Definition of
integers, as do the timestamps in the return value of
@code{file-attributes} (@pxref{Definition of
file-attributes}). In function arguments, e.g.@: the @var{time-value}
argument to @code{current-time-string}, both two- and three-integer
argument to @code{current-time-string}, two-, three-, and four-integer
lists are accepted. You can convert times from the list
representation into standard human-readable strings using
@code{current-time}, or to other forms using the @code{decode-time}
@ -1216,9 +1221,12 @@ The argument @var{time-value}, if given, specifies a time to format
@end defun
@defun current-time
This function returns the current time, represented as a list of three
integers @code{(@var{sec-high} @var{sec-low} @var{microsec})}. On
systems with only one-second time resolutions, @var{microsec} is 0.
This function returns the current time, represented as a list of four
integers @code{(@var{sec-high} @var{sec-low} @var{microsec} @var{picosec})}.
These integers have trailing zeros on systems that return time with
lower resolutions. On all current machines @var{picosec} is a
multiple of 1000, but this may change as higher-resolution clocks
become available.
@end defun
@defun float-time &optional time-value
@ -1259,7 +1267,7 @@ time zone.
@node Time Conversion
@section Time Conversion
These functions convert time values (lists of two or three integers,
These functions convert time values (lists of two to four integers,
as explained in the previous section) into calendrical information and
vice versa.
@ -1410,8 +1418,6 @@ This stands for a newline.
This stands for the nanoseconds (000000000-999999999). To ask for
fewer digits, use @samp{%3N} for milliseconds, @samp{%6N} for
microseconds, etc. Any excess digits are discarded, without rounding.
Currently Emacs time stamps are at best microsecond resolution so the
last three digits generated by plain @samp{%N} are always zero.
@item %p
This stands for @samp{AM} or @samp{PM}, as appropriate.
@item %r
@ -1563,18 +1569,9 @@ When called interactively, it prints the uptime in the echo area.
@defun get-internal-run-time
This function returns the processor run time used by Emacs as a list
of three integers: @code{(@var{high} @var{low} @var{microsec})}. The
integers @var{high} and @var{low} combine to give the number of
seconds, which is
@ifnottex
@var{high} * 2**16 + @var{low}.
@end ifnottex
@tex
$high*2^{16}+low$.
@end tex
The third element, @var{microsec}, gives the microseconds (or 0 for
systems that return time with the resolution of only one second).
of four integers: @code{(@var{high} @var{low} @var{microsec}
@var{picosec})}, using the same format as @code{current-time}
(@pxref{Time of Day}).
Note that the time returned by this function excludes the time Emacs
was not using the processor, and if the Emacs process has several
@ -1817,10 +1814,9 @@ set up to repeat will subsequently run another time, one by one.
@defun current-idle-time
If Emacs is idle, this function returns the length of time Emacs has
been idle, as a list of three integers: @code{(@var{sec-high}
@var{sec-low} @var{microsec})}, where @var{high} and @var{low} are the
high and low bits for the number of seconds and @var{microsec} is the
additional number of microseconds (@pxref{Time of Day}).
been idle, as a list of four integers: @code{(@var{sec-high}
@var{sec-low} @var{microsec} @var{picosec})}, using the same format as
@code{current-time} (@pxref{Time of Day}).
When Emacs is not idle, @code{current-idle-time} returns @code{nil}.
This is a convenient way to test whether Emacs is idle.

View file

@ -541,16 +541,29 @@ is decoded in the same way as for @code{call-process}.
@section Creating an Asynchronous Process
@cindex asynchronous subprocess
After an @dfn{asynchronous process} is created, Emacs and the subprocess
both continue running immediately. The process thereafter runs
in parallel with Emacs, and the two can communicate with each other
using the functions described in the following sections. However,
In this section, we describe how to create an @dfn{asynchronous
process}. After an asynchronous process is created, it runs in
parallel with Emacs, and Emacs can communicate with it using the
functions described in the following sections (@pxref{Input to
Processes}, and @pxref{Output from Processes}). Note that process
communication is only partially asynchronous: Emacs sends data to the
process only when certain functions are called, and Emacs accepts data
from the process only when Emacs is waiting for input or for a time
delay.
from the process only while waiting for input or for a time delay.
Here we describe how to create an asynchronous process.
@cindex pty
@cindex pipe
An asynchronous process is controlled either via a @dfn{pty}
(pseudo-terminal) or a @dfn{pipe}. The choice of pty or pipe is made
when creating the process, based on the value of the variable
@code{process-connection-type} (see below). Ptys are usually
preferable for processes visible to the user, as in Shell mode,
because they allow for job control (@kbd{C-c}, @kbd{C-z}, etc.)
between the process and its children, whereas pipes do not. For
subprocesses used for internal purposes by programs, it is often
better to use a pipe, because they are more efficient, and because
they are immune to stray character injections that ptys introduce for
large (around 500 byte) messages. Also, the total number of ptys is
limited on many systems and it is good not to waste them.
@defun start-process name buffer-or-name program &rest args
This function creates a new asynchronous subprocess and starts the
@ -652,20 +665,10 @@ can also be executed on remote hosts, depending on @code{default-directory}.
@end defun
@defvar process-connection-type
@cindex pipes
@cindex @acronym{PTY}s
This variable controls the type of device used to communicate with
asynchronous subprocesses. If it is non-@code{nil}, then @acronym{PTY}s are
asynchronous subprocesses. If it is non-@code{nil}, then ptys are
used, when available. Otherwise, pipes are used.
@acronym{PTY}s are usually preferable for processes visible to the user, as
in Shell mode, because they allow job control (@kbd{C-c}, @kbd{C-z},
etc.) to work between the process and its children, whereas pipes do
not. For subprocesses used for internal purposes by programs, it is
often better to use a pipe, because they are more efficient. In
addition, the total number of @acronym{PTY}s is limited on many systems and
it is good not to waste them.
The value of @code{process-connection-type} takes effect when
@code{start-process} is called. So you can specify how to communicate
with one subprocess by binding the variable around the call to
@ -678,8 +681,8 @@ with one subprocess by binding the variable around the call to
@end group
@end smallexample
To determine whether a given subprocess actually got a pipe or a
@acronym{PTY}, use the function @code{process-tty-name} (@pxref{Process
To determine whether a given subprocess actually got a pipe or a pty,
use the function @code{process-tty-name} (@pxref{Process
Information}).
@end defvar
@ -957,9 +960,9 @@ data appears on the ``standard input'' of the subprocess.
@c FIXME which?
Some operating systems have limited space for buffered input in a
@acronym{PTY}. On these systems, Emacs sends an @acronym{EOF}
periodically amidst the other characters, to force them through. For
most programs, these @acronym{EOF}s do no harm.
pty. On these systems, Emacs sends an @acronym{EOF} periodically
amidst the other characters, to force them through. For most
programs, these @acronym{EOF}s do no harm.
Subprocess input is normally encoded using a coding system before the
subprocess receives it, much like text written into a file. You can use
@ -1770,7 +1773,7 @@ faults for all the child processes of the given process.
@item utime
Time spent by the process in the user context, for running the
application's code. The corresponding @var{value} is in the
@w{@code{(@var{high} @var{low} @var{microsec})}} format, the same
@w{@code{(@var{high} @var{low} @var{microsec} @var{picosec})}} format, the same
format used by functions @code{current-time} (@pxref{Time of Day,
current-time}) and @code{file-attributes} (@pxref{File Attributes}).
@ -1801,12 +1804,12 @@ The number of threads in the process.
@item start
The time when the process was started, in the same
@w{@code{(@var{high} @var{low} @var{microsec})}} format used by
@w{@code{(@var{high} @var{low} @var{microsec} @var{picosec})}} format used by
@code{current-time} and by @code{file-attributes}.
@item etime
The time elapsed since the process started, in the @w{@code{(@var{high}
@var{low} @var{microsec})}} format.
@var{low} @var{microsec} @var{picosec})}} format.
@item vsize
The virtual memory size of the process, measured in kilobytes.

View file

@ -1,6 +1,5 @@
ARPA
Abbrev
Acknowledgements
Alan
Arnold
Autoloading

View file

@ -51,9 +51,9 @@ the character after point.
* Case Changes:: Case conversion of parts of the buffer.
* Text Properties:: Assigning Lisp property lists to text characters.
* Substitution:: Replacing a given character wherever it appears.
* Transposition:: Swapping two portions of a buffer.
* Registers:: How registers are implemented. Accessing the text or
position stored in a register.
* Transposition:: Swapping two portions of a buffer.
* Base 64:: Conversion to or from base 64 encoding.
* Checksum/Hash:: Computing cryptographic hashes.
* Parsing HTML/XML:: Parsing HTML and XML.
@ -401,19 +401,23 @@ ends at the insertion point, the inserted text falls inside that
overlay.
@end defun
@defun insert-char character count &optional inherit
This function inserts @var{count} instances of @var{character} into the
current buffer before point. The argument @var{count} should be an
integer, and @var{character} must be a character. The value is @code{nil}.
@deffn Command insert-char character &optional count inherit
This command inserts @var{count} instances of @var{character} into the
current buffer before point. The argument @var{count} must be an
integer, and @var{character} must be a character.
If called interactively, this command prompts for @var{character}
using its Unicode name or its code point. @xref{Inserting Text,,,
emacs, The GNU Emacs Manual}.
This function does not convert unibyte character codes 128 through 255
to multibyte characters, not even if the current buffer is a multibyte
buffer. @xref{Converting Representations}.
If @var{inherit} is non-@code{nil}, then the inserted characters inherit
If @var{inherit} is non-@code{nil}, the inserted characters inherit
sticky text properties from the two characters before and after the
insertion point. @xref{Sticky Properties}.
@end defun
@end deffn
@defun insert-buffer-substring from-buffer-or-name &optional start end
This function inserts a portion of buffer @var{from-buffer-or-name}

View file

@ -634,7 +634,7 @@ Everyone will be free to use, copy, study and change the GNU system.
.SH AUTHORS
.I Emacs
was written by Richard Stallman and the Free Software Foundation.
For detailed credits and acknowledgements, see the GNU Emacs manual.
For detailed credits and acknowledgments, see the GNU Emacs manual.
.
.
.

View file

@ -1,3 +1,76 @@
2012-07-25 Paul Eggert <eggert@cs.ucla.edu>
Prefer typical American spelling for "acknowledgment".
* calc.texi (History and Acknowledgments): Rename from
History and Acknowledgements.
* idlwave.texi (Acknowledgments):
* ses.texi (Acknowledgments):
* woman.texi (Acknowledgments): Rename from Acknowledgements.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
Rename configure.in to configure.ac (Bug#11603).
* ede.texi (Compiler and Linker objects, ede-proj-project)
(ede-step-project): Prefer the name configure.ac to configure.in.
2012-07-06 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Multi-hops): Introduce
`tramp-restricted-shell-hosts-alist'.
2012-06-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (POP before SMTP): POP-before-SMTP works with all sending
methods, so don't mention smtpmail here.
2012-06-26 Wolfgang Jenkner <wjenkner@inode.at>
* gnus.texi (Picons): Document gnus-picon-properties.
2012-06-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi: Remove mention of compilation, as that's no longer
supported.
2012-06-26 Christopher Schmidt <christopher@ch.ristopher.com>
* gnus.texi (Archived Messages): Mention
gnus-gcc-pre-body-encode-hook and gnus-gcc-post-body-encode-hook.
2012-06-26 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Various Summary Stuff):
Remove mention of `gnus-propagate-marks'.
2012-06-26 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi: Remove mentions of nnml/nnfolder/nntp backend marks,
which no longer exist.
2012-06-26 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.texi (Archived Messages):
Document gnus-gcc-self-resent-messages.
2012-06-26 Lars Ingebrigtsen <larsi@gnus.org>
* message.texi (Mail Variables):
Mention the optional user parameter for X-Message-SMTP-Method.
2012-06-26 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Posting Styles): Mention X-Message-SMTP-Method.
* message.texi (Mail Variables): Document X-Message-SMTP-Method.
2012-06-26 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Key Index): Change encoding to utf-8.
2012-06-21 Glenn Morris <rgm@gnu.org>
* Makefile.in: Rename infodir to buildinfodir throughout. (Bug#11737)
2012-06-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Timestamp): Mention where to find documentation for
@ -768,7 +841,7 @@
2011-08-15 Eric Schulte <schulte.eric@gmail.com>
* org.texi (Structure of code blocks): Explicitly state that the
behavior of multiple blocks of the same name is undefined
behavior of multiple blocks of the same name is undefined.
2011-08-15 Christian Egli <christian.egli@sbszh.ch>
@ -1135,7 +1208,7 @@
2011-03-19 Antoine Levitt <antoine.levitt@gmail.com>
* gnus.texi (Listing Groups): Document gnus-group-list-ticked
* gnus.texi (Listing Groups): Document gnus-group-list-ticked.
2011-03-17 Jay Belanger <jay.p.belanger@gmail.com>
@ -3060,7 +3133,7 @@
2009-07-29 Jay Belanger <jay.p.belanger@gmail.com>
* calc.texi (Stack Manipulation Commands): Add documentation for
`calc-transpose-lines'
`calc-transpose-lines'.
2009-07-27 Michael Albinus <michael.albinus@gmx.de>

View file

@ -25,7 +25,7 @@ SHELL = /bin/sh
srcdir=@srcdir@
## Where the output files go.
infodir = $(srcdir)/../../info
buildinfodir = $(srcdir)/../../info
## Directory with emacsver.texi.
## Currently only used by efaq and calc.
emacsdir = $(srcdir)/../emacs
@ -162,7 +162,7 @@ TEXI2PDF = texi2pdf
ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
mkinfodir = @${MKDIR_P} ${infodir}
mkinfodir = @${MKDIR_P} ${buildinfodir}
.PHONY: info dvi pdf echo-info
## Prevent implicit rule triggering for foo.info.
@ -191,8 +191,8 @@ pdf: $(PDF_TARGETS)
# Note: "<" is not portable in ordinary make rules.
ada-mode : $(infodir)/ada-mode$(INFO_EXT)
$(infodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi
ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT)
$(buildinfodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ada-mode.texi
ada-mode.dvi: ${srcdir}/ada-mode.texi
@ -200,8 +200,8 @@ ada-mode.dvi: ${srcdir}/ada-mode.texi
ada-mode.pdf: ${srcdir}/ada-mode.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi
auth : $(infodir)/auth$(INFO_EXT)
$(infodir)/auth$(INFO_EXT): ${srcdir}/auth.texi
auth : $(buildinfodir)/auth$(INFO_EXT)
$(buildinfodir)/auth$(INFO_EXT): ${srcdir}/auth.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/auth.texi
auth.dvi: ${srcdir}/auth.texi
@ -209,8 +209,8 @@ auth.dvi: ${srcdir}/auth.texi
auth.pdf: ${srcdir}/auth.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi
autotype : $(infodir)/autotype$(INFO_EXT)
$(infodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi
autotype : $(buildinfodir)/autotype$(INFO_EXT)
$(buildinfodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/autotype.texi
autotype.dvi: ${srcdir}/autotype.texi
@ -218,8 +218,8 @@ autotype.dvi: ${srcdir}/autotype.texi
autotype.pdf: ${srcdir}/autotype.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi
calc : $(infodir)/calc$(INFO_EXT)
$(infodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
calc : $(buildinfodir)/calc$(INFO_EXT)
$(buildinfodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/calc.texi
calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
@ -227,8 +227,8 @@ calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi
ccmode : $(infodir)/ccmode$(INFO_EXT)
$(infodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi
ccmode : $(buildinfodir)/ccmode$(INFO_EXT)
$(buildinfodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cc-mode.texi
cc-mode.dvi: ${srcdir}/cc-mode.texi
@ -236,8 +236,8 @@ cc-mode.dvi: ${srcdir}/cc-mode.texi
cc-mode.pdf: ${srcdir}/cc-mode.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi
cl : $(infodir)/cl$(INFO_EXT)
$(infodir)/cl$(INFO_EXT): ${srcdir}/cl.texi
cl : $(buildinfodir)/cl$(INFO_EXT)
$(buildinfodir)/cl$(INFO_EXT): ${srcdir}/cl.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cl.texi
cl.dvi: ${srcdir}/cl.texi
@ -245,8 +245,8 @@ cl.dvi: ${srcdir}/cl.texi
cl.pdf: ${srcdir}/cl.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi
dbus : $(infodir)/dbus$(INFO_EXT)
$(infodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi
dbus : $(buildinfodir)/dbus$(INFO_EXT)
$(buildinfodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dbus.texi
dbus.dvi: ${srcdir}/dbus.texi
@ -254,8 +254,8 @@ dbus.dvi: ${srcdir}/dbus.texi
dbus.pdf: ${srcdir}/dbus.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi
dired-x : $(infodir)/dired-x$(INFO_EXT)
$(infodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
dired-x : $(buildinfodir)/dired-x$(INFO_EXT)
$(buildinfodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dired-x.texi
dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
@ -263,8 +263,8 @@ dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi
ebrowse : $(infodir)/ebrowse$(INFO_EXT)
$(infodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi
ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT)
$(buildinfodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ebrowse.texi
ebrowse.dvi: ${srcdir}/ebrowse.texi
@ -272,8 +272,8 @@ ebrowse.dvi: ${srcdir}/ebrowse.texi
ebrowse.pdf: ${srcdir}/ebrowse.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi
ede : $(infodir)/ede$(INFO_EXT)
$(infodir)/ede$(INFO_EXT): ${srcdir}/ede.texi
ede : $(buildinfodir)/ede$(INFO_EXT)
$(buildinfodir)/ede$(INFO_EXT): ${srcdir}/ede.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ede.texi
ede.dvi: ${srcdir}/ede.texi
@ -281,8 +281,8 @@ ede.dvi: ${srcdir}/ede.texi
ede.pdf: ${srcdir}/ede.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi
ediff : $(infodir)/ediff$(INFO_EXT)
$(infodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi
ediff : $(buildinfodir)/ediff$(INFO_EXT)
$(buildinfodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ediff.texi
ediff.dvi: ${srcdir}/ediff.texi
@ -290,8 +290,8 @@ ediff.dvi: ${srcdir}/ediff.texi
ediff.pdf: ${srcdir}/ediff.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi
edt : $(infodir)/edt$(INFO_EXT)
$(infodir)/edt$(INFO_EXT): ${srcdir}/edt.texi
edt : $(buildinfodir)/edt$(INFO_EXT)
$(buildinfodir)/edt$(INFO_EXT): ${srcdir}/edt.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/edt.texi
edt.dvi: ${srcdir}/edt.texi
@ -299,8 +299,8 @@ edt.dvi: ${srcdir}/edt.texi
edt.pdf: ${srcdir}/edt.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi
eieio : $(infodir)/eieio$(INFO_EXT)
$(infodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi
eieio : $(buildinfodir)/eieio$(INFO_EXT)
$(buildinfodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eieio.texi
eieio.dvi: ${srcdir}/eieio.texi
@ -308,8 +308,8 @@ eieio.dvi: ${srcdir}/eieio.texi
eieio.pdf: ${srcdir}/eieio.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi
emacs-gnutls : $(infodir)/emacs-gnutls$(INFO_EXT)
$(infodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi
emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT)
$(buildinfodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi
emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi
@ -317,8 +317,8 @@ emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi
emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi
emacs-mime : $(infodir)/emacs-mime$(INFO_EXT)
$(infodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi
emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT)
$(buildinfodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi
emacs-mime.dvi: ${srcdir}/emacs-mime.texi
@ -326,8 +326,8 @@ emacs-mime.dvi: ${srcdir}/emacs-mime.texi
emacs-mime.pdf: ${srcdir}/emacs-mime.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi
epa : $(infodir)/epa$(INFO_EXT)
$(infodir)/epa$(INFO_EXT): ${srcdir}/epa.texi
epa : $(buildinfodir)/epa$(INFO_EXT)
$(buildinfodir)/epa$(INFO_EXT): ${srcdir}/epa.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/epa.texi
epa.dvi: ${srcdir}/epa.texi
@ -335,8 +335,8 @@ epa.dvi: ${srcdir}/epa.texi
epa.pdf: ${srcdir}/epa.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi
erc : $(infodir)/erc$(INFO_EXT)
$(infodir)/erc$(INFO_EXT): ${srcdir}/erc.texi
erc : $(buildinfodir)/erc$(INFO_EXT)
$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi
erc.dvi: ${srcdir}/erc.texi
@ -344,8 +344,8 @@ erc.dvi: ${srcdir}/erc.texi
erc.pdf: ${srcdir}/erc.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi
ert : $(infodir)/ert$(INFO_EXT)
$(infodir)/ert$(INFO_EXT): ${srcdir}/ert.texi
ert : $(buildinfodir)/ert$(INFO_EXT)
$(buildinfodir)/ert$(INFO_EXT): ${srcdir}/ert.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ert.texi
ert.dvi: ${srcdir}/ert.texi
@ -353,8 +353,8 @@ ert.dvi: ${srcdir}/ert.texi
ert.pdf: ${srcdir}/ert.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi
eshell : $(infodir)/eshell$(INFO_EXT)
$(infodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi
eshell : $(buildinfodir)/eshell$(INFO_EXT)
$(buildinfodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eshell.texi
eshell.dvi: ${srcdir}/eshell.texi
@ -362,8 +362,8 @@ eshell.dvi: ${srcdir}/eshell.texi
eshell.pdf: ${srcdir}/eshell.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi
eudc : $(infodir)/eudc$(INFO_EXT)
$(infodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi
eudc : $(buildinfodir)/eudc$(INFO_EXT)
$(buildinfodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eudc.texi
eudc.dvi: ${srcdir}/eudc.texi
@ -371,8 +371,8 @@ eudc.dvi: ${srcdir}/eudc.texi
eudc.pdf: ${srcdir}/eudc.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi
efaq : $(infodir)/efaq$(INFO_EXT)
$(infodir)/efaq$(INFO_EXT): ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
efaq : $(buildinfodir)/efaq$(INFO_EXT)
$(buildinfodir)/efaq$(INFO_EXT): ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/faq.texi
faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
@ -389,8 +389,8 @@ emacs-faq.html: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
$(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi
flymake : $(infodir)/flymake$(INFO_EXT)
$(infodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi
flymake : $(buildinfodir)/flymake$(INFO_EXT)
$(buildinfodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/flymake.texi
flymake.dvi: ${srcdir}/flymake.texi
@ -398,8 +398,8 @@ flymake.dvi: ${srcdir}/flymake.texi
flymake.pdf: ${srcdir}/flymake.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi
forms : $(infodir)/forms$(INFO_EXT)
$(infodir)/forms$(INFO_EXT): ${srcdir}/forms.texi
forms : $(buildinfodir)/forms$(INFO_EXT)
$(buildinfodir)/forms$(INFO_EXT): ${srcdir}/forms.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/forms.texi
forms.dvi: ${srcdir}/forms.texi
@ -408,8 +408,8 @@ forms.pdf: ${srcdir}/forms.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi
# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
gnus : $(infodir)/gnus$(INFO_EXT)
$(infodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
gnus : $(buildinfodir)/gnus$(INFO_EXT)
$(buildinfodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/gnus.texi
gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
@ -424,8 +424,8 @@ gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
rm gnustmp.*
# NB this one needs --no-split even without a .info extension.
idlwave : $(infodir)/idlwave$(INFO_EXT)
$(infodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi
idlwave : $(buildinfodir)/idlwave$(INFO_EXT)
$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/idlwave.texi
idlwave.dvi: ${srcdir}/idlwave.texi
@ -435,8 +435,8 @@ idlwave.pdf: ${srcdir}/idlwave.texi
# NB this one needs --no-split even without a .info extension.
# Avoid name clash with overall "info" target.
info.info : $(infodir)/info$(INFO_EXT)
$(infodir)/info$(INFO_EXT): ${srcdir}/info.texi
info.info : $(buildinfodir)/info$(INFO_EXT)
$(buildinfodir)/info$(INFO_EXT): ${srcdir}/info.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/info.texi
info.dvi: ${srcdir}/info.texi
@ -444,8 +444,8 @@ info.dvi: ${srcdir}/info.texi
info.pdf: ${srcdir}/info.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi
mairix-el : $(infodir)/mairix-el$(INFO_EXT)
$(infodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi
mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT)
$(buildinfodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mairix-el.texi
mairix-el.dvi: ${srcdir}/mairix-el.texi
@ -453,8 +453,8 @@ mairix-el.dvi: ${srcdir}/mairix-el.texi
mairix-el.pdf: ${srcdir}/mairix-el.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi
message : $(infodir)/message$(INFO_EXT)
$(infodir)/message$(INFO_EXT): ${srcdir}/message.texi
message : $(buildinfodir)/message$(INFO_EXT)
$(buildinfodir)/message$(INFO_EXT): ${srcdir}/message.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/message.texi
message.dvi: ${srcdir}/message.texi
@ -462,8 +462,8 @@ message.dvi: ${srcdir}/message.texi
message.pdf: ${srcdir}/message.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi
mh-e : $(infodir)/mh-e$(INFO_EXT)
$(infodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi
mh-e : $(buildinfodir)/mh-e$(INFO_EXT)
$(buildinfodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mh-e.texi
mh-e.dvi: ${srcdir}/mh-e.texi
@ -471,8 +471,8 @@ mh-e.dvi: ${srcdir}/mh-e.texi
mh-e.pdf: ${srcdir}/mh-e.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi
newsticker : $(infodir)/newsticker$(INFO_EXT)
$(infodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi
newsticker : $(buildinfodir)/newsticker$(INFO_EXT)
$(buildinfodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/newsticker.texi
newsticker.dvi: ${srcdir}/newsticker.texi
@ -480,8 +480,8 @@ newsticker.dvi: ${srcdir}/newsticker.texi
newsticker.pdf: ${srcdir}/newsticker.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi
nxml-mode : $(infodir)/nxml-mode$(INFO_EXT)
$(infodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi
nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT)
$(buildinfodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/nxml-mode.texi
nxml-mode.dvi: ${srcdir}/nxml-mode.texi
@ -489,8 +489,8 @@ nxml-mode.dvi: ${srcdir}/nxml-mode.texi
nxml-mode.pdf: ${srcdir}/nxml-mode.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi
org : $(infodir)/org$(INFO_EXT)
$(infodir)/org$(INFO_EXT): ${srcdir}/org.texi
org : $(buildinfodir)/org$(INFO_EXT)
$(buildinfodir)/org$(INFO_EXT): ${srcdir}/org.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/org.texi
org.dvi: ${srcdir}/org.texi
@ -498,8 +498,8 @@ org.dvi: ${srcdir}/org.texi
org.pdf: ${srcdir}/org.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi
pcl-cvs : $(infodir)/pcl-cvs$(INFO_EXT)
$(infodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi
pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT)
$(buildinfodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pcl-cvs.texi
pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi
@ -507,8 +507,8 @@ pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi
pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi
pgg : $(infodir)/pgg$(INFO_EXT)
$(infodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi
pgg : $(buildinfodir)/pgg$(INFO_EXT)
$(buildinfodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pgg.texi
pgg.dvi: ${srcdir}/pgg.texi
@ -516,8 +516,8 @@ pgg.dvi: ${srcdir}/pgg.texi
pgg.pdf: ${srcdir}/pgg.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi
rcirc : $(infodir)/rcirc$(INFO_EXT)
$(infodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi
rcirc : $(buildinfodir)/rcirc$(INFO_EXT)
$(buildinfodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/rcirc.texi
rcirc.dvi: ${srcdir}/rcirc.texi
@ -525,8 +525,8 @@ rcirc.dvi: ${srcdir}/rcirc.texi
rcirc.pdf: ${srcdir}/rcirc.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi
reftex : $(infodir)/reftex$(INFO_EXT)
$(infodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi
reftex : $(buildinfodir)/reftex$(INFO_EXT)
$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi
reftex.dvi: ${srcdir}/reftex.texi
@ -534,8 +534,8 @@ reftex.dvi: ${srcdir}/reftex.texi
reftex.pdf: ${srcdir}/reftex.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi
remember : $(infodir)/remember$(INFO_EXT)
$(infodir)/remember$(INFO_EXT): ${srcdir}/remember.texi
remember : $(buildinfodir)/remember$(INFO_EXT)
$(buildinfodir)/remember$(INFO_EXT): ${srcdir}/remember.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/remember.texi
remember.dvi: ${srcdir}/remember.texi
@ -543,8 +543,8 @@ remember.dvi: ${srcdir}/remember.texi
remember.pdf: ${srcdir}/remember.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi
sasl : $(infodir)/sasl$(INFO_EXT)
$(infodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi
sasl : $(buildinfodir)/sasl$(INFO_EXT)
$(buildinfodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sasl.texi
sasl.dvi: ${srcdir}/sasl.texi
@ -552,8 +552,8 @@ sasl.dvi: ${srcdir}/sasl.texi
sasl.pdf: ${srcdir}/sasl.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi
sc : $(infodir)/sc$(INFO_EXT)
$(infodir)/sc$(INFO_EXT): ${srcdir}/sc.texi
sc : $(buildinfodir)/sc$(INFO_EXT)
$(buildinfodir)/sc$(INFO_EXT): ${srcdir}/sc.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sc.texi
sc.dvi: ${srcdir}/sc.texi
@ -561,8 +561,8 @@ sc.dvi: ${srcdir}/sc.texi
sc.pdf: ${srcdir}/sc.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi
semantic : $(infodir)/semantic$(INFO_EXT)
$(infodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi
semantic : $(buildinfodir)/semantic$(INFO_EXT)
$(buildinfodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/semantic.texi
semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi
@ -570,8 +570,8 @@ semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi
semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi
ses : $(infodir)/ses$(INFO_EXT)
$(infodir)/ses$(INFO_EXT): ${srcdir}/ses.texi
ses : $(buildinfodir)/ses$(INFO_EXT)
$(buildinfodir)/ses$(INFO_EXT): ${srcdir}/ses.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ses.texi
ses.dvi: ${srcdir}/ses.texi
@ -579,8 +579,8 @@ ses.dvi: ${srcdir}/ses.texi
ses.pdf: ${srcdir}/ses.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi
sieve : $(infodir)/sieve$(INFO_EXT)
$(infodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi
sieve : $(buildinfodir)/sieve$(INFO_EXT)
$(buildinfodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sieve.texi
sieve.dvi: ${srcdir}/sieve.texi
@ -588,8 +588,8 @@ sieve.dvi: ${srcdir}/sieve.texi
sieve.pdf: ${srcdir}/sieve.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi
smtpmail : $(infodir)/smtpmail$(INFO_EXT)
$(infodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi
smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT)
$(buildinfodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/smtpmail.texi
smtpmail.dvi: ${srcdir}/smtpmail.texi
@ -597,8 +597,8 @@ smtpmail.dvi: ${srcdir}/smtpmail.texi
smtpmail.pdf: ${srcdir}/smtpmail.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi
speedbar : $(infodir)/speedbar$(INFO_EXT)
$(infodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi
speedbar : $(buildinfodir)/speedbar$(INFO_EXT)
$(buildinfodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/speedbar.texi
speedbar.dvi: ${srcdir}/speedbar.texi
@ -606,8 +606,8 @@ speedbar.dvi: ${srcdir}/speedbar.texi
speedbar.pdf: ${srcdir}/speedbar.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi
tramp : $(infodir)/tramp$(INFO_EXT)
$(infodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi
tramp : $(buildinfodir)/tramp$(INFO_EXT)
$(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi
tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi
@ -615,8 +615,8 @@ tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi
tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi
url : $(infodir)/url$(INFO_EXT)
$(infodir)/url$(INFO_EXT): ${srcdir}/url.texi
url : $(buildinfodir)/url$(INFO_EXT)
$(buildinfodir)/url$(INFO_EXT): ${srcdir}/url.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/url.texi
url.dvi: ${srcdir}/url.texi
@ -624,8 +624,8 @@ url.dvi: ${srcdir}/url.texi
url.pdf: ${srcdir}/url.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi
vip : $(infodir)/vip$(INFO_EXT)
$(infodir)/vip$(INFO_EXT): ${srcdir}/vip.texi
vip : $(buildinfodir)/vip$(INFO_EXT)
$(buildinfodir)/vip$(INFO_EXT): ${srcdir}/vip.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/vip.texi
vip.dvi: ${srcdir}/vip.texi
@ -633,8 +633,8 @@ vip.dvi: ${srcdir}/vip.texi
vip.pdf: ${srcdir}/vip.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi
viper : $(infodir)/viper$(INFO_EXT)
$(infodir)/viper$(INFO_EXT): ${srcdir}/viper.texi
viper : $(buildinfodir)/viper$(INFO_EXT)
$(buildinfodir)/viper$(INFO_EXT): ${srcdir}/viper.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/viper.texi
viper.dvi: ${srcdir}/viper.texi
@ -642,8 +642,8 @@ viper.dvi: ${srcdir}/viper.texi
viper.pdf: ${srcdir}/viper.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi
widget : $(infodir)/widget$(INFO_EXT)
$(infodir)/widget$(INFO_EXT): ${srcdir}/widget.texi
widget : $(buildinfodir)/widget$(INFO_EXT)
$(buildinfodir)/widget$(INFO_EXT): ${srcdir}/widget.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/widget.texi
widget.dvi: ${srcdir}/widget.texi
@ -651,8 +651,8 @@ widget.dvi: ${srcdir}/widget.texi
widget.pdf: ${srcdir}/widget.texi
$(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi
woman : $(infodir)/woman$(INFO_EXT)
$(infodir)/woman$(INFO_EXT): ${srcdir}/woman.texi
woman : $(buildinfodir)/woman$(INFO_EXT)
$(buildinfodir)/woman$(INFO_EXT): ${srcdir}/woman.texi
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/woman.texi
woman.dvi: ${srcdir}/woman.texi
@ -675,9 +675,9 @@ clean: mostlyclean
distclean: clean
# rm -f Makefile
## infodir is relative to srcdir.
## buildinfodir is relative to srcdir.
maintainer-clean: distclean
cd $(infodir); for file in $(INFO_TARGETS); do \
cd $(buildinfodir); for file in $(INFO_TARGETS); do \
file=`echo $${file} | sed 's/\.info$$//'`${INFO_EXT}; \
rm -f $${file} $${file}-[1-9] $${file}-[1-9][0-9]; \
done

View file

@ -218,7 +218,7 @@ and what are the various ways that it can be used.
* Notations Used in This Manual::
* Demonstration of Calc::
* Using Calc::
* History and Acknowledgements::
* History and Acknowledgments::
@end menu
@node What is Calc, About This Manual, Getting Started, Getting Started
@ -582,7 +582,7 @@ about the @w{@kbd{t N}} command, @kbd{h f sqrt @key{RET}} to read about the
Press @key{DEL} repeatedly to remove any leftover results from the stack.
To exit from Calc, press @kbd{q} or @kbd{C-x * c} again.
@node Using Calc, History and Acknowledgements, Demonstration of Calc, Getting Started
@node Using Calc, History and Acknowledgments, Demonstration of Calc, Getting Started
@section Using Calc
@noindent
@ -1148,8 +1148,8 @@ and record them as the current keyboard macro.
its initial state: Empty stack, and initial mode settings.
@end table
@node History and Acknowledgements, , Using Calc, Getting Started
@section History and Acknowledgements
@node History and Acknowledgments, , Using Calc, Getting Started
@section History and Acknowledgments
@noindent
Calc was originally started as a two-week project to occupy a lull
@ -27779,7 +27779,7 @@ acres per meter-second.) Remainder units are expressed in terms of
input units.
If you want to disallow using inconsistent units, you can set the customizable variable
@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case,
@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case,
if you request units which are inconsistent with the original units, you will be warned about
it and no conversion will occur.
@ -35597,15 +35597,15 @@ of @code{calc-multiplication-has-precedence} is @code{t}.
@end defvar
@defvar calc-ensure-consistent-units
When converting units, the variable @code{calc-ensure-consistent-units}
determines whether or not the target units need to be consistent with the
When converting units, the variable @code{calc-ensure-consistent-units}
determines whether or not the target units need to be consistent with the
original units. If @code{calc-ensure-consistent-units} is @code{nil}, then
the target units don't need to have the same dimensions as the original units;
for example, converting @samp{100 ft/s} to @samp{m} will produce @samp{30.48 m/s}.
If @code{calc-ensure-consistent-units} is non-@code{nil}, then the target units
need to have the same dimensions as the original units; for example, converting
@samp{100 ft/s} to @samp{m} will result in an error, since @samp{ft/s} and @samp{m}
have different dimensions. The default value of @code{calc-ensure-consistent-units}
the target units don't need to have the same dimensions as the original units;
for example, converting @samp{100 ft/s} to @samp{m} will produce @samp{30.48 m/s}.
If @code{calc-ensure-consistent-units} is non-@code{nil}, then the target units
need to have the same dimensions as the original units; for example, converting
@samp{100 ft/s} to @samp{m} will result in an error, since @samp{ft/s} and @samp{m}
have different dimensions. The default value of @code{calc-ensure-consistent-units}
is @code{nil}.
@end defvar

View file

@ -790,7 +790,7 @@ compilers that will be inserted into the Makefile.
Compiler instantiations must also insert variables specifying the
compiler it plans to use, in addition to creating Automake settings for
@file{configure.in} when appropriate.
@file{configure.ac} when appropriate.
Compiler objects are stored in the target objects as a list of
symbols, where the symbols value is the object. This enables the
@ -1557,7 +1557,7 @@ For project @var{THIS}, test that the file @var{FILE} exists, or create it.
@deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force
Setup the build environment for project @var{THIS}.
Handles the Makefile, or a Makefile.am configure.in combination.
Handles the Makefile, or a Makefile.am configure.ac combination.
Optional argument @var{FORCE} will force items to be regenerated.
@end deffn
@ -1567,7 +1567,7 @@ These are removed with make clean.
@end deffn
@deffn Method ede-proj-configure-synchronize :AFTER this
Synchronize what we know about project @var{THIS} into configure.in.
Synchronize what we know about project @var{THIS} into configure.ac.
@end deffn
@deffn Method ede-proj-makefile-insert-variables-new :AFTER this
@ -1603,7 +1603,7 @@ Return the name of the Makefile with the DIST target in it for @var{THIS}.
@end deffn
@deffn Method ede-proj-configure-file :AFTER this
The configure.in script used by project @var{THIS}.
The configure.ac script used by project @var{THIS}.
@end deffn
@deffn Method ede-commit-project :AFTER proj
@ -1767,7 +1767,7 @@ Create a Makefile for all Makefile targets in @var{THIS} if needed.
@deffn Method ede-proj-setup-buildenvironment :AFTER this &optional force
Setup the build environment for project @var{THIS}.
Handles the Makefile, or a Makefile.am configure.in combination.
Handles the Makefile, or a Makefile.am configure.ac combination.
Optional argument @var{FORCE} will force items to be regenerated.
@end deffn

View file

@ -8,7 +8,7 @@
@syncodeindex vr cp
@syncodeindex pg cp
@documentencoding ISO-8859-1
@documentencoding UTF-8
@copying
Copyright @copyright{} 1995-2012 Free Software Foundation, Inc.
@ -663,7 +663,6 @@ Getting News
* Direct Functions:: Connecting directly to the server.
* Indirect Functions:: Connecting indirectly to the server.
* Common Variables:: Understood by several connection functions.
* NNTP marks:: Storing marks for @acronym{NNTP} servers.
Getting Mail
@ -816,7 +815,6 @@ Various
* Formatting Variables:: You can specify what buffers should look like.
* Window Layout:: Configuring the Gnus buffer windows.
* Faces and Fonts:: How to change how faces look.
* Compilation:: How to speed Gnus up.
* Mode Lines:: Displaying information in the mode lines.
* Highlighting and Menus:: Making buffers look all nice and cozy.
* Daemons:: Gnus can do things behind your back.
@ -907,7 +905,8 @@ New Features
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
* No Gnus:: Very punny.
* No Gnus:: Very punny. Gnus 5.12/5.13
* Ma Gnus:: Celebrating 25 years of Gnus.
Customization
@ -1066,10 +1065,6 @@ you would typically set this variable to
(setq gnus-secondary-select-methods '((nnmbox "")))
@end lisp
Note: the @acronym{NNTP} back end stores marks in marks files
(@pxref{NNTP marks}). This feature makes it easy to share marks between
several Gnus installations, but may slow down things a bit when fetching
new articles. @xref{NNTP marks}, for more information.
@node The Server is Down
@ -2884,7 +2879,7 @@ composed messages will be @code{Gcc}'d to the current group. If
generated, if @code{(gcc-self . "string")} is present, this string will
be inserted literally as a @code{gcc} header. This parameter takes
precedence over any default @code{Gcc} rules as described later
(@pxref{Archived Messages}).
(@pxref{Archived Messages}), with the exception for messages to resend.
@strong{Caveat}: Adding @code{(gcc-self . t)} to the parameter list of
@code{nntp} groups (or the like) isn't valid. An @code{nntp} server
@ -3027,6 +3022,7 @@ like this in the group parameters:
@example
(posting-style
(name "Funky Name")
("X-Message-SMTP-Method" "smtp smtp.example.org 587")
("X-My-Header" "Funky Value")
(signature "Funky Signature"))
@end example
@ -4293,12 +4289,11 @@ default is @code{nil} in Emacs, or is the aliasee of the coding system
named @code{file-name} (a certain coding system of which an alias is
@code{file-name}) in XEmacs.
The @code{nnml} back end, the @code{nnrss} back end, the @acronym{NNTP}
marks feature (@pxref{NNTP marks}), the agent, and the cache use
non-@acronym{ASCII} group names in those files and directories. This
variable overrides the value of @code{file-name-coding-system} which
specifies the coding system used when encoding and decoding those file
names and directory names.
The @code{nnml} back end, the @code{nnrss} back end, the agent, and
the cache use non-@acronym{ASCII} group names in those files and
directories. This variable overrides the value of
@code{file-name-coding-system} which specifies the coding system used
when encoding and decoding those file names and directory names.
In XEmacs (with the @code{mule} feature), @code{file-name-coding-system}
is the only means to specify the coding system used to encode and decode
@ -8986,7 +8981,7 @@ Translate many non-@acronym{ASCII} characters into their
@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}).
This is mostly useful if you're on a terminal that has a limited font
and doesn't show accented characters, ``advanced'' punctuation, and the
like. For instance, @samp{»} is translated into @samp{>>}, and so on.
like. For instance, @samp{»} is translated into @samp{>>}, and so on.
@item W Y f
@kindex W Y f (Summary)
@ -10819,12 +10814,6 @@ buffers. For example:
Also @pxref{Group Parameters}.
@vindex gnus-propagate-marks
@item gnus-propagate-marks
If non-@code{nil}, propagate marks to the backends for possible
storing. @xref{NNTP marks}, and friends, for a more fine-grained
sieve.
@end table
@ -12404,32 +12393,25 @@ value suitable for your system.
@xref{Mail Variables, ,Mail Variables,message,Message manual}, for more
information.
@node POP before SMTP
@section POP before SMTP
@cindex pop before smtp
@findex message-smtpmail-send-it
@findex mail-source-touch-pop
Does your @acronym{ISP} require the @acronym{POP}-before-@acronym{SMTP}
authentication? It is whether you need to connect to the @acronym{POP}
mail server within a certain time before sending mails. If so, there is
a convenient way. To do that, put the following lines in your
@file{~/.gnus.el} file:
Does your @acronym{ISP} use @acronym{POP}-before-@acronym{SMTP}
authentication? This authentication method simply requires you to
contact the @acronym{POP} server before sending email. To do that,
put the following lines in your @file{~/.gnus.el} file:
@lisp
(setq message-send-mail-function 'message-smtpmail-send-it)
(add-hook 'message-send-mail-hook 'mail-source-touch-pop)
@end lisp
@noindent
It means to let Gnus connect to the @acronym{POP} mail server in advance
whenever you send a mail. The @code{mail-source-touch-pop} function
does only a @acronym{POP} authentication according to the value of
@code{mail-sources} without fetching mails, just before sending a mail.
Note that you have to use @code{message-smtpmail-send-it} which runs
@code{message-send-mail-hook} rather than @code{smtpmail-send-it} and
set the value of @code{mail-sources} for a @acronym{POP} connection
correctly. @xref{Mail Sources}.
The @code{mail-source-touch-pop} function does @acronym{POP}
authentication according to the value of @code{mail-sources} without
fetching mails, just before sending a mail. @xref{Mail Sources}.
If you have two or more @acronym{POP} mail servers set in
@code{mail-sources}, you may want to specify one of them to
@ -12457,6 +12439,7 @@ Otherwise, bind it dynamically only when performing the
(mail-source-touch-pop))))
@end lisp
@node Mail and Post
@section Mail and Post
@ -12674,6 +12657,35 @@ and matches the Gcc group name, attach files as external parts; if it is
non-@code{nil}, the behavior is the same as @code{all}, but it may be
changed in the future.
@item gnus-gcc-self-resent-messages
@vindex gnus-gcc-self-resent-messages
Like the @code{gcc-self} group parameter, applied only for unmodified
messages that @code{gnus-summary-resend-message} (@pxref{Summary Mail
Commands}) resends. Non-@code{nil} value of this variable takes
precedence over any existing @code{Gcc} header.
If this is @code{none}, no @code{Gcc} copy will be made. If this is
@code{t}, messages resent will be @code{Gcc} copied to the current
group. If this is a string, it specifies a group to which resent
messages will be @code{Gcc} copied. If this is @code{nil}, @code{Gcc}
will be done according to existing @code{Gcc} header(s), if any. If
this is @code{no-gcc-self}, that is the default, resent messages will be
@code{Gcc} copied to groups that existing @code{Gcc} header specifies,
except for the current group.
@item gnus-gcc-pre-body-encode-hook
@vindex gnus-gcc-pre-body-encode-hook
@itemx gnus-gcc-post-body-encode-hook
@vindex gnus-gcc-post-body-encode-hook
These hooks are run before/after encoding the message body of the Gcc
copy of a sent message. The current buffer (when the hook is run)
contains the message including the message header. Changes made to
the message will only affect the Gcc copy, but not the original
message. You can use these hooks to edit the copy (and influence
subsequent transformations), e.g. remove MML secure tags
(@pxref{Signing and encrypting}).
@end table
@ -12805,6 +12817,7 @@ So here's a new example:
(signature-file "~/.work-signature")
(address "user@@bar.foo")
(body "You are fired.\n\nSincerely, your boss.")
("X-Message-SMTP-Method" "smtp smtp.example.org 587")
(organization "Important Work, Inc"))
("nnml:.*"
(From (with-current-buffer gnus-article-buffer
@ -12819,6 +12832,13 @@ if you fill many roles.
You may also use @code{message-alternative-emails} instead.
@xref{Message Headers, ,Message Headers, message, Message Manual}.
Of particular interest in the ``work-mail'' style is the
@samp{X-Message-SMTP-Method} header. It specifies how to send the
outgoing email. You may want to sent certain emails through certain
@acronym{SMTP} servers due to company policies, for instance.
@xref{Mail Variables, ,Message Variables, message, Message Manual}.
@node Drafts
@section Drafts
@cindex drafts
@ -13744,7 +13764,6 @@ don't update their active files often, this can help.
* Direct Functions:: Connecting directly to the server.
* Indirect Functions:: Connecting indirectly to the server.
* Common Variables:: Understood by several connection functions.
* NNTP marks:: Storing marks for @acronym{NNTP} servers.
@end menu
@ -14015,53 +14034,6 @@ is @samp{()}.
@end table
@node NNTP marks
@subsubsection NNTP marks
@cindex storing NNTP marks
Gnus stores marks (@pxref{Marking Articles}) for @acronym{NNTP}
servers in marks files. A marks file records what marks you have set
in a group and each file is specific to the corresponding server.
Marks files are stored in @file{~/News/marks}
(@code{nntp-marks-directory}) under a classic hierarchy resembling
that of a news server, for example marks for the group
@samp{gmane.discuss} on the news.gmane.org server will be stored in
the file @file{~/News/marks/news.gmane.org/gmane/discuss/.marks}.
Marks files are useful because you can copy the @file{~/News/marks}
directory (using rsync, scp or whatever) to another Gnus installation,
and it will realize what articles you have read and marked. The data
in @file{~/News/marks} has priority over the same data in
@file{~/.newsrc.eld}.
Note that marks files are very much server-specific: Gnus remembers
the article numbers so if you don't use the same servers on both
installations things are most likely to break (most @acronym{NNTP}
servers do not use the same article numbers as any other server).
However, if you use servers A, B, C on one installation and servers A,
D, E on the other, you can sync the marks files for A and then you'll
get synchronization for that server between the two installations.
Using @acronym{NNTP} marks can possibly incur a performance penalty so
if Gnus feels sluggish, try setting the @code{nntp-marks-is-evil}
variable to @code{t}. Marks will then be stored in @file{~/.newsrc.eld}.
Related variables:
@table @code
@item nntp-marks-is-evil
@vindex nntp-marks-is-evil
If non-@code{nil}, this back end will ignore any marks files. The
default is @code{nil}.
@item nntp-marks-directory
@vindex nntp-marks-directory
The directory where marks for nntp groups will be stored.
@end table
@node News Spool
@subsection News Spool
@cindex nnspool
@ -16152,22 +16124,6 @@ splitting. It has to create lots of files, and it also generates
@acronym{NOV} databases for the incoming mails. This makes it possibly the
fastest back end when it comes to reading mail.
@cindex self contained nnml servers
@cindex marks
When the marks file is used (which it is by default), @code{nnml}
servers have the property that you may backup them using @code{tar} or
similar, and later be able to restore them into Gnus (by adding the
proper @code{nnml} server) and have all your marks be preserved. Marks
for a group are usually stored in the @code{.marks} file (but see
@code{nnml-marks-file-name}) within each @code{nnml} group's directory.
Individual @code{nnml} groups are also possible to backup, use @kbd{G m}
to restore the group (after restoring the backup into the nnml
directory).
If for some reason you believe your @file{.marks} files are screwed
up, you can just delete them all. Gnus will then correctly regenerate
them next time it starts.
Virtual server settings:
@table @code
@ -16205,15 +16161,6 @@ The name of the @acronym{NOV} files. The default is @file{.overview}.
@vindex nnml-prepare-save-mail-hook
Hook run narrowed to an article before saving.
@item nnml-marks-is-evil
@vindex nnml-marks-is-evil
If non-@code{nil}, this back end will ignore any @sc{marks} files. The
default is @code{nil}.
@item nnml-marks-file-name
@vindex nnml-marks-file-name
The name of the @dfn{marks} files. The default is @file{.marks}.
@item nnml-use-compressed-files
@vindex nnml-use-compressed-files
If non-@code{nil}, @code{nnml} will allow using compressed message
@ -16554,19 +16501,6 @@ separate file. Each file is in the standard Un*x mbox format.
@code{nnfolder} will add extra headers to keep track of article
numbers and arrival dates.
@cindex self contained nnfolder servers
@cindex marks
When the marks file is used (which it is by default), @code{nnfolder}
servers have the property that you may backup them using @code{tar} or
similar, and later be able to restore them into Gnus (by adding the
proper @code{nnfolder} server) and have all your marks be preserved.
Marks for a group are usually stored in a file named as the mbox file
with @code{.mrk} concatenated to it (but see
@code{nnfolder-marks-file-suffix}) within the @code{nnfolder}
directory. Individual @code{nnfolder} groups are also possible to
backup, use @kbd{G m} to restore the group (after restoring the backup
into the @code{nnfolder} directory).
Virtual server settings:
@table @code
@ -16625,20 +16559,6 @@ The extension for @acronym{NOV} files. The default is @file{.nov}.
The directory where the @acronym{NOV} files should be stored. If
@code{nil}, @code{nnfolder-directory} is used.
@item nnfolder-marks-is-evil
@vindex nnfolder-marks-is-evil
If non-@code{nil}, this back end will ignore any @sc{marks} files. The
default is @code{nil}.
@item nnfolder-marks-file-suffix
@vindex nnfolder-marks-file-suffix
The extension for @sc{marks} files. The default is @file{.mrk}.
@item nnfolder-marks-directory
@vindex nnfolder-marks-directory
The directory where the @sc{marks} files should be stored. If
@code{nil}, @code{nnfolder-directory} is used.
@end table
@ -16799,9 +16719,7 @@ undergo treatment such as duplicate checking.
@code{nnmaildir} stores article marks for a given group in the
corresponding maildir, in a way designed so that it's easy to manipulate
them from outside Gnus. You can tar up a maildir, unpack it somewhere
else, and still have your marks. @code{nnml} also stores marks, but
it's not as easy to work with them from outside Gnus as with
@code{nnmaildir}.
else, and still have your marks.
@code{nnmaildir} uses a significant amount of memory to speed things up.
(It keeps in memory some of the things that @code{nnml} stores in files
@ -16893,16 +16811,6 @@ adding a server definition pointing to that directory in Gnus. The
might interfere with overwriting data, so you may want to shut down Gnus
before you restore the data.
It is also possible to archive individual @code{nnml},
@code{nnfolder}, or @code{nnmaildir} groups, while preserving marks.
For @code{nnml} or @code{nnmaildir}, you copy all files in the group's
directory. For @code{nnfolder} you need to copy both the base folder
file itself (@file{FOO}, say), and the marks file (@file{FOO.mrk} in
this example). Restoring the group is done with @kbd{G m} from the Group
buffer. The last step makes Gnus notice the new directory.
@code{nnmaildir} notices the new directory automatically, so @kbd{G m}
is unnecessary in that case.
@node Web Searches
@subsection Web Searches
@cindex nnweb
@ -20875,7 +20783,7 @@ then this operator will return @code{false}.
@item !
@itemx not
@itemx ¬
@itemx ¬
This logical operator only takes a single argument. It returns the
logical negation of the value of its argument.
@ -22168,7 +22076,6 @@ to you, using @kbd{G b u} and updating the group will usually fix this.
* Formatting Variables:: You can specify what buffers should look like.
* Window Layout:: Configuring the Gnus buffer windows.
* Faces and Fonts:: How to change how faces look.
* Compilation:: How to speed Gnus up.
* Mode Lines:: Displaying information in the mode lines.
* Highlighting and Menus:: Making buffers look all nice and cozy.
* Daemons:: Gnus can do things behind your back.
@ -22465,11 +22372,6 @@ than 6 characters to make it look nice in columns.)
Ignoring is done first; then cutting; then maxing; and then as the very
last operation, padding.
If you use lots of these advanced thingies, you'll find that Gnus gets
quite slow. This can be helped enormously by running @kbd{M-x
gnus-compile} when you are satisfied with the look of your lines.
@xref{Compilation}.
@node User-Defined Specs
@subsection User-Defined Specs
@ -22515,7 +22417,7 @@ and so on. Create as many faces as you wish. The same goes for the
@samp{hello} mouse-highlighted with @code{gnus-mouse-face-3}.
@cindex %<<, %>>, guillemets
@c @cindex %<<, %>>, %«, %», guillemets
@c @cindex %<<, %>>, %«, %», guillemets
@vindex gnus-balloon-face-0
Text inside the @samp{%<<} and @samp{%>>} specifiers will get the
special @code{balloon-help} property set to
@ -22978,30 +22880,6 @@ the face you want to alter, and alter it via the standard Customize
interface.
@node Compilation
@section Compilation
@cindex compilation
@cindex byte-compilation
@findex gnus-compile
Remember all those line format specification variables?
@code{gnus-summary-line-format}, @code{gnus-group-line-format}, and so
on. Now, Gnus will of course heed whatever these variables are, but,
unfortunately, changing them will mean a quite significant slow-down.
(The default values of these variables have byte-compiled functions
associated with them, while the user-generated versions do not, of
course.)
To help with this, you can run @kbd{M-x gnus-compile} after you've
fiddled around with the variables and feel that you're (kind of)
satisfied. This will result in the new specs being byte-compiled, and
you'll get top speed again. Gnus will save these compiled specs in the
@file{.newsrc.eld} file. (User-defined functions aren't compiled by
this function, though---you should compile them yourself by sticking
them into the @file{~/.gnus.el} file and byte-compiling that file.)
@node Mode Lines
@section Mode Lines
@cindex mode lines
@ -23656,6 +23534,10 @@ The variable @code{gnus-picon-style} controls how picons are displayed.
If @code{inline}, the textual representation is replaced. If
@code{right}, picons are added right to the textual representation.
@vindex gnus-picon-properties
The value of the variable @code{gnus-picon-properties} is a list of
properties applied to picons.
The following variables offer control over where things are located.
@table @code
@ -26409,6 +26291,7 @@ renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs.
@cindex Pterodactyl Gnus
@cindex Oort Gnus
@cindex No Gnus
@cindex Ma Gnus
@cindex Gnus versions
The first ``proper'' release of Gnus 5 was done in November 1995 when it
@ -26437,12 +26320,15 @@ On April 19, 2010 Gnus development was moved to Git. See
http://git.gnus.org for details (http://www.gnus.org will be updated
with the information when possible).
On the January 31th 2012, Ma Gnus was begun.
If you happen upon a version of Gnus that has a prefixed name --
``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'',
``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'' -- don't panic.
Don't let it know that you're frightened. Back away. Slowly. Whatever
you do, don't run. Walk away, calmly, until you're out of its reach.
Find a proper released version of Gnus and snuggle up to that instead.
``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'', ``Ma Gnus'' -- don't
panic. Don't let it know that you're frightened. Back away. Slowly.
Whatever you do, don't run. Walk away, calmly, until you're out of
its reach. Find a proper released version of Gnus and snuggle up to
that instead.
@node Why?
@ -27045,7 +26931,8 @@ actually are people who are using Gnus. Who'd'a thunk it!
* Quassia Gnus:: Two times two is four, or Gnus 5.6/5.7.
* Pterodactyl Gnus:: Pentad also starts with P, AKA Gnus 5.8/5.9.
* Oort Gnus:: It's big. It's far out. Gnus 5.10/5.11.
* No Gnus:: Very punny.
* No Gnus:: Very punny. Gnus 5.12/5.13.
* Ma Gnus:: Celebrating 25 years of Gnus.
@end menu
These lists are, of course, just @emph{short} overviews of the
@ -28420,6 +28307,32 @@ New features in No Gnus:
@include gnus-news.texi
@node Ma Gnus
@subsubsection Ma Gnus
@cindex Ma Gnus
I'm sure there will be lots of text here. It's really spelled 真
Gnus.
New features in Ma Gnus:
@itemize @bullet
@item Changes in Message mode and related Gnus features
@c ****************************************************
@itemize @bullet
@item
The new hooks @code{gnus-gcc-pre-body-encode-hook} and
@code{gnus-gcc-post-body-encode-hook} are run before/after encoding
the message body of the Gcc copy of a sent message. See
@xref{Archived Messages}.
@end itemize
@end itemize
@iftex
@page
@ -30642,5 +30555,5 @@ former). The manual is unambiguous, but it can be confusing.
@c Local Variables:
@c mode: texinfo
@c coding: iso-8859-1
@c coding: utf-8
@c End:

View file

@ -71,7 +71,7 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
* Getting Started:: Tutorial
* The IDLWAVE Major Mode:: The mode for editing IDL programs
* The IDLWAVE Shell:: The mode for running IDL as an inferior program
* Acknowledgements:: Who did what
* Acknowledgments:: Who did what
* Sources of Routine Info:: How does IDLWAVE know about routine XYZ
* HTML Help Browser Tips::
* Configuration Examples:: The user is king
@ -2361,7 +2361,7 @@ Normal hook. Executed when a buffer is put into @code{idlwave-mode}.
Normal hook. Executed when @file{idlwave.el} is loaded.
@end defopt
@node The IDLWAVE Shell, Acknowledgements, The IDLWAVE Major Mode, Top
@node The IDLWAVE Shell, Acknowledgments, The IDLWAVE Major Mode, Top
@chapter The IDLWAVE Shell
@cindex IDLWAVE shell
@cindex Major mode, @code{idlwave-shell-mode}
@ -3273,9 +3273,9 @@ examine command strings to send, after all instances of @code{___}
(three underscores) are replaced by the indicated expression.
@end defopt
@node Acknowledgements, Sources of Routine Info, The IDLWAVE Shell, Top
@chapter Acknowledgements
@cindex Acknowledgements
@node Acknowledgments, Sources of Routine Info, The IDLWAVE Shell, Top
@chapter Acknowledgments
@cindex Acknowledgments
@cindex Maintainer, of IDLWAVE
@cindex Authors, of IDLWAVE
@cindex Contributors, to IDLWAVE
@ -3352,7 +3352,7 @@ scripts and documentation to interface with the IDL Assistant.
@noindent
Thanks to everyone!
@node Sources of Routine Info, HTML Help Browser Tips, Acknowledgements, Top
@node Sources of Routine Info, HTML Help Browser Tips, Acknowledgments, Top
@appendix Sources of Routine Info
@cindex Sources of routine information

View file

@ -1637,6 +1637,40 @@ To the thing similar to this, there is
requires the @acronym{POP}-before-@acronym{SMTP} authentication.
@xref{POP before SMTP, , POP before SMTP, gnus, The Gnus Manual}.
@cindex X-Message-SMTP-Method
If you have a complex @acronym{SMTP} setup, and want some messages to
go via one mail server, and other messages to go through another, you
can use the @samp{X-Message-SMTP-Method} header. These are the
supported values:
@table @samp
@item smtpmail
@example
X-Message-SMTP-Method: smtp smtp.fsf.org 587
@end example
This will send the message via @samp{smtp.fsf.org}, using port 587.
@example
X-Message-SMTP-Method: smtp smtp.fsf.org 587 other-user
@end example
This is the same as the above, but uses @samp{other-user} as the user
name when authenticating. This is handy if you have several
@acronym{SMTP} accounts on the same server.
@item sendmail
@example
X-Message-SMTP-Method: sendmail
@end example
This will send the message via the locally installed sendmail/exim/etc
installation.
@end table
@item message-mh-deletable-headers
@vindex message-mh-deletable-headers
Most versions of MH doesn't like being fed messages that contain the

View file

@ -221,7 +221,7 @@ for more details.@refill
@cindex nested citations
@cindex citation
A @dfn{citation} is the acknowledgement of the original author of a mail
A @dfn{citation} is the acknowledgment of the original author of a mail
message in the body of the reply. There are two basic citation styles
which Supercite supports. The first, called @dfn{nested citations} is
an anonymous form of citation; in other words, an indication is made

View file

@ -71,7 +71,7 @@ To report bugs, send email to @email{jyavner@@member.fsf.org}.
* Advanced Features:: Want to know more?
* For Gurus:: Want to know @emph{even more}?
* Index:: Concept, Function and Variable Index
* Acknowledgements:: Acknowledgements
* Acknowledgments:: Acknowledgments
* GNU Free Documentation License:: The license for this documentation.
@end menu
@ -927,15 +927,15 @@ cell.
@end table
@c ===================================================================
@node Index, Acknowledgements, For Gurus, Top
@node Index, Acknowledgments, For Gurus, Top
@unnumbered Index
@printindex cp
@c ===================================================================
@node Acknowledgements, GNU Free Documentation License, Index, Top
@chapter Acknowledgements
@node Acknowledgments, GNU Free Documentation License, Index, Top
@chapter Acknowledgments
Coding by:
@quotation
@ -976,7 +976,7 @@ Jean-Philippe Theberge @email{jphil@@acs.pagesjaunes.fr}
@c ===================================================================
@node GNU Free Documentation License, , Acknowledgements, Top
@node GNU Free Documentation License, , Acknowledgments, Top
@appendix GNU Free Documentation License
@include doclicense.texi

View file

@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{2012-06-05.14}
\def\texinfoversion{2012-07-03.16}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@ -4206,7 +4206,7 @@
}
\def\ifsetfail{\doignore{ifset}}
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
% @ifclear VAR ... @end executes the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
% The `\else' inside the `\doifset' parameter is a trick to reuse the
@ -4217,6 +4217,35 @@
\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
\def\ifclearfail{\doignore{ifclear}}
% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
% without the @) is in fact defined. We can only feasibly check at the
% TeX level, so something like `mathcode' is going to considered
% defined even though it is not a Texinfo command.
%
\makecond{ifcommanddefined}
\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
%
\def\doifcmddefined#1#2{{%
\makevalueexpandable
\let\next=\empty
\expandafter\ifx\csname #2\endcsname\relax
#1% If not defined, \let\next as above.
\fi
\expandafter
}\next
}
\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
% @ifcommandnotdefined CMD ... handlded similar to @ifclear above.
\makecond{ifcommandnotdefined}
\def\ifcommandnotdefined{%
\parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
% Set the `txicommandconditionals' variable, so documents have a way to
% test if the @ifcommand...defined conditionals are available.
\set txicommandconditionals
% @dircategory CATEGORY -- specify a category of the dir file
% which this file should belong to. Ignore this in TeX.
\let\dircategory=\comment

View file

@ -1327,19 +1327,21 @@ because @samp{/:} is the prefix for quoted file names.
@cindex multi-hop
@cindex proxy hosts
Sometimes, the methods described before are not sufficient. Sometimes,
it is not possible to connect to a remote host using a simple command.
For example, if you are in a secured network, you might have to log in
to a `bastion host' first before you can connect to the outside world.
Of course, the target host may also require a bastion host.
Sometimes, the methods described before are not sufficient.
Sometimes, it is not possible to connect to a remote host using a
simple command. For example, if you are in a secured network, you
might have to log in to a bastion host first before you can connect to
the outside world. Of course, the target host may also require a
bastion host.
@vindex tramp-default-proxies-alist
In order to specify such multiple hops, it is possible to define a proxy
@defopt tramp-default-proxies-alist
In order to specify multiple hops, it is possible to define a proxy
host to pass through, via the variable
@code{tramp-default-proxies-alist}. This variable keeps a list of
triples (@var{host} @var{user} @var{proxy}).
The first matching item specifies the proxy host to be passed for a
The first matching item specifies the proxy host to be passed for a
file name located on a remote target matching @var{user}@@@var{host}.
@var{host} and @var{user} are regular expressions or @code{nil}, which
is interpreted as a regular expression which always matches.
@ -1442,6 +1444,26 @@ following rule:
Gateway methods can be declared as first hop only in a multiple hop
chain.
@end ifset
@end defopt
Hops to be passed tend to be restricted firewalls and alike.
Sometimes they offer limited features only, like running @command{rbash}
(restricted bash). This must be told to @value{tramp}.
@vindex tramp-restricted-shell-hosts-alist
@defopt tramp-restricted-shell-hosts-alist
This variable keeps a list of regular expressions, which denote hosts
running a registered shell like "rbash". Those hosts can be used as
proxies only.
If the bastion host from the example above runs a restricted shell,
you shall apply
@lisp
(add-to-list 'tramp-restricted-shell-hosts-alist
"\\`bastion\\.your\\.domain\\'")
@end lisp
@end defopt
@node Customizing Methods

View file

@ -94,7 +94,7 @@ Mile End Road, London E1 4NS, UK
* Log:: The *WoMan-Log* Buffer
* Technical:: Technical Details
* Bugs:: Reporting Bugs
* Acknowledgements:: Acknowledgements
* Acknowledgments:: Acknowledgments
* GNU Free Documentation License:: The license for this documentation.
* Command Index:: Command Index
* Variable Index:: Variable Index
@ -1306,7 +1306,7 @@ is output.
@c ===================================================================
@node Bugs, Acknowledgements, Technical, Top
@node Bugs, Acknowledgments, Technical, Top
@comment node-name, next, previous, up
@chapter Reporting Bugs
@cindex reporting bugs
@ -1331,10 +1331,10 @@ man source file from, but do not send it unless asked to send it.
@c ===================================================================
@node Acknowledgements, GNU Free Documentation License, Bugs, Top
@node Acknowledgments, GNU Free Documentation License, Bugs, Top
@comment node-name, next, previous, up
@chapter Acknowledgements
@cindex acknowledgements
@chapter Acknowledgments
@cindex acknowledgments
For Heather, Kathryn and Madelyn, the women in my life (although they
will probably never use it)!
@ -1388,7 +1388,7 @@ Eli Zaretskii, @email{eliz@@is.elta.co.il}
@page
@node GNU Free Documentation License, Command Index, Acknowledgements, Top
@node GNU Free Documentation License, Command Index, Acknowledgments, Top
@appendix GNU Free Documentation License
@include doclicense.texi

View file

@ -1,3 +1,43 @@
2012-07-26 Paul Eggert <eggert@cs.ucla.edu>
Simplify export of symbols to GDB.
* emacs-buffer.gdb ($tagmask, $valmask): Remove.
(ygetptr): Adjust to recent changes in lisp.h and emacs.c,
by using VALMASK instead of $valmask, CHECK_LISP_OBJECT_TYPE
instead of gdb_use_union, and DATA_SEG_BITS instead of
gdb_data_seg_bits. Also, use $ptr.i rather than $ptr.u.val.
2012-07-20 Eli Zaretskii <eliz@gnu.org>
* tutorials/TUTORIAL.he: Make the first sentence display correctly
in a left-to-right paragraph, such as what is shown on the fancy
splash screen.
2012-07-15 Leo Liu <sdl.web@gmail.com>
* NEWS: Mention exclamation-mark and flymake.
2012-07-08 Juanma Barranquero <lekktu@gmail.com>
* tutorials/TUTORIAL.es: Sync with changes in 2012-07-07T10:34:37Z!cyd@gnu.org.
2012-07-07 Michael Witten <mfwitten@gmail.com> (tiny change)
* tutorials/TUTORIAL: Copyedits (Bug#11689).
2012-06-28 Glenn Morris <rgm@gnu.org>
* emacs.py, emacs2.py, emacs3.py: Remove files, no longer used.
2012-06-24 Lawrence Mitchell <wence@gmx.li>
* NEWS: Move and improve the defun/defalias changes (bug#11686).
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Support higher-resolution time stamps (Bug#9000).
* NEWS: Mention addition of picoseconds to time stamp format.
2012-06-13 Deniz Dogan <deniz@dogan.se>
* tutorials/TUTORIAL.sv: Fix grammar and a couple of typos.
@ -43,8 +83,8 @@
2012-04-27 Jambunathan K <kjambunathan@gmail.com>
* org/OrgOdtStyles.xml (OrgDescriptionList): Modify style. With
this change, in a description list, if the description paragraph
* org/OrgOdtStyles.xml (OrgDescriptionList): Modify style.
With this change, in a description list, if the description paragraph
spawns multiple lines then it will correctly indented.
2012-04-20 Glenn Morris <rgm@gnu.org>
@ -66,8 +106,8 @@
* org/OrgOdtContentTemplate.xml (OrgIndentedSection-Level-*):
New section styles. These sections are indented to the same
level as the corresponding list entries. These sections hold
tables that occur within a list. (OrgTable): Increased
relative width from 90% to 96% for aesthetic reasons.
tables that occur within a list. (OrgTable):
Increased relative width from 90% to 96% for aesthetic reasons.
2012-03-16 Glenn Morris <rgm@gnu.org>
@ -125,8 +165,8 @@
2012-01-10 Chong Yidong <cyd@gnu.org>
* tutorials/TUTORIAL: Don't give instructions for old-style X
scrollbars. Use DEL terminology instead of DelBack. Improve
description of graphical continuation lines and mode-line.
scrollbars. Use DEL terminology instead of DelBack.
Improve description of graphical continuation lines and mode-line.
Promote use of C-/ and C-SPC. Remove discussion of flow control.
2012-01-05 Glenn Morris <rgm@gnu.org>
@ -499,11 +539,11 @@
POSIX does not allow "-" in Makefile variable names.
Reported by Bruno Haible in
<http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00990.html>.
* refcards/Makefile (DIRED_REFCARDS_PDF): Renamed from
* refcards/Makefile (DIRED_REFCARDS_PDF): Rename from
DIRED-REFCARDS_PDF.
(MISC_REFCARDS_PDF): Renamed from MISC-REFCARDS_PDF.
(SURVIVAL_CARDS_PDF): Renamed from SURVIVAL-CARDS_PDF.
(VIPER_CARDS_PDF): Renamed from VIPER-CARDS_PDF.
(MISC_REFCARDS_PDF): Rename from MISC-REFCARDS_PDF.
(SURVIVAL_CARDS_PDF): Rename from SURVIVAL-CARDS_PDF.
(VIPER_CARDS_PDF): Rename from VIPER-CARDS_PDF.
2011-01-18 Glenn Morris <rgm@gnu.org>
@ -972,7 +1012,7 @@
2009-09-27 Teodor Zlatanov <tzz@lifelogs.com>
* NEWS: Mention new library imap-hash.el
* NEWS: Mention new library imap-hash.el.
2009-09-22 Juanma Barranquero <lekktu@gmail.com>
@ -1016,7 +1056,7 @@
2009-08-08 Dmitry Dzhus <dima@sphinx.net.ru>
* images/gud/all.xpm, images/gud/thread.xpm: New icons for
gdb-mi.el
gdb-mi.el.
2009-08-07 Dan Nicolaescu <dann@ics.uci.edu>
@ -1967,7 +2007,7 @@
* refcards/refcard.tex: Updates for printing.
(\versionyear): Update to 2007.
(\copyrightnotice): Modified or unmodified ok.
(\copyrightnotice): Modify or unmodified ok.
(Simple Customization): Don't use goto-line, since now it's bound.
Also, use now-preferred (kbd ...) syntax.
@ -2052,7 +2092,7 @@
2007-07-02 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: Version 5.01
* orgcard.tex: Version 5.01.
2007-06-27 Michael Albinus <michael.albinus@gmx.de>
@ -2620,7 +2660,7 @@
2006-09-15 Richard Stallman <rms@gnu.org>
* THE-GNU-PROJECT: Update with the latest footnotes
from www.gnu.org/gnu/the-gnu-project.html
from www.gnu.org/gnu/the-gnu-project.html.
2006-09-15 David Kastrup <dak@gnu.org>
@ -2641,7 +2681,7 @@
2006-09-03 Diane Murray <disumu@x3y2z1.net>
* erc.texi (Getting Started, Connecting): Changed erc-select to erc.
* erc.texi (Getting Started, Connecting): Change erc-select to erc.
2006-09-02 Juri Linkov <juri@jurta.org>
@ -2758,8 +2798,8 @@
2006-07-05 Kenichi Handa <handa@m17n.org>
* HELLO: Add a paragraph for non-ASCII examples at the head. Add
Bulgarian and Hungarian. Add more "hello"s to Danish and Swedish.
* HELLO: Add a paragraph for non-ASCII examples at the head.
Add Bulgarian and Hungarian. Add more "hello"s to Danish and Swedish.
2006-07-03 Bill Wohler <wohler@newt.com>
@ -2905,7 +2945,7 @@
2006-05-24 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex (section{Motion}): Added the item navigation commands.
* orgcard.tex (section{Motion}): Add the item navigation commands.
(section{Publishing}): New section.
(section{Links}): Documented elisp and shell links.
@ -3041,8 +3081,8 @@
New bitmaps for new images.
* images/refresh.xpm, images/sort-ascending.xpm,
* images/sort-descending.xpm: Update with GTK 2.x images. Note
that the default GTK icons are not overridden by the GNOME theme
* images/sort-descending.xpm: Update with GTK 2.x images.
Note that the default GTK icons are not overridden by the GNOME theme
due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in
wide circulation, then the GTK icons should be replaced with the
equivalent GNOME icons. Until then, we should be consistent with
@ -3246,7 +3286,7 @@
2005-11-18 Carsten Dominik <dominik@science.uva.nl>
* orgcard.tex: Version 3.20
* orgcard.tex: Version 3.20.
2005-11-16 Nick Roberts <nickrob@snap.net.nz>
@ -4312,8 +4352,8 @@
2001-11-22 Colin Walters <walters@debian.org>
* PROBLEMS: Remove already applied calc info patches. Clarify
that there is no such thing as Debian GNU/Linux 2.4.3. ftpd is
* PROBLEMS: Remove already applied calc info patches.
Clarify that there is no such thing as Debian GNU/Linux 2.4.3. ftpd is
not handled by alternatives in Debian, the reporter surely meant
just "--config ftp".
@ -4430,8 +4470,8 @@
* ps-prin1.ps: Footer implementation. Doc fix.
(doLineNumber): Code fix for line number color.
(BeginPage, BeginSheet, HeaderFramePath, HeaderFrame, HeaderText): Code
fix for footer implementation.
(BeginPage, BeginSheet, HeaderFramePath, HeaderFrame, HeaderText):
Code fix for footer implementation.
(TextStart, SetFooterLines, FooterFrameStart, doFramePath)
(FooterFramePath, doFrame, FooterFrame, FooterStart)
(HeaderOrFooterTextLines, HeaderOrFooterText, FooterText): New funs.
@ -4619,8 +4659,8 @@
* ps-prin0.ps: Insert a version number comment (5.2.2).
Indentation fix.
* ps-prin1.ps: Insert a version number comment (5.2.2). Can
select page size with/without giving an error if PostScript
* ps-prin1.ps: Insert a version number comment (5.2.2).
Can select page size with/without giving an error if PostScript
printer doesn't have this kind of page size. Zebra Stripe
continues or restarts on next page. Indentation fix.
(BeginSheet): If necessary, rescale n-up to fit on the sheet of
@ -4831,8 +4871,8 @@
* termcap.dat, termcap.ucb: Deleted and replaced.
* termcap: New termcap file from the ncurses project; bigger,
better, brighter, does away with waxy yellow buildup. Email
me at terminfo@ccil.org if you have any trouble with this.
better, brighter, does away with waxy yellow buildup.
Email me at terminfo@ccil.org if you have any trouble with this.
* README: Changed to track above change.
@ -4842,7 +4882,7 @@
1995-04-26 Karl Heuer <kwzh@nutrimat.gnu.ai.mit.edu>
* Makefile (maintainer-clean): Renamed from realclean.
* Makefile (maintainer-clean): Rename from realclean.
1995-04-09 Richard Stallman <rms@mole.gnu.ai.mit.edu>
@ -4997,7 +5037,7 @@
1993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
* sex.6: Added 900-line support
* sex.6: Added 900-line support.
* NEWS: Added news about the package finder.
@ -5039,8 +5079,8 @@
* DISTRIB: The actual domestic order form is now ORDERS.USA.
The DISTRIB text now mentions 19.
* ORDERS.USA: Created. This is just the order form. DISTRIB
has a pointer to it at the beginning.
* ORDERS.USA: Created. This is just the order form.
DISTRIB has a pointer to it at the beginning.
* EUROPE: Renamed to ORDERS.EUROPE. DISTRIB now has a pointer
to it at the beginning.
@ -5121,7 +5161,7 @@
1992-04-06 Jim Blandy (jimb@pogo.cs.oberlin.edu)
* etags.c (C_entries): Removed comment saying that \" in a string
* etags.c (C_entries): Remove comment saying that \" in a string
isn't recognized as magic, because it is correctly handled.
* getopt.c, getopt.h: New files, from GNU C library.
@ -5131,8 +5171,8 @@
optind.
(main): Argument processing loop rewritten to call getopt to get
next option. Options which take parameters (-o and -i) rewritten
to get parameter from optarg instead of argv[1]. Filename
preprocessing loop and update command changed similarly.
to get parameter from optarg instead of argv[1].
Filename preprocessing loop and update command changed similarly.
* Makefile (etags, ctags): Depend on and link with getopt.h,
getopt.o, and getopt1.o.
(getopt.o, getopt1.o): New targets for the GNU getopt routines.
@ -5273,8 +5313,8 @@
1991-01-25 Jim Blandy (jimb@churchy.ai.mit.edu)
* make-docfile: Find the arguments to a C function correctly,
by not ignoring the character that read_c_string returns. Don't
even try to find argument names for functions that take MANY
by not ignoring the character that read_c_string returns.
Don't even try to find argument names for functions that take MANY
or UNEVALLED arguments, since they're a figment of the docstring's
imagination.
@ -5536,7 +5576,7 @@
1988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu)
* env.c: Add decl for my-index.
* etags.c (file-entries): .oak => scheme
* etags.c (file-entries): .oak => scheme.
1988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)

View file

@ -7,257 +7,35 @@ Please send Gnus bug reports to bugs@gnus.org.
For older news, see Gnus info node "New Features".
* Installation changes
* New features
** Upgrading from previous (stable) version if you have used No Gnus.
** If you have the "tnef" program installed, Gnus will display ms-tnef
files, aka "winmail.dat".
If you have tried No Gnus (the unstable Gnus branch leading to this
release) but went back to a stable version, be careful when upgrading to
this version. In particular, you will probably want to remove the
`~/News/marks' directory (perhaps selectively), so that flags are read
from your `~/.newsrc.eld' instead of from the stale marks file, where
this release will store flags for nntp. See a later entry for more
information about nntp marks. Note that downgrading isn't safe in
general.
** Archives (like tar and zip files) will be automatically unpacked,
and the files inside the packages will be displayed as MIME parts.
** Incompatibility when switching from Emacs 23 to Emacs 22 In Emacs 23,
Gnus uses Emacs' new internal coding system `utf-8-emacs' for saving
articles drafts and `~/.newsrc.eld'. These files may not be read
correctly in Emacs 22 and below. If you want to use Gnus across
different Emacs versions, you may set `mm-auto-save-coding-system' to
`emacs-mule'.
** shr has a new command `z' that cycles through image sizes.
** Lisp files are now installed in `.../site-lisp/gnus/' by default. It
defaulted to `.../site-lisp/' formerly. In addition to this, the new
installer issues a warning if other Gnus installations which will shadow
the latest one are detected. You can then remove those shadows manually
or remove them using `make remove-installed-shadows'.
** `backtab' in the summary buffer now selects the previous link in
the article buffer.
** The installation directory name is allowed to have spaces and/or tabs.
** Using the "X-Message-SMTP-Method" header in Message buffers now
allows specifying how messages are to be sent. For example:
* New packages and libraries within Gnus
X-Message-SMTP-Method: smtp smtp.fsf.org 587
** Gnus includes the Emacs Lisp SASL library.
** Gnus keeps track of non-existent articles for nnimap groups, so
that sparse IMAP folders now list a correct number of messages in
them.
This provides a clean API to SASL mechanisms from within Emacs. The
user visible aspects of this, compared to the earlier situation, include
support for DIGEST-MD5 and NTLM. *Note Emacs SASL: (sasl)Top.
** Gnus will guess the real type of MIME parts of type
application/octet-stream based on the file suffix. So an
application/octet-stream with a name of "rms.jpg" will be displayed
as an image/jpeg type by default, for instance.
** ManageSieve connections uses the SASL library by default.
The primary change this brings is support for DIGEST-MD5 and NTLM, when
the server supports it.
** Gnus includes a password cache mechanism in password-cache.el.
It is enabled by default (see `password-cache'), with a short timeout of
16 seconds (see `password-cache-expiry'). If PGG is used as the PGP
back end, the PGP passphrase is managed by this mechanism. Passwords
for ManageSieve connections are managed by this mechanism, after
querying the user about whether to do so.
** Using EasyPG with Gnus When EasyPG, is available, Gnus will use it
instead of PGG. EasyPG is an Emacs user interface to GNU Privacy Guard.
*Note EasyPG Assistant user's manual: (epa)Top. EasyPG is included in
Emacs 23 and available separately as well.
* Changes in group mode
** Old intermediate incoming mail files (`Incoming*') are deleted after a
couple of days, not immediately. *Note Mail Source Customization::.
(New in Gnus 5.10.10 / Emacs 22.2)
* Changes in summary and article mode
** Gnus now supports sticky article buffers. Those are article buffers
that are not reused when you select another article. *Note Sticky
Articles::.
** Gnus can selectively display `text/html' articles with a WWW browser
with `K H'. *Note MIME Commands::.
** International host names (IDNA) can now be decoded inside article bodies
using `W i' (`gnus-summary-idna-message'). This requires that GNU Libidn
(`http://www.gnu.org/software/libidn/') has been installed.
** The non-ASCII group names handling has been much improved. The back
ends that fully support non-ASCII group names are now `nntp', `nnml',
and `nnrss'. Also the agent, the cache, and the marks features work
with those back ends. *Note Non-ASCII Group Names::.
** Gnus now displays DNS master files sent as text/dns using dns-mode.
** Gnus supports new limiting commands in the Summary buffer: `/ r'
(`gnus-summary-limit-to-replied') and `/ R'
(`gnus-summary-limit-to-recipient'). *Note Limiting::.
** You can now fetch all ticked articles from the server using `Y t'
(`gnus-summary-insert-ticked-articles'). *Note Summary Generation
Commands::.
** Gnus supports a new sort command in the Summary buffer: `C-c C-s C-t'
(`gnus-summary-sort-by-recipient'). *Note Summary Sorting::.
** S/MIME now features LDAP user certificate searches. You need to
configure the server in `smime-ldap-host-list'.
** URLs inside OpenPGP headers are retrieved and imported to your PGP key
ring when you click on them.
** Picons can be displayed right from the textual address, see
`gnus-picon-style'. *Note Picons::.
** ANSI SGR control sequences can be transformed using `W A'.
ANSI sequences are used in some Chinese hierarchies for highlighting
articles (`gnus-article-treat-ansi-sequences').
** Gnus now MIME decodes articles even when they lack "MIME-Version" header.
This changes the default of `gnus-article-loose-mime'.
** `gnus-decay-scores' can be a regexp matching score files. For example,
set it to `\\.ADAPT\\'' and only adaptive score files will be decayed.
*Note Score Decays::.
** Strings prefixing to the `To' and `Newsgroup' headers in summary lines
when using `gnus-ignored-from-addresses' can be customized with
`gnus-summary-to-prefix' and `gnus-summary-newsgroup-prefix'. *Note To
From Newsgroups::.
** You can replace MIME parts with external bodies. See
`gnus-mime-replace-part' and `gnus-article-replace-part'. *Note MIME
Commands::, *note Using MIME::.
** The option `mm-fill-flowed' can be used to disable treatment of
format=flowed messages. Also, flowed text is disabled when sending
inline PGP signed messages. *Note Flowed text: (emacs-mime)Flowed text.
(New in Gnus 5.10.7)
** Now the new command `S W' (`gnus-article-wide-reply-with-original') for
a wide reply in the article buffer yanks a text that is in the active
region, if it is set, as well as the `R'
(`gnus-article-reply-with-original') command. Note that the `R' command
in the article buffer no longer accepts a prefix argument, which was
used to make it do a wide reply. *Note Article Keymap::.
** The new command `C-h b' (`gnus-article-describe-bindings') used in the
article buffer now shows not only the article commands but also the real
summary commands that are accessible from the article buffer.
* Changes in Message mode
** Gnus now supports the "hashcash" client puzzle anti-spam mechanism. Use
`(setq message-generate-hashcash t)' to enable. *Note Hashcash::.
** You can now drag and drop attachments to the Message buffer. See
`mml-dnd-protocol-alist' and `mml-dnd-attach-options'. *Note MIME:
(message)MIME.
** The option `message-yank-empty-prefix' now controls how empty lines are
prefixed in cited text. *Note Insertion Variables: (message)Insertion
Variables.
** Gnus uses narrowing to hide headers in Message buffers. The
`References' header is hidden by default. To make all headers visible,
use `(setq message-hidden-headers nil)'. *Note Message Headers:
(message)Message Headers.
** You can highlight different levels of citations like in the article
buffer. See `gnus-message-highlight-citation'.
** `auto-fill-mode' is enabled by default in Message mode. See
`message-fill-column'. *Note Message Headers: (message)Various Message
Variables.
** You can now store signature files in a special directory named
`message-signature-directory'.
** The option `message-citation-line-format' controls the format of the
"Whomever writes:" line. You need to set
`message-citation-line-function' to
`message-insert-formatted-citation-line' as well.
* Changes in back ends
** The nntp back end stores article marks in `~/News/marks'.
The directory can be changed using the (customizable) variable
`nntp-marks-directory', and marks can be disabled using the (back end)
variable `nntp-marks-is-evil'. The advantage of this is that you can
copy `~/News/marks' (using rsync, scp or whatever) to another Gnus
installation, and it will realize what articles you have read and
marked. The data in `~/News/marks' has priority over the same data in
`~/.newsrc.eld'.
** You can import and export your RSS subscriptions from OPML files. *Note
RSS::.
** IMAP identity (RFC 2971) is supported.
By default, Gnus does not send any information about itself, but you can
customize it using the variable `nnimap-id'.
** The `nnrss' back end now supports multilingual text. Non-ASCII group
names for the `nnrss' groups are also supported. *Note RSS::.
** Retrieving mail with POP3 is supported over SSL/TLS and with StartTLS.
** The nnml back end allows other compression programs beside `gzip' for
compressed message files. *Note Mail Spool::.
** The nnml back end supports group compaction.
This feature, accessible via the functions `gnus-group-compact-group'
(`G z' in the group buffer) and `gnus-server-compact-server' (`z' in the
server buffer) renumbers all articles in a group, starting from 1 and
removing gaps. As a consequence, you get a correct total article count
(until messages are deleted again).
* Appearance
** The tool bar has been updated to use GNOME icons. You can also
customize the tool bars: `M-x customize-apropos RET -tool-bar$' should
get you started. (Only for Emacs, not in XEmacs.)
** The tool bar icons are now (de)activated correctly in the group buffer,
see the variable `gnus-group-update-tool-bar'. Its default value
depends on your Emacs version.
** You can change the location of XEmacs' toolbars in Gnus buffers. See
`gnus-use-toolbar' and `message-use-toolbar'.
* Miscellaneous changes
** Having edited the select-method for the foreign server in the server
buffer is immediately reflected to the subscription of the groups which
use the server in question. For instance, if you change
`nntp-via-address' into `bar.example.com' from `foo.example.com', Gnus
will connect to the news host by way of the intermediate host
`bar.example.com' from next time.
** The `all.SCORE' file can be edited from the group buffer using `W e'.
** You can set `gnus-mark-copied-or-moved-articles-as-expirable' to a
non-`nil' value so that articles that have been read may be marked as
expirable automatically when copying or moving them to a group that has
auto-expire turned on. The default is `nil' and copying and moving of
articles behave as before; i.e., the expirable marks will be unchanged
except that the marks will be removed when copying or moving articles to
a group that has not turned auto-expire on. *Note Expiring Mail::.
** `nnimap-inbox' can now be a list of mail box names.
* For older news, see Gnus info node "New Features".
----------------------------------------------------------------------

View file

@ -61,9 +61,31 @@ check that this option enables.
lisp/ directory. There should not be any there anyway. If you have
been adding them there, put them somewhere else, eg site-lisp.
---
** The `--no-site-lisp' command line option now works for Nextstep builds.
* Changes in Emacs 24.2
** Help changes
*** `C-h f' (describe-function) can now perform autoloading.
When this command is called for an autoloaded function whose docstring
contains a key substitution construct, that function's library is
automatically loaded, so that the documentation can be shown
correctly. To disable this, set `help-enable-auto-load' to nil.
*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
even after their associated libraries have been loaded (and the
autoloads have been redefined as functions).
** The function `current-time' now returns extended-format time stamps
(HIGH LOW USEC PSEC) that use picosecond resolution; the PSEC
component is new. PSEC is typically a multiple of 1000 on current
machines. Other functions that use this format, such as
file-attributes and format-time-string, have been changed accordingly.
Old-format time stamps are still accepted.
** New functions `system-users', `system-groups' return lists of the user
name, group names known to the system (where possible).
@ -91,6 +113,8 @@ treated as images.
** Face underlining can now use a wave.
See the "Face Attributes" section of the Elisp manual.
** New fringe bitmap exclamation-mark.
** String values for `initial-buffer-choice' also apply to emacsclient
frames, if emacsclient is only told to open a new frame without
specifying any file to visit or expression to evaluate.
@ -116,6 +140,10 @@ invokes `set-buffer-file-coding-system'.
** Setting `enable-remote-dir-locals' to non-nil allows directory
local variables on remote hosts.
+++
** `insert-char' is now a command, and `ucs-insert' an obsolete alias
for it.
* Editing Changes in Emacs 24.2
@ -131,16 +159,30 @@ prompts for a column number.
** `mouse-avoidance-banish-position' can now be used to customize
`mouse-avoidance-mode' further.
** `M-=' is now bound to `count-words', not `count-words-region'.
** `C-M-f' and `C-M-b' will now move to the path name separator
character when doing minibuffer filename prompts.
** `goto-char' is now bound to `M-g c'.
** New command `C-x r M-w' (copy-rectangle-as-kill).
It copies the region-rectangle as the last rectangle kill.
** New input method `vietnamese-vni'.
* Changes in Specialized Modes and Packages in Emacs 24.2
** Term changes
The variables `term-default-fg-color' and `term-default-bg-color' are
now deprecated in favor of the `term-face' face, that you can
customize. Also, it is now possible to customize how are displayed the
ANSI terminal colors and styles by customizing the corresponding
`term-color-<COLOR>', `term-color-underline' and `term-color-bold'
faces.
** CL's main entry is now (require 'cl-lib).
`cl-lib' is like the old `cl' except that it uses the namespace cleanly,
i.e. all its definitions have the "cl-" prefix.
@ -153,8 +195,14 @@ which have not been renamed to `cl-foo*' but just `cl-foo'.
The old `cl' is now deprecated and is nothing more than a bunch of aliases that
provide the old non-prefixed names.
** A new mode for Python.
This provides several new features, including:
** Desktop
*** `desktop-path' no longer includes the "." directory. Desktop
files are now located in ~/.emacs.d by default.
** Python mode
A new version of python.el, which provides several new features, including:
per-buffer shells, better indentation, Python 3 support, and improved
shell-interaction compatible with iPython (and virtually any other
text based shell).
@ -207,11 +255,15 @@ python-send-string | python-shell-send-string
python-switch-to-python | python-shell-switch-to-shell
python-describe-symbol | python-eldoc-at-point
** VHDL-mode
- Support for ghdl (free vhdl compiler). Now default.
- Add/update support for VHDL-AMS packages.
- Update to VHDL'02 standard.
- Accept \r and \f as whitespace.
** VHDL mode
*** The free software compiler GHDL is supported (and now the default).
*** Support for the VHDL-AMS packages has been added/updated.
*** Updated to the 2002 revision of the VHDL standard.
*** Accepts \r and \f as whitespace.
** Diff mode
@ -227,6 +279,10 @@ to highlight changes in context diffs.
** Ediff now uses the same color scheme as Diff mode
on high color displays.
** Flymake uses fringe bitmaps to indicate errors and warnings.
See flymake-fringe-indicator-position, flymake-error-bitmap and
flymake-warning-bitmap.
** `sh-script'
*** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
@ -294,6 +350,12 @@ these commands now).
** erc will look up server/channel names via auth-source and use the
channel keys found, if any.
** Dired
*** `dired-do-async-shell-command' executes each file sequentially
if the command ends in `;' (when operating on multiple files).
Otherwise, it executes the command on each file in parallel.
** FFAP
*** The option `ffap-url-unwrap-remote' can now be a list of strings,
@ -413,6 +475,12 @@ Only variables defined using `defcustom' are considered user options.
The function `user-variable-p' is now an obsolete alias for
`custom-variable-p'.
+++
** The return values of `defalias', `defun' and `defmacro' have changed,
and are now undefined. For backwards compatibility, defun and
defmacro currently return the name of the newly defined function/macro
but this should not be relied upon.
** `face-spec-set' no longer sets frame-specific attributes when the
third argument is a frame (that usage was obsolete since Emacs 22.2).
@ -425,11 +493,20 @@ still be supported for Emacs 24.x.
*** `facemenu-unlisted-faces'
*** `rmail-decode-mime-charset'
*** `last-input-char' and `last-command-char'
* Lisp changes in Emacs 24.2
** The return value of `defalias' has changed and is now undefined.
** New functions `autoloadp' and `autoload-do-load'.
** `function-get' fetches the property of a function, following aliases.
** `toggle-read-only' accepts a second argument specifying whether to
print a message, if called from Lisp.
** CL-style generalized variables are now in core Elisp.
`setf' is autoloaded and `push' and `pop' accept generalized variables.
** `defun' also accepts a (declare DECLS) form, like `defmacro'.
The interpretation of the DECLS is determined by `defun-declarations-alist'.
@ -459,6 +536,10 @@ table, but with a different prefix.
must be in the range 1000..9999. It now works with any year supported
by the underlying C implementation.
** New function file-name-base.
** New function `tty-top-frame' returns the topmost frame of a text terminal.
** `automount-dir-prefix' is obsolete.
** `buffer-has-markers-at' is obsolete.
@ -473,8 +554,6 @@ is detected.
Emacs now supports mouse highlight, help-echo (in the echo area), and
mouse-autoselect-window.
** New function `tty-top-frame' returns the topmost frame of a text terminal.
* Installation Changes in Emacs 24.1

View file

@ -255,6 +255,36 @@ result in an endless loop.
If you need Emacs to be able to recover from closing displays, compile
it with the Lucid toolkit instead of GTK.
** Emacs crashes when you try to view a file with complex characters.
For example, the etc/HELLO file (as shown by C-h h).
The message "symbol lookup error: /usr/bin/emacs: undefined symbol: OTF_open"
is shown in the terminal from which you launched Emacs.
This problem only happens when you use a graphical display (ie not
with -nw) and compiled Emacs with the "libotf" library for complex
text handling.
This problem occurs because unfortunately there are two libraries
called "libotf". One is the library for handling OpenType fonts,
http://www.m17n.org/libotf/, which is the one that Emacs expects.
The other is a library for Open Trace Format, and is used by some
versions of the MPI message passing interface for parallel
programming.
For example, on RHEL6 GNU/Linux, the OpenMPI rpm provides a version
of "libotf.so" in /usr/lib/openmpi/lib. This directory is not
normally in the ld search path, but if you want to use OpenMPI,
you must issue the command "module load openmpi". This adds
/usr/lib/openmpi/lib to LD_LIBRARY_PATH. If you then start Emacs from
the same shell, you will encounter this crash.
Ref: <URL:https://bugzilla.redhat.com/show_bug.cgi?id=806031>
There is no good solution to this problem if you need to use both
OpenMPI and Emacs with libotf support. The best you can do is use a
wrapper shell script (or function) "emacs" that removes the offending
element from LD_LIBRARY_PATH before starting emacs proper.
Or you could recompile Emacs with an -Wl,-rpath option that
gives the location of the correct libotf.
* General runtime problems
** Lisp problems
@ -1854,8 +1884,8 @@ Emacs uses symbolic links to implement file locks. In a directory
with +t bit, the directory owner becomes the owner of the symbolic
link, so that it cannot be removed by anyone else.
If you don't like those useless links, you can let Emacs not to using
file lock by adding #undef CLASH_DETECTION to config.h.
If you don't like those useless links, you can customize
the option `create-lockfiles'.
*** FreeBSD: Getting a Meta key on the console.

View file

@ -1211,6 +1211,8 @@ systems for HTML/XML files automatically."
this.]
** Rewrite make-docfile to be clean and maintainable.
It might be better to replace it with Lisp, using the byte compiler.
http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00037.html
** Add an inferior-comint-minor-mode to capture the common set of operations
offered by major modes that offer an associated inferior
@ -1230,6 +1232,15 @@ systems for HTML/XML files automatically."
button classes inherit from it. Set the default face of the "link" button
class to the standard "link" face.
* Wishlist items:
** Maybe replace etags.c with a Lisp implementation.
http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00354.html
** Maybe replace lib-src/rcs2log with a Lisp implementation.
It wouldn't have to be a complete replacement, just enough
for vc-rcs-update-changelog.
* Other known bugs:
** `make-frame' forgets unhandled parameters, at least for X11 frames.

View file

@ -70,21 +70,16 @@
# Code:
# Force loading of symbols, enough to give us gdb_valbits etc.
# Force loading of symbols, enough to give us VALMASK etc.
set main
# When nonzero, display some extra diagnostics in various commands
set $yverbose = 1
set $yfile_buffers_only = 0
set $tagmask = (((long)1 << gdb_gctypebits) - 1)
# The consing_since_gc business widens the 1 to EMACS_INT,
# a symbol not directly visible to GDB.
set $valmask = gdb_use_lsb ? ~($tagmask) : ((consing_since_gc - consing_since_gc + 1) << gdb_valbits) - 1
define ygetptr
set $ptr = $arg0
set $ptr = (gdb_use_union ? $ptr.u.val : $ptr & $valmask) | gdb_data_seg_bits
set $ptr = ((CHECK_LISP_OBJECT_TYPE ? $ptr.i : $ptr) & VALMASK) | DATA_SEG_BITS
end
define ybuffer-list

View file

@ -1,10 +0,0 @@
"""Wrapper for version-specific implementations of python.el helper
functions """
import sys
if sys.version_info[0] == 3:
from emacs3 import *
else:
from emacs2 import *

View file

@ -1,236 +0,0 @@
"""Definitions used by commands sent to inferior Python in python.el."""
# Copyright (C) 2004-2012 Free Software Foundation, Inc.
# Author: Dave Love <fx@gnu.org>
# 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 <http://www.gnu.org/licenses/>.
import os, sys, traceback, inspect, __main__
try:
set
except:
from sets import Set as set
__all__ = ["eexecfile", "eargs", "complete", "ehelp", "eimport", "modpath"]
def format_exception (filename, should_remove_self):
type, value, tb = sys.exc_info ()
sys.last_type = type
sys.last_value = value
sys.last_traceback = tb
if type is SyntaxError:
try: # parse the error message
msg, (dummy_filename, lineno, offset, line) = value
except:
pass # Not the format we expect; leave it alone
else:
# Stuff in the right filename
value = SyntaxError(msg, (filename, lineno, offset, line))
sys.last_value = value
res = traceback.format_exception_only (type, value)
# There are some compilation errors which do not provide traceback so we
# should not massage it.
if should_remove_self:
tblist = traceback.extract_tb (tb)
del tblist[:1]
res = traceback.format_list (tblist)
if res:
res.insert(0, "Traceback (most recent call last):\n")
res[len(res):] = traceback.format_exception_only (type, value)
# traceback.print_exception(type, value, tb)
for line in res: print line,
def eexecfile (file):
"""Execute FILE and then remove it.
Execute the file within the __main__ namespace.
If we get an exception, print a traceback with the top frame
(ourselves) excluded."""
# We cannot use real execfile since it has a bug where the file stays
# locked forever (under w32) if SyntaxError occurs.
# --- code based on code.py and PyShell.py.
try:
try:
source = open (file, "r").read()
code = compile (source, file, "exec")
# Other exceptions (shouldn't be any...) will (correctly) fall
# through to "final".
except (OverflowError, SyntaxError, ValueError):
# FIXME: When can compile() raise anything else than
# SyntaxError ????
format_exception (file, False)
return
try:
exec code in __main__.__dict__
except:
format_exception (file, True)
finally:
os.remove (file)
def eargs (name, imports):
"Get arglist of NAME for Eldoc &c."
try:
if imports: exec imports
parts = name.split ('.')
if len (parts) > 1:
exec 'import ' + parts[0] # might fail
func = eval (name)
if inspect.isbuiltin (func) or type(func) is type:
doc = func.__doc__
if doc.find (' ->') != -1:
print '_emacs_out', doc.split (' ->')[0]
else:
print '_emacs_out', doc.split ('\n')[0]
return
if inspect.ismethod (func):
func = func.im_func
if not inspect.isfunction (func):
print '_emacs_out '
return
(args, varargs, varkw, defaults) = inspect.getargspec (func)
# No space between name and arglist for consistency with builtins.
print '_emacs_out', \
func.__name__ + inspect.formatargspec (args, varargs, varkw,
defaults)
except:
print "_emacs_out "
def all_names (object):
"""Return (an approximation to) a list of all possible attribute
names reachable via the attributes of OBJECT, i.e. roughly the
leaves of the dictionary tree under it."""
def do_object (object, names):
if inspect.ismodule (object):
do_module (object, names)
elif inspect.isclass (object):
do_class (object, names)
# Might have an object without its class in scope.
elif hasattr (object, '__class__'):
names.add ('__class__')
do_class (object.__class__, names)
# Probably not a good idea to try to enumerate arbitrary
# dictionaries...
return names
def do_module (module, names):
if hasattr (module, '__all__'): # limited export list
names.update(module.__all__)
for i in module.__all__:
do_object (getattr (module, i), names)
else: # use all names
names.update(dir (module))
for i in dir (module):
do_object (getattr (module, i), names)
return names
def do_class (object, names):
ns = dir (object)
names.update(ns)
if hasattr (object, '__bases__'): # superclasses
for i in object.__bases__: do_object (i, names)
return names
return do_object (object, set([]))
def complete (name, imports):
"""Complete TEXT in NAMESPACE and print a Lisp list of completions.
Exec IMPORTS first."""
import __main__, keyword
def class_members(object):
names = dir (object)
if hasattr (object, '__bases__'):
for super in object.__bases__:
names = class_members (super)
return names
names = set([])
base = None
try:
dict = __main__.__dict__.copy()
if imports: exec imports in dict
l = len (name)
if not "." in name:
for src in [dir (__builtins__), keyword.kwlist, dict.keys()]:
for elt in src:
if elt[:l] == name: names.add(elt)
else:
base = name[:name.rfind ('.')]
name = name[name.rfind('.')+1:]
try:
object = eval (base, dict)
names = set(dir (object))
if hasattr (object, '__class__'):
names.add('__class__')
names.update(class_members (object))
except: names = all_names (dict)
except:
print sys.exc_info()
names = []
l = len(name)
print '_emacs_out (',
for n in names:
if name == n[:l]:
if base: print '"%s.%s"' % (base, n),
else: print '"%s"' % n,
print ')'
def ehelp (name, imports):
"""Get help on string NAME.
First try to eval name for, e.g. user definitions where we need
the object. Otherwise try the string form."""
locls = {}
if imports:
try: exec imports in locls
except: pass
try: help (eval (name, globals(), locls))
except: help (name)
def eimport (mod, dir):
"""Import module MOD with directory DIR at the head of the search path.
NB doesn't load from DIR if MOD shadows a system module."""
from __main__ import __dict__
path0 = sys.path[0]
sys.path[0] = dir
try:
try:
if __dict__.has_key(mod) and inspect.ismodule (__dict__[mod]):
reload (__dict__[mod])
else:
__dict__[mod] = __import__ (mod)
except:
(type, value, tb) = sys.exc_info ()
print "Traceback (most recent call last):"
traceback.print_exception (type, value, tb.tb_next)
finally:
sys.path[0] = path0
def modpath (module):
"""Return the source file for the given MODULE (or None).
Assumes that MODULE.py and MODULE.pyc are in the same directory."""
try:
path = __import__ (module).__file__
if path[-4:] == '.pyc' and os.path.exists (path[0:-1]):
path = path[:-1]
print "_emacs_out", path
except:
print "_emacs_out ()"
# print '_emacs_ok' # ready for input and can call continuation

View file

@ -1,234 +0,0 @@
# Copyright (C) 2004-2012 Free Software Foundation, Inc.
# Author: Dave Love <fx@gnu.org>
# 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 <http://www.gnu.org/licenses/>.
import os, sys, traceback, inspect, imp, __main__
try:
set
except:
from sets import Set as set
__all__ = ["eexecfile", "eargs", "complete", "ehelp", "eimport", "modpath"]
def format_exception (filename, should_remove_self):
type, value, tb = sys.exc_info ()
sys.last_type = type
sys.last_value = value
sys.last_traceback = tb
if type is SyntaxError:
try: # parse the error message
msg, (dummy_filename, lineno, offset, line) = value
except:
pass # Not the format we expect; leave it alone
else:
# Stuff in the right filename
value = SyntaxError(msg, (filename, lineno, offset, line))
sys.last_value = value
res = traceback.format_exception_only (type, value)
# There are some compilation errors which do not provide traceback so we
# should not massage it.
if should_remove_self:
tblist = traceback.extract_tb (tb)
del tblist[:1]
res = traceback.format_list (tblist)
if res:
res.insert(0, "Traceback (most recent call last):\n")
res[len(res):] = traceback.format_exception_only (type, value)
# traceback.print_exception(type, value, tb)
for line in res: print(line, end=' ')
def eexecfile (file):
"""Execute FILE and then remove it.
Execute the file within the __main__ namespace.
If we get an exception, print a traceback with the top frame
(ourselves) excluded."""
# We cannot use real execfile since it has a bug where the file stays
# locked forever (under w32) if SyntaxError occurs.
# --- code based on code.py and PyShell.py.
try:
try:
source = open (file, "r").read()
code = compile (source, file, "exec")
# Other exceptions (shouldn't be any...) will (correctly) fall
# through to "final".
except (OverflowError, SyntaxError, ValueError):
# FIXME: When can compile() raise anything else than
# SyntaxError ????
format_exception (file, False)
return
try:
exec(code, __main__.__dict__)
except:
format_exception (file, True)
finally:
os.remove (file)
def eargs (name, imports):
"Get arglist of NAME for Eldoc &c."
try:
if imports: exec(imports)
parts = name.split ('.')
if len (parts) > 1:
exec('import ' + parts[0]) # might fail
func = eval (name)
if inspect.isbuiltin (func) or type(func) is type:
doc = func.__doc__
if doc.find (' ->') != -1:
print('_emacs_out', doc.split (' ->')[0])
else:
print('_emacs_out', doc.split ('\n')[0])
return
if inspect.ismethod (func):
func = func.im_func
if not inspect.isfunction (func):
print('_emacs_out ')
return
(args, varargs, varkw, defaults) = inspect.getargspec (func)
# No space between name and arglist for consistency with builtins.
print('_emacs_out', \
func.__name__ + inspect.formatargspec (args, varargs, varkw,
defaults))
except:
print("_emacs_out ")
def all_names (object):
"""Return (an approximation to) a list of all possible attribute
names reachable via the attributes of OBJECT, i.e. roughly the
leaves of the dictionary tree under it."""
def do_object (object, names):
if inspect.ismodule (object):
do_module (object, names)
elif inspect.isclass (object):
do_class (object, names)
# Might have an object without its class in scope.
elif hasattr (object, '__class__'):
names.add ('__class__')
do_class (object.__class__, names)
# Probably not a good idea to try to enumerate arbitrary
# dictionaries...
return names
def do_module (module, names):
if hasattr (module, '__all__'): # limited export list
names.update(module.__all__)
for i in module.__all__:
do_object (getattr (module, i), names)
else: # use all names
names.update(dir (module))
for i in dir (module):
do_object (getattr (module, i), names)
return names
def do_class (object, names):
ns = dir (object)
names.update(ns)
if hasattr (object, '__bases__'): # superclasses
for i in object.__bases__: do_object (i, names)
return names
return do_object (object, set([]))
def complete (name, imports):
"""Complete TEXT in NAMESPACE and print a Lisp list of completions.
Exec IMPORTS first."""
import __main__, keyword
def class_members(object):
names = dir (object)
if hasattr (object, '__bases__'):
for super in object.__bases__:
names = class_members (super)
return names
names = set([])
base = None
try:
dict = __main__.__dict__.copy()
if imports: exec(imports, dict)
l = len (name)
if not "." in name:
for src in [dir (__builtins__), keyword.kwlist, list(dict.keys())]:
for elt in src:
if elt[:l] == name: names.add(elt)
else:
base = name[:name.rfind ('.')]
name = name[name.rfind('.')+1:]
try:
object = eval (base, dict)
names = set(dir (object))
if hasattr (object, '__class__'):
names.add('__class__')
names.update(class_members (object))
except: names = all_names (dict)
except:
print(sys.exc_info())
names = []
l = len(name)
print('_emacs_out (', end=' ')
for n in names:
if name == n[:l]:
if base: print('"%s.%s"' % (base, n), end=' ')
else: print('"%s"' % n, end=' ')
print(')')
def ehelp (name, imports):
"""Get help on string NAME.
First try to eval name for, e.g. user definitions where we need
the object. Otherwise try the string form."""
locls = {}
if imports:
try: exec(imports, locls)
except: pass
try: help (eval (name, globals(), locls))
except: help (name)
def eimport (mod, dir):
"""Import module MOD with directory DIR at the head of the search path.
NB doesn't load from DIR if MOD shadows a system module."""
from __main__ import __dict__
path0 = sys.path[0]
sys.path[0] = dir
try:
try:
if mod in __dict__ and inspect.ismodule (__dict__[mod]):
imp.reload (__dict__[mod])
else:
__dict__[mod] = __import__ (mod)
except:
(type, value, tb) = sys.exc_info ()
print("Traceback (most recent call last):")
traceback.print_exception (type, value, tb.tb_next)
finally:
sys.path[0] = path0
def modpath (module):
"""Return the source file for the given MODULE (or None).
Assumes that MODULE.py and MODULE.pyc are in the same directory."""
try:
path = __import__ (module).__file__
if path[-4:] == '.pyc' and os.path.exists (path[0:-1]):
path = path[:-1]
print("_emacs_out", path)
except:
print("_emacs_out ()")
# print '_emacs_ok' # ready for input and can call continuation

View file

@ -30,7 +30,7 @@ comments when you write it (sometime in 2198 as I recall).
P.S. You'll be pleased to know that since (time-forward N) still works
for N >= 0, we've used it to pre-emptively update configure.in.
for N >= 0, we've used it to pre-emptively update configure.ac.
Emacs now configures and builds on every platform that will ever
be made. It wasn't easy, but at least that's one problem out of
the way for good. If you'd like the patch, just ask.

View file

@ -16,7 +16,7 @@ The characters ">>" at the left margin indicate directions for you to
try using a command. For instance:
<<Blank lines inserted around following line by help-with-tutorial>>
[Middle of page left blank for didactic purposes. Text continues below]
>> Now type C-v (View next screen) to move to the next screen.
>> Now type C-v (View next screen) to move to the next screen.
(go ahead, do it by holding down the CONTROL key while typing v).
From now on, you should do this again whenever you finish
reading the screen.
@ -30,7 +30,7 @@ to place in the text. You already know how to move forward one screen,
with C-v. To move backwards one screen, type M-v (hold down the META key
and type v, or type <ESC>v if you do not have a META, EDIT, or ALT key).
>> Try typing M-v and then C-v, a few times.
>> Try typing M-v and then C-v, a few times.
* SUMMARY
@ -209,12 +209,12 @@ prefix argument, regardless of its value, makes the command do
something different.
C-v and M-v are another kind of exception. When given an argument,
they scroll the screen up or down by that many lines, rather than by a
screenful. For example, C-u 8 C-v scrolls the screen by 8 lines.
they scroll the text up or down by that many lines, rather than by a
screenful. For example, C-u 8 C-v scrolls by 8 lines.
>> Try typing C-u 8 C-v now.
This should have scrolled the screen up by 8 lines. If you would like
This should have scrolled the text up by 8 lines. If you would like
to scroll it down again, you can give an argument to M-v.
If you are using a graphical display, such as X or MS-Windows, there
@ -281,8 +281,6 @@ other windows.
>> Type C-x 1 and see the documentation listing window disappear.
This command is unlike the other commands you have learned in that it
consists of two characters. It starts with the character CONTROL-x.
There is a whole series of commands that start with CONTROL-x; many of
them have to do with windows, files, buffers, and related things.
These commands are two, three or four characters long.
@ -337,7 +335,7 @@ Remember that most Emacs commands can be given a repeat count;
this includes text characters. Repeating a text character inserts
it several times.
>> Try that now -- type C-u 8 * to insert ********.
>> Try that now -- type C-u 8 * to insert ********.
You've now learned the most basic way of typing something in
Emacs and correcting errors. You can delete by words or lines
@ -522,11 +520,8 @@ command
This copies the text within Emacs into the file. The first time you
do this, Emacs renames the original file to a new name so that it is
not lost. The new name is made by adding "~" to the end of the
original file's name.
When saving is finished, Emacs displays the name of the file written.
You should save fairly often, so that you will not lose very much
work if the system should crash (see the section "Auto Save" below).
original file's name. When saving is finished, Emacs displays the
name of the file written.
>> Type C-x C-s TUTORIAL <Return>.
This should save this tutorial to a file named TUTORIAL, and show
@ -534,11 +529,11 @@ work if the system should crash (see the section "Auto Save" below).
You can find an existing file, to view it or edit it. You can also
find a file which does not already exist. This is the way to create a
file with Emacs: find the file, which will start out empty, and then
begin inserting the text for the file. When you ask to "save" the
file, Emacs will really create the file with the text that you have
inserted. From then on, you can consider yourself to be editing an
already existing file.
file with Emacs: find the file, which starts out empty, and then begin
inserting the text for the file. When you ask to "save" the file,
Emacs actually creates the file with the text that you have inserted.
From then on, you can consider yourself to be editing an already
existing file.
* BUFFERS
@ -595,8 +590,8 @@ this does not save the first file. Its changes remain inside Emacs,
in that file's buffer. The creation or editing of the second file's
buffer has no effect on the first file's buffer. This is very useful,
but it also means that you need a convenient way to save the first
file's buffer. It would be a nuisance to have to switch back to
it with C-x C-f in order to save it with C-x C-s. So we have
file's buffer. Having to switch back to that buffer, in order to save
it with C-x C-s, would be a nuisance. So we have
C-x s Save some buffers
@ -631,7 +626,7 @@ If you are using a graphical display, you don't need any special
command to move from Emacs to another application. You can do this
with the mouse or with window manager commands. However, if you're
using a text terminal which can only show one application at a time,
you need to "suspend" Emacs to move to any other program.
you need to "suspend" Emacs to move to any other application.
C-z is the command to exit Emacs *temporarily*--so that you can go
back to the same Emacs session afterward. When Emacs is running on a
@ -640,8 +635,8 @@ but does not destroy the Emacs job. In the most common shells, you
can resume Emacs with the `fg' command or with `%emacs'.
The time to use C-x C-c is when you are about to log out. It's also
the right thing to use to exit an Emacs invoked under mail handling
programs and other miscellaneous utilities.
the right thing to use to exit an Emacs invoked for a quick edit, such
as by a mail handling utility.
There are many C-x commands. Here is a list of the ones you have learned:
@ -656,8 +651,8 @@ There are many C-x commands. Here is a list of the ones you have learned:
Named eXtended commands are commands which are used even less
frequently, or commands which are used only in certain modes. An
example is the command replace-string, which globally replaces one
string with another. When you type M-x, Emacs prompts you at the
example is the command replace-string, which replaces one string with
another in the buffer. When you type M-x, Emacs prompts you at the
bottom of the screen with M-x and you should type the name of the
command; in this case, "replace-string". Just type "repl s<TAB>" and
Emacs will complete the name. (<TAB> is the Tab key, usually found
@ -671,9 +666,9 @@ argument with <Return>.
>> Move the cursor to the blank line two lines below this one.
Then type M-x repl s<Return>changed<Return>altered<Return>.
Notice how this line has changed: you've replaced
the word c-h-a-n-g-e-d with "altered" wherever it occurred,
after the initial position of the cursor.
Notice how this line has changed: you've replaced the word
"changed" with "altered" wherever it occurred, after the
initial position of the cursor.
* AUTO SAVE
@ -762,6 +757,7 @@ differently.
To view documentation on your current major mode, type C-h m.
>> Move the cursor to the line following this line.
>> Type C-l C-l to bring this line to the top of screen.
>> Type C-h m, to see how Text mode differs from Fundamental mode.
>> Type C-x 1 to remove the documentation from the screen.
@ -893,7 +889,8 @@ display, those cursors are drawn as unblinking hollow boxes.
The command C-M-v is very useful when you are editing text in one
window and using the other window just for reference. Without leaving
the selected window, you can scroll the other window with C-M-v.
the selected window, you can scroll the text in the other window with
C-M-v.
C-M-v is an example of a CONTROL-META character. If you have a META
(or Alt) key, you can type C-M-v by holding down both CONTROL and META
@ -1041,8 +1038,8 @@ You need to type in the name of the variable when Emacs prompts for it.
>> Type C-h a file <Return>.
This displays in another window a list of all M-x commands with "file"
in their names. You will see character-commands like C-x C-f listed
beside the corresponding command names such as find-file.
in their names. You will see character-commands listed beside the
corresponding command names (such as C-x C-f beside find-file).
>> Type C-M-v to scroll the help window. Do this a few times.

View file

@ -222,13 +222,13 @@ bandera: la presencia de un argumento prefijo, sin tener en cuenta su
valor, hace que el comando actúe de forma diferente.
C-v y M-v son otro tipo de excepción. Cuando se les da un argumento,
desplazan la pantalla arriba o abajo esa cantidad de líneas, en vez de
desplazan el texto arriba o abajo esa cantidad de líneas, en vez de
una pantalla completa. Por ejemplo, C-u 8 C-v desplaza la pantalla 8
líneas.
>> Pruebe tecleando C-u 8 C-v ahora.
Esto debhaber desplazado la pantalla hacia arriba 8 líneas. Si
Esto debería haber desplazado el texto hacia arriba 8 líneas. Si
quisiera desplazarla hacia abajo de nuevo, puede dar un argumento a
M-v.
@ -299,9 +299,7 @@ dem
>> Escriba C-x 1 y vea que la ventana de listado de documentación
desaparece.
Este comando es diferente a los otros que ha aprendido en que éste
consiste de dos caracteres. Comienza con el carácter CONTROL-x. Hay
toda una serie de comandos que comienzan con CONTROL-x; muchos de
Hay toda una serie de comandos que comienzan con CONTROL-x; muchos de
ellos tienen que ver con ventanas, archivos, buffers y cosas
relacionadas. Estos comandos son de una longitud de dos, tres o
cuatro caracteres.
@ -554,12 +552,8 @@ comando
Esto copia el texto dentro de Emacs al archivo. La primera vez que
haga esto, Emacs renombrará el archivo original con un nuevo nombre
para que éste no se pierda. El nuevo nombre se hace agregando "~" al
final del nombre del archivo original.
Cuando guardar haya terminado, Emacs mostrará el nombre del archivo
escrito. Deberá guardar frecuentemente, para que no pierda mucho
trabajo si el sistema falla (vea la sección "AUTO GUARDADO", más
adelante).
final del nombre del archivo original. Cuando guardar haya terminado,
Emacs mostrará el nombre del archivo escrito.
>> Teclee C-x C-s TUTORIAL.es <Return>
Esto guardará el tutorial en un archivo llamado TUTORIAL.es, y
@ -567,10 +561,10 @@ adelante).
Puede encontrar un archivo existente, para verlo o editarlo. También
puede hacerlo con un archivo que no exista. Ésta es la forma de crear
un archivo en Emacs: encuentre el archivo, que comenzará vacío, luego
comience a insertar el texto para ese archivo. Cuando invoque
un archivo en Emacs: encuentre el archivo, que está inicialmente vacío,
luego comience a insertar el texto para ese archivo. Cuando invoque
"guardar" el archivo, Emacs creará realmente el archivo con el texto
que ha insertado. De ahí en adelante, puede considerarse estar
que ha insertado. De ahí en adelante, puede considerar que está
editando un archivo existente.
@ -631,8 +625,8 @@ archivo, esto no guarda el primer archivo. Sus cambios permanecer
dentro de Emacs en ese buffer del archivo. La creación o edición del
segundo buffer de archivo no afecta al primero. Esto es muy útil,
pero también significa que necesita una forma conveniente para guardar
el archivo del primer buffer. Sería una molestia tener que volver a
éste con C-x C-f para guardarlo con C-x C-s. Así tenemos
el archivo del primer buffer. Tener que volver a él para guardarlo
con C-x C-s sería una molestia. Por tanto, tenemos
C-x s Guardar algunos buffers
@ -667,7 +661,7 @@ Si est
especial para cambiar de Emacs a otra aplicación. Puede hacerlo con
el ratón, o mediante el gestor de ventanas. Sin embargo, si está
usando una terminal que solo puede mostrar una aplicación a la vez,
tendrá que "suspender" Emacs para poder acceder a otros programas.
tendrá que "suspender" Emacs para poder acceder a otras aplicaciones.
C-z es el comando para salir de Emacs *temporalmente*: para que pueda
regresar a la misma sesión de Emacs después. Cuando Emacs está
@ -677,8 +671,9 @@ int
comando `fg' o con `%emacs'.
El momento para usar C-x C-c es cuando está listo para salir del
sistema. Es además el paso correcto para salir de un Emacs llamado
bajo programas de gestión de correo y otras utilidades diversas.
sistema. Es además el paso correcto para salir de un Emacs invocado
para editar algo rápidamente, como por ejemplo desde un programa de
gestión de correo.
Existen muchos comandos C-x. He aquí la lista de los que ya ha
aprendido:
@ -694,14 +689,14 @@ aprendido:
Los comandos eXtendidos por nombre son comandos que se utilizan aún
con menos frecuencia, o únicamente en ciertos modos. Un ejemplo es el
comando replace-string, el cual substituye globalmente una cadena de
caracteres por otra. Cuando teclea M-x, Emacs le pregunta al final de
la pantalla con M-x y debe escribir el nombre del comando; en este
caso "replace-string". Solo teclee "repl s<TAB>" y Emacs completará
el nombre. (<TAB> es la tecla del tabulador, que habitualmenté está
situada sobre la tecla de bloquear mayúsculas o la de shift, en el
lado izquierdo del teclado.) Para aceptar el comando y ejecutarlo,
pulse <Return>.
comando replace-string, el cual substituye una cadena de caracteres
por otra en todo el buffer. Cuando teclea M-x, Emacs le pregunta al
final de la pantalla con M-x y debe escribir el nombre del comando; en
este caso "replace-string". Solo teclee "repl s<TAB>" y Emacs
completará el nombre. (<TAB> es la tecla del tabulador, que
habitualmenté está situada sobre la tecla de bloquear mayúsculas o la
de shift, en el lado izquierdo del teclado.) Para aceptar el comando
y ejecutarlo, pulse <Return>.
El comando replace-string requiere dos argumentos: la cadena de
caracteres a reemplazar, y la cadena de caracteres para reemplazarla.
@ -711,8 +706,8 @@ Debe terminar cada argumento con <Return>.
A continuación escriba
M-x repl s<Return>cambiado<Return>alterado<Return>.
Note cómo esta línea ha cambiado: ha substituido la palabra
c-a-m-b-i-a-d-o por "alterado" en cada ocurrencia, después de la
Note cómo ha cambiado la línea: ha substituido la palabra
"cambiado" por "alterado" en cada ocurrencia, después de la
posición inicial del cursor.
@ -804,7 +799,9 @@ pero funcionan de forma un poco diferente.
Para ver la documentación del modo mayor actual, teclee C-h m.
>> Use C-l C-l para traer esta línea en la parte superior de la
>> Mueva el cursor a la línea siguiente a la actual.
>> Use C-l C-l para traer esta línea a la parte superior de la
pantalla.
>> Teclee C-h m, para ver como el modo de Texto difiere del modo
@ -1102,9 +1099,9 @@ pregunte por ella.
>> Teclee C-h a file <Return>.
Esto muestra en otra ventana una lista de todos los comandos M-x con
la palabra "file" en sus nombres. Verá comandos de caracteres como
C-x C-f listados además de los nombres de los comandos
correspondientes tales como find-file.
la palabra "file" en sus nombres. Verá los comandos de caracteres
listados junto a los nombres de los comandos correspondientes (por
ejemplo, C-x C-f junto a find-file).
>> Teclee C-M-v para desplazar la ventana de ayuda. Haga esto unas
cuantas veces.

View file

@ -18,10 +18,10 @@ tapez C-g. Dans ce didacticiel, les caract
indiquent les directions à suivre pour essayer une commande. Ainsi :
<<Lignes blanches insérées après cette ligne par help-with-tutorial>>
[Centre de page delibérément vide. Le texte continue ci-dessous.]
>> Tapez C-v (Voir l'écran suivant) pour passer à l'écran suivant
(faites-le, pressez la touche CTRL tout en pressant la touche v).
À partir de maintenant, vous devrez le faire à chaque fois que
vous avez fini de lire l'écran.
>> Tapez C-v (Voir l'écran suivant) pour passer à l'écran suivant
(faites-le, pressez la touche CTRL tout en pressant la touche v).
À partir de maintenant, vous devrez le faire à chaque fois que
vous avez fini de lire l'écran.
Vous remarquerez qu'il y a un recouvrement de deux lignes lorsque l'on
passe d'un écran à un autre : cela permet une certaine continuité dans
@ -33,7 +33,7 @@ C-v. Pour revenir un
META tout en appuyant sur v ou faites <ESC>v si vous n'avez pas de
touche META, EDIT ou ALT).
>> Faites M-v, puis C-v plusieurs fois.
>> Faites M-v, puis C-v plusieurs fois.
* RÉSUMÉ
@ -228,13 +228,13 @@ d'un param
agir différemment.
C-v et M-v constituent un autre type d'exception. Lorsqu'on leur donne
un paramètre, elles font défiler l'écran vers le haut ou vers le bas
un paramètre, elles font défiler le texte vers le haut ou vers le bas
du nombre de lignes indiqué au lieu de passer d'un écran complet à
l'autre. C-u 8 C-v, par exemple, fait défiler l'écran de 8 lignes.
l'autre. C-u 8 C-v, par exemple, fait défiler le texte de 8 lignes.
>> Faites C-u 8 C-v.
Cela a dû déplacer l'écran de 8 lignes vers le haut. Si vous voulez
Cela a dû déplacer le texte de 8 lignes vers le haut. Si vous voulez
redescendre de 8 lignes, il suffit de passer ce nombre comme paramètre
de M-v.
@ -307,11 +307,10 @@ supprime toutes les autres fen
>> Faites C-x 1 et la fenêtre de documentation disparaît.
Cette commande est différente de celles que nous avons déjà vues car
elle est formée de deux caractères. Elle commence par le caractère
CONTROLE-x, comme le font de nombreuses commandes de manipulation de
fenêtres, fichiers, tampons et autres entités associées. Ces commandes
font deux, trois ou quatre caractères.
Il y a toute une série de commandes qui commencent par CONTROL-x;
nombre d'entre elles ont à voir avec la manipulation de fenêtres,
fichiers, tampons et autres entités associées. Ces commandes font
deux, trois ou quatre caractères de long.
* INSERTION ET SUPPRESSION
@ -370,7 +369,7 @@ Rappelez-vous que la plupart des commandes Emacs peuvent utiliser un
nombre de répétitions ; les caractères de texte font de même. La
répétition d'un caractère de texte l'insère plusieurs fois.
>> Faites C-u 8 * pour insérer ********.
>> Faites C-u 8 * pour insérer ********.
Vous connaissez maintenant la méthode la plus simple pour taper du
texte dans Emacs et pour corriger les erreurs. Vous pouvez également
@ -572,11 +571,8 @@ deviennent permanentes, faites :
Cette commande copie dans le fichier le texte qui est dans Emacs. La
première fois, Emacs renomme le fichier original afin qu'il ne soit
pas perdu. Le nom de cette sauvegarde est construit en ajoutant « ~ »
à la fin du nom initial.
Lorsque la sauvegarde est finie, Emacs affiche le nom du fichier
écrit. Sauvegardez à intervalles réguliers afin de perdre le moins
possible de travail au cas où votre système se planterait.
à la fin du nom initial. Lorsque la sauvegarde est finie, Emacs
affiche le nom du fichier écrit.
>> Faites C-x C-s pour sauvegarder votre copie du didacticiel.
Cela devrait écrire "Wrote ...TUTORIAL.fr" en bas de l'écran.
@ -694,7 +690,7 @@ commande sp
Vous pouvez le faire à l'aide de la souris ou avec les commandes du
gestionnaire de fenêtres. Cependant, si vous utilisez un terminal
texte ne pouvant afficher qu'une application à la fois, vous devez
« suspendre » Emacs pour passer à n'importe quel autre programme.
« suspendre » Emacs pour passer à n'importe quelle autre application.
C-z est la commande permettant de quitter *temporairement* Emacs --
afin de pouvoir revenir à la même session plus tard. Sur les systèmes
@ -704,7 +700,8 @@ vous pouvez revenir
Le moment idéal pour utiliser C-x C-c est lorsque l'on se
déconnecte. C'est aussi la commande adaptée pour sortir d'un Emacs
invoqué par un programme de courrier ou tout autre utilitaire.
invoqué pour une modification rapide, par exemple par un programme de
courrier ou tout autre utilitaire.
Il existe de nombreuses commandes C-x. Voici une liste de celles que
vous avez apprises :
@ -719,7 +716,7 @@ vous avez apprises :
Les eXtensions de commandes nommées sont des commandes utilisées
encore moins souvent, ou des commandes qui ne servent que dans
certains modes. Un exemple est la commande replace-string, qui
remplace globalement une chaîne par une autre. Lorsque vous faites
remplace une chaîne par une autre dans un tampon. Lorsque vous faites
M-x, Emacs affiche M-x en bas de l'écran et vous demande de taper le
nom de la commande, « replace-string » ici. Contentez-vous de faire
«repl s<TAB> » et Emacs complétera le nom (<TAB> représente la touche
@ -735,7 +732,7 @@ param
Puis, faites M-x repl s<Entrée>changée<Entrée>modifiée<Entrée>.
Notez comment cette ligne a été changée : vous avez remplacé le mot
c-h-a-n-g-é-e par « modifiée » à chaque fois qu'il apparaissait après
« changée » par « modifiée » à chaque fois qu'il apparaissait après
la position initiale du curseur.
@ -949,7 +946,7 @@ manuel d'Emacs contient un Glossaire des termes d'Emacs.)
fenêtres. Toutes les deux affichent ce didacticiel et le curseur
reste dans celle du haut.
>> Faites C-M-v pour faire défiler la fenêtre du bas
>> Faites C-M-v pour faire défiler le texte de la fenêtre du bas
(Si vous n'avez pas de touche Meta, faites <ESC> C-v).
>> Tapez C-x o (« o » pour « other ») afin de placer le curseur dans
@ -1123,9 +1120,9 @@ Voici d'autres options utiles de C-h :
>> Faites C-h a file<Entrée>.
Cela affiche dans une autre fenêtre une liste de toutes les commandes
M-x ayant « file » dans leurs noms. Vous verrez des commandes
caractères, comme C-x C-f, apparaître à côté des noms de commandes qui
leur correspondent, comme find-file.
M-x ayant « file » dans leurs noms. Vous verrez listée des commandes
caractères à côté des noms de commandes qui leur correspondent (comme
C-x C-f à côté de find-file).
>> Faites C-M-v pour faire défiler la fenêtre d'aide. Faites-le
plusieurs fois.

View file

@ -1,4 +1,4 @@
שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
פקודות רבות של Emacs משתמשות במקש CONTROL (לפעמים הוא מסומן ב־CTRL או CTL)
או במקש META (לפעמים מסומן EDIT או ALT). במקום לציין את כל השמות האפשריים

View file

@ -1,3 +1,9 @@
2012-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
* quail/ipa.el: Use cl-lib.
* quail/hangul.el: Don't require CL.
2012-06-12 Nguyen Thai Ngoc Duy <pclouds@gmail.com>
* quail/vnvi.el: New file (Bug#4747).

Binary file not shown.

View file

@ -47,7 +47,7 @@
;; the Free Software Foundation Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;
;; ACKNOWLEDGEMENT
;; ACKNOWLEDGMENT
;;
;; この辞書は、SKK 原作者の佐藤雅彦先生が、第 1 版作成のために東北大学
;; 電気通信研究所佐藤研究室 (当時) の学生さん達とともに scratch から作

View file

@ -30,7 +30,6 @@
;;; Code:
(require 'quail)
(eval-when-compile (require 'cl)) ; for setf
(require 'hanja-util)
;; Hangul double Jamo table.

View file

@ -29,7 +29,7 @@
;;; Code:
(require 'quail)
(eval-when-compile (require 'cl))
(eval-when-compile (require 'cl-lib))
(quail-define-package
"ipa" "IPA" "IPA" t
@ -277,13 +277,13 @@ string."
(setq quail-keymap (list (string quail-keymap)))
(if (stringp quail-keymap)
(setq quail-keymap (list quail-keymap))
(assert (vectorp quail-keymap) t)
(cl-assert (vectorp quail-keymap) t)
(setq quail-keymap (append quail-keymap nil))))
(list
(apply 'vector
(mapcar
#'(lambda (entry)
(assert (char-or-string-p entry) t)
(cl-assert (char-or-string-p entry) t)
(format "%s%s" to-prepend
(if (integerp entry) (string entry) entry)))
quail-keymap))))
@ -318,18 +318,18 @@ particular sequence of keys, and the result will be cached by Quail."
(dolist (underscoring underscore-map)
(cond ((null underscoring))
((eq (length underscoring) 2)
(setq underscore-map-entry (second underscoring))
(setq underscore-map-entry (cl-second underscoring))
(setcdr underscoring (ipa-x-sampa-prepend-to-keymap-entry
pre-underscore-map underscore-map-entry)))
((eq (length underscoring) 3)
(setq underscore-map-entry (second (third underscoring)))
(setcdr (third underscoring)
(setq underscore-map-entry (cl-second (cl-third underscoring)))
(setcdr (cl-third underscoring)
(ipa-x-sampa-prepend-to-keymap-entry
pre-underscore-map underscore-map-entry)))
(t
(assert (null t) t
"Can't handle subtrees of this level right now."))))
(append underscore-map (list (list ?< (second x-sampa-submap-entry))))))
(cl-assert (null t) t
"Can't handle subtrees of this level right now."))))
(append underscore-map (list (list ?< (cl-second x-sampa-submap-entry))))))
(quail-define-package
"ipa-x-sampa" "IPA" "IPA-X" t

View file

@ -1,3 +1,159 @@
2012-07-12 Paul Eggert <eggert@cs.ucla.edu>
* movemail.c: Add missing 'defined'.
Suggested by Sven Joachim in
<http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00218.html>.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
Port 'movemail' again to Solaris and similar hosts.
See Susan Cragin's report in
<http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00199.html>.
* movemail.c (xmalloc): Also define if !DISABLE_DIRECT_ACCESS &&
!MAIL_USE_MMDF && !MAIL_USE_SYSTEM_LOCK. Move up, so it doesn't
need a forward declaration.
(main): Rewrite to avoid no-longer-present function 'concat', if
!DISABLE_DIRECT_ACCESS && !MAIL_USE_MMDF && !MAIL_USE_SYSTEM_LOCK.
Assume strerror.
* emacsclient.c, movemail.c, update-game-score.c (strerror)
[!HAVE_STRERROR]: Remove.
2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
EMACS_TIME simplification (Bug#11875).
* profile.c (TV2): Remove no-longer-needed static var.
Simplify by avoiding confusing use of strncpy etc.
* etags.c (write_classname, C_entries):
Use sprintf rather than strncpy or strncat.
* etags.c (consider_token, C_entries, HTML_labels, Prolog_functions)
(Erlang_functions, substitute, readline_internal, savenstr):
* movemail.c (mail_spool_name):
Use memcpy rather than strncpy or strncat when either will do.
* make-docfile.c (write_c_args):
Use memcmp rather than strncmp when either will do.
* movemail.c (pop_retr):
* pop.c (pop_stat, pop_list, pop_multi_first, pop_last)
(socket_connection, pop_getline, sendline, getok):
Use snprintf rather than strncpy or strncat.
* movemail.c (concat): Remove; no longer needed.
(xmalloc): Define only if needed, now that concat has gone away.
Return void *. All uses changed.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
Add GCC-style 'const' attribute to functions that can use it.
* etags.c (number_len): Add ATTRIBUTE_CONST.
2012-07-09 Juanma Barranquero <lekktu@gmail.com>
* emacsclient.c (w32_execvp): Declare execvp to silence the compiler.
2012-07-09 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in ($(BLD)/test-distrib.exe): Use LIB_SRC, not SRC.
(LIB_SRC, NT_INC, GNU_LIB, MS_W32_H, CONFIG_H, INTTYPES_H, NTLIB_H)
(SYSTIME_H): New macros.
(SRC): Redefine to point to src/, not current directory.
($(BLD)/ctags.$(O), $(BLD)/ebrowse.$(O), $(BLD)/emacsclient.$(O))
($(BLD)/etags.$(O), $(BLD)/hexl.$(O), $(BLD)/make-docfile.$(O))
($(BLD)/movemail.$(O), $(BLD)/ntlib.$(O), $(BLD)/pop.$(O))
($(BLD)/profile.$(O), $(BLD)/test-distrib.$(O)): Update dependencies.
($(BLD)/regex.$(O)): New dependency.
2012-07-09 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in (ALL): Add profile.exe.
(PROFILEOBJS): New macro.
($(BLD)/profile.exe): New target.
(install): Copy profile.exe.
($(BLD)/alloca.$(O), $(BLD)/tcp.$(O)): Remove, obsolete.
2012-07-07 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in ($(BLD)/ctags.$(O), $(BLD)/etags.$(O)):
Update dependencies.
2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
* etags.c: Include c-strcase.h.
(etags_strcasecmp, etags_strncasecmp): Remove.
All uses replaced with c_strcasecmp and c_strncasecmp.
2012-07-06 Andreas Schwab <schwab@linux-m68k.org>
* make-docfile.c (write_globals): Warn about duplicate function
definitions with differing signatures.
2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
* make-docfile.c (scan_c_file): Suppress GCC warning.
2012-06-29 Tom Tromey <tromey@redhat.com>
* make-docfile.c (enum global_type) <FUNCTION>: New constant.
(struct global) <value>: New field.
(add_global): Add 'value' argument.
(compare_globals): Sort functions at the end.
(close_emacs_globals): New function.
(write_globals): Handle functions.
(scan_c_file): Call add_global for DEFUN.
2012-06-30 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in (CTAGS_CFLAGS): Remove EMACS_NAME;
already defined in ETAGS_CFLAGS.
2012-06-27 Glenn Morris <rgm@gnu.org>
* makefile.w32-in (lisp2): Remove paths.el.
2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
Clean out last vestiges of the old HAVE_CONFIG_H stuff.
* Makefile.in (BASE_CFLAGS):
* makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
* etags.c, hexl.c, pop.c: Include <config.h> unconditionally.
* etags.c (DOS_NT):
* pop.c (MAIL_USE_POP, h_errno):
Remove code that was conditioned on !HAVE_CONFIG_H.
2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
* etags.c (etags_strcasecmp, etags_strncasecmp): Define to
library functions strcasecmp and strncasecmp if available.
2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
* ebrowse.c (usage, version):
* emacsclient.c (print_help_and_exit, fail):
* etags.c (suggest_asking_for_help, fatal, pfatal):
* hexl.c (usage):
* make-docfile.c (fatal):
* movemail.c (fatal, pfatal_with_name, pfatal_and_delete):
* update-game-score.c (usage):
* ebrowse.c (usage, version):
* emacsclient.c (print_help_and_exit, fail):
Use _Noreturn rather than NO_RETURN.
No need for separate decl merely because of _Noreturn.
2012-06-24 Samuel Bronson <naesten@gmail.com> (tiny change)
* emacsclient.c (set_local_socket): Fix compiler warning (Bug#7838).
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
Support higher-resolution time stamps (Bug#9000).
* Makefile.in (LIB_CLOCK_GETTIME): New macro.
(profile${EXEEXT}): Use it.
* profile.c: Include inttypes.h, intprops.h.
(time_string): Size conservatively; do not guess size.
(get_time): Now prints nanoseconds.
(gettimeofday): Remove replacement function; gnulib now does this.
2012-06-08 Andreas Schwab <schwab@linux-m68k.org>
* make-docfile.c (search_lisp_doc_at_eol): Unget last read

View file

@ -159,6 +159,8 @@ LIBHESIOD=@LIBHESIOD@
LIBRESOLV=@LIBRESOLV@
## -llockfile if HAVE_LIBLOCKFILE or -lmail if HAVE_LIBMAIL
LIBS_MAIL=@LIBS_MAIL@
## empty or -lrt or -lposix4 if HAVE_CLOCK_GETTIME
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
## Extra libraries to use when linking movemail.
LIBS_MOVE = $(LIBS_MAIL) $(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) \
@ -167,12 +169,9 @@ LIBS_MOVE = $(LIBS_MAIL) $(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) \
## Some systems define this to request special libraries.
LIBS_SYSTEM = @LIBS_SYSTEM@
# Those files shared with other GNU utilities need HAVE_CONFIG_H
# defined before they know they can take advantage of the information
# in ../src/config.h.
BASE_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \
$(WARN_CFLAGS) $(WERROR_CFLAGS) \
-DHAVE_CONFIG_H -I. -I../src -I../lib \
-I. -I../src -I../lib \
-I${srcdir} -I${srcdir}/../src -I${srcdir}/../lib
ALL_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
@ -309,7 +308,8 @@ ctags${EXEEXT}: etags${EXEEXT}
regex.o $(LOADLIBES) -o ctags
profile${EXEEXT}: ${srcdir}/profile.c ../src/config.h
$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile
$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c \
$(LOADLIBES) $(LIB_CLOCK_GETTIME) -o profile
make-docfile${EXEEXT}: ${srcdir}/make-docfile.c ../src/config.h
$(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) \

View file

@ -463,10 +463,6 @@ static struct member *add_member (struct sym *, char *, int, int, unsigned);
static void class_definition (struct sym *, int, int, int);
static char *operator_name (int *);
static void parse_qualified_param_ident_or_type (char **);
static void usage (int) NO_RETURN;
static void version (void) NO_RETURN;
/***********************************************************************
Utilities
@ -3507,7 +3503,7 @@ Usage: ebrowse [options] {files}\n\
--version display version info\n\
"
static void
static _Noreturn void
usage (int error)
{
puts (USAGE);
@ -3522,7 +3518,7 @@ usage (int error)
# define VERSION "21"
#endif
static void
static _Noreturn void
version (void)
{
/* Makes it easier to update automatically. */

View file

@ -21,7 +21,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifdef WINDOWSNT
/* config.h defines these, which disables sockets altogether! */
/* ms-w32.h defines these, which disables sockets altogether! */
# undef _WINSOCKAPI_
# undef _WINSOCK_H
@ -169,8 +169,7 @@ int emacs_pid = 0;
be used for the new frame */
const char *frame_parameters = NULL;
static void print_help_and_exit (void) NO_RETURN;
static void fail (void) NO_RETURN;
static _Noreturn void print_help_and_exit (void);
struct option longopts[] =
@ -452,19 +451,19 @@ w32_window_app (void)
return window_app;
}
/*
execvp wrapper for Windows. Quotes arguments with embedded spaces.
/* execvp wrapper for Windows. Quotes arguments with embedded spaces.
This is necessary due to the broken implementation of exec* routines in
the Microsoft libraries: they concatenate the arguments together without
quoting special characters, and pass the result to CreateProcess, with
predictably bad results. By contrast, POSIX execvp passes the arguments
directly into the argv array of the child process.
*/
directly into the argv array of the child process. */
int
w32_execvp (const char *path, char **argv)
{
int i;
extern int execvp (const char*, char **);
/* Required to allow a .BAT script as alternate editor. */
argv[0] = (char *) alternate_editor;
@ -670,7 +669,7 @@ an empty string");
}
static void
static _Noreturn void
print_help_and_exit (void)
{
/* Spaces and tabs are significant in this message; they're chosen so the
@ -713,12 +712,11 @@ Report bugs with M-x report-emacs-bug.\n", progname);
exit (EXIT_SUCCESS);
}
/*
Try to run a different command, or --if no alternate editor is
defined-- exit with an errorcode.
Uses argv, but gets it from the global variable main_argv.
*/
static void
/* Try to run a different command, or --if no alternate editor is
defined-- exit with an errorcode.
Uses argv, but gets it from the global variable main_argv. */
static _Noreturn void
fail (void)
{
if (alternate_editor)
@ -751,16 +749,15 @@ main (int argc, char **argv)
#define AUTH_KEY_LENGTH 64
#define SEND_BUFFER_SIZE 4096
extern char *strerror (int);
/* Buffer to accumulate data to send in TCP connections. */
char send_buffer[SEND_BUFFER_SIZE + 1];
int sblen = 0; /* Fill pointer for the send buffer. */
/* Socket used to communicate with the Emacs server process. */
HSOCKET emacs_socket = 0;
/* On Windows, the socket library was historically separate from the standard
C library, so errors are handled differently. */
/* On Windows, the socket library was historically separate from the
standard C library, so errors are handled differently. */
static void
sock_err_message (const char *function_name)
{
@ -865,7 +862,7 @@ quote_argument (HSOCKET s, const char *str)
/* The inverse of quote_argument. Removes quoting in string STR by
modifying the string in place. Returns STR. */
modifying the string in place. Returns STR. */
static char *
unquote_argument (char *str)
@ -948,10 +945,9 @@ initialize_sockets (void)
#endif /* WINDOWSNT */
/*
* Read the information needed to set up a TCP comm channel with
* the Emacs server: host, port, and authentication string.
*/
/* Read the information needed to set up a TCP comm channel with
the Emacs server: host, port, and authentication string. */
static int
get_server_config (const char *config_file, struct sockaddr_in *server,
char *authentication)
@ -1032,18 +1028,14 @@ set_tcp_socket (const char *local_server_file)
message (FALSE, "%s: connected to remote socket at %s\n",
progname, inet_ntoa (server.sin_addr));
/*
* Open up an AF_INET socket
*/
/* Open up an AF_INET socket. */
if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
sock_err_message ("socket");
return INVALID_SOCKET;
}
/*
* Set up the socket
*/
/* Set up the socket. */
if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
{
sock_err_message ("connect");
@ -1052,9 +1044,7 @@ set_tcp_socket (const char *local_server_file)
setsockopt (s, SOL_SOCKET, SO_LINGER, (char *) &l_arg, sizeof l_arg);
/*
* Send the authentication
*/
/* Send the authentication. */
auth_string[AUTH_KEY_LENGTH] = '\0';
send_to_emacs (s, "-auth ");
@ -1188,7 +1178,7 @@ handle_sigcont (int signalnum)
going to sleep. Normally the suspend is initiated by Emacs via
server-handle-suspend-tty, but if the server gets out of sync with
reality, we may get a SIGTSTP on C-z. Handling this signal and
notifying Emacs about it should get things under control again. */
notifying Emacs about it should get things under control again. */
static void
handle_sigtstp (int signalnum)
@ -1240,10 +1230,7 @@ set_local_socket (const char *local_socket_name)
HSOCKET s;
struct sockaddr_un server;
/*
* Open up an AF_UNIX socket in this person's home directory
*/
/* Open up an AF_UNIX socket in this person's home directory. */
if ((s = socket (AF_UNIX, SOCK_STREAM, 0)) < 0)
{
message (TRUE, "%s: socket: %s\n", progname, strerror (errno));
@ -1278,7 +1265,7 @@ set_local_socket (const char *local_socket_name)
if (n > 0)
{
tmpdir = tmpdir_storage = xmalloc (n);
confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir, n);
confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir_storage, n);
}
else
#endif
@ -1477,10 +1464,9 @@ w32_find_emacs_process (HWND hWnd, LPARAM lParam)
return FALSE;
}
/*
* Search for a window of class "Emacs" and owned by a process with
* process id = emacs_pid. If found, allow it to grab the focus.
*/
/* Search for a window of class "Emacs" and owned by a process with
process id = emacs_pid. If found, allow it to grab the focus. */
void
w32_give_focus (void)
{
@ -1862,22 +1848,3 @@ main (int argc, char **argv)
}
#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
#ifndef HAVE_STRERROR
char *
strerror (errnum)
int errnum;
{
extern char *sys_errlist[];
extern int sys_nerr;
if (errnum >= 0 && errnum < sys_nerr)
return sys_errlist[errnum];
return (char *) "Unknown error";
}
#endif /* ! HAVE_STRERROR */
/* emacsclient.c ends here */

View file

@ -91,9 +91,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
# define NDEBUG /* disable assert */
#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif /* !HAVE_CONFIG_H */
#include <config.h>
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1 /* enables some compiler checks on GNU */
@ -113,10 +111,6 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
# include <fcntl.h>
# include <sys/param.h>
# include <io.h>
# ifndef HAVE_CONFIG_H
# define DOS_NT
# include <sys/config.h>
# endif
#else
# define MSDOS FALSE
#endif /* MSDOS */
@ -150,6 +144,7 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <c-strcase.h>
#include <assert.h>
#ifdef NDEBUG
@ -167,14 +162,6 @@ char pot_etags_version[] = "@(#) pot revision number is 17.38.1.4";
# include <getopt.h>
#endif /* NO_LONG_OPTIONS */
#ifndef HAVE_CONFIG_H /* this is a standalone compilation */
# ifdef __CYGWIN__ /* compiling on Cygwin */
!!! NOTICE !!!
the regex.h distributed with Cygwin is not compatible with etags, alas!
If you want regular expression support, you should delete this notice and
arrange to use the GNU regex.h and regex.c.
# endif
#endif
#include <regex.h>
/* Define CTAGS to make the program "ctags" compatible with the usual one.
@ -188,9 +175,9 @@ If you want regular expression support, you should delete this notice and
#endif
#define streq(s,t) (assert ((s)!=NULL || (t)!=NULL), !strcmp (s, t))
#define strcaseeq(s,t) (assert ((s)!=NULL && (t)!=NULL), !etags_strcasecmp (s, t))
#define strcaseeq(s,t) (assert ((s)!=NULL && (t)!=NULL), !c_strcasecmp (s, t))
#define strneq(s,t,n) (assert ((s)!=NULL || (t)!=NULL), !strncmp (s, t, n))
#define strncaseeq(s,t,n) (assert ((s)!=NULL && (t)!=NULL), !etags_strncasecmp (s, t, n))
#define strncaseeq(s,t,n) (assert ((s)!=NULL && (t)!=NULL), !c_strncasecmp (s, t, n))
#define CHARS 256 /* 2^sizeof(char) */
#define CHAR(x) ((unsigned int)(x) & (CHARS - 1))
@ -366,9 +353,9 @@ static void analyse_regex (char *);
static void free_regexps (void);
static void regex_tag_multiline (void);
static void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
static void suggest_asking_for_help (void) NO_RETURN;
void fatal (const char *, const char *) NO_RETURN;
static void pfatal (const char *) NO_RETURN;
static _Noreturn void suggest_asking_for_help (void);
_Noreturn void fatal (const char *, const char *);
static _Noreturn void pfatal (const char *);
static void add_node (node *, node **);
static void init (void);
@ -389,8 +376,6 @@ static char *savenstr (const char *, int);
static char *savestr (const char *);
static char *etags_strchr (const char *, int);
static char *etags_strrchr (const char *, int);
static int etags_strcasecmp (const char *, const char *);
static int etags_strncasecmp (const char *, const char *, int);
static char *etags_getcwd (void);
static char *relative_filename (char *, char *);
static char *absolute_filename (char *, char *);
@ -2138,7 +2123,7 @@ invalidate_nodes (fdesc *badfdp, node **npp)
static int total_size_of_entries (node *);
static int number_len (long);
static int number_len (long) ATTRIBUTE_CONST;
/* Length of a non-negative number's decimal representation. */
static int
@ -2657,17 +2642,11 @@ write_classname (linebuffer *cn, const char *qualifier)
}
for (i = 1; i < cstack.nl; i++)
{
char *s;
int slen;
s = cstack.cname[i];
char *s = cstack.cname[i];
if (s == NULL)
continue;
slen = strlen (s);
len += slen + qlen;
linebuffer_setlen (cn, len);
strncat (cn->buffer, qualifier, qlen);
strncat (cn->buffer, s, slen);
linebuffer_setlen (cn, len + qlen + strlen (s));
len += sprintf (cn->buffer + len, "%s%s", qualifier, s);
}
}
@ -2882,7 +2861,7 @@ consider_token (register char *str, register int len, register int c, int *c_ext
fvdef = fvnone;
objdef = omethodtag;
linebuffer_setlen (&token_name, len);
strncpy (token_name.buffer, str, len);
memcpy (token_name.buffer, str, len);
token_name.buffer[len] = '\0';
return TRUE;
}
@ -2894,10 +2873,11 @@ consider_token (register char *str, register int len, register int c, int *c_ext
case omethodparm:
if (parlev == 0)
{
int oldlen = token_name.len;
fvdef = fvnone;
objdef = omethodtag;
linebuffer_setlen (&token_name, token_name.len + len);
strncat (token_name.buffer, str, len);
linebuffer_setlen (&token_name, oldlen + len);
memcpy (token_name.buffer + oldlen, str, len);
return TRUE;
}
return FALSE;
@ -3326,12 +3306,12 @@ C_entries (int c_ext, FILE *inf)
&& nestlev > 0 && definedef == dnone)
/* in struct body */
{
int len;
write_classname (&token_name, qualifier);
linebuffer_setlen (&token_name,
token_name.len+qlen+toklen);
strcat (token_name.buffer, qualifier);
strncat (token_name.buffer,
newlb.buffer + tokoff, toklen);
len = token_name.len;
linebuffer_setlen (&token_name, len+qlen+toklen);
sprintf (token_name.buffer + len, "%s%.*s",
qualifier, toklen, newlb.buffer + tokoff);
token.named = TRUE;
}
else if (objdef == ocatseen)
@ -3339,11 +3319,8 @@ C_entries (int c_ext, FILE *inf)
{
int len = strlen (objtag) + 2 + toklen;
linebuffer_setlen (&token_name, len);
strcpy (token_name.buffer, objtag);
strcat (token_name.buffer, "(");
strncat (token_name.buffer,
newlb.buffer + tokoff, toklen);
strcat (token_name.buffer, ")");
sprintf (token_name.buffer, "%s(%.*s)",
objtag, toklen, newlb.buffer + tokoff);
token.named = TRUE;
}
else if (objdef == omethodtag
@ -3367,8 +3344,8 @@ C_entries (int c_ext, FILE *inf)
len -= 1;
}
linebuffer_setlen (&token_name, len);
strncpy (token_name.buffer,
newlb.buffer + off, len);
memcpy (token_name.buffer,
newlb.buffer + off, len);
token_name.buffer[len] = '\0';
if (defun)
while (--len >= 0)
@ -3379,8 +3356,8 @@ C_entries (int c_ext, FILE *inf)
else
{
linebuffer_setlen (&token_name, toklen);
strncpy (token_name.buffer,
newlb.buffer + tokoff, toklen);
memcpy (token_name.buffer,
newlb.buffer + tokoff, toklen);
token_name.buffer[toklen] = '\0';
/* Name macros and members. */
token.named = (structdef == stagseen
@ -5176,7 +5153,7 @@ HTML_labels (FILE *inf)
for (end = dbp; *end != '\0' && intoken (*end); end++)
continue;
linebuffer_setlen (&token_name, end - dbp);
strncpy (token_name.buffer, dbp, end - dbp);
memcpy (token_name.buffer, dbp, end - dbp);
token_name.buffer[end - dbp] = '\0';
dbp = end;
@ -5276,7 +5253,7 @@ Prolog_functions (FILE *inf)
else if (len + 1 > allocated)
xrnew (last, len + 1, char);
allocated = len + 1;
strncpy (last, cp, len);
memcpy (last, cp, len);
last[len] = '\0';
}
}
@ -5449,7 +5426,7 @@ Erlang_functions (FILE *inf)
else if (len + 1 > allocated)
xrnew (last, len + 1, char);
allocated = len + 1;
strncpy (last, cp, len);
memcpy (last, cp, len);
last[len] = '\0';
}
}
@ -5832,7 +5809,7 @@ substitute (char *in, char *out, struct re_registers *regs)
{
dig = *out - '0';
diglen = regs->end[dig] - regs->start[dig];
strncpy (t, in + regs->start[dig], diglen);
memcpy (t, in + regs->start[dig], diglen);
t += diglen;
}
else
@ -6055,7 +6032,7 @@ readline_internal (linebuffer *lbp, register FILE *stream)
filebuf.size *= 2;
xrnew (filebuf.buffer, filebuf.size, char);
}
strncpy (filebuf.buffer + filebuf.len, lbp->buffer, lbp->len);
memcpy (filebuf.buffer + filebuf.len, lbp->buffer, lbp->len);
filebuf.len += lbp->len;
filebuf.buffer[filebuf.len++] = '\n';
filebuf.buffer[filebuf.len] = '\0';
@ -6278,7 +6255,7 @@ savenstr (const char *cp, int len)
register char *dp;
dp = xnew (len + 1, char);
strncpy (dp, cp, len);
memcpy (dp, cp, len);
dp[len] = '\0';
return dp;
}
@ -6320,48 +6297,6 @@ etags_strchr (register const char *sp, register int c)
return NULL;
}
/*
* Compare two strings, ignoring case for alphabetic characters.
*
* Same as BSD's strcasecmp, included for portability.
*/
static int
etags_strcasecmp (register const char *s1, register const char *s2)
{
while (*s1 != '\0'
&& (ISALPHA (*s1) && ISALPHA (*s2)
? lowcase (*s1) == lowcase (*s2)
: *s1 == *s2))
s1++, s2++;
return (ISALPHA (*s1) && ISALPHA (*s2)
? lowcase (*s1) - lowcase (*s2)
: *s1 - *s2);
}
/*
* Compare two strings, ignoring case for alphabetic characters.
* Stop after a given number of characters
*
* Same as BSD's strncasecmp, included for portability.
*/
static int
etags_strncasecmp (register const char *s1, register const char *s2, register int n)
{
while (*s1 != '\0' && n-- > 0
&& (ISALPHA (*s1) && ISALPHA (*s2)
? lowcase (*s1) == lowcase (*s2)
: *s1 == *s2))
s1++, s2++;
if (n < 0)
return 0;
else
return (ISALPHA (*s1) && ISALPHA (*s2)
? lowcase (*s1) - lowcase (*s2)
: *s1 - *s2);
}
/* Skip spaces (end of string is not space), return new pointer. */
static char *
skip_spaces (char *cp)

View file

@ -20,9 +20,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <ctype.h>
@ -48,7 +46,7 @@ int base = DEFAULT_BASE, un_flag = FALSE, iso_flag = FALSE, endian = 1;
int group_by = DEFAULT_GROUPING;
char *progname;
void usage (void) NO_RETURN;
_Noreturn void usage (void);
int
main (int argc, char **argv)

View file

@ -76,7 +76,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
static int scan_file (char *filename);
static int scan_lisp_file (const char *filename, const char *mode);
static int scan_c_file (char *filename, const char *mode);
static void fatal (const char *s1, const char *s2) NO_RETURN;
static void start_globals (void);
static void write_globals (void);
@ -111,7 +110,7 @@ error (const char *s1, const char *s2)
/* Print error message and exit. */
/* VARARGS1 */
static void
static _Noreturn void
fatal (const char *s1, const char *s2)
{
error (s1, s2);
@ -542,7 +541,7 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
/* In C code, `default' is a reserved word, so we spell it
`defalt'; demangle that here. */
if (ident_length == 6 && strncmp (ident_start, "defalt", 6) == 0)
if (ident_length == 6 && memcmp (ident_start, "defalt", 6) == 0)
fprintf (out, "DEFAULT");
else
while (ident_length-- > 0)
@ -565,6 +564,7 @@ write_c_args (FILE *out, char *func, char *buf, int minargs, int maxargs)
/* The types of globals. */
enum global_type
{
FUNCTION,
EMACS_INTEGER,
BOOLEAN,
LISP_OBJECT,
@ -576,6 +576,7 @@ struct global
{
enum global_type type;
char *name;
int value;
};
/* All the variable names we saw while scanning C sources in `-g'
@ -585,7 +586,7 @@ int num_globals_allocated;
struct global *globals;
static void
add_global (enum global_type type, char *name)
add_global (enum global_type type, char *name, int value)
{
/* Ignore the one non-symbol that can occur. */
if (strcmp (name, "..."))
@ -606,6 +607,7 @@ add_global (enum global_type type, char *name)
globals[num_globals - 1].type = type;
globals[num_globals - 1].name = name;
globals[num_globals - 1].value = value;
}
}
@ -614,13 +616,29 @@ compare_globals (const void *a, const void *b)
{
const struct global *ga = a;
const struct global *gb = b;
if (ga->type == FUNCTION)
{
if (gb->type != FUNCTION)
return 1;
}
else if (gb->type == FUNCTION)
return -1;
return strcmp (ga->name, gb->name);
}
static void
close_emacs_globals (void)
{
fprintf (outfile, "};\n");
fprintf (outfile, "extern struct emacs_globals globals;\n");
}
static void
write_globals (void)
{
int i;
int i, seen_defun = 0;
qsort (globals, num_globals, sizeof (struct global), compare_globals);
for (i = 0; i < num_globals; ++i)
{
@ -637,20 +655,55 @@ write_globals (void)
case LISP_OBJECT:
type = "Lisp_Object";
break;
case FUNCTION:
if (!seen_defun)
{
close_emacs_globals ();
fprintf (outfile, "\n");
seen_defun = 1;
}
break;
default:
fatal ("not a recognized DEFVAR_", 0);
}
fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
fprintf (outfile, "#define %s globals.f_%s\n",
globals[i].name, globals[i].name);
if (globals[i].type != FUNCTION)
{
fprintf (outfile, " %s f_%s;\n", type, globals[i].name);
fprintf (outfile, "#define %s globals.f_%s\n",
globals[i].name, globals[i].name);
}
else
{
/* It would be nice to have a cleaner way to deal with these
special hacks. */
if (strcmp (globals[i].name, "Fthrow") == 0
|| strcmp (globals[i].name, "Ftop_level") == 0
|| strcmp (globals[i].name, "Fkill_emacs") == 0)
fprintf (outfile, "_Noreturn ");
fprintf (outfile, "EXFUN (%s, ", globals[i].name);
if (globals[i].value == -1)
fprintf (outfile, "MANY");
else if (globals[i].value == -2)
fprintf (outfile, "UNEVALLED");
else
fprintf (outfile, "%d", globals[i].value);
fprintf (outfile, ");\n");
}
while (i + 1 < num_globals
&& !strcmp (globals[i].name, globals[i + 1].name))
++i;
{
if (globals[i].type == FUNCTION
&& globals[i].value != globals[i + 1].value)
error ("function '%s' defined twice with differing signatures",
globals[i].name);
++i;
}
}
fprintf (outfile, "};\n");
fprintf (outfile, "extern struct emacs_globals globals;\n");
if (!seen_defun)
close_emacs_globals ();
}
@ -700,6 +753,7 @@ scan_c_file (char *filename, const char *mode)
int defvarperbufferflag = 0;
int defvarflag = 0;
enum global_type type = INVALID;
char *name IF_LINT (= 0);
if (c != '\n' && c != '\r')
{
@ -765,8 +819,9 @@ scan_c_file (char *filename, const char *mode)
}
else continue;
if (generate_globals && (!defvarflag || defvarperbufferflag
|| type == INVALID))
if (generate_globals
&& (!defvarflag || defvarperbufferflag || type == INVALID)
&& !defunflag)
continue;
while (c != '(')
@ -785,7 +840,6 @@ scan_c_file (char *filename, const char *mode)
if (generate_globals)
{
int i = 0;
char *name;
/* Skip "," and whitespace. */
do
@ -806,8 +860,12 @@ scan_c_file (char *filename, const char *mode)
name = xmalloc (i + 1);
memcpy (name, input_buffer, i + 1);
add_global (type, name);
continue;
if (!defunflag)
{
add_global (type, name, 0);
continue;
}
}
/* DEFVAR_LISP ("name", addr, "doc")
@ -815,7 +873,7 @@ scan_c_file (char *filename, const char *mode)
DEFVAR_LISP ("name", addr, doc: /\* doc *\/) */
if (defunflag)
commas = 5;
commas = generate_globals ? 4 : 5;
else if (defvarperbufferflag)
commas = 3;
else if (defvarflag)
@ -842,7 +900,12 @@ scan_c_file (char *filename, const char *mode)
scanned = fscanf (infile, "%d", &minargs);
else /* Pick up maxargs. */
if (c == 'M' || c == 'U') /* MANY || UNEVALLED */
maxargs = -1;
{
if (generate_globals)
maxargs = (c == 'M') ? -1 : -2;
else
maxargs = -1;
}
else
scanned = fscanf (infile, "%d", &maxargs);
if (scanned < 0)
@ -855,6 +918,12 @@ scan_c_file (char *filename, const char *mode)
c = getc (infile);
}
if (generate_globals)
{
add_global (FUNCTION, name, maxargs);
continue;
}
while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
c = getc (infile);

View file

@ -19,12 +19,12 @@
ALL = $(BLD)/test-distrib.exe $(BLD)/make-docfile.exe $(BLD)/hexl.exe\
$(BLD)/ctags.exe $(BLD)/etags.exe $(BLD)/movemail.exe $(BLD)/ebrowse.exe\
$(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
$(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe $(BLD)/profile.exe
.PHONY: make-docfile
LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \
-DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \
-DNO_ARCHIVES=1 -I../lib \
-I../nt/inc -I../src $(EMACS_EXTRA_C_FLAGS)
LIBS = $(BASE_LIBS) $(ADVAPI32)
@ -38,7 +38,7 @@ $(BLD)/hexl.exe: $(BLD)/hexl.$(O)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS)
$(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS)
"$(BLD)/test-distrib.exe" "$(SRC)/testfile"
"$(BLD)/test-distrib.exe" "$(LIB_SRC)/testfile"
MOVEMAILOBJS = $(BLD)/movemail.$(O) \
$(BLD)/pop.$(O) \
@ -106,10 +106,16 @@ ctags.c: etags.c
- $(DEL) ctags.c
$(CP) etags.c ctags.c
CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS) -DEMACS_NAME="\"GNU Emacs\""
CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS)
$(BLD)/ctags.$(O): ctags.c
$(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c
PROFILEOBJS = $(BLD)/profile.$(O) \
../lib/$(BLD)/libgnu.$(A) \
$(BLD)/ntlib.$(O)
$(BLD)/profile.exe: $(PROFILEOBJS)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(PROFILEOBJS) $(LIBS)
#
# From ..\src\Makefile.in
# It doesn't matter if the real name is *.obj for the files in this list,
@ -236,7 +242,6 @@ lisp2 = \
$(lispsource)language/georgian.el \
$(lispsource)language/khmer.el \
$(lispsource)language/burmese.el \
$(lispsource)paths.el \
$(lispsource)register.elc \
$(lispsource)replace.elc \
$(lispsource)simple.elc \
@ -307,6 +312,7 @@ install: $(INSTALL_FILES)
$(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
$(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
$(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin
$(CP) $(BLD)/profile.exe $(INSTALL_DIR)/bin
- mkdir "$(INSTALL_DIR)/etc"
$(CP) $(DOC) $(INSTALL_DIR)/etc
@ -349,85 +355,108 @@ TAGS: $(BLD)/etags.exe *.c *.h
### DEPENDENCIES ###
EMACS_ROOT = ..
SRC = .
LIB_SRC = .
SRC = $(EMACS_ROOT)/src
NT_INC = $(EMACS_ROOT)/nt/inc
GNU_LIB = $(EMACS_ROOT)/lib
$(BLD)/alloca.$(O) : \
$(SRC)/alloca.c \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/src/config.h \
$(EMACS_ROOT)/src/blockinput.h
MS_W32_H = $(SRC)/s/ms-w32.h \
$(NT_INC)/sys/stat.h
CONFIG_H = $(SRC)/config.h \
$(MS_W32_H)
INTTYPES_H = $(NT_INC)/inttypes.h \
$(NT_INC)/stdint.h
NTLIB_H = $(LIB_SRC)/ntlib.h \
$(NT_INC)/pwd.h
SYSTIME_H = $(SRC)/systime.h \
$(NT_INC)/sys/time.h \
$(GNU_LIB)/timespec.h
$(BLD)/ctags.$(O) : \
$(SRC)/ctags.c \
$(EMACS_ROOT)/nt/inc/sys/param.h \
$(EMACS_ROOT)/nt/inc/sys/stat.h \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h \
$(SRC)/ntlib.h \
$(EMACS_ROOT)/lib/getopt.h
$(LIB_SRC)/ctags.c \
$(SRC)/regex.h \
$(NT_INC)/sys/stat.h \
$(NT_INC)/unistd.h \
$(GNU_LIB)/c-strcase.h \
$(GNU_LIB)/getopt.h \
$(CONFIG_H)
$(BLD)/ebrowse.$(O) : \
$(SRC)/ebrowse.c \
$(EMACS_ROOT)/lib/min-max.h \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h
$(LIB_SRC)/ebrowse.c \
$(GNU_LIB)/getopt.h \
$(GNU_LIB)/min-max.h \
$(CONFIG_H)
$(BLD)/emacsclient.$(O) : \
$(SRC)/emacsclient.c \
$(EMACS_ROOT)/nt/inc/sys/stat.h \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h
$(LIB_SRC)/emacsclient.c \
$(NT_INC)/pwd.h \
$(NT_INC)/sys/stat.h \
$(NT_INC)/unistd.h \
$(GNU_LIB)/getopt.h \
$(CONFIG_H)
$(BLD)/etags.$(O) : \
$(SRC)/etags.c \
$(EMACS_ROOT)/nt/inc/sys/param.h \
$(EMACS_ROOT)/nt/inc/sys/stat.h \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h \
$(SRC)/ntlib.h \
$(EMACS_ROOT)/lib/getopt.h
$(LIB_SRC)/etags.c \
$(SRC)/regex.h \
$(NT_INC)/sys/stat.h \
$(NT_INC)/unistd.h \
$(GNU_LIB)/c-strcase.h \
$(GNU_LIB)/getopt.h \
$(CONFIG_H)
$(BLD)/hexl.$(O) : \
$(SRC)/hexl.c
$(LIB_SRC)/hexl.c \
$(CONFIG_H)
$(BLD)/make-docfile.$(O) : \
$(SRC)/make-docfile.c \
$(EMACS_ROOT)/src/config.h
$(LIB_SRC)/make-docfile.c \
$(NT_INC)/unistd.h \
$(CONFIG_H)
$(BLD)/movemail.$(O) : \
$(SRC)/movemail.c \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h \
$(EMACS_ROOT)/nt/inc/sys/file.h \
$(EMACS_ROOT)/nt/inc/sys/stat.h \
$(EMACS_ROOT)/lib-src/../src/syswait.h \
$(EMACS_ROOT)/nt/inc/pwd.h \
$(SRC)/ntlib.h
$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
$(LIB_SRC)/movemail.c \
$(LIB_SRC)/pop.h \
$(SRC)/syswait.h \
$(NT_INC)/pwd.h \
$(NT_INC)/sys/file.h \
$(NT_INC)/sys/stat.h \
$(NT_INC)/unistd.h \
$(GNU_LIB)/getopt.h \
$(CONFIG_H) \
$(NTLIB_H)
$(BLD)/ntlib.$(O) : \
$(SRC)/ntlib.c \
$(SRC)/ntlib.h \
$(EMACS_ROOT)/nt/inc/sys/stat.h \
$(EMACS_ROOT)/nt/inc/pwd.h
$(LIB_SRC)/ntlib.c \
$(NT_INC)/sys/stat.h \
$(NTLIB_H)
$(BLD)/pop.$(O) : \
$(SRC)/pop.c \
$(SRC)/pop.h \
$(EMACS_ROOT)/lib/min-max.h \
$(SRC)/ntlib.h
$(LIB_SRC)/pop.c \
$(LIB_SRC)/pop.h \
$(NT_INC)/netdb.h \
$(NT_INC)/pwd.h \
$(NT_INC)/unistd.h \
$(GNU_LIB)/min-max.h \
$(CONFIG_H) \
$(NTLIB_H)
$(BLD)/profile.$(O) : \
$(SRC)/profile.c \
$(EMACS_ROOT)/src/s/ms-w32.h \
$(EMACS_ROOT)/lib-src/../src/config.h \
$(EMACS_ROOT)/lib-src/../src/systime.h
$(LIB_SRC)/profile.c \
$(GNU_LIB)/intprops.h \
$(CONFIG_H) \
$(INTTYPES_H) \
$(SYSTIME_H)
$(BLD)/tcp.$(O) : \
$(SRC)/tcp.c
$(BLD)/regex.$(O) : \
$(SRC)/regex.c \
$(SRC)/regex.h \
$(NT_INC)/unistd.h \
$(CONFIG_H)
$(BLD)/test-distrib.$(O) : \
$(SRC)/test-distrib.c
$(LIB_SRC)/test-distrib.c \
$(NT_INC)/unistd.h \
$(CONFIG_H)
# The following dependencies are for supporting parallel builds, where
# we must make sure $(BLD) exists before any compilation starts.

View file

@ -133,16 +133,10 @@ static char *mail_spool_name (char *);
#endif
#endif
#ifndef HAVE_STRERROR
char *strerror (int);
#endif
static void fatal (const char *s1, const char *s2, const char *s3) NO_RETURN;
static _Noreturn void fatal (const char *s1, const char *s2, const char *s3);
static void error (const char *s1, const char *s2, const char *s3);
static void pfatal_with_name (char *name) NO_RETURN;
static void pfatal_and_delete (char *name) NO_RETURN;
static char *concat (const char *s1, const char *s2, const char *s3);
static long *xmalloc (unsigned int size);
static _Noreturn void pfatal_with_name (char *name);
static _Noreturn void pfatal_and_delete (char *name);
#ifdef MAIL_USE_POP
static int popmail (char *mailbox, char *outfile, int preserve, char *password, int reverse_order);
static int pop_retr (popserver server, int msgno, FILE *arg);
@ -151,6 +145,21 @@ static int mbx_delimit_begin (FILE *mbf);
static int mbx_delimit_end (FILE *mbf);
#endif
#if (defined MAIL_USE_MAILLOCK \
|| (!defined DISABLE_DIRECT_ACCESS && !defined MAIL_USE_MMDF \
&& !defined MAIL_USE_SYSTEM_LOCK))
/* Like malloc but get fatal error if memory is exhausted. */
static void *
xmalloc (size_t size)
{
void *result = malloc (size);
if (!result)
fatal ("virtual memory exhausted", 0, 0);
return result;
}
#endif
/* Nonzero means this is name of a lock file to delete on fatal error. */
static char *delete_lockname;
@ -168,7 +177,7 @@ main (int argc, char **argv)
int tem;
char *lockname;
char *tempname;
size_t inname_dirlen;
size_t inname_len, inname_dirlen;
int desc;
#endif /* not MAIL_USE_SYSTEM_LOCK */
@ -296,12 +305,15 @@ main (int argc, char **argv)
should define MAIL_USE_SYSTEM_LOCK but does not, send a bug report
to bug-gnu-emacs@prep.ai.mit.edu so we can fix it. */
lockname = concat (inname, ".lock", "");
for (inname_dirlen = strlen (inname);
inname_len = strlen (inname);
lockname = xmalloc (inname_len + sizeof ".lock");
strcpy (lockname, inname);
strcpy (lockname + inname_len, ".lock");
for (inname_dirlen = inname_len;
inname_dirlen && !IS_DIRECTORY_SEP (inname[inname_dirlen - 1]);
inname_dirlen--)
continue;
tempname = (char *) xmalloc (inname_dirlen + sizeof "EXXXXXX");
tempname = xmalloc (inname_dirlen + sizeof "EXXXXXX");
while (1)
{
@ -583,8 +595,8 @@ mail_spool_name (char *inname)
if (stat (MAILDIR, &stat1) < 0)
return NULL;
indir = (char *) xmalloc (fname - inname + 1);
strncpy (indir, inname, fname - inname);
indir = xmalloc (fname - inname + 1);
memcpy (indir, inname, fname - inname);
indir[fname-inname] = '\0';
@ -643,33 +655,6 @@ pfatal_and_delete (char *name)
unlink (name);
fatal ("%s for %s", s, name);
}
/* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */
static char *
concat (const char *s1, const char *s2, const char *s3)
{
size_t len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);
char *result = (char *) xmalloc (len1 + len2 + len3 + 1);
strcpy (result, s1);
strcpy (result + len1, s2);
strcpy (result + len1 + len2, s3);
*(result + len1 + len2 + len3) = 0;
return result;
}
/* Like malloc but get fatal error if memory is exhausted. */
static long *
xmalloc (unsigned int size)
{
long *result = (long *) malloc (size);
if (!result)
fatal ("virtual memory exhausted", 0, 0);
return result;
}
/* This is the guts of the interface to the Post Office Protocol. */
@ -851,10 +836,7 @@ pop_retr (popserver server, int msgno, FILE *arg)
if (pop_retrieve_first (server, msgno, &line))
{
char *msg = concat ("Error from POP server: ", pop_error, "");
strncpy (Errmsg, msg, sizeof (Errmsg));
Errmsg[sizeof (Errmsg)-1] = '\0';
free (msg);
snprintf (Errmsg, sizeof Errmsg, "Error from POP server: %s", pop_error);
return (NOTOK);
}
@ -873,10 +855,7 @@ pop_retr (popserver server, int msgno, FILE *arg)
if (ret)
{
char *msg = concat ("Error from POP server: ", pop_error, "");
strncpy (Errmsg, msg, sizeof (Errmsg));
Errmsg[sizeof (Errmsg)-1] = '\0';
free (msg);
snprintf (Errmsg, sizeof Errmsg, "Error from POP server: %s", pop_error);
return (NOTOK);
}
@ -939,21 +918,3 @@ mbx_delimit_end (FILE *mbf)
}
#endif /* MAIL_USE_POP */
#ifndef HAVE_STRERROR
char *
strerror (errnum)
int errnum;
{
extern char *sys_errlist[];
extern int sys_nerr;
if (errnum >= 0 && errnum < sys_nerr)
return sys_errlist[errnum];
return (char *) "Unknown error";
}
#endif /* ! HAVE_STRERROR */
/* movemail.c ends here */

View file

@ -21,11 +21,7 @@ You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifdef HAVE_CONFIG_H
#include <config.h>
#else
#define MAIL_USE_POP
#endif
#ifdef MAIL_USE_POP
@ -101,7 +97,7 @@ extern char *krb_realmofhost (/* char * */);
#endif /* KERBEROS */
#ifndef WINDOWSNT
#if !defined (HAVE_H_ERRNO) || !defined (HAVE_CONFIG_H)
#ifndef HAVE_H_ERRNO
extern int h_errno;
#endif
#endif
@ -344,10 +340,7 @@ pop_stat (popserver server, int *count, int *size)
if (strncmp (fromserver, "+OK ", 4))
{
if (0 == strncmp (fromserver, "-ERR", 4))
{
strncpy (pop_error, fromserver, ERROR_MAX);
pop_error[ERROR_MAX-1] = '\0';
}
snprintf (pop_error, ERROR_MAX, "%s", fromserver);
else
{
strcpy (pop_error,
@ -448,10 +441,7 @@ pop_list (popserver server, int message, int **IDs, int **sizes)
if (strncmp (fromserver, "+OK ", 4))
{
if (! strncmp (fromserver, "-ERR", 4))
{
strncpy (pop_error, fromserver, ERROR_MAX);
pop_error[ERROR_MAX-1] = '\0';
}
snprintf (pop_error, ERROR_MAX, "%s", fromserver);
else
{
strcpy (pop_error,
@ -690,8 +680,7 @@ pop_multi_first (popserver server, const char *command, char **response)
if (0 == strncmp (*response, "-ERR", 4))
{
strncpy (pop_error, *response, ERROR_MAX);
pop_error[ERROR_MAX-1] = '\0';
snprintf (pop_error, ERROR_MAX, "%s", *response);
return (-1);
}
else if (0 == strncmp (*response, "+OK", 3))
@ -864,8 +853,7 @@ pop_last (popserver server)
if (! strncmp (fromserver, "-ERR", 4))
{
strncpy (pop_error, fromserver, ERROR_MAX);
pop_error[ERROR_MAX-1] = '\0';
snprintf (pop_error, ERROR_MAX, "%s", fromserver);
return (-1);
}
else if (strncmp (fromserver, "+OK ", 4))
@ -1065,9 +1053,8 @@ socket_connection (char *host, int flags)
sock = socket (PF_INET, SOCK_STREAM, 0);
if (sock < 0)
{
strcpy (pop_error, POP_SOCKET_ERROR);
strncat (pop_error, strerror (errno),
ERROR_MAX - sizeof (POP_SOCKET_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s",
POP_SOCKET_ERROR, strerror (errno));
return (-1);
}
@ -1143,9 +1130,7 @@ socket_connection (char *host, int flags)
if (! connect_ok)
{
CLOSESOCKET (sock);
strcpy (pop_error, CONNECT_ERROR);
strncat (pop_error, strerror (errno),
ERROR_MAX - sizeof (CONNECT_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s", CONNECT_ERROR, strerror (errno));
return (-1);
}
@ -1163,9 +1148,8 @@ socket_connection (char *host, int flags)
krb5_auth_con_free (kcontext, auth_context);
if (kcontext)
krb5_free_context (kcontext);
strcpy (pop_error, KRB_ERROR);
strncat (pop_error, error_message (rem),
ERROR_MAX - sizeof (KRB_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s",
KRB_ERROR, error_message (rem));
CLOSESOCKET (sock);
return (-1);
}
@ -1203,30 +1187,19 @@ socket_connection (char *host, int flags)
krb5_free_principal (kcontext, server);
if (rem)
{
strcpy (pop_error, KRB_ERROR);
strncat (pop_error, error_message (rem),
ERROR_MAX - sizeof (KRB_ERROR));
int pop_error_len = snprintf (pop_error, ERROR_MAX, "%s%s",
KRB_ERROR, error_message (rem));
#if defined HAVE_KRB5_ERROR_TEXT
if (err_ret && err_ret->text.length)
{
strncat (pop_error, " [server says '",
ERROR_MAX - strlen (pop_error) - 1);
strncat (pop_error, err_ret->text.data,
min (ERROR_MAX - strlen (pop_error) - 1,
err_ret->text.length));
strncat (pop_error, "']",
ERROR_MAX - strlen (pop_error) - 1);
int errlen = err_ret->text.length;
snprintf (pop_error + pop_error_len, ERROR_MAX - pop_error_len,
" [server says '.*%s']", errlen, err_ret->text.data);
}
#elif defined HAVE_KRB5_ERROR_E_TEXT
if (err_ret && err_ret->e_text && strlen (*err_ret->e_text))
{
strncat (pop_error, " [server says '",
ERROR_MAX - strlen (pop_error) - 1);
strncat (pop_error, *err_ret->e_text,
ERROR_MAX - strlen (pop_error) - 1);
strncat (pop_error, "']",
ERROR_MAX - strlen (pop_error) - 1);
}
if (err_ret && err_ret->e_text && **err_ret->e_text)
snprintf (pop_error + pop_error_len, ERRMAX - pop_error_len,
" [server says '%s']", *err_ret->e_text);
#endif
if (err_ret)
krb5_free_error (kcontext, err_ret);
@ -1247,9 +1220,7 @@ socket_connection (char *host, int flags)
free ((char *) ticket);
if (rem != KSUCCESS)
{
strcpy (pop_error, KRB_ERROR);
strncat (pop_error, krb_err_txt[rem],
ERROR_MAX - sizeof (KRB_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s", KRB_ERROR, krb_err_txt[rem]);
CLOSESOCKET (sock);
return (-1);
}
@ -1354,9 +1325,8 @@ pop_getline (popserver server, char **line)
server->buffer_size - server->data - 1, 0);
if (ret < 0)
{
strcpy (pop_error, GETLINE_ERROR);
strncat (pop_error, strerror (errno),
ERROR_MAX - sizeof (GETLINE_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s",
GETLINE_ERROR, strerror (errno));
pop_trash (server);
return (-1);
}
@ -1440,9 +1410,7 @@ sendline (popserver server, const char *line)
if (ret < 0)
{
pop_trash (server);
strcpy (pop_error, SENDLINE_ERROR);
strncat (pop_error, strerror (errno),
ERROR_MAX - sizeof (SENDLINE_ERROR));
snprintf (pop_error, ERROR_MAX, "%s%s", SENDLINE_ERROR, strerror (errno));
return (ret);
}
@ -1504,8 +1472,7 @@ getok (popserver server)
return (0);
else if (! strncmp (fromline, "-ERR", 4))
{
strncpy (pop_error, fromline, ERROR_MAX);
pop_error[ERROR_MAX-1] = '\0';
snprintf (pop_error, ERROR_MAX, "%s", fromline);
return (-1);
}
else

View file

@ -20,7 +20,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/**
** To be run as an emacs process. Input string that starts with:
** To be run as an emacs subprocess. Input string that starts with:
** 'z' -- resets the watch (to zero).
** 'p' -- return time (on stdout) as string with format <sec>.<micro-sec>
** 'q' -- exit.
@ -29,53 +29,42 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
** operations: reset_watch, get_time
*/
#include <config.h>
#include <inttypes.h>
#include <stdio.h>
#include <intprops.h>
#include <systime.h>
static EMACS_TIME TV1, TV2;
static EMACS_TIME TV1;
static int watch_not_started = 1; /* flag */
static char time_string[30];
static char time_string[INT_STRLEN_BOUND (uintmax_t) + sizeof "."
+ LOG10_EMACS_TIME_RESOLUTION];
/* Reset the stopwatch to zero. */
static void
reset_watch (void)
{
EMACS_GET_TIME (TV1);
TV1 = current_emacs_time ();
watch_not_started = 0;
}
/* This call returns the time since the last reset_watch call. The time
is returned as a string with the format <seconds>.<micro-seconds>
is returned as a string with the format <seconds>.<nanoseconds>
If reset_watch was not called yet, exit. */
static char *
get_time (void)
{
EMACS_TIME TV2 = sub_emacs_time (current_emacs_time (), TV1);
uintmax_t s = EMACS_SECS (TV2);
int ns = EMACS_NSECS (TV2);
if (watch_not_started)
exit (EXIT_FAILURE); /* call reset_watch first ! */
EMACS_GET_TIME (TV2);
EMACS_SUB_TIME (TV2, TV2, TV1);
sprintf (time_string, "%lu.%06lu", (unsigned long)EMACS_SECS (TV2), (unsigned long)EMACS_USECS (TV2));
sprintf (time_string, "%"PRIuMAX".%0*d", s, LOG10_EMACS_TIME_RESOLUTION, ns);
return time_string;
}
#if ! defined (HAVE_GETTIMEOFDAY) && defined (HAVE_TIMEVAL)
/* ARGSUSED */
gettimeofday (tp, tzp)
struct timeval *tp;
struct timezone *tzp;
{
extern long time ();
tp->tv_sec = time ((long *)0);
tp->tv_usec = 0;
if (tzp != 0)
tzp->tz_minuteswest = -1;
}
#endif
int
main (void)

View file

@ -48,8 +48,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/stat.h>
#include <getopt.h>
static int usage (int err) NO_RETURN;
#define MAX_ATTEMPTS 5
#define MAX_SCORES 200
#define MAX_DATA_LEN 1024
@ -59,7 +57,7 @@ static int usage (int err) NO_RETURN;
#define difftime(t1, t0) (double)((t1) - (t0))
#endif
static int
static _Noreturn void
usage (int err)
{
fprintf (stdout, "Usage: update-game-score [-m MAX] [-r] [-d DIR] game/scorefile SCORE DATA\n");
@ -89,34 +87,14 @@ static void sort_scores (struct score_entry *scores, int count, int reverse);
static int write_scores (const char *filename,
const struct score_entry *scores, int count);
static void lose (const char *msg) NO_RETURN;
static void
static _Noreturn void
lose (const char *msg)
{
fprintf (stderr, "%s\n", msg);
exit (EXIT_FAILURE);
}
static void lose_syserr (const char *msg) NO_RETURN;
/* Taken from sysdep.c. */
#ifndef HAVE_STRERROR
#ifndef WINDOWSNT
char *
strerror (int errnum)
{
extern char *sys_errlist[];
extern int sys_nerr;
if (errnum >= 0 && errnum < sys_nerr)
return sys_errlist[errnum];
return (char *) "Unknown error";
}
#endif /* not WINDOWSNT */
#endif /* ! HAVE_STRERROR */
static void
static _Noreturn void
lose_syserr (const char *msg)
{
fprintf (stderr, "%s: %s\n", msg, strerror (errno));

View file

@ -44,6 +44,13 @@
# define alloca _alloca
# elif defined __DECC && defined __VMS
# define alloca __ALLOCA
# elif defined __TANDEM && defined _TNS_E_TARGET
# ifdef __cplusplus
extern "C"
# endif
void *_alloca (unsigned short);
# pragma intrinsic (_alloca)
# define alloca _alloca
# else
# include <stddef.h>
# ifdef __cplusplus

395
lib/c-ctype.c Normal file
View file

@ -0,0 +1,395 @@
/* Character handling in C locale.
Copyright 2000-2003, 2006, 2009-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
/* Specification. */
#define NO_C_CTYPE_MACROS
#include "c-ctype.h"
/* The function isascii is not locale dependent. Its use in EBCDIC is
questionable. */
bool
c_isascii (int c)
{
return (c >= 0x00 && c <= 0x7f);
}
bool
c_isalnum (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isalpha (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
#else
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isblank (int c)
{
return (c == ' ' || c == '\t');
}
bool
c_iscntrl (int c)
{
#if C_CTYPE_ASCII
return ((c & ~0x1f) == 0 || c == 0x7f);
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 0;
default:
return 1;
}
#endif
}
bool
c_isdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS
return (c >= '0' && c <= '9');
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
return 1;
default:
return 0;
}
#endif
}
bool
c_islower (int c)
{
#if C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z');
#else
switch (c)
{
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isgraph (int c)
{
#if C_CTYPE_ASCII
return (c >= '!' && c <= '~');
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isprint (int c)
{
#if C_CTYPE_ASCII
return (c >= ' ' && c <= '~');
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_ispunct (int c)
{
#if C_CTYPE_ASCII
return ((c >= '!' && c <= '~')
&& !((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case '[': case '\\': case ']': case '^': case '_': case '`':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isspace (int c)
{
return (c == ' ' || c == '\t'
|| c == '\n' || c == '\v' || c == '\f' || c == '\r');
}
bool
c_isupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE
return (c >= 'A' && c <= 'Z');
#else
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isxdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'F')
|| (c >= 'a' && c <= 'f'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
return 1;
default:
return 0;
}
#endif
}
int
c_tolower (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
#else
switch (c)
{
case 'A': return 'a';
case 'B': return 'b';
case 'C': return 'c';
case 'D': return 'd';
case 'E': return 'e';
case 'F': return 'f';
case 'G': return 'g';
case 'H': return 'h';
case 'I': return 'i';
case 'J': return 'j';
case 'K': return 'k';
case 'L': return 'l';
case 'M': return 'm';
case 'N': return 'n';
case 'O': return 'o';
case 'P': return 'p';
case 'Q': return 'q';
case 'R': return 'r';
case 'S': return 's';
case 'T': return 't';
case 'U': return 'u';
case 'V': return 'v';
case 'W': return 'w';
case 'X': return 'x';
case 'Y': return 'y';
case 'Z': return 'z';
default: return c;
}
#endif
}
int
c_toupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
#else
switch (c)
{
case 'a': return 'A';
case 'b': return 'B';
case 'c': return 'C';
case 'd': return 'D';
case 'e': return 'E';
case 'f': return 'F';
case 'g': return 'G';
case 'h': return 'H';
case 'i': return 'I';
case 'j': return 'J';
case 'k': return 'K';
case 'l': return 'L';
case 'm': return 'M';
case 'n': return 'N';
case 'o': return 'O';
case 'p': return 'P';
case 'q': return 'Q';
case 'r': return 'R';
case 's': return 'S';
case 't': return 'T';
case 'u': return 'U';
case 'v': return 'V';
case 'w': return 'W';
case 'x': return 'X';
case 'y': return 'Y';
case 'z': return 'Z';
default: return c;
}
#endif
}

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