]> code.delx.au - gnu-emacs/commitdiff
from trunk
authorKenichi Handa <handa@m17n.org>
Mon, 8 Mar 2010 01:53:37 +0000 (10:53 +0900)
committerKenichi Handa <handa@m17n.org>
Mon, 8 Mar 2010 01:53:37 +0000 (10:53 +0900)
26 files changed:
doc/emacs/ChangeLog
doc/emacs/custom.texi
doc/emacs/major.texi
doc/lispref/ChangeLog
doc/lispref/objects.texi
etc/ChangeLog
etc/NEWS
etc/refcards/Makefile
etc/refcards/orgcard.tex
etc/srecode/default.srt
lisp/ChangeLog
lisp/calculator.el
lisp/cedet/semantic/grammar.el
lisp/info.el
lisp/macros.el
lisp/mail/rfc822.el
lisp/man.el
lisp/vc-git.el
src/ChangeLog
src/bytecode.c
src/keymap.c
src/lisp.h
src/regex.c
src/syntax.c
test/cedet/ede-tests.el
test/cedet/srecode-tests.el

index a9d7e1bcf6907a48c259dbbbbed8460288048ef1..55ae0882882ae8432b635a67d33e0840d82c57b0 100644 (file)
@@ -1,3 +1,10 @@
+2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
+
+       * custom.texi (Init Examples): Add xref to Locals.
+
+       * major.texi (Choosing Modes): Mention usage of setq-default for
+       setting the default value of major-mode (Bug#5688).
+
 2010-03-02  Chong Yidong  <cyd@stupidchicken.com>
 
        * frames.texi (Mouse Avoidance): Mention make-pointer-invisible.
index a49145311922594e7e4f0caec964cf67aef16473..408de24ed6eb8181064d67281495119839d9b7b6 100644 (file)
@@ -2256,9 +2256,10 @@ override this).
 @end example
 
 This sets the default value, which is effective in all buffers that do
-not have local values for the variable.  Setting @code{case-fold-search}
-with @code{setq} affects only the current buffer's local value, which
-is not what you probably want to do in an init file.
+not have local values for the variable (@pxref{Locals}).  Setting
+@code{case-fold-search} with @code{setq} affects only the current
+buffer's local value, which is probably not what you want to do in an
+init file.
 
 @item
 @vindex user-mail-address
index e2e7c3d2a4c71cc1756a8a6789ceda46aa7d43f5..19ab86f91dd0cd79a399ca3aa6cab6b7f6d5efe4 100644 (file)
@@ -196,17 +196,33 @@ only after @code{auto-mode-alist}.  By default,
 @code{magic-fallback-mode-alist} contains forms that check for image
 files, HTML/XML/SGML files, and Postscript files.
 
