diff options
| author | Glenn Morris | 2011-01-24 19:47:47 -0800 |
|---|---|---|
| committer | Glenn Morris | 2011-01-24 19:47:47 -0800 |
| commit | 06d8ace51597cd41e110560a56a1abeb6cce23d6 (patch) | |
| tree | e893bab169f27821637fc07e3cd2414b4b9b7b68 | |
| parent | c5ecc7690d4afafb42049634d64abd781ff76642 (diff) | |
| parent | 0d19d4feaa653a315853716e64bbaddb210a26ca (diff) | |
| download | emacs-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-- | ChangeLog | 4 | ||||
| -rw-r--r-- | configure.in | 8 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 18 | ||||
| -rw-r--r-- | doc/lispref/display.texi | 5 | ||||
| -rw-r--r-- | doc/lispref/frames.texi | 10 | ||||
| -rw-r--r-- | doc/lispref/loading.texi | 25 | ||||
| -rw-r--r-- | doc/lispref/searching.texi | 9 | ||||
| -rw-r--r-- | lib-src/ChangeLog | 5 | ||||
| -rw-r--r-- | lib-src/movemail.c | 8 | ||||
| -rw-r--r-- | lisp/ChangeLog | 35 | ||||
| -rw-r--r-- | lisp/button.el | 17 | ||||
| -rw-r--r-- | lisp/comint.el | 5 | ||||
| -rw-r--r-- | lisp/dired.el | 5 | ||||
| -rw-r--r-- | lisp/emacs-lisp/re-builder.el | 4 | ||||
| -rw-r--r-- | lisp/files.el | 27 | ||||
| -rw-r--r-- | lisp/gnus/nnbabyl.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/ruby-mode.el | 92 | ||||
| -rw-r--r-- | lisp/simple.el | 14 | ||||
| -rw-r--r-- | lwlib/ChangeLog | 5 | ||||
| -rw-r--r-- | lwlib/lwlib-Xm.c | 2 | ||||
| -rw-r--r-- | nt/icons/README | 8 | ||||
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/lisp.h | 31 | ||||
| -rw-r--r-- | src/xdisp.c | 9 |
24 files changed, 242 insertions, 116 deletions
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-01-24 Paul Eggert <eggert@cs.ucla.edu> | 5 | 2011-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 @@ | |||
| 1 | 2011-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 | |||
| 7 | 2011-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 | |||
| 15 | 2011-01-25 Glenn Morris <rgm@gnu.org> | ||
| 16 | |||
| 17 | * display.texi (Making Buttons): Mention limitation of text buttons. | ||
| 18 | |||
| 1 | 2011-01-23 Werner Lemberg <wl@gnu.org> | 19 | 2011-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. | |||
| 5012 | button actually part of the text instead of being a property of the | 5012 | button actually part of the text instead of being a property of the |
| 5013 | buffer. Buttons using text properties do not create markers into the | 5013 | buffer. Buttons using text properties do not create markers into the |
| 5014 | buffer, which is important for speed when you use extremely large | 5014 | buffer, which is important for speed when you use extremely large |
| 5015 | numbers of buttons. Both functions return the position of the start | 5015 | numbers of buttons. (However, if there is an existing face text |
| 5016 | of the new button: | 5016 | property at the site of the button, the button face may not be visible.) |
| 5017 | Both 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 |
| 5019 | This makes a button from @var{beg} to @var{end} in the current buffer, using | 5020 | This 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. | |||
| 1791 | The argument @var{menu} says what to display in the menu. It can be a | 1791 | The argument @var{menu} says what to display in the menu. It can be a |
| 1792 | keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the | 1792 | keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the |
| 1793 | return value is the list of events corresponding to the user's choice. | 1793 | return 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 | 1794 | This list has more than one element if the choice occurred in a |
| 1795 | submenu.) Note that @code{x-popup-menu} does not actually execute the | 1795 | submenu. (Note that @code{x-popup-menu} does not actually execute the |
| 1796 | command bound to that sequence of events. | 1796 | command bound to that sequence of events.) On toolkits that support |
| 1797 | menu titles, the title is taken from the prompt string of @var{menu} | ||
| 1798 | if @var{menu} is a keymap, or from the prompt string of the first | ||
| 1799 | keymap in @var{menu} if it is a list of keymaps (@pxref{Defining | ||
| 1800 | Menus}). | ||
| 1797 | 1801 | ||
| 1798 | Alternatively, @var{menu} can have the following form: | 1802 | Alternatively, @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 | |||
| 363 | tells @code{locate-library} to display the file name in the echo area. | 363 | tells @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 | ||
| 368 | This command shows a list of @dfn{shadowed} Emacs Lisp files. A | ||
| 369 | shadowed file is one that will not normally be loaded, despite being | ||
| 370 | in a directory on @code{load-path}, due to the existence of another | ||
| 371 | similarly-named file in a directory earlier on @code{load-path}. | ||
| 372 | |||
| 373 | For 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 | ||
| 380 | and that both these directories contain a file named @file{foo.el}. | ||
| 381 | Then @code{(require 'foo)} never loads the file in the second | ||
| 382 | directory. Such a situation might indicate a problem in the way Emacs | ||
| 383 | was installed. | ||
| 384 | |||
| 385 | When called from Lisp, this function prints a message listing the | ||
| 386 | shadowed files, instead of displaying them in a buffer. If the | ||
| 387 | optional argument @code{stringp} is non-@code{nil}, it instead returns | ||
| 388 | the 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{-}. | |||
| 386 | To include @samp{^} in a character alternative, put it anywhere but at | 386 | To include @samp{^} in a character alternative, put it anywhere but at |
| 387 | the beginning. | 387 | the beginning. |
| 388 | 388 | ||
| 389 | The beginning and end of a range of multibyte characters must be in | ||
| 390 | the same character set (@pxref{Character Sets}). Thus, | ||
| 391 | @code{"[\x8e0-\x97c]"} is invalid because character 0x8e0 (@samp{a} | ||
| 392 | with grave accent) is in the Emacs character set for Latin-1 but the | ||
| 393 | character 0x97c (@samp{u} with diaeresis) is in the Emacs character | ||
| 394 | set for Latin-2. (We use Lisp string syntax to write that example, | ||
| 395 | and a few others in the next few paragraphs, in order to include hex | ||
| 396 | escape sequences in them.) | ||
| 397 | |||
| 398 | If a range starts with a unibyte character @var{c} and ends with a | 389 | If a range starts with a unibyte character @var{c} and ends with a |
| 399 | multibyte character @var{c2}, the range is divided into two parts: one | 390 | multibyte character @var{c2}, the range is divided into two parts: one |
| 400 | is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where | 391 | is @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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-01-23 Paul Eggert <eggert@cs.ucla.edu> | 6 | 2011-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 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-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 | |||
| 12 | 2011-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 | |||
| 23 | 2011-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 | |||
| 28 | 2011-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 | |||
| 1 | 2011-01-24 Stefan Monnier <monnier@iro.umontreal.ca> | 36 | 2011-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 | ||
| 292 | This function is like `make-button', except that the button is actually | 294 | This function is like `make-button', except that the button is actually |
| 293 | part of the text instead of being a property of the buffer. Creating | 295 | part of the text instead of being a property of the buffer. That is, |
| 294 | large numbers of buttons can also be somewhat faster using | 296 | this function uses text properties, the other uses overlays. |
| 295 | `make-text-button'. | 297 | Creating large numbers of buttons can also be somewhat faster |
| 298 | using `make-text-button'. Note, however, that if there is an existing | ||
| 299 | face property at the site of the button, the button face may not be visible. | ||
| 300 | You may want to use `make-button' in that case. | ||
| 296 | 301 | ||
| 297 | BEG can also be a string, in which case it is made into a button. | 302 | BEG 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 | |||
| 607 | and `comint-get-old-input' to appropriate functions, and the variable | 607 | and `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 | ||
| 610 | An input history is maintained of size `comint-input-ring-size', and | 610 | The mode maintains an input history of size `comint-input-ring-size'. |
| 611 | can be accessed with the commands \\[comint-next-input], \\[comint-previous-input], and \\[comint-dynamic-list-input-ring]. | 611 | You can access this with the commands \\[comint-next-input], |
| 612 | \\[comint-previous-input], and \\[comint-dynamic-list-input-ring]. | ||
| 612 | Input ring history expansion can be achieved with the commands | 613 | Input 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]. |
| 614 | Input ring expansion is controlled by the variable `comint-input-autoexpand', | 615 | Input 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. |
| 1147 | Must also be called after `dired-actual-switches' have changed. | 1147 | Must also be called after `dired-actual-switches' have changed. |
| 1148 | Should not fail even on completely garbaged buffers. | 1148 | Should not fail even on completely garbaged buffers. |
| 1149 | Preserves old cursor, marks/flags, hidden-p." | 1149 | Preserves old cursor, marks/flags, hidden-p. |
| 1150 | |||
| 1151 | Dired sets `revert-buffer-function' to this function. The args | ||
| 1152 | ARG 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 | ||
| 1181 | This should only be called after matching against `ruby-here-doc-end-re'." | 1183 | This 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. |
| 1232 | See the definition of `ruby-font-lock-syntactic-keywords'. | 1237 | See the definition of `ruby-font-lock-syntactic-keywords'. |
| 1233 | 1238 | ||
| 1234 | This returns a comment-delimiter cell as long as the =begin | 1239 | This 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. |
| 4222 | This movement is based on where the cursor is displayed on the | 4222 | This movement is based on where the cursor is displayed on the |
| 4223 | screen, instead of relying on buffer contents alone. It takes | 4223 | screen, instead of relying on buffer contents alone. It takes |
| 4224 | into account variable-width characters and line continuation." | 4224 | into account variable-width characters and line continuation. |
| 4225 | If 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'. | ||
| 5109 | This is the default auto-fill function, some major modes use a different one. | ||
| 5110 | Returns 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 @@ | |||
| 1 | 2011-01-25 Werner Meisner <weme24@gmx.net> | ||
| 2 | |||
| 3 | * lwlib-Xm.c (xm_update_menu): Avoid a NULL pointer dereference | ||
| 4 | (Bug#7690). | ||
| 5 | |||
| 1 | 2010-09-26 Dan Nicolaescu <dann@ics.uci.edu> | 6 | 2010-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 | ||
| 3 | File: emacs.ico | 3 | File: emacs.ico |
| 4 | Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp> | 4 | Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp> |
| 5 | Copyright (C) 2008, 2009 Free Software Foundation, Inc. | 5 | Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
| 6 | License: GNU General Public License version 3 or later | 6 | License: GNU General Public License version 3 or later |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | File: emacs22.ico | 9 | File: emacs22.ico |
| 10 | Author: Andrew Zhilin | 10 | Author: Andrew Zhilin |
| 11 | Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. | 11 | Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. |
| 12 | License: GNU General Public License version 3 or later (see COPYING) | 12 | License: 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 |
| 19 | Author: Rob Davenport <rgd at bigfoot.com> | 19 | Author: Rob Davenport <rgd at bigfoot.com> |
| 20 | Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 | 20 | Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, |
| 21 | Free Software Foundation, Inc. | 21 | 2010, 2011 Free Software Foundation, Inc. |
| 22 | License: GNU General Public License version 3 or later (see COPYING) | 22 | License: 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 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-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 | |||
| 1 | 2011-01-23 Jan Djärv <jan.h.d@swipnet.se> | 11 | 2011-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. */ |