Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
This commit is contained in:
commit
06d8ace515
24 changed files with 242 additions and 116 deletions
|
@ -1,3 +1,7 @@
|
|||
2011-01-25 Peter O'Gorman <bug-gnu-emacs@mlists.thewrittenword.com> (tiny change)
|
||||
|
||||
* configure.in: Add HP-UX on IA64 (Bug#6811).
|
||||
|
||||
2011-01-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Remove HAVE_RAW_DECL_CHOWN etc. from config.h
|
||||
|
|
|
@ -515,6 +515,14 @@ case "${canonical}" in
|
|||
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
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
2011-01-25 Chong Yidong <cyd@stupidchicken.com>
|
||||
Richard Kim <emacs18@gmail.com>
|
||||
|
||||
* loading.texi (Library Search): Document list-load-path-shadows
|
||||
(Bug#7757).
|
||||
|
||||
2011-01-25 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* 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 <rgm@gnu.org>
|
||||
|
||||
* display.texi (Making Buttons): Mention limitation of text buttons.
|
||||
|
||||
2011-01-23 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* Makefile.in (MAKEINFO): Now controlled by `configure'.
|
||||
|
|
|
@ -5012,8 +5012,9 @@ and returns it.
|
|||
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
|
||||
|
|
|
@ -1791,9 +1791,13 @@ without actually displaying or popping up the menu.
|
|||
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:
|
||||
|
||||
|
|
|
@ -363,6 +363,31 @@ interactively, the argument @var{interactive-call} is @code{t}, and this
|
|||
tells @code{locate-library} to display the file name in the echo area.
|
||||
@end deffn
|
||||
|
||||
@cindex shadowed Lisp files
|
||||
@deffn 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
|
||||
|
||||
@smallexample
|
||||
("/opt/emacs/site-lisp" "/usr/share/emacs/23.3/lisp")
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
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 non-@code{nil}, it instead returns
|
||||
the shadowed files as a string.
|
||||
@end deffn
|
||||
|
||||
@node Loading Non-ASCII
|
||||
@section Loading Non-@acronym{ASCII} Characters
|
||||
|
||||
|
|
|
@ -386,15 +386,6 @@ matches both @samp{]} and @samp{-}.
|
|||
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,
|
||||
@code{"[\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 @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-01-25 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* 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 <eggert@cs.ucla.edu>
|
||||
|
||||
Check return values of some library calls.
|
||||
|
|
|
@ -354,7 +354,7 @@ main (int argc, char **argv)
|
|||
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 @@ main (int argc, char **argv)
|
|||
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 @@ main (int argc, char **argv)
|
|||
#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 @@ main (int argc, char **argv)
|
|||
#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
|
||||
|
|
|
@ -1,3 +1,38 @@
|
|||
2011-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* 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 <cyd@stupidchicken.com>
|
||||
|
||||
* dired.el (dired-revert): Doc fix (Bug#7758).
|
||||
|
||||
* simple.el (line-move-visual): Doc fix (Bug#7594).
|
||||
|
||||
2011-01-25 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* 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 <keitaro.miyazaki@gmail.com> (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 <rgm@gnu.org>
|
||||
|
||||
* 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 <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):
|
||||
|
|
|
@ -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 <miles@gnu.org>
|
||||
;; 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 @@ button-type from which to inherit other properties; see
|
|||
`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.
|
||||
|
||||
|
|
|
@ -607,8 +607,9 @@ mode, Shell mode, etc. This can be done by setting the hooks
|
|||
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',
|
||||
|
|
|
@ -1146,7 +1146,10 @@ If HDR is non-nil, insert a header line with the directory name."
|
|||
"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))
|
||||
|
|
|
@ -243,7 +243,9 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
|
|||
: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
|
||||
|
|
|
@ -6118,8 +6118,7 @@ only these files will be asked to be saved."
|
|||
(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 @@ only these files will be asked to be saved."
|
|||
"/"
|
||||
(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)))))
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -153,6 +153,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
|
|||
(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 @@ Also ignores spaces after parenthesis when 'space."
|
|||
(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 @@ With ARG, do it many times. Negative ARG means move backward."
|
|||
(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 @@ It's useful in that it divides up the match string so that
|
|||
"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, #@foo are not comments
|
||||
("\\(#\\)[{$@]" 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'.")
|
||||
("\\(#\\)[{$@]" 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 @@ See `font-lock-syntax-table'.")
|
|||
;; symbols
|
||||
'("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\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)
|
||||
|
|
|
@ -4221,9 +4221,11 @@ Outline mode sets this."
|
|||
"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 @@ If optional arg REALLY-WORD is non-nil, it finds just a word."
|
|||
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)))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-01-25 Werner Meisner <weme24@gmx.net>
|
||||
|
||||
* lwlib-Xm.c (xm_update_menu): Avoid a NULL pointer dereference
|
||||
(Bug#7690).
|
||||
|
||||
2010-09-26 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
Use const for some pointer arguments.
|
||||
|
|
|
@ -800,7 +800,7 @@ xm_update_menu (widget_instance* instance,
|
|||
|
||||
/* 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,
|
||||
|
|
|
@ -2,13 +2,13 @@ COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
|
|||
|
||||
File: emacs.ico
|
||||
Author: Kentaro Ohkouchi <nanasess@fsm.ne.jp>
|
||||
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 @@ Files: gnu2a32.ico gnu2a32t.ico gnu2b48.ico gnu2b48t.ico
|
|||
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>
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
2011-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* xdisp.c (handle_fontified_prop): Be careful with font-lock changing
|
||||
the buffer's point-max (bug#7876).
|
||||
|
||||
2011-01-25 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* 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 <jan.h.d@swipnet.se>
|
||||
|
||||
* nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to
|
||||
|
|
31
src/lisp.h
31
src/lisp.h
|
@ -444,7 +444,13 @@ enum pvec_type
|
|||
((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 @@ enum pvec_type
|
|||
# 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 @@ extern Lisp_Object make_number (EMACS_INT);
|
|||
|
||||
#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. */
|
||||
|
||||
|
|
|
@ -3173,6 +3173,8 @@ handle_fontified_prop (struct it *it)
|
|||
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 @@ handle_fontified_prop (struct it *it)
|
|||
|
||||
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue