Commit 06d8ace5 authored by Glenn Morris's avatar Glenn Morris
Browse files

Merge from emacs-23.

Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
parents c5ecc769 0d19d4fe
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> 2011-01-24 Paul Eggert <eggert@cs.ucla.edu>
Remove HAVE_RAW_DECL_CHOWN etc. from config.h Remove HAVE_RAW_DECL_CHOWN etc. from config.h
......
...@@ -515,6 +515,14 @@ case "${canonical}" in ...@@ -515,6 +515,14 @@ case "${canonical}" in
CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS" 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 ## IBM machines
rs6000-ibm-aix4.[23]* ) rs6000-ibm-aix4.[23]* )
machine=ibmrs6000 opsys=aix4-2 machine=ibmrs6000 opsys=aix4-2
......
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> 2011-01-23 Werner Lemberg <wl@gnu.org>
* Makefile.in (MAKEINFO): Now controlled by `configure'. * Makefile.in (MAKEINFO): Now controlled by `configure'.
......
...@@ -5012,8 +5012,9 @@ and returns it. ...@@ -5012,8 +5012,9 @@ and returns it.
button actually part of the text instead of being a property of the 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. Buttons using text properties do not create markers into the
buffer, which is important for speed when you use extremely large buffer, which is important for speed when you use extremely large
numbers of buttons. Both functions return the position of the start numbers of buttons. (However, if there is an existing face text
of the new button: 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 @defun make-text-button beg end &rest properties
This makes a button from @var{beg} to @var{end} in the current buffer, using 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. ...@@ -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 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 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. 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 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 submenu. (Note that @code{x-popup-menu} does not actually execute the
command bound to that sequence of events. 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: Alternatively, @var{menu} can have the following form:
......
...@@ -363,6 +363,31 @@ interactively, the argument @var{interactive-call} is @code{t}, and this ...@@ -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. tells @code{locate-library} to display the file name in the echo area.
@end deffn @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 @node Loading Non-ASCII
@section Loading Non-@acronym{ASCII} Characters @section Loading Non-@acronym{ASCII} Characters
......
...@@ -386,15 +386,6 @@ matches both @samp{]} and @samp{-}. ...@@ -386,15 +386,6 @@ matches both @samp{]} and @samp{-}.
To include @samp{^} in a character alternative, put it anywhere but at To include @samp{^} in a character alternative, put it anywhere but at
the beginning. 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 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 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 is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
......
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> 2011-01-23 Paul Eggert <eggert@cs.ucla.edu>
Check return values of some library calls. Check return values of some library calls.
......
...@@ -354,7 +354,7 @@ main (int argc, char **argv) ...@@ -354,7 +354,7 @@ main (int argc, char **argv)
time_t touched_lock, now; time_t touched_lock, now;
#endif #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); fatal ("Failed to drop privileges", 0, 0);
#ifndef MAIL_USE_MMDF #ifndef MAIL_USE_MMDF
...@@ -381,7 +381,7 @@ main (int argc, char **argv) ...@@ -381,7 +381,7 @@ main (int argc, char **argv)
if (outdesc < 0) if (outdesc < 0)
pfatal_with_name (outname); pfatal_with_name (outname);
if (setegid (priv_gid) < 0) if (setregid (-1, priv_gid) < 0)
fatal ("Failed to regain privileges", 0, 0); fatal ("Failed to regain privileges", 0, 0);
/* This label exists so we can retry locking /* This label exists so we can retry locking
...@@ -478,7 +478,7 @@ main (int argc, char **argv) ...@@ -478,7 +478,7 @@ main (int argc, char **argv)
#endif #endif
/* Prevent symlink attacks truncating other users' mailboxes */ /* 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); fatal ("Failed to drop privileges", 0, 0);
/* Check to make sure no errors before we zap the inbox. */ /* Check to make sure no errors before we zap the inbox. */
...@@ -514,7 +514,7 @@ main (int argc, char **argv) ...@@ -514,7 +514,7 @@ main (int argc, char **argv)
#endif /* not MAIL_USE_SYSTEM_LOCK */ #endif /* not MAIL_USE_SYSTEM_LOCK */
/* End of mailbox truncation */ /* End of mailbox truncation */
if (setegid (priv_gid) < 0) if (setregid (-1, priv_gid) < 0)
fatal ("Failed to regain privileges", 0, 0); fatal ("Failed to regain privileges", 0, 0);
#ifdef MAIL_USE_MAILLOCK #ifdef MAIL_USE_MAILLOCK
......
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> 2011-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
   
