emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r102968: Merge from emacs-23.


From: Glenn Morris
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r102968: Merge from emacs-23.
Date: Mon, 24 Jan 2011 19:47:47 -0800
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 102968 [merge]
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Mon 2011-01-24 19:47:47 -0800
message:
  Merge from emacs-23.
  
  Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
modified:
  ChangeLog
  configure.in
  doc/lispref/ChangeLog
  doc/lispref/display.texi
  doc/lispref/frames.texi
  doc/lispref/loading.texi
  doc/lispref/searching.texi
  lib-src/ChangeLog
  lib-src/movemail.c
  lisp/ChangeLog
  lisp/button.el
  lisp/comint.el
  lisp/dired.el
  lisp/emacs-lisp/re-builder.el
  lisp/files.el
  lisp/gnus/nnbabyl.el
  lisp/progmodes/ruby-mode.el
  lisp/simple.el
  lwlib/ChangeLog
  lwlib/lwlib-Xm.c
  nt/icons/README
  src/ChangeLog
  src/lisp.h
  src/xdisp.c
=== modified file 'ChangeLog'
--- a/ChangeLog 2011-01-24 04:53:39 +0000
+++ b/ChangeLog 2011-01-25 03:47:47 +0000
@@ -1,3 +1,7 @@
+2011-01-25  Peter O'Gorman  <address@hidden>  (tiny change)
+
+       * configure.in: Add HP-UX on IA64 (Bug#6811).
+
 2011-01-24  Paul Eggert  <address@hidden>
 
        Remove HAVE_RAW_DECL_CHOWN etc. from config.h

=== modified file 'configure.in'
--- a/configure.in      2011-01-24 04:53:39 +0000
+++ b/configure.in      2011-01-25 03:47:47 +0000
@@ -515,6 +515,14 @@
     CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
   ;;
 
+  ia64*-hp-hpux1[1-9]* )
+    machine=hp800 opsys=hpux11
+  ;;
+
+  hppa*-*-linux-gnu* )
+    machine=hp800 opsys=gnu-linux
+  ;;
+
   ## IBM machines
   rs6000-ibm-aix4.[23]* )
     machine=ibmrs6000 opsys=aix4-2

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2011-01-23 10:22:21 +0000
+++ b/doc/lispref/ChangeLog     2011-01-25 03:47:47 +0000
@@ -1,3 +1,21 @@
+2011-01-25  Chong Yidong  <address@hidden>
+            Richard Kim  <address@hidden>
+
+       * loading.texi (Library Search): Document list-load-path-shadows
+       (Bug#7757).
+
+2011-01-25  Chong Yidong  <address@hidden>
+
+       * searching.texi (Regexp Special): Remove outdated discussion of
+       character sets (Bug#7780).
+
+       * frames.texi (Pop-Up Menus): Document where menu title comes
+       from (Bug#7684).
+
+2011-01-25  Glenn Morris  <address@hidden>
+
+       * display.texi (Making Buttons): Mention limitation of text buttons.
+
 2011-01-23  Werner Lemberg  <address@hidden>
 
        * Makefile.in (MAKEINFO): Now controlled by `configure'.

=== modified file 'doc/lispref/display.texi'
--- a/doc/lispref/display.texi  2011-01-15 23:16:57 +0000
+++ b/doc/lispref/display.texi  2011-01-25 03:47:47 +0000
@@ -5012,8 +5012,9 @@
 button actually part of the text instead of being a property of the
 buffer.  Buttons using text properties do not create markers into the
 buffer, which is important for speed when you use extremely large
-numbers of buttons.  Both functions return the position of the start
-of the new button:
+numbers of buttons.  (However, if there is an existing face text
+property at the site of the button, the button face may not be visible.)
+Both functions return the position of the start of the new button:
 
 @defun make-text-button beg end &rest properties
 This makes a button from @var{beg} to @var{end} in the current buffer, using

=== modified file 'doc/lispref/frames.texi'
--- a/doc/lispref/frames.texi   2011-01-15 23:16:57 +0000
+++ b/doc/lispref/frames.texi   2011-01-25 03:47:47 +0000
@@ -1791,9 +1791,13 @@
 The argument @var{menu} says what to display in the menu.  It can be a
 keymap or a list of keymaps (@pxref{Menu Keymaps}).  In this case, the
 return value is the list of events corresponding to the user's choice.
-(This list has more than one element if the choice occurred in a
-submenu.)  Note that @code{x-popup-menu} does not actually execute the
-command bound to that sequence of events.
+This list has more than one element if the choice occurred in a
+submenu.  (Note that @code{x-popup-menu} does not actually execute the
+command bound to that sequence of events.)  On toolkits that support
+menu titles, the title is taken from the prompt string of @var{menu}
+if @var{menu} is a keymap, or from the prompt string of the first
+keymap in @var{menu} if it is a list of keymaps (@pxref{Defining
+Menus}).
 
 Alternatively, @var{menu} can have the following form:
 

=== modified file 'doc/lispref/loading.texi'
--- a/doc/lispref/loading.texi  2011-01-15 23:16:57 +0000
+++ b/doc/lispref/loading.texi  2011-01-25 03:47:47 +0000
@@ -363,6 +363,31 @@
 tells @code{locate-library} to display the file name in the echo area.
 @end deffn
 
address@hidden shadowed Lisp files
address@hidden Command list-load-path-shadows &optional stringp
+This command shows a list of @dfn{shadowed} Emacs Lisp files.  A
+shadowed file is one that will not normally be loaded, despite being
+in a directory on @code{load-path}, due to the existence of another
+similarly-named file in a directory earlier on @code{load-path}.
+
+For instance, suppose @code{load-path} is set to
+
address@hidden
+  ("/opt/emacs/site-lisp" "/usr/share/emacs/23.3/lisp")
address@hidden smallexample
+
address@hidden
+and that both these directories contain a file named @file{foo.el}.
+Then @code{(require 'foo)} never loads the file in the second
+directory.  Such a situation might indicate a problem in the way Emacs
+was installed.
+
+When called from Lisp, this function prints a message listing the
+shadowed files, instead of displaying them in a buffer.  If the
+optional argument @code{stringp} is address@hidden, it instead returns
+the shadowed files as a string.
address@hidden deffn
+
 @node Loading Non-ASCII
 @section Loading address@hidden Characters
 

=== modified file 'doc/lispref/searching.texi'
--- a/doc/lispref/searching.texi        2011-01-15 23:16:57 +0000
+++ b/doc/lispref/searching.texi        2011-01-25 03:47:47 +0000
@@ -386,15 +386,6 @@
 To include @samp{^} in a character alternative, put it anywhere but at
 the beginning.
 
-The beginning and end of a range of multibyte characters must be in
-the same character set (@pxref{Character Sets}).  Thus,
address@hidden"[\x8e0-\x97c]"} is invalid because character 0x8e0 (@samp{a}
-with grave accent) is in the Emacs character set for Latin-1 but the
-character 0x97c (@samp{u} with diaeresis) is in the Emacs character
-set for Latin-2.  (We use Lisp string syntax to write that example,
-and a few others in the next few paragraphs, in order to include hex
-escape sequences in them.)
-
 If a range starts with a unibyte character @var{c} and ends with a
 multibyte character @var{c2}, the range is divided into two parts: one
 is @address@hidden, the other is @address@hidden@var{c2}}, where

=== modified file 'lib-src/ChangeLog'
--- a/lib-src/ChangeLog 2011-01-23 07:30:19 +0000
+++ b/lib-src/ChangeLog 2011-01-25 03:47:47 +0000
@@ -1,3 +1,8 @@
+2011-01-25  Chong Yidong  <address@hidden>
+
+       * movemail.c (main): Use setregid instead of setegid, which is
+       missing on older systems.  Suggested by Peter O'Gorman (Bug#6811).
+
 2011-01-23  Paul Eggert  <address@hidden>
 
        Check return values of some library calls.

=== modified file 'lib-src/movemail.c'
--- a/lib-src/movemail.c        2011-01-23 07:30:19 +0000
+++ b/lib-src/movemail.c        2011-01-25 03:47:47 +0000
@@ -354,7 +354,7 @@
       time_t touched_lock, now;
 #endif
 
-      if (setuid (getuid ()) < 0 || setegid (real_gid) < 0)
+      if (setuid (getuid ()) < 0 || setregid (-1, real_gid) < 0)
        fatal ("Failed to drop privileges", 0, 0);
 
 #ifndef MAIL_USE_MMDF
@@ -381,7 +381,7 @@
       if (outdesc < 0)
        pfatal_with_name (outname);
 
-      if (setegid (priv_gid) < 0)
+      if (setregid (-1, priv_gid) < 0)
        fatal ("Failed to regain privileges", 0, 0);
 
       /* This label exists so we can retry locking
@@ -478,7 +478,7 @@
 #endif
 
       /* Prevent symlink attacks truncating other users' mailboxes */
-      if (setegid (real_gid) < 0)
+      if (setregid (-1, real_gid) < 0)
        fatal ("Failed to drop privileges", 0, 0);
 
       /* Check to make sure no errors before we zap the inbox.  */
@@ -514,7 +514,7 @@
 #endif /* not MAIL_USE_SYSTEM_LOCK */
 
       /* End of mailbox truncation */
-      if (setegid (priv_gid) < 0)
+      if (setregid (-1, priv_gid) < 0)
        fatal ("Failed to regain privileges", 0, 0);
 
 #ifdef MAIL_USE_MAILLOCK

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-01-24 20:10:04 +0000
+++ b/lisp/ChangeLog    2011-01-25 03:47:47 +0000
@@ -1,3 +1,38 @@
+2011-01-25  Stefan Monnier  <address@hidden>
+
+       * files.el (file-name-non-special): Only change buffer-file-name after
+       insert-file-contents if it's `visit'ing the file (bug#7854).
+
+2011-01-25  Chong Yidong  <address@hidden>
+
+       * dired.el (dired-revert): Doc fix (Bug#7758).
+
+       * simple.el (line-move-visual): Doc fix (Bug#7594).
+
+2011-01-25  Nobuyoshi Nakada  <address@hidden>
+
+       * progmodes/ruby-mode.el (ruby-here-doc-beg-match): Fix for
+       here-doc which ends with an underscore.
+       (ruby-mode-set-encoding): Skip shebang line always.
+       (ruby-mode-map): Bind C-c C-c to comment-region.
+       (ruby-font-lock-keywords): Highlight literal hash key labels as symbols.
+       (ruby-forward-sexp): Stop after literal hash key labels.
+       (ruby-font-lock-syntactic-keywords): Highlight regexp after open
+       bracket.
+
+2011-01-25  Keitaro Miyazaki  <address@hidden>  (tiny change)
+
+       * emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
+       the correct buffer (Bug#7650).
+
+2011-01-25  Glenn Morris  <address@hidden>
+
+       * comint.el (comint-mode): Doc fix.  (Bug#7897)
+
+       * simple.el (do-auto-fill): Give it a doc string.
+
+       * button.el (make-text-button): Doc fix.  (See bug#7881)
+
 2011-01-24  Stefan Monnier  <address@hidden>
 
        * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):

=== modified file 'lisp/button.el'
--- a/lisp/button.el    2011-01-15 23:16:57 +0000
+++ b/lisp/button.el    2011-01-25 03:47:47 +0000
@@ -1,7 +1,7 @@
 ;;; button.el --- clickable buttons
 ;;
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+;;   2010, 2011  Free Software Foundation, Inc.
 ;;
 ;; Author: Miles Bader <address@hidden>
 ;; Keywords: extensions
@@ -38,7 +38,9 @@
 ;; the button is represented by a marker or buffer-position pointing
 ;; somewhere in the button.  In the latter case, no markers into the
 ;; buffer are retained, which is important for speed if there are are
-;; extremely large numbers of buttons.
+;; extremely large numbers of buttons.  Note however that if there is
+;; an existing face text-property at the site of the button, the
+;; button face may not be visible.  Using overlays avoids this.
 ;;
 ;; Using `define-button-type' to define default properties for buttons
 ;; is not necessary, but it is is encouraged, since doing so makes the
@@ -290,9 +292,12 @@
 `define-button-type'.
 
 This function is like `make-button', except that the button is actually
-part of the text instead of being a property of the buffer.  Creating
-large numbers of buttons can also be somewhat faster using
-`make-text-button'.
+part of the text instead of being a property of the buffer.  That is,
+this function uses text properties, the other uses overlays.
+Creating large numbers of buttons can also be somewhat faster
+using `make-text-button'.  Note, however, that if there is an existing
+face property at the site of the button, the button face may not be visible.
+You may want to use `make-button' in that case.
 
 BEG can also be a string, in which case it is made into a button.
 

=== modified file 'lisp/comint.el'
--- a/lisp/comint.el    2011-01-22 19:36:45 +0000
+++ b/lisp/comint.el    2011-01-25 03:47:47 +0000
@@ -607,8 +607,9 @@
 and `comint-get-old-input' to appropriate functions, and the variable
 `comint-prompt-regexp' to the appropriate regular expression.
 
-An input history is maintained of size `comint-input-ring-size', and
-can be accessed with the commands \\[comint-next-input], 
\\[comint-previous-input], and \\[comint-dynamic-list-input-ring].
+The mode maintains an input history of size `comint-input-ring-size'.
+You can access this with the commands \\[comint-next-input],
+\\[comint-previous-input], and \\[comint-dynamic-list-input-ring].
 Input ring history expansion can be achieved with the commands
 \\[comint-replace-by-expanded-history] or \\[comint-magic-space].
 Input ring expansion is controlled by the variable `comint-input-autoexpand',

=== modified file 'lisp/dired.el'
--- a/lisp/dired.el     2011-01-20 02:55:36 +0000
+++ b/lisp/dired.el     2011-01-25 03:47:47 +0000
@@ -1146,7 +1146,10 @@
   "Reread the dired buffer.
 Must also be called after `dired-actual-switches' have changed.
 Should not fail even on completely garbaged buffers.
-Preserves old cursor, marks/flags, hidden-p."
+Preserves old cursor, marks/flags, hidden-p.
+
+Dired sets `revert-buffer-function' to this function.  The args
+ARG and NOCONFIRM, passed from `revert-buffer', are ignored."
   (widen)                              ; just in case user narrowed
   (let ((modflag (buffer-modified-p))
        (positions (dired-save-positions))

=== modified file 'lisp/emacs-lisp/re-builder.el'
--- a/lisp/emacs-lisp/re-builder.el     2011-01-22 19:36:45 +0000
+++ b/lisp/emacs-lisp/re-builder.el     2011-01-25 03:47:47 +0000
@@ -243,7 +243,9 @@
                  :help "Quit the RE Builder mode"))
     (define-key menu-map [rt]
       '(menu-item "Case sensitive" reb-toggle-case
-                 :button (:toggle . (null case-fold-search))
+                 :button (:toggle . (with-current-buffer
+                                        reb-target-buffer
+                                      (null case-fold-search)))
                  :help "Toggle case sensitivity of searches for RE Builder 
target buffer"))
     (define-key menu-map [rb]
       '(menu-item "Change target buffer..." reb-change-target-buffer

=== modified file 'lisp/files.el'
--- a/lisp/files.el     2011-01-20 02:55:36 +0000
+++ b/lisp/files.el     2011-01-25 03:47:47 +0000
@@ -6118,8 +6118,7 @@
                          (substitute-in-file-name identity)
                          ;; `add' means add "/:" to the result.
                          (file-truename add 0)
-                         ;; `quote' means add "/:" to buffer-file-name.
-                         (insert-file-contents quote 0)
+                         (insert-file-contents insert-file-contents 0)
                          ;; `unquote-then-quote' means set buffer-file-name
                          ;; temporarily to unquoted filename.
                          (verify-visited-file-modtime unquote-then-quote)
@@ -6150,20 +6149,18 @@
                           "/"
                         (substring (car pair) 2)))))
        (setq file-arg-indices (cdr file-arg-indices))))
-    (cond ((eq method 'identity)
-          (car arguments))
-         ((eq method 'add)
-          (concat "/:" (apply operation arguments)))
-         ((eq method 'quote)
-          (unwind-protect
+    (case method
+      (identity (car arguments))
+      (add (concat "/:" (apply operation arguments)))
+      (insert-file-contents
+       (let ((visit (nth 1 arguments)))
+         (prog1
               (apply operation arguments)
-            (setq buffer-file-name (concat "/:" buffer-file-name))))
-         ((eq method 'unquote-then-quote)
-          (let (res)
-            (setq buffer-file-name (substring buffer-file-name 2))
-            (setq res (apply operation arguments))
-            (setq buffer-file-name (concat "/:" buffer-file-name))
-            res))
+           (when (and visit buffer-file-name)
+             (setq buffer-file-name (concat "/:" buffer-file-name))))))
+      (unquote-then-quote
+       (let ((buffer-file-name (substring buffer-file-name 2)))
+         (apply operation arguments)))
          (t
           (apply operation arguments)))))
 

=== modified file 'lisp/gnus/nnbabyl.el'
--- a/lisp/gnus/nnbabyl.el      2011-01-16 02:21:30 +0000
+++ b/lisp/gnus/nnbabyl.el      2011-01-25 03:47:47 +0000
@@ -1,6 +1,6 @@
 ;;; nnbabyl.el --- rmail mbox access for Gnus
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001, 2002, 2003,
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
 ;;   2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   Free Software Foundation, Inc.
 

=== modified file 'lisp/progmodes/ruby-mode.el'
--- a/lisp/progmodes/ruby-mode.el       2011-01-24 19:47:46 +0000
+++ b/lisp/progmodes/ruby-mode.el       2011-01-25 03:47:47 +0000
@@ -153,6 +153,7 @@
     (define-key map (kbd "C-M-h") 'backward-kill-word)
     (define-key map (kbd "C-j")   'reindent-then-newline-and-indent)
     (define-key map (kbd "C-m")   'newline)
+    (define-key map (kbd "C-c C-c") 'comment-region)
     map)
   "Keymap used in Ruby mode.")
 
@@ -319,7 +320,7 @@
                             (cdr (assq coding-system ruby-encoding-map)))
                        coding-system))
                 "ascii-8bit"))
-        (if (looking-at "^#![^\n]*ruby") (beginning-of-line 2))
+        (if (looking-at "^#!") (beginning-of-line 2))
         (cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s 
*\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)")
                (unless (string= (match-string 2) coding-system)
                  (goto-char (match-beginning 2))
@@ -927,6 +928,7 @@
       (condition-case nil
           (while (> i 0)
             (skip-syntax-forward " ")
+           (if (looking-at ",\\s *") (goto-char (match-end 0)))
             (cond ((looking-at "\\?\\(\\\\[CM]-\\)*\\\\?\\S ")
                    (goto-char (match-end 0)))
                   ((progn
@@ -1179,56 +1181,59 @@
     "Return a regexp to find the beginning of a heredoc.
 
 This should only be called after matching against `ruby-here-doc-end-re'."
-    (let ((contents (regexp-quote (match-string 2))))
+    (let ((contents (concat
+                     (regexp-quote (concat (match-string 2) (match-string 3)))
+                     (if (string= (match-string 3) "_") "\\B" "\\b"))))
       (concat "<<"
               (let ((match (match-string 1)))
                 (if (and match (> (length match) 0))
-                    (concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)" match "\\)"
-                            contents "\\b\\(\\1\\|\\2\\)")
-                  (concat "-?\\([\"']\\|\\)" contents "\\b\\1"))))))
+                    (concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)"
+                            (match-string 1) "\\)"
+                            contents "\\(\\1\\|\\2\\)")
+                  (concat "-?\\([\"']\\|\\)" contents "\\1"))))))
 
   (defconst ruby-font-lock-syntactic-keywords
     `( ;; #{ }, #$hoge, address@hidden are not comments
-      ("\\(#\\)address@hidden" 1 (1 . nil))
-      ;; the last $', $", $` in the respective string is not variable
-      ;; the last ?', ?", ?` in the respective string is not ascii code
-      ("\\(^\\|[\[ 
\t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)"
-       (2 (7 . nil))
-       (4 (7 . nil)))
-      ;; $' $" $` .... are variables
-      ;; ?' ?" ?` are ascii codes
-      ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil))
-      ;; regexps
-      ("\\(^\\|[=(,~?:;<>]\\|\\(^\\|\\s 
\\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s
 *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)"
