* [Proposal] M-x tabify to indent only when needed.
@ 2006-07-24 17:30 Michaël Cadilhac
2006-07-24 20:40 ` Michaël Cadilhac
2006-07-24 21:50 ` Richard Stallman
0 siblings, 2 replies; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-24 17:30 UTC (permalink / raw
[-- Attachment #1.1.1: Type: text/plain, Size: 384 bytes --]
M-x tabify has an unexpected behavior with files that are already
tabified: once it is called, the file is set to be modified. In fact,
the regions of spaces are removed and then re-added.
Can the following patch be applied to change this behavior?
It checks that the region we are going to delete is not already of the
form « tabs then spaces less than a tab. ».
[-- Attachment #1.1.2: tabify.patch --]
[-- Type: text/x-patch, Size: 1593 bytes --]
Index: lisp/tabify.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/tabify.el,v
retrieving revision 1.19
diff -c -r1.19 tabify.el
*** lisp/tabify.el 6 Feb 2006 14:33:35 -0000 1.19
--- lisp/tabify.el 24 Jul 2006 17:21:48 -0000
***************
*** 75,82 ****
(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))))))
(provide 'tabify)
--- 75,90 ----
(while (re-search-forward tabify-regexp nil t)
(let ((column (current-column))
(indent-tabs-mode t))
! ;; Whether already tabified.
! (unless (save-match-data
! (save-excursion
! (goto-char (match-beginning 0))
! (string-match
! (format "^\t* \\{0,%d\\}$"
! (- tab-width (1+ (mod (current-column) tab-width))))
! (match-string 0))))
! (delete-region (match-beginning 0) (point))
! (indent-to column)))))))
(provide 'tabify)
Index: lisp/ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.9820
diff -c -r1.9820 ChangeLog
*** lisp/ChangeLog 17 Jul 2006 04:07:48 -0000 1.9820
--- lisp/ChangeLog 24 Jul 2006 17:21:50 -0000
***************
*** 1,0 ****
--- 1,4 ----
+ 2006-07-24 Michaël Cadilhac <michael.cadilhac@lrde.org>
+
+ * tabify.el (tabify): Check if not already tabified before indenting.
+
[-- Attachment #1.1.3: Type: text/plain, Size: 331 bytes --]
TIA!
--
| Michaël `Micha' Cadilhac | Le copillage-collage |
| Epita/LRDE Promo 2007 | tue le programmeur. |
| http://www.lrde.org/~cadilh_m | -- Dictons LRDE |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-24 17:30 [Proposal] M-x tabify to indent only when needed Michaël Cadilhac
@ 2006-07-24 20:40 ` Michaël Cadilhac
2006-07-24 21:30 ` Stefan Monnier
2006-07-24 21:50 ` Richard Stallman
1 sibling, 1 reply; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-24 20:40 UTC (permalink / raw
[-- Attachment #1.1.1: Type: text/plain, Size: 549 bytes --]
michael.cadilhac@lrde.org (Michaël Cadilhac) writes:
> M-x tabify has an unexpected behavior with files that are already
> tabified: once it is called, the file is set to be modified. In fact,
> the regions of spaces are removed and then re-added.
>
> Can the following patch be applied to change this behavior?
>
> It checks that the region we are going to delete is not already of the
> form « tabs then spaces less than a tab. ».
... Sorry for the noise, the previous patch was no good. Please
consider the following one.
[-- Attachment #1.1.2: tabify.patch --]
[-- Type: text/x-patch, Size: 1240 bytes --]
*** lisp/tabify.el.~1.19.~ 2006-02-06 15:33:35.000000000 +0100
--- lisp/tabify.el 2006-07-24 22:33:57.000000000 +0200
***************
*** 75,82 ****
(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))))))
(provide 'tabify)
--- 75,90 ----
(while (re-search-forward tabify-regexp nil t)
(let ((column (current-column))
(indent-tabs-mode t))
! ;; Whether already tabified.
! (unless (save-match-data
! (save-excursion
! (skip-chars-backward " ")
! (string-match
! (format "^\t* \\{0,%d\\}$"
! (- tab-width (1+ (mod (current-column) tab-width))))
! (match-string 0))))
! (delete-region (match-beginning 0) (point))
! (indent-to column)))))))
(provide 'tabify)
*** lisp/ChangeLog.~1.9820.~ 2006-07-17 13:27:46.000000000 +0200
--- lisp/ChangeLog 2006-07-24 19:20:58.000000000 +0200
***************
*** 1,0 ****
--- 1,4 ----
+ 2006-07-24 Michaël Cadilhac <michael.cadilhac@lrde.org>
+
+ * tabify.el (tabify): Check if not already tabified before indenting.
+
[-- Attachment #1.1.3: Type: text/plain, Size: 331 bytes --]
TIA!
--
| Michaël `Micha' Cadilhac | Pour les 35-40 ans, l'humour |
| Epita/LRDE Promo 2007 | c'est une plus-value. |
| http://www.lrde.org/~cadilh_m | -- Guillaume L. |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-24 20:40 ` Michaël Cadilhac
@ 2006-07-24 21:30 ` Stefan Monnier
2006-07-25 3:09 ` Richard Stallman
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2006-07-24 21:30 UTC (permalink / raw
Cc: emacs-devel
> (while (re-search-forward tabify-regexp nil t)
> (let ((column (current-column))
> (indent-tabs-mode t))
> ! ;; Whether already tabified.
> ! (unless (save-match-data
> ! (save-excursion
> ! (skip-chars-backward " ")
> ! (string-match
> ! (format "^\t* \\{0,%d\\}$"
> ! (- tab-width (1+ (mod (current-column) tab-width))))
> ! (match-string 0))))
> ! (delete-region (match-beginning 0) (point))
> ! (indent-to column)))))))
I'm not convinced it's correct.
I think we should only accept such a patch if the correctness is clear
(either because the code's correctnes is inherently obvious, or because it
is sufficiently commented to explain why it's correct).
How 'bout the 100% untested patch below?
Stefan
--- orig/lisp/tabify.el
+++ mod/lisp/tabify.el
@@ -50,9 +50,9 @@
(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.
+Usually this will be \" [ \\t]+\" to match two or more spaces or tabs.
\"^[ \\t]+\" is also useful, for tabifying only initial whitespace.")
;;;###autoload
@@ -73,12 +73,20 @@
(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))))))
+ ;; 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))
+ (current-column))))
+ (if (= (/ end-col tab-width) (/ beg-col tab-width))
+ ;; The spacing does not straddle a TAB boundary, so we won't
+ ;; be able to use a TAB here anyway: there's nothing to do.
+ nil
+ (let ((indent-tabs-mode t))
+ (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
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-24 17:30 [Proposal] M-x tabify to indent only when needed Michaël Cadilhac
2006-07-24 20:40 ` Michaël Cadilhac
@ 2006-07-24 21:50 ` Richard Stallman
2006-07-25 11:38 ` Michaël Cadilhac
1 sibling, 1 reply; 15+ messages in thread
From: Richard Stallman @ 2006-07-24 21:50 UTC (permalink / raw
Cc: emacs-devel
! (unless (save-match-data
! (save-excursion
! (goto-char (match-beginning 0))
! (string-match
! (format "^\t* \\{0,%d\\}$"
! (- tab-width (1+ (mod (current-column) tab-width))))
! (match-string 0))))
That would be very slow. Please do it without using regexps,
perhaps using skip-chars-forward.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-24 21:30 ` Stefan Monnier
@ 2006-07-25 3:09 ` Richard Stallman
2006-07-25 13:55 ` Stefan Monnier
0 siblings, 1 reply; 15+ messages in thread
From: Richard Stallman @ 2006-07-25 3:09 UTC (permalink / raw
Cc: michael.cadilhac, emacs-devel
+ (if (= (/ end-col tab-width) (/ beg-col tab-width))
+ ;; The spacing does not straddle a TAB boundary, so we won't
+ ;; be able to use a TAB here anyway: there's nothing to do.
+ nil
This detects a case where no tabs can be used.
It doesn't detect the case where tabs already ARE used.
-(defvar tabify-regexp "[ \t][ \t]+"
+(defvar tabify-regexp " [ \t]+"
Is that change supposed to exclude those other cases?
It is a good idea to make the regexp match less often.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-24 21:50 ` Richard Stallman
@ 2006-07-25 11:38 ` Michaël Cadilhac
2006-07-25 22:15 ` Richard Stallman
0 siblings, 1 reply; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-25 11:38 UTC (permalink / raw
Cc: emacs-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 735 bytes --]
Richard Stallman <rms@gnu.org> writes:
> ! (unless (save-match-data
> ! (save-excursion
> ! (goto-char (match-beginning 0))
> ! (string-match
> ! (format "^\t* \\{0,%d\\}$"
> ! (- tab-width (1+ (mod (current-column) tab-width))))
> ! (match-string 0))))
>
> That would be very slow. Please do it without using regexps,
> perhaps using skip-chars-forward.
I can come up with the following regexp-free, search-free patch that
makes the job, and that uses Stefan's good proposal of using " [ \t]+"
as `tabify-regexp'.
However, the code now supposes that if a TAB appears in the match,
a space must have preceded it. I specified that in the docstring.
[-- Attachment #1.1.2: tabify.patch --]
[-- Type: text/x-patch, Size: 2745 bytes --]
Index: lisp/tabify.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/tabify.el,v
retrieving revision 1.19
diff -c -r1.19 tabify.el
*** lisp/tabify.el 6 Feb 2006 14:33:35 -0000 1.19
--- lisp/tabify.el 25 Jul 2006 10:30:09 -0000
***************
*** 50,59 ****
(delete-region tab-beg (point))
(indent-to column))))))
! (defvar tabify-regexp "[ \t][ \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.")
;;;###autoload
(defun tabify (start end)
--- 50,60 ----
(delete-region tab-beg (point))
(indent-to column))))))
! (defvar tabify-regexp " [ \t]+"
"Regexp matching whitespace that tabify should consider.
! Usually this will be \" [ \\t]+\" to match two or more spaces or tabs.
! \"^\\\\( \\t*\\\\)+\" is also useful, for tabifying only initial whitespace.
! Note that if a `\\t' is matched, a space must have been matched before.")
;;;###autoload
(defun tabify (start end)
***************
*** 75,82 ****
(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))))))
(provide 'tabify)
--- 76,94 ----
(while (re-search-forward tabify-regexp nil t)
(let ((column (current-column))
(indent-tabs-mode t))
! (unless (save-excursion
! (if (not (= (skip-chars-backward " " (match-beginning 0))
! (- (match-beginning 0) (match-end 0))))
! ;; There is a TAB after a space: (match-string 0) is
! ;; not full of spaces.
! nil
! ;; See if there's room for a TAB.
! ;; We already are at (match-beginning 0).
! (< (+ (mod (current-column) tab-width)
! (- column (current-column)))
! tab-width)))
! (delete-region (match-beginning 0) (point))
! (indent-to column)))))))
(provide 'tabify)
Index: lisp/ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.9820
diff -c -r1.9820 ChangeLog
*** lisp/ChangeLog 17 Jul 2006 04:07:48 -0000 1.9820
--- lisp/ChangeLog 25 Jul 2006 10:30:10 -0000
***************
*** 1,3 ****
--- 1,7 ----
+ 2006-07-24 Michaël Cadilhac <michael.cadilhac@lrde.org>
+
+ * tabify.el (tabify): Check if not already tabified before indenting.
+
2006-07-17 Chong Yidong <cyd@stupidchicken.com>
* progmodes/compile.el (compilation-mode-font-lock-keywords):
[-- Attachment #1.1.3: Type: text/plain, Size: 404 bytes --]
The understanding is slightly improved :-) I can't make it clearer, in
fact.
--
| Michaël `Micha' Cadilhac | Isn't vi that text editor with |
| Epita/LRDE Promo 2007 | two modes... One that beeps and |
| http://www.lrde.org/~cadilh_m | one that corrupts your file? |
`-- - JID: micha@amessage.be --' -- Dan Jacobson - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 3:09 ` Richard Stallman
@ 2006-07-25 13:55 ` Stefan Monnier
2006-07-25 14:09 ` Michaël Cadilhac
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2006-07-25 13:55 UTC (permalink / raw
Cc: michael.cadilhac, emacs-devel
> + (if (= (/ end-col tab-width) (/ beg-col tab-width))
> + ;; The spacing does not straddle a TAB boundary, so we won't
> + ;; be able to use a TAB here anyway: there's nothing to do.
> + nil
> This detects a case where no tabs can be used.
> It doesn't detect the case where tabs already ARE used.
Those cases aren't matched by the regexp.
> -(defvar tabify-regexp "[ \t][ \t]+"
> +(defvar tabify-regexp " [ \t]+"
> Is that change supposed to exclude those other cases?
Exactly.
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 13:55 ` Stefan Monnier
@ 2006-07-25 14:09 ` Michaël Cadilhac
2006-07-25 15:07 ` Stefan Monnier
0 siblings, 1 reply; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-25 14:09 UTC (permalink / raw
Cc: rms, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 1185 bytes --]
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> + (if (= (/ end-col tab-width) (/ beg-col tab-width))
>> + ;; The spacing does not straddle a TAB boundary, so we won't
>> + ;; be able to use a TAB here anyway: there's nothing to do.
>> + nil
>
>> This detects a case where no tabs can be used.
>> It doesn't detect the case where tabs already ARE used.
>
> Those cases aren't matched by the regexp.
>
>> -(defvar tabify-regexp "[ \t][ \t]+"
>> +(defvar tabify-regexp " [ \t]+"
>
>> Is that change supposed to exclude those other cases?
>
> Exactly.
>
> Stefan
IIUC, your patch does work and is very much clearer than mine.
However, it suffers from the same precondition on tabify-regexp, which
should be described in its docstring.
Thanks!
--
| Michaël `Micha' Cadilhac | Si les religions etaient aussi tole- |
| Epita/LRDE Promo 2007 | rantes qu'elles le pretendent, il y |
| http://www.lrde.org/~cadilh_m | a longtemps qu'il n'y en aurait plus |
`-- - JID: micha@amessage.be --' -- Moustic - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 14:09 ` Michaël Cadilhac
@ 2006-07-25 15:07 ` Stefan Monnier
2006-07-25 15:28 ` Michaël Cadilhac
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2006-07-25 15:07 UTC (permalink / raw
Cc: rms, emacs-devel
>>> + (if (= (/ end-col tab-width) (/ beg-col tab-width))
>>> + ;; The spacing does not straddle a TAB boundary, so we won't
>>> + ;; be able to use a TAB here anyway: there's nothing to do.
>>> + nil
>>
>>> This detects a case where no tabs can be used.
>>> It doesn't detect the case where tabs already ARE used.
>>
>> Those cases aren't matched by the regexp.
>>
>>> -(defvar tabify-regexp "[ \t][ \t]+"
>>> +(defvar tabify-regexp " [ \t]+"
>>
>>> Is that change supposed to exclude those other cases?
>>
>> Exactly.
>>
>> Stefan
> IIUC, your patch does work and is very much clearer than mine.
> However, it suffers from the same precondition on tabify-regexp, which
> should be described in its docstring.
Another regexp will also work, except that it may result in "spurious"
buffer modifications. But people have lived with such spurious buffer
modifications until now, so it's not a big deal, is it?
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 15:07 ` Stefan Monnier
@ 2006-07-25 15:28 ` Michaël Cadilhac
2006-07-25 16:21 ` Stefan Monnier
0 siblings, 1 reply; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-25 15:28 UTC (permalink / raw
Cc: rms, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 1608 bytes --]
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>>> + (if (= (/ end-col tab-width) (/ beg-col tab-width))
>>>> + ;; The spacing does not straddle a TAB boundary, so we won't
>>>> + ;; be able to use a TAB here anyway: there's nothing to do.
>>>> + nil
>>>
>>>> This detects a case where no tabs can be used.
>>>> It doesn't detect the case where tabs already ARE used.
>>>
>>> Those cases aren't matched by the regexp.
>>>
>>>> -(defvar tabify-regexp "[ \t][ \t]+"
>>>> +(defvar tabify-regexp " [ \t]+"
>>>
>>>> Is that change supposed to exclude those other cases?
>>>
>>> Exactly.
>>>
>>> Stefan
>
>> IIUC, your patch does work and is very much clearer than mine.
>> However, it suffers from the same precondition on tabify-regexp, which
>> should be described in its docstring.
>
> Another regexp will also work, except that it may result in "spurious"
> buffer modifications. But people have lived with such spurious buffer
> modifications until now, so it's not a big deal, is it?
Well... Why not tell the user how to get good results?
Whatever, the docstring should be modified to tell that
\"^\\\\( \\t*\\\\)+\" must be used for « tabifying only initial
whitespace » (IINM).
--
| Michaël `Micha' Cadilhac | Would someone please DTRT with this, |
| Epita/LRDE Promo 2007 | then ACK? |
| http://www.lrde.org/~cadilh_m | -- Richard Stallman |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 15:28 ` Michaël Cadilhac
@ 2006-07-25 16:21 ` Stefan Monnier
2006-07-25 17:09 ` Michaël Cadilhac
0 siblings, 1 reply; 15+ messages in thread
From: Stefan Monnier @ 2006-07-25 16:21 UTC (permalink / raw
Cc: rms, emacs-devel
> Whatever, the docstring should be modified to tell that
> \"^\\\\( \\t*\\\\)+\" must be used for « tabifying only initial
> whitespace » (IINM).
I'm not sure this regexp will give correct results.
Actually I don't think you can come up with a regexp for this problem that
works correctly (in the sense of the resulting buffer text) and that also
allows my code to avoid changing the buffer when it's not needed.
It's a limitation of my code. It can probably be lifted with
a (skip-chars-forward "\t").
Stefan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 16:21 ` Stefan Monnier
@ 2006-07-25 17:09 ` Michaël Cadilhac
0 siblings, 0 replies; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-25 17:09 UTC (permalink / raw
Cc: rms, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 763 bytes --]
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Whatever, the docstring should be modified to tell that
>> \"^\\\\( \\t*\\\\)+\" must be used for « tabifying only initial
>> whitespace » (IINM).
>
> I'm not sure this regexp will give correct results.
Huho, neither I am now ;-)
> It's a limitation of my code. It can probably be lifted with
> a (skip-chars-forward "\t").
You're again completly right! Please do :-)
--
| Michaël `Micha' Cadilhac | Would someone please DTRT with this, |
| Epita/LRDE Promo 2007 | then ACK? |
| http://www.lrde.org/~cadilh_m | -- Richard Stallman |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 11:38 ` Michaël Cadilhac
@ 2006-07-25 22:15 ` Richard Stallman
2006-07-26 11:29 ` Michaël Cadilhac
0 siblings, 1 reply; 15+ messages in thread
From: Richard Stallman @ 2006-07-25 22:15 UTC (permalink / raw
Cc: emacs-devel
I can come up with the following regexp-free, search-free patch that
makes the job, and that uses Stefan's good proposal of using " [ \t]+"
as `tabify-regexp'.
Please install this, if no one finds a flaw in it soon.
Thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-25 22:15 ` Richard Stallman
@ 2006-07-26 11:29 ` Michaël Cadilhac
2006-07-26 11:32 ` Michaël Cadilhac
0 siblings, 1 reply; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-26 11:29 UTC (permalink / raw
Cc: Stefan Monnier, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 933 bytes --]
Richard Stallman <rms@gnu.org> writes:
> I can come up with the following regexp-free, search-free patch that
> makes the job, and that uses Stefan's good proposal of using " [ \t]+"
> as `tabify-regexp'.
>
> Please install this, if no one finds a flaw in it soon.
>
> Thanks.
I think Stefan proposal is better than mine. The only flaw in it is
fixed if he changes the following part of its patch, as he proposed:
+ (beg-col (save-excursion (goto-char (match-beginning 0))
(skip-forward-chars "\t")
+ (current-column))))
--
| Michaël `Micha' Cadilhac | Le copillage-collage |
| Epita/LRDE Promo 2007 | tue le programmeur. |
| http://www.lrde.org/~cadilh_m | -- Dictons LRDE |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Proposal] M-x tabify to indent only when needed.
2006-07-26 11:29 ` Michaël Cadilhac
@ 2006-07-26 11:32 ` Michaël Cadilhac
0 siblings, 0 replies; 15+ messages in thread
From: Michaël Cadilhac @ 2006-07-26 11:32 UTC (permalink / raw
Cc: Stefan Monnier, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 1071 bytes --]
michael.cadilhac@lrde.org (Michaël Cadilhac) writes:
> Richard Stallman <rms@gnu.org> writes:
>
>> I can come up with the following regexp-free, search-free patch that
>> makes the job, and that uses Stefan's good proposal of using " [ \t]+"
>> as `tabify-regexp'.
>>
>> Please install this, if no one finds a flaw in it soon.
>>
>> Thanks.
>
> I think Stefan proposal is better than mine. The only flaw in it is
> fixed if he changes the following part of its patch, as he proposed:
>
> + (beg-col (save-excursion (goto-char (match-beginning 0))
> (skip-forward-chars "\t")
> + (current-column))))
I just saw he did, so case closed :-) Thank you Stefan !
--
| Michaël `Micha' Cadilhac | Un certain Blaise Pascal |
| Epita/LRDE Promo 2007 | etc... etc... |
| http://www.lrde.org/~cadilh_m | -- Prévert (Les paris stupides) |
`-- - JID: micha@amessage.be --' - --'
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
[-- Attachment #2: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2006-07-26 11:32 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-24 17:30 [Proposal] M-x tabify to indent only when needed Michaël Cadilhac
2006-07-24 20:40 ` Michaël Cadilhac
2006-07-24 21:30 ` Stefan Monnier
2006-07-25 3:09 ` Richard Stallman
2006-07-25 13:55 ` Stefan Monnier
2006-07-25 14:09 ` Michaël Cadilhac
2006-07-25 15:07 ` Stefan Monnier
2006-07-25 15:28 ` Michaël Cadilhac
2006-07-25 16:21 ` Stefan Monnier
2006-07-25 17:09 ` Michaël Cadilhac
2006-07-24 21:50 ` Richard Stallman
2006-07-25 11:38 ` Michaël Cadilhac
2006-07-25 22:15 ` Richard Stallman
2006-07-26 11:29 ` Michaël Cadilhac
2006-07-26 11:32 ` Michaël Cadilhac
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).