Now on revision 108111. ------------------------------------------------------------ revno: 108111 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Thu 2012-05-03 15:59:11 +0900 message: mail/rmailmm.el (rmail-show-mime): Catch an error caused by text decoding, and show a warning message without signalling an error (Bug#11282). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-03 02:39:23 +0000 +++ lisp/ChangeLog 2012-05-03 06:57:54 +0000 @@ -1,3 +1,9 @@ +2012-05-03 Kenichi Handa + + * mail/rmailmm.el (rmail-show-mime): Catch an error caused by text + decoding, and show a warning message without signalling an error + (Bug#11282). + 2012-05-03 Stefan Monnier * emacs-lisp/bytecomp.el === modified file 'lisp/mail/rmailmm.el' --- lisp/mail/rmailmm.el 2012-01-19 07:21:25 +0000 +++ lisp/mail/rmailmm.el 2012-05-03 05:47:24 +0000 @@ -1300,26 +1300,40 @@ (rmail-mime-mbox-buffer rmail-buffer) (rmail-mime-view-buffer rmail-view-buffer) (rmail-mime-coding-system nil)) + ;; If ENTITY is not a vector, it is a string describing an error. (if (vectorp entity) (with-current-buffer rmail-mime-view-buffer (erase-buffer) - (rmail-mime-insert entity) - (if (consp rmail-mime-coding-system) - ;; Decoding is done by rfc2047-decode-region only for a - ;; header. But, as the used coding system may have been - ;; overridden by mm-charset-override-alist, we can't - ;; trust (car rmail-mime-coding-system). So, here we - ;; try the decoding again with mm-charset-override-alist - ;; bound to nil. - (let ((mm-charset-override-alist nil)) - (setq rmail-mime-coding-system - (rmail-mime-find-header-encoding - (rmail-mime-entity-header entity))))) - (set-buffer-file-coding-system - (if rmail-mime-coding-system - (coding-system-base rmail-mime-coding-system) - 'undecided) - t t)) + ;; This condition-case is for catching an error in the + ;; internal MIME decoding (e.g. incorrect BASE64 form) that + ;; may be signaled by rmail-mime-insert. + ;; FIXME: The current code doesn't set a proper error symbol + ;; in ERR. We must find a way to propagate a correct error + ;; symbol that is caused in the very deep code of text + ;; decoding (e.g. an error by base64-decode-region called by + ;; post-read-conversion function of utf-7). + (condition-case err + (progn + (rmail-mime-insert entity) + (if (consp rmail-mime-coding-system) + ;; Decoding is done by rfc2047-decode-region only for a + ;; header. But, as the used coding system may have been + ;; overridden by mm-charset-override-alist, we can't + ;; trust (car rmail-mime-coding-system). So, here we + ;; try the decoding again with mm-charset-override-alist + ;; bound to nil. + (let ((mm-charset-override-alist nil)) + (setq rmail-mime-coding-system + (rmail-mime-find-header-encoding + (rmail-mime-entity-header entity))))) + (set-buffer-file-coding-system + (if rmail-mime-coding-system + (coding-system-base rmail-mime-coding-system) + 'undecided) + t t)) + (error (setq entity (format "%s" err)))))) + ;; Re-check ENTITY. It may be set to an error string. + (when (stringp entity) ;; Decoding failed. ENTITY is an error message. Insert the ;; original message body as is, and show warning. (let ((region (with-current-buffer rmail-mime-mbox-buffer ------------------------------------------------------------ revno: 108110 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11391 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-05-02 22:39:23 -0400 message: * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-custom-declare-variable): Compile all elements, since cconv.el might have introduced :fun-body, internal-make-closure, and friends for bytecomp to handle. * lisp/custom.el (defcustom): Avoid ((λ ..) ..). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 21:34:57 +0000 +++ lisp/ChangeLog 2012-05-03 02:39:23 +0000 @@ -1,3 +1,11 @@ +2012-05-03 Stefan Monnier + + * emacs-lisp/bytecomp.el + (byte-compile-file-form-custom-declare-variable): Compile all elements, + since cconv.el might have introduced :fun-body, internal-make-closure, + and friends for bytecomp to handle (bug#11391). + * custom.el (defcustom): Avoid ((λ ..) ..). + 2012-05-02 Stefan Monnier * subr.el (read-passwd): Better clean after ourselves (bug#11392). === modified file 'lisp/custom.el' --- lisp/custom.el 2012-04-14 01:46:06 +0000 +++ lisp/custom.el 2012-05-03 02:39:23 +0000 @@ -335,7 +335,7 @@ ;; expression is checked by the byte-compiler, and that ;; lexical-binding is obeyed, so quote the expression with ;; `lambda' rather than with `quote'. - `(list (lambda () ,standard)) + ``(funcall #',(lambda () ,standard)) `',standard) ,doc ,@args)) === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2012-03-26 19:10:00 +0000 +++ lisp/emacs-lisp/bytecomp.el 2012-05-03 02:39:23 +0000 @@ -2267,19 +2267,7 @@ (when (byte-compile-warning-enabled-p 'callargs) (byte-compile-nogroup-warn form)) (push (nth 1 (nth 1 form)) byte-compile-bound-variables) - ;; Don't compile the expression because it may be displayed to the user. - ;; (when (eq (car-safe (nth 2 form)) 'quote) - ;; ;; (nth 2 form) is meant to evaluate to an expression, so if we have the - ;; ;; final value already, we can byte-compile it. - ;; (setcar (cdr (nth 2 form)) - ;; (byte-compile-top-level (cadr (nth 2 form)) nil 'file))) - (let ((tail (nthcdr 4 form))) - (while tail - (unless (keywordp (car tail)) ;No point optimizing keywords. - ;; Compile the keyword arguments. - (setcar tail (byte-compile-top-level (car tail) nil 'file))) - (setq tail (cdr tail)))) - form) + (byte-compile-keep-pending form)) (put 'require 'byte-hunk-handler 'byte-compile-file-form-require) (defun byte-compile-file-form-require (form) ------------------------------------------------------------ revno: 108109 committer: Paul Eggert branch nick: trunk timestamp: Wed 2012-05-02 16:25:46 -0700 message: Fix race conditions involving setenv, gmtime, localtime, asctime. Without this fix, interrupts could mess up code that uses these nonreentrant functions, since setting TZ invalidates existing tm_zone or tzname values, and since most of these functions return pointers to static storage. * editfns.c (format_time_string, Fdecode_time, Fencode_time) (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule): Grow the critical sections to include not just invoking localtime/gmtime, but also accessing these functions' results including their tm_zone values if any, and any related TZ setting. (format_time_string): Last arg is now struct tm *, not struct tm **, so that the struct tm is saved in the critical section. All callers changed. Simplify allocation of initial buffer, partly motivated by the fact that memory allocation needs to be outside the critical section. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-02 17:21:54 +0000 +++ src/ChangeLog 2012-05-02 23:25:46 +0000 @@ -1,3 +1,21 @@ +2012-05-02 Paul Eggert + + Fix race conditions involving setenv, gmtime, localtime, asctime. + Without this fix, interrupts could mess up code that uses these + nonreentrant functions, since setting TZ invalidates existing + tm_zone or tzname values, and since most of these functions return + pointers to static storage. + * editfns.c (format_time_string, Fdecode_time, Fencode_time) + (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule): + Grow the critical sections to include not just invoking + localtime/gmtime, but also accessing these functions' results + including their tm_zone values if any, and any related TZ setting. + (format_time_string): Last arg is now struct tm *, not struct tm **, + so that the struct tm is saved in the critical section. All + callers changed. Simplify allocation of initial buffer, partly + motivated by the fact that memory allocation needs to be outside + the critical section. + 2012-05-02 Dmitry Antipov * intervals.c (adjust_intervals_for_insertion): Initialize `newi' === modified file 'src/editfns.c' --- src/editfns.c 2012-03-11 16:27:36 +0000 +++ src/editfns.c 2012-05-02 23:25:46 +0000 @@ -86,7 +86,7 @@ static void time_overflow (void) NO_RETURN; static Lisp_Object format_time_string (char const *, ptrdiff_t, Lisp_Object, - int, time_t *, struct tm **); + int, time_t *, struct tm *); static int tm_diff (struct tm *, struct tm *); static void update_buffer_properties (EMACS_INT, EMACS_INT); @@ -1704,7 +1704,7 @@ (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) { time_t t; - struct tm *tm; + struct tm tm; CHECK_STRING (format_string); format_string = code_convert_string_norecord (format_string, @@ -1715,54 +1715,55 @@ static Lisp_Object format_time_string (char const *format, ptrdiff_t formatlen, - Lisp_Object timeval, int ut, time_t *tval, struct tm **tmp) + Lisp_Object timeval, int ut, time_t *tval, struct tm *tmp) { - ptrdiff_t size; + char buffer[4000]; + char *buf = buffer; + size_t size = sizeof buffer; + size_t len; + Lisp_Object bufstring; int usec; int ns; struct tm *tm; + USE_SAFE_ALLOCA; if (! (lisp_time_argument (timeval, tval, &usec) && 0 <= usec && usec < 1000000)) error ("Invalid time specification"); ns = usec * 1000; - /* This is probably enough. */ - size = formatlen; - if (size <= (STRING_BYTES_BOUND - 50) / 6) - size = size * 6 + 50; - - BLOCK_INPUT; - tm = ut ? gmtime (tval) : localtime (tval); - UNBLOCK_INPUT; - if (! tm) - time_overflow (); - *tmp = tm; - - synchronize_system_time_locale (); - while (1) { - char *buf = (char *) alloca (size + 1); - size_t result; + BLOCK_INPUT; + + synchronize_system_time_locale (); + + tm = ut ? gmtime (tval) : localtime (tval); + if (! tm) + { + UNBLOCK_INPUT; + time_overflow (); + } + *tmp = *tm; buf[0] = '\1'; - BLOCK_INPUT; - result = emacs_nmemftime (buf, size, format, formatlen, tm, ut, ns); - UNBLOCK_INPUT; - if ((result > 0 && result < size) || (result == 0 && buf[0] == '\0')) - return code_convert_string_norecord (make_unibyte_string (buf, result), - Vlocale_coding_system, 0); + len = emacs_nmemftime (buf, size, format, formatlen, tm, ut, ns); + if ((0 < len && len < size) || (len == 0 && buf[0] == '\0')) + break; - /* If buffer was too small, make it bigger and try again. */ - BLOCK_INPUT; - result = emacs_nmemftime (NULL, (size_t) -1, format, formatlen, - tm, ut, ns); + /* Buffer was too small, so make it bigger and try again. */ + len = emacs_nmemftime (NULL, SIZE_MAX, format, formatlen, tm, ut, ns); UNBLOCK_INPUT; - if (STRING_BYTES_BOUND <= result) + if (STRING_BYTES_BOUND <= len) string_overflow (); - size = result + 1; + size = len + 1; + SAFE_ALLOCA (buf, char *, size); } + + UNBLOCK_INPUT; + bufstring = make_unibyte_string (buf, len); + SAFE_FREE (); + return code_convert_string_norecord (bufstring, Vlocale_coding_system, 0); } DEFUN ("decode-time", Fdecode_time, Sdecode_time, 0, 1, 0, @@ -1792,31 +1793,32 @@ BLOCK_INPUT; decoded_time = localtime (&time_spec); + /* Make a copy, in case a signal handler modifies TZ or the struct. */ + if (decoded_time) + save_tm = *decoded_time; UNBLOCK_INPUT; if (! (decoded_time - && MOST_NEGATIVE_FIXNUM - TM_YEAR_BASE <= decoded_time->tm_year - && decoded_time->tm_year <= MOST_POSITIVE_FIXNUM - TM_YEAR_BASE)) + && MOST_NEGATIVE_FIXNUM - TM_YEAR_BASE <= save_tm.tm_year + && save_tm.tm_year <= MOST_POSITIVE_FIXNUM - TM_YEAR_BASE)) time_overflow (); - XSETFASTINT (list_args[0], decoded_time->tm_sec); - XSETFASTINT (list_args[1], decoded_time->tm_min); - XSETFASTINT (list_args[2], decoded_time->tm_hour); - XSETFASTINT (list_args[3], decoded_time->tm_mday); - XSETFASTINT (list_args[4], decoded_time->tm_mon + 1); + XSETFASTINT (list_args[0], save_tm.tm_sec); + XSETFASTINT (list_args[1], save_tm.tm_min); + XSETFASTINT (list_args[2], save_tm.tm_hour); + XSETFASTINT (list_args[3], save_tm.tm_mday); + XSETFASTINT (list_args[4], save_tm.tm_mon + 1); /* On 64-bit machines an int is narrower than EMACS_INT, thus the cast below avoids overflow in int arithmetics. */ - XSETINT (list_args[5], TM_YEAR_BASE + (EMACS_INT) decoded_time->tm_year); - XSETFASTINT (list_args[6], decoded_time->tm_wday); - list_args[7] = (decoded_time->tm_isdst)? Qt : Qnil; + XSETINT (list_args[5], TM_YEAR_BASE + (EMACS_INT) save_tm.tm_year); + XSETFASTINT (list_args[6], save_tm.tm_wday); + list_args[7] = save_tm.tm_isdst ? Qt : Qnil; - /* Make a copy, in case gmtime modifies the struct. */ - save_tm = *decoded_time; BLOCK_INPUT; decoded_time = gmtime (&time_spec); - UNBLOCK_INPUT; if (decoded_time == 0) list_args[8] = Qnil; else XSETINT (list_args[8], tm_diff (&save_tm, decoded_time)); + UNBLOCK_INPUT; return Flist (9, list_args); } @@ -1898,21 +1900,23 @@ else error ("Invalid time zone specification"); + BLOCK_INPUT; + /* Set TZ before calling mktime; merely adjusting mktime's returned value doesn't suffice, since that would mishandle leap seconds. */ set_time_zone_rule (tzstring); - BLOCK_INPUT; value = mktime (&tm); - UNBLOCK_INPUT; /* Restore TZ to previous value. */ newenv = environ; environ = oldenv; +#ifdef LOCALTIME_CACHE + tzset (); +#endif + UNBLOCK_INPUT; + xfree (newenv); -#ifdef LOCALTIME_CACHE - tzset (); -#endif } if (value == (time_t) -1) @@ -1939,24 +1943,29 @@ { time_t value; struct tm *tm; - register char *tem; + char *tem = NULL; + char buf[sizeof "Mon Apr 30 12:49:17 2012" - 1]; if (! lisp_time_argument (specified_time, &value, NULL)) error ("Invalid time specification"); /* Convert to a string, checking for out-of-range time stamps. + Omit the trailing newline. Don't use 'ctime', as that might dump core if VALUE is out of range. */ BLOCK_INPUT; tm = localtime (&value); + if (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year)) + { + tem = asctime (tm); + if (tem) + memcpy (buf, tem, sizeof buf); + } UNBLOCK_INPUT; - if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year) && (tem = asctime (tm)))) + if (! tem) time_overflow (); - /* Remove the trailing newline. */ - tem[strlen (tem) - 1] = '\0'; - - return build_string (tem); + return make_unibyte_string (buf, sizeof buf); } /* Yield A - B, measured in seconds. @@ -2000,22 +2009,22 @@ (Lisp_Object specified_time) { time_t value; + int offset; struct tm *t; struct tm localtm; - struct tm *localt; Lisp_Object zone_offset, zone_name; zone_offset = Qnil; zone_name = format_time_string ("%Z", sizeof "%Z" - 1, specified_time, - 0, &value, &localt); - localtm = *localt; + 0, &value, &localtm); BLOCK_INPUT; t = gmtime (&value); + if (t) + offset = tm_diff (&localtm, t); UNBLOCK_INPUT; if (t) { - int offset = tm_diff (&localtm, t); zone_offset = make_number (offset); if (SCHARS (zone_name) == 0) { @@ -2053,9 +2062,16 @@ (Lisp_Object tz) { const char *tzstring; + char **old_environbuf; + + if (! (NILP (tz) || EQ (tz, Qt))) + CHECK_STRING (tz); + + BLOCK_INPUT; /* When called for the first time, save the original TZ. */ - if (!environbuf) + old_environbuf = environbuf; + if (!old_environbuf) initial_tz = (char *) getenv ("TZ"); if (NILP (tz)) @@ -2063,15 +2079,14 @@ else if (EQ (tz, Qt)) tzstring = "UTC0"; else - { - CHECK_STRING (tz); - tzstring = SSDATA (tz); - } + tzstring = SSDATA (tz); set_time_zone_rule (tzstring); - xfree (environbuf); environbuf = environ; + UNBLOCK_INPUT; + + xfree (old_environbuf); return Qnil; } ------------------------------------------------------------ revno: 108108 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11392 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-05-02 17:34:57 -0400 message: * subr.el (read-passwd): Better clean after ourselves. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 13:00:29 +0000 +++ lisp/ChangeLog 2012-05-02 21:34:57 +0000 @@ -1,3 +1,7 @@ +2012-05-02 Stefan Monnier + + * subr.el (read-passwd): Better clean after ourselves (bug#11392). + 2012-05-02 Juanma Barranquero * notifications.el (dbus-debug): === modified file 'lisp/subr.el' --- lisp/subr.el 2012-04-27 03:10:38 +0000 +++ lisp/subr.el 2012-05-02 21:34:57 +0000 @@ -2115,21 +2115,21 @@ (message "Password not repeated accurately; please start over") (sit-for 1)))) success) - (let (minibuf) + (let ((hide-chars-fun + (lambda (beg end _len) + (clear-this-command-keys) + (setq beg (min end (max (minibuffer-prompt-end) + beg))) + (dotimes (i (- end beg)) + (put-text-property (+ i beg) (+ 1 i beg) + 'display (string ?.))))) + minibuf) (minibuffer-with-setup-hook (lambda () (setq minibuf (current-buffer)) ;; Turn off electricity. (set (make-local-variable 'post-self-insert-hook) nil) - (add-hook 'after-change-functions - (lambda (beg end _len) - (clear-this-command-keys) - (setq beg (min end (max (minibuffer-prompt-end) - beg))) - (dotimes (i (- end beg)) - (put-text-property (+ i beg) (+ 1 i beg) - 'display (string ?.)))) - nil t)) + (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect (read-string prompt nil (let ((sym (make-symbol "forget-history"))) @@ -2137,7 +2137,14 @@ sym) default) (when (buffer-live-p minibuf) - (with-current-buffer minibuf (erase-buffer)))))))) + (with-current-buffer minibuf + ;; Not sure why but it seems that there might be cases where the + ;; minibuffer is not always properly reset later on, so undo + ;; whatever we've done here (bug#11392). + (remove-hook 'after-change-functions hide-chars-fun 'local) + (kill-local-variable 'post-self-insert-hook) + ;; And of course, don't keep the sensitive data around. + (erase-buffer)))))))) ;; This should be used by `call-interactively' for `n' specs. (defun read-number (prompt &optional default) ------------------------------------------------------------ revno: 108107 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 13:41:21 -0400 message: NEWS addition re configure.in and BSD -L options diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-05-01 13:37:56 +0000 +++ etc/NEWS 2012-05-02 17:41:21 +0000 @@ -32,6 +32,11 @@ --- ** Emacs uses libtinfo in preference to libncurses, if available. +--- +** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and +/usr/pkg/lib to the linker search path. You must add them yourself if +you want them. + * Startup Changes in Emacs 24.2 ------------------------------------------------------------ revno: 108106 author: Dmitry Antipov committer: Stefan Monnier branch nick: trunk timestamp: Wed 2012-05-02 13:21:54 -0400 message: * intervals.c (adjust_intervals_for_insertion): Initialize `newi' with RESET_INTERVAL. * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Remove duplicated buffer name initialization. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-02 10:20:35 +0000 +++ src/ChangeLog 2012-05-02 17:21:54 +0000 @@ -1,3 +1,11 @@ +2012-05-02 Dmitry Antipov + + * intervals.c (adjust_intervals_for_insertion): Initialize `newi' + with RESET_INTERVAL. + + * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): + Remove duplicated buffer name initialization. + 2012-05-02 Jim Meyering * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). === modified file 'src/buffer.c' --- src/buffer.c 2012-04-28 22:17:27 +0000 +++ src/buffer.c 2012-05-02 17:21:54 +0000 @@ -392,7 +392,6 @@ BVAR (b, mark) = Fmake_marker (); BUF_MARKERS (b) = NULL; - BVAR (b, name) = name; /* Put this in the alist of all live buffers. */ XSETBUFFER (buffer, b); @@ -612,7 +611,6 @@ Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil)); BVAR (b, mark) = Fmake_marker (); - BVAR (b, name) = name; /* The multibyte status belongs to the base buffer. */ BVAR (b, enable_multibyte_characters) = BVAR (b->base_buffer, enable_multibyte_characters); === modified file 'src/intervals.c' --- src/intervals.c 2012-01-19 07:21:25 +0000 +++ src/intervals.c 2012-05-02 17:21:54 +0000 @@ -1000,6 +1000,7 @@ Lisp_Object pleft, pright; struct interval newi; + RESET_INTERVAL (&newi); pleft = NULL_INTERVAL_P (prev) ? Qnil : prev->plist; pright = NULL_INTERVAL_P (i) ? Qnil : i->plist; newi.plist = merge_properties_sticky (pleft, pright); ------------------------------------------------------------ revno: 108105 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 12:55:00 -0400 message: configure.in tweak for LD_SWITCH_SYSTEM on FreeBSD, NetBSD (bug#10313) * configure.in (LD_SWITCH_SYSTEM): Don't try to defeat the choices made by FreeBSD and NetBSD. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 16:28:03 +0000 +++ ChangeLog 2012-05-02 16:55:00 +0000 @@ -1,5 +1,8 @@ 2012-05-02 Glenn Morris + * configure.in (LD_SWITCH_SYSTEM): Don't try to defeat + the choices made by FreeBSD and NetBSD. (Bug#10313) + * Makefile.in (INFO_FILES): Remove variable. (INFO_NONMISC): New variable. (install-arch-indep, uninstall): Don't use $INFO_FILES. === modified file 'configure.in' --- configure.in 2012-05-02 07:20:29 +0000 +++ configure.in 2012-05-02 16:55:00 +0000 @@ -951,7 +951,9 @@ ## Let `ld' find image libs and similar things in /usr/local/lib. ## The system compiler, GCC, has apparently been modified to not ## look there, contrary to what a stock GCC would do. - LD_SWITCH_SYSTEM=-L/usr/local/lib +### It's not our place to do this. See bug#10313#17. +### LD_SWITCH_SYSTEM=-L/usr/local/lib + : ;; gnu-linux) @@ -960,7 +962,9 @@ ;; netbsd) - LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib" +### It's not our place to do this. See bug#10313#17. +### LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib" + : ;; openbsd) ------------------------------------------------------------ revno: 108104 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 09:28:03 -0700 message: Yet more merged ChangeLog fixes diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 16:14:20 +0000 +++ ChangeLog 2012-05-02 16:28:03 +0000 @@ -14,10 +14,6 @@ * configure.in (LIBS_TERMCAP): Fix netbsd logic, broken 2012-03-04. - * info/dir: Make some entries consistent with the source texi files. - - * configure.in (LIBS_TERMCAP): Fix netbsd logic, broken 2012-03-04. - 2012-05-02 Glenn Morris * Makefile.in (install-arch-indep): ------------------------------------------------------------ revno: 108103 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 09:14:20 -0700 message: Fix merged ChangeLog entry diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 07:45:16 +0000 +++ ChangeLog 2012-05-02 16:14:20 +0000 @@ -10,9 +10,6 @@ * Makefile.in (install-arch-indep, uninstall): Ensure that INSTALL-type commands are run from top-level. - * Makefile.in (INFO_FILES): Add emacs-gnutls; accidentally - omitted from 2012-04-12 backport from trunk. - * info/dir: Make some entries consistent with the source texi files. * configure.in (LIBS_TERMCAP): Fix netbsd logic, broken 2012-03-04. ------------------------------------------------------------ revno: 108102 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 12:10:02 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/configure' --- autogen/configure 2012-05-02 07:20:29 +0000 +++ autogen/configure 2012-05-02 16:10:02 +0000 @@ -14939,9 +14939,7 @@ ;; netbsd) - if test $ac_cv_search_tputs = -lterminfo; then - LIBS_TERMCAP="-lterminfo" - else + if "x$LIBS_TERMCAP" != "x-lterminfo" ; then TERMINFO=no LIBS_TERMCAP="-ltermcap" fi ------------------------------------------------------------ revno: 108101 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-05-02 21:00:29 +0800 message: Add customization data to several built-in variables. * lisp/cus-start.el (gc-cons-percentage, exec-suffixes) (dos-display-scancodes, dos-hyper-key, dos-super-key) (dos-keypad-mode, debug-on-signal, vertical-centering-font-regexp) (make-cursor-line-fully-visible, void-text-area-pointer) (font-list-limit): Add customization data. * doc/lispref/display.texi (Font Lookup): * doc/lispref/frames.texi (Pointer Shape): * doc/lispref/processes.texi (Subprocess Creation): Use defopt for options. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/lispref/ChangeLog 2012-05-02 13:00:29 +0000 @@ -1,3 +1,9 @@ +2012-05-02 Chong Yidong + + * display.texi (Font Lookup): + * frames.texi (Pointer Shape): + * processes.texi (Subprocess Creation): Use defopt for options. + 2012-05-02 Glenn Morris * elisp.texi (@copying): === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/display.texi 2012-05-02 13:00:29 +0000 @@ -2923,13 +2923,13 @@ encoding of the font. @end defun -@defvar font-list-limit +@defopt font-list-limit This variable specifies maximum number of fonts to consider in font -matching. The function @code{x-family-fonts} will not return more than -that many fonts, and font selection will consider only that many fonts -when searching a matching font for face attributes. The default is -currently 100. -@end defvar +matching. The function @code{x-family-fonts} will not return more +than that many fonts, and font selection will consider only that many +fonts when searching a matching font for face attributes. The default +is 100. +@end defopt @node Fontsets @subsection Fontsets === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/frames.texi 2012-05-02 13:00:29 +0000 @@ -1881,12 +1881,12 @@ @code{arrow} style, but you can specify a different style (one of those above) by setting @code{void-text-area-pointer}. -@defvar void-text-area-pointer +@defopt void-text-area-pointer This variable specifies the mouse pointer style for void text areas. These include the areas after the end of a line or below the last line in the buffer. The default is to use the @code{arrow} (non-text) pointer style. -@end defvar +@end defopt When using X, you can specify what the @code{text} pointer style really looks like by setting the variable @code{x-pointer-shape}. === modified file 'doc/lispref/processes.texi' --- doc/lispref/processes.texi 2012-04-20 08:48:50 +0000 +++ doc/lispref/processes.texi 2012-05-02 13:00:29 +0000 @@ -96,12 +96,12 @@ Executing a program can also try adding suffixes to the specified name: -@defvar exec-suffixes +@defopt exec-suffixes This variable is a list of suffixes (strings) to try adding to the specified program file name. The list should include @code{""} if you want the name to be tried exactly as specified. The default value is system-dependent. -@end defvar +@end defopt @strong{Please note:} The argument @var{program} contains only the name of the program; it may not contain any command-line arguments. You === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 11:43:14 +0000 +++ lisp/ChangeLog 2012-05-02 13:00:29 +0000 @@ -6,6 +6,12 @@ 2012-05-02 Chong Yidong + * cus-start.el (gc-cons-percentage, exec-suffixes) + (dos-display-scancodes, dos-hyper-key, dos-super-key) + (dos-keypad-mode, debug-on-signal, vertical-centering-font-regexp) + (make-cursor-line-fully-visible, void-text-area-pointer) + (font-list-limit): Add customization data. + * allout.el (allout-exposure-change-functions) (allout-structure-added-functions) (allout-structure-deleted-functions) === modified file 'lisp/cus-start.el' --- lisp/cus-start.el 2012-05-01 21:06:59 +0000 +++ lisp/cus-start.el 2012-05-02 13:00:29 +0000 @@ -48,6 +48,7 @@ ;; :tag - custom-tag property (let ((all '(;; alloc.c (gc-cons-threshold alloc integer) + (gc-cons-percentage alloc float) (garbage-collection-messages alloc boolean) ;; buffer.c (mode-line-format mode-line sexp) ;Hard to do right. @@ -132,6 +133,7 @@ (exec-path execute (repeat (choice (const :tag "default directory" nil) (directory :format "%v")))) + (exec-suffixes execute (repeat string)) ;; charset.c (charset-map-path installation (repeat (directory :format "%v"))) @@ -174,6 +176,13 @@ (inverse-video display boolean) (visible-bell display boolean) (no-redraw-on-reenter display boolean) + + ;; dosfns.c + (dos-display-scancodes display boolean) + (dos-hyper-key keyboard integer) + (dos-super-key keyboard integer) + (dos-keypad-mode keyboard integer) + ;; editfns.c (user-full-name mail string) ;; eval.c @@ -190,8 +199,9 @@ (const :tag "always" t))) (debug-ignored-errors debug (repeat (choice symbol regexp))) (debug-on-quit debug boolean) - ;; fileio.c - (delete-by-moving-to-trash auto-save boolean "23.1") + (debug-on-signal debug boolean) + ;; fileio.c + (delete-by-moving-to-trash auto-save boolean "23.1") (auto-save-visited-file-name auto-save boolean) ;; filelock.c (temporary-file-directory @@ -227,6 +237,8 @@ (use-dialog-box menu boolean "21.1") (use-file-dialog menu boolean "22.1") (focus-follows-mouse frames boolean "20.3") + ;; fontset.c + (vertical-centering-font-regexp display regexp) ;; frame.c (default-frame-alist frames (repeat (cons :format "%v" @@ -419,6 +431,7 @@ (hscroll-margin windows integer "22.1") (hscroll-step windows number "22.1") (truncate-partial-width-windows display boolean "23.1") + (make-cursor-line-fully-visible windows boolean) (mode-line-inverse-video mode-line boolean) (mode-line-in-non-selected-windows mode-line boolean "22.1") (line-number-display-limit display @@ -449,10 +462,21 @@ (const :tag "System default" :value nil)) "23.3") (tool-bar-max-label-size frames integer "23.3") (auto-hscroll-mode scrolling boolean "21.1") + (void-text-area-pointer cursor + (choice + (const :tag "Standard (text pointer)" :value nil) + (const :tag "Arrow" :value arrow) + (const :tag "Text pointer" :value text) + (const :tag "Hand" :value hand) + (const :tag "Vertical dragger" :value vdrag) + (const :tag "Horizontal dragger" :value hdrag) + (const :tag "Same as mode line" :value modeline) + (const :tag "Hourglass" :value hourglass))) (display-hourglass cursor boolean) (hourglass-delay cursor number) ;; xfaces.c + (font-list-limit display integer) (scalable-fonts-allowed display boolean "22.1") ;; xfns.c (x-bitmap-file-path installation ------------------------------------------------------------ revno: 108100 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2012-05-02 13:43:14 +0200 message: Fix ChangeLog typos. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-05-02 11:33:49 +0000 +++ lib-src/ChangeLog 2012-05-02 11:43:14 +0000 @@ -16,7 +16,7 @@ * emacsclient.c (decode_options): Move -t -n corner case handling into server.el (Bug#11102). - (main): Send -tty to Emacs under more circumstanced (Bug#8314). + (main): Send -tty to Emacs under more circumstances (Bug#8314). 2012-04-18 Paul Eggert === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 11:38:01 +0000 +++ lisp/ChangeLog 2012-05-02 11:43:14 +0000 @@ -11,8 +11,8 @@ (allout-structure-deleted-functions) (allout-structure-shifted-functions): Rename abnormal hooks from *-hook, and convert to defcustoms. - (allout-after-copy-or-kill-hook, allout-post-undo-hook): Convert - to defcustoms. + (allout-after-copy-or-kill-hook, allout-post-undo-hook): + Convert to defcustoms. (allout-mode-hook, allout-mode-deactivate-hook): Doc fix. * allout-widgets.el: Hook callers changed. @@ -25,8 +25,8 @@ 2012-05-02 Martin Rudalics - * window.el (display-buffer--action-function-custom-type): Fix - entry. + * window.el (display-buffer--action-function-custom-type): + Fix entry. 2012-05-02 Alan Mackenzie @@ -8254,7 +8254,7 @@ insecure exception for current topic. Also note that auto-saves are handled differently. - (allout-auto-save-temporarily-disabled), (allout-just-did-undo): + (allout-auto-save-temporarily-disabled, allout-just-did-undo): State variables for tracking auto-save inhibition situation. (allout-write-contents-hook-handler): Rename from @@ -10701,8 +10701,8 @@ (newsticker--plainview-tool-bar-map): Move tool-bar icons to etc/images/newsticker. - * net/newst-backend.el (newsticker--do-run-auto-mark-filter), - (newsticker--process-auto-mark-filter-match): : Tell user about + * net/newst-backend.el (newsticker--do-run-auto-mark-filter) + (newsticker--process-auto-mark-filter-match): Tell user about auto-marking. 2011-05-13 Didier Verna ------------------------------------------------------------ revno: 108099 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2012-05-02 13:38:01 +0200 message: Silence byte-compiler warnings. lisp/notifications.el (dbus-debug): lisp/term/linux.el (gpm-mouse-enable): lisp/term/screen.el (xterm-register-default-colors): Declare. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 10:57:03 +0000 +++ lisp/ChangeLog 2012-05-02 11:38:01 +0000 @@ -1,3 +1,9 @@ +2012-05-02 Juanma Barranquero + + * notifications.el (dbus-debug): + * term/linux.el (gpm-mouse-enable): + * term/screen.el (xterm-register-default-colors): Declare. + 2012-05-02 Chong Yidong * allout.el (allout-exposure-change-functions) === modified file 'lisp/notifications.el' --- lisp/notifications.el 2012-04-24 21:47:24 +0000 +++ lisp/notifications.el 2012-05-02 11:38:01 +0000 @@ -173,7 +173,7 @@ notification when an action has been invoked. :transient When set the server will treat the notification as transient and by-pass the server's persistence capability, if it - should exist. + should exist. :x Specifies the X location on the screen that the notification should point to. The \"y\" hint must also be specified. :y Specifies the Y location on the screen that the notification @@ -344,6 +344,8 @@ notifications-close-notification-method :int32 id)) +(defvar dbus-debug) ; used in the macroexpansion of dbus-ignore-errors + (defun notifications-get-capabilities () "Return the capabilities of the notification server, a list of strings. The following capabilities can be expected: === modified file 'lisp/term/linux.el' --- lisp/term/linux.el 2012-05-01 06:59:34 +0000 +++ lisp/term/linux.el 2012-05-02 11:38:01 +0000 @@ -1,5 +1,7 @@ ;; The Linux console handles Latin-1 by default. +(declare-function gpm-mouse-enable "t-mouse" ()) + (defun terminal-init-linux () "Terminal initialization function for linux." (unless (terminal-coding-system) === modified file 'lisp/term/screen.el' --- lisp/term/screen.el 2012-05-01 06:59:34 +0000 +++ lisp/term/screen.el 2012-05-02 11:38:01 +0000 @@ -1,6 +1,8 @@ ;; Treat a screen terminal similar to an xterm. (load "term/xterm") +(declare-function xterm-register-default-colors "xterm" ()) + (defun terminal-init-screen () "Terminal initialization function for screen." ;; Use the xterm color initialization code. ------------------------------------------------------------ revno: 108098 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2012-05-02 13:33:49 +0200 message: lib-src/emacsclient.c (min): Undef before redefining it. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-05-02 10:41:27 +0000 +++ lib-src/ChangeLog 2012-05-02 11:33:49 +0000 @@ -1,3 +1,7 @@ +2012-05-02 Juanma Barranquero + + * emacsclient.c (min): Undef before redefining it. + 2012-05-02 Jim Meyering * emacsclient.c (send_to_emacs): Avoid invalid strcpy upon partial === modified file 'lib-src/emacsclient.c' --- lib-src/emacsclient.c 2012-05-02 10:41:27 +0000 +++ lib-src/emacsclient.c 2012-05-02 11:33:49 +0000 @@ -119,6 +119,9 @@ # define IF_LINT(Code) /* empty */ #endif +#ifdef min +#undef min +#endif #define min(x, y) (((x) < (y)) ? (x) : (y)) ------------------------------------------------------------ revno: 108097 committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-05-02 18:57:03 +0800 message: Fix naming of abnormal hook vars in allout.el. * lisp/allout.el (allout-exposure-change-functions) (allout-structure-added-functions) (allout-structure-deleted-functions) (allout-structure-shifted-functions): Rename abnormal hooks from *-hook, and convert to defcustoms. (allout-after-copy-or-kill-hook, allout-post-undo-hook): Convert to defcustoms. (allout-mode-hook, allout-mode-deactivate-hook): Doc fix. * lisp/allout-widgets.el: Hook callers changed. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-02 07:20:29 +0000 +++ lisp/ChangeLog 2012-05-02 10:57:03 +0000 @@ -1,3 +1,16 @@ +2012-05-02 Chong Yidong + + * allout.el (allout-exposure-change-functions) + (allout-structure-added-functions) + (allout-structure-deleted-functions) + (allout-structure-shifted-functions): Rename abnormal hooks from + *-hook, and convert to defcustoms. + (allout-after-copy-or-kill-hook, allout-post-undo-hook): Convert + to defcustoms. + (allout-mode-hook, allout-mode-deactivate-hook): Doc fix. + + * allout-widgets.el: Hook callers changed. + 2012-05-02 Eli Zaretskii * mail/rmail.el (rmail-yank-current-message): Use the encoding of === modified file 'lisp/allout-widgets.el' --- lisp/allout-widgets.el 2012-04-09 13:05:48 +0000 +++ lisp/allout-widgets.el 2012-05-02 10:57:03 +0000 @@ -579,13 +579,13 @@ (if (current-local-map) (set-keymap-parent allout-item-body-keymap (current-local-map))) - (add-hook 'allout-exposure-change-hook + (add-hook 'allout-exposure-change-functions 'allout-widgets-exposure-change-recorder nil 'local) - (add-hook 'allout-structure-added-hook + (add-hook 'allout-structure-added-functions 'allout-widgets-additions-recorder nil 'local) - (add-hook 'allout-structure-deleted-hook + (add-hook 'allout-structure-deleted-functions 'allout-widgets-deletions-recorder nil 'local) - (add-hook 'allout-structure-shifted-hook + (add-hook 'allout-structure-shifted-functions 'allout-widgets-shifts-recorder nil 'local) (add-hook 'allout-after-copy-or-kill-hook 'allout-widgets-after-copy-or-kill-function nil 'local) @@ -626,13 +626,13 @@ (remove-hook 'after-change-functions 'allout-widgets-after-change-handler 'local) - (remove-hook 'allout-exposure-change-hook + (remove-hook 'allout-exposure-change-functions 'allout-widgets-exposure-change-recorder 'local) - (remove-hook 'allout-structure-added-hook + (remove-hook 'allout-structure-added-functions 'allout-widgets-additions-recorder 'local) - (remove-hook 'allout-structure-deleted-hook + (remove-hook 'allout-structure-deleted-functions 'allout-widgets-deletions-recorder 'local) - (remove-hook 'allout-structure-shifted-hook + (remove-hook 'allout-structure-shifted-functions 'allout-widgets-shifts-recorder 'local) (remove-hook 'allout-after-copy-or-kill-hook 'allout-widgets-after-copy-or-kill-function 'local) @@ -992,7 +992,7 @@ (defun allout-widgets-exposure-change-processor (changes) "Widgetize and adjust item widgets tracking allout outline exposure changes. -Generally invoked via `allout-exposure-change-hook'." +Generally invoked via `allout-exposure-change-functions'." (let ((changes (sort changes (function (lambda (this next) (< (cadr this) (cadr next)))))) @@ -1059,7 +1059,7 @@ (defun allout-widgets-additions-recorder (from to) "Record allout item additions for tracking during post-command processing. -Intended for use on `allout-structure-added-hook'. +Intended for use on `allout-structure-added-functions'. FROM point at the start of the first new item and TO is point at the start of the last one. @@ -1106,8 +1106,7 @@ ;;;_ > allout-widgets-deletions-recorder (depth from) (defun allout-widgets-deletions-recorder (depth from) "Record allout item deletions for tracking during post-command processing. - -Intended for use on `allout-structure-deleted-hook'. +Intended for use on `allout-structure-deleted-functions'. DEPTH is the depth of the deleted subtree, and FROM is the point from which the subtree was deleted. @@ -1134,8 +1133,7 @@ ;;;_ > allout-widgets-shifts-recorder (shifted-amount at) (defun allout-widgets-shifts-recorder (shifted-amount at) "Record outline subtree shifts for tracking during post-command processing. - -Intended for use on `allout-structure-shifted-hook'. +Intended for use on `allout-structure-shifted-functions'. SHIFTED-AMOUNT is the depth change and AT is the point at the start of the subtree that's been shifted. === modified file 'lisp/allout.el' --- lisp/allout.el 2012-04-09 13:05:48 +0000 +++ lisp/allout.el 2012-05-02 10:57:03 +0000 @@ -1403,19 +1403,19 @@ ,expr)) ;;;_ = allout-mode-hook (defvar allout-mode-hook nil - "Hook that's run when allout mode starts.") + "Hook run when allout mode starts.") ;;;_ = allout-mode-deactivate-hook (defvar allout-mode-deactivate-hook nil - "Hook that's run when allout mode ends.") + "Hook run when allout mode ends.") (define-obsolete-variable-alias 'allout-mode-deactivate-hook 'allout-mode-off-hook "24.1") ;;;_ = allout-exposure-category (defvar allout-exposure-category nil "Symbol for use as allout invisible-text overlay category.") -;;;_ = allout-exposure-change-hook -(defvar allout-exposure-change-hook nil - "Hook that's run after allout outline subtree exposure changes. +;;;_ = allout-exposure-change-functions +(defcustom allout-exposure-change-functions nil + "Abnormal hook run after allout outline subtree exposure changes. It is run at the conclusion of `allout-flag-region'. Functions on the hook must take three arguments: @@ -1424,21 +1424,33 @@ - TO -- integer indicating the point of the end of the change. - FLAG -- change mode: nil for exposure, otherwise concealment. -This hook might be invoked multiple times by a single command.") -;;;_ = allout-structure-added-hook -(defvar allout-structure-added-hook nil - "Hook that's run after addition of items to the outline. - +This hook might be invoked multiple times by a single command." + :type 'hook + :group 'allout + :version "24.2") + +(define-obsolete-variable-alias 'allout-exposure-change-hook + 'allout-exposure-change-functions "24.2") + +;;;_ = allout-structure-added-functions +(defcustom allout-structure-added-functions nil + "Abnormal hook run after adding items to an Allout outline. Functions on the hook should take two arguments: - NEW-START -- integer indicating position of start of the first new item. - NEW-END -- integer indicating position of end of the last new item. -This hook might be invoked multiple times by a single command.") -;;;_ = allout-structure-deleted-hook -(defvar allout-structure-deleted-hook nil - "Hook that's run after disciplined deletion of subtrees from the outline. - +This hook might be invoked multiple times by a single command." + :type 'hook + :group 'allout + :version "24.2") + +(define-obsolete-variable-alias 'allout-structure-added-hook + 'allout-structure-added-functions "24.2") + +;;;_ = allout-structure-deleted-functions +(defcustom allout-structure-deleted-functions nil + "Abnormal hook run after deleting subtrees from an Allout outline. Functions on the hook must take two arguments: - DEPTH -- integer indicating the depth of the subtree that was deleted. @@ -1447,11 +1459,17 @@ Some edits that remove or invalidate items may be missed by this hook: specifically edits that native allout routines do not control. -This hook might be invoked multiple times by a single command.") -;;;_ = allout-structure-shifted-hook -(defvar allout-structure-shifted-hook nil - "Hook that's run after shifting of items in the outline. - +This hook might be invoked multiple times by a single command." + :type 'hook + :group 'allout + :version "24.2") + +(define-obsolete-variable-alias 'allout-structure-deleted-hook + 'allout-structure-deleted-functions "24.2") + +;;;_ = allout-structure-shifted-functions +(defcustom allout-structure-shifted-functions nil + "Abnormal hook run after shifting items in an Allout outline. Functions on the hook should take two arguments: - DEPTH-CHANGE -- integer indicating depth increase, negative for decrease @@ -1460,20 +1478,30 @@ Some edits that shift items can be missed by this hook: specifically edits that native allout routines do not control. -This hook might be invoked multiple times by a single command.") +This hook might be invoked multiple times by a single command." + :type 'hook + :group 'allout + :version "24.2") + +(define-obsolete-variable-alias 'allout-structure-shifted-hook + 'allout-structure-shifted-functions "24.2") + ;;;_ = allout-after-copy-or-kill-hook -(defvar allout-after-copy-or-kill-hook nil - "Hook that's run after copying outline text. +(defcustom allout-after-copy-or-kill-hook nil + "Normal hook run after copying outline text.." + :type 'hook + :group 'allout + :version "24.2") -Functions on the hook should not require any arguments.") ;;;_ = allout-post-undo-hook -(defvar allout-post-undo-hook nil - "Hook that's run after undo activity. - +(defcustom allout-post-undo-hook nil + "Normal hook run after undo activity. The item that's current when the hook is run *may* be the one -that was affected by the undo. +that was affected by the undo.." + :type 'hook + :group 'allout + :version "24.2") -Functions on the hook should not require any arguments.") ;;;_ = allout-outside-normal-auto-fill-function (defvar allout-outside-normal-auto-fill-function nil "Value of `normal-auto-fill-function' outside of allout mode. @@ -1883,10 +1911,10 @@ `allout-mode-hook' `allout-mode-deactivate-hook' (deprecated) `allout-mode-off-hook' -`allout-exposure-change-hook' -`allout-structure-added-hook' -`allout-structure-deleted-hook' -`allout-structure-shifted-hook' +`allout-exposure-change-functions' +`allout-structure-added-functions' +`allout-structure-deleted-functions' +`allout-structure-shifted-functions' `allout-after-copy-or-kill-hook' `allout-post-undo-hook' @@ -3845,7 +3873,7 @@ (allout-show-children))) (end-of-line) - (run-hook-with-args 'allout-structure-added-hook start end) + (run-hook-with-args 'allout-structure-added-functions start end) ) ) ) @@ -3970,7 +3998,7 @@ nil ;;; number-control nil ;;; index t) ;;; do-successors - (run-hook-with-args 'allout-exposure-change-hook + (run-hook-with-args 'allout-exposure-change-functions from to t)) (setq arg (1- arg)) (if (<= arg 0) @@ -4071,7 +4099,7 @@ (not (allout-encrypted-topic-p))) (allout-reindent-body current-depth new-depth)) - (run-hook-with-args 'allout-exposure-change-hook mb me nil) + (run-hook-with-args 'allout-exposure-change-functions mb me nil) ;; Recursively rectify successive siblings of orig topic if ;; caller elected for it: @@ -4333,7 +4361,7 @@ (allout-show-children)))))) (let ((where (point))) (allout-rebullet-topic 1 (and (> arg 1) 'sans-offspring)) - (run-hook-with-args 'allout-structure-shifted-hook arg where)))) + (run-hook-with-args 'allout-structure-shifted-functions arg where)))) ;;;_ > allout-shift-out (arg) (defun allout-shift-out (arg) "Decrease depth of current heading and any topics collapsed within it. @@ -4373,7 +4401,7 @@ (goto-char child-point) (allout-shift-out 1)))) (allout-rebullet-topic (* arg -1)))) - (run-hook-with-args 'allout-structure-shifted-hook (* arg -1) where)))) + (run-hook-with-args 'allout-structure-shifted-functions (* arg -1) where)))) ;;;_ : Surgery (kill-ring) functions with special provisions for outlines: ;;;_ > allout-kill-line (&optional arg) (defun allout-kill-line (&optional arg) @@ -4408,7 +4436,7 @@ (if (not (save-match-data (looking-at allout-regexp))) (allout-next-heading)) (allout-renumber-to-depth depth))) - (run-hook-with-args 'allout-structure-deleted-hook depth (point)))))) + (run-hook-with-args 'allout-structure-deleted-functions depth (point)))))) ;;;_ > allout-copy-line-as-kill () (defun allout-copy-line-as-kill () "Like `allout-kill-topic', but save to kill ring instead of deleting." @@ -4456,7 +4484,7 @@ (save-excursion (allout-renumber-to-depth depth)) - (run-hook-with-args 'allout-structure-deleted-hook depth (point))))) + (run-hook-with-args 'allout-structure-deleted-functions depth (point))))) ;;;_ > allout-copy-topic-as-kill () (defun allout-copy-topic-as-kill () "Like `allout-kill-topic', but save to kill ring instead of deleting." @@ -4668,7 +4696,7 @@ (allout-deannotate-hidden (allout-mark-marker t) (point))) (if (not resituate) (exchange-point-and-mark)) - (run-hook-with-args 'allout-structure-added-hook subj-beg subj-end)))) + (run-hook-with-args 'allout-structure-added-functions subj-beg subj-end)))) ;;;_ > allout-yank (&optional arg) (defun allout-yank (&optional arg) "`allout-mode' yank, with depth and numbering adjustment of yanked topics. @@ -4765,9 +4793,9 @@ ;;;_ > allout-flag-region (from to flag) (defun allout-flag-region (from to flag) "Conceal text between FROM and TO if FLAG is non-nil, else reveal it. - -Exposure-change hook `allout-exposure-change-hook' is run with the same -arguments as this function, after the exposure changes are made." +After the exposure changes are made, run the abnormal hook +`allout-exposure-change-functions' with the same arguments as +this function." ;; We use outline invisibility spec. (remove-overlays from to 'category 'allout-exposure-category) @@ -4783,7 +4811,7 @@ (overlay-put o (pop props) (pop props)) (error nil)))))) (setq allout-this-command-hid-text t)) - (run-hook-with-args 'allout-exposure-change-hook from to flag)) + (run-hook-with-args 'allout-exposure-change-functions from to flag)) ;;;_ > allout-flag-current-subtree (flag) (defun allout-flag-current-subtree (flag) "Conceal currently-visible topic's subtree if FLAG non-nil, else reveal it." @@ -6022,7 +6050,7 @@ (allout-inhibit-auto-save-info-for-decryption was-buffer-saved-size) (allout-maybe-resume-auto-save-info-after-encryption)) - (run-hook-with-args 'allout-structure-added-hook + (run-hook-with-args 'allout-structure-added-functions bullet-pos subtree-end)))) ;;;_ > allout-encrypt-string (text decrypt allout-buffer keymode-cue ;;; &optional rejected) ------------------------------------------------------------ revno: 108096 fixes bug(s): http://debbugs.gnu.org/11374 author: Jim Meyering committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-05-02 18:41:27 +0800 message: * lib-src/emacsclient.c (send_to_emacs): Avoid invalid strcpy upon partial send. diff: === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-04-29 20:05:44 +0000 +++ lib-src/ChangeLog 2012-05-02 10:41:27 +0000 @@ -1,3 +1,8 @@ +2012-05-02 Jim Meyering + + * emacsclient.c (send_to_emacs): Avoid invalid strcpy upon partial + send (Bug#11374). + 2012-04-29 Andreas Schwab * make-docfile.c (scan_lisp_file) [DEBUG]: Also skip if and === modified file 'lib-src/emacsclient.c' --- lib-src/emacsclient.c 2012-04-20 10:37:57 +0000 +++ lib-src/emacsclient.c 2012-05-02 10:41:27 +0000 @@ -119,6 +119,8 @@ # define IF_LINT(Code) /* empty */ #endif +#define min(x, y) (((x) < (y)) ? (x) : (y)) + /* Name used to invoke this program. */ const char *progname; @@ -783,33 +785,35 @@ static void send_to_emacs (HSOCKET s, const char *data) { - while (data) + size_t dlen; + + if (!data) + return; + + dlen = strlen (data); + while (*data) { - size_t dlen = strlen (data); - if (dlen + sblen >= SEND_BUFFER_SIZE) - { - int part = SEND_BUFFER_SIZE - sblen; - strncpy (&send_buffer[sblen], data, part); - data += part; - sblen = SEND_BUFFER_SIZE; - } - else if (dlen) - { - strcpy (&send_buffer[sblen], data); - data = NULL; - sblen += dlen; - } - else - break; + size_t part = min (dlen, SEND_BUFFER_SIZE - sblen); + memcpy (&send_buffer[sblen], data, part); + data += part; + sblen += part; if (sblen == SEND_BUFFER_SIZE || (sblen > 0 && send_buffer[sblen-1] == '\n')) { int sent = send (s, send_buffer, sblen, 0); + if (sent < 0) + { + message (TRUE, "%s: failed to send %d bytes to socket: %s\n", + progname, sblen, strerror (errno)); + fail (); + } if (sent != sblen) - strcpy (send_buffer, &send_buffer[sent]); + memmove (send_buffer, &send_buffer[sent], sblen - sent); sblen -= sent; } + + dlen -= part; } } ------------------------------------------------------------ revno: 108095 fixes bug(s): http://debbugs.gnu.org/11375 author: Jim Meyering committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-05-02 18:20:35 +0800 message: * src/xfns.c (x_window): Use xstrdup (Bug#11375). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-02 10:17:03 +0000 +++ src/ChangeLog 2012-05-02 10:20:35 +0000 @@ -2,6 +2,8 @@ * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). + * xfns.c (x_window): Use xstrdup (Bug#11375). + 2012-05-02 Eli Zaretskii * xdisp.c (pos_visible_p): If already at a newline from the === modified file 'src/xfns.c' --- src/xfns.c 2012-04-09 13:05:48 +0000 +++ src/xfns.c 2012-05-02 10:20:35 +0000 @@ -2439,7 +2439,6 @@ /* Do some needed geometry management. */ { - ptrdiff_t len; char *tem, shell_position[sizeof "=x++" + 4 * INT_STRLEN_BOUND (int)]; Arg gal[10]; int gac = 0; @@ -2508,13 +2507,11 @@ } } - len = strlen (shell_position) + 1; /* We don't free this because we don't know whether it is safe to free it while the frame exists. It isn't worth the trouble of arranging to free it when the frame is deleted. */ - tem = (char *) xmalloc (len); - strncpy (tem, shell_position, len); + tem = (char *) xstrdup (shell_position); XtSetArg (gal[gac], XtNgeometry, tem); gac++; XtSetValues (shell_widget, gal, gac); } ------------------------------------------------------------ revno: 108094 fixes bug(s): http://debbugs.gnu.org/11373 author: Jim Meyering committer: Chong Yidong branch nick: trunk timestamp: Wed 2012-05-02 18:17:03 +0800 message: * src/xterm.c (x_term_init): Use memcpy instead of strncpy. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-02 07:20:29 +0000 +++ src/ChangeLog 2012-05-02 10:17:03 +0000 @@ -1,3 +1,7 @@ +2012-05-02 Jim Meyering + + * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). + 2012-05-02 Eli Zaretskii * xdisp.c (pos_visible_p): If already at a newline from the === modified file 'src/xterm.c' --- src/xterm.c 2012-04-09 13:05:48 +0000 +++ src/xterm.c 2012-05-02 10:17:03 +0000 @@ -10146,7 +10146,7 @@ /* Set the name of the terminal. */ terminal->name = (char *) xmalloc (SBYTES (display_name) + 1); - strncpy (terminal->name, SSDATA (display_name), SBYTES (display_name)); + memcpy (terminal->name, SSDATA (display_name), SBYTES (display_name)); terminal->name[SBYTES (display_name)] = 0; #if 0 ------------------------------------------------------------ revno: 108093 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 00:45:16 -0700 message: Don't hard-code the list of info files in the top-level Makefile The sed '/ing directory/d' piece is to remove the annoying "entering/leaving directory" messages that GNU make insists on printing when called recursively. --no-print-directory isn't portable. * Makefile.in (INFO_FILES): Remove variable. (INFO_NONMISC): New variable. (install-arch-indep, uninstall): Don't use $INFO_FILES. * doc/misc/Makefile.in (echo-info): New phony target, used by top-level. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 07:20:29 +0000 +++ ChangeLog 2012-05-02 07:45:16 +0000 @@ -1,5 +1,9 @@ 2012-05-02 Glenn Morris + * Makefile.in (INFO_FILES): Remove variable. + (INFO_NONMISC): New variable. + (install-arch-indep, uninstall): Don't use $INFO_FILES. + * Makefile.in (uninstall): Remove useless-use-of-for; that for some reason caused problems on an old Solaris. === modified file 'Makefile.in' --- Makefile.in 2012-05-02 07:20:29 +0000 +++ Makefile.in 2012-05-02 07:45:16 +0000 @@ -126,17 +126,10 @@ mandir=@mandir@ man1dir=$(mandir)/man1 -# Where to install and expect the info files describing Emacs. In the -# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but -# since there are now many packages documented with the texinfo -# system, it is inappropriate to imply that it is part of Emacs. +# Where to install and expect the info files describing Emacs. infodir=@infodir@ -INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse \ - ede ediff edt eieio efaq eintr elisp emacs emacs-gnutls \ - emacs-mime epa erc ert eshell eudc flymake forms gnus \ - idlwave info mairix-el message mh-e newsticker nxml-mode \ - org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses \ - sieve smtpmail speedbar tramp url vip viper widget woman +# Info files not in the doc/misc directory (we get those via make echo-info). +INFO_NONMISC=emacs eintr elisp # If no makeinfo was found and configured --without-makeinfo, "no"; else "yes". HAVE_MAKEINFO=@HAVE_MAKEINFO@ @@ -617,8 +610,9 @@ ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir; \ chmod a+r $(DESTDIR)${infodir}/dir); \ fi; \ + info_misc=`cd $${thisdir}/doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ cd ${srcdir}/info ; \ - for elt in $(INFO_FILES); do \ + for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \ (cd $${thisdir}; \ @@ -718,8 +712,9 @@ done -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} thisdir=`/bin/pwd`; \ - (cd $(DESTDIR)${infodir} && \ - for elt in $(INFO_FILES); do \ + (info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ + cd $(DESTDIR)${infodir} && \ + for elt in ${INFO_NONMISC} $${info_misc}; do \ (cd $${thisdir}; \ $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-02 07:20:29 +0000 +++ doc/misc/ChangeLog 2012-05-02 07:45:16 +0000 @@ -1,5 +1,7 @@ 2012-05-02 Glenn Morris + * Makefile.in (echo-info): New phony target, used by top-level. + * viper.texi: Make direntry shorter (also it is no longer "newest"). * emacs-gnutls.texi, ert.texi, org.texi: === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2012-04-14 01:46:06 +0000 +++ doc/misc/Makefile.in 2012-05-02 07:45:16 +0000 @@ -43,7 +43,6 @@ MAKEINFO = @MAKEINFO@ MAKEINFO_OPTS = --force -I$(emacsdir) -# Also add new entries to INFO_FILES in the top-level Makefile.in. INFO_TARGETS = \ $(infodir)/ada-mode \ $(infodir)/auth \ @@ -210,7 +209,11 @@ mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir} -.PHONY: info dvi pdf +.PHONY: info dvi pdf echo-info + +## Used by top-level Makefile. +echo-info: + @echo $(INFO_TARGETS) | sed 's|[^ ]*/||g' info: $(INFO_TARGETS) ------------------------------------------------------------ revno: 108092 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 00:33:52 -0700 message: Add change missed from previous merge from emacs-24 diff: === modified file 'doc/misc/emacs-gnutls.texi' --- doc/misc/emacs-gnutls.texi 2012-04-09 13:10:22 +0000 +++ doc/misc/emacs-gnutls.texi 2012-05-02 07:33:52 +0000 @@ -30,9 +30,9 @@ @end quotation @end copying -@dircategory Emacs lisp libraries +@dircategory Emacs network features @direntry -* GnuTLS: (gnutls). The Emacs GnuTLS Integration. +* GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration. @end direntry @titlepage ------------------------------------------------------------ revno: 108091 [merge] committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 00:20:29 -0700 message: Merge from emacs-24; up to r107933 diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-02 02:10:43 +0000 +++ ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,5 +1,24 @@ 2012-05-02 Glenn Morris + * Makefile.in (uninstall): Remove useless-use-of-for; that for + some reason caused problems on an old Solaris. + + * Makefile.in (install-arch-indep, uninstall): + Ensure that INSTALL-type commands are run from top-level. + + * Makefile.in (INFO_FILES): Add emacs-gnutls; accidentally + omitted from 2012-04-12 backport from trunk. + + * info/dir: Make some entries consistent with the source texi files. + + * configure.in (LIBS_TERMCAP): Fix netbsd logic, broken 2012-03-04. + + * info/dir: Make some entries consistent with the source texi files. + + * configure.in (LIBS_TERMCAP): Fix netbsd logic, broken 2012-03-04. + +2012-05-02 Glenn Morris + * Makefile.in (install-arch-indep): Combine adjacent install-data and install-info loops. === modified file 'Makefile.in' --- Makefile.in 2012-05-02 02:10:43 +0000 +++ Makefile.in 2012-05-02 07:20:29 +0000 @@ -232,6 +232,11 @@ # ==================== Utility Programs for the Build ==================== # Allow the user to specify the install program. +# Note that if the system does not provide a suitable install, +# configure will use build-aux/install-sh. Annoyingly, it does +# not use an absolute path. So we must take care to always run +# INSTALL-type commands from the top-level directory. +# This explains (I think) the cd thisdir seen in several install rules. INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ @@ -616,7 +621,8 @@ for elt in $(INFO_FILES); do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \ - ${INSTALL_DATA} $$f $(DESTDIR)${infodir}/$$f; \ + (cd $${thisdir}; \ + ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \ chmod a+r $(DESTDIR)${infodir}/$$f; \ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ rm -f $(DESTDIR)${infodir}/$$f.gz; \ @@ -711,14 +717,14 @@ fi ; \ done -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} + thisdir=`/bin/pwd`; \ (cd $(DESTDIR)${infodir} && \ for elt in $(INFO_FILES); do \ - $(INSTALL_INFO) --remove --info-dir=. $$elt; \ + (cd $${thisdir}; \ + $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ - for f in `ls $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext 2>/dev/null`; do \ - rm -f $$f; \ - done; \ + rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \ done;) (if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-04-21 19:31:05 +0000 +++ admin/FOR-RELEASE 2012-04-30 07:46:03 +0000 @@ -37,6 +37,7 @@ What paper size are the English versions supposed to be on? On Debian testing, the packages texlive-lang-czechslovak and texlive-lang-polish will let you generate the cs-* and sk-* pdfs. +(You may need texlive-lang-cyrillic, texlive-lang-german for others.) The Makefile rules did not work for me, I had to use something like: csplain -output-format=pdf cs-refcard === modified file 'configure.in' --- configure.in 2012-05-01 01:13:18 +0000 +++ configure.in 2012-05-02 07:20:29 +0000 @@ -2931,9 +2931,7 @@ ;; netbsd) - if test $ac_cv_search_tputs = -lterminfo; then - LIBS_TERMCAP="-lterminfo" - else + if [ "x$LIBS_TERMCAP" != "x-lterminfo" ]; then TERMINFO=no LIBS_TERMCAP="-ltermcap" fi === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-04-27 06:08:14 +0000 +++ doc/emacs/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,22 @@ +2012-05-02 Glenn Morris + + * emacs.texi (@copying): Only print EDITION in the TeX version. + + * search.texi (Regexp Search): Just say "Emacs". + + * display.texi (Auto Scrolling): + Reword to avoid repetition and improve page break. + + * xresources.texi (Resources): + * mule.texi (Language Environments): + * misc.texi (Amusements): + * maintaining.texi (VC Change Log): + * frames.texi (Fonts): + * custom.texi (Specifying File Variables, Minibuffer Maps): + * cmdargs.texi (Initial Options): + * building.texi (Flymake): + Reword to remove/reduce some overly long/short lines. + 2012-04-27 Glenn Morris * emacs.texi: Some fixes for detailed menu. @@ -9213,7 +9232,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. === modified file 'doc/emacs/building.texi' --- doc/emacs/building.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/building.texi 2012-04-28 07:45:03 +0000 @@ -426,11 +426,11 @@ C/C++ files this is usually the C compiler. Flymake can also use build tools such as @code{make} for checking complicated projects. - To enable Flymake mode, type @kbd{M-x flymake-mode}. You can go to -the errors found by Flymake mode with @kbd{M-x -flymake-goto-next-error} and @kbd{M-x flymake-goto-prev-error}. To -display any error messages associated with the current line, use -@kbd{M-x flymake-display-err-menu-for-current-line}. + To enable Flymake mode, type @kbd{M-x flymake-mode}. You can jump to +the errors that it finds by using @kbd{M-x +flymake-goto-next-error} and @kbd{M-x flymake-goto-prev-error}. +Use the command @kbd{M-x flymake-display-err-menu-for-current-line} +to display any error messages associated with the current line. For more details about using Flymake, @ifnottex === modified file 'doc/emacs/cmdargs.texi' --- doc/emacs/cmdargs.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/cmdargs.texi 2012-04-28 07:45:03 +0000 @@ -308,7 +308,7 @@ @opindex -Q @itemx --quick @opindex --quick -Start emacs with minimum customizations, similar to using @samp{-q}, +Start emacs with minimum customizations. This is similar to using @samp{-q}, @samp{--no-site-file}, @samp{--no-site-lisp}, and @samp{--no-splash} together. This also stops Emacs from processing X resources by setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}). === modified file 'doc/emacs/custom.texi' --- doc/emacs/custom.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/custom.texi 2012-04-28 07:45:03 +0000 @@ -1054,8 +1054,8 @@ @findex add-file-local-variable-prop-line @findex delete-file-local-variable-prop-line @findex copy-dir-locals-to-file-locals-prop-line - Instead of adding variable/value pairs by hand, you can use the -command @kbd{M-x add-file-local-variable-prop-line}. This prompts for + You can use the command @kbd{M-x add-file-local-variable-prop-line} +instead of adding entries by hand. It prompts for a variable and value, and adds them to the first line in the appropriate way. @kbd{M-x delete-file-local-variable-prop-line} prompts for a variable, and deletes its entry from the line. @kbd{M-x @@ -1522,7 +1522,7 @@ @vindex minibuffer-local-completion-map @vindex minibuffer-local-must-match-map @vindex minibuffer-local-filename-completion-map -@vindex minibuffer-local-must-match-filename-map +@vindex minibuffer-local-filename-must-match-map The minibuffer has its own set of local keymaps; they contain various completion and exit commands. @@ -1539,7 +1539,7 @@ for cautious completion. @item @code{minibuffer-local-filename-completion-map} and -@code{minibuffer-local-must-match-filename-map} are like the two +@code{minibuffer-local-filename-must-match-map} are like the two previous ones, but they are specifically for file name completion. They do not bind @key{SPC}. @end itemize === modified file 'doc/emacs/display.texi' --- doc/emacs/display.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/display.texi 2012-04-30 06:51:44 +0000 @@ -260,14 +260,11 @@ These two variables are ignored if either @code{scroll-step} or @code{scroll-conservatively} are set to a non-zero value. - Note that @code{scroll-margin}, described below, limits the amount -of scrolling so as to put point outside of the top or bottom margin, -even if aggressive scrolling specifies a fraction @var{f} that is -larger than the window portion between the top and the bottom margins. - @vindex scroll-margin The variable @code{scroll-margin} restricts how close point can come -to the top or bottom of a window. Its value is a number of screen +to the top or bottom of a window (even if aggressive scrolling +specifies a fraction @var{f} that is larger than the window portion +between the top and the bottom margins). Its value is a number of screen lines; if point comes within that many lines of the top or bottom of the window, Emacs performs automatic scrolling. By default, @code{scroll-margin} is 0. === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2012-04-27 00:23:54 +0000 +++ doc/emacs/emacs.texi 2012-05-01 07:38:15 +0000 @@ -3,12 +3,27 @@ @setfilename ../../info/emacs @settitle GNU Emacs Manual -@c The edition number appears in several places in this file +@c The edition number appears in more than one place in this file +@c I don't really know what it means... +@c For example, it has said "Sixteenth" since sometime in the Emacs 22 +@c series, all through 23, and into 24. So it is not very useful IMO, +@c and offers nothing that EMACSVER does not. I guess it relates +@c mainly to the published book sold by the FSF. Hence no longer +@c bother including it except iftex. Really, I think it should not be +@c here at all (since anyone can make a pdf version), but should just +@c be something added by the FSF during the publishing process. +@c Also, the lispref uses a float (3.0), whereas this uses an ordinal, +@c so the format is not even consistent. @set EDITION Sixteenth @include emacsver.texi @copying +@iftex This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@* +@end iftex +@ifnottex +This is the @cite{GNU Emacs Manual}, +@end ifnottex updated for Emacs version @value{EMACSVER}. Copyright @copyright{} 1985-1987, 1993-2012 Free Software Foundation, Inc. === modified file 'doc/emacs/frames.texi' --- doc/emacs/frames.texi 2012-04-14 08:25:06 +0000 +++ doc/emacs/frames.texi 2012-04-28 07:45:03 +0000 @@ -666,8 +666,8 @@ Some font names support other values. @item widthtype The font width---normally @samp{normal}, @samp{condensed}, -@samp{extended}, or @samp{semicondensed} (some font names support -other values). +@samp{semicondensed}, or @samp{extended}. Some font names support +other values. @item style An optional additional style name. Usually it is empty---most XLFDs have two hyphens in a row at this point. === modified file 'doc/emacs/maintaining.texi' --- doc/emacs/maintaining.texi 2012-04-10 06:54:43 +0000 +++ doc/emacs/maintaining.texi 2012-04-28 07:45:03 +0000 @@ -893,7 +893,7 @@ (@code{vc-print-root-log}). @item C-x v I -Display the changes that will be received with a pull operation +Display the changes that a pull operation will retrieve (@code{vc-log-incoming}). @item C-x v O === modified file 'doc/emacs/misc.texi' --- doc/emacs/misc.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/misc.texi 2012-04-28 07:45:03 +0000 @@ -2481,8 +2481,8 @@ @findex animate-birthday-present @cindex animate - The @code{animate} package makes text dance. For an example, try -@kbd{M-x animate-birthday-present}. + The @code{animate} package makes text dance (e.g. try +@kbd{M-x animate-birthday-present}). @findex blackbox @findex mpuz === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2012-04-25 08:30:59 +0000 +++ doc/emacs/mule.texi 2012-04-28 07:45:03 +0000 @@ -350,7 +350,7 @@ @cindex Euro sign @cindex UTF-8 @quotation -ASCII, Belarusian, Bengali, Brazilian Portuguese, Bulgarian, +ASCII, Belarusian, Bengali, Brazilian Portuguese, Bulgarian, Cham, Chinese-BIG5, Chinese-CNS, Chinese-EUC-TW, Chinese-GB, Chinese-GBK, Chinese-GB18030, Croatian, Cyrillic-ALT, Cyrillic-ISO, Cyrillic-KOI8, Czech, Devanagari, Dutch, English, Esperanto, Ethiopic, French, === modified file 'doc/emacs/search.texi' --- doc/emacs/search.texi 2012-04-26 00:31:47 +0000 +++ doc/emacs/search.texi 2012-04-30 06:53:56 +0000 @@ -456,7 +456,7 @@ @cindex search for a regular expression A @dfn{regular expression} (or @dfn{regexp} for short) is a pattern -that denotes a class of alternative strings to match. GNU Emacs +that denotes a class of alternative strings to match. Emacs provides both incremental and nonincremental ways to search for a match for a regexp. The syntax of regular expressions is explained in the next section. === modified file 'doc/emacs/xresources.texi' --- doc/emacs/xresources.texi 2012-01-19 07:21:25 +0000 +++ doc/emacs/xresources.texi 2012-04-28 07:45:03 +0000 @@ -47,7 +47,7 @@ @command{xrdb}---for instance, @samp{xrdb ~/.Xdefaults}. @cindex registry, setting resources (MS-Windows) - (MS-Windows systems do not support X resource files; on Windows, + (MS-Windows systems do not support X resource files; on such systems, Emacs looks for X resources in the Windows Registry, first under the key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}, which affects only the current user and override the system-wide settings, and then under === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2012-04-14 01:46:06 +0000 +++ doc/lispintro/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,7 @@ +2012-05-02 Glenn Morris + + * emacs-lisp-intro.texi (Syntax): Reword to avoid underfull hbox. + 2012-04-14 Glenn Morris * Makefile.in: Replace non-portable use of $< in ordinary rules. @@ -498,7 +502,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2001-2012 Free Software Foundation, Inc. + Copyright (C) 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. === modified file 'doc/lispintro/emacs-lisp-intro.texi' --- doc/lispintro/emacs-lisp-intro.texi 2012-02-28 08:17:21 +0000 +++ doc/lispintro/emacs-lisp-intro.texi 2012-04-28 18:26:17 +0000 @@ -1084,6 +1084,14 @@ \fi @end tex +@c Note: this resetting of the page number back to 1 causes TeX to gripe +@c about already having seen page numbers 1-4 before (in the preface): +@c pdfTeX warning (ext4): destination with the same identifier (name{1}) +@c has been already used, duplicate ignored +@c I guess that is harmless (what happens if a later part of the text +@c makes a link to something in the first 4 pages though?). +@c Note that eg the Emacs manual has a preface, but does not bother +@c resetting the page numbers back to 1 after that. @iftex @headings off @evenheading @thispage @| @| @thischapter @@ -14855,7 +14863,7 @@ most common character within symbols that is not typically a word constituent character; there are others, too. -Alternatively, we can redefine the regular expression used in the +Alternatively, we can redefine the regexp used in the @code{@value{COUNT-WORDS}} definition so as to include symbols. This procedure has the merit of clarity, but the task is a little tricky. === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-04-27 03:10:38 +0000 +++ doc/lispref/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,19 @@ +2012-05-02 Glenn Morris + + * elisp.texi (@copying): + * intro.texi (Introduction): Only print VERSION in the TeX version. + +2012-05-02 Chong Yidong + + * text.texi (Change Hooks): Minor fix for after-change-functions. + +2012-05-02 Glenn Morris + + * package.texi (Packaging Basics): + * loading.texi (Autoload): + * files.texi (Magic File Names): + Reword to remove/reduce some overly long/short lines. + 2012-04-27 Glenn Morris * elisp.texi, vol1.texi, vol2.texi: Some fixes for detailed menu. === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-04-26 17:56:38 +0000 +++ doc/lispref/elisp.texi 2012-05-01 07:38:15 +0000 @@ -6,6 +6,7 @@ @c Version of the manual and of Emacs. @c Please remember to update these in vol1.texi and vol2.texi as well. +@c (See comments for EDITION in emacs.texi) @set VERSION 3.1 @include emacsver.texi @set DATE July 2012 @@ -40,7 +41,12 @@ @c @syncodeindex tp fn @copying -This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@* +@iftex +This is edition @value{VERSION} of the @cite{GNU Emacs Lisp Reference Manual},@* +@end iftex +@ifnottex +This is the @cite{GNU Emacs Lisp Reference Manual} +@end ifnottex corresponding to Emacs version @value{EMACSVER}. Copyright @copyright{} 1990-1996, 1998-2012 Free Software Foundation, Inc. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/files.texi 2012-05-02 07:20:29 +0000 @@ -2950,7 +2950,8 @@ @example (defun display-time-file-nonempty-p (file) - (let ((remote-file-name-inhibit-cache (- display-time-interval 5))) + (let ((remote-file-name-inhibit-cache + (- display-time-interval 5))) (and (file-exists-p file) (< 0 (nth 7 (file-attributes (file-chase-links file))))))) @end example === modified file 'doc/lispref/intro.texi' --- doc/lispref/intro.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/intro.texi 2012-05-02 07:20:29 +0000 @@ -33,8 +33,12 @@ chapters describe features that are peculiar to Emacs Lisp or relate specifically to editing. - This is edition @value{VERSION} of the GNU Emacs Lisp Reference -Manual, corresponding to Emacs version @value{EMACSVER}. + This is +@iftex +edition @value{VERSION} of +@end iftex +the @cite{GNU Emacs Lisp Reference Manual}, +corresponding to Emacs version @value{EMACSVER}. @menu * Caveats:: Flaws and a request for help. === modified file 'doc/lispref/loading.texi' --- doc/lispref/loading.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/loading.texi 2012-05-02 07:20:29 +0000 @@ -513,11 +513,10 @@ @file{mode-local.el}). @item Definitions for major or minor modes: -@code{define-derived-mode}, @code{define-minor-mode}, -@code{define-compilation-mode}, @code{define-generic-mode}, -@code{easy-mmode-define-global-mode}, @code{define-global-minor-mode}, -@code{define-globalized-minor-mode}, and -@code{easy-mmode-define-minor-mode}. +@code{define-minor-mode}, @code{define-globalized-minor-mode}, +@code{define-generic-mode}, @code{easy-mmode-define-minor-mode}, +@code{easy-mmode-define-global-mode}, @code{define-compilation-mode}, +@code{define-derived-mode}, and @code{define-global-minor-mode}. @item Other definition types: @code{defcustom}, @code{defgroup}, @code{defclass} === modified file 'doc/lispref/package.texi' --- doc/lispref/package.texi 2012-04-14 01:59:01 +0000 +++ doc/lispref/package.texi 2012-05-02 07:20:29 +0000 @@ -76,8 +76,8 @@ @end table @cindex content directory, package - Installing a package, either via the Package Menu, or via the -command @code{package-install-file}, creates a subdirectory of + Installing a package, either via the command @code{package-install-file}, +or via the Package Menu, creates a subdirectory of @code{package-user-dir} named @file{@var{name}-@var{version}}, where @var{name} is the package's name and @var{version} its version (e.g. @file{~/.emacs.d/elpa/auctex-11.86/}). We call this the === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2012-04-27 03:10:38 +0000 +++ doc/lispref/text.texi 2012-05-02 07:20:29 +0000 @@ -4333,15 +4333,15 @@ @defvar after-change-functions This variable holds a list of functions to call after any buffer -modification. Each function receives three arguments: the beginning and -end of the region just changed, and the length of the text that existed -before the change. All three arguments are integers. The buffer that's -about to change is always the current buffer. +modification. Each function receives three arguments: the beginning +and end of the region just changed, and the length of the text that +existed before the change. All three arguments are integers. The +buffer has been changed is always the current buffer. -The length of the old text is the difference between the buffer positions -before and after that text as it was before the change. As for the -changed text, its length is simply the difference between the first two -arguments. +The length of the old text is the difference between the buffer +positions before and after that text as it was before the change. As +for the changed text, its length is simply the difference between the +first two arguments. @end defvar Output of messages into the @file{*Messages*} buffer does not === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-01 22:28:14 +0000 +++ doc/misc/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,15 @@ +2012-05-02 Glenn Morris + + * viper.texi: Make direntry shorter (also it is no longer "newest"). + + * emacs-gnutls.texi, ert.texi, org.texi: + Fix dircategory, direntry to match info/dir. + + * faq.texi: Convert @inforefs to @xrefs. + Fix some malformed cross-references. + (File-name conventions): Shorten section name to avoid overfull line. + (How to add fonts): Use smallexample to avoid overfull lines. + 2012-05-01 Teodor Zlatanov * auth.texi (Help for users): Update for .gpg file being second. === modified file 'doc/misc/ert.texi' --- doc/misc/ert.texi 2012-01-05 09:46:05 +0000 +++ doc/misc/ert.texi 2012-05-02 01:22:26 +0000 @@ -4,9 +4,9 @@ @settitle Emacs Lisp Regression Testing @c %**end of header -@dircategory Emacs +@dircategory Emacs misc features @direntry -* ERT: (ert). Emacs Lisp Regression Testing. +* ERT: (ert). Emacs Lisp regression testing tool. @end direntry @copying === modified file 'doc/misc/faq.texi' --- doc/misc/faq.texi 2012-04-21 00:52:08 +0000 +++ doc/misc/faq.texi 2012-04-28 19:04:01 +0000 @@ -195,8 +195,7 @@ Also, on very few keyboards does @kbd{C-?} generate @acronym{ASCII} code 127. @c FIXME I cannot understand the previous sentence. -@inforef{Keys, Keys, emacs}, for more information. (@xref{Emacs -manual}, for more information about Info.) +@xref{Keys,,, emacs, The GNU Emacs Manual}. @node Extended commands @section What does @file{M-x @var{command}} mean? @@ -252,7 +251,7 @@ Emacs manual. @node File-name conventions -@section What are @file{etc/GNU}, @file{src/config.h}, @file{site-lisp/default.el}, etc.? +@section What are @file{src/config.h}, @file{site-lisp/default.el}, etc.? @cindex File-name conventions @cindex Conventions for file names @cindex Directories and files that come with Emacs @@ -1338,7 +1337,7 @@ @cindex Init file, setting up @cindex Customization file, setting up -@inforef{Init File, Init File, emacs}. +@xref{Init File,,, emacs, The GNU Emacs Manual}. In general, new Emacs users should not be provided with @file{.emacs} files, because this can cause confusing non-standard behavior. Then @@ -1353,8 +1352,8 @@ While Customize might indeed make it easier to configure Emacs, consider taking a bit of time to learn Emacs Lisp and modifying your @file{.emacs} directly. Simple configuration options are described -rather completely in @inforef{Init File, Init File, emacs}, for users -interested in performing frequently requested, basic tasks. +rather completely in @ref{Init File,,, emacs, The GNU Emacs Manual}, +for users interested in performing frequently requested, basic tasks. Sometimes users are unsure as to where their @file{.emacs} file should be found. Visiting the file as @file{~/.emacs} from Emacs will find @@ -1370,7 +1369,7 @@ command takes you to a buffer listing all the available Customize groups. From there, you can access all customizable options and faces, change their values, and save your changes to your init file. -@inforef{Easy Customization, Easy Customization, emacs}. +@xref{Easy Customization,,, emacs, The GNU Emacs Manual}. If you know the name of the group in advance (e.g. ``shell''), use @kbd{M-x customize-group @key{RET}}. @@ -1675,16 +1674,16 @@ @cindex Searching for newlines @cindex Replacing newlines -Use @kbd{C-q C-j}. For more information, see @inforef{Special Isearch, -Special Input for Incremental Search, emacs}. - +Use @kbd{C-q C-j}. For more information, +@pxref{Special Isearch,, Special Input for Incremental Search, emacs, +The GNU Emacs Manual}. @node Yanking text in isearch @section How do I copy text from the kill ring into the search string? @cindex Yanking text into the search string @cindex isearch yanking -Use @kbd{M-y}. @inforef{Isearch Yank, Isearch Yanking, emacs}. +Use @kbd{M-y}. @xref{Isearch Yank,,, emacs, The GNU Emacs Manual}. @node Wrapping words automatically @section How do I make Emacs wrap words for me? @@ -2133,7 +2132,7 @@ To repeat a set of commands, use keyboard macros. Use @kbd{C-x (} and @kbd{C-x )} to make a keyboard macro that invokes the command and then -type @kbd{C-x e}. (@inforef{Keyboard Macros, Keyboard Macros, emacs}.) +type @kbd{C-x e}. @xref{Keyboard Macros,,, emacs, The GNU Emacs Manual}. If you're really desperate for the @code{.} command in @code{vi} that redoes the last insertion/deletion, use VIPER, a @code{vi} emulation @@ -2145,7 +2144,7 @@ @cindex X resources @cindex Setting X resources -@inforef{X Resources, X Resources, emacs}. +@xref{X Resources,,, emacs, The GNU Emacs Manual}. You can also use a resource editor, such as editres (for X11R5 and onwards), to look at the resource names for the menu bar, assuming Emacs @@ -2256,7 +2255,7 @@ @cindex Suspending Emacs @kbd{C-z} iconifies Emacs when running under X and suspends Emacs -otherwise. @inforef{Frame Commands, Frame Commands, emacs}. +otherwise. @xref{Frame Commands,,, emacs, The GNU Emacs Manual}. @node Using regular expressions @section How do I use regexps (regular expressions) in Emacs? @@ -2266,7 +2265,7 @@ @cindex Unix regexps, differences from Emacs @cindex Text strings, putting regexps in -@inforef{Regexp Backslash, Regexp Backslash, emacs}. +@xref{Regexp Backslash,,, emacs, The GNU Emacs Manual}. The @code{or} operator is @samp{\|}, not @samp{|}, and the grouping operators are @samp{\(} and @samp{\)}. Also, the string syntax for a backslash is @@ -2323,7 +2322,7 @@ Another way to do the same thing is to use the ``tags'' feature of Emacs: it includes the command @code{tags-query-replace} which performs a query-replace across all the files mentioned in the @file{TAGS} file. -@inforef{Tags Search, Tags Search, emacs}. +@xref{Tags Search,,, emacs, The GNU Emacs Manual}. @node Documentation for etags @section Where is the documentation for @code{etags}? @@ -2366,8 +2365,8 @@ @code{ls} is part of the GNU Fileutils package, available from @samp{ftp.gnu.org} and its mirrors (@pxref{Current GNU distributions}). -To disable or change the way backups are made, @inforef{Backup Names, , -emacs}. +To disable or change the way backups are made, +@pxref{Backup Names,,, emacs, The GNU Emacs Manual}. @cindex Backup files in a single directory Beginning with Emacs 21.1, you can control where Emacs puts backup files @@ -2397,8 +2396,8 @@ package also allows you to place all auto-save files in one directory, such as @file{/tmp}. -To disable or change how @code{auto-save-mode} works, @inforef{Auto -Save, , emacs}. +To disable or change how @code{auto-save-mode} works, +@pxref{Auto Save,,, emacs, The GNU Emacs Manual}. @node Going to a line by number @section How can I go to a certain line given its number? @@ -2621,7 +2620,7 @@ Customize the @code{scroll-conservatively} variable with @kbd{M-x customize-variable @key{RET} scroll-conservatively @key{RET}} and set it to a large value like, say, 10000. For an explanation of what this -means, @inforef{Auto Scrolling, Auto Scrolling, emacs}. +means, @pxref{Auto Scrolling,,, emacs, The GNU Emacs Manual}. Alternatively, use the following Lisp form in your @file{.emacs}: @@ -2692,8 +2691,8 @@ To avoid the slightly distracting visual effect of Emacs starting with its default frame size and then growing to fullscreen, you can add an -@samp{Emacs.Geometry} entry to the Windows registry settings (see -@pxref{(emacs)X Resources}). +@samp{Emacs.Geometry} entry to the Windows registry settings. +@xref{X Resources,,, emacs, The GNU Emacs Manual}. To compute the correct values for width and height, first maximize the Emacs frame and then evaluate @code{(frame-height)} and @@ -3058,7 +3057,7 @@ code found at the bottom of files by setting the variable @code{enable-local-eval}. -For more information, @inforef{File Variables, File Variables, emacs}. +@xref{File Variables,,, emacs, The GNU Emacs Manual}. @item Synthetic X events. (Yes, a risk; use @samp{MIT-MAGIC-COOKIE-1} or @@ -3501,7 +3500,7 @@ To bind a key just in the current major mode, type @kbd{M-x local-set-key @key{RET} @var{key} @var{cmd} @key{RET}}. -@inforef{Key Bindings, Key Bindings, emacs}, for further details. +@xref{Key Bindings,,, emacs, The GNU Emacs Manual}. To make the process of binding keys interactively easier, use the following ``trick'': First bind the key interactively, then immediately @@ -3766,8 +3765,8 @@ However, in the specific case of @kbd{C-h} and @key{DEL}, you should toggle @code{normal-erase-is-backspace-mode} instead of calling -@code{keyboard-translate}. @inforef{DEL Does Not Delete, DEL Does Not Delete, -emacs}. +@code{keyboard-translate}. +@xref{DEL Does Not Delete,,, emacs, The GNU Emacs Manual}. Keyboard translations are not the same as key bindings in keymaps. Emacs contains numerous keymaps that apply in different situations, but @@ -3895,7 +3894,7 @@ @cindex @key{Meta} key and @code{xterm} @cindex Xterm and @key{Meta} key -@inforef{Unibyte Mode, Single-Byte Character Set Support, emacs}. +@xref{Unibyte Mode,, Single-Byte Character Set Support, emacs, The GNU Emacs Manual}. If the advice in the Emacs manual fails, try all of these methods before asking for further help: @@ -4019,8 +4018,8 @@ @cindex Displaying eight-bit characters @cindex Eight-bit characters, displaying -@inforef{Unibyte Mode, Single-byte Character Set -Support, emacs}. On a Unix, when Emacs runs on a text-only terminal +@xref{Unibyte Mode,, Single-byte Character Set Support, emacs, The GNU +Emacs Manual}. On a Unix, when Emacs runs on a text-only terminal display or is invoked with @samp{emacs -nw}, you typically need to use @code{set-terminal-coding-system} to tell Emacs what the terminal can display, even after setting the language environment; otherwise @@ -4035,10 +4034,10 @@ @cindex Eight-bit characters, entering @cindex Input, 8-bit characters -Various methods are available for input of eight-bit characters. See -@inforef{Unibyte Mode, Single-byte Character Set -Support, emacs}. For more sophisticated methods, @inforef{Input -Methods, Input Methods, emacs}. +Various methods are available for input of eight-bit characters. +@xref{Unibyte Mode,, Single-byte Character Set Support, emacs, The GNU +Emacs Manual}. For more sophisticated methods, +@pxref{Input Methods,,, emacs, The GNU Emacs Manual}. @node Right-to-left alphabets @section Where is an Emacs that can handle Semitic (right-to-left) alphabets? @@ -4133,7 +4132,7 @@ Now, create fontsets for the BDF fonts: -@lisp +@smallexample (create-fontset-from-fontset-spec "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf, japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*, @@ -4145,7 +4144,7 @@ tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1, ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode, tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0") -@end lisp +@end smallexample Many of the international bdf fonts from Intlfonts are type 0, and therefore need to be added to font-encoding-alist: @@ -4377,7 +4376,7 @@ Use @kbd{M-x gnus}. For more information on Gnus, @pxref{Top,, the Gnus Manual, gnus, The Gnus Manual}, which includes @ref{Frequently Asked -Questions,, the Gnus FAQ, gnus}. +Questions,, the Gnus FAQ, gnus, The Gnus Manual}. @node Gnus does not work with NNTP === modified file 'doc/misc/org.texi' --- doc/misc/org.texi 2012-04-11 10:59:50 +0000 +++ doc/misc/org.texi 2012-05-02 01:22:26 +0000 @@ -286,7 +286,7 @@ @end quotation @end copying -@dircategory Emacs +@dircategory Emacs editing modes @direntry * Org Mode: (org). Outline-based notes management and organizer @end direntry === modified file 'doc/misc/viper.texi' --- doc/misc/viper.texi 2012-02-28 08:17:21 +0000 +++ doc/misc/viper.texi 2012-05-02 01:22:26 +0000 @@ -25,9 +25,7 @@ @dircategory Emacs misc features @direntry -* VIPER: (viper). The newest Emacs VI-emulation mode. - (also, A VI Plan for Emacs Rescue - or the VI PERil.) +* VIPER: (viper). A VI-emulation mode for Emacs. @end direntry @finalout === modified file 'etc/refcards/calccard.pdf' Binary files etc/refcards/calccard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/calccard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/cs-dired-ref.pdf' Binary files etc/refcards/cs-dired-ref.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/cs-dired-ref.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/cs-refcard.pdf' Binary files etc/refcards/cs-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/cs-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/de-refcard.pdf' Binary files etc/refcards/de-refcard.pdf 2010-03-01 08:58:52 +0000 and etc/refcards/de-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/dired-ref.pdf' Binary files etc/refcards/dired-ref.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/dired-ref.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/fr-dired-ref.pdf' Binary files etc/refcards/fr-dired-ref.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/fr-dired-ref.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/fr-refcard.pdf' Binary files etc/refcards/fr-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/fr-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/gnus-booklet.pdf' Binary files etc/refcards/gnus-booklet.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/gnus-booklet.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/gnus-refcard.pdf' Binary files etc/refcards/gnus-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/gnus-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/pl-refcard.pdf' Binary files etc/refcards/pl-refcard.pdf 2010-03-01 09:15:04 +0000 and etc/refcards/pl-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/pt-br-refcard.pdf' Binary files etc/refcards/pt-br-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/pt-br-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/refcard.pdf' Binary files etc/refcards/refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/ru-refcard.pdf' Binary files etc/refcards/ru-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/ru-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/sk-dired-ref.pdf' Binary files etc/refcards/sk-dired-ref.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/sk-dired-ref.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'etc/refcards/sk-refcard.pdf' Binary files etc/refcards/sk-refcard.pdf 2010-03-01 08:06:52 +0000 and etc/refcards/sk-refcard.pdf 2012-04-30 07:46:03 +0000 differ === modified file 'info/dir' --- info/dir 2012-04-14 01:46:06 +0000 +++ info/dir 2012-05-02 07:20:29 +0000 @@ -19,6 +19,7 @@ * Menu: +Texinfo documentation system * Info: (info). How to use the documentation browsing system. Emacs @@ -54,7 +55,7 @@ you're replying to, in flexible ways. * Sieve: (sieve). Managing Sieve scripts in Emacs. * TRAMP: (tramp). Transparent Remote Access, Multiple Protocol - GNU Emacs remote file access via rsh and rcp. + Emacs remote file access via rsh and rcp. Emacs misc features * Autotype: (autotype). Convenient features for text that you enter @@ -67,7 +68,7 @@ * Ediff: (ediff). A visual interface for comparing and merging programs. * EDT: (edt). An Emacs emulation of the EDT editor. -* EIEIO: (eieio). An object system for Emacs Lisp. +* EIEIO: (eieio). An objects system for Emacs Lisp. * ERT: (ert). Emacs Lisp regression testing tool. * Eshell: (eshell). A command shell implemented in Emacs Lisp. * Flymake: (flymake). A universal on-the-fly syntax checker. @@ -77,18 +78,15 @@ * RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. * Remember: (remember). Simple information manager for Emacs. -* Semantic: (semantic). Source code parsing utilities for Emacs. -* SES: (ses). Simple Emacs Spreadsheet +* Semantic: (semantic). Source code parser library and utilities. +* SES: (ses). Simple Emacs Spreadsheet. * Speedbar: (speedbar). File/Tag summarizing utility. * VIP: (vip). An older VI-emulation for Emacs. -* VIPER: (viper). The newest Emacs VI-emulation mode. - (also, A VI Plan for Emacs Rescue - or the VI PERil.) +* VIPER: (viper). A VI-emulation mode for Emacs. * WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man". Emacs lisp libraries -* Auth-source: (auth). A single configuration for multiple - applications. +* Auth-source: (auth). The Emacs auth-source library. * CL: (cl). Partial Common Lisp support for Emacs Lisp. * D-Bus: (dbus). Using D-Bus in Emacs. * Emacs MIME: (emacs-mime). Emacs MIME de/composition library. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-01 21:06:59 +0000 +++ lisp/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,18 @@ +2012-05-02 Eli Zaretskii + + * mail/rmail.el (rmail-yank-current-message): Use the encoding of + the yanked message in preference to the default value of + buffer-file-coding-system. + +2012-05-02 Martin Rudalics + + * window.el (display-buffer--action-function-custom-type): Fix + entry. + +2012-05-02 Alan Mackenzie + + * progmodes/cc-defs.el (c-version): Update to 5.32.3. + 2012-05-01 Glenn Morris * cus-start.el (suggest-key-bindings): Remove, now it is in Lisp. === modified file 'lisp/mail/rmail.el' --- lisp/mail/rmail.el 2012-04-27 03:10:38 +0000 +++ lisp/mail/rmail.el 2012-05-02 07:20:29 +0000 @@ -3570,8 +3570,17 @@ (with-current-buffer buffer (unless (rmail-buffers-swapped-p) (setq buffer rmail-view-buffer))) - (insert-buffer buffer)) - + (insert-buffer buffer) + ;; If they yank the text of BUFFER, the encoding of BUFFER is a + ;; better default for the reply message than the default value of + ;; buffer-file-coding-system. + (and (coding-system-equal (default-value 'buffer-file-coding-system) + buffer-file-coding-system) + (setq buffer-file-coding-system + (coding-system-change-text-conversion + buffer-file-coding-system (coding-system-base + (with-current-buffer buffer + buffer-file-coding-system)))))) (defun rmail-start-mail (&optional noerase to subject in-reply-to cc replybuffer sendactions same-window === modified file 'lisp/progmodes/cc-defs.el' --- lisp/progmodes/cc-defs.el 2012-01-19 07:21:25 +0000 +++ lisp/progmodes/cc-defs.el 2012-04-27 17:49:31 +0000 @@ -93,7 +93,7 @@ ;;; Variables also used at compile time. -(defconst c-version "5.32.2" +(defconst c-version "5.32.3" "CC Mode version number.") (defconst c-version-sym (intern c-version)) === modified file 'lisp/window.el' --- lisp/window.el 2012-04-27 03:10:38 +0000 +++ lisp/window.el 2012-05-02 07:20:29 +0000 @@ -4611,7 +4611,7 @@ '(choice :tag "Function" (const :tag "--" ignore) ; default for insertion (const display-buffer-reuse-window) - (const display-buffer-use-some-window) + (const display-buffer-pop-up-window) (const display-buffer-same-window) (const display-buffer-pop-up-frame) (const display-buffer-use-some-window) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-01 16:10:02 +0000 +++ src/ChangeLog 2012-05-02 07:20:29 +0000 @@ -1,3 +1,10 @@ +2012-05-02 Eli Zaretskii + + * xdisp.c (pos_visible_p): If already at a newline from the + display string before the 'while' loop, don't walk back the glyphs + from it3.glyph_row. Solves assertion violation when the display + string begins with a newline (egg.el). (Bug#11367) + 2012-05-01 Stefan Monnier * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings): === modified file 'src/xdisp.c' --- src/xdisp.c 2012-04-27 03:10:38 +0000 +++ src/xdisp.c 2012-05-02 07:20:29 +0000 @@ -1385,6 +1385,7 @@ Lisp_Object startpos, endpos; EMACS_INT start, end; struct it it3; + int it3_moved; /* Find the first and the last buffer positions covered by the display string. */ @@ -1441,6 +1442,15 @@ begins. */ start_display (&it3, w, top); move_it_to (&it3, -1, 0, top_y, -1, MOVE_TO_X | MOVE_TO_Y); + /* If it3_moved stays zero after the 'while' loop + below, that means we already were at a newline + before the loop (e.g., the display string begins + with a newline), so we don't need to (and cannot) + inspect the glyphs of it3.glyph_row, because + PRODUCE_GLYPHS will not produce anything for a + newline, and thus it3.glyph_row stays at its + stale content it got at top of the window. */ + it3_moved = 0; /* Finally, advance the iterator until we hit the first display element whose character position is CHARPOS, or until the first newline from the @@ -1452,6 +1462,7 @@ if (IT_CHARPOS (it3) == charpos || ITERATOR_AT_END_OF_LINE_P (&it3)) break; + it3_moved = 1; set_iterator_to_next (&it3, 0); } top_x = it3.current_x - it3.pixel_width; @@ -1462,7 +1473,8 @@ display string, move back over the glyphs produced from the string, until we find the rightmost glyph not from the string. */ - if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string)) + if (it3_moved + && IT_CHARPOS (it3) != charpos && EQ (it3.object, string)) { struct glyph *g = it3.glyph_row->glyphs[TEXT_AREA] + it3.glyph_row->used[TEXT_AREA]; ------------------------------------------------------------ revno: 108090 committer: Glenn Morris branch nick: trunk timestamp: Wed 2012-05-02 00:12:52 -0700 message: * admin/bzrmerge.el (bzrmerge-skip-regexp): Add "Auto-commit". diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-04-10 17:27:01 +0000 +++ admin/ChangeLog 2012-05-02 07:12:52 +0000 @@ -1,3 +1,7 @@ +2012-05-02 Glenn Morris + + * bzrmerge.el (bzrmerge-skip-regexp): Add "Auto-commit". + 2012-04-10 Glenn Morris * bzrmerge.el (bzrmerge-skip-regexp): Add "from trunk". @@ -1262,7 +1266,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2001-2012 Free Software Foundation, Inc. + Copyright (C) 2001-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. === modified file 'admin/bzrmerge.el' --- admin/bzrmerge.el 2012-04-10 17:27:01 +0000 +++ admin/bzrmerge.el 2012-05-02 07:12:52 +0000 @@ -28,7 +28,8 @@ (require 'cl)) ; assert (defvar bzrmerge-skip-regexp - "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk" + "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\ +Auto-commit" "Regexp matching logs of revisions that might be skipped. `bzrmerge-missing' will ask you if it should skip any matches.") ------------------------------------------------------------ revno: 108089 committer: Glenn Morris branch nick: trunk timestamp: Tue 2012-05-01 22:10:43 -0400 message: * Makefile.in (install-arch-indep): Combine install-data, install-info loops. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-01 21:05:28 +0000 +++ ChangeLog 2012-05-02 02:10:43 +0000 @@ -1,3 +1,8 @@ +2012-05-02 Glenn Morris + + * Makefile.in (install-arch-indep): + Combine adjacent install-data and install-info loops. + 2012-05-01 Glenn Morris * Makefile.in (MAN_PAGES): Remove. === modified file 'Makefile.in' --- Makefile.in 2012-05-01 21:05:28 +0000 +++ Makefile.in 2012-05-02 02:10:43 +0000 @@ -623,18 +623,10 @@ ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ else true; fi; \ done; \ + (cd $${thisdir}; \ + ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ done); \ else true; fi - -unset CDPATH; \ - thisdir=`/bin/pwd`; \ - if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \ - then \ - for elt in $(INFO_FILES); do \ - test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ - (cd $${thisdir}; \ - ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ - done; \ - else true; fi -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.