aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2011-01-24 19:47:47 -0800
committerGlenn Morris2011-01-24 19:47:47 -0800
commit06d8ace51597cd41e110560a56a1abeb6cce23d6 (patch)
treee893bab169f27821637fc07e3cd2414b4b9b7b68
parentc5ecc7690d4afafb42049634d64abd781ff76642 (diff)
parent0d19d4feaa653a315853716e64bbaddb210a26ca (diff)
downloademacs-06d8ace51597cd41e110560a56a1abeb6cce23d6.tar.gz
emacs-06d8ace51597cd41e110560a56a1abeb6cce23d6.zip
Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
-rw-r--r--ChangeLog4
-rw-r--r--configure.in8
-rw-r--r--doc/lispref/ChangeLog18
-rw-r--r--doc/lispref/display.texi5
-rw-r--r--doc/lispref/frames.texi10
-rw-r--r--doc/lispref/loading.texi25
-rw-r--r--doc/lispref/searching.texi9
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/movemail.c8
-rw-r--r--lisp/ChangeLog35
-rw-r--r--lisp/button.el17
-rw-r--r--lisp/comint.el5
-rw-r--r--lisp/dired.el5
-rw-r--r--lisp/emacs-lisp/re-builder.el4
-rw-r--r--lisp/files.el27
-rw-r--r--lisp/gnus/nnbabyl.el2
-rw-r--r--lisp/progmodes/ruby-mode.el92
-rw-r--r--lisp/simple.el14
-rw-r--r--lwlib/ChangeLog5
-rw-r--r--lwlib/lwlib-Xm.c2
-rw-r--r--nt/icons/README8
-rw-r--r--src/ChangeLog10
-rw-r--r--src/lisp.h31
-rw-r--r--src/xdisp.c9
24 files changed, 242 insertions, 116 deletions
diff --git a/ChangeLog b/ChangeLog
index b3b3b999dc9..0ff3459d66b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12011-01-25 Peter O'Gorman <bug-gnu-emacs@mlists.thewrittenword.com> (tiny change)
2
3 * configure.in: Add HP-UX on IA64 (Bug#6811).
4
12011-01-24 Paul Eggert <eggert@cs.ucla.edu> 52011-01-24 Paul Eggert <eggert@cs.ucla.edu>
2 6
3 Remove HAVE_RAW_DECL_CHOWN etc. from config.h 7 Remove HAVE_RAW_DECL_CHOWN etc. from config.h
diff --git a/configure.in b/configure.in
index 923f8095fa1..4e8a31ecc56 100644
--- a/configure.in
+++ b/configure.in
@@ -515,6 +515,14 @@ case "${canonical}" in
515 CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS" 515 CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
516 ;; 516 ;;
517 517
518 ia64*-hp-hpux1[1-9]* )
519 machine=hp800 opsys=hpux11
520 ;;
521
522 hppa*-*-linux-gnu* )
523 machine=hp800 opsys=gnu-linux
524 ;;
525
518 ## IBM machines 526 ## IBM machines
519 rs6000-ibm-aix4.[23]* ) 527 rs6000-ibm-aix4.[23]* )
520 machine=ibmrs6000 opsys=aix4-2 528 machine=ibmrs6000 opsys=aix4-2
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index e196b3015bd..7dcf00ba81e 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,21 @@
12011-01-25 Chong Yidong <cyd@stupidchicken.com>
2 Richard Kim <emacs18@gmail.com>
3
4 * loading.texi (Library Search): Document list-load-path-shadows
5 (Bug#7757).
6
72011-01-25 Chong Yidong <cyd@stupidchicken.com>
8
9 * searching.texi (Regexp Special): Remove outdated discussion of
10 character sets (Bug#7780).
11
12 * frames.texi (Pop-Up Menus): Document where menu title comes
13 from (Bug#7684).
14
152011-01-25 Glenn Morris <rgm@gnu.org>
16
17 * display.texi (Making Buttons): Mention limitation of text buttons.
18
12011-01-23 Werner Lemberg <wl@gnu.org> 192011-01-23 Werner Lemberg <wl@gnu.org>
2 20
3 * Makefile.in (MAKEINFO): Now controlled by `configure'. 21 * Makefile.in (MAKEINFO): Now controlled by `configure'.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 34d81068916..7ba4d967615 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -5012,8 +5012,9 @@ and returns it.
5012button actually part of the text instead of being a property of the 5012button actually part of the text instead of being a property of the
5013buffer. Buttons using text properties do not create markers into the 5013buffer. Buttons using text properties do not create markers into the
5014buffer, which is important for speed when you use extremely large 5014buffer, which is important for speed when you use extremely large
5015numbers of buttons. Both functions return the position of the start 5015numbers of buttons. (However, if there is an existing face text
5016of the new button: 5016property at the site of the button, the button face may not be visible.)
5017Both functions return the position of the start of the new button:
5017 5018
5018@defun make-text-button beg end &rest properties 5019@defun make-text-button beg end &rest properties
5019This makes a button from @var{beg} to @var{end} in the current buffer, using 5020This makes a button from @var{beg} to @var{end} in the current buffer, using
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 0d83aadbcd2..c4e74798415 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1791,9 +1791,13 @@ without actually displaying or popping up the menu.
1791The argument @var{menu} says what to display in the menu. It can be a 1791The argument @var{menu} says what to display in the menu. It can be a
1792keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the 1792keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the
1793return value is the list of events corresponding to the user's choice. 1793return value is the list of events corresponding to the user's choice.
1794(This list has more than one element if the choice occurred in a 1794This list has more than one element if the choice occurred in a
1795submenu.) Note that @code{x-popup-menu} does not actually execute the 1795submenu. (Note that @code{x-popup-menu} does not actually execute the
1796command bound to that sequence of events. 1796command bound to that sequence of events.) On toolkits that support
1797menu titles, the title is taken from the prompt string of @var{menu}
1798if @var{menu} is a keymap, or from the prompt string of the first
1799keymap in @var{menu} if it is a list of keymaps (@pxref{Defining
1800Menus}).
1797 1801
1798Alternatively, @var{menu} can have the following form: 1802Alternatively, @var{menu} can have the following form:
1799 1803
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 5733df87d17..4a74005b2ee 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -363,6 +363,31 @@ interactively, the argument @var{interactive-call} is @code{t}, and this
363tells @code{locate-library} to display the file name in the echo area. 363tells @code{locate-library} to display the file name in the echo area.
364@end deffn 364@end deffn
365 365
366@cindex shadowed Lisp files
367@deffn Command list-load-path-shadows &optional stringp
368This command shows a list of @dfn{shadowed} Emacs Lisp files. A
369shadowed file is one that will not normally be loaded, despite being
370in a directory on @code{load-path}, due to the existence of another
371similarly-named file in a directory earlier on @code{load-path}.
372
373For instance, suppose @code{load-path} is set to
374
375@smallexample
376 ("/opt/emacs/site-lisp" "/usr/share/emacs/23.3/lisp")
377@end smallexample
378
379@noindent
380and that both these directories contain a file named @file{foo.el}.
381Then @code{(require 'foo)} never loads the file in the second
382directory. Such a situation might indicate a problem in the way Emacs
383was installed.
384
385When called from Lisp, this function prints a message listing the
386shadowed files, instead of displaying them in a buffer. If the
387optional argument @code{stringp} is non-@code{nil}, it instead returns
388the shadowed files as a string.
389@end deffn
390
366@node Loading Non-ASCII 391@node Loading Non-ASCII
367@section Loading Non-@acronym{ASCII} Characters 392@section Loading Non-@acronym{ASCII} Characters
368 393
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 908b776a858..ac3620c510a 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -386,15 +386,6 @@ matches both @samp{]} and @samp{-}.
386To include @samp{^} in a character alternative, put it anywhere but at 386To include @samp{^} in a character alternative, put it anywhere but at
387the beginning. 387the beginning.
388 388
389The beginning and end of a range of multibyte characters must be in
390the same character set (@pxref{Character Sets}). Thus,
391@code{"[\x8e0-\x97c]"} is invalid because character 0x8e0 (@samp{a}
392with grave accent) is in the Emacs character set for Latin-1 but the
393character 0x97c (@samp{u} with diaeresis) is in the Emacs character
394set for Latin-2. (We use Lisp string syntax to write that example,
395and a few others in the next few paragraphs, in order to include hex
396escape sequences in them.)
397
398If a range starts with a unibyte character @var{c} and ends with a 389If a range starts with a unibyte character @var{c} and ends with a
399multibyte character @var{c2}, the range is divided into two parts: one 390multibyte character @var{c2}, the range is divided into two parts: one
400is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where 391is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 74509f4ae5e..97124142867 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12011-01-25 Chong Yidong <cyd@stupidchicken.com>
2
3 * movemail.c (main): Use setregid instead of setegid, which is
4 missing on older systems. Suggested by Peter O'Gorman (Bug#6811).
5
12011-01-23 Paul Eggert <eggert@cs.ucla.edu> 62011-01-23 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 Check return values of some library calls. 8 Check return values of some library calls.
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index f492188963d..143ee4e29c1 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -354,7 +354,7 @@ main (int argc, char **argv)
354 time_t touched_lock, now; 354 time_t touched_lock, now;
355#endif 355#endif
356 356
357 if (setuid (getuid ()) < 0 || setegid (real_gid) < 0) 357 if (setuid (getuid ()) < 0 || setregid (-1, real_gid) < 0)
358 fatal ("Failed to drop privileges", 0, 0); 358 fatal ("Failed to drop privileges", 0, 0);
359 359
360#ifndef MAIL_USE_MMDF 360#ifndef MAIL_USE_MMDF
@@ -381,7 +381,7 @@ main (int argc, char **argv)
381 if (outdesc < 0) 381 if (outdesc < 0)
382 pfatal_with_name (outname); 382 pfatal_with_name (outname);
383 383
384 if (setegid (priv_gid) < 0) 384 if (setregid (-1, priv_gid) < 0)
385 fatal ("Failed to regain privileges", 0, 0); 385 fatal ("Failed to regain privileges", 0, 0);
386 386
387 /* This label exists so we can retry locking 387 /* This label exists so we can retry locking
@@ -478,7 +478,7 @@ main (int argc, char **argv)
478#endif 478#endif
479 479
480 /* Prevent symlink attacks truncating other users' mailboxes */ 480 /* Prevent symlink attacks truncating other users' mailboxes */
481 if (setegid (real_gid) < 0) 481 if (setregid (-1, real_gid) < 0)
482 fatal ("Failed to drop privileges", 0, 0); 482 fatal ("Failed to drop privileges", 0, 0);
483 483
484 /* Check to make sure no errors before we zap the inbox. */ 484 /* Check to make sure no errors before we zap the inbox. */
@@ -514,7 +514,7 @@ main (int argc, char **argv)
514#endif /* not MAIL_USE_SYSTEM_LOCK */ 514#endif /* not MAIL_USE_SYSTEM_LOCK */
515 515
516 /* End of mailbox truncation */ 516 /* End of mailbox truncation */
517 if (setegid (priv_gid) < 0) 517 if (setregid (-1, priv_gid) < 0)
518 fatal ("Failed to regain privileges", 0, 0); 518 fatal ("Failed to regain privileges", 0, 0);
519 519
520#ifdef MAIL_USE_MAILLOCK 520#ifdef MAIL_USE_MAILLOCK
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 62aeaf7f92f..722637d9c3d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,38 @@
12011-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * files.el (file-name-non-special): Only change buffer-file-name after
4 insert-file-contents if it's `visit'ing the file (bug#7854).
5
62011-01-25 Chong Yidong <cyd@stupidchicken.com>
7
8 * dired.el (dired-revert): Doc fix (Bug#7758).
9
10 * simple.el (line-move-visual): Doc fix (Bug#7594).
11
122011-01-25 Nobuyoshi Nakada <nobu@ruby-lang.org>
13
14 * progmodes/ruby-mode.el (ruby-here-doc-beg-match): Fix for
15 here-doc which ends with an underscore.
16 (ruby-mode-set-encoding): Skip shebang line always.
17 (ruby-mode-map): Bind C-c C-c to comment-region.
18 (ruby-font-lock-keywords): Highlight literal hash key labels as symbols.
19 (ruby-forward-sexp): Stop after literal hash key labels.
20 (ruby-font-lock-syntactic-keywords): Highlight regexp after open
21 bracket.
22
232011-01-25 Keitaro Miyazaki <keitaro.miyazaki@gmail.com> (tiny change)
24
25 * emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
26 the correct buffer (Bug#7650).
27
282011-01-25 Glenn Morris <rgm@gnu.org>
29
30 * comint.el (comint-mode): Doc fix. (Bug#7897)
31
32 * simple.el (do-auto-fill): Give it a doc string.
33
34 * button.el (make-text-button): Doc fix. (See bug#7881)
35
12011-01-24 Stefan Monnier <monnier@iro.umontreal.ca> 362011-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
2 37
3 * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs): 38 * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):
diff --git a/lisp/button.el b/lisp/button.el
index c52e3d8e372..dbde4a3317c 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -1,7 +1,7 @@
1;;; button.el --- clickable buttons 1;;; button.el --- clickable buttons
2;; 2;;
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
4;; 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. 4;; 2010, 2011 Free Software Foundation, Inc.
5;; 5;;
6;; Author: Miles Bader <miles@gnu.org> 6;; Author: Miles Bader <miles@gnu.org>
7;; Keywords: extensions 7;; Keywords: extensions
@@ -38,7 +38,9 @@
38;; the button is represented by a marker or buffer-position pointing 38;; the button is represented by a marker or buffer-position pointing
39;; somewhere in the button. In the latter case, no markers into the 39;; somewhere in the button. In the latter case, no markers into the
40;; buffer are retained, which is important for speed if there are are 40;; buffer are retained, which is important for speed if there are are
41;; extremely large numbers of buttons. 41;; extremely large numbers of buttons. Note however that if there is
42;; an existing face text-property at the site of the button, the
43;; button face may not be visible. Using overlays avoids this.
42;; 44;;
43;; Using `define-button-type' to define default properties for buttons 45;; Using `define-button-type' to define default properties for buttons
44;; is not necessary, but it is is encouraged, since doing so makes the 46;; is not necessary, but it is is encouraged, since doing so makes the
@@ -290,9 +292,12 @@ button-type from which to inherit other properties; see
290`define-button-type'. 292`define-button-type'.
291 293
292This function is like `make-button', except that the button is actually 294This function is like `make-button', except that the button is actually
293part of the text instead of being a property of the buffer. Creating 295part of the text instead of being a property of the buffer. That is,
294large numbers of buttons can also be somewhat faster using 296this function uses text properties, the other uses overlays.
295`make-text-button'. 297Creating large numbers of buttons can also be somewhat faster
298using `make-text-button'. Note, however, that if there is an existing
299face property at the site of the button, the button face may not be visible.
300You may want to use `make-button' in that case.
296 301
297BEG can also be a string, in which case it is made into a button. 302BEG can also be a string, in which case it is made into a button.
298 303
diff --git a/lisp/comint.el b/lisp/comint.el
index 1912cdcfc44..6b57f0a3c3f 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -607,8 +607,9 @@ mode, Shell mode, etc. This can be done by setting the hooks
607and `comint-get-old-input' to appropriate functions, and the variable 607and `comint-get-old-input' to appropriate functions, and the variable
608`comint-prompt-regexp' to the appropriate regular expression. 608`comint-prompt-regexp' to the appropriate regular expression.
609 609
610An input history is maintained of size `comint-input-ring-size', and 610The mode maintains an input history of size `comint-input-ring-size'.
611can be accessed with the commands \\[comint-next-input], \\[comint-previous-input], and \\[comint-dynamic-list-input-ring]. 611You can access this with the commands \\[comint-next-input],
612\\[comint-previous-input], and \\[comint-dynamic-list-input-ring].
612Input ring history expansion can be achieved with the commands 613Input ring history expansion can be achieved with the commands
613\\[comint-replace-by-expanded-history] or \\[comint-magic-space]. 614\\[comint-replace-by-expanded-history] or \\[comint-magic-space].
614Input ring expansion is controlled by the variable `comint-input-autoexpand', 615Input ring expansion is controlled by the variable `comint-input-autoexpand',
diff --git a/lisp/dired.el b/lisp/dired.el
index 36bd9f6f121..1f38b5bfb74 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1146,7 +1146,10 @@ If HDR is non-nil, insert a header line with the directory name."
1146 "Reread the dired buffer. 1146 "Reread the dired buffer.
1147Must also be called after `dired-actual-switches' have changed. 1147Must also be called after `dired-actual-switches' have changed.
1148Should not fail even on completely garbaged buffers. 1148Should not fail even on completely garbaged buffers.
1149Preserves old cursor, marks/flags, hidden-p." 1149Preserves old cursor, marks/flags, hidden-p.
1150
1151Dired sets `revert-buffer-function' to this function. The args
1152ARG and NOCONFIRM, passed from `revert-buffer', are ignored."
1150 (widen) ; just in case user narrowed 1153 (widen) ; just in case user narrowed
1151 (let ((modflag (buffer-modified-p)) 1154 (let ((modflag (buffer-modified-p))
1152 (positions (dired-save-positions)) 1155 (positions (dired-save-positions))
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 12a66582317..38fb826c352 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -243,7 +243,9 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
243 :help "Quit the RE Builder mode")) 243 :help "Quit the RE Builder mode"))
244 (define-key menu-map [rt] 244 (define-key menu-map [rt]
245 '(menu-item "Case sensitive" reb-toggle-case 245 '(menu-item "Case sensitive" reb-toggle-case
246 :button (:toggle . (null case-fold-search)) 246 :button (:toggle . (with-current-buffer
247 reb-target-buffer
248 (null case-fold-search)))
247 :help "Toggle case sensitivity of searches for RE Builder target buffer")) 249 :help "Toggle case sensitivity of searches for RE Builder target buffer"))
248 (define-key menu-map [rb] 250 (define-key menu-map [rb]
249 '(menu-item "Change target buffer..." reb-change-target-buffer 251 '(menu-item "Change target buffer..." reb-change-target-buffer
diff --git a/lisp/files.el b/lisp/files.el
index 16b43d72c3e..dcb9ac08d95 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6118,8 +6118,7 @@ only these files will be asked to be saved."
6118 (substitute-in-file-name identity) 6118 (substitute-in-file-name identity)
6119 ;; `add' means add "/:" to the result. 6119 ;; `add' means add "/:" to the result.
6120 (file-truename add 0) 6120 (file-truename add 0)
6121 ;; `quote' means add "/:" to buffer-file-name. 6121 (insert-file-contents insert-file-contents 0)
6122 (insert-file-contents quote 0)
6123 ;; `unquote-then-quote' means set buffer-file-name 6122 ;; `unquote-then-quote' means set buffer-file-name
6124 ;; temporarily to unquoted filename. 6123 ;; temporarily to unquoted filename.
6125 (verify-visited-file-modtime unquote-then-quote) 6124 (verify-visited-file-modtime unquote-then-quote)
@@ -6150,20 +6149,18 @@ only these files will be asked to be saved."
6150 "/" 6149 "/"
6151 (substring (car pair) 2))))) 6150 (substring (car pair) 2)))))
6152 (setq file-arg-indices (cdr file-arg-indices)))) 6151 (setq file-arg-indices (cdr file-arg-indices))))
6153 (cond ((eq method 'identity) 6152 (case method
6154 (car arguments)) 6153 (identity (car arguments))
6155 ((eq method 'add) 6154 (add (concat "/:" (apply operation arguments)))
6156 (concat "/:" (apply operation arguments))) 6155 (insert-file-contents
6157 ((eq method 'quote) 6156 (let ((visit (nth 1 arguments)))
6158 (unwind-protect 6157 (prog1
6159 (apply operation arguments) 6158 (apply operation arguments)
6160 (setq buffer-file-name (concat "/:" buffer-file-name)))) 6159 (when (and visit buffer-file-name)
6161 ((eq method 'unquote-then-quote) 6160 (setq buffer-file-name (concat "/:" buffer-file-name))))))
6162 (let (res) 6161 (unquote-then-quote
6163 (setq buffer-file-name (substring buffer-file-name 2)) 6162 (let ((buffer-file-name (substring buffer-file-name 2)))
6164 (setq res (apply operation arguments)) 6163 (apply operation arguments)))
6165 (setq buffer-file-name (concat "/:" buffer-file-name))
6166 res))
6167 (t 6164 (t
6168 (apply operation arguments))))) 6165 (apply operation arguments)))))
6169 6166
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index 2346c05c854..06e41d78009 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -1,6 +1,6 @@
1;;; nnbabyl.el --- rmail mbox access for Gnus 1;;; nnbabyl.el --- rmail mbox access for Gnus
2 2
3;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001, 2002, 2003, 3;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
4;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 4;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
5;; Free Software Foundation, Inc. 5;; Free Software Foundation, Inc.
6 6
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 733af999cdb..b3a640a2283 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -153,6 +153,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
153 (define-key map (kbd "C-M-h") 'backward-kill-word) 153 (define-key map (kbd "C-M-h") 'backward-kill-word)
154 (define-key map (kbd "C-j") 'reindent-then-newline-and-indent) 154 (define-key map (kbd "C-j") 'reindent-then-newline-and-indent)
155 (define-key map (kbd "C-m") 'newline) 155 (define-key map (kbd "C-m") 'newline)
156 (define-key map (kbd "C-c C-c") 'comment-region)
156 map) 157 map)
157 "Keymap used in Ruby mode.") 158 "Keymap used in Ruby mode.")
158 159
@@ -319,7 +320,7 @@ Also ignores spaces after parenthesis when 'space."
319 (cdr (assq coding-system ruby-encoding-map))) 320 (cdr (assq coding-system ruby-encoding-map)))
320 coding-system)) 321 coding-system))
321 "ascii-8bit")) 322 "ascii-8bit"))
322 (if (looking-at "^#![^\n]*ruby") (beginning-of-line 2)) 323 (if (looking-at "^#!") (beginning-of-line 2))
323 (cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)") 324 (cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)")
324 (unless (string= (match-string 2) coding-system) 325 (unless (string= (match-string 2) coding-system)
325 (goto-char (match-beginning 2)) 326 (goto-char (match-beginning 2))
@@ -927,6 +928,7 @@ With ARG, do it many times. Negative ARG means move backward."
927 (condition-case nil 928 (condition-case nil
928 (while (> i 0) 929 (while (> i 0)
929 (skip-syntax-forward " ") 930 (skip-syntax-forward " ")
931 (if (looking-at ",\\s *") (goto-char (match-end 0)))
930 (cond ((looking-at "\\?\\(\\\\[CM]-\\)*\\\\?\\S ") 932 (cond ((looking-at "\\?\\(\\\\[CM]-\\)*\\\\?\\S ")
931 (goto-char (match-end 0))) 933 (goto-char (match-end 0)))
932 ((progn 934 ((progn
@@ -1179,56 +1181,59 @@ It's useful in that it divides up the match string so that
1179 "Return a regexp to find the beginning of a heredoc. 1181 "Return a regexp to find the beginning of a heredoc.
1180 1182
1181This should only be called after matching against `ruby-here-doc-end-re'." 1183This should only be called after matching against `ruby-here-doc-end-re'."
1182 (let ((contents (regexp-quote (match-string 2)))) 1184 (let ((contents (concat
1185 (regexp-quote (concat (match-string 2) (match-string 3)))
1186 (if (string= (match-string 3) "_") "\\B" "\\b"))))
1183 (concat "<<" 1187 (concat "<<"
1184 (let ((match (match-string 1))) 1188 (let ((match (match-string 1)))
1185 (if (and match (> (length match) 0)) 1189 (if (and match (> (length match) 0))
1186 (concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)" match "\\)" 1190 (concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)"
1187 contents "\\b\\(\\1\\|\\2\\)") 1191 (match-string 1) "\\)"
1188 (concat "-?\\([\"']\\|\\)" contents "\\b\\1")))))) 1192 contents "\\(\\1\\|\\2\\)")
1193 (concat "-?\\([\"']\\|\\)" contents "\\1"))))))
1189 1194
1190 (defconst ruby-font-lock-syntactic-keywords 1195 (defconst ruby-font-lock-syntactic-keywords
1191 `( ;; #{ }, #$hoge, #@foo are not comments 1196 `( ;; #{ }, #$hoge, #@foo are not comments
1192 ("\\(#\\)[{$@]" 1 (1 . nil)) 1197 ("\\(#\\)[{$@]" 1 (1 . nil))
1193 ;; the last $', $", $` in the respective string is not variable 1198 ;; the last $', $", $` in the respective string is not variable
1194 ;; the last ?', ?", ?` in the respective string is not ascii code 1199 ;; the last ?', ?", ?` in the respective string is not ascii code
1195 ("\\(^\\|[\[ \t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)" 1200 ("\\(^\\|[\[ \t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)"
1196 (2 (7 . nil)) 1201 (2 (7 . nil))
1197 (4 (7 . nil))) 1202 (4 (7 . nil)))
1198 ;; $' $" $` .... are variables 1203 ;; $' $" $` .... are variables
1199 ;; ?' ?" ?` are ascii codes 1204 ;; ?' ?" ?` are ascii codes
1200 ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil)) 1205 ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil))
1201 ;; regexps 1206 ;; regexps
1202 ("\\(^\\|[=(,~?:;<>]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)" 1207 ("\\(^\\|[[=(,~?:;<>]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)"
1203 (4 (7 . ?/)) 1208 (4 (7 . ?/))
1204 (6 (7 . ?/))) 1209 (6 (7 . ?/)))
1205 ("^=en\\(d\\)\\_>" 1 "!") 1210 ("^=en\\(d\\)\\_>" 1 "!")
1206 ("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax)) 1211 ("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax))
1207 ;; Currently, the following case is highlighted incorrectly: 1212 ;; Currently, the following case is highlighted incorrectly:
1208 ;; 1213 ;;
1209 ;; <<FOO 1214 ;; <<FOO
1210 ;; FOO 1215 ;; FOO
1211 ;; <<BAR 1216 ;; <<BAR
1212 ;; <<BAZ 1217 ;; <<BAZ
1213 ;; BAZ 1218 ;; BAZ
1214 ;; BAR 1219 ;; BAR
1215 ;; 1220 ;;
1216 ;; This is because all here-doc beginnings are highlighted before any endings, 1221 ;; This is because all here-doc beginnings are highlighted before any endings,
1217 ;; so although <<BAR is properly marked as a beginning, when we get to <<BAZ 1222 ;; so although <<BAR is properly marked as a beginning, when we get to <<BAZ
1218 ;; it thinks <<BAR is part of a string so it's marked as well. 1223 ;; it thinks <<BAR is part of a string so it's marked as well.
1219 ;; 1224 ;;
1220 ;; This may be fixable by modifying ruby-in-here-doc-p to use 1225 ;; This may be fixable by modifying ruby-in-here-doc-p to use
1221 ;; ruby-in-non-here-doc-string-p rather than syntax-ppss-context, 1226 ;; ruby-in-non-here-doc-string-p rather than syntax-ppss-context,
1222 ;; but I don't want to try that until we've got unit tests set up 1227 ;; but I don't want to try that until we've got unit tests set up
1223 ;; to make sure I don't break anything else. 1228 ;; to make sure I don't break anything else.
1224 (,(concat ruby-here-doc-beg-re ".*\\(\n\\)") 1229 (,(concat ruby-here-doc-beg-re ".*\\(\n\\)")
1225 ,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re)) 1230 ,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re))
1226 (ruby-here-doc-beg-syntax)) 1231 (ruby-here-doc-beg-syntax))
1227 (,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax))) 1232 (,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax)))
1228 "Syntactic keywords for Ruby mode. See `font-lock-syntactic-keywords'.") 1233 "Syntactic keywords for Ruby mode. See `font-lock-syntactic-keywords'.")
1229 1234
1230 (defun ruby-comment-beg-syntax () 1235 (defun ruby-comment-beg-syntax ()
1231 "Return the syntax cell for a the first character of a =begin. 1236 "Return the syntax cell for a the first character of a =begin.
1232See the definition of `ruby-font-lock-syntactic-keywords'. 1237See the definition of `ruby-font-lock-syntactic-keywords'.
1233 1238
1234This returns a comment-delimiter cell as long as the =begin 1239This returns a comment-delimiter cell as long as the =begin
@@ -1420,6 +1425,7 @@ See `font-lock-syntax-table'.")
1420 ;; symbols 1425 ;; symbols
1421 '("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)" 1426 '("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
1422 2 font-lock-reference-face) 1427 2 font-lock-reference-face)
1428 '("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 font-lock-reference-face)
1423 ;; expression expansion 1429 ;; expression expansion
1424 '("#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)" 1430 '("#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)"
1425 0 font-lock-variable-name-face t) 1431 0 font-lock-variable-name-face t)
diff --git a/lisp/simple.el b/lisp/simple.el
index 476d5ab518d..612f942e6d1 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4221,9 +4221,11 @@ Outline mode sets this."
4221 "When non-nil, `line-move' moves point by visual lines. 4221 "When non-nil, `line-move' moves point by visual lines.
4222This movement is based on where the cursor is displayed on the 4222This movement is based on where the cursor is displayed on the
4223screen, instead of relying on buffer contents alone. It takes 4223screen, instead of relying on buffer contents alone. It takes
4224into account variable-width characters and line continuation." 4224into account variable-width characters and line continuation.
4225If nil, `line-move' moves point by logical lines."
4225 :type 'boolean 4226 :type 'boolean
4226 :group 'editing-basics) 4227 :group 'editing-basics
4228 :version "23.1")
4227 4229
4228;; Returns non-nil if partial move was done. 4230;; Returns non-nil if partial move was done.
4229(defun line-move-partial (arg noerror to-end) 4231(defun line-move-partial (arg noerror to-end)
@@ -5102,12 +5104,10 @@ If optional arg REALLY-WORD is non-nil, it finds just a word."
5102 regexp) 5104 regexp)
5103 :group 'fill) 5105 :group 'fill)
5104 5106
5105;; This function is used as the auto-fill-function of a buffer
5106;; when Auto-Fill mode is enabled.
5107;; It returns t if it really did any work.
5108;; (Actually some major modes use a different auto-fill function,
5109;; but this one is the default one.)
5110(defun do-auto-fill () 5107(defun do-auto-fill ()
5108 "The default value for `normal-auto-fill-function'.
5109This is the default auto-fill function, some major modes use a different one.
5110Returns t if it really did any work."
5111 (let (fc justify give-up 5111 (let (fc justify give-up
5112 (fill-prefix fill-prefix)) 5112 (fill-prefix fill-prefix))
5113 (if (or (not (setq justify (current-justification))) 5113 (if (or (not (setq justify (current-justification)))
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index a0ec95ca3a4..5c5b4fcb975 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,8 @@
12011-01-25 Werner Meisner <weme24@gmx.net>
2
3 * lwlib-Xm.c (xm_update_menu): Avoid a NULL pointer dereference
4 (Bug#7690).
5
12010-09-26 Dan Nicolaescu <dann@ics.uci.edu> 62010-09-26 Dan Nicolaescu <dann@ics.uci.edu>
2 7
3 Use const for some pointer arguments. 8 Use const for some pointer arguments.
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c
index 60f282e69f4..b6c2ef1b323 100644
--- a/lwlib/lwlib-Xm.c
+++ b/lwlib/lwlib-Xm.c
@@ -800,7 +800,7 @@ xm_update_menu (widget_instance* instance,
800 800
801 /* Now replace from scratch all the buttons after the last 801 /* Now replace from scratch all the buttons after the last
802 place that the top-level structure changed. */ 802 place that the top-level structure changed. */
803 if (val->contents->change == STRUCTURAL_CHANGE) 803 if (val->contents && val->contents->change == STRUCTURAL_CHANGE)
804 { 804 {
805 destroy_all_children (widget, num_children_to_keep); 805 destroy_all_children (widget, num_children_to_keep);
806 make_menu_in_widget (instance, widget, val->contents, 806 make_menu_in_widget (instance, widget, val->contents,
diff --git a/nt/icons/README b/nt/icons/README
index 0d8d90ffefb..b9e56779c0e 100644
--- a/nt/icons/README
+++ b/nt/icons/README
@@ -2,13 +2,13 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
2 2
3File: emacs.ico 3File: emacs.ico
4Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp> 4Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp>
5Copyright (C) 2008, 2009 Free Software Foundation, Inc. 5Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
6License: GNU General Public License version 3 or later 6License: GNU General Public License version 3 or later
7 7
8 8
9File: emacs22.ico 9File: emacs22.ico
10Author: Andrew Zhilin 10Author: Andrew Zhilin
11Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 11Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
12License: GNU General Public License version 3 or later (see COPYING) 12License: GNU General Public License version 3 or later (see COPYING)
13 13
14 14
@@ -17,8 +17,8 @@ Files: gnu2a32.ico gnu2a32t.ico gnu2b48.ico gnu2b48t.ico
17 gnu5w32.ico gnu5w32t.ico gnu6w48.ico gnu6w48t.ico 17 gnu5w32.ico gnu5w32t.ico gnu6w48.ico gnu6w48t.ico
18 gnu7.ico gnu8.ico gnu9.ico 18 gnu7.ico gnu8.ico gnu9.ico
19Author: Rob Davenport <rgd at bigfoot.com> 19Author: Rob Davenport <rgd at bigfoot.com>
20Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 20Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
21 Free Software Foundation, Inc. 21 2010, 2011 Free Software Foundation, Inc.
22License: GNU General Public License version 3 or later (see COPYING) 22License: GNU General Public License version 3 or later (see COPYING)
23 23
24 <http://users.adelphia.net/~rob.davenport/gnuicons.html> 24 <http://users.adelphia.net/~rob.davenport/gnuicons.html>
diff --git a/src/ChangeLog b/src/ChangeLog
index 134e289681c..3776682c692 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
12011-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * xdisp.c (handle_fontified_prop): Be careful with font-lock changing
4 the buffer's point-max (bug#7876).
5
62011-01-25 Chong Yidong <cyd@stupidchicken.com>
7
8 * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases.
9 Remove unused case (Bug#6811).
10
12011-01-23 Jan Djärv <jan.h.d@swipnet.se> 112011-01-23 Jan Djärv <jan.h.d@swipnet.se>
2 12
3 * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to 13 * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to
diff --git a/src/lisp.h b/src/lisp.h
index 64c0b2332e3..c5c047a53cb 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -444,7 +444,13 @@ enum pvec_type
444 ((var) = ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \ 444 ((var) = ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \
445 + ((EMACS_INT) (ptr) & VALMASK))) 445 + ((EMACS_INT) (ptr) & VALMASK)))
446 446
447#ifdef DATA_SEG_BITS
448/* DATA_SEG_BITS forces extra bits to be or'd in with any pointers
449 which were stored in a Lisp_Object */
450#define XPNTR(a) ((EMACS_UINT) (((a) & VALMASK) | DATA_SEG_BITS))
451#else
447#define XPNTR(a) ((EMACS_UINT) ((a) & VALMASK)) 452#define XPNTR(a) ((EMACS_UINT) ((a) & VALMASK))
453#endif
448 454
449#endif /* not USE_LSB_TAG */ 455#endif /* not USE_LSB_TAG */
450 456
@@ -482,6 +488,14 @@ enum pvec_type
482# define XSET(var, vartype, ptr) \ 488# define XSET(var, vartype, ptr) \
483 (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype)))) 489 (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype))))
484 490
491#ifdef DATA_SEG_BITS
492/* DATA_SEG_BITS forces extra bits to be or'd in with any pointers
493 which were stored in a Lisp_Object */
494#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
495#else
496#define XPNTR(a) ((EMACS_INT) XUINT (a))
497#endif
498
485#endif /* !USE_LSB_TAG */ 499#endif /* !USE_LSB_TAG */
486 500
487#if __GNUC__ >= 2 && defined (__OPTIMIZE__) 501#if __GNUC__ >= 2 && defined (__OPTIMIZE__)
@@ -503,23 +517,6 @@ extern Lisp_Object make_number (EMACS_INT);
503 517
504#define EQ(x, y) (XHASH (x) == XHASH (y)) 518#define EQ(x, y) (XHASH (x) == XHASH (y))
505 519
506#ifndef XPNTR
507#ifdef DATA_SEG_BITS
508/* This case is used for the rt-pc.
509 In the diffs I was given, it checked for ptr = 0
510 and did not adjust it in that case.
511 But I don't think that zero should ever be found
512 in a Lisp object whose data type says it points to something. */
513#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
514#else
515/* Some versions of gcc seem to consider the bitfield width when
516 issuing the "cast to pointer from integer of different size"
517 warning, so the cast is here to widen the value back to its natural
518 size. */
519#define XPNTR(a) ((EMACS_INT) XUINT (a))
520#endif
521#endif /* no XPNTR */
522
523/* Largest and smallest representable fixnum values. These are the C 520/* Largest and smallest representable fixnum values. These are the C
524 values. */ 521 values. */
525 522
diff --git a/src/xdisp.c b/src/xdisp.c
index 4d0ff88f9a3..09a3cae5754 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3173,6 +3173,8 @@ handle_fontified_prop (struct it *it)
3173 val = Vfontification_functions; 3173 val = Vfontification_functions;
3174 specbind (Qfontification_functions, Qnil); 3174 specbind (Qfontification_functions, Qnil);
3175 3175
3176 xassert (it->end_charpos == ZV);
3177
3176 if (!CONSP (val) || EQ (XCAR (val), Qlambda)) 3178 if (!CONSP (val) || EQ (XCAR (val), Qlambda))
3177 safe_call1 (val, pos); 3179 safe_call1 (val, pos);
3178 else 3180 else
@@ -3212,6 +3214,13 @@ handle_fontified_prop (struct it *it)
3212 3214
3213 unbind_to (count, Qnil); 3215 unbind_to (count, Qnil);
3214 3216
3217 /* The fontification code may have added/removed text.
3218 It could do even a lot worse, but let's at least protect against
3219 the most obvious case where only the text past `pos' gets changed',
3220 as is/was done in grep.el where some escapes sequences are turned
3221 into face properties (bug#7876). */
3222 it->end_charpos = ZV;
3223
3215 /* Return HANDLED_RECOMPUTE_PROPS only if function fontified 3224 /* Return HANDLED_RECOMPUTE_PROPS only if function fontified
3216 something. This avoids an endless loop if they failed to 3225 something. This avoids an endless loop if they failed to
3217 fontify the text for which reason ever. */ 3226 fontify the text for which reason ever. */