* progmodes/perl-mode.el (perl-syntax-propertize-special-constructs): * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):
......
;;; button.el --- clickable buttons ;;; button.el --- clickable buttons
;; ;;
;; Copyright (C) 2001, 2002, 2003, 2004, 2005, ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
;; 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ;; 2010, 2011 Free Software Foundation, Inc.
;; ;;
;; Author: Miles Bader <miles@gnu.org> ;; Author: Miles Bader <miles@gnu.org>
;; Keywords: extensions ;; Keywords: extensions
...@@ -38,7 +38,9 @@ ...@@ -38,7 +38,9 @@
;; the button is represented by a marker or buffer-position pointing ;; the button is represented by a marker or buffer-position pointing
;; somewhere in the button. In the latter case, no markers into the ;; somewhere in the button. In the latter case, no markers into the
;; buffer are retained, which is important for speed if there are are ;; 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 ;; Using `define-button-type' to define default properties for buttons
;; is not necessary, but it is is encouraged, since doing so makes the ;; 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,9 +292,12 @@ button-type from which to inherit other properties; see
`define-button-type'. `define-button-type'.
This function is like `make-button', except that the button is actually 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 part of the text instead of being a property of the buffer. That is,
large numbers of buttons can also be somewhat faster using this function uses text properties, the other uses overlays.
`make-text-button'. 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. 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 ...@@ -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 and `comint-get-old-input' to appropriate functions, and the variable
`comint-prompt-regexp' to the appropriate regular expression. `comint-prompt-regexp' to the appropriate regular expression.
An input history is maintained of size `comint-input-ring-size', and The mode maintains an input history of size `comint-input-ring-size'.
can be accessed with the commands \\[comint-next-input], \\[comint-previous-input], and \\[comint-dynamic-list-input-ring]. 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 Input ring history expansion can be achieved with the commands
\\[comint-replace-by-expanded-history] or \\[comint-magic-space]. \\[comint-replace-by-expanded-history] or \\[comint-magic-space].
Input ring expansion is controlled by the variable `comint-input-autoexpand', 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." ...@@ -1146,7 +1146,10 @@ If HDR is non-nil, insert a header line with the directory name."
"Reread the dired buffer. "Reread the dired buffer.
Must also be called after `dired-actual-switches' have changed. Must also be called after `dired-actual-switches' have changed.
Should not fail even on completely garbaged buffers. 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 (widen) ; just in case user narrowed
(let ((modflag (buffer-modified-p)) (let ((modflag (buffer-modified-p))
(positions (dired-save-positions)) (positions (dired-save-positions))
......
...@@ -243,7 +243,9 @@ Except for Lisp syntax this is the same as `reb-regexp'.") ...@@ -243,7 +243,9 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
:help "Quit the RE Builder mode")) :help "Quit the RE Builder mode"))
(define-key menu-map [rt] (define-key menu-map [rt]
'(menu-item "Case sensitive" reb-toggle-case '(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")) :help "Toggle case sensitivity of searches for RE Builder target buffer"))
(define-key menu-map [rb] (define-key menu-map [rb]
'(menu-item "Change target buffer..." reb-change-target-buffer '(menu-item "Change target buffer..." reb-change-target-buffer
......
...@@ -6118,8 +6118,7 @@ only these files will be asked to be saved." ...@@ -6118,8 +6118,7 @@ only these files will be asked to be saved."
(substitute-in-file-name identity) (substitute-in-file-name identity)
;; `add' means add "/:" to the result. ;; `add' means add "/:" to the result.
(file-truename add 0) (file-truename add 0)
;; `quote' means add "/:" to buffer-file-name. (insert-file-contents insert-file-contents 0)
(insert-file-contents quote 0)
;; `unquote-then-quote' means set buffer-file-name ;; `unquote-then-quote' means set buffer-file-name
;; temporarily to unquoted filename. ;; temporarily to unquoted filename.
(verify-visited-file-modtime unquote-then-quote) (verify-visited-file-modtime unquote-then-quote)
...@@ -6150,20 +6149,18 @@ only these files will be asked to be saved." ...@@ -6150,20 +6149,18 @@ only these files will be asked to be saved."
"/" "/"
(substring (car pair) 2))))) (substring (car pair) 2)))))
(setq file-arg-indices (cdr file-arg-indices)))) (setq file-arg-indices (cdr file-arg-indices))))
(cond ((eq method 'identity) (case method
(car arguments)) (identity (car arguments))
((eq method 'add) (add (concat "/:" (apply operation arguments)))
(concat "/:" (apply operation arguments))) (insert-file-contents
((eq method 'quote) (let ((visit (nth 1 arguments)))
(unwind-protect (prog1
(apply operation arguments) (apply operation arguments)
(setq buffer-file-name (concat "/:" buffer-file-name)))) (when (and visit buffer-file-name)
((eq method 'unquote-then-quote) (setq buffer-file-name (concat "/:" buffer-file-name))))))
(let (res) (unquote-then-quote
(setq buffer-file-name (substring buffer-file-name 2)) (let ((buffer-file-name (substring buffer-file-name 2)))
(setq res (apply operation arguments)) (apply operation arguments)))
(setq buffer-file-name (concat "/:" buffer-file-name))
res))
(t (t
(apply operation arguments))))) (apply operation arguments)))))
......
;;; nnbabyl.el --- rmail mbox access for Gnus ;;; 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 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
......
...@@ -153,6 +153,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'." ...@@ -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-M-h") 'backward-kill-word)
(define-key map (kbd "C-j") 'reindent-then-newline-and-indent) (define-key map (kbd "C-j") 'reindent-then-newline-and-indent)
(define-key map (kbd "C-m") 'newline) (define-key map (kbd "C-m") 'newline)
(define-key map (kbd "C-c C-c") 'comment-region)
map) map)
"Keymap used in Ruby mode.") "Keymap used in Ruby mode.")
...@@ -319,7 +320,7 @@ Also ignores spaces after parenthesis when 'space." ...@@ -319,7 +320,7 @@ Also ignores spaces after parenthesis when 'space."
(cdr (assq coding-system ruby-encoding-map))) (cdr (assq coding-system ruby-encoding-map)))
coding-system)) coding-system))
"ascii-8bit")) "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 *\\(;\\|-\*-\\)") (cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)\\s *\\(;\\|-\*-\\)")
(unless (string= (match-string 2) coding-system) (unless (string= (match-string 2) coding-system)
(goto-char (match-beginning 2)) (goto-char (match-beginning 2))
...@@ -927,6 +928,7 @@ With ARG, do it many times. Negative ARG means move backward." ...@@ -927,6 +928,7 @@ With ARG, do it many times. Negative ARG means move backward."
(condition-case nil (condition-case nil
(while (> i 0) (while (> i 0)
(skip-syntax-forward " ") (skip-syntax-forward " ")
(if (looking-at ",\\s *") (goto-char (match-end 0)))
(cond ((looking-at "\\?\\(\\\\[CM]-\\)*\\\\?\\S ") (cond ((looking-at "\\?\\(\\\\[CM]-\\)*\\\\?\\S ")
(goto-char (match-end 0))) (goto-char (match-end 0)))
((progn ((progn
...@@ -1179,56 +1181,59 @@ It's useful in that it divides up the match string so that ...@@ -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. "Return a regexp to find the beginning of a heredoc.
This should only be called after matching against `ruby-here-doc-end-re'." 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 "<<" (concat "<<"
(let ((match (match-string 1))) (let ((match (match-string 1)))
(if (and match (> (length match) 0)) (if (and match (> (length match) 0))
(concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)" match "\\)" (concat "\\(?:-\\([\"']?\\)\\|\\([\"']\\)"
contents "\\b\\(\\1\\|\\2\\)") (match-string 1) "\\)"
(concat "-?\\([\"']\\|\\)" contents "\\b\\1")))))) contents "\\(\\1\\|\\2\\)")
(concat "-?\\([\"']\\|\\)" contents "\\1"))))))
(defconst ruby-font-lock-syntactic-keywords (defconst ruby-font-lock-syntactic-keywords
`( ;; #{ }, #$hoge, #@foo are not comments `( ;; #{ }, #$hoge, #@foo are not comments
("\\(#\\)[{$@]" 1 (1 . nil)) ("\\(#\\)[{$@]" 1 (1 . nil))
;; the last $', $", $` in the respective string is not variable ;; the last $', $", $` in the respective string is not variable
;; the last ?', ?", ?` in the respective string is not ascii code ;; the last ?', ?", ?` in the respective string is not ascii code
("\\(^\\|[\[ \t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)" ("\\(^\\|[\[ \t\n<+\(,=]\\)\\(['\"`]\\)\\(\\\\.\\|\\2\\|[^'\"`\n\\\\]\\)*?\\\\?[?$]\\(\\2\\)"
(2 (7 . nil)) (2 (7 . nil))
(4 (7 . nil))) (4 (7 . nil)))
;; $' $" $` .... are variables ;; $' $" $` .... are variables
;; ?' ?" ?` are ascii codes ;; ?' ?" ?` are ascii codes
("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil)) ("\\(^\\|[^\\\\]\\)\\(\\\\\\\\\\)*[?$]\\([#\"'`]\\)" 3 (1 . nil))
;; regexps ;; regexps
("\\(^\\|[=(,~?:;<>]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)" ("\\(^\\|[[=(,~?:;<>]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)"
(4 (7 . ?/)) (4 (7 . ?/))
(6 (7 . ?/))) (6 (7 . ?/)))
("^=en\\(d\\)\\_>" 1 "!") ("^=en\\(d\\)\\_>" 1 "!")
("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax)) ("^\\(=\\)begin\\_>" 1 (ruby-comment-beg-syntax))
;; Currently, the following case is highlighted incorrectly: ;; Currently, the following case is highlighted incorrectly:
;; ;;
;; <<FOO ;; <<FOO
;; FOO ;; FOO
;; <<BAR ;; <<BAR
;; <<BAZ ;; <<BAZ
;; BAZ ;; BAZ
;; BAR ;; BAR
;; ;;
;; This is because all here-doc beginnings are highlighted before any endings, ;; 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 ;; 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. ;; 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 ;; 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, ;; 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 ;; 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. ;; to make sure I don't break anything else.
(,(concat ruby-here-doc-beg-re ".*\\(\n\\)") (,(concat ruby-here-doc-beg-re ".*\\(\n\\)")
,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re)) ,(+ 1 (regexp-opt-depth ruby-here-doc-beg-re))
(ruby-here-doc-beg-syntax)) (ruby-here-doc-beg-syntax))
(,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax))) (,ruby-here-doc-end-re 3 (ruby-here-doc-end-syntax)))
"Syntactic keywords for Ruby mode. See `font-lock-syntactic-keywords'.") "Syntactic keywords for Ruby mode. See `font-lock-syntactic-keywords'.")
(defun ruby-comment-beg-syntax () (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'. See the definition of `ruby-font-lock-syntactic-keywords'.
This returns a comment-delimiter cell as long as the =begin This returns a comment-delimiter cell as long as the =begin
...@@ -1420,6 +1425,7 @@ See `font-lock-syntax-table'.") ...@@ -1420,6 +1425,7 @@ See `font-lock-syntax-table'.")
;; symbols ;; symbols
'("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)" '("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|![~=]?\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
2 font-lock-reference-face) 2 font-lock-reference-face)
'("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" 2 font-lock-reference-face)
;; expression expansion ;; expression expansion
'("#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)" '("#\\({[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\|\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+\\)"
0 font-lock-variable-name-face t) 0 font-lock-variable-name-face t)
......
...@@ -4221,9 +4221,11 @@ Outline mode sets this." ...@@ -4221,9 +4221,11 @@ Outline mode sets this."
"When non-nil, `line-move' moves point by visual lines. "When non-nil, `line-move' moves point by visual lines.
This movement is based on where the cursor is displayed on the This movement is based on where the cursor is displayed on the
screen, instead of relying on buffer contents alone. It takes 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 :type 'boolean
:group 'editing-basics) :group 'editing-basics
:version "23.1")
;; Returns non-nil if partial move was done. ;; Returns non-nil if partial move was done.
(defun line-move-partial (arg noerror to-end) (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,12 +5104,10 @@ If optional arg REALLY-WORD is non-nil, it finds just a word."
regexp) regexp)
:group 'fill) :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 () (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 (let (fc justify give-up
(fill-prefix fill-prefix)) (fill-prefix fill-prefix))
(if (or (not (setq justify (current-justification))) (if (or (not (setq justify (current-justification)))
......
2011-01-25 Werner Meisner <weme24@gmx.net>