Now on revision 107433. ------------------------------------------------------------ revno: 107433 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-02-25 18:25:07 -0800 message: * doc/lispref/intro.texi (Acknowledgements): Small changes. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-25 20:59:46 +0000 +++ doc/lispref/ChangeLog 2012-02-26 02:25:07 +0000 @@ -1,3 +1,7 @@ +2012-02-26 Glenn Morris + + * intro.texi (Acknowledgements): Small changes. + 2012-02-25 Glenn Morris * errors.texi: Don't try to list _all_ the error symbols. === modified file 'doc/lispref/intro.texi' --- doc/lispref/intro.texi 2012-01-21 16:04:55 +0000 +++ doc/lispref/intro.texi 2012-02-26 02:25:07 +0000 @@ -522,16 +522,16 @@ @node Acknowledgements @section Acknowledgements - This manual was written by Robert Krawitz, Bil Lewis, Dan LaLiberte, -Richard@tie{}M. Stallman and Chris Welty, the volunteers of the GNU -manual group, in an effort extending over several years. + This manual was originally written by Robert Krawitz, Bil Lewis, Dan +LaLiberte, Richard@tie{}M. Stallman and Chris Welty, the volunteers of +the GNU manual group, in an effort extending over several years. Robert@tie{}J. Chassell helped to review and edit the manual, with the support of the Defense Advanced Research Projects Agency, ARPA Order 6082, arranged by Warren@tie{}A. Hunt, Jr.@: of Computational Logic, -Inc. Additional sections were written by Miles Bader, Lars Brinkhoff, -Chong Yidong, Kenichi Handa, Lute Kamstra, Juri Linkov, Glenn Morris, -Thien-Thi Nguyen, Dan Nicolaescu, Martin Rudalics, Kim F. Storm, Luc -Teirlinck, and Eli Zaretskii. +Inc. Additional sections have since been written by Miles Bader, Lars +Brinkhoff, Chong Yidong, Kenichi Handa, Lute Kamstra, Juri Linkov, +Glenn Morris, Thien-Thi Nguyen, Dan Nicolaescu, Martin Rudalics, Kim +F. Storm, Luc Teirlinck, and Eli Zaretskii, and others. Corrections were supplied by Drew Adams, Juanma Barranquero, Karl Berry, Jim Blandy, Bard Bloom, Stephane Boucher, David Boyes, Alan @@ -546,3 +546,6 @@ Per Starbäck, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding, Carl Witty, Dale Worley, Rusty Wright, and David D. Zuhn. + + For a more complete list of contributors, please see the relevant +ChangeLog file in the Emacs sources. ------------------------------------------------------------ revno: 107432 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-02-25 17:09:59 -0800 message: * alloc.c (mark_memory): Conditionalize recent fix on USE_USB_TAG. diff: === modified file 'src/alloc.c' --- src/alloc.c 2012-02-25 19:39:42 +0000 +++ src/alloc.c 2012-02-26 01:09:59 +0000 @@ -4312,12 +4312,14 @@ void *w = *(void **) ((char *) pp + i); mark_maybe_pointer (w); +#ifdef USE_LSB_TAG /* A host where a Lisp_Object is wider than a pointer might allocate a Lisp_Object in non-adjacent halves. If USE_LSB_TAG, the bottom half is not a valid pointer, so widen it to to a Lisp_Object and check it that way. */ if (sizeof w < sizeof (Lisp_Object)) mark_maybe_object (widen_to_Lisp_Object (w)); +#endif } } ------------------------------------------------------------ revno: 107431 fixes bug(s): http://debbugs.gnu.org/10882 committer: Juanma Barranquero branch nick: trunk timestamp: Sun 2012-02-26 00:26:40 +0100 message: lisp/bs.el: Fix bug#10882 * bs.el (bs--show-with-configuration): Don't throw an error if the window cannot be split; otherwise, subsequent calls to bs-show fail, restoring a stale window config. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 12:09:19 +0000 +++ lisp/ChangeLog 2012-02-25 23:26:40 +0000 @@ -1,3 +1,9 @@ +2012-02-25 Juanma Barranquero + + * bs.el (bs--show-with-configuration): Don't throw an error + if the window cannot be split; otherwise, subsequent calls to + bs-show fail, restoring a stale window config. (Bug#10882) + 2012-02-25 Jan Djärv * term/ns-win.el (global-map): Bind ns-drag-file to === modified file 'lisp/bs.el' --- lisp/bs.el 2012-01-19 07:21:25 +0000 +++ lisp/bs.el 2012-02-25 23:26:40 +0000 @@ -1414,7 +1414,8 @@ (bs--restore-window-config) (setq bs--window-config-coming-from (current-window-configuration)) (when (> (window-height (selected-window)) 7) - (select-window (split-window-below)))) + ;; Errors would mess with the window configuration (bug#10882). + (ignore-errors (select-window (split-window-below))))) (bs-show-in-buffer liste) (bs-message-without-log "%s" (bs--current-config-message))))) ------------------------------------------------------------ revno: 107430 committer: Glenn Morris branch nick: trunk timestamp: Sat 2012-02-25 12:59:46 -0800 message: Checked errors.texi * doc/lispref/errors.texi: Don't try to list _all_ the error symbols. Add circular-list, cl-assertion-failed, compression-error. * doc/lispref/elisp.texi, doc/lispref/vol1.texi, doc/lispref/vol2.texi: * doc/lispref/control.texi (Error Symbols): Tweak "Standard Errors" description. * admin/FOR-RELEASE: Related markup. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-02-25 09:32:33 +0000 +++ admin/FOR-RELEASE 2012-02-25 20:59:46 +0000 @@ -194,7 +194,7 @@ display.texi edebug.texi elisp.texi -errors.texi +errors.texi rgm eval.texi cyd files.texi cyd frames.texi === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-25 15:31:07 +0000 +++ doc/lispref/ChangeLog 2012-02-25 20:59:46 +0000 @@ -1,3 +1,10 @@ +2012-02-25 Glenn Morris + + * errors.texi: Don't try to list _all_ the error symbols. + Add circular-list, cl-assertion-failed, compression-error. + * elisp.texi, vol1.texi, vol2.texi: + * control.texi (Error Symbols): Tweak "Standard Errors" description. + 2012-02-25 Thierry Volpiatto * files.texi (files-equal-p, file-subdir-of-p): New, === modified file 'doc/lispref/control.texi' --- doc/lispref/control.texi 2012-02-10 15:59:29 +0000 +++ doc/lispref/control.texi 2012-02-25 20:59:46 +0000 @@ -1234,7 +1234,7 @@ when you write an error handler. Using error symbols alone would eliminate all but the narrowest level of classification. - @xref{Standard Errors}, for a list of all the standard error symbols + @xref{Standard Errors}, for a list of the main error symbols and their conditions. @node Cleanups === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2012-02-21 13:24:48 +0000 +++ doc/lispref/elisp.texi 2012-02-25 20:59:46 +0000 @@ -170,7 +170,7 @@ * Tips:: Advice and coding conventions for Emacs Lisp. * GNU Emacs Internals:: Building and dumping Emacs; internal data structures. -* Standard Errors:: List of all error symbols. +* Standard Errors:: List of main error symbols. * Standard Buffer-Local Variables:: List of variables buffer-local in all buffers. * Standard Keymaps:: List of standard keymaps. === modified file 'doc/lispref/errors.texi' --- doc/lispref/errors.texi 2012-02-24 08:28:42 +0000 +++ doc/lispref/errors.texi 2012-02-25 20:59:46 +0000 @@ -7,7 +7,7 @@ @appendix Standard Errors @cindex standard errors - Here is the complete list of the error symbols in standard Emacs, + Here is a list of the more important error symbols in standard Emacs, grouped by concept. The list includes each symbol's message (on the @code{error-message} property of the symbol) and a cross reference to a description of how the error can occur. @@ -24,6 +24,15 @@ As a special exception, the error symbol @code{quit} does not have the condition @code{error}, because quitting is not considered an error. +@c You can grep for "(put 'foo 'error-conditions ...) to find +@c examples defined in Lisp. Eg soap-client.el, sasl.el. + Most of these error symbols are defined in C (mainly @file{data.c}), +but some are defined in Lisp. For example, the file @file{userlock.el} +defines the @code{file-locked} and @code{file-supersession} errors. +Several of the specialized Lisp libraries distributed with Emacs +define their own error symbols. We do not attempt to list of all +those here. + @xref{Errors}, for an explanation of how errors are generated and handled. @@ -54,10 +63,16 @@ @code{"Buffer is read-only"}@* @xref{Read Only Buffers}. -@ignore @item circular-list @code{"List contains a loop"}@* -@end ignore +This happens when some operations (e.g. resolving face names) +encounter circular structures.@* +@xref{Circular Objects}. + +@item cl-assertion-failed +@code{"Assertion failed"}@* +This happens when the @code{assert} macro fails a test.@* +@xref{Assertions,,, cl, Common Lisp Extensions}. @item coding-system-error @code{"Invalid coding system"}@* @@ -105,14 +120,23 @@ the @code{error-message} property @emph{is} used.@* @xref{Files}. +@c jka-compr.el +@item compression-error +This is a subcategory of @code{file-error}, which results from +problems handling a compressed file.@* +@xref{How Programs Do Loading}. + +@c userlock.el @item file-locked This is a subcategory of @code{file-error}.@* @xref{File Locks}. +@c userlock.el @item file-supersession This is a subcategory of @code{file-error}.@* @xref{Modification Time}. +@c net/ange-ftp.el @item ftp-error This is a subcategory of @code{file-error}, which results from problems in accessing a remote file using ftp.@* @@ -130,6 +154,7 @@ @code{"Invalid regexp"}@* @xref{Regular Expressions}. +@c simple.el @item mark-inactive @code{"The mark is not active now"}@* @xref{The Mark}. @@ -139,6 +164,7 @@ @xref{Catch and Throw}. @ignore +@c Not actually used for anything? Probably definition should be removed. @item protected-field @code{"Attempt to modify a protected field"} @end ignore @@ -160,6 +186,7 @@ may not be changed.@* @xref{Constant Variables, , Variables that Never Change}. +@c simple.el @item text-read-only @code{"Text is read-only"}@* This is a subcategory of @code{buffer-read-only}.@* === modified file 'doc/lispref/vol1.texi' --- doc/lispref/vol1.texi 2012-02-21 13:24:48 +0000 +++ doc/lispref/vol1.texi 2012-02-25 20:59:46 +0000 @@ -187,7 +187,7 @@ * Tips:: Advice and coding conventions for Emacs Lisp. * GNU Emacs Internals:: Building and dumping Emacs; internal data structures. -* Standard Errors:: List of all error symbols. +* Standard Errors:: List of main error symbols. * Standard Buffer-Local Variables:: List of variables buffer-local in all buffers. * Standard Keymaps:: List of standard keymaps. === modified file 'doc/lispref/vol2.texi' --- doc/lispref/vol2.texi 2012-02-21 13:24:48 +0000 +++ doc/lispref/vol2.texi 2012-02-25 20:59:46 +0000 @@ -186,7 +186,7 @@ * Tips:: Advice and coding conventions for Emacs Lisp. * GNU Emacs Internals:: Building and dumping Emacs; internal data structures. -* Standard Errors:: List of all error symbols. +* Standard Errors:: List of main error symbols. * Standard Buffer-Local Variables:: List of variables buffer-local in all buffers. * Standard Keymaps:: List of standard keymaps. ------------------------------------------------------------ revno: 107429 fixes bug(s): http://debbugs.gnu.org/10780 committer: Paul Eggert branch nick: trunk timestamp: Sat 2012-02-25 11:39:42 -0800 message: Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780). Suggested by Stefan Monnier in . * alloc.c (widen_to_Lisp_Object): New static function. (mark_memory): Also mark Lisp_Objects by fetching pointer words and widening them to Lisp_Objects. This would work even if USE_LSB_TAG is defined and wide integers are used, which might happen in a future version of Emacs. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-02-25 09:07:23 +0000 +++ src/ChangeLog 2012-02-25 19:39:42 +0000 @@ -1,3 +1,14 @@ +2012-02-25 Paul Eggert + + Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780). + Suggested by Stefan Monnier in + . + * alloc.c (widen_to_Lisp_Object): New static function. + (mark_memory): Also mark Lisp_Objects by fetching pointer words + and widening them to Lisp_Objects. This would work even if + USE_LSB_TAG is defined and wide integers are used, which might + happen in a future version of Emacs. + 2012-02-25 Chong Yidong * fileio.c (Ffile_selinux_context, Fset_file_selinux_context): === modified file 'src/alloc.c' --- src/alloc.c 2012-01-19 07:21:25 +0000 +++ src/alloc.c 2012-02-25 19:39:42 +0000 @@ -1582,6 +1582,21 @@ } #endif +/* Convert the pointer-sized word P to EMACS_INT while preserving its + type and ptr fields. */ +static Lisp_Object +widen_to_Lisp_Object (void *p) +{ + intptr_t i = (intptr_t) p; +#ifdef USE_LISP_UNION_TYPE + Lisp_Object obj; + obj.i = i; + return obj; +#else + return i; +#endif +} + /*********************************************************************** String Allocation ***********************************************************************/ @@ -4293,7 +4308,17 @@ for (pp = start; (void *) pp < end; pp++) for (i = 0; i < sizeof *pp; i += GC_POINTER_ALIGNMENT) - mark_maybe_pointer (*(void **) ((char *) pp + i)); + { + void *w = *(void **) ((char *) pp + i); + mark_maybe_pointer (w); + + /* A host where a Lisp_Object is wider than a pointer might + allocate a Lisp_Object in non-adjacent halves. If + USE_LSB_TAG, the bottom half is not a valid pointer, so + widen it to to a Lisp_Object and check it that way. */ + if (sizeof w < sizeof (Lisp_Object)) + mark_maybe_object (widen_to_Lisp_Object (w)); + } } /* setjmp will work with GCC unless NON_SAVING_SETJMP is defined in === modified file 'src/lisp.h' --- src/lisp.h 2012-02-22 15:55:46 +0000 +++ src/lisp.h 2012-02-25 19:39:42 +0000 @@ -197,22 +197,8 @@ # if defined DECL_ALIGN /* On hosts where VALBITS is greater than the pointer width in bits, USE_LSB_TAG is: - - a. unnecessary, because the top bits of an EMACS_INT are unused, - - b. slower, because it typically requires extra masking, and - - c. harmful, because it can create Lisp_Object values that are so scrambled - that mark_maybe_object cannot decipher them. mark_maybe_object assumes - that EMACS_INT values are contiguous, but a host where EMACS_INT is - wider than a pointer might allocate the top half of an EMACS_INT in - (say) a 32-bit word on the stack, putting the bottom half in a 32-bit - register that is saved elsewhere in a jmp_buf. When this happens, - since USE_LSB_TAG is not defined the bottom half alone is a valid - pointer that mark_maybe_pointer can follow; but if USE_LSB_TAG were - defined, the bottom half would not be a valid pointer and neither - mark_maybe_object nor mark_maybe_pointer would follow it. - + a. unnecessary, because the top bits of an EMACS_INT are unused, and + b. slower, because it typically requires extra masking. So, define USE_LSB_TAG only on hosts where it might be useful. */ # if UINTPTR_MAX >> VALBITS != 0 # define USE_LSB_TAG ------------------------------------------------------------ revno: 107428 committer: thierry volpiatto + + * files.texi (files-equal-p, file-subdir-of-p): New, + add initial documentation. + 2012-02-25 Chong Yidong * files.texi (File Attributes): Document file-selinux-context. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2012-02-25 09:07:23 +0000 +++ doc/lispref/files.texi 2012-02-25 15:31:07 +0000 @@ -1018,6 +1018,23 @@ other I/O device). @end defun +@defun files-equal-p file1 file2 +This function return @code{t} if the files @var{file1} and @var{file2} name +the same file. +Comparison is made with the @code{file-attributes} of both files. +@end defun + +@defun file-subdir-of-p dir1 dir2 +This function return @code{t} if directory @var{dir1} is a subdirectory +of @var{dir2} or if @var{dir1} and @var{dir2} are the same directory. +Arguments @var{dir1} and @var{dir2} must be existing directories, +otherwise, return nil. +Check is done by building a directory name based on equality of differents +components of both directory names, if this resulting directory name +is equal to @var{dir2}, we assume directory @var{dir1} +is a subdirectory of @var{dir2}. +@end defun + @node Truenames @subsection Truenames @cindex truename (of file) ------------------------------------------------------------ revno: 107427 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Sat 2012-02-25 13:20:57 +0000 message: shr.el (shr-column-specs): Protect against TDs with "width: 0%". diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-02-23 23:11:13 +0000 +++ lisp/gnus/ChangeLog 2012-02-25 13:20:57 +0000 @@ -1,3 +1,7 @@ +2012-02-25 Lars Magne Ingebrigtsen + + * shr.el (shr-column-specs): Protect against TDs with "width: 0%". + 2012-02-23 Katsumi Yamaoka * nntp.el (nntp-send-authinfo): Work for secure nntp entry in authinfo. === modified file 'lisp/gnus/shr.el' --- lisp/gnus/shr.el 2012-02-18 22:28:00 +0000 +++ lisp/gnus/shr.el 2012-02-25 13:20:57 +0000 @@ -1364,10 +1364,10 @@ (when (memq (car column) '(td th)) (let ((width (cdr (assq :width (cdr column))))) (when (and width - (string-match "\\([0-9]+\\)%" width)) - (aset columns i - (/ (string-to-number (match-string 1 width)) - 100.0)))) + (string-match "\\([0-9]+\\)%" width) + (not (zerop (setq width (string-to-number + (match-string 1 width)))))) + (aset columns i (/ width 100.0)))) (setq i (1+ i))))))) columns)) ------------------------------------------------------------ revno: 107426 committer: Juanma Barranquero branch nick: trunk timestamp: Sat 2012-02-25 13:09:19 +0100 message: lisp/ChangeLog: Fix typos. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 10:04:30 +0000 +++ lisp/ChangeLog 2012-02-25 12:09:19 +0000 @@ -3,7 +3,6 @@ * term/ns-win.el (global-map): Bind ns-drag-file to ns-find-file (Bug#5855, Bug#10050). - 2012-02-25 Andreas Schwab * calendar/parse-time.el (parse-time-string): Allow extractor to @@ -11,12 +10,12 @@ 2012-02-25 Michael Albinus - * net/tramp.el (tramp-file-name-for-operation): Add - `files-equal-p' and `file-subdir-of-p'. + * net/tramp.el (tramp-file-name-for-operation): + Add `files-equal-p' and `file-subdir-of-p'. * net/tramp-sh.el (tramp-sh-handle-copy-directory): - * net/tramp-smb.el (tramp-smb-handle-copy-directory): Add - COPY-CONTENTS argument. + * net/tramp-smb.el (tramp-smb-handle-copy-directory): + Add COPY-CONTENTS argument. 2012-02-25 Chong Yidong @@ -65,9 +64,9 @@ the execution of the mode hooks. * font-lock.el (font-lock-initial-fontify): New function extracted - from font-lock-mode-interal. + from font-lock-mode-internal. - * font-core.el (font-lock-mode): call font-lock-initial-fontify in + * font-core.el (font-lock-mode): Call font-lock-initial-fontify in :after-hook. 2012-02-23 Stefan Monnier @@ -433,7 +432,7 @@ * mail/emacsbug.el (report-emacs-bug-hook): Query the user first about SMTP before checking the From header. - * mail/sendmail.el (sendmail-query-user-about-smtp): Refacored out + * mail/sendmail.el (sendmail-query-user-about-smtp): Refactor out into own function for reuse by emacsbug.el. 2012-02-10 Leo Liu @@ -447,7 +446,7 @@ * emacs-lisp/package.el (package-refresh-contents) (package-menu-execute): * desktop.el (desktop-create-buffer): - * font-lock.el (lisp-font-lock-keywords-2): caller changed. + * font-lock.el (lisp-font-lock-keywords-2): Caller changed. 2012-02-10 Glenn Morris ------------------------------------------------------------ revno: 107425 committer: Jan D. branch nick: trunk timestamp: Sat 2012-02-25 11:04:30 +0100 message: Make drop on NS/OSX behave the same as other platforms (Bug 5855 and 10050). * doc/emacs/macos.texi (Mac / GNUstep Customization): Remove text about ns-find-file and ns-drag-file (Bug#5855, Bug#10050). * lisp/term/ns-win.el (global-map): Bind ns-drag-file to ns-find-file (Bug#5855, Bug#10050). diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2012-02-25 03:49:22 +0000 +++ doc/emacs/ChangeLog 2012-02-25 10:04:30 +0000 @@ -1,3 +1,8 @@ +2012-02-25 Jan Djärv + + * macos.texi (Mac / GNUstep Customization): Remove text about + ns-find-file and ns-drag-file (Bug#5855, Bug#10050). + 2012-02-25 Dani Moncayo (tiny change) * buffers.texi (Select Buffer): Mention that saving in a new file === modified file 'doc/emacs/macos.texi' --- doc/emacs/macos.texi 2012-02-22 08:16:48 +0000 +++ doc/emacs/macos.texi 2012-02-25 10:04:30 +0000 @@ -113,18 +113,6 @@ Useful in this context is the listing of all faces obtained by @kbd{M-x list-faces-display}. -@subsection Open files by dragging to an Emacs window - -The default behavior when a user drags files from another application -into an Emacs frame is to insert the contents of all the dragged files -into the current buffer. To remap the @code{ns-drag-file} event to -open the dragged files in the current frame use the following line: - -@lisp -(define-key global-map [ns-drag-file] 'ns-find-file) -@end lisp - - @subsection Customization options specific to Mac OS / GNUstep The following customization options are specific to the Nextstep port. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 10:00:08 +0000 +++ lisp/ChangeLog 2012-02-25 10:04:30 +0000 @@ -1,3 +1,9 @@ +2012-02-25 Jan Djärv + + * term/ns-win.el (global-map): Bind ns-drag-file to + ns-find-file (Bug#5855, Bug#10050). + + 2012-02-25 Andreas Schwab * calendar/parse-time.el (parse-time-string): Allow extractor to === modified file 'lisp/term/ns-win.el' --- lisp/term/ns-win.el 2012-01-19 07:21:25 +0000 +++ lisp/term/ns-win.el 2012-02-25 10:04:30 +0000 @@ -163,7 +163,7 @@ (define-key global-map [ns-power-off] 'save-buffers-kill-emacs) (define-key global-map [ns-open-file] 'ns-find-file) (define-key global-map [ns-open-temp-file] [ns-open-file]) -(define-key global-map [ns-drag-file] 'ns-insert-file) +(define-key global-map [ns-drag-file] 'ns-find-file) (define-key global-map [ns-drag-color] 'ns-set-foreground-at-mouse) (define-key global-map [S-ns-drag-color] 'ns-set-background-at-mouse) (define-key global-map [ns-drag-text] 'ns-insert-text) ------------------------------------------------------------ revno: 107424 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-02-25 11:00:08 +0100 message: * calendar/parse-time.el (parse-time-string): Allow extractor to return nil. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 08:51:32 +0000 +++ lisp/ChangeLog 2012-02-25 10:00:08 +0000 @@ -1,3 +1,8 @@ +2012-02-25 Andreas Schwab + + * calendar/parse-time.el (parse-time-string): Allow extractor to + return nil. + 2012-02-25 Michael Albinus * net/tramp.el (tramp-file-name-for-operation): Add === modified file 'lisp/calendar/parse-time.el' --- lisp/calendar/parse-time.el 2012-01-19 07:21:25 +0000 +++ lisp/calendar/parse-time.el 2012-02-25 10:00:08 +0000 @@ -193,28 +193,29 @@ (predicate (pop rule)) (parse-time-val)) (when (and (not (nth (car slots) time)) ;not already set - (setq parse-time-val (cond ((and (consp predicate) - (not (eq (car predicate) - 'lambda))) - (and (numberp parse-time-elt) - (<= (car predicate) parse-time-elt) - (<= parse-time-elt (cadr predicate)) - parse-time-elt)) - ((symbolp predicate) - (cdr (assoc parse-time-elt - (symbol-value predicate)))) - ((funcall predicate))))) + (setq parse-time-val + (cond ((and (consp predicate) + (not (eq (car predicate) + 'lambda))) + (and (numberp parse-time-elt) + (<= (car predicate) parse-time-elt) + (<= parse-time-elt (cadr predicate)) + parse-time-elt)) + ((symbolp predicate) + (cdr (assoc parse-time-elt + (symbol-value predicate)))) + ((funcall predicate))))) (setq exit t) (while slots - (let ((new-val (and rule - (let ((this (pop rule))) - (if (vectorp this) - (parse-integer - parse-time-elt - (aref this 0) (aref this 1)) - (funcall this)))))) - (rplaca (nthcdr (pop slots) time) - (or new-val parse-time-val))))))))) + (let ((new-val (if rule + (let ((this (pop rule))) + (if (vectorp this) + (parse-integer + parse-time-elt + (aref this 0) (aref this 1)) + (funcall this))) + parse-time-val))) + (rplaca (nthcdr (pop slots) time) new-val)))))))) time)) (provide 'parse-time) ------------------------------------------------------------ revno: 107423 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 17:32:33 +0800 message: Update Backups chapter of Lisp manual. * doc/lispref/backups.texi (Making Backups): Mention default value of backup-directory-alist. (Rename or Copy): Note that backup-by-copying-when-mismatch is t. (Auto-Saving): New minor mode behavior for auto-save-mode. (Reverting): Add defvar for revert-buffer-in-progress-p. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-02-23 08:32:18 +0000 +++ admin/FOR-RELEASE 2012-02-25 09:32:33 +0000 @@ -184,7 +184,7 @@ advice.texi cyd anti.texi back.texi -backups.texi +backups.texi cyd buffers.texi commands.texi cyd compile.texi cyd === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-25 09:07:23 +0000 +++ doc/lispref/ChangeLog 2012-02-25 09:32:33 +0000 @@ -5,7 +5,10 @@ (Changing Files): Document set-file-selinux-context. * backups.texi (Making Backups): Return value of backup-buffer is - changed. + changed. Mention default value of backup-directory-alist. + (Rename or Copy): Note that backup-by-copying-when-mismatch is t. + (Auto-Saving): New minor mode behavior for auto-save-mode. + (Reverting): Add defvar for revert-buffer-in-progress-p. * searching.texi (Regexp Backslash): Add index entry (Bug#10869). === modified file 'doc/lispref/backups.texi' --- doc/lispref/backups.texi 2012-02-25 09:07:23 +0000 +++ doc/lispref/backups.texi 2012-02-25 09:32:33 +0000 @@ -140,8 +140,8 @@ should contain a single element pairing @samp{"."} with the appropriate directory name. -If this variable is @code{nil}, or it fails to match a filename, the -backup is made in the original file's directory. +If this variable is @code{nil} (the default), or it fails to match a +filename, the backup is made in the original file's directory. On MS-DOS filesystems without long names this variable is always ignored. @@ -192,7 +192,7 @@ @defopt backup-by-copying If this variable is non-@code{nil}, Emacs always makes backup files by -copying. +copying. The default is @code{nil}. @end defopt The following three variables, when non-@code{nil}, cause the second @@ -201,7 +201,7 @@ @defopt backup-by-copying-when-linked If this variable is non-@code{nil}, Emacs makes backups by copying for -files with multiple names (hard links). +files with multiple names (hard links). The default is @code{nil}. This variable is significant only if @code{backup-by-copying} is @code{nil}, since copying is always used when that variable is @@ -209,8 +209,9 @@ @end defopt @defopt backup-by-copying-when-mismatch -If this variable is non-@code{nil}, Emacs makes backups by copying in cases -where renaming would change either the owner or the group of the file. +If this variable is non-@code{nil} (the default), Emacs makes backups +by copying in cases where renaming would change either the owner or +the group of the file. The value has no effect when renaming would not alter the owner or group of the file; that is, for files which are owned by the user and @@ -442,10 +443,11 @@ @deffn Command auto-save-mode arg When used interactively without an argument, this command is a toggle -switch: it turns on auto-saving of the current buffer if it is off, and -vice versa. With an argument @var{arg}, the command turns auto-saving -on if the value of @var{arg} is @code{t}, a nonempty list, or a positive -integer. Otherwise, it turns auto-saving off. +switch: it turns on auto-saving of the current buffer if it is off, +and vice versa. When called from Lisp with no argument, it turns +auto-saving on. With an argument @var{arg}, it turns auto-saving on +if the value of @var{arg} is @code{t}, a nonempty list, or a positive +integer; otherwise, it turns auto-saving off. @end deffn @defun auto-save-file-name-p filename @@ -755,3 +757,8 @@ the modified contents---but only if @code{revert-buffer-function} is @code{nil}. @end defvar + +@defvar revert-buffer-in-progress-p +This variable is bound to a non-@code{nil} value by +@code{revert-buffer} while it is working. +@end defvar === modified file 'etc/NEWS' --- etc/NEWS 2012-02-24 19:25:38 +0000 +++ etc/NEWS 2012-02-25 09:32:33 +0000 @@ -302,9 +302,9 @@ +++ *** Emacs preserves the SELinux file context when backing up, and -optionally when copying files. To this end, copy-file has an extra -optional argument, and backup-buffer and friends include the SELinux -context in their return values. +optionally when copying files. To this end, `copy-file' has an extra +optional argument, and the return value of `backup-buffer' now +includes the SELinux context. +++ *** The new functions file-selinux-context and set-file-selinux-context @@ -1019,6 +1019,14 @@ * Incompatible Lisp Changes in Emacs 24.1 ++++ +** The return value of `backup-buffer' has changed. +It is now a list of three elements, where the second element is a list +describing the original file's SELinux context. If Emacs or the +system lacks SELinux cupport, the context list is (nil nil nil nil). +See the "Basic SELinux support" entry under "Changes in Emacs 24.1", +above. + --- ** `char-direction-table' and the associated function `char-direction' were deleted. They were buggy and inferior to the new support of ------------------------------------------------------------ revno: 107422 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 17:07:23 +0800 message: Document SELinux support functions in Lisp manual. * doc/lispref/backups.texi (Making Backups): Return value of backup-buffer is changed. * doc/lispref/files.texi (File Attributes): Document file-selinux-context. (Changing Files): Link to it. (Changing Files): Document set-file-selinux-context. * fileio.c (Ffile_selinux_context, Fset_file_selinux_context): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-02-25 04:03:43 +0000 +++ doc/lispref/ChangeLog 2012-02-25 09:07:23 +0000 @@ -1,5 +1,12 @@ 2012-02-25 Chong Yidong + * files.texi (File Attributes): Document file-selinux-context. + (Changing Files): Link to it. + (Changing Files): Document set-file-selinux-context. + + * backups.texi (Making Backups): Return value of backup-buffer is + changed. + * searching.texi (Regexp Backslash): Add index entry (Bug#10869). 2012-02-24 Glenn Morris === modified file 'doc/lispref/backups.texi' --- doc/lispref/backups.texi 2012-02-04 22:04:12 +0000 +++ doc/lispref/backups.texi 2012-02-25 09:07:23 +0000 @@ -57,12 +57,13 @@ saving the buffer the first time. If a backup was made by renaming, the return value is a cons cell of -the form (@var{modes} . @var{backupname}), where @var{modes} are the -mode bits of the original file, as returned by @code{file-modes} -(@pxref{File Attributes,, Other Information about Files}), and -@var{backupname} is the name of the backup. In all other cases, that -is, if a backup was made by copying or if no backup was made, this -function returns @code{nil}. +the form (@var{modes} @var{context} @var{backupname}), where +@var{modes} are the mode bits of the original file, as returned by +@code{file-modes} (@pxref{File Attributes,, Other Information about +Files}), @var{context} is a list describing the original file's +SELinux context (@pxref{File Attributes}), and @var{backupname} is the +name of the backup. In all other cases, that is, if a backup was made +by copying or if no backup was made, this function returns @code{nil}. @end defun @defvar buffer-backed-up === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2012-02-21 13:24:48 +0000 +++ doc/lispref/files.texi 2012-02-25 09:07:23 +0000 @@ -1129,6 +1129,18 @@ @xref{Changing Files}, for functions that change file permissions, such as @code{set-file-modes}. + +@cindex MS-DOS and file modes +@cindex file modes and MS-DOS +@strong{MS-DOS note:} On MS-DOS, there is no such thing as an +``executable'' file mode bit. So @code{file-modes} considers a file +executable if its name ends in one of the standard executable +extensions, such as @file{.com}, @file{.bat}, @file{.exe}, and some +others. Files that begin with the Unix-standard @samp{#!} signature, +such as shell and Perl scripts, are also considered executable. +Directories are also reported as executable, for compatibility with +Unix. These conventions are also followed by @code{file-attributes}, +below. @end defun If the @var{filename} argument to the next two functions is a @@ -1304,16 +1316,26 @@ @end table @end defun -@cindex MS-DOS and file modes -@cindex file modes and MS-DOS - On MS-DOS, there is no such thing as an ``executable'' file mode bit. -So Emacs considers a file executable if its name ends in one of the -standard executable extensions, such as @file{.com}, @file{.bat}, -@file{.exe}, and some others. Files that begin with the Unix-standard -@samp{#!} signature, such as shell and Perl scripts, are also considered -as executable files. This is reflected in the values returned by -@code{file-modes} and @code{file-attributes}. Directories are also -reported with executable bit set, for compatibility with Unix. +@cindex SELinux context + SELinux is a Linux kernel feature which provides more sophisticated +file access controls than ordinary ``Unix-style'' file permissions. +If Emacs has been compiled with SELinux support on a system with +SELinux enabled, you can use the function @code{file-selinux-context} +to retrieve a file's SELinux security context. For the function +@code{set-file-selinux-context}, see @ref{Changing Files}. + +@defun file-selinux-context filename +This function returns the SELinux security context of the file +@var{filename}. This return value is a list of the form +@code{(@var{user} @var{role} @var{type} @var{range})}, whose elements +are the context's user, role, type, and range respectively, as Lisp +strings. See the SELinux documentation for details about what these +actually mean. + +If the file does not exist or is inaccessible, or if the system does +not support SELinux, or if Emacs was not compiled with SELinux +support, then the return value is @code{(nil nil nil nil)}. +@end defun @node Locating Files @subsection How to Locate Files in Standard Places @@ -1528,15 +1550,9 @@ file. This works only on some operating systems, and only if you have the correct permissions to do so. -@cindex SELinux -If the optional argument @var{preserve-selinux} is non-@code{nil}, we -attempt to copy the SELinux@footnote{@samp{Security-Enhanced Linux} -is a kernel feature that allows for finer access controls to be set on -files, and a system security policy to define who can access what. -The functions @code{file-selinux-context} and @code{set-file-selinux-context} -get and set, respectively, the SELinux properties of a file.} -context of the file. For this to work, Emacs must have been built -with libselinux support. +If the optional argument @var{preserve-selinux} is non-@code{nil}, and +Emacs has been compiled with SELinux support, this function attempts +to copy the file's SELinux context (@pxref{File Attributes}). @end deffn @deffn Command make-symbolic-link filename newname &optional ok-if-exists @@ -1667,6 +1683,16 @@ (@pxref{Time of Day}). @end defun +@defun set-file-selinux-context filename context +This function sets the SELinux security context of the file +@var{filename} to @var{context}. @xref{File Attributes}, for a brief +description of SELinux contexts. The @var{context} argument should be +a list @code{(@var{user} @var{role} @var{type} @var{range})}, like the +return value of @code{file-selinux-context}. The function does +nothing if SELinux is disabled, or if Emacs was compiled without +SELinux support. +@end defun + @node File Names @section File Names @cindex file names === modified file 'src/ChangeLog' --- src/ChangeLog 2012-02-25 03:01:11 +0000 +++ src/ChangeLog 2012-02-25 09:07:23 +0000 @@ -1,5 +1,8 @@ 2012-02-25 Chong Yidong + * fileio.c (Ffile_selinux_context, Fset_file_selinux_context): + Doc fix. + * xselect.c (Fx_selection_exists_p): Doc fix. (x_clipboard_manager_save_all): Print an informative message before saving to clipboard manager. === modified file 'src/fileio.c' --- src/fileio.c 2012-02-21 13:24:48 +0000 +++ src/fileio.c 2012-02-25 09:07:23 +0000 @@ -2798,9 +2798,13 @@ DEFUN ("file-selinux-context", Ffile_selinux_context, Sfile_selinux_context, 1, 1, 0, - doc: /* Return SELinux context of file named FILENAME, -as a list ("user", "role", "type", "range"). Return (nil, nil, nil, nil) -if file does not exist, is not accessible, or SELinux is disabled */) + doc: /* Return SELinux context of file named FILENAME. +The return value is a list (USER ROLE TYPE RANGE), where the list +elements are strings naming the user, role, type, and range of the +file's SELinux security context. + +Return (nil nil nil nil) if the file is nonexistent or inaccessible, +or if SELinux is disabled, or if Emacs lacks SELinux support. */) (Lisp_Object filename) { Lisp_Object absname; @@ -2853,9 +2857,12 @@ DEFUN ("set-file-selinux-context", Fset_file_selinux_context, Sset_file_selinux_context, 2, 2, 0, - doc: /* Set SELinux context of file named FILENAME to CONTEXT -as a list ("user", "role", "type", "range"). Has no effect if SELinux -is disabled. */) + doc: /* Set SELinux context of file named FILENAME to CONTEXT. +CONTEXT should be a list (USER ROLE TYPE RANGE), where the list +elements are strings naming the components of a SELinux context. + +This function does nothing if SELinux is disabled, or if Emacs was not +compiled with SELinux support. */) (Lisp_Object filename, Lisp_Object context) { Lisp_Object absname; ------------------------------------------------------------ revno: 107421 committer: Michael Albinus branch nick: trunk timestamp: Sat 2012-02-25 09:51:32 +0100 message: * net/tramp.el (tramp-file-name-for-operation): Add `files-equal-p' and `file-subdir-of-p'. * net/tramp-sh.el (tramp-sh-handle-copy-directory): * net/tramp-smb.el (tramp-smb-handle-copy-directory): Add COPY-CONTENTS argument. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 04:29:09 +0000 +++ lisp/ChangeLog 2012-02-25 08:51:32 +0000 @@ -1,3 +1,12 @@ +2012-02-25 Michael Albinus + + * net/tramp.el (tramp-file-name-for-operation): Add + `files-equal-p' and `file-subdir-of-p'. + + * net/tramp-sh.el (tramp-sh-handle-copy-directory): + * net/tramp-smb.el (tramp-smb-handle-copy-directory): Add + COPY-CONTENTS argument. + 2012-02-25 Chong Yidong Add custom groups for VC backends, for consistency with vc-bzr. === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2012-01-22 12:55:36 +0000 +++ lisp/net/tramp-sh.el 2012-02-25 08:51:32 +0000 @@ -1909,7 +1909,7 @@ 'copy-file (list filename newname ok-if-already-exists keep-date))))) (defun tramp-sh-handle-copy-directory - (dirname newname &optional keep-date parents) + (dirname newname &optional keep-date parents copy-contents) "Like `copy-directory' for Tramp files." (let ((t1 (tramp-tramp-file-p dirname)) (t2 (tramp-tramp-file-p newname))) === modified file 'lisp/net/tramp-smb.el' --- lisp/net/tramp-smb.el 2012-01-19 07:21:25 +0000 +++ lisp/net/tramp-smb.el 2012-02-25 08:51:32 +0000 @@ -288,7 +288,7 @@ (buffer-name)))))) (defun tramp-smb-handle-copy-directory - (dirname newname &optional keep-date parents) + (dirname newname &optional keep-date parents copy-contents) "Like `copy-directory' for Tramp files. KEEP-DATE is not handled." (setq dirname (expand-file-name dirname) newname (expand-file-name newname)) === modified file 'lisp/net/tramp.el' --- lisp/net/tramp.el 2012-02-11 22:13:29 +0000 +++ lisp/net/tramp.el 2012-02-25 08:51:32 +0000 @@ -1809,6 +1809,8 @@ 'file-newer-than-file-p 'make-symbolic-link 'rename-file ;; Emacs 23+ only. 'copy-directory + ;; Emacs 24+ only. + 'files-equal-p 'file-subdir-of-p ;; XEmacs only. 'dired-make-relative-symlink 'vm-imap-move-mail 'vm-pop-move-mail 'vm-spool-move-mail)) ------------------------------------------------------------ revno: 107420 fixes bug(s): http://debbugs.gnu.org/10871 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-02-25 12:29:09 +0800 message: Add custom groups for VC backends, for consistency with vc-bzr. Callers changed. * vc/vc-arch.el (vc-arch): * vc/vc-cvs.el (vc-cvs): * vc/vc-git.el (vc-git): * vc/vc-hg.el (vc-hg): * vc/vc-mtn.el (vc-mtn): * vc/vc-rcs.el (vc-rcs): * vc/vc-sccs.el (vc-sccs): * vc/vc-svn.el (vc-svn): New customization group. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-02-25 03:08:39 +0000 +++ lisp/ChangeLog 2012-02-25 04:29:09 +0000 @@ -1,5 +1,19 @@ 2012-02-25 Chong Yidong + Add custom groups for VC backends, for consistency with vc-bzr. + + * vc/vc-arch.el (vc-arch): + * vc/vc-cvs.el (vc-cvs): + * vc/vc-git.el (vc-git): + * vc/vc-hg.el (vc-hg): + * vc/vc-mtn.el (vc-mtn): + * vc/vc-rcs.el (vc-rcs): + * vc/vc-sccs.el (vc-sccs): + * vc/vc-svn.el (vc-svn): New customization group (Bug#10871). + All relevant defcustoms reassigned. + +2012-02-25 Chong Yidong + * newcomment.el (comment-styles): Add autoload (Bug#10868). * term/x-win.el (x-initialize-window-system): Reduce default for === modified file 'lisp/vc/vc-arch.el' --- lisp/vc/vc-arch.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-arch.el 2012-02-25 04:29:09 +0000 @@ -65,6 +65,11 @@ ;;; Customization options ;;; +(defgroup vc-arch nil + "VC Arch backend." + :version "24.1" + :group 'vc) + ;; It seems Arch diff does not accept many options, so this is not ;; very useful. It exists mainly so that the VC backends are all ;; consistent with regards to their treatment of diff switches. @@ -76,7 +81,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-arch) (define-obsolete-variable-alias 'vc-arch-command 'vc-arch-program "23.1") @@ -87,7 +92,7 @@ (or (car candidates) "tla")) "Name of the Arch executable." :type 'string - :group 'vc) + :group 'vc-arch) ;; Clear up the cache to force vc-call to check again and discover ;; new functions when we reload this file. @@ -377,7 +382,7 @@ '(("\\`.*--\\(.*--.*\\)--\\(v?\\).*-\\([0-9]+\\)\\'" . "\\2\\3[\\1]")) "Rewrite rules to shorten Arch's revision names on the mode-line." :type '(repeat (cons regexp string)) - :group 'vc) + :group 'vc-arch) (defun vc-arch-mode-line-string (file) "Return string for placement in modeline by `vc-mode-line' for FILE." === modified file 'lisp/vc/vc-bzr.el' --- lisp/vc/vc-bzr.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-bzr.el 2012-02-25 04:29:09 +0000 @@ -56,7 +56,7 @@ (put 'Bzr 'vc-functions nil) (defgroup vc-bzr nil - "VC bzr backend." + "VC Bazaar (bzr) backend." :version "22.2" :group 'vc) === modified file 'lisp/vc/vc-cvs.el' --- lisp/vc/vc-cvs.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-cvs.el 2012-02-25 04:29:09 +0000 @@ -59,6 +59,11 @@ ;;; Customization options ;;; +(defgroup vc-cvs nil + "VC CVS backend." + :version "24.1" + :group 'vc) + (defcustom vc-cvs-global-switches nil "Global switches to pass to any CVS command." :type '(choice (const :tag "None" nil) @@ -67,7 +72,7 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-register-switches nil "Switches for registering a file into CVS. @@ -79,7 +84,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-diff-switches nil "String or list of strings specifying switches for CVS diff under VC. @@ -89,13 +94,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :version "24.1" ; no longer consult the obsolete vc-header-alist :type '(repeat string) - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-use-edit t "Non-nil means to use `cvs edit' to \"check out\" a file. @@ -103,7 +108,7 @@ \(i.e. if you have $CVSREAD set)." :type 'boolean :version "21.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-stay-local 'only-file "Non-nil means use local operations when possible for remote repositories. @@ -131,7 +136,7 @@ :tag "if it matches") (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) :version "23.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-sticky-date-format-string "%c" "Format string for mode-line display of sticky date. @@ -139,7 +144,7 @@ `vc-cvs-sticky-tag-display' is t." :type '(string) :version "22.1" - :group 'vc) + :group 'vc-cvs) (defcustom vc-cvs-sticky-tag-display t "Specify the mode-line display of sticky tags. @@ -178,7 +183,7 @@ See also variable `vc-cvs-sticky-date-format-string'." :type '(choice boolean function) :version "22.1" - :group 'vc) + :group 'vc-cvs) ;;; ;;; Internal variables === modified file 'lisp/vc/vc-git.el' --- lisp/vc/vc-git.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-git.el 2012-02-25 04:29:09 +0000 @@ -109,6 +109,11 @@ (require 'vc-dir) (require 'grep)) +(defgroup vc-git nil + "VC Git backend." + :version "24.1" + :group 'vc) + (defcustom vc-git-diff-switches t "String or list of strings specifying switches for Git diff under VC. If nil, use the value of `vc-diff-switches'. If t, use no switches." @@ -117,13 +122,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-git) (defcustom vc-git-program "git" "Name of the Git executable (excluding any arguments)." :version "24.1" :type 'string - :group 'vc) + :group 'vc-git) (defcustom vc-git-root-log-format '("%d%h..: %an %ad %s" @@ -143,7 +148,7 @@ matching the resulting Git log output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) - :group 'vc + :group 'vc-git :version "24.1") (defvar vc-git-commits-coding-system 'utf-8 === modified file 'lisp/vc/vc-hg.el' --- lisp/vc/vc-hg.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-hg.el 2012-02-25 04:29:09 +0000 @@ -116,13 +116,18 @@ ;;; Customization options +(defgroup vc-hg nil + "VC Mercurial (hg) backend." + :version "24.1" + :group 'vc) + (defcustom vc-hg-global-switches nil "Global switches to pass to any Hg command." :type '(choice (const :tag "None" nil) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "22.2" - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-diff-switches t ; Hg doesn't support common args like -u "String or list of strings specifying switches for Hg diff under VC. @@ -132,12 +137,12 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-program "hg" "Name of the Mercurial executable (excluding any arguments)." :type 'string - :group 'vc) + :group 'vc-hg) (defcustom vc-hg-root-log-format '("{rev}:{tags}: {author|person} {date|shortdate} {desc|firstline}\\n" @@ -153,7 +158,7 @@ output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) - :group 'vc + :group 'vc-hg :version "24.1") === modified file 'lisp/vc/vc-mtn.el' --- lisp/vc/vc-mtn.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-mtn.el 2012-02-25 04:29:09 +0000 @@ -34,6 +34,11 @@ (eval-when-compile (require 'cl) (require 'vc)) +(defgroup vc-mtn nil + "VC Monotone (mtn) backend." + :version "24.1" + :group 'vc) + (defcustom vc-mtn-diff-switches t "String or list of strings specifying switches for monotone diff under VC. If nil, use the value of `vc-diff-switches'. If t, use no switches." @@ -42,13 +47,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "23.1" - :group 'vc) + :group 'vc-mtn) (define-obsolete-variable-alias 'vc-mtn-command 'vc-mtn-program "23.1") (defcustom vc-mtn-program "mtn" "Name of the monotone executable." :type 'string - :group 'vc) + :group 'vc-mtn) ;; Clear up the cache to force vc-call to check again and discover ;; new functions when we reload this file. @@ -153,7 +158,7 @@ "Rewrite rules to shorten Mtn's revision names on the mode-line." :type '(repeat (cons regexp string)) :version "22.2" - :group 'vc) + :group 'vc-mtn) (defun vc-mtn-mode-line-string (file) "Return string for placement in modeline by `vc-mode-line' for FILE." === modified file 'lisp/vc/vc-rcs.el' --- lisp/vc/vc-rcs.el 2012-01-24 08:22:50 +0000 +++ lisp/vc/vc-rcs.el 2012-02-25 04:29:09 +0000 @@ -41,13 +41,18 @@ (require 'cl) (require 'vc)) +(defgroup vc-rcs nil + "VC RCS backend." + :version "24.1" + :group 'vc) + (defcustom vc-rcs-release nil "The release number of your RCS installation, as a string. If nil, VC itself computes this value when it is first needed." :type '(choice (const :tag "Auto" nil) (string :tag "Specified") (const :tag "Unknown" unknown)) - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-register-switches nil "Switches for registering a file in RCS. @@ -59,7 +64,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-diff-switches nil "String or list of strings specifying switches for RCS diff under VC. @@ -69,20 +74,20 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcs-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :type '(repeat string) :version "24.1" ; no longer consult the obsolete vc-header-alist - :group 'vc) + :group 'vc-rcs) (defcustom vc-rcsdiff-knows-brief nil "Indicates whether rcsdiff understands the --brief option. The value is either `yes', `no', or nil. If it is nil, VC tries to use --brief and sets this variable to remember whether it worked." :type '(choice (const :tag "Work out" nil) (const yes) (const no)) - :group 'vc) + :group 'vc-rcs) ;;;###autoload (defcustom vc-rcs-master-templates @@ -95,7 +100,7 @@ (choice string function))) :version "21.1" - :group 'vc) + :group 'vc-rcs) ;;; Properties of the backend === modified file 'lisp/vc/vc-sccs.el' --- lisp/vc/vc-sccs.el 2012-01-24 08:22:50 +0000 +++ lisp/vc/vc-sccs.el 2012-02-25 04:29:09 +0000 @@ -47,6 +47,11 @@ ;; :type '(repeat directory) ;; :group 'vc) +(defgroup vc-sccs nil + "VC SCCS backend." + :version "24.1" + :group 'vc) + (defcustom vc-sccs-register-switches nil "Switches for registering a file in SCCS. A string or list of strings passed to the checkin program by @@ -57,7 +62,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-sccs) (defcustom vc-sccs-diff-switches nil "String or list of strings specifying switches for SCCS diff under VC. @@ -67,13 +72,13 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "21.1" - :group 'vc) + :group 'vc-sccs) (defcustom vc-sccs-header '("%W%") "Header keywords to be inserted by `vc-insert-headers'." :type '(repeat string) :version "24.1" ; no longer consult the obsolete vc-header-alist - :group 'vc) + :group 'vc-sccs) ;;;###autoload (defcustom vc-sccs-master-templates @@ -86,7 +91,7 @@ (choice string function))) :version "21.1" - :group 'vc) + :group 'vc-sccs) ;;; === modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2012-01-19 07:21:25 +0000 +++ lisp/vc/vc-svn.el 2012-02-25 04:29:09 +0000 @@ -39,11 +39,16 @@ ;;; Customization options ;;; +(defgroup vc-svn nil + "VC Subversion (svn) backend." + :version "24.1" + :group 'vc) + ;; FIXME there is also svnadmin. (defcustom vc-svn-program "svn" "Name of the SVN executable." :type 'string - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-global-switches nil "Global switches to pass to any SVN command." @@ -53,7 +58,7 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-register-switches nil "Switches for registering a file into SVN. @@ -65,7 +70,7 @@ (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-diff-switches t ;`svn' doesn't support common args like -c or -b. @@ -81,13 +86,13 @@ :value ("") string)) :version "22.1" - :group 'vc) + :group 'vc-svn) (defcustom vc-svn-header '("\$Id\$") "Header keywords to be inserted by `vc-insert-headers'." :version "24.1" ; no longer consult the obsolete vc-header-alist :type '(repeat string) - :group 'vc) + :group 'vc-svn) ;; We want to autoload it for use by the autoloaded version of ;; vc-svn-registered, but we want the value to be compiled at startup, not