------------------------------------------------------------ revno: 115608 committer: Jan Djärv branch nick: trunk timestamp: Thu 2013-12-19 09:40:11 +0100 message: Redo size constraint for NS so frames can span screens. * nsterm.h (ns_output): Remove dont_constrain. * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros. (ns_constrain_all_frames, x_set_offset): Remove assignment to dont_constrain. (updateFrameSize:, windowWillResize:toSize:): Add trace. (constrainFrameRect): Remove special case nr_screens == 1. Don't constrain size to size of view. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-19 07:38:08 +0000 +++ src/ChangeLog 2013-12-19 08:40:11 +0000 @@ -1,5 +1,16 @@ 2013-12-19 Anders Lindgren + * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros. + (ns_constrain_all_frames, x_set_offset): Remove assignment to + dont_constrain. + (updateFrameSize:, windowWillResize:toSize:): Add trace. + (constrainFrameRect): Remove special case nr_screens == 1. + Don't constrain size to size of view. + + * nsterm.h (ns_output): Remove dont_constrain. + +2013-12-19 Anders Lindgren + * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT. 2013-12-18 Paul Eggert === modified file 'src/nsterm.h' --- src/nsterm.h 2013-12-07 16:48:12 +0000 +++ src/nsterm.h 2013-12-19 08:40:11 +0000 @@ -687,9 +687,6 @@ /* This is the Emacs structure for the NS display this frame is on. */ struct ns_display_info *display_info; - /* Non-zero if we want to constrain the frame to the screen. */ - int dont_constrain; - /* Non-zero if we are zooming (maximizing) the frame. */ int zooming; }; === modified file 'src/nsterm.m' --- src/nsterm.m 2013-12-19 07:38:08 +0000 +++ src/nsterm.m 2013-12-19 08:40:11 +0000 @@ -79,6 +79,28 @@ #define NSTRACE(x) #endif +/* Detailed tracing. "S" means "size" and "LL" stands for "lower left". */ +#if 1 +int term_trace_num = 0; +#define NSTRACE_SIZE(str,size) fprintf (stderr, \ + "%s:%d: [%d] " str \ + " (S:%.0f x %.0f)\n", \ + __FILE__, __LINE__, ++term_trace_num,\ + size.height, \ + size.width) +#define NSTRACE_RECT(s,r) fprintf (stderr, \ + "%s:%d: [%d] " s \ + " (LL:%.0f x %.0f -> S:%.0f x %.0f)\n", \ + __FILE__, __LINE__, ++term_trace_num,\ + r.origin.x, \ + r.origin.y, \ + r.size.height, \ + r.size.width) +#else +#define NSTRACE_SIZE(str,size) +#define NSTRACE_RECT(s,r) +#endif + extern NSString *NSMenuDidBeginTrackingNotification; /* ========================================================================== @@ -605,7 +627,6 @@ NSView *view = FRAME_NS_VIEW (f); /* This no-op will trigger the default window placing * constraint system. */ - f->output_data.ns->dont_constrain = 0; [[view window] setFrameOrigin:[[view window] frame].origin]; } } @@ -1225,7 +1246,6 @@ #endif /* Constrain the setFrameTopLeftPoint so we don't move behind the menu bar. */ - f->output_data.ns->dont_constrain = 0; [[view window] setFrameTopLeftPoint: NSMakePoint (SCREENMAXBOUND (f->left_pos), SCREENMAXBOUND ([fscreen frame].size.height @@ -5684,10 +5704,13 @@ NSRect wr = [window frame]; int extra = 0; int oldc = cols, oldr = rows; - int oldw = FRAME_PIXEL_WIDTH (emacsframe), - oldh = FRAME_PIXEL_HEIGHT (emacsframe); + int oldw = FRAME_PIXEL_WIDTH (emacsframe); + int oldh = FRAME_PIXEL_HEIGHT (emacsframe); int neww, newh; + NSTRACE (updateFrameSize); + NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); + if (! [self isFullscreen]) { #ifdef NS_IMPL_GNUSTEP @@ -5731,6 +5754,8 @@ sz.width = FRAME_COLUMN_WIDTH (emacsframe); sz.height = FRAME_LINE_HEIGHT (emacsframe); [win setResizeIncrements: sz]; + + NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); } [view setFrame: NSMakeRect (0, 0, neww, newh)]; @@ -5744,6 +5769,7 @@ int extra = 0; NSTRACE (windowWillResize); + NSTRACE_SIZE ("Original size", frameSize); /*fprintf (stderr,"Window will resize: %.0f x %.0f\n",frameSize.width,frameSize.height); */ if (fs_state == FULLSCREEN_MAXIMIZED @@ -6903,19 +6929,39 @@ NSUInteger nr_screens = [[NSScreen screens] count]; struct frame *f = ((EmacsView *)[self delegate])->emacsframe; NSTRACE (constrainFrameRect); - - if (nr_screens == 1) - { - NSRect r = [super constrainFrameRect:frameRect toScreen:screen]; - return r; - } - - if (f->output_data.ns->dont_constrain - || ns_menu_bar_should_be_hidden ()) + NSTRACE_RECT ("input", frameRect); + + if (ns_menu_bar_should_be_hidden ()) return frameRect; - f->output_data.ns->dont_constrain = 1; - return [super constrainFrameRect:frameRect toScreen:screen]; + /* The default implementation does two things 1) ensure that the top + of the rectangle is below the menu bar (or below the top of the + screen) and 2) resizes windows larger than the screen. As we + don't want the latter, a smaller rectangle is used. */ +#define FAKE_HEIGHT 64 + float old_top = frameRect.origin.y + frameRect.size.height; + NSRect r; + r.size.height = FAKE_HEIGHT; + r.size.width = frameRect.size.width; + r.origin.x = frameRect.origin.x; + r.origin.y = old_top - FAKE_HEIGHT; + + NSTRACE_RECT ("input to super", r); + + r = [super constrainFrameRect:r toScreen:screen]; + + NSTRACE_RECT ("output from super", r); + + float new_top = r.origin.y + FAKE_HEIGHT; + if (new_top < old_top) + { + frameRect.origin.y = new_top - frameRect.size.height; + } + + NSTRACE_RECT ("output", frameRect); + + return frameRect; +#undef FAKE_HEIGHT } @end /* EmacsWindow */ ------------------------------------------------------------ revno: 115607 fixes bug: http://debbugs.gnu.org/16121 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-12-19 00:14:37 -0800 message: * lisp/emacs-lisp/ert.el (ert-select-tests): Fix string/symbol mixup. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-19 05:06:24 +0000 +++ lisp/ChangeLog 2013-12-19 08:14:37 +0000 @@ -1,3 +1,8 @@ +2013-12-19 Glenn Morris + + * emacs-lisp/ert.el (ert-select-tests): + Fix string/symbol mixup. (Bug#16121) + 2013-12-19 Dmitry Gutov * progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block === modified file 'lisp/emacs-lisp/ert.el' --- lisp/emacs-lisp/ert.el 2013-11-05 07:44:14 +0000 +++ lisp/emacs-lisp/ert.el 2013-12-19 08:14:37 +0000 @@ -999,7 +999,8 @@ (list (cl-remove-if-not (lambda (test) (and (ert-test-name test) (string-match selector - (ert-test-name test)))) + (symbol-name + (ert-test-name test))))) universe)))) (ert-test (list selector)) (symbol ------------------------------------------------------------ revno: 115606 committer: Jan Djärv branch nick: trunk timestamp: Thu 2013-12-19 08:38:08 +0100 message: Generate HORIZ_WHEEL_EVENT. * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-18 20:36:50 +0000 +++ src/ChangeLog 2013-12-19 07:38:08 +0000 @@ -1,3 +1,7 @@ +2013-12-19 Anders Lindgren + + * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT. + 2013-12-18 Paul Eggert Minor fixes for recent openp changes. === modified file 'src/nsterm.m' --- src/nsterm.m 2013-12-11 15:06:04 +0000 +++ src/nsterm.m 2013-12-19 07:38:08 +0000 @@ -5498,8 +5498,18 @@ CGFloat delta = [theEvent deltaY]; /* Mac notebooks send wheel events w/delta =0 when trackpad scrolling */ if (delta == 0) - return; - emacs_event->kind = WHEEL_EVENT; + { + delta = [theEvent deltaX]; + if (delta == 0) + { + NSTRACE (deltaIsZero); + return; + } + emacs_event->kind = HORIZ_WHEEL_EVENT; + } + else + emacs_event->kind = WHEEL_EVENT; + emacs_event->code = 0; emacs_event->modifiers = EV_MODIFIERS (theEvent) | ((delta > 0) ? up_modifier : down_modifier); ------------------------------------------------------------ revno: 115605 committer: Dmitry Gutov branch nick: trunk timestamp: Thu 2013-12-19 07:06:24 +0200 message: * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block keywords to their parent. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-19 04:21:44 +0000 +++ lisp/ChangeLog 2013-12-19 05:06:24 +0000 @@ -1,5 +1,10 @@ 2013-12-19 Dmitry Gutov + * progmodes/ruby-mode.el (ruby-smie-rules): Indent middle-of-block + keywords to their parent. + +2013-12-19 Dmitry Gutov + * progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the first arg to be a string (fixed dead code), or an operator symbol. (ruby-smie--forward-token): Tokenize ` @ ' before strings and === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-12-19 04:21:44 +0000 +++ lisp/progmodes/ruby-mode.el 2013-12-19 05:06:24 +0000 @@ -569,8 +569,9 @@ (cons 'column (current-column))))) (`(:before . "do") (ruby-smie--indent-to-stmt)) (`(:before . ".") ruby-indent-level) - (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) 0) - (`(:before . ,(or `"when")) + (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) + (smie-rule-parent)) + (`(:before . "when") (if (not (smie-rule-sibling-p)) 0)) ;; ruby-indent-level (`(:after . ,(or "=" "iuwu-mod" "+" "-" "*" "/" "&&" "||" "%" "**" "^" "&" "<=>" ">" "<" ">=" "<=" "==" "===" "!=" "<<" ">>" === modified file 'test/indent/ruby.rb' --- test/indent/ruby.rb 2013-12-19 04:21:44 +0000 +++ test/indent/ruby.rb 2013-12-19 05:06:24 +0000 @@ -272,6 +272,8 @@ # http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation tee = if foo bar + else + tee end a = b { @@ -328,6 +330,8 @@ foo ||= begin bar tee + rescue + oomph end end ------------------------------------------------------------ revno: 115604 committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2013-12-19 04:48:52 +0000 message: lisp/gnus/ChangeLog: Fix timestamp of last commit diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-19 04:41:35 +0000 +++ lisp/gnus/ChangeLog 2013-12-19 04:48:52 +0000 @@ -1,4 +1,4 @@ -2013-12-18 Katsumi Yamaoka +2013-12-19 Katsumi Yamaoka * gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view): Make sure work directory exists. ------------------------------------------------------------ revno: 115603 committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2013-12-19 04:41:35 +0000 message: lisp/gnus/gnus-uu.el: Fix temporary files deletion bug diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-18 22:11:40 +0000 +++ lisp/gnus/ChangeLog 2013-12-19 04:41:35 +0000 @@ -1,3 +1,12 @@ +2013-12-18 Katsumi Yamaoka + + * gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view): + Make sure work directory exists. + (gnus-uu-digest-mail-forward): Store temporary files in work directory + rather than tmp directory. + (gnus-summary-prepare-exit-hook): Replace gnus-exit-group-hook, that is + not necessarily always run, with it. + 2013-12-18 Jan Tatarik * gnus-icalendar.el (gnus-icalendar-identities): Make changing the === modified file 'lisp/gnus/gnus-uu.el' --- lisp/gnus/gnus-uu.el 2013-08-01 22:58:40 +0000 +++ lisp/gnus/gnus-uu.el 2013-12-19 04:41:35 +0000 @@ -406,6 +406,7 @@ (read-directory-name "Unbinhex and save in dir: " gnus-uu-default-dir gnus-uu-default-dir)))) + (gnus-uu-initialize) (setq gnus-uu-binhex-article-name (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir))) (gnus-uu-decode-with-method 'gnus-uu-binhex-article n dir)) @@ -471,6 +472,7 @@ (list current-prefix-arg (read-file-name "Unbinhex, view and save in dir: " gnus-uu-default-dir gnus-uu-default-dir))) + (gnus-uu-initialize) (setq gnus-uu-binhex-article-name (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir))) (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic))) @@ -482,8 +484,9 @@ (defun gnus-uu-digest-mail-forward (&optional n post) "Digests and forwards all articles in this series." (interactive "P") + (gnus-uu-initialize) (let ((gnus-uu-save-in-digest t) - (file (mm-make-temp-file (nnheader-concat gnus-uu-tmp-dir "forward"))) + (file (mm-make-temp-file (nnheader-concat gnus-uu-work-dir "forward"))) (message-forward-as-mime message-forward-as-mime) (mail-parse-charset gnus-newsgroup-charset) (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets) @@ -1836,8 +1839,8 @@ ;; Initializing -(add-hook 'gnus-exit-group-hook 'gnus-uu-clean-up) -(add-hook 'gnus-exit-group-hook 'gnus-uu-delete-work-dir) +(add-hook 'gnus-summary-prepare-exit-hook 'gnus-uu-clean-up) +(add-hook 'gnus-summary-prepare-exit-hook 'gnus-uu-delete-work-dir) ------------------------------------------------------------ revno: 115602 fixes bug: http://debbugs.gnu.org/16182 committer: Dmitry Gutov branch nick: trunk timestamp: Thu 2013-12-19 06:21:44 +0200 message: * lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the first arg to be a string (fixed dead code), or an operator symbol. (ruby-smie--forward-token): Tokenize ` @ ' before strings and operator symbols. (ruby-smie-rules): Remove parent token check in the `.' clause, it did nothing. Don't respond to `(:after ".")', it will be called with :before anyway. Remove the ` @ ' rule, it didn't seem to change anything. Only return indentation for binary operators when they are hanging. De-dent opening paren when its parent is `.', otherwise it looks bad when the dot is not at bol or eol. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-19 00:29:41 +0000 +++ lisp/ChangeLog 2013-12-19 04:21:44 +0000 @@ -1,3 +1,17 @@ +2013-12-19 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the + first arg to be a string (fixed dead code), or an operator symbol. + (ruby-smie--forward-token): Tokenize ` @ ' before strings and + operator symbols. + (ruby-smie-rules): Remove parent token check in the `.' clause, it + did nothing. Don't respond to `(:after ".")', it will be called + with :before anyway. Remove the ` @ ' rule, it didn't seem to + change anything. Only return indentation for binary operators + when they are hanging. De-dent opening paren when its parent is + `.', otherwise it looks bad when the dot is not at bol or eol + (bug#16182). + 2013-12-19 Juri Linkov * replace.el (query-replace-read-args): Split a non-negative arg === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-12-17 12:04:23 +0000 +++ lisp/progmodes/ruby-mode.el 2013-12-19 04:21:44 +0000 @@ -411,8 +411,8 @@ (not (looking-at (regexp-opt '("unless" "if" "while" "until" "or" "else" "elsif" "do" "end" "and") 'symbols)))) - (memq (syntax-after pos) '(7 15)) - (looking-at "[([]\\|[-+!~:]\\sw"))))) + (memq (car (syntax-after pos)) '(7 15)) + (looking-at "[([]\\|[-+!~]\\sw\\|:\\(?:\\sw\\|\\s.\\)"))))) (defun ruby-smie--at-dot-call () (and (eq ?w (char-syntax (following-char))) @@ -423,12 +423,10 @@ (let ((pos (point))) (skip-chars-forward " \t") (cond - ((looking-at "\\s\"") ;A heredoc or a string. - (if (not (looking-at "\n")) - "" - ;; Tokenize the whole heredoc as semicolon. - (goto-char (scan-sexps (point) 1)) - ";")) + ((and (looking-at "\n") (looking-at "\\s\"")) ;A heredoc. + ;; Tokenize the whole heredoc as semicolon. + (goto-char (scan-sexps (point) 1)) + ";") ((and (looking-at "[\n#]") (ruby-smie--implicit-semi-p)) ;Only add implicit ; when needed. (if (eolp) (forward-char 1) (forward-comment 1)) @@ -436,12 +434,13 @@ (t (forward-comment (point-max)) (cond - ((looking-at ":\\s.+") - (goto-char (match-end 0)) (match-string 0)) ;; bug#15208. ((and (< pos (point)) (save-excursion (ruby-smie--args-separator-p (prog1 (point) (goto-char pos))))) " @ ") + ((looking-at ":\\s.+") + (goto-char (match-end 0)) (match-string 0)) ;bug#15208. + ((looking-at "\\s\"") "") ;A string. (t (let ((dot (ruby-smie--at-dot-call)) (tok (smie-default-forward-token))) @@ -549,11 +548,15 @@ (ruby-smie--indent-to-stmt)) ((smie-rule-hanging-p) ;; Treat purely syntactic block-constructs as being part of their parent, - ;; when the opening token is hanging and the parent is not an open-paren. - (let ((state (smie-backward-sexp 'halfsexp))) - (unless (and (eq t (car state)) - (not (eq (cadr state) (point-min)))) - (cons 'column (smie-indent-virtual))))))) + ;; when the opening token is hanging and the parent is not an + ;; open-paren. + (cond + ((eq (car (smie-indent--parent)) t) nil) + ;; When after `.', let's always de-indent, + ;; because when `.' is inside the line, the + ;; additional indentation from it looks out of place. + ((smie-rule-parent-p ".") (smie-rule-parent (- ruby-indent-level))) + (t (smie-rule-parent)))))) (`(:after . ,(or `"(" "[" "{")) ;; FIXME: Shouldn't this be the default behavior of ;; `smie-indent-after-keyword'? @@ -564,11 +567,8 @@ ;; because we want to reject hanging tokens at bol, too. (unless (or (eolp) (forward-comment 1)) (cons 'column (current-column))))) - (`(:after . " @ ") (smie-rule-parent)) (`(:before . "do") (ruby-smie--indent-to-stmt)) - (`(,(or :before :after) . ".") - (unless (smie-rule-parent-p ".") - (smie-rule-parent ruby-indent-level))) + (`(:before . ".") ruby-indent-level) (`(:before . ,(or `"else" `"then" `"elsif" `"rescue" `"ensure")) 0) (`(:before . ,(or `"when")) (if (not (smie-rule-sibling-p)) 0)) ;; ruby-indent-level @@ -576,7 +576,9 @@ "<=>" ">" "<" ">=" "<=" "==" "===" "!=" "<<" ">>" "+=" "-=" "*=" "/=" "%=" "**=" "&=" "|=" "^=" "|" "<<=" ">>=" "&&=" "||=" "and" "or")) - (if (smie-rule-parent-p ";" nil) ruby-indent-level)) + (and (smie-rule-parent-p ";" nil) + (smie-indent--hanging-p) + ruby-indent-level)) (`(:after . ,(or "?" ":")) ruby-indent-level) (`(:before . "begin") (unless (save-excursion (skip-chars-backward " \t") (bolp)) === modified file 'test/indent/ruby.rb' --- test/indent/ruby.rb 2013-12-17 12:04:23 +0000 +++ test/indent/ruby.rb 2013-12-19 04:21:44 +0000 @@ -51,12 +51,12 @@ }) bar = foo( - a, [ - 1, - ], - :qux => [ - 3 - ]) + a, [ + 1, + ], + :qux => [ + 3 + ]) foo( [ @@ -219,6 +219,9 @@ c, :d => :e, f: g +desc "abc", + defg + it "is a method call with block" do |asd| foo end @@ -334,3 +337,11 @@ qux = foo ? bar : tee + +zoo.keep.bar!( + {x: y, + z: t}) + +zoo + .lose( + q, p) ------------------------------------------------------------ revno: 115601 fixes bug: http://debbugs.gnu.org/14979 committer: Juri Linkov branch nick: trunk timestamp: Thu 2013-12-19 02:29:41 +0200 message: query-replace backward * lisp/replace.el (query-replace-read-args): Split a non-negative arg and a negative arg into separate elements. (query-replace, query-replace-regexp, replace-string) (replace-regexp): Add arg `backward'. Doc fix. (replace-match-maybe-edit): When new arg `backward' is non-nil, move point to the beginning of the match. (replace-search, replace-highlight): Use new arg `backward' to set the value of `isearch-forward'. (perform-replace): Add arg `backward' and use it to perform replacement backward. * lisp/isearch.el (isearch-query-replace): Use a negative prefix arg to call `perform-replace' with a non-nil arg `backward'. diff: === modified file 'etc/NEWS' --- etc/NEWS 2013-12-18 03:21:48 +0000 +++ etc/NEWS 2013-12-19 00:29:41 +0000 @@ -507,6 +507,10 @@ *** `query-replace' skips invisible text when `search-invisible' is nil, and opens overlays with hidden text when `search-invisible' is `open'. +*** A negative prefix arg of replacement commands replaces backward. +`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp +backward, `M-s w words M-- M-%' replaces a sequence of words backward. + +++ *** By default, prefix arguments do not now terminate Isearch mode. Set `isearch-allow-prefix' to nil to restore old behavior. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 23:51:45 +0000 +++ lisp/ChangeLog 2013-12-19 00:29:41 +0000 @@ -1,3 +1,19 @@ +2013-12-19 Juri Linkov + + * replace.el (query-replace-read-args): Split a non-negative arg + and a negative arg into separate elements. + (query-replace, query-replace-regexp, replace-string) + (replace-regexp): Add arg `backward'. Doc fix. + (replace-match-maybe-edit): When new arg `backward' is non-nil, + move point to the beginning of the match. + (replace-search, replace-highlight): Use new arg `backward' + to set the value of `isearch-forward'. + (perform-replace): Add arg `backward' and use it to perform + replacement backward. (Bug#14979) + + * isearch.el (isearch-query-replace): Use a negative prefix arg + to call `perform-replace' with a non-nil arg `backward'. + 2013-12-18 Juri Linkov * vc/log-edit.el (log-edit-hook): Add `log-edit-insert-message-template' === modified file 'lisp/isearch.el' --- lisp/isearch.el 2013-12-16 20:32:15 +0000 +++ lisp/isearch.el 2013-12-19 00:29:41 +0000 @@ -1667,10 +1667,11 @@ (re-search-backward regexp bound noerror count))) -(defun isearch-query-replace (&optional delimited regexp-flag) +(defun isearch-query-replace (&optional arg regexp-flag) "Start `query-replace' with string to replace from last search string. -The arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. Note that using the prefix arg +The ARG (prefix arg if interactive), if non-nil, means replace +only matches surrounded by word boundaries. A negative prefix +arg means replace backward. Note that using the prefix arg is possible only when `isearch-allow-scroll' is non-nil or `isearch-allow-prefix' is non-nil, and it doesn't always provide the correct matches for `query-replace', so the preferred way to run word @@ -1688,6 +1689,8 @@ isearch-lax-whitespace) (replace-regexp-lax-whitespace isearch-regexp-lax-whitespace) + (delimited (and arg (not (eq arg '-)))) + (backward (and arg (eq arg '-))) ;; Set `isearch-recursive-edit' to nil to prevent calling ;; `exit-recursive-edit' in `isearch-done' that terminates ;; the execution of this command when it is non-nil. @@ -1696,9 +1699,13 @@ (isearch-done nil t) (isearch-clean-overlays) (if (and isearch-other-end - (< isearch-other-end (point)) + (if backward + (> isearch-other-end (point)) + (< isearch-other-end (point))) (not (and transient-mark-mode mark-active - (< (mark) (point))))) + (if backward + (> (mark) (point)) + (< (mark) (point)))))) (goto-char isearch-other-end)) (set query-replace-from-history-variable (cons isearch-string @@ -1718,19 +1725,21 @@ " word")) "") (if isearch-regexp " regexp" "") + (if backward " backward" "") (if (and transient-mark-mode mark-active) " in region" "")) isearch-regexp) t isearch-regexp (or delimited isearch-word) nil nil (if (and transient-mark-mode mark-active) (region-beginning)) - (if (and transient-mark-mode mark-active) (region-end)))) + (if (and transient-mark-mode mark-active) (region-end)) + backward)) (and isearch-recursive-edit (exit-recursive-edit))) -(defun isearch-query-replace-regexp (&optional delimited) +(defun isearch-query-replace-regexp (&optional arg) "Start `query-replace-regexp' with string to replace from last search string. See `isearch-query-replace' for more information." (interactive (list current-prefix-arg)) - (isearch-query-replace delimited t)) + (isearch-query-replace arg t)) (defun isearch-occur (regexp &optional nlines) "Run `occur' using the last search string as the regexp. === modified file 'lisp/replace.el' --- lisp/replace.el 2013-12-18 05:10:58 +0000 +++ lisp/replace.el 2013-12-19 00:29:41 +0000 @@ -226,9 +226,11 @@ (let* ((from (query-replace-read-from prompt regexp-flag)) (to (if (consp from) (prog1 (cdr from) (setq from (car from))) (query-replace-read-to from prompt regexp-flag)))) - (list from to current-prefix-arg))) + (list from to + (and current-prefix-arg (not (eq current-prefix-arg '-))) + (and current-prefix-arg (eq current-prefix-arg '-))))) -(defun query-replace (from-string to-string &optional delimited start end) +(defun query-replace (from-string to-string &optional delimited start end backward) "Replace some occurrences of FROM-STRING with TO-STRING. As each match is found, the user must type a character saying what to do with it. For directions, type \\[help-command] at that time. @@ -259,7 +261,9 @@ regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. +only matches surrounded by word boundaries. A negative prefix arg means +replace backward. + Fourth and fifth arg START and END specify the region to operate on. To customize possible responses, change the \"bindings\" in `query-replace-map'." @@ -267,7 +271,9 @@ (let ((common (query-replace-read-args (concat "Query replace" - (if current-prefix-arg " word" "") + (if current-prefix-arg + (if (eq current-prefix-arg '-) " backward" " word") + "") (if (and transient-mark-mode mark-active) " in region" "")) nil))) (list (nth 0 common) (nth 1 common) (nth 2 common) @@ -277,12 +283,13 @@ (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) - (region-end))))) - (perform-replace from-string to-string t nil delimited nil nil start end)) + (region-end)) + (nth 3 common)))) + (perform-replace from-string to-string t nil delimited nil nil start end backward)) (define-key esc-map "%" 'query-replace) -(defun query-replace-regexp (regexp to-string &optional delimited start end) +(defun query-replace-regexp (regexp to-string &optional delimited start end backward) "Replace some things after point matching REGEXP with TO-STRING. As each match is found, the user must type a character saying what to do with it. For directions, type \\[help-command] at that time. @@ -313,7 +320,9 @@ regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. +only matches surrounded by word boundaries. A negative prefix arg means +replace backward. + Fourth and fifth arg START and END specify the region to operate on. In TO-STRING, `\\&' stands for whatever matched the whole of REGEXP, @@ -341,7 +350,9 @@ (let ((common (query-replace-read-args (concat "Query replace" - (if current-prefix-arg " word" "") + (if current-prefix-arg + (if (eq current-prefix-arg '-) " backward" " word") + "") " regexp" (if (and transient-mark-mode mark-active) " in region" "")) t))) @@ -352,8 +363,9 @@ (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) - (region-end))))) - (perform-replace regexp to-string t t delimited nil nil start end)) + (region-end)) + (nth 3 common)))) + (perform-replace regexp to-string t t delimited nil nil start end backward)) (define-key esc-map [?\C-%] 'query-replace-regexp) @@ -475,7 +487,7 @@ to-strings "")))) (perform-replace regexp replacements t t nil n nil start end))) -(defun replace-string (from-string to-string &optional delimited start end) +(defun replace-string (from-string to-string &optional delimited start end backward) "Replace occurrences of FROM-STRING with TO-STRING. Preserve case in each match if `case-replace' and `case-fold-search' are non-nil and FROM-STRING has no uppercase letters. @@ -491,7 +503,8 @@ regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. +only matches surrounded by word boundaries. A negative prefix arg means +replace backward. Operates on the region between START and END (if both are nil, from point to the end of the buffer). Interactively, if Transient Mark mode is @@ -513,7 +526,9 @@ (let ((common (query-replace-read-args (concat "Replace" - (if current-prefix-arg " word" "") + (if current-prefix-arg + (if (eq current-prefix-arg '-) " backward" " word") + "") " string" (if (and transient-mark-mode mark-active) " in region" "")) nil))) @@ -521,12 +536,13 @@ (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) - (region-end))))) - (perform-replace from-string to-string nil nil delimited nil nil start end)) + (region-end)) + (nth 3 common)))) + (perform-replace from-string to-string nil nil delimited nil nil start end backward)) (put 'replace-string 'interactive-only "use `search-forward' and `replace-match' instead.") -(defun replace-regexp (regexp to-string &optional delimited start end) +(defun replace-regexp (regexp to-string &optional delimited start end backward) "Replace things after point matching REGEXP with TO-STRING. Preserve case in each match if `case-replace' and `case-fold-search' are non-nil and REGEXP has no uppercase letters. @@ -543,7 +559,9 @@ of the region. Otherwise, operate from point to the end of the buffer. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace -only matches surrounded by word boundaries. +only matches surrounded by word boundaries. A negative prefix arg means +replace backward. + Fourth and fifth arg START and END specify the region to operate on. In TO-STRING, `\\&' stands for whatever matched the whole of REGEXP, @@ -582,7 +600,9 @@ (let ((common (query-replace-read-args (concat "Replace" - (if current-prefix-arg " word" "") + (if current-prefix-arg + (if (eq current-prefix-arg '-) " backward" " word") + "") " regexp" (if (and transient-mark-mode mark-active) " in region" "")) t))) @@ -590,8 +610,9 @@ (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) - (region-end))))) - (perform-replace regexp to-string nil t delimited nil nil start end)) + (region-end)) + (nth 3 common)))) + (perform-replace regexp to-string nil t delimited nil nil start end backward)) (put 'replace-regexp 'interactive-only "use `re-search-forward' and `replace-match' instead.") @@ -1849,7 +1870,7 @@ new))) (match-data integers reuse t))) -(defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data) +(defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data backward) "Make a replacement with `replace-match', editing `\\?'. NEWTEXT, FIXEDCASE, LITERAL are just passed on. If NOEDIT is true, no check for `\\?' is made to save time. MATCH-DATA is used for the @@ -1873,6 +1894,9 @@ noedit nil))) (set-match-data match-data) (replace-match newtext fixedcase literal) + ;; `replace-match' leaves point at the end of the replacement text, + ;; so move point to the beginning when replacing backward. + (when backward (goto-char (nth 0 match-data))) noedit) (defvar replace-search-function nil @@ -1888,7 +1912,7 @@ `re-search-forward'.") (defun replace-search (search-string limit regexp-flag delimited-flag - case-fold-search) + case-fold-search backward) "Search for the next occurrence of SEARCH-STRING to replace." ;; Let-bind global isearch-* variables to values used ;; to search the next replacement. These let-bindings @@ -1907,7 +1931,7 @@ (isearch-case-fold-search case-fold-search) (isearch-adjusted nil) (isearch-nonincremental t) ; don't use lax word mode - (isearch-forward t) + (isearch-forward (not backward)) (search-function (or (if regexp-flag replace-re-search-function @@ -1919,7 +1943,7 @@ (defun replace-highlight (match-beg match-end range-beg range-end search-string regexp-flag delimited-flag - case-fold-search) + case-fold-search backward) (if query-replace-highlight (if replace-overlay (move-overlay replace-overlay match-beg match-end (current-buffer)) @@ -1935,7 +1959,7 @@ (isearch-regexp-lax-whitespace replace-regexp-lax-whitespace) (isearch-case-fold-search case-fold-search) - (isearch-forward t) + (isearch-forward (not backward)) (isearch-other-end match-beg) (isearch-error nil)) (isearch-lazy-highlight-new-loop range-beg range-end)))) @@ -1951,7 +1975,7 @@ (defun perform-replace (from-string replacements query-flag regexp-flag delimited-flag - &optional repeat-count map start end) + &optional repeat-count map start end backward) "Subroutine of `query-replace'. Its complexity handles interactive queries. Don't use this in your own program unless you want to query and set the mark just as `query-replace' does. Instead, write a simple loop like this: @@ -2005,10 +2029,15 @@ minibuffer-prompt-properties)))) ;; If region is active, in Transient Mark mode, operate on region. - (when start - (setq limit (copy-marker (max start end))) - (goto-char (min start end)) - (deactivate-mark)) + (if backward + (when end + (setq limit (copy-marker (min start end))) + (goto-char (max start end)) + (deactivate-mark)) + (when start + (setq limit (copy-marker (max start end))) + (goto-char (min start end)) + (deactivate-mark))) ;; If last typed key in previous call of multi-buffer perform-replace ;; was `automatic-all', don't ask more questions in next files @@ -2038,13 +2067,17 @@ (unwind-protect ;; Loop finding occurrences that perhaps should be replaced. (while (and keep-going - (not (or (eobp) (and limit (>= (point) limit)))) + (if backward + (not (or (bobp) (and limit (<= (point) limit)))) + (not (or (eobp) (and limit (>= (point) limit))))) ;; Use the next match if it is already known; ;; otherwise, search for a match after moving forward ;; one char if progress is required. (setq real-match-data (cond ((consp match-again) - (goto-char (nth 1 match-again)) + (goto-char (if backward + (nth 0 match-again) + (nth 1 match-again))) (replace-match-data t real-match-data match-again)) ;; MATCH-AGAIN non-nil means accept an @@ -2053,22 +2086,26 @@ (and (replace-search search-string limit regexp-flag delimited-flag - case-fold-search) + case-fold-search backward) ;; For speed, use only integers and ;; reuse the list used last time. (replace-match-data t real-match-data))) - ((and (< (1+ (point)) (point-max)) + ((and (if backward + (> (1- (point)) (point-min)) + (< (1+ (point)) (point-max))) (or (null limit) - (< (1+ (point)) limit))) + (if backward + (> (1- (point)) limit) + (< (1+ (point)) limit)))) ;; If not accepting adjacent matches, ;; move one char to the right before ;; searching again. Undo the motion ;; if the search fails. (let ((opoint (point))) - (forward-char 1) + (forward-char (if backward -1 1)) (if (replace-search search-string limit regexp-flag delimited-flag - case-fold-search) + case-fold-search backward) (replace-match-data t real-match-data) (goto-char opoint) @@ -2089,7 +2126,9 @@ (setq match-again (and nonempty-match (or (not regexp-flag) - (and (looking-at search-string) + (and (if backward + (looking-back search-string) + (looking-at search-string)) (let ((match (match-data))) (and (/= (nth 0 match) (nth 1 match)) match)))))) @@ -2126,11 +2165,11 @@ (replace-highlight (nth 0 real-match-data) (nth 1 real-match-data) start end search-string - regexp-flag delimited-flag case-fold-search)) + regexp-flag delimited-flag case-fold-search backward)) (setq noedit (replace-match-maybe-edit next-replacement nocasify literal - noedit real-match-data) + noedit real-match-data backward) replace-count (1+ replace-count))) (undo-boundary) (let (done replaced key def) @@ -2145,7 +2184,7 @@ (replace-highlight (match-beginning 0) (match-end 0) start end search-string - regexp-flag delimited-flag case-fold-search) + regexp-flag delimited-flag case-fold-search backward) ;; Bind message-log-max so we don't fill up the message log ;; with a bunch of identical messages. (let ((message-log-max nil) @@ -2175,6 +2214,7 @@ (get delimited-flag 'isearch-message-prefix)) "word ") "") (if regexp-flag "regexp " "") + (if backward "backward " "") from-string " with " next-replacement ".\n\n" (substitute-command-keys @@ -2203,7 +2243,7 @@ (setq noedit (replace-match-maybe-edit next-replacement nocasify literal - noedit real-match-data) + noedit real-match-data backward) replace-count (1+ replace-count))) (setq done t replaced t)) ((eq def 'act-and-exit) @@ -2211,7 +2251,7 @@ (setq noedit (replace-match-maybe-edit next-replacement nocasify literal - noedit real-match-data) + noedit real-match-data backward) replace-count (1+ replace-count))) (setq keep-going nil) (setq done t replaced t)) @@ -2220,7 +2260,7 @@ (setq noedit (replace-match-maybe-edit next-replacement nocasify literal - noedit real-match-data) + noedit real-match-data backward) replace-count (1+ replace-count) real-match-data (replace-match-data t real-match-data) @@ -2230,7 +2270,7 @@ (setq noedit (replace-match-maybe-edit next-replacement nocasify literal - noedit real-match-data) + noedit real-match-data backward) replace-count (1+ replace-count))) (setq done t query-flag nil replaced t) (if (eq def 'automatic-all) (setq multi-buffer t))) @@ -2274,7 +2314,7 @@ (setq noedit (replace-match-maybe-edit next-replacement nocasify literal noedit - real-match-data) + real-match-data backward) replaced t)) (setq done t)) ------------------------------------------------------------ revno: 115600 fixes bug: http://debbugs.gnu.org/16170 committer: Juri Linkov branch nick: trunk timestamp: Thu 2013-12-19 01:51:45 +0200 message: * lisp/vc/log-edit.el (log-edit-hook): Add `log-edit-insert-message-template' to the default list. Move `log-edit-show-files' to the end. Add more available functions to options. (log-edit): Move default specific settings to `log-edit-insert-message-template'. Don't move point. (log-edit-insert-message-template): New function. (log-edit-insert-changelog): Add `save-excursion' and don't move point. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 23:40:12 +0000 +++ lisp/ChangeLog 2013-12-18 23:51:45 +0000 @@ -1,5 +1,16 @@ 2013-12-18 Juri Linkov + * vc/log-edit.el (log-edit-hook): Add `log-edit-insert-message-template' + to the default list. Move `log-edit-show-files' to the end. + Add more available functions to options. + (log-edit): Move default specific settings to + `log-edit-insert-message-template'. Don't move point. + (log-edit-insert-message-template): New function. + (log-edit-insert-changelog): Add `save-excursion' and don't move point. + (Bug#16170) + +2013-12-18 Juri Linkov + * help-mode.el (help-mode-map): Bind "l" to help-go-back, and "r" to help-go-forward for compatibity with Info. (Bug#16178) === modified file 'lisp/vc/log-edit.el' --- lisp/vc/log-edit.el 2013-12-04 00:37:33 +0000 +++ lisp/vc/log-edit.el 2013-12-18 23:51:45 +0000 @@ -126,15 +126,18 @@ :type 'boolean :safe 'booleanp) -(defcustom log-edit-hook '(log-edit-insert-cvs-template - log-edit-show-files - log-edit-insert-changelog) +(defcustom log-edit-hook '(log-edit-insert-message-template + log-edit-insert-cvs-template + log-edit-insert-changelog + log-edit-show-files) "Hook run at the end of `log-edit'." :group 'log-edit - :type '(hook :options (log-edit-insert-changelog - log-edit-insert-cvs-rcstemplate - log-edit-insert-cvs-template - log-edit-insert-filenames))) + :type '(hook :options (log-edit-insert-message-template + log-edit-insert-cvs-rcstemplate + log-edit-insert-cvs-template + log-edit-insert-changelog + log-edit-insert-filenames + log-edit-show-files))) (defcustom log-edit-mode-hook (if (boundp 'vc-log-mode-hook) vc-log-mode-hook) "Hook run when entering `log-edit-mode'." @@ -440,12 +443,6 @@ (if mode (funcall mode) (log-edit-mode)) - (when setup - (erase-buffer) - (insert "Summary: ") - (when log-edit-setup-add-author - (insert "\nAuthor: ")) - (insert "\n\n")) (set (make-local-variable 'log-edit-callback) callback) (if (listp params) (dolist (crt params) @@ -456,10 +453,9 @@ (if buffer (set (make-local-variable 'log-edit-parent-buffer) parent)) (set (make-local-variable 'log-edit-initial-files) (log-edit-files)) - (when setup (run-hooks 'log-edit-hook)) - (if setup - (message-position-point) - (goto-char (point-min))) + (when setup + (erase-buffer) + (run-hooks 'log-edit-hook)) (push-mark (point-max)) (message "%s" (substitute-command-keys "Press \\[log-edit-done] when you are done editing.")))) @@ -626,6 +622,17 @@ (zerop (forward-line 1)))) (eobp)))) +(defun log-edit-insert-message-template () + "Insert the default template with Summary and Author." + (interactive) + (when (or (called-interactively-p 'interactive) + (log-edit-empty-buffer-p)) + (insert "Summary: ") + (when log-edit-setup-add-author + (insert "\nAuthor: ")) + (insert "\n\n") + (message-position-point))) + (defun log-edit-insert-cvs-template () "Insert the template specified by the CVS administrator, if any. This simply uses the local CVS/Template file." @@ -701,39 +708,39 @@ or if the command is repeated a second time in a row, use the first log entry regardless of user name or time." (interactive "P") - (let ((eoh (save-excursion (rfc822-goto-eoh) (point)))) - (when (<= (point) eoh) - (goto-char eoh) - (if (looking-at "\n") (forward-char 1)))) - (let ((author - (let ((log-edit-changelog-use-first - (or use-first (eq last-command 'log-edit-insert-changelog)))) - (log-edit-insert-changelog-entries (log-edit-files))))) - (log-edit-set-common-indentation) - ;; Add an Author: field if appropriate. - (when author (log-edit-add-field "Author" author)) - ;; Add a Fixes: field if applicable. - (when (consp log-edit-rewrite-fixes) - (rfc822-goto-eoh) - (when (re-search-forward (car log-edit-rewrite-fixes) nil t) - (let ((start (match-beginning 0)) - (end (match-end 0)) - (fixes (match-substitute-replacement - (cdr log-edit-rewrite-fixes)))) - (delete-region start end) - (log-edit-add-field "Fixes" fixes)))) - (and log-edit-strip-single-file-name - (progn (rfc822-goto-eoh) - (if (looking-at "\n") (forward-char 1)) - (looking-at "\\*\\s-+")) - (let ((start (point))) - (forward-line 1) - (when (not (re-search-forward "^\\*\\s-+" nil t)) - (goto-char start) - (skip-chars-forward "^():") - (skip-chars-forward ": ") - (delete-region start (point))))) - (goto-char (point-min)))) + (save-excursion + (let ((eoh (save-excursion (rfc822-goto-eoh) (point)))) + (when (<= (point) eoh) + (goto-char eoh) + (if (looking-at "\n") (forward-char 1)))) + (let ((author + (let ((log-edit-changelog-use-first + (or use-first (eq last-command 'log-edit-insert-changelog)))) + (log-edit-insert-changelog-entries (log-edit-files))))) + (log-edit-set-common-indentation) + ;; Add an Author: field if appropriate. + (when author (log-edit-add-field "Author" author)) + ;; Add a Fixes: field if applicable. + (when (consp log-edit-rewrite-fixes) + (rfc822-goto-eoh) + (when (re-search-forward (car log-edit-rewrite-fixes) nil t) + (let ((start (match-beginning 0)) + (end (match-end 0)) + (fixes (match-substitute-replacement + (cdr log-edit-rewrite-fixes)))) + (delete-region start end) + (log-edit-add-field "Fixes" fixes)))) + (and log-edit-strip-single-file-name + (progn (rfc822-goto-eoh) + (if (looking-at "\n") (forward-char 1)) + (looking-at "\\*\\s-+")) + (let ((start (point))) + (forward-line 1) + (when (not (re-search-forward "^\\*\\s-+" nil t)) + (goto-char start) + (skip-chars-forward "^():") + (skip-chars-forward ": ") + (delete-region start (point)))))))) ;;;; ;;;; functions for getting commit message from ChangeLog a file... ------------------------------------------------------------ revno: 115599 fixes bug: http://debbugs.gnu.org/16178 committer: Juri Linkov branch nick: trunk timestamp: Thu 2013-12-19 01:40:12 +0200 message: * lisp/help-mode.el (help-mode-map): Bind "l" to help-go-back, and "r" to help-go-forward for compatibity with Info. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 18:38:20 +0000 +++ lisp/ChangeLog 2013-12-18 23:40:12 +0000 @@ -1,3 +1,8 @@ +2013-12-18 Juri Linkov + + * help-mode.el (help-mode-map): Bind "l" to help-go-back, + and "r" to help-go-forward for compatibity with Info. (Bug#16178) + 2013-12-18 Leo Liu * eshell/em-prompt.el (eshell-emit-prompt): Fix last change. (Bug#16186) === modified file 'lisp/help-mode.el' --- lisp/help-mode.el 2013-09-17 17:48:06 +0000 +++ lisp/help-mode.el 2013-12-18 23:40:12 +0000 @@ -37,6 +37,8 @@ (set-keymap-parent map (make-composed-keymap button-buffer-map special-mode-map)) (define-key map [mouse-2] 'help-follow-mouse) + (define-key map "l" 'help-go-back) + (define-key map "r" 'help-go-forward) (define-key map "\C-c\C-b" 'help-go-back) (define-key map "\C-c\C-f" 'help-go-forward) (define-key map [XF86Back] 'help-go-back) ------------------------------------------------------------ revno: 115598 committer: Paul Eggert branch nick: trunk timestamp: Wed 2013-12-18 14:35:17 -0800 message: Add comment to my previous lread.c change. diff: === modified file 'src/lread.c' --- src/lread.c 2013-12-18 20:36:50 +0000 +++ src/lread.c 2013-12-18 22:35:17 +0000 @@ -1467,8 +1467,11 @@ Lisp_Object string, tail, encoded_fn, save_string; ptrdiff_t max_suffix_len = 0; int last_errno = ENOENT; + int save_fd = -1; + + /* The last-modified time of the newest matching file found. + Initialize it to something less than all valid timestamps. */ struct timespec save_mtime = make_timespec (TYPE_MINIMUM (time_t), -1); - int save_fd = -1; CHECK_STRING (str); ------------------------------------------------------------ revno: 115597 author: Jan Tatarik committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-12-18 22:11:40 +0000 message: lisp/gnus/gnus-icalendar.el (gnus-icalendar-identities): Make changing the value of gnus-icalendar-additional-identities work without restart diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-12-17 10:12:07 +0000 +++ lisp/gnus/ChangeLog 2013-12-18 22:11:40 +0000 @@ -1,3 +1,8 @@ +2013-12-18 Jan Tatarik + + * gnus-icalendar.el (gnus-icalendar-identities): Make changing the + value of gnus-icalendar-additional-identities work without restart. + 2013-12-17 Katsumi Yamaoka * mm-util.el (mm-make-temp-file): === modified file 'lisp/gnus/gnus-icalendar.el' --- lisp/gnus/gnus-icalendar.el 2013-11-28 23:33:52 +0000 +++ lisp/gnus/gnus-icalendar.el 2013-12-18 22:11:40 +0000 @@ -677,7 +677,10 @@ (make-variable-buffer-local (defvar gnus-icalendar-handle nil)) -(defvar gnus-icalendar-identities +(defun gnus-icalendar-identities () + "Return list of regexp-quoted names and email addresses belonging to the user. + +These will be used to retrieve the RSVP information from ical events." (apply #'append (mapcar (lambda (x) (if (listp x) x (list x))) (list user-full-name (regexp-quote user-mail-address) @@ -766,7 +769,7 @@ (event (caddr data)) (reply (gnus-icalendar-with-decoded-handle handle (gnus-icalendar-event-reply-from-buffer - (current-buffer) status gnus-icalendar-identities)))) + (current-buffer) status (gnus-icalendar-identities))))) (when reply (gmm-labels ((fold-icalendar-buffer () @@ -838,7 +841,7 @@ (defun gnus-icalendar-mm-inline (handle) - (let ((event (gnus-icalendar-event-from-handle handle gnus-icalendar-identities))) + (let ((event (gnus-icalendar-event-from-handle handle (gnus-icalendar-identities)))) (setq gnus-icalendar-reply-status nil) @@ -867,7 +870,7 @@ (defun gnus-icalendar-save-part (handle) (let (event) (when (and (equal (car (mm-handle-type handle)) "text/calendar") - (setq event (gnus-icalendar-event-from-handle handle gnus-icalendar-identities))) + (setq event (gnus-icalendar-event-from-handle handle (gnus-icalendar-identities)))) (gnus-icalendar-event:sync-to-org event)))) ------------------------------------------------------------ revno: 115596 committer: Paul Eggert branch nick: trunk timestamp: Wed 2013-12-18 12:36:50 -0800 message: Minor fixes for recent openp changes. * lisp.h (GCPRO7): New macro. * lread.c (openp): Use bool for boolean; all callers changed. Protect save_string from GC. Don't assume that file descriptors are nonzero. Redo save_mtime comparison to avoid bogus GCC warning about uninitialized variable. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-18 16:21:17 +0000 +++ src/ChangeLog 2013-12-18 20:36:50 +0000 @@ -1,3 +1,12 @@ +2013-12-18 Paul Eggert + + Minor fixes for recent openp changes. + * lisp.h (GCPRO7): New macro. + * lread.c (openp): Use bool for boolean; all callers changed. + Protect save_string from GC. Don't assume that file descriptors + are nonzero. Redo save_mtime comparison to avoid bogus GCC + warning about uninitialized variable. + 2013-12-18 Eli Zaretskii * w32fns.c (emacs_abort): Use intptr_t as argument of === modified file 'src/callproc.c' --- src/callproc.c 2013-12-18 03:21:48 +0000 +++ src/callproc.c 2013-12-18 20:36:50 +0000 @@ -465,7 +465,8 @@ int ok; GCPRO3 (buffer, current_dir, error_file); - ok = openp (Vexec_path, args[0], Vexec_suffixes, &path, make_number (X_OK), 0); + ok = openp (Vexec_path, args[0], Vexec_suffixes, &path, + make_number (X_OK), false); UNGCPRO; if (ok < 0) report_file_error ("Searching for program", args[0]); === modified file 'src/charset.c' --- src/charset.c 2013-12-18 03:21:48 +0000 +++ src/charset.c 2013-12-18 20:36:50 +0000 @@ -495,7 +495,7 @@ count = SPECPDL_INDEX (); record_unwind_protect_nothing (); specbind (Qfile_name_handler_alist, Qnil); - fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil, 0); + fd = openp (Vcharset_map_path, mapfile, suffixes, NULL, Qnil, false); fp = fd < 0 ? 0 : fdopen (fd, "r"); if (!fp) { === modified file 'src/emacs.c' --- src/emacs.c 2013-12-18 03:21:48 +0000 +++ src/emacs.c 2013-12-18 20:36:50 +0000 @@ -424,7 +424,7 @@ { Lisp_Object found; int yes = openp (Vexec_path, Vinvocation_name, - Vexec_suffixes, &found, make_number (X_OK), 0); + Vexec_suffixes, &found, make_number (X_OK), false); if (yes == 1) { /* Add /: to the front of the name === modified file 'src/image.c' --- src/image.c 2013-12-18 03:21:48 +0000 +++ src/image.c 2013-12-18 20:36:50 +0000 @@ -327,7 +327,9 @@ } /* Search bitmap-file-path for the file, if appropriate. */ - if (openp (Vx_bitmap_file_path, file, Qnil, &found, make_number (R_OK), 0) < 0) + if (openp (Vx_bitmap_file_path, file, Qnil, &found, + make_number (R_OK), false) + < 0) return -1; filename = SSDATA (found); @@ -2242,7 +2244,7 @@ Vx_bitmap_file_path); /* Try to find FILE in data-directory/images, then x-bitmap-file-path. */ - fd = openp (search_path, file, Qnil, &file_found, Qnil, 0); + fd = openp (search_path, file, Qnil, &file_found, Qnil, false); if (fd == -1) file_found = Qnil; === modified file 'src/lisp.h' --- src/lisp.h 2013-12-18 03:21:48 +0000 +++ src/lisp.h 2013-12-18 20:36:50 +0000 @@ -3032,6 +3032,7 @@ #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ ((void) gcpro6, (void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, \ (void) gcpro1) +#define GCPRO7(a, b, c, d, e, f, g) (GCPRO6 (a, b, c, d, e, f), (void) gcpro7) #define UNGCPRO ((void) 0) #else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ @@ -3077,6 +3078,16 @@ gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ gcprolist = &gcpro6; } +#define GCPRO7(a, b, c, d, e, f, g) \ + {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ + gcprolist = &gcpro7; } + #define UNGCPRO (gcprolist = gcpro1.next) #else @@ -3133,6 +3144,18 @@ gcpro6.level = gcpro_level++; \ gcprolist = &gcpro6; } +#define GCPRO7(a, b, c, d, e, f, g) \ + {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ + gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ + gcpro7.level = gcpro_level++; \ + gcprolist = &gcpro7; } + #define UNGCPRO \ (--gcpro_level != gcpro1.level \ ? emacs_abort () \ @@ -3791,7 +3814,7 @@ Vcurrent_load_list = Fcons (x, Vcurrent_load_list); } extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object *, Lisp_Object, int); + Lisp_Object *, Lisp_Object, bool); extern Lisp_Object string_to_number (char const *, int, bool); extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object), Lisp_Object); === modified file 'src/lread.c' --- src/lread.c 2013-12-18 04:19:08 +0000 +++ src/lread.c 2013-12-18 20:36:50 +0000 @@ -1420,7 +1420,7 @@ (Lisp_Object filename, Lisp_Object path, Lisp_Object suffixes, Lisp_Object predicate) { Lisp_Object file; - int fd = openp (path, filename, suffixes, &file, predicate, 0); + int fd = openp (path, filename, suffixes, &file, predicate, false); if (NILP (predicate) && fd >= 0) emacs_close (fd); return file; @@ -1455,20 +1455,20 @@ int openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, - Lisp_Object *storeptr, Lisp_Object predicate, int newer) + Lisp_Object *storeptr, Lisp_Object predicate, bool newer) { ptrdiff_t fn_size = 100; char buf[100]; char *fn = buf; - bool absolute = 0; + bool absolute; ptrdiff_t want_length; Lisp_Object filename; - struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6, gcpro7; Lisp_Object string, tail, encoded_fn, save_string; ptrdiff_t max_suffix_len = 0; int last_errno = ENOENT; - struct timespec save_mtime; - int save_fd = 0; + struct timespec save_mtime = make_timespec (TYPE_MINIMUM (time_t), -1); + int save_fd = -1; CHECK_STRING (str); @@ -1479,14 +1479,13 @@ SBYTES (XCAR (tail))); } - string = filename = encoded_fn = Qnil; - GCPRO6 (str, string, filename, path, suffixes, encoded_fn); + string = filename = encoded_fn = save_string = Qnil; + GCPRO7 (str, string, save_string, filename, path, suffixes, encoded_fn); if (storeptr) *storeptr = Qnil; - if (complete_filename_p (str)) - absolute = 1; + absolute = complete_filename_p (str); for (; CONSP (path); path = XCDR (path)) { @@ -1556,13 +1555,13 @@ { Lisp_Object tmp = call1 (predicate, string); if (NILP (tmp)) - exists = 0; + exists = false; else if (EQ (tmp, Qdir_ok) || NILP (Ffile_directory_p (string))) - exists = 1; + exists = true; else { - exists = 0; + exists = false; last_errno = EISDIR; } } @@ -1628,14 +1627,16 @@ { struct timespec mtime = get_stat_mtime (&st); - if (!save_fd || timespec_cmp (save_mtime, mtime) < 0) + if (timespec_cmp (mtime, save_mtime) <= 0) + emacs_close (fd); + else { - if (save_fd) emacs_close (save_fd); + if (0 <= save_fd) + emacs_close (save_fd); save_fd = fd; save_mtime = mtime; save_string = string; } - else emacs_close (fd); } else { @@ -1648,7 +1649,7 @@ } /* No more suffixes. Return the newest. */ - if (newer && save_fd && ! CONSP (XCDR (tail))) + if (0 <= save_fd && ! CONSP (XCDR (tail))) { if (storeptr) *storeptr = save_string; === modified file 'src/process.c' --- src/process.c 2013-12-18 03:21:48 +0000 +++ src/process.c 2013-12-18 20:36:50 +0000 @@ -1530,7 +1530,8 @@ tem = Qnil; GCPRO4 (name, program, buffer, current_dir); - openp (Vexec_path, program, Vexec_suffixes, &tem, make_number (X_OK), 0); + openp (Vexec_path, program, Vexec_suffixes, &tem, + make_number (X_OK), false); UNGCPRO; if (NILP (tem)) report_file_error ("Searching for program", program); === modified file 'src/sound.c' --- src/sound.c 2013-12-18 03:21:48 +0000 +++ src/sound.c 2013-12-18 20:36:50 +0000 @@ -1332,7 +1332,7 @@ { /* Open the sound file. */ current_sound->fd = openp (list1 (Vdata_directory), - attrs[SOUND_FILE], Qnil, &file, Qnil, 0); + attrs[SOUND_FILE], Qnil, &file, Qnil, false); if (current_sound->fd < 0) sound_perror ("Could not open sound file"); ------------------------------------------------------------ revno: 115595 fixes bug: http://debbugs.gnu.org/16186 committer: Leo Liu branch nick: trunk timestamp: Thu 2013-12-19 02:38:20 +0800 message: * eshell/em-prompt.el (eshell-emit-prompt): Fix last change. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 16:01:43 +0000 +++ lisp/ChangeLog 2013-12-18 18:38:20 +0000 @@ -1,3 +1,7 @@ +2013-12-18 Leo Liu + + * eshell/em-prompt.el (eshell-emit-prompt): Fix last change. (Bug#16186) + 2013-12-18 Eli Zaretskii * ls-lisp.el (ls-lisp-insert-directory): Don't modify %d and %f === modified file 'lisp/eshell/em-prompt.el' --- lisp/eshell/em-prompt.el 2013-12-17 15:15:00 +0000 +++ lisp/eshell/em-prompt.el 2013-12-18 18:38:20 +0000 @@ -125,8 +125,8 @@ (add-text-properties 0 (length prompt) '(read-only t font-lock-face eshell-prompt - front-sticky (face read-only) - rear-nonsticky (face read-only)) + front-sticky (font-lock-face read-only) + rear-nonsticky (font-lock-face read-only)) prompt)) (eshell-interactive-print prompt))) (run-hooks 'eshell-after-prompt-hook)) ------------------------------------------------------------ revno: 115594 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-12-18 18:21:17 +0200 message: Avoid compiler warnings in w32fns.c:emacs_abort. src/w32fns.c (emacs_abort): Use intptr_t as argument of INT_BUFSIZE_BOUND, to avoid compiler warnings. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-18 03:21:48 +0000 +++ src/ChangeLog 2013-12-18 16:21:17 +0000 @@ -1,3 +1,8 @@ +2013-12-18 Eli Zaretskii + + * w32fns.c (emacs_abort): Use intptr_t as argument of + INT_BUFSIZE_BOUND, to avoid compiler warnings. + 2013-12-18 Glenn Morris * lread.c (Fload): Pass load_prefer_newer to openp. === modified file 'src/w32fns.c' --- src/w32fns.c 2013-12-15 17:40:44 +0000 +++ src/w32fns.c 2013-12-18 16:21:17 +0000 @@ -8422,7 +8422,12 @@ int errfile_fd = -1; int j; char buf[sizeof ("\r\nException at this address:\r\n\r\n") - + 2 * INT_BUFSIZE_BOUND (void *)]; + /* The type below should really be 'void *', but + INT_BUFSIZE_BOUND cannot handle that without + triggering compiler warnings (under certain + pedantic warning switches), it wants an + integer type. */ + + 2 * INT_BUFSIZE_BOUND (intptr_t)]; #ifdef CYGWIN int stderr_fd = 2; #else ------------------------------------------------------------ revno: 115593 fixes bug: http://debbugs.gnu.org/16179 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-12-18 18:01:43 +0200 message: Fix bug #16179 with ls-lisp emulation of the ls -s switch. src/ls-lisp.el (ls-lisp-insert-directory): Don't modify %d and %f formats for displaying file sizes when the -s switch is given. Instead, compute a separate format for displaying the size in blocks, which is displayed in addition to the "regular" size. When -h is given in addition to -s, produce size in blocks in human-readable form as well. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 14:54:24 +0000 +++ lisp/ChangeLog 2013-12-18 16:01:43 +0000 @@ -1,3 +1,12 @@ +2013-12-18 Eli Zaretskii + + * ls-lisp.el (ls-lisp-insert-directory): Don't modify %d and %f + formats for displaying file sizes when the -s switch is given. + Instead, compute a separate format for displaying the size in + blocks, which is displayed in addition to the "regular" size. + When -h is given in addition to -s, produce size in blocks in + human-readable form as well. (Bug#16179) + 2013-12-18 Tassilo Horn * textmodes/reftex-vars.el (reftex-label-alist-builtin): Reference === modified file 'lisp/ls-lisp.el' --- lisp/ls-lisp.el 2013-09-17 07:43:14 +0000 +++ lisp/ls-lisp.el 2013-12-18 16:01:43 +0000 @@ -208,6 +208,8 @@ "Format to display integer file sizes.") (defvar ls-lisp-filesize-f-fmt "%.0f" "Format to display float file sizes.") +(defvar ls-lisp-filesize-b-fmt "%.0f" + "Format to display file sizes in blocks (for the -s switch).") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -356,17 +358,15 @@ (setq ls-lisp-gid-d-fmt (format " %%-%dd" max-gid-len)) (setq ls-lisp-gid-s-fmt (format " %%-%ds" max-gid-len)) (setq ls-lisp-filesize-d-fmt - (format " %%%dd" - (if (memq ?s switches) - (length (format "%.0f" - (fceiling (/ max-file-size 1024.0)))) - (length (format "%.0f" max-file-size))))) + (format " %%%dd" (length (format "%.0f" max-file-size)))) (setq ls-lisp-filesize-f-fmt - (format " %%%d.0f" - (if (memq ?s switches) + (format " %%%d.0f" (length (format "%.0f" max-file-size)))) + (if (memq ?s switches) + (setq ls-lisp-filesize-b-fmt + (format "%%%d.0f " (length (format "%.0f" - (fceiling (/ max-file-size 1024.0)))) - (length (format "%.0f" max-file-size))))) + (fceiling + (/ max-file-size 1024.0))))))) (setq files file-alist) (while files ; long (-l) format (setq elt (car files) @@ -653,9 +653,20 @@ (cdr inode)))) (format " %18d " inode)))) ;; nil is treated like "" in concat - (if (memq ?s switches) ; size in K - (format ls-lisp-filesize-f-fmt - (fceiling (/ file-size 1024.0)))) + (if (memq ?s switches) ; size in K, rounded up + ;; In GNU ls, -h affects the size in blocks, displayed + ;; by -s, as well. + (if (memq ?h switches) + (format "%6s " + (file-size-human-readable + ;; We use 1K as "block size", although + ;; most Windows volumes use 4KB to 8KB + ;; clusters, and exFAT will usually have + ;; clusters of 32KB or even 128KB. See + ;; KB article 140365 for the details. + (* 1024.0 (fceiling (/ file-size 1024.0))))) + (format ls-lisp-filesize-b-fmt + (fceiling (/ file-size 1024.0))))) drwxrwxrwx ; attribute string (if (memq 'links ls-lisp-verbosity) (format "%3d" (nth 1 file-attr))) ; link count @@ -737,7 +748,7 @@ ls-lisp-filesize-f-fmt ls-lisp-filesize-d-fmt) file-size) - (format " %7s" (file-size-human-readable file-size)))) + (format " %6s" (file-size-human-readable file-size)))) (provide 'ls-lisp) ------------------------------------------------------------ revno: 115592 fixes bug: http://debbugs.gnu.org/15717 committer: Chong Yidong branch nick: trunk timestamp: Wed 2013-12-18 22:54:24 +0800 message: * customize.texi (Custom Themes): Document custom-known-themes. * custom.el (custom-available-themes): Doc fix. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-12-18 05:31:11 +0000 +++ doc/lispref/ChangeLog 2013-12-18 14:54:24 +0000 @@ -1,5 +1,8 @@ 2013-12-18 Chong Yidong + * customize.texi (Custom Themes): Document custom-known-themes + (Bug#15717). + * modes.texi (Defining Minor Modes): Fix typo (Bug#14874). (Keymaps and Minor Modes): Fix binding convention (Bug#11522). === modified file 'doc/lispref/customize.texi' --- doc/lispref/customize.texi 2013-01-02 16:13:04 +0000 +++ doc/lispref/customize.texi 2013-12-18 14:54:24 +0000 @@ -1428,6 +1428,17 @@ it returns @code{nil}. @end defun +@defvar custom-known-themes +The value of this variable is a list of themes loaded into Emacs. +Each theme is represented by a Lisp symbol (the theme name). The +default value of this variable is a list containing two ``dummy'' +themes: @code{(user changed)}. The @code{changed} theme stores +settings made before any Custom themes are applied (e.g., variables +set outside of Customize). The @code{user} theme stores settings the +user has customized and saved. Any additional themes declared with +the @code{deftheme} macro are added to the front of this list. +@end defvar + @deffn Command load-theme theme &optional no-confirm no-enable This function loads the Custom theme named @var{theme} from its source file, looking for the source file in the directories specified by the === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 11:52:49 +0000 +++ lisp/ChangeLog 2013-12-18 14:54:24 +0000 @@ -11,6 +11,7 @@ * custom.el (custom-push-theme): If custom--inhibit-theme-enable is non-nil, do not create a new entry in the symbol's theme-value or theme-face property; update theme-settings only (Bug#14664). + (custom-available-themes): Doc fix. * cus-theme.el (custom-new-theme-mode-map): Add bindings (Bug#15674). === modified file 'lisp/custom.el' --- lisp/custom.el 2013-12-18 08:53:22 +0000 +++ lisp/custom.el 2013-12-18 14:54:24 +0000 @@ -1277,7 +1277,14 @@ (eq name 'changed))))) (defun custom-available-themes () - "Return a list of available Custom themes (symbols)." + "Return a list of Custom themes available for loading. +Search the directories specified by `custom-theme-load-path' for +files named FOO-theme.el, and return a list of FOO symbols. + +The returned symbols may not correspond to themes that have been +loaded, and no effort is made to check that the files contain +valid Custom themes. For a list of loaded themes, check the +variable `custom-known-themes'." (let (sym themes) (dolist (dir (custom-theme--load-path)) (when (file-directory-p dir) ------------------------------------------------------------ revno: 115591 committer: Tassilo Horn branch nick: trunk timestamp: Wed 2013-12-18 12:52:49 +0100 message: Add tilde before \ref{}s to tables. * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Reference tables with ~\ref{...} instead of only \ref{...}. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 08:58:22 +0000 +++ lisp/ChangeLog 2013-12-18 11:52:49 +0000 @@ -1,3 +1,8 @@ +2013-12-18 Tassilo Horn + + * textmodes/reftex-vars.el (reftex-label-alist-builtin): Reference + tables with ~\ref{...} instead of only \ref{...}. + 2013-12-18 Chong Yidong * cus-edit.el (custom-magic-alist): Fix "themed" description === modified file 'lisp/textmodes/reftex-vars.el' --- lisp/textmodes/reftex-vars.el 2013-05-23 15:24:21 +0000 +++ lisp/textmodes/reftex-vars.el 2013-12-18 11:52:49 +0000 @@ -89,7 +89,7 @@ (("wrapfigure" ?f nil nil caption))) (ctable "The ctable package" - (("\\ctable[]{}{}{}" ?t "tab:" "\\ref{%s}" 1 ("table" "Tabelle")))) + (("\\ctable[]{}{}{}" ?t "tab:" "~\\ref{%s}" 1 ("table" "Tabelle")))) (listings "The listings package" (("lstlisting" ?l "lst:" "~\\ref{%s}" nil (regexp "[Ll]isting")))) ------------------------------------------------------------ revno: 115590 fixes bug: http://debbugs.gnu.org/14348 committer: Chong Yidong branch nick: trunk timestamp: Wed 2013-12-18 16:58:22 +0800 message: * cus-edit.el (custom-magic-alist): Fix "themed" description. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-18 08:53:22 +0000 +++ lisp/ChangeLog 2013-12-18 08:58:22 +0000 @@ -1,5 +1,8 @@ 2013-12-18 Chong Yidong + * cus-edit.el (custom-magic-alist): Fix "themed" description + (Bug#14348). + * custom.el (custom-push-theme): If custom--inhibit-theme-enable is non-nil, do not create a new entry in the symbol's theme-value or theme-face property; update theme-settings only (Bug#14664). === modified file 'lisp/cus-edit.el' --- lisp/cus-edit.el 2013-08-29 19:55:58 +0000 +++ lisp/cus-edit.el 2013-12-18 08:58:22 +0000 @@ -1931,7 +1931,7 @@ something in this group has been set and saved.") (themed "o" custom-themed "\ THEMED." "\ -visible group members are all at standard values.") +visible group members are set by enabled themes.") (rogue "@" custom-rogue "\ NO CUSTOMIZATION DATA; not intended to be customized." "\ something in this group is not prepared for customization.") @@ -1961,6 +1961,8 @@ This item is marked for saving. `rogue' This item has no customization information. +`themed' + This item was set by an enabled Custom theme. `standard' This item is unchanged from the standard setting.