-       (4 (7 . ?/))
-       (6 (7 . ?/)))
-      ("^=en\\(d\\)\\_>" 1 "!")
-      ("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax))
-      ;; Currently, the following case is highlighted incorrectly:
-      ;;
-      ;;   <<FOO
-      ;;   FOO
-      ;;   <<BAR
-      ;;   <<BAZ
-      ;;   BAZ
-      ;;   BAR
-      ;;
-      ;; This is because all here-doc beginnings are highlighted before any 
endings,
-      ;; so although <<BAR is properly marked as a beginning, when we get to 
<<BAZ
-      ;; it thinks <<BAR is part of a string so it's marked as well.
-      ;;
-      ;; This may be fixable by modifying ruby-in-here-doc-p to use
-      ;; ruby-in-non-here-doc-string-p rather than syntax-ppss-context,
-      ;; but I don't want to try that until we've got unit tests set up
-      ;; to make sure I don't break anything else.
-      (,(concat ruby-here-doc-beg-re ".*\\(\n\\)")
-       ,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re))
-       (ruby-here-doc-beg-syntax))
-      (,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax)))
-    "Syntactic keywords for Ruby mode.  See `font-lock-syntactic-keywords'.")
+    ("\\(#\\)address@hidden" 1 (1 . nil))
+    ;; the last $', $", $` in the respective string is not variable
+    ;; the last ?', ?", ?` in the respective string is not ascii code
+    ("\\(^\\|[\[ 
\t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)"
+     (2 (7 . nil))
+     (4 (7 . nil)))
+    ;; $' $" $` .... are variables
+    ;; ?' ?" ?` are ascii codes
+    ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil))
+    ;; regexps
+    ("\\(^\\|[[=(,~?:;<>]\\|\\(^\\|\\s 
\\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s
 *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)"
