# HG changeset patch # User Eli Zaretskii # Date 1265478645 18000 # Node ID a2c01839283be314ac7d1bbbea50b549a70761a6 # Parent 79cb7ef6ffda8f7370cb23378e49e46da9b6f390# Parent 0afb47d42c748058bcf94508cdc0efcd83aee9c0 Merge from mainline. diff -r 79cb7ef6ffda -r a2c01839283b doc/misc/ChangeLog --- a/doc/misc/ChangeLog Sat Feb 06 12:47:35 2010 -0500 +++ b/doc/misc/ChangeLog Sat Feb 06 12:50:45 2010 -0500 @@ -1,3 +1,7 @@ +2010-02-05 Mark A. Hershberger + + * ede.texi, eieio.texi, semantic.texi: Use standard direntry format. + 2010-01-21 Katsumi Yamaoka * gnus.texi (Score File Format): Fix typo. diff -r 79cb7ef6ffda -r a2c01839283b doc/misc/ede.texi --- a/doc/misc/ede.texi Sat Feb 06 12:47:35 2010 -0500 +++ b/doc/misc/ede.texi Sat Feb 06 12:50:45 2010 -0500 @@ -22,13 +22,10 @@ @end quotation @end copying -@ifinfo -@format -START-INFO-DIR-ENTRY +@dircategory Emacs +@direntry * ede: (ede). Project management for Emacs -END-INFO-DIR-ENTRY -@end format -@end ifinfo +@end direntry @titlepage @center @titlefont{EDE (The Emacs Development Environment)} diff -r 79cb7ef6ffda -r a2c01839283b doc/misc/eieio.texi --- a/doc/misc/eieio.texi Sat Feb 06 12:47:35 2010 -0500 +++ b/doc/misc/eieio.texi Sat Feb 06 12:50:45 2010 -0500 @@ -27,13 +27,10 @@ @end quotation @end copying -@ifinfo -@format -START-INFO-DIR-ENTRY +@dircategory Emacs +@direntry * eieio: (eieio). Objects for Emacs -END-INFO-DIR-ENTRY -@end format -@end ifinfo +@end direntry @titlepage @center @titlefont{@value{TITLE}} diff -r 79cb7ef6ffda -r a2c01839283b doc/misc/semantic.texi --- a/doc/misc/semantic.texi Sat Feb 06 12:47:35 2010 -0500 +++ b/doc/misc/semantic.texi Sat Feb 06 12:50:45 2010 -0500 @@ -41,13 +41,10 @@ @end quotation @end copying -@ifinfo -@format -START-INFO-DIR-ENTRY +@dircategory Emacs +@direntry * Semantic: (semantic). Source code parser library and utilities. -END-INFO-DIR-ENTRY -@end format -@end ifinfo +@end direntry @titlepage @center @titlefont{Semantic} diff -r 79cb7ef6ffda -r a2c01839283b lisp/ChangeLog --- a/lisp/ChangeLog Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/ChangeLog Sat Feb 06 12:50:45 2010 -0500 @@ -1,3 +1,22 @@ +2010-02-06 Chong Yidong + + * progmodes/cc-mode.el (c-common-init): Bind temporary variables + beg and end before calling c-get-state-before-change-functions. + +2010-02-06 Dan Nicolaescu + + * vc-bzr.el (vc-bzr-dir-extra-headers): Disable the pending merges header. + +2010-02-05 Juri Linkov + + * doc-view.el (doc-view-mode): + * image-mode.el (image-mode): Put property mode-class=special. + (Bug#4896) + +2010-02-05 Mark A. Hershberger + + * vc-svn.el (vc-svn-revision-table): New function. + 2010-02-05 Michael Albinus * net/ange-ftp.el (ange-ftp-insert-directory): diff -r 79cb7ef6ffda -r a2c01839283b lisp/doc-view.el --- a/lisp/doc-view.el Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/doc-view.el Sat Feb 06 12:50:45 2010 -0500 @@ -1134,7 +1134,7 @@ ;;;; User interface commands and the mode -;; (put 'doc-view-mode 'mode-class 'special) +(put 'doc-view-mode 'mode-class 'special) (defun doc-view-already-converted-p () "Return non-nil if the current doc was already converted." diff -r 79cb7ef6ffda -r a2c01839283b lisp/image-mode.el --- a/lisp/image-mode.el Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/image-mode.el Sat Feb 06 12:50:45 2010 -0500 @@ -317,6 +317,8 @@ (defvar bookmark-make-record-function) +(put 'image-mode 'mode-class 'special) + ;;;###autoload (defun image-mode () "Major mode for image files. diff -r 79cb7ef6ffda -r a2c01839283b lisp/progmodes/cc-mode.el --- a/lisp/progmodes/cc-mode.el Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/progmodes/cc-mode.el Sat Feb 06 12:50:45 2010 -0500 @@ -642,9 +642,11 @@ (widen) (save-excursion (if c-get-state-before-change-functions - (mapc (lambda (fn) - (funcall fn beg end)) - c-get-state-before-change-functions)) + (let ((beg (point-min)) + (end (point-max))) + (mapc (lambda (fn) + (funcall fn beg end)) + c-get-state-before-change-functions))) (if c-before-font-lock-function (funcall c-before-font-lock-function (point-min) (point-max) (- (point-max) (point-min)))))) diff -r 79cb7ef6ffda -r a2c01839283b lisp/vc-bzr.el --- a/lisp/vc-bzr.el Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/vc-bzr.el Sat Feb 06 12:50:45 2010 -0500 @@ -796,8 +796,12 @@ (shelve-help-echo "Use M-x vc-bzr-shelve to create shelves") (root-dir (vc-bzr-root dir)) (pending-merge - (file-exists-p - (expand-file-name ".bzr/checkout/merge-hashes" root-dir))) + ;; FIXME: looking for .bzr/checkout/merge-hashes is not a + ;; reliable method to detect pending merges, disable this + ;; until a proper solution is implemented. + (and nil + (file-exists-p + (expand-file-name ".bzr/checkout/merge-hashes" root-dir)))) (pending-merge-help-echo (format "A merge has been performed.\nA commit from the top-level directory (%s)\nis required before being able to check in anything else" root-dir)) (light-checkout diff -r 79cb7ef6ffda -r a2c01839283b lisp/vc-svn.el --- a/lisp/vc-svn.el Sat Feb 06 12:47:35 2010 -0500 +++ b/lisp/vc-svn.el Sat Feb 06 12:50:45 2010 -0500 @@ -31,6 +31,10 @@ (eval-when-compile (require 'vc)) +;; Clear up the cache to force vc-call to check again and discover +;; new functions when we reload this file. +(put 'SVN 'vc-functions nil) + ;;; ;;; Customization options ;;; @@ -722,6 +726,21 @@ (beginning-of-line) (if (looking-at vc-svn-annotate-re) (match-string 1)))) +(defun vc-svn-revision-table (files) + (let ((vc-svn-revisions '())) + (with-current-buffer "*vc*" + (vc-svn-command nil 0 files "log" "-q") + (goto-char (point-min)) + (forward-line) + (let ((start (point-min)) + (loglines (buffer-substring-no-properties (point-min) + (point-max)))) + (while (string-match "^r\\([0-9]+\\) " loglines) + (push (match-string 1 loglines) vc-svn-revisions) + (setq start (+ start (match-end 0))) + (setq loglines (buffer-substring-no-properties start (point-max))))) + vc-svn-revisions))) + (provide 'vc-svn) ;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d diff -r 79cb7ef6ffda -r a2c01839283b src/ChangeLog --- a/src/ChangeLog Sat Feb 06 12:47:35 2010 -0500 +++ b/src/ChangeLog Sat Feb 06 12:50:45 2010 -0500 @@ -1,3 +1,9 @@ +2010-02-06 Chong Yidong + + * charset.c (load_charset_map_from_file) + (load_charset_map_from_vector): Fix last change to use SAFE_ALLOCA + instead of xmalloc (Bug#5526). Suggested by Vivek Dasmohapatra. + 2010-02-05 Chong Yidong * charset.c (load_charset_map_from_file): Allocate large diff -r 79cb7ef6ffda -r a2c01839283b src/charset.c --- a/src/charset.c Sat Feb 06 12:47:35 2010 -0500 +++ b/src/charset.c Sat Feb 06 12:50:45 2010 -0500 @@ -512,12 +512,13 @@ int eof; Lisp_Object suffixes; struct charset_map_entries *head, *entries; - int n_entries; - int count = SPECPDL_INDEX (); + int n_entries, count; + USE_SAFE_ALLOCA; suffixes = Fcons (build_string (".map"), Fcons (build_string (".TXT"), Qnil)); + count = SPECPDL_INDEX (); specbind (Qfile_name_handler_alist, Qnil); fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil); unbind_to (count, Qnil); @@ -525,8 +526,12 @@ || ! (fp = fdopen (fd, "r"))) error ("Failure in loading charset map: %S", SDATA (mapfile)); - head = entries = ((struct charset_map_entries *) - xmalloc (sizeof (struct charset_map_entries))); + /* Use SAFE_ALLOCA instead of alloca, as `charset_map_entries' is + large (larger than MAX_ALLOCA). */ + SAFE_ALLOCA (head, struct charset_map_entries *, + sizeof (struct charset_map_entries)); + entries = head; + n_entries = 0; eof = 0; while (1) @@ -549,8 +554,8 @@ if (n_entries > 0 && (n_entries % 0x10000) == 0) { - entries->next = ((struct charset_map_entries *) - alloca (sizeof (struct charset_map_entries))); + SAFE_ALLOCA (entries->next, struct charset_map_entries *, + sizeof (struct charset_map_entries)); entries = entries->next; } idx = n_entries % 0x10000; @@ -563,7 +568,7 @@ close (fd); load_charset_map (charset, head, n_entries, control_flag); - xfree (head); + SAFE_FREE (); } static void @@ -578,6 +583,7 @@ int n_entries; int len = ASIZE (vec); int i; + USE_SAFE_ALLOCA; if (len % 2 == 1) { @@ -585,8 +591,12 @@ return; } - head = entries = ((struct charset_map_entries *) - alloca (sizeof (struct charset_map_entries))); + /* Use SAFE_ALLOCA instead of alloca, as `charset_map_entries' is + large (larger than MAX_ALLOCA). */ + SAFE_ALLOCA (head, struct charset_map_entries *, + sizeof (struct charset_map_entries)); + entries = head; + n_entries = 0; for (i = 0; i < len; i += 2) { @@ -619,8 +629,8 @@ if (n_entries > 0 && (n_entries % 0x10000) == 0) { - entries->next = ((struct charset_map_entries *) - alloca (sizeof (struct charset_map_entries))); + SAFE_ALLOCA (entries->next, struct charset_map_entries *, + sizeof (struct charset_map_entries)); entries = entries->next; } idx = n_entries % 0x10000; @@ -631,6 +641,7 @@ } load_charset_map (charset, head, n_entries, control_flag); + SAFE_FREE (); }