diff options
| author | Eli Zaretskii | 2010-02-06 12:50:45 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2010-02-06 12:50:45 -0500 |
| commit | 9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed (patch) | |
| tree | cd0e293690d927c44d2eea4a7453f6aba3ce5344 | |
| parent | e5f95dc5a35a7ff655527b08d73c05cd3f6f1dc7 (diff) | |
| parent | 953d248c55173853e6cffb01a5348703faf4e990 (diff) | |
| download | emacs-9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed.tar.gz emacs-9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed.zip | |
Merge from mainline.
| -rw-r--r-- | doc/misc/ChangeLog | 4 | ||||
| -rw-r--r-- | doc/misc/ede.texi | 9 | ||||
| -rw-r--r-- | doc/misc/eieio.texi | 9 | ||||
| -rw-r--r-- | doc/misc/semantic.texi | 9 | ||||
| -rw-r--r-- | lisp/ChangeLog | 19 | ||||
| -rw-r--r-- | lisp/doc-view.el | 2 | ||||
| -rw-r--r-- | lisp/image-mode.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/cc-mode.el | 8 | ||||
| -rw-r--r-- | lisp/vc-bzr.el | 8 | ||||
| -rw-r--r-- | lisp/vc-svn.el | 19 | ||||
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/charset.c | 33 |
12 files changed, 93 insertions, 35 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 00035f6ca15..9560073251b 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2010-02-05 Mark A. Hershberger <mah@everybody.org> | ||
| 2 | |||
| 3 | * ede.texi, eieio.texi, semantic.texi: Use standard direntry format. | ||
| 4 | |||
| 1 | 2010-01-21 Katsumi Yamaoka <yamaoka@jpl.org> | 5 | 2010-01-21 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 6 | ||
| 3 | * gnus.texi (Score File Format): Fix typo. | 7 | * gnus.texi (Score File Format): Fix typo. |
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index a40553362bd..035f0f0f187 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi | |||
| @@ -22,13 +22,10 @@ developing GNU and promoting software freedom.'' | |||
| 22 | @end quotation | 22 | @end quotation |
| 23 | @end copying | 23 | @end copying |
| 24 | 24 | ||
| 25 | @ifinfo | 25 | @dircategory Emacs |
| 26 | @format | 26 | @direntry |
| 27 | START-INFO-DIR-ENTRY | ||
| 28 | * ede: (ede). Project management for Emacs | 27 | * ede: (ede). Project management for Emacs |
| 29 | END-INFO-DIR-ENTRY | 28 | @end direntry |
| 30 | @end format | ||
| 31 | @end ifinfo | ||
| 32 | 29 | ||
| 33 | @titlepage | 30 | @titlepage |
| 34 | @center @titlefont{EDE (The Emacs Development Environment)} | 31 | @center @titlefont{EDE (The Emacs Development Environment)} |
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 8b70d16f998..b5567f3a489 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi | |||
| @@ -27,13 +27,10 @@ developing GNU and promoting software freedom.'' | |||
| 27 | @end quotation | 27 | @end quotation |
| 28 | @end copying | 28 | @end copying |
| 29 | 29 | ||
| 30 | @ifinfo | 30 | @dircategory Emacs |
| 31 | @format | 31 | @direntry |
| 32 | START-INFO-DIR-ENTRY | ||
| 33 | * eieio: (eieio). Objects for Emacs | 32 | * eieio: (eieio). Objects for Emacs |
| 34 | END-INFO-DIR-ENTRY | 33 | @end direntry |
| 35 | @end format | ||
| 36 | @end ifinfo | ||
| 37 | 34 | ||
| 38 | @titlepage | 35 | @titlepage |
| 39 | @center @titlefont{@value{TITLE}} | 36 | @center @titlefont{@value{TITLE}} |
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi index bf618b9e09d..08d82d35a43 100644 --- a/doc/misc/semantic.texi +++ b/doc/misc/semantic.texi | |||
| @@ -41,13 +41,10 @@ developing GNU and promoting software freedom.'' | |||
| 41 | @end quotation | 41 | @end quotation |
| 42 | @end copying | 42 | @end copying |
| 43 | 43 | ||
| 44 | @ifinfo | 44 | @dircategory Emacs |
| 45 | @format | 45 | @direntry |
| 46 | START-INFO-DIR-ENTRY | ||
| 47 | * Semantic: (semantic). Source code parser library and utilities. | 46 | * Semantic: (semantic). Source code parser library and utilities. |
| 48 | END-INFO-DIR-ENTRY | 47 | @end direntry |
| 49 | @end format | ||
| 50 | @end ifinfo | ||
| 51 | 48 | ||
| 52 | @titlepage | 49 | @titlepage |
| 53 | @center @titlefont{Semantic} | 50 | @center @titlefont{Semantic} |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9013caf2026..cbada0d62c6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,22 @@ | |||
| 1 | 2010-02-06 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * progmodes/cc-mode.el (c-common-init): Bind temporary variables | ||
| 4 | beg and end before calling c-get-state-before-change-functions. | ||
| 5 | |||
| 6 | 2010-02-06 Dan Nicolaescu <dann@ics.uci.edu> | ||
| 7 | |||
| 8 | * vc-bzr.el (vc-bzr-dir-extra-headers): Disable the pending merges header. | ||
| 9 | |||
| 10 | 2010-02-05 Juri Linkov <juri@jurta.org> | ||
| 11 | |||
| 12 | * doc-view.el (doc-view-mode): | ||
| 13 | * image-mode.el (image-mode): Put property mode-class=special. | ||
| 14 | (Bug#4896) | ||
| 15 | |||
| 16 | 2010-02-05 Mark A. Hershberger <mah@everybody.org> | ||
| 17 | |||
| 18 | * vc-svn.el (vc-svn-revision-table): New function. | ||
| 19 | |||
| 1 | 2010-02-05 Michael Albinus <michael.albinus@gmx.de> | 20 | 2010-02-05 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 21 | ||
| 3 | * net/ange-ftp.el (ange-ftp-insert-directory): | 22 | * net/ange-ftp.el (ange-ftp-insert-directory): |
diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 5b84fc3e0d1..77a075b716f 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el | |||
| @@ -1134,7 +1134,7 @@ If BACKWARD is non-nil, jump to the previous match." | |||
| 1134 | 1134 | ||
| 1135 | ;;;; User interface commands and the mode | 1135 | ;;;; User interface commands and the mode |
| 1136 | 1136 | ||
| 1137 | ;; (put 'doc-view-mode 'mode-class 'special) | 1137 | (put 'doc-view-mode 'mode-class 'special) |
| 1138 | 1138 | ||
| 1139 | (defun doc-view-already-converted-p () | 1139 | (defun doc-view-already-converted-p () |
| 1140 | "Return non-nil if the current doc was already converted." | 1140 | "Return non-nil if the current doc was already converted." |
diff --git a/lisp/image-mode.el b/lisp/image-mode.el index f3cdc05da16..5b785f0031e 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el | |||
| @@ -317,6 +317,8 @@ This variable is used to display the current image type in the mode line.") | |||
| 317 | 317 | ||
| 318 | (defvar bookmark-make-record-function) | 318 | (defvar bookmark-make-record-function) |
| 319 | 319 | ||
| 320 | (put 'image-mode 'mode-class 'special) | ||
| 321 | |||
| 320 | ;;;###autoload | 322 | ;;;###autoload |
| 321 | (defun image-mode () | 323 | (defun image-mode () |
| 322 | "Major mode for image files. | 324 | "Major mode for image files. |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 9cdc0f97b50..57f87c04b88 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -642,9 +642,11 @@ compatible with old code; callers should always specify it." | |||
| 642 | (widen) | 642 | (widen) |
| 643 | (save-excursion | 643 | (save-excursion |
| 644 | (if c-get-state-before-change-functions | 644 | (if c-get-state-before-change-functions |
| 645 | (mapc (lambda (fn) | 645 | (let ((beg (point-min)) |
| 646 | (funcall fn beg end)) | 646 | (end (point-max))) |
| 647 | c-get-state-before-change-functions)) | 647 | (mapc (lambda (fn) |
| 648 | (funcall fn beg end)) | ||
| 649 | c-get-state-before-change-functions))) | ||
| 648 | (if c-before-font-lock-function | 650 | (if c-before-font-lock-function |
| 649 | (funcall c-before-font-lock-function (point-min) (point-max) | 651 | (funcall c-before-font-lock-function (point-min) (point-max) |
| 650 | (- (point-max) (point-min)))))) | 652 | (- (point-max) (point-min)))))) |
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index 1b0206ce70c..efeb19de4c7 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el | |||
| @@ -796,8 +796,12 @@ stream. Standard error output is discarded." | |||
| 796 | (shelve-help-echo "Use M-x vc-bzr-shelve to create shelves") | 796 | (shelve-help-echo "Use M-x vc-bzr-shelve to create shelves") |
| 797 | (root-dir (vc-bzr-root dir)) | 797 | (root-dir (vc-bzr-root dir)) |
| 798 | (pending-merge | 798 | (pending-merge |
| 799 | (file-exists-p | 799 | ;; FIXME: looking for .bzr/checkout/merge-hashes is not a |
| 800 | (expand-file-name ".bzr/checkout/merge-hashes" root-dir))) | 800 | ;; reliable method to detect pending merges, disable this |
| 801 | ;; until a proper solution is implemented. | ||
| 802 | (and nil | ||
| 803 | (file-exists-p | ||
| 804 | (expand-file-name ".bzr/checkout/merge-hashes" root-dir)))) | ||
| 801 | (pending-merge-help-echo | 805 | (pending-merge-help-echo |
| 802 | (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)) | 806 | (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)) |
| 803 | (light-checkout | 807 | (light-checkout |
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el index 9f992fdd1c8..6883556f249 100644 --- a/lisp/vc-svn.el +++ b/lisp/vc-svn.el | |||
| @@ -31,6 +31,10 @@ | |||
| 31 | (eval-when-compile | 31 | (eval-when-compile |
| 32 | (require 'vc)) | 32 | (require 'vc)) |
| 33 | 33 | ||
| 34 | ;; Clear up the cache to force vc-call to check again and discover | ||
| 35 | ;; new functions when we reload this file. | ||
| 36 | (put 'SVN 'vc-functions nil) | ||
| 37 | |||
| 34 | ;;; | 38 | ;;; |
| 35 | ;;; Customization options | 39 | ;;; Customization options |
| 36 | ;;; | 40 | ;;; |
| @@ -722,6 +726,21 @@ information about FILENAME and return its status." | |||
| 722 | (beginning-of-line) | 726 | (beginning-of-line) |
| 723 | (if (looking-at vc-svn-annotate-re) (match-string 1)))) | 727 | (if (looking-at vc-svn-annotate-re) (match-string 1)))) |
| 724 | 728 | ||
| 729 | (defun vc-svn-revision-table (files) | ||
| 730 | (let ((vc-svn-revisions '())) | ||
| 731 | (with-current-buffer "*vc*" | ||
| 732 | (vc-svn-command nil 0 files "log" "-q") | ||
| 733 | (goto-char (point-min)) | ||
| 734 | (forward-line) | ||
| 735 | (let ((start (point-min)) | ||
| 736 | (loglines (buffer-substring-no-properties (point-min) | ||
| 737 | (point-max)))) | ||
| 738 | (while (string-match "^r\\([0-9]+\\) " loglines) | ||
| 739 | (push (match-string 1 loglines) vc-svn-revisions) | ||
| 740 | (setq start (+ start (match-end 0))) | ||
| 741 | (setq loglines (buffer-substring-no-properties start (point-max))))) | ||
| 742 | vc-svn-revisions))) | ||
| 743 | |||
| 725 | (provide 'vc-svn) | 744 | (provide 'vc-svn) |
| 726 | 745 | ||
| 727 | ;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d | 746 | ;; arch-tag: 02f10c68-2b4d-453a-90fc-1eee6cfb268d |
diff --git a/src/ChangeLog b/src/ChangeLog index f1f4aa24b35..4837d8ecb06 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2010-02-06 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * charset.c (load_charset_map_from_file) | ||
| 4 | (load_charset_map_from_vector): Fix last change to use SAFE_ALLOCA | ||
| 5 | instead of xmalloc (Bug#5526). Suggested by Vivek Dasmohapatra. | ||
| 6 | |||
| 1 | 2010-02-05 Chong Yidong <cyd@stupidchicken.com> | 7 | 2010-02-05 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 8 | ||
| 3 | * charset.c (load_charset_map_from_file): Allocate large | 9 | * charset.c (load_charset_map_from_file): Allocate large |
diff --git a/src/charset.c b/src/charset.c index 9e8ff1d59c9..1db9ec17ae7 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -512,12 +512,13 @@ load_charset_map_from_file (charset, mapfile, control_flag) | |||
| 512 | int eof; | 512 | int eof; |
| 513 | Lisp_Object suffixes; | 513 | Lisp_Object suffixes; |
| 514 | struct charset_map_entries *head, *entries; | 514 | struct charset_map_entries *head, *entries; |
| 515 | int n_entries; | 515 | int n_entries, count; |
| 516 | int count = SPECPDL_INDEX (); | 516 | USE_SAFE_ALLOCA; |
| 517 | 517 | ||
| 518 | suffixes = Fcons (build_string (".map"), | 518 | suffixes = Fcons (build_string (".map"), |
| 519 | Fcons (build_string (".TXT"), Qnil)); | 519 | Fcons (build_string (".TXT"), Qnil)); |
| 520 | 520 | ||
| 521 | count = SPECPDL_INDEX (); | ||
| 521 | specbind (Qfile_name_handler_alist, Qnil); | 522 | specbind (Qfile_name_handler_alist, Qnil); |
| 522 | fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil); | 523 | fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil); |
| 523 | unbind_to (count, Qnil); | 524 | unbind_to (count, Qnil); |
| @@ -525,8 +526,12 @@ load_charset_map_from_file (charset, mapfile, control_flag) | |||
| 525 | || ! (fp = fdopen (fd, "r"))) | 526 | || ! (fp = fdopen (fd, "r"))) |
| 526 | error ("Failure in loading charset map: %S", SDATA (mapfile)); | 527 | error ("Failure in loading charset map: %S", SDATA (mapfile)); |
| 527 | 528 | ||
| 528 | head = entries = ((struct charset_map_entries *) | 529 | /* Use SAFE_ALLOCA instead of alloca, as `charset_map_entries' is |
| 529 | xmalloc (sizeof (struct charset_map_entries))); | 530 | large (larger than MAX_ALLOCA). */ |
| 531 | SAFE_ALLOCA (head, struct charset_map_entries *, | ||
| 532 | sizeof (struct charset_map_entries)); | ||
| 533 | entries = head; | ||
| 534 | |||
| 530 | n_entries = 0; | 535 | n_entries = 0; |
| 531 | eof = 0; | 536 | eof = 0; |
| 532 | while (1) | 537 | while (1) |
| @@ -549,8 +554,8 @@ load_charset_map_from_file (charset, mapfile, control_flag) | |||
| 549 | 554 | ||
| 550 | if (n_entries > 0 && (n_entries % 0x10000) == 0) | 555 | if (n_entries > 0 && (n_entries % 0x10000) == 0) |
| 551 | { | 556 | { |
| 552 | entries->next = ((struct charset_map_entries *) | 557 | SAFE_ALLOCA (entries->next, struct charset_map_entries *, |
| 553 | alloca (sizeof (struct charset_map_entries))); | 558 | sizeof (struct charset_map_entries)); |
| 554 | entries = entries->next; | 559 | entries = entries->next; |
| 555 | } | 560 | } |
| 556 | idx = n_entries % 0x10000; | 561 | idx = n_entries % 0x10000; |
| @@ -563,7 +568,7 @@ load_charset_map_from_file (charset, mapfile, control_flag) | |||
| 563 | close (fd); | 568 | close (fd); |
| 564 | 569 | ||
| 565 | load_charset_map (charset, head, n_entries, control_flag); | 570 | load_charset_map (charset, head, n_entries, control_flag); |
| 566 | xfree (head); | 571 | SAFE_FREE (); |
| 567 | } | 572 | } |
| 568 | 573 | ||
| 569 | static void | 574 | static void |
| @@ -578,6 +583,7 @@ load_charset_map_from_vector (charset, vec, control_flag) | |||
| 578 | int n_entries; | 583 | int n_entries; |
| 579 | int len = ASIZE (vec); | 584 | int len = ASIZE (vec); |
| 580 | int i; | 585 | int i; |
| 586 | USE_SAFE_ALLOCA; | ||
| 581 | 587 | ||
| 582 | if (len % 2 == 1) | 588 | if (len % 2 == 1) |
| 583 | { | 589 | { |
| @@ -585,8 +591,12 @@ load_charset_map_from_vector (charset, vec, control_flag) | |||
| 585 | return; | 591 | return; |
| 586 | } | 592 | } |
| 587 | 593 | ||
| 588 | head = entries = ((struct charset_map_entries *) | 594 | /* Use SAFE_ALLOCA instead of alloca, as `charset_map_entries' is |
| 589 | alloca (sizeof (struct charset_map_entries))); | 595 | large (larger than MAX_ALLOCA). */ |
| 596 | SAFE_ALLOCA (head, struct charset_map_entries *, | ||
| 597 | sizeof (struct charset_map_entries)); | ||
| 598 | entries = head; | ||
| 599 | |||
| 590 | n_entries = 0; | 600 | n_entries = 0; |
| 591 | for (i = 0; i < len; i += 2) | 601 | for (i = 0; i < len; i += 2) |
| 592 | { | 602 | { |
| @@ -619,8 +629,8 @@ load_charset_map_from_vector (charset, vec, control_flag) | |||
| 619 | 629 | ||
| 620 | if (n_entries > 0 && (n_entries % 0x10000) == 0) | 630 | if (n_entries > 0 && (n_entries % 0x10000) == 0) |
| 621 | { | 631 | { |
| 622 | entries->next = ((struct charset_map_entries *) | 632 | SAFE_ALLOCA (entries->next, struct charset_map_entries *, |
| 623 | alloca (sizeof (struct charset_map_entries))); | 633 | sizeof (struct charset_map_entries)); |
| 624 | entries = entries->next; | 634 | entries = entries->next; |
| 625 | } | 635 | } |
| 626 | idx = n_entries % 0x10000; | 636 | idx = n_entries % 0x10000; |
| @@ -631,6 +641,7 @@ load_charset_map_from_vector (charset, vec, control_flag) | |||
| 631 | } | 641 | } |
| 632 | 642 | ||
| 633 | load_charset_map (charset, head, n_entries, control_flag); | 643 | load_charset_map (charset, head, n_entries, control_flag); |
| 644 | SAFE_FREE (); | ||
| 634 | } | 645 | } |
| 635 | 646 | ||
| 636 | 647 | ||