+     (4 (7 . ?/))
+     (6 (7 . ?/)))
+    ("^=en\\(d\\)\\_>" 1 "!")
+    ("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax))
+    ;; Currently, the following case is highlighted incorrectly:
+    ;;
+    ;;   <<FOO
+    ;;   FOO
+    ;;   <<BAR
+    ;;   <<BAZ
+    ;;   BAZ
+    ;;   BAR
+    ;;
+    ;; This is because all here-doc beginnings are highlighted before any 
endings,
+    ;; so although <<BAR is properly marked as a beginning, when we get to 
<<BAZ
+    ;; it thinks <<BAR is part of a string so it's marked as well.
+    ;;
+    ;; This may be fixable by modifying ruby-in-here-doc-p to use
+    ;; ruby-in-non-here-doc-string-p rather than syntax-ppss-context,
+    ;; but I don't want to try that until we've got unit tests set up
+    ;; to make sure I don't break anything else.
+    (,(concat ruby-here-doc-beg-re ".*\\(\n\\)")
+     ,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re))
+     (ruby-here-doc-beg-syntax))
+    (,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax)))
+  "Syntactic keywords for Ruby mode.  See `font-lock-syntactic-keywords'.")
 
   (defun ruby-comment-beg-syntax ()
-    "Return the syntax cell for a the first character of a =begin.
+  "Return the syntax cell for a the first character of a =begin.
 See the definition of `ruby-font-lock-syntactic-keywords'.
 
 This returns a comment-delimiter cell as long as the =begin
@@ -1420,6 +1425,7 @@
    ;; symbols
    
'("\\(^\\|[^:]\\)\\(:\\(address@hidden|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
      2 font-lock-reference-face)
+   '("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 
font-lock-reference-face)
    ;; expression expansion
    
'("#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)"
      0 font-lock-variable-name-face t)

=== modified file 'lisp/simple.el'
--- a/lisp/simple.el    2011-01-20 06:40:36 +0000
+++ b/lisp/simple.el    2011-01-25 03:47:47 +0000
@@ -4221,9 +4221,11 @@
   "When non-nil, `line-move' moves point by visual lines.
 This movement is based on where the cursor is displayed on the
 screen, instead of relying on buffer contents alone.  It takes
-into account variable-width characters and line continuation."
+into account variable-width characters and line continuation.
+If nil, `line-move' moves point by logical lines."
   :type 'boolean
-  :group 'editing-basics)
+  :group 'editing-basics
+  :version "23.1")
 
 ;; Returns non-nil if partial move was done.
 (defun line-move-partial (arg noerror to-end)
@@ -5102,12 +5104,10 @@
                 regexp)
   :group 'fill)
 
-;; This function is used as the auto-fill-function of a buffer
-;; when Auto-Fill mode is enabled.
-;; It returns t if it really did any work.
-;; (Actually some major modes use a different auto-fill function,
-;; but this one is the default one.)
 (defun do-auto-fill ()
+  "The default value for `normal-auto-fill-function'.
+This is the default auto-fill function, some major modes use a different one.
+Returns t if it really did any work."
   (let (fc justify give-up
           (fill-prefix fill-prefix))
     (if (or (not (setq justify (current-justification)))

=== modified file 'lwlib/ChangeLog'
--- a/lwlib/ChangeLog   2011-01-15 23:16:57 +0000
+++ b/lwlib/ChangeLog   2011-01-25 03:47:47 +0000
@@ -1,3 +1,8 @@
+2011-01-25  Werner Meisner  <address@hidden>
+
+       * lwlib-Xm.c (xm_update_menu): Avoid a NULL pointer dereference
+       (Bug#7690).
+
 2010-09-26  Dan Nicolaescu  <address@hidden>
 
        Use const for some pointer arguments.

=== modified file 'lwlib/lwlib-Xm.c'
--- a/lwlib/lwlib-Xm.c  2011-01-15 23:16:57 +0000
+++ b/lwlib/lwlib-Xm.c  2011-01-25 03:47:47 +0000
@@ -800,7 +800,7 @@
 
   /* Now replace from scratch all the buttons after the last
      place that the top-level structure changed.  */
-  if (val->contents->change == STRUCTURAL_CHANGE)
+  if (val->contents && val->contents->change == STRUCTURAL_CHANGE)
     {
       destroy_all_children (widget, num_children_to_keep);
       make_menu_in_widget (instance, widget, val->contents,

=== modified file 'nt/icons/README'
--- a/nt/icons/README   2009-01-08 03:28:18 +0000
+++ b/nt/icons/README   2011-01-23 00:53:08 +0000
@@ -2,13 +2,13 @@
 
 File: emacs.ico
 Author: Kentaro Ohkouchi <address@hidden>
-Copyright (C) 2008, 2009  Free Software Foundation, Inc.
+Copyright (C) 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later
 
 
 File: emacs22.ico
 Author: Andrew Zhilin
-Copyright (C) 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software 
Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
 
@@ -17,8 +17,8 @@
        gnu5w32.ico gnu5w32t.ico gnu6w48.ico gnu6w48t.ico
        gnu7.ico    gnu8.ico     gnu9.ico
 Author: Rob Davenport <rgd at bigfoot.com>
-Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-  Free Software Foundation, Inc.
+Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+  2010, 2011  Free Software Foundation, Inc.
 License: GNU General Public License version 3 or later (see COPYING)
 
   <http://users.adelphia.net/~rob.davenport/gnuicons.html>

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-01-23 13:28:14 +0000
+++ b/src/ChangeLog     2011-01-25 03:47:47 +0000
@@ -1,3 +1,13 @@
+2011-01-25  Stefan Monnier  <address@hidden>
+
+       * xdisp.c (handle_fontified_prop): Be careful with font-lock changing
+       the buffer's point-max (bug#7876).
+
+2011-01-25  Chong Yidong  <address@hidden>
+
+       * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases.
+       Remove unused case (Bug#6811).
+
 2011-01-23  Jan Djärv  <address@hidden>
 
        * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to

=== modified file 'src/lisp.h'
--- a/src/lisp.h        2011-01-23 02:56:06 +0000
+++ b/src/lisp.h        2011-01-25 03:47:47 +0000
@@ -444,7 +444,13 @@
    ((var) = ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \
             + ((EMACS_INT) (ptr) & VALMASK)))
 
+#ifdef DATA_SEG_BITS
+/* DATA_SEG_BITS forces extra bits to be or'd in with any pointers
+   which were stored in a Lisp_Object */
+#define XPNTR(a) ((EMACS_UINT) (((a) & VALMASK) | DATA_SEG_BITS))
+#else
 #define XPNTR(a) ((EMACS_UINT) ((a) & VALMASK))
+#endif
 
 #endif /* not USE_LSB_TAG */
 
@@ -482,6 +488,14 @@
 # define XSET(var, vartype, ptr) \
    (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype))))
 
+#ifdef DATA_SEG_BITS
+/* DATA_SEG_BITS forces extra bits to be or'd in with any pointers
+   which were stored in a Lisp_Object */
+#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
+#else
+#define XPNTR(a) ((EMACS_INT) XUINT (a))
+#endif
+
 #endif /* !USE_LSB_TAG */
 
 #if __GNUC__ >= 2 && defined (__OPTIMIZE__)
@@ -503,23 +517,6 @@
 
 #define EQ(x, y) (XHASH (x) == XHASH (y))
 
-#ifndef XPNTR
-#ifdef DATA_SEG_BITS
-/* This case is used for the rt-pc.
-   In the diffs I was given, it checked for ptr = 0
-   and did not adjust it in that case.
-   But I don't think that zero should ever be found
-   in a Lisp object whose data type says it points to something.  */
-#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
-#else
-/* Some versions of gcc seem to consider the bitfield width when
-   issuing the "cast to pointer from integer of different size"
-   warning, so the cast is here to widen the value back to its natural
-   size.  */
-#define XPNTR(a) ((EMACS_INT) XUINT (a))
-#endif
-#endif /* no XPNTR */
-
 /* Largest and smallest representable fixnum values.  These are the C
    values.  */
 

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2011-01-23 02:56:06 +0000
+++ b/src/xdisp.c       2011-01-25 03:47:47 +0000
@@ -3173,6 +3173,8 @@
       val = Vfontification_functions;
       specbind (Qfontification_functions, Qnil);
 
+      xassert (it->end_charpos == ZV);
+      
       if (!CONSP (val) || EQ (XCAR (val), Qlambda))
        safe_call1 (val, pos);
       else
@@ -3212,6 +3214,13 @@
 
       unbind_to (count, Qnil);
 
+      /* The fontification code may have added/removed text.
+        It could do even a lot worse, but let's at least protect against
+        the most obvious case where only the text past `pos' gets changed',
+        as is/was done in grep.el where some escapes sequences are turned
+        into face properties (bug#7876).  */
+      it->end_charpos = ZV;
+      
       /* Return HANDLED_RECOMPUTE_PROPS only if function fontified
         something.  This avoids an endless loop if they failed to
         fontify the text for which reason ever.  */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]