mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
upstream
This commit is contained in:
commit
5fb6319784
669 changed files with 31672 additions and 21406 deletions
|
|
@ -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
380
ChangeLog
|
|
@ -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
49
INSTALL
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
22
Makefile.in
22
Makefile.in
|
|
@ -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
6
README
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
108
admin/ChangeLog
108
admin/ChangeLog
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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."))))))
|
||||
|
|
|
|||
|
|
@ -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
3
admin/coccinelle/README
Normal 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.
|
||||
6
admin/coccinelle/build_string.cocci
Normal file
6
admin/coccinelle/build_string.cocci
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
// Convert simple cases to build_string.
|
||||
@@
|
||||
identifier I;
|
||||
@@
|
||||
- make_string (I, strlen (I))
|
||||
+ build_string (I)
|
||||
19
admin/coccinelle/list_loop.cocci
Normal file
19
admin/coccinelle/list_loop.cocci
Normal 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
|
||||
)
|
||||
6
admin/coccinelle/unibyte_string.cocci
Normal file
6
admin/coccinelle/unibyte_string.cocci
Normal 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)
|
||||
16
admin/coccinelle/vector_contents.cocci
Normal file
16
admin/coccinelle/vector_contents.cocci
Normal 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)
|
||||
)
|
||||
10
admin/coccinelle/xzalloc.cocci
Normal file
10
admin/coccinelle/xzalloc.cocci
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
@@
|
||||
expression x;
|
||||
expression E;
|
||||
@@
|
||||
x =
|
||||
- xmalloc
|
||||
+ xzalloc
|
||||
(E)
|
||||
...
|
||||
- memset (x, 0, E);
|
||||
|
|
@ -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
|
||||
'
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
14
autogen/aclocal.m4
vendored
|
|
@ -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])
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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}.
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
ARPA
|
||||
Abbrev
|
||||
Acknowledgements
|
||||
Alan
|
||||
Arnold
|
||||
Autoloading
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
.
|
||||
.
|
||||
.
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
120
etc/ChangeLog
120
etc/ChangeLog
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
262
etc/GNUS-NEWS
262
etc/GNUS-NEWS
|
|
@ -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".
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
|
|
|||
99
etc/NEWS
99
etc/NEWS
|
|
@ -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
|
||||
|
||||
|
|
|
|||
34
etc/PROBLEMS
34
etc/PROBLEMS
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
11
etc/TODO
11
etc/TODO
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
10
etc/emacs.py
10
etc/emacs.py
|
|
@ -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 *
|
||||
|
||||
236
etc/emacs2.py
236
etc/emacs2.py
|
|
@ -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
|
||||
|
||||
234
etc/emacs3.py
234
etc/emacs3.py
|
|
@ -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
|
||||
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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 debió haber 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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
|
||||
שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
|
||||
|
||||
פקודות רבות של Emacs משתמשות במקש CONTROL (לפעמים הוא מסומן ב־CTRL או CTL)
|
||||
או במקש META (לפעמים מסומן EDIT או ALT). במקום לציין את כל השמות האפשריים
|
||||
|
|
|
|||
|
|
@ -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.
|
|
@ -47,7 +47,7 @@
|
|||
;; the Free Software Foundation Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
;;
|
||||
;; ACKNOWLEDGEMENT
|
||||
;; ACKNOWLEDGMENT
|
||||
;;
|
||||
;; この辞書は、SKK 原作者の佐藤雅彦先生が、第 1 版作成のために東北大学
|
||||
;; 電気通信研究所佐藤研究室 (当時) の学生さん達とともに scratch から作
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'quail)
|
||||
(eval-when-compile (require 'cl)) ; for setf
|
||||
(require 'hanja-util)
|
||||
|
||||
;; Hangul double Jamo table.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) \
|
||||
|
|
|
|||
|
|
@ -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. */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
129
lib-src/etags.c
129
lib-src/etags.c
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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
395
lib/c-ctype.c
Normal 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
Loading…
Reference in a new issue