aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2010-02-06 12:50:45 -0500
committerEli Zaretskii2010-02-06 12:50:45 -0500
commit9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed (patch)
treecd0e293690d927c44d2eea4a7453f6aba3ce5344
parente5f95dc5a35a7ff655527b08d73c05cd3f6f1dc7 (diff)
parent953d248c55173853e6cffb01a5348703faf4e990 (diff)
downloademacs-9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed.tar.gz
emacs-9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed.zip
Merge from mainline.
-rw-r--r--doc/misc/ChangeLog4
-rw-r--r--doc/misc/ede.texi9
-rw-r--r--doc/misc/eieio.texi9
-rw-r--r--doc/misc/semantic.texi9
-rw-r--r--lisp/ChangeLog19
-rw-r--r--lisp/doc-view.el2
-rw-r--r--lisp/image-mode.el2
-rw-r--r--lisp/progmodes/cc-mode.el8
-rw-r--r--lisp/vc-bzr.el8
-rw-r--r--lisp/vc-svn.el19
-rw-r--r--src/ChangeLog6
-rw-r--r--src/charset.c33
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 @@
12010-02-05 Mark A. Hershberger <mah@everybody.org>
2
3 * ede.texi, eieio.texi, semantic.texi: Use standard direntry format.
4
12010-01-21 Katsumi Yamaoka <yamaoka@jpl.org> 52010-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
27START-INFO-DIR-ENTRY
28* ede: (ede). Project management for Emacs 27* ede: (ede). Project management for Emacs
29END-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
32START-INFO-DIR-ENTRY
33* eieio: (eieio). Objects for Emacs 32* eieio: (eieio). Objects for Emacs
34END-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
46START-INFO-DIR-ENTRY
47* Semantic: (semantic). Source code parser library and utilities. 46* Semantic: (semantic). Source code parser library and utilities.
48END-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 @@
12010-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
62010-02-06 Dan Nicolaescu <dann@ics.uci.edu>
7
8 * vc-bzr.el (vc-bzr-dir-extra-headers): Disable the pending merges header.
9
102010-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
162010-02-05 Mark A. Hershberger <mah@everybody.org>
17
18 * vc-svn.el (vc-svn-revision-table): New function.
19
12010-02-05 Michael Albinus <michael.albinus@gmx.de> 202010-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 @@
12010-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
12010-02-05 Chong Yidong <cyd@stupidchicken.com> 72010-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
569static void 574static 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