-  When you visit a file that does not specify a major mode to use, or
-when you create a new buffer with @kbd{C-x b}, the default value of
-the variable @code{major-mode} specifies which major mode to use.  Normally
-its value is the symbol @code{fundamental-mode}, which specifies
-Fundamental mode.  If the default value of @code{major-mode} is @code{nil},
-the major mode is taken from the previously current buffer.
+@vindex major-mode
+  Once a major mode is chosen, Emacs sets the value of the variable
+@code{major-mode} to the symbol for that major mode (e.g.,
+@code{text-mode} for Text mode).  This is a per-buffer variable
+(@pxref{Locals}); its buffer-local value is set automatically, and you
+should not change it yourself.
+
+  The default value of @code{major-mode} determines the major mode to
+use for files that do not specify a major mode, and for new buffers
+created with @kbd{C-x b}.  Normally, this default value is the symbol
+@code{fundamental-mode}, which specifies Fundamental mode.  You can
+change it via the Customization interface (@pxref{Easy
+Customization}), or by adding a line like this to your init file
+(@pxref{Init File}):
+
+@smallexample
+(setq-default major-mode 'text-mode)
+@end smallexample
+
+@noindent
+If the default value of @code{major-mode} is @code{nil}, the major
+mode is taken from the previously current buffer.
 
 @findex normal-mode
-  If you change the major mode of a buffer, you can go back to the major
-mode Emacs would choose automatically: use the command @kbd{M-x
-normal-mode} to do this.  This is the same function that
+  If you have changed the major mode of a buffer, you can return to
+the major mode Emacs would have chosen automatically, by typing
+@kbd{M-x normal-mode}.  This is the same function that
 @code{find-file} calls to choose the major mode.  It also processes
 the file's @samp{-*-} line or local variables list (if any).
 @xref{File Variables}.
index 755e83b65ef094645ca4bd7ffcc079fc16699641..1b9e028e59816d720d229880bfef49b62a593bab 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
+
+       * objects.texi (Integer Type): Take note of the read syntax
+       exception for numbers that cannot fit in the integer type.
+
 2010-03-03  Glenn Morris  <rgm@gnu.org>
 
        * numbers.texi (Integer Basics, Bitwise Operations):
index 26c17f09f0edcc35853dbf058c736782495acdca..5c3ac13cdaf96042c2dce0f38b3627457ecf8044 100644 (file)
@@ -200,6 +200,13 @@ leading @samp{+} or a final @samp{.}.
 @end group
 @end example
 
+@noindent
+As a special exception, if a sequence of digits specifies an integer
+too large or too small to be a valid integer object, the Lisp reader
+reads it as a floating-point number (@pxref{Floating Point Type}).
+For instance, on most machines @code{536870912} is read as the
+floating-point number @code{536870912.0}.
+
   @xref{Numbers}, for more information.
 
 @node Floating Point Type
index 9fbdeabb6cd34c149ccd58a2bf0ba79625f9b5ea..b45e48a7edb9e5e932c5c5f867ac3b51b81ad5de 100644 (file)
@@ -1,3 +1,12 @@
+2010-03-06  Glenn Morris  <rgm@gnu.org>
+
+       * srecode/default.srt (COPYRIGHT): Update template copyright to GPLv3+.
+
+2010-03-05  Glenn Morris  <rgm@gnu.org>
+
+       * refcards/orgcard.tex: Use pdflayout.sty.
+       * refcards/Makefile (orgcard.pdf): Special rule no longer needed.
+
 2010-03-02  Glenn Morris  <rgm@gnu.org>
 
        * refcards/Makefile: For cs- and sk-, use pdfcsplain if available.
index ecff7f0342e71be7480b538d32d17710257575a7..00c4765f822f3292b026854648574ccdd3485c20 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -123,11 +123,6 @@ international/ucs-normalize.el.
 ** Function arguments in *Help* buffers are now shown in upper-case.
 Customize `help-downcase-arguments' to t to show them in lower-case.
 
-** Delete Auto Composition Mode.  Now the variable
-`auto-composition-mode' is simply a buffer local variable.  The
-commands `auto-composition-mode' and `global-auto-composition-mode'
-still works as before.
-
 \f
 * Editing Changes in Emacs 23.2
 
@@ -437,6 +432,14 @@ System (CLOS).  It is used by the other CEDET packages.
 \f
 * Incompatible Lisp Changes in Emacs 23.2
 
++++
+** The Lisp reader turns integers that are too large/small into floats.
+For instance, on machines where `536870911' is the largest integer,
+reading `536870912' gives the floating-point object `536870912.0'.
+
+This change only concerns the Lisp reader; it does not affect how
+actual integer objects overflow.
+
 ---
 ** Several obsolete functions removed.
 The functions have been obsolete since Emacs 19, and are unlikely to
index c08a9b2cfab99e5da9ae2dae07a617daf6b79601..c1bddd124d7016f26a78e81f5b29b7f0d6c90f89 100644 (file)
@@ -81,16 +81,11 @@ gnus-refcard.pdf: %.pdf: %.tex gnus-logo.pdf
 gnus-booklet.pdf: gnus-refcard.tex gnus-logo.pdf
        pdflatex -jobname=gnus-booklet '\def\booklettrue{}\def\letterpapertrue{}\input{gnus-refcard}'
 
-## FIXME just pdftex produces portrait rather than landscape.
-orgcard.pdf: orgcard.ps
-       ps2pdf $<
-
 ## Everything not explicitly listed above.
 %.pdf: %.tex
        pdftex $<
 
 
-
 ## dvi files.
 
 cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi sk-refcard.dvi \
index ff498236467f83e50385aece5d014337d4315ae0..c35cafbba5221b7b30f290d25b69859551e3f0b4 100644 (file)
@@ -9,14 +9,17 @@
 
 % This file can be printed with 1, 2, or 3 columns per page (see below).
 % Specify how many you want here.
-
 \columnsperpage=3
 
 % Set letterpaper to 0 for A4 paper, 1 for letter (US) paper.  Useful
 % only when columnsperpage is 2 or 3.
-
 \letterpaper=0
 
+% PDF output layout.  0 for A4, 1 for letter (US), a `l' is added for
+% a landscape layout.
+\input pdflayout.sty
+\pdflayout=(0l)
+
 % Nothing else needs to be changed below this line.
 % Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, 2005,
 %   2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
index 7d83d550f1003808d7a7ec514fffeec1c789cabe..b42de2f7835d4b17eebd3d5b083c1734b1c01915 100644 (file)
@@ -25,8 +25,8 @@ set comment_start  "#"
 
 set COPYRIGHT "This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2, or (at
-your option) any later version.
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
 
 This program is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -34,9 +34,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA."
+along with this program.  If not, see http://www.gnu.org/licenses/."
 
 set DOLLAR "$"
 
index 28aa28403499b72c0c2f9872830f905ce380d016..2edeaf1789464a649e86b5023b3f36b9d4875e6e 100644 (file)
@@ -3,6 +3,43 @@
        * language/misc-lang.el (windows-1256): New coding system.
        (cp1256): New alias of windows-1256 (bug#5684).
 
+2010-03-07  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * mail/rfc822.el (rfc822-addresses): Move catch clause down around
+       call to rfc822-bad-address.  (Bug#5692)
+
+2010-03-07  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
+
+       * vc-git.el (vc-git-annotate-extract-revision-at-line): Use
+       vc-git-root as default direcotry for revision path (Bug#5657).
+
+2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
+
+       * calculator.el (calculator): Don't bind split-window-keep-point
+       (Bug#5674).
+
+2010-03-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * vc-git.el: Re-flow to fit into 80 columns.
+       (vc-git-after-dir-status-stage, vc-git-dir-status-goto-stage):
+       Remove spurious `quote' element in each case alternative.
+       (vc-git-show-log-entry): Use prog1.
+       (vc-git-after-dir-status-stage): Remove unused var `remaining'.
+
+2010-03-06  Glenn Morris  <rgm@gnu.org>
+
+       * cedet/semantic/grammar.el (semantic-grammar-header-template):
+       Update template copyright to GPLv3+.
+
+2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * man.el (Man-files-regexp): Tighten up the regexp (bug#5686).
+
+2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
+
+       * macros.el (insert-kbd-macro): Look up keyboard macro using the
+       definition, not the name (Bug#5481).
+
 2010-03-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 
        * subr.el (momentary-string-display): Don't overwrite the MESSAGE
 
 2010-03-01  Alan Mackenzie  <acm@muc.de>
 
-       * progmodes/cc-engine.el (c-remove-stale-state-cache): Correct
-       previous patch.
+       * progmodes/cc-engine.el (c-remove-stale-state-cache):
+       Correct previous patch.
 
 2010-03-01  Kenichi Handa  <handa@m17n.org>
 
-       * language/burmese.el (burmese-composable-pattern): Renamed from
+       * language/burmese.el (burmese-composable-pattern): Rename from
        myanmar-composable-pattern.
 
-       * international/characters.el (script-list): Change myanmar to
-       burmese.
-
-       * international/fontset.el (script-representative-chars): Change
-       myanmar to burmese.
+       * international/characters.el (script-list):
+       * international/fontset.el (script-representative-chars):
+       Change myanmar to burmese.
        (otf-script-alist): Likewise.
        (setup-default-fontset): Likewise.  Re-fix :otf spec.
 
index 015fb4cd763cfc4fa40e7742a6e1ada29da6ae75..d1b9b517e5fe38765b5c01bd2eea49d27ea6d9df 100644 (file)
@@ -724,8 +724,7 @@ See the documentation for `calculator-mode' for more information."
     (progn
       (cond
         ((not (get-buffer-window calculator-buffer))
-         (let ((split-window-keep-point nil)
-               (window-min-height 2))
+         (let ((window-min-height 2))
            ;; maybe leave two lines for our window because of the normal
            ;; `raised' modeline in Emacs 21
            (select-window
index 2538026a1e36fbe515ab27ee66e8f1b8813c9970..8f5d1cd3e149f5f2f9c6f4882f7ceb58cdc9dfe0 100644 (file)
@@ -573,21 +573,19 @@ Typically a DEFINE expression should look like this:
 ;; X-RCS: " vcid "
 
 ;; This file is not part of GNU Emacs.
-;;
+
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2, or (at
-;; your option) any later version.
-;;
+;; published by the Free Software Foundation, either version 3 of
+;; the License, or (at your option) any later version.
+
 ;; This software is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 ;; General Public License for more details.
 ;;
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 ;;
index 690fa4ff8e05e8f5e0c993c36892ee5a2e671511..a1ce05d6292a93aedc38cffcd472a1f7e7ac730a 100644 (file)
@@ -3062,6 +3062,8 @@ Give an empty topic name to go to the Index node itself."
          num (1- num)))
   (Info-goto-node (nth 1 (car Info-index-alternatives)))
   (if (> (nth 3 (car Info-index-alternatives)) 0)
+      ;; Forward 2 lines less because `Info-find-node-2' initially
+      ;; puts point to the 2nd line.
       (forward-line (- (nth 3 (car Info-index-alternatives)) 2))
     (forward-line 3)                   ; don't search in headers
     (let ((name (car (car Info-index-alternatives))))
index 4188a432fe583cf2cb18f6dfd1c1d00ebb126656..fa45d8c6108a78adb10638a291cad9a29f137689 100644 (file)
@@ -138,7 +138,8 @@ use this command, and then save the file."
        (prin1 definition (current-buffer))))
     (insert ")\n")
     (if keys
-       (let ((keys (where-is-internal macroname '(keymap))))
+       (let ((keys (where-is-internal (symbol-function macroname)
+                                      '(keymap))))
          (while keys
            (insert "(global-set-key ")
            (prin1 (car keys) (current-buffer))
index e1e6932a5609ef7632fb25a6ed8e4878533db548..3048d56674bad0bd7b0db71f4bd7f55a891ac91f 100644 (file)
                   ;; initial value to prevent rfc822-bad-address from
                   ;; raising a wrong-type-argument error
                   (rfc822-address-start (point)))
-              (catch 'address         ; this is for rfc822-bad-address
-                (rfc822-nuke-whitespace)
-                (while (not (eobp))
-                  (setq rfc822-address-start (point))
-                  (setq tem
-                        (cond ((rfc822-looking-at ?\,)
-                               nil)
-                              ((looking-at "[][\000-\037@;:\\.>)]")
-                               (forward-char)
-                               (rfc822-bad-address
-                                (format "Strange character \\%c found"
-                                        (preceding-char))))
-                              (t
-                               (rfc822-addresses-1 t))))
-                  (cond ((null tem))
-                        ((stringp tem)
-                         (setq list (cons tem list)))
-                        (t
-                         (setq list (nconc (nreverse tem) list)))))
-                (nreverse list))))
+             (rfc822-nuke-whitespace)
+             (while (not (eobp))
+               (setq rfc822-address-start (point))
+               (setq tem
+                     (cond ((rfc822-looking-at ?\,)
+                            nil)
+                           ((looking-at "[][\000-\037@;:\\.>)]")
+                            (forward-char)
+                            (catch 'address ; this is for rfc822-bad-address
+                              (rfc822-bad-address
+                               (format "Strange character \\%c found"
+                                       (preceding-char)))))
+                           (t
+                            (rfc822-addresses-1 t))))
+               (cond ((null tem))
+                     ((stringp tem)
+                      (setq list (cons tem list)))
+                     (t
+                      (setq list (nconc (nreverse tem) list)))))
+             (nreverse list)))
        (and buf (kill-buffer buf))))))
 
 (provide 'rfc822)
index d64846a2d4da9a73fe3f3cb7902784e12bfe9469..8eb5f73e2450c9d7d960fee8469f47b807f18e85 100644 (file)
@@ -283,7 +283,8 @@ This regular expression should start with a `^' character.")
   "Regular expression for SYNOPSIS heading (or your equivalent).
 This regexp should not start with a `^' character.")
 
-(defvar Man-files-regexp "FILES"
+(defvar Man-files-regexp "FILES\\>"
+  ;; Add \> so as not to match mount(8)'s FILESYSTEM INDEPENDENT MOUNT OPTIONS.
   "Regular expression for FILES heading (or your equivalent).
 This regexp should not start with a `^' character.")
 
index 0d8e6307d6eaaf120bab4771c874261aa7f086e4..9362ad743eeeb60b5a852e21ecf47caad10ef4a9 100644 (file)
@@ -69,8 +69,8 @@
 ;; * revert (file &optional contents-done)         OK
 ;; - rollback (files)                              COULD BE SUPPORTED
 ;; - merge (file rev1 rev2)                   It would be possible to merge
-;;                                          changes into a single file, but when
-;;                                          committing they wouldn't
+;;                                          changes into a single file, but
+;;                                          when committing they wouldn't
 ;;                                          be identified as a merge
 ;;                                          by git, so it's probably
 ;;                                          not a good idea.
@@ -130,7 +130,7 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 
 ;;;###autoload (defun vc-git-registered (file)
 ;;;###autoload   "Return non-nil if FILE is registered with git."
-;;;###autoload   (if (vc-find-root file ".git")       ; short cut
+;;;###autoload   (if (vc-find-root file ".git")       ; Short cut.
 ;;;###autoload       (progn
 ;;;###autoload         (load "vc-git")
 ;;;###autoload         (vc-git-registered file))))
@@ -149,9 +149,11 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
               (str (ignore-errors
                     (cd dir)
                     (vc-git--out-ok "ls-files" "-c" "-z" "--" name)
-                    ;; if result is empty, use ls-tree to check for deleted file
+                    ;; If result is empty, use ls-tree to check for deleted
+                     ;; file.
                     (when (eq (point-min) (point-max))
-                      (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD" "--" name))
+                      (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD"
+                                       "--" name))
                     (buffer-string))))
          (and str
               (> (length str) (length name))
@@ -173,7 +175,8 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
   (if (not (vc-git-registered file))
       'unregistered
     (vc-git--call nil "add" "--refresh" "--" (file-relative-name file))
-    (let ((diff (vc-git--run-command-string file "diff-index" "-z" "HEAD" "--")))
+    (let ((diff (vc-git--run-command-string
+                 file "diff-index" "-z" "HEAD" "--")))
       (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0"
                                  diff))
          (vc-git--state-code (match-string 1 diff))
@@ -206,11 +209,12 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 
 (defstruct (vc-git-extra-fileinfo
             (:copier nil)
-            (:constructor vc-git-create-extra-fileinfo (old-perm new-perm &optional rename-state orig-name))
+            (:constructor vc-git-create-extra-fileinfo
+                          (old-perm new-perm &optional rename-state orig-name))
             (:conc-name vc-git-extra-fileinfo->))
-  old-perm new-perm   ;; permission flags
-  rename-state        ;; rename or copy state
-  orig-name)          ;; original name for renames or copies
+  old-perm new-perm   ;; Permission flags.
+  rename-state        ;; Rename or copy state.
+  orig-name)          ;; Original name for renames or copies.
 
 (defun vc-git-escape-file-name (name)
   "Escape a file name if necessary."
@@ -232,23 +236,23 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
   (let* ((old-type (lsh (or old-perm 0) -9))
         (new-type (lsh (or new-perm 0) -9))
         (str (case new-type
-               (?\100  ;; file
+               (?\100  ;; File.
                 (case old-type
                   (?\100 nil)
                   (?\120 "   (type change symlink -> file)")
                   (?\160 "   (type change subproject -> file)")))
-                (?\120  ;; symlink
+                (?\120  ;; Symlink.
                  (case old-type
                    (?\100 "   (type change file -> symlink)")
                    (?\160 "   (type change subproject -> symlink)")
                    (t "   (symlink)")))
-                 (?\160  ;; subproject
+                 (?\160  ;; Subproject.
                   (case old-type
                     (?\100 "   (type change file -> subproject)")
                     (?\120 "   (type change symlink -> subproject)")
                     (t "   (subproject)")))
-                  (?\110 nil)  ;; directory (internal, not a real git state)
-                 (?\000  ;; deleted or unknown
+                  (?\110 nil)  ;; Directory (internal, not a real git state).
+                 (?\000  ;; Deleted or unknown.
                   (case old-type
                     (?\120 "   (symlink)")
                     (?\160 "   (subproject)")))
@@ -258,7 +262,8 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
           (t ""))))
 
 (defun vc-git-rename-as-string (state extra)
-  "Return a string describing the copy or rename associated with INFO, or an empty string if none."
+  "Return a string describing the copy or rename associated with INFO,
+or an empty string if none."
   (let ((rename-state (when extra
                        (vc-git-extra-fileinfo->rename-state extra))))
     (if rename-state
@@ -267,8 +272,10 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
                  (if (eq rename-state 'copy) "copied from "
                    (if (eq state 'added) "renamed from "
                      "renamed to "))
-                 (vc-git-escape-file-name (vc-git-extra-fileinfo->orig-name extra))
-                 ")") 'face 'font-lock-comment-face)
+                 (vc-git-escape-file-name
+                  (vc-git-extra-fileinfo->orig-name extra))
+                 ")")
+         'face 'font-lock-comment-face)
       "")))
 
 (defun vc-git-permissions-as-string (old-perm new-perm)
@@ -302,7 +309,8 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
      "  " (vc-git-permissions-as-string old-perm new-perm)
      "    "
      (propertize (vc-git-escape-file-name (vc-dir-fileinfo->name info))
-                 'face (if isdir 'font-lock-comment-delimiter-face 'font-lock-function-name-face)
+                 'face (if isdir 'font-lock-comment-delimiter-face
+                         'font-lock-function-name-face)
                 'help-echo
                 (if isdir
                     "Directory\nVC operations can be applied to it\nmouse-3: Pop-up menu"
@@ -314,32 +322,39 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 
 (defun vc-git-after-dir-status-stage (stage files update-function)
   "Process sentinel for the various dir-status stages."
-  (let (remaining next-stage result)
+  (let (next-stage result)
     (goto-char (point-min))
     (case stage
-      ('update-index
+      (update-index
        (setq next-stage (if (vc-git--empty-db-p) 'ls-files-added
                           (if files 'ls-files-up-to-date 'diff-index))))
-      ('ls-files-added
+      (ls-files-added
        (setq next-stage 'ls-files-unknown)
        (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t)
          (let ((new-perm (string-to-number (match-string 1) 8))
                (name (match-string 2)))
-           (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm)) result))))
-      ('ls-files-up-to-date
+           (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm))
+                 result))))
+      (ls-files-up-to-date
        (setq next-stage 'diff-index)
        (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t)
          (let ((perm (string-to-number (match-string 1) 8))
                (name (match-string 2)))
-           (push (list name 'up-to-date (vc-git-create-extra-fileinfo perm perm)) result))))
-      ('ls-files-unknown
+           (push (list name 'up-to-date
+                       (vc-git-create-extra-fileinfo perm perm))
+                 result))))
+      (ls-files-unknown
        (when files (setq next-stage 'ls-files-ignored))
        (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1)
-         (push (list (match-string 1) 'unregistered (vc-git-create-extra-fileinfo 0 0)) result)))
-      ('ls-files-ignored
+         (push (list (match-string 1) 'unregistered
+                     (vc-git-create-extra-fileinfo 0 0))
+               result)))
+      (ls-files-ignored
        (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1)
-         (push (list (match-string 1) 'ignored (vc-git-create-extra-fileinfo 0 0)) result)))
-      ('diff-index
+         (push (list (match-string 1) 'ignored
+                     (vc-git-create-extra-fileinfo 0 0))
+               result)))
+      (diff-index
        (setq next-stage 'ls-files-unknown)
        (while (re-search-forward
                ":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0"
@@ -349,41 +364,60 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
                (state (or (match-string 4) (match-string 6)))
                (name (or (match-string 5) (match-string 7)))
                (new-name (match-string 8)))
-           (if new-name  ; copy or rename
+           (if new-name  ; Copy or rename.
                (if (eq ?C (string-to-char state))
-                   (push (list new-name 'added (vc-git-create-extra-fileinfo old-perm new-perm 'copy name)) result)
-                 (push (list name 'removed (vc-git-create-extra-fileinfo 0 0 'rename new-name)) result)
-                 (push (list new-name 'added (vc-git-create-extra-fileinfo old-perm new-perm 'rename name)) result))
-             (push (list name (vc-git--state-code state) (vc-git-create-extra-fileinfo old-perm new-perm)) result))))))
+                   (push (list new-name 'added
+                               (vc-git-create-extra-fileinfo old-perm new-perm
+                                                             'copy name))
+                         result)
+                 (push (list name 'removed
+                             (vc-git-create-extra-fileinfo 0 0
+                                                           'rename new-name))
+                       result)
+                 (push (list new-name 'added
+                             (vc-git-create-extra-fileinfo old-perm new-perm
+                                                           'rename name))
+                       result))
+             (push (list name (vc-git--state-code state)
+                         (vc-git-create-extra-fileinfo old-perm new-perm))
+                   result))))))
     (when result
       (setq result (nreverse result))
       (when files
         (dolist (entry result) (setq files (delete (car entry) files)))
         (unless files (setq next-stage nil))))
-    (when (or result (not next-stage)) (funcall update-function result next-stage))
-    (when next-stage (vc-git-dir-status-goto-stage next-stage files update-function))))
+    (when (or result (not next-stage))
+      (funcall update-function result next-stage))
+    (when next-stage
+      (vc-git-dir-status-goto-stage next-stage files update-function))))
 
 (defun vc-git-dir-status-goto-stage (stage files update-function)
   (erase-buffer)
   (case stage
-    ('update-index
+    (update-index
      (if files
          (vc-git-command (current-buffer) 'async files "add" "--refresh" "--")
-       (vc-git-command (current-buffer) 'async nil "update-index" "--refresh")))
-    ('ls-files-added
-     (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-c" "-s" "--"))
-    ('ls-files-up-to-date
-     (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-c" "-s" "--"))
-    ('ls-files-unknown
-     (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o"
-                     "--directory" "--no-empty-directory" "--exclude-standard" "--"))
-    ('ls-files-ignored
-     (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" "-i"
-                     "--directory" "--no-empty-directory" "--exclude-standard" "--"))
-    ('diff-index
-     (vc-git-command (current-buffer) 'async files "diff-index" "--relative" "-z" "-M" "HEAD" "--")))
+       (vc-git-command (current-buffer) 'async nil
+                       "update-index" "--refresh")))
+    (ls-files-added
+     (vc-git-command (current-buffer) 'async files
+                     "ls-files" "-z" "-c" "-s" "--"))
+    (ls-files-up-to-date
+     (vc-git-command (current-buffer) 'async files
+                     "ls-files" "-z" "-c" "-s" "--"))
+    (ls-files-unknown
+     (vc-git-command (current-buffer) 'async files
+                     "ls-files" "-z" "-o" "--directory"
+                     "--no-empty-directory" "--exclude-standard" "--"))
+    (ls-files-ignored
+     (vc-git-command (current-buffer) 'async files
+                     "ls-files" "-z" "-o" "-i" "--directory"
+                     "--no-empty-directory" "--exclude-standard" "--"))
+    (diff-index
+     (vc-git-command (current-buffer) 'async files
+                     "diff-index" "--relative" "-z" "-M" "HEAD" "--")))
   (vc-exec-after
-   `(vc-git-after-dir-status-stage (quote ,stage) (quote ,files) (quote ,update-function))))
+   `(vc-git-after-dir-status-stage ',stage  ',files ',update-function)))
 
 (defun vc-git-dir-status (dir update-function)
   "Return a list of (FILE STATE EXTRA) entries for DIR."
@@ -439,14 +473,16 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
          (setq remote
                (with-output-to-string
                  (with-current-buffer standard-output
-                   (vc-git--out-ok "config" (concat "branch." branch ".remote")))))
+                   (vc-git--out-ok "config"
+                                    (concat "branch." branch ".remote")))))
          (when (string-match "\\([^\n]+\\)" remote)
            (setq remote (match-string 1 remote)))
          (when remote
            (setq remote-url
                  (with-output-to-string
                    (with-current-buffer standard-output
-                     (vc-git--out-ok "config" (concat "remote." remote ".url"))))))
+                     (vc-git--out-ok "config"
+                                      (concat "remote." remote ".url"))))))
          (when (string-match "\\([^\n]+\\)" remote-url)
            (setq remote-url (match-string 1 remote-url))))
       (setq branch "not (detached HEAD)"))
@@ -550,8 +586,8 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
               (append
                '("log" "--no-color")
                (when shortlog
-                 '("--graph" "--decorate"
-                   "--date=short" "--pretty=format:%d%h  %ad  %s" "--abbrev-commit"))
+                 '("--graph" "--decorate" "--date=short"
+                    "--pretty=format:%d%h  %ad  %s" "--abbrev-commit"))
                (when limit (list "-n" (format "%s" limit)))
                (when start-revision (list start-revision))
                '("--")))))))
@@ -565,7 +601,7 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 (defvar vc-short-log)
 
 (define-derived-mode vc-git-log-view-mode log-view-mode "Git-Log-View"
-  (require 'add-log) ;; we need the faces add-log
+  (require 'add-log) ;; We need the faces add-log.
   ;; Don't have file markers, so use impossible regexp.
   (set (make-local-variable 'log-view-file-re) "\\`a\\`")
   (set (make-local-variable 'log-view-per-file-logs) nil)
@@ -610,17 +646,16 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
 REVISION may have the form BRANCH, BRANCH~N,
 or BRANCH^ (where \"^\" can be repeated)."
   (goto-char (point-min))
-  (let (found)
-    (when revision
-      (setq found
-           (search-forward (format "\ncommit %s" revision) nil t
-                           (cond ((string-match "~\\([0-9]\\)$" revision)
-                                  (1+ (string-to-number (match-string 1 revision))))
-                                 ((string-match "\\^+$" revision)
-                                  (1+ (length (match-string 0 revision))))
-                                 (t nil)))))
-    (beginning-of-line)
-    found))
+  (prog1
+      (when revision
+        (search-forward
+         (format "\ncommit %s" revision) nil t
+         (cond ((string-match "~\\([0-9]\\)\\'" revision)
+                (1+ (string-to-number (match-string 1 revision))))
+               ((string-match "\\^+\\'" revision)
+                (1+ (length (match-string 0 revision))))
+               (t nil))))
+    (beginning-of-line)))
 
 (defun vc-git-diff (files &optional rev1 rev2 buffer)
   "Get a difference report using Git between two revisions of FILES."
@@ -668,7 +703,8 @@ or BRANCH^ (where \"^\" can be repeated)."
     (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?")
       (let ((revision (match-string-no-properties 1)))
        (if (match-beginning 2)
-         (cons revision (expand-file-name (match-string-no-properties 3)))
+           (cons revision (expand-file-name (match-string-no-properties 3)
+                                            (vc-git-root default-directory)))
          revision)))))
 
 ;;; TAG SYSTEM
@@ -948,7 +984,8 @@ Returns nil if not possible."
                       (goto-char (point-min))
                       (= (forward-line 2) 1)
                       (bolp)
-                      (buffer-substring-no-properties (point-min) (1- (point-max)))))))
+                      (buffer-substring-no-properties (point-min)
+                                                      (1- (point-max)))))))
          (and name (not (string= name "undefined")) name))))
 
 (provide 'vc-git)
index 761beb2be54fd3269b97b7043f3690bc100b26c3..ce4fe1cd7b4e9bccfc99a57433cf4c9aa705e932 100644 (file)
@@ -1,3 +1,21 @@
+2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Make it possible to C-g in a tight bytecode loop again (bug#5680).
+       * lisp.h (ELSE_PENDING_SIGNALS): New macro.
+       (QUIT): Use it to consolidate code and remove redundancy.
+       * bytecode.c (BYTE_CODE_QUIT): Use it as well.
+
+       * regex.c (regex_compile): Setup gl_state as well.
+
+       * syntax.c (skip_chars): Setup gl_state (bug#3823).
+       (in_classes): Use CONSP before XCAR/XCDR.
+
+2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
+
+       * keymap.c (Fwhere_is_internal): Use Fequal to compare
+       definitions, so that keyboard macros are correctly handled
+       (Bug#5481).
+
 2010-03-02  Eli Zaretskii  <eliz@gnu.org>
 
        * coding.c (decode_coding_emacs_mule): Fixup pointers to buffer
index 31df65fd303271f5cf23b214117de8c231635438..e95614c72a9126bef52ee15d038f1fc049bc4d5c 100644 (file)
@@ -393,6 +393,7 @@ unmark_byte_stack ()
        Fsignal (Qquit, Qnil);                          \
        AFTER_POTENTIAL_GC ();                          \
       }                                                        \
+    ELSE_PENDING_SIGNALS                               \
   } while (0)
 
 
index 98774d5d685d2e6c8015b9886525ba150ad2a721..88e0687272f0620f6a673359bf8c136b650f5c53 100644 (file)
@@ -1633,13 +1633,13 @@ like in the respective argument of `key-binding'. */)
   /* If a mouse click position is given, our variables are based on
      the buffer clicked on, not the current buffer.  So we may have to
      switch the buffer here. */
-  
+
   if (CONSP (position))
     {
       Lisp_Object window;
-      
+
       window = POSN_WINDOW (position);
-         
+
       if (WINDOWP (window)
          && BUFFERP (XWINDOW (window)->buffer)
          && XBUFFER (XWINDOW (window)->buffer) != current_buffer)
@@ -1651,14 +1651,14 @@ like in the respective argument of `key-binding'. */)
             would not be a problem here, but it is easier to keep
             things the same.
          */
-             
+
          record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
-         
+
          set_buffer_internal (XBUFFER (XWINDOW (window)->buffer));
        }
     }
 
-  keymaps = Fcons (current_global_map, Qnil);  
+  keymaps = Fcons (current_global_map, Qnil);
 
   if (!NILP (olp))
     {
@@ -1685,8 +1685,8 @@ like in the respective argument of `key-binding'. */)
       /* Get the buffer local maps, possibly overriden by text or
         overlay properties */
 
-      local_map = get_local_map (pt, current_buffer, Qlocal_map); 
-      keymap = get_local_map (pt, current_buffer, Qkeymap); 
+      local_map = get_local_map (pt, current_buffer, Qlocal_map);
+      keymap = get_local_map (pt, current_buffer, Qkeymap);
 
       if (CONSP (position))
        {
@@ -1694,7 +1694,7 @@ like in the respective argument of `key-binding'. */)
 
          /* For a mouse click, get the local text-property keymap
             of the place clicked on, rather than point.  */
-         
+
          if (POSN_INBUFFER_P (position))
            {
              Lisp_Object pos;
@@ -1705,7 +1705,7 @@ like in the respective argument of `key-binding'. */)
                {
                  local_map = get_local_map (XINT (pos),
                                             current_buffer, Qlocal_map);
-                 
+
                  keymap = get_local_map (XINT (pos),
                                          current_buffer, Qkeymap);
                }
@@ -1716,12 +1716,12 @@ like in the respective argument of `key-binding'. */)
             string displayed via the `display' property,
             consider `local-map' and `keymap' properties of
             that string.  */
-         
+
          if (string = POSN_STRING (position),
              (CONSP (string) && STRINGP (XCAR (string))))
            {
              Lisp_Object pos, map;
-             
+
              pos = XCDR (string);
              string = XCAR (string);
              if (INTEGERP (pos)
@@ -1737,7 +1737,7 @@ like in the respective argument of `key-binding'. */)
                    keymap = map;
                }
            }
-         
+
        }
 
       if (!NILP (local_map))
@@ -2890,7 +2890,7 @@ remapped command in the returned list.  */)
             CONSP (sequences)))
     {
       Lisp_Object sequence, function;
-         
+
       sequence = XCAR (sequences);
       sequences = XCDR (sequences);
 
@@ -2903,8 +2903,8 @@ remapped command in the returned list.  */)
 
         Either nil or number as value from Flookup_key
         means undefined.  */
-      if (!EQ (shadow_lookup (keymaps, sequence, Qnil, remapped),
-              definition))
+      if (NILP (Fequal (shadow_lookup (keymaps, sequence, Qnil, remapped),
+                       definition)))
        continue;
 
       /* If the current sequence is a command remapping with
@@ -2933,12 +2933,12 @@ remapped command in the returned list.  */)
            Faset (sequence, make_number (ASIZE (sequence) - 1),
                   build_string ("(any string)"));
        }
-      
+
       /* It is a true unshadowed match.  Record it, unless it's already
         been seen (as could happen when inheriting keymaps).  */
       if (NILP (Fmember (sequence, found)))
        found = Fcons (sequence, found);
-      
+
       /* If firstonly is Qnon_ascii, then we can return the first
         binding we find.  If firstonly is not Qnon_ascii but not
         nil, then we should return the first ascii-only binding
index 7032a3f48f4c0aaf967033783d6d7b4072cf219c..7f5d5df66c61106d5caf3223a929aa077ce4a2d7 100644 (file)
@@ -1933,22 +1933,12 @@ extern char *stack_bottom;
 #ifdef SYNC_INPUT
 extern void process_pending_signals P_ ((void));
 extern int pending_signals;
-
-#define QUIT                                           \
-  do {                                                 \
-    if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))    \
-      {                                                        \
-        Lisp_Object flag = Vquit_flag;                 \
-       Vquit_flag = Qnil;                              \
-       if (EQ (Vthrow_on_input, flag))                 \
-         Fthrow (Vthrow_on_input, Qt);                 \
-       Fsignal (Qquit, Qnil);                          \
-      }                                                        \
-    else if (pending_signals)                          \
-      process_pending_signals ();                      \
-  } while (0)
-
+#define ELSE_PENDING_SIGNALS                           \
+  else if (pending_signals)                            \
+    process_pending_signals ();
 #else  /* not SYNC_INPUT */
+#define ELSE_PENDING_SIGNALS
+#endif /* not SYNC_INPUT */
 
 #define QUIT                                           \
   do {                                                 \
@@ -1960,10 +1950,9 @@ extern int pending_signals;
          Fthrow (Vthrow_on_input, Qt);                 \
        Fsignal (Qquit, Qnil);                          \
       }                                                        \
+    ELSE_PENDING_SIGNALS                               \
   } while (0)
 
-#endif /* not SYNC_INPUT */
-
 
 /* Nonzero if ought to quit now.  */
 
index bb921a5b519e2c4462bad68d65399a04bb195121..f242446796d7518b7bfef57accfba6a47b19312b 100644 (file)
@@ -3065,6 +3065,13 @@ regex_compile (pattern, size, syntax, bufp)
                           don't need to handle them for multibyte.
                           They are distinguished by a negative wctype.  */
 
+                       /* Setup the gl_state object to its buffer-defined
+                          value.  This hardcodes the buffer-global
+                          syntax-table for ASCII chars, while the other chars
+                          will obey syntax-table properties.  It's not ideal,
+                          but it's the way it's been done until now.  */
+                       SETUP_SYNTAX_TABLE (BEGV, 0);
+
                        for (ch = 0; ch < 256; ++ch)
                          {
                            c = RE_CHAR_TO_MULTIBYTE (ch);
index 01b4cfb8892e7f0bc52fc67174137c24a004bdc7..47b4caf5ade15c6c619d062218562d6124d5cf2e 100644 (file)
@@ -1747,6 +1747,12 @@ skip_chars (forwardp, string, lim, handle_iso_classes)
       }
 
     immediate_quit = 1;
+    /* This code may look up syntax tables using macros that rely on the
+       gl_state object.  To make sure this object is not out of date,
+       let's initialize it manually.
+       We ignore syntax-table text-properties for now, since that's
+       what we've done in the past.  */
+    SETUP_SYNTAX_TABLE (BEGV, 0);
     if (forwardp)
       {
        if (multibyte)
@@ -2072,7 +2078,7 @@ in_classes (c, iso_classes)
 {
   int fits_class = 0;
 
-  while (! NILP (iso_classes))
+  while (CONSP (iso_classes))
     {
       Lisp_Object elt;
       elt = XCAR (iso_classes);
index df18b8fd27746c790f8be544698677be923e9941..2dc5dbf8ac841e53de79ee35694e08e99635c988 100644 (file)
@@ -1,3 +1,30 @@
+;;; ede-tests.el --- Some tests for the Emacs Development Environment
+
+;; Copyright (C) 2008, 2009, 2010  Free Software Foundation, Inc.
+
+;; Author: Eric M. Ludlam <eric@siege-engine.com>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Extracted from ede-locate.el in the CEDET distribution.
+
+;;; Code:
+
 ;;; From ede-locate:
 
 (require 'ede/locate)
@@ -58,3 +85,4 @@ The search is done with the current EDE root."
   )
 
 ;; arch-tag: 79fae12e-652f-4544-a20e-b24d87b4917d
+;;; ede-test.el ends here
index f48041144a425a447baf5161223e28e4e1075b20..7997ff415e6bd57142d1b82af9ce2fff7917adf0 100644 (file)
@@ -1,3 +1,31 @@
+;;; srecode-tests.el --- Some tests for CEDET's srecode
+
+;; Copyright (C) 2008, 2009, 2010  Free Software Foundation, Inc.
+
+;; Author: Eric M. Ludlam <eric@siege-engine.com>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Extracted from srecode-fields.el and srecode-document.el in the
+;; CEDET distribution.
+
+;;; Code:
+
 ;;; From srecode-fields:
 
 (require 'srecode/fields)
@@ -266,3 +294,4 @@ Dump out the extracted dictionary."
          (srecode-dump extract))))))
 
 ;; arch-tag: 7a467849-b415-4bdc-ba2a-284ace156a65
+;;; srecode-tests.el ends here