Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
emacs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
emacs
emacs
Commits
59513a2f
Commit
59513a2f
authored
Mar 08, 2010
by
Kenichi Handa
Browse files
Options
Browse Files
Download
Plain Diff
from trunk
parents
b799f221
b327c975
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
369 additions
and
174 deletions
+369
-174
doc/emacs/ChangeLog
doc/emacs/ChangeLog
+7
-0
doc/emacs/custom.texi
doc/emacs/custom.texi
+4
-3
doc/emacs/major.texi
doc/emacs/major.texi
+25
-9
doc/lispref/ChangeLog
doc/lispref/ChangeLog
+5
-0
doc/lispref/objects.texi
doc/lispref/objects.texi
+7
-0
etc/ChangeLog
etc/ChangeLog
+9
-0
etc/NEWS
etc/NEWS
+8
-5
etc/refcards/Makefile
etc/refcards/Makefile
+0
-5
etc/refcards/orgcard.tex
etc/refcards/orgcard.tex
+5
-2
etc/srecode/default.srt
etc/srecode/default.srt
+3
-5
lisp/ChangeLog
lisp/ChangeLog
+43
-8
lisp/calculator.el
lisp/calculator.el
+1
-2
lisp/cedet/semantic/grammar.el
lisp/cedet/semantic/grammar.el
+5
-7
lisp/info.el
lisp/info.el
+2
-0
lisp/macros.el
lisp/macros.el
+2
-1
lisp/mail/rfc822.el
lisp/mail/rfc822.el
+20
-20
lisp/man.el
lisp/man.el
+2
-1
lisp/vc-git.el
lisp/vc-git.el
+107
-70
src/ChangeLog
src/ChangeLog
+18
-0
src/bytecode.c
src/bytecode.c
+1
-0
src/keymap.c
src/keymap.c
+18
-18
src/lisp.h
src/lisp.h
+6
-17
src/regex.c
src/regex.c
+7
-0
src/syntax.c
src/syntax.c
+7
-1
test/cedet/ede-tests.el
test/cedet/ede-tests.el
+28
-0
test/cedet/srecode-tests.el
test/cedet/srecode-tests.el
+29
-0
No files found.
doc/emacs/ChangeLog
View file @
59513a2f
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.
...
...
doc/emacs/custom.texi
View file @
59513a2f
...
...
@@ -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
...
...
doc/emacs/major.texi
View file @
59513a2f
...
...
@@ -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}.
...
...
doc/lispref/ChangeLog
View file @
59513a2f
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
):
...
...
doc/lispref/objects.texi
View file @
59513a2f
...
...
@@ -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
...
...
etc/ChangeLog
View file @
59513a2f
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.
...
...
etc/NEWS
View file @
59513a2f
...
...
@@ -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.
* Editing Changes in Emacs 23.2
...
...
@@ -437,6 +432,14 @@ System (CLOS). It is used by the other CEDET packages.
* 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
...
...
etc/refcards/Makefile
View file @
59513a2f
...
...
@@ -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
\
...
...
etc/refcards/orgcard.tex
View file @
59513a2f
...
...
@@ -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.
...
...
etc/srecode/default.srt
View file @
59513a2f
...
...
@@ -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 "$"
...
...
lisp/ChangeLog
View file @
59513a2f
...
...
@@ -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
...
...
@@ -27,19 +64,17 @@
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): Rename
d
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.
...
...
lisp/calculator.el
View file @
59513a2f
...
...
@@ -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
...
...
lisp/cedet/semantic/grammar.el
View file @
59513a2f
...
...
@@ -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:
;;
...
...
lisp/info.el
View file @
59513a2f
...
...
@@ -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
))))
...
...
lisp/macros.el
View file @
59513a2f
...
...
@@ -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
))
...
...
lisp/mail/rfc822.el
View file @
59513a2f
...
...
@@ -296,26 +296,26 @@
;; 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
)
...
...
lisp/man.el
View file @
59513a2f
...
...
@@ -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."
)
...
...
lisp/vc-git.el
View file @
59513a2f
...
...
@@ -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