# HG changeset patch # User Stefan Monnier # Date 1153850754 0 # Node ID 9c3a4ec5547718bca1c5f7209d39851d0f3548d6 # Parent 9b546c70be9e4280b6eeb75509303a6693c4a39d (tabify-regexp): Use more specific regexps. (tabify): Avoid modifying the buffer unnecessarily. diff -r 9b546c70be9e -r 9c3a4ec55477 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Tue Jul 25 17:06:14 2006 +0000 +++ b/lisp/gnus/ChangeLog Tue Jul 25 18:05:54 2006 +0000 @@ -166,8 +166,7 @@ (mm-display-part): Simplify. (mm-inlinable-p): Add optional arg `type'. - * gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED - argument. + * gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED arg. (gnus-mime-view-part-externally, gnus-mime-view-part-internally): Try harder to show the attachment internally or externally using gnus-mime-view-part-as-type. @@ -177,8 +176,7 @@ * gnus-art.el (gnus-mime-view-part-as-type-internal): Try to fetch `filename' from Content-Disposition if Content-Type doesn't provide `name'. - (gnus-mime-view-part-as-type): Set default instead of - initial-input. + (gnus-mime-view-part-as-type): Set default instead of initial-input. 2006-04-28 Katsumi Yamaoka @@ -201,8 +199,8 @@ * mml-sec.el (mml-secure-method): New internal variable. (mml-secure-sign, mml-secure-encrypt, mml-secure-message-sign) - (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): New - functions using mml-secure-method. Sync from the trunk. + (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): + New functions using mml-secure-method. Sync from the trunk. * mml.el (mml-mode-map): Add key bindings for those functions. (mml-menu): Simplify security menu entries. Suggested by Jesper @@ -246,8 +244,8 @@ 2006-04-20 Reiner Steib - * gnus-util.el (gnus-replace-in-string): Prefer - replace-regexp-in-string over of replace-in-string. + * gnus-util.el (gnus-replace-in-string): + Prefer replace-regexp-in-string over of replace-in-string. 2006-04-20 Katsumi Yamaoka @@ -255,8 +253,8 @@ * gnus-sum.el: Ditto. - * gnus-util.el (gnus-select-frame-set-input-focus): Use - select-frame-set-input-focus if it is available in XEmacs; use + * gnus-util.el (gnus-select-frame-set-input-focus): + Use select-frame-set-input-focus if it is available in XEmacs; use definition defined in Emacs 22 for old Emacsen. 2006-04-17 Reiner Steib @@ -268,13 +266,13 @@ (mm-charset-to-coding-system): Use it. (mm-codepage-setup): New helper function. (mm-charset-eval-alist): New variable. - (mm-charset-to-coding-system): Use mm-charset-eval-alist. Warn - about unknown charsets. Add allow-override. Use - `mm-charset-override-alist' only when decoding. + (mm-charset-to-coding-system): Use mm-charset-eval-alist. + Warn about unknown charsets. Add allow-override. + Use `mm-charset-override-alist' only when decoding. (mm-detect-mime-charset-region): Use :mime-charset. - * mm-bodies.el (mm-decode-body, mm-decode-string): Call - `mm-charset-to-coding-system' with allow-override argument. + * mm-bodies.el (mm-decode-body, mm-decode-string): + Call `mm-charset-to-coding-system' with allow-override argument. * message.el (message-tool-bar-zap-list, message-tool-bar) (message-tool-bar-gnome, message-tool-bar-retro): New variables. @@ -290,8 +288,8 @@ `gmm-tool-bar-from-list'. * gnus-group.el (gnus-group-tool-bar, gnus-group-tool-bar-gnome) - (gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): New - variables. + (gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): + New variables. (gnus-group-make-tool-bar): Complete rewrite using `gmm-tool-bar-from-list'. (gnus-group-tool-bar-update): New function. @@ -305,8 +303,8 @@ 2006-04-12 Reiner Steib - * gnus-art.el (gnus-article-mode): Set - cursor-in-non-selected-windows to nil. + * gnus-art.el (gnus-article-mode): + Set cursor-in-non-selected-windows to nil. 2006-04-12 Katsumi Yamaoka @@ -337,8 +335,7 @@ 2006-04-11 Lars Magne Ingebrigtsen - * nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new - layout. + * nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new layout. * rfc2047.el (rfc2047-decode-encoded-words): Don't message about unknown charset. @@ -400,13 +397,12 @@ * gnus-agent.el (gnus-agent-queue-mail): Fix custom tag for `t'. - * spam.el (spam-mark-new-messages-in-spam-group-as-spam): Add - comment on version. + * spam.el (spam-mark-new-messages-in-spam-group-as-spam): + Add comment on version. 2006-03-20 Teodor Zlatanov - * spam.el (spam-mark-new-messages-in-spam-group-as-spam): New - variable. + * spam.el (spam-mark-new-messages-in-spam-group-as-spam): New variable. (spam-mark-junk-as-spam-routine): Use it. Allow to disable assigning the spam-mark to new messages. @@ -437,14 +433,14 @@ * gnus-art.el (gnus-article-only-boring-p): Bind inhibit-point-motion-hooks to avoid infinite loop when entering - intangible text. Reported by Ralf Wachinger - . + intangible text. + Reported by Ralf Wachinger . 2006-03-14 Simon Josefsson * message.el (message-unique-id): Don't use message-number-base36 - if (user-uid) is a float. Reported by Bjorn Solberg - . + if (user-uid) is a float. + Reported by Bjorn Solberg . 2006-03-13 Katsumi Yamaoka diff -r 9b546c70be9e -r 9c3a4ec55477 lisp/tabify.el --- a/lisp/tabify.el Tue Jul 25 17:06:14 2006 +0000 +++ b/lisp/tabify.el Tue Jul 25 18:05:54 2006 +0000 @@ -50,10 +50,10 @@ (delete-region tab-beg (point)) (indent-to column)))))) -(defvar tabify-regexp "[ \t][ \t]+" +(defvar tabify-regexp " [ \t]+" "Regexp matching whitespace that tabify should consider. -Usually this will be \"[ \\t][ \\t]+\" to match two or more spaces or tabs. -\"^[ \\t]+\" is also useful, for tabifying only initial whitespace.") +Usually this will be \" [ \\t]+\" to match two or more spaces or tabs. +\"^\\t* [ \\t]+\" is also useful, for tabifying only initial whitespace.") ;;;###autoload (defun tabify (start end) @@ -72,13 +72,24 @@ (beginning-of-line) (narrow-to-region (point) end) (goto-char start) - (while (re-search-forward tabify-regexp nil t) - (let ((column (current-column)) - (indent-tabs-mode t)) - (delete-region (match-beginning 0) (point)) - (indent-to column)))))) + (let ((indent-tabs-mode t)) + (while (re-search-forward tabify-regexp nil t) + ;; The region between (match-beginning 0) and (match-end 0) is just + ;; spacing which we want to adjust to use TABs where possible. + (let ((end-col (current-column)) + (beg-col (save-excursion (goto-char (match-beginning 0)) + (skip-chars-forward "\t") + (current-column)))) + (if (= (/ end-col tab-width) (/ beg-col tab-width)) + ;; The spacing (after some leading TABs which we wouldn't + ;; want to touch anyway) does not straddle a TAB boundary, + ;; so it neither contains a TAB, nor will we be able to use + ;; a TAB here anyway: there's nothing to do. + nil + (delete-region (match-beginning 0) (point)) + (indent-to end-col)))))))) (provide 'tabify) -;;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416 +;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416 ;;; tabify.el ends here