GNU bug report logs - #5635
Slight improvement to WoMan tbl handling

Previous Next

Package: emacs;

Reported by: Michael Vehrs <Michael.Burschik <at> gmx.de>

Date: Tue, 23 Feb 2010 19:45:02 UTC

Severity: wishlist

Tags: patch

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5635 in the body.
You can then email your comments to 5635 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Message #1 received at quiet <at> debbugs.gnu.org (full text, mbox):

From: Michael Vehrs <Michael.Burschik <at> gmx.de>
To: quiet <at> debbugs.gnu.org
Subject: Re: Slight improvement to WoMan tbl handling
Date: Tue, 23 Feb 2010 17:24:01 +0100
Severity: wishlist
Tags: patch

[ resent from
  http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00544.html ]


This patch adds support for the "T{ T}" tbl syntax. Since this syntax is 
mainly used for long lines within a table, the patch also adds support 
for filling the last column of a table if the line length would exceed 
fill-column.


diff -cp woman.el.orig woman.el
*** woman.el.orig    2010-02-23 17:16:26.000000000 +0100
--- woman.el    2010-02-23 17:16:34.000000000 +0100
*************** expression in parentheses.  Leaves point
*** 3774,3780 ****
                               (setq fn 'woman2-format-paragraphs))))
                 ()
               ;; Find next control line:
!              (set-marker to (woman-find-next-control-line))
               ;; Call the appropriate function:
               (funcall fn to)))
        (if (not (eobp))            ; This should not happen, but ...
--- 3774,3782 ----
                               (setq fn 'woman2-format-paragraphs))))
                 ()
               ;; Find next control line:
!              (if (equal request "TS")
!                  (set-marker to (woman-find-next-control-line "TE"))
!                (set-marker to (woman-find-next-control-line)))
               ;; Call the appropriate function:
               (funcall fn to)))
        (if (not (eobp))            ; This should not happen, but ...
*************** expression in parentheses.  Leaves point
*** 3785,3796 ****
        (fset 'insert-and-inherit insert-and-inherit)
        (set-marker to nil))))
 
! (defun woman-find-next-control-line ()
    "Find and return start of next control line."
  ;  (let ((to (save-excursion
  ;          (re-search-forward "^\\." nil t))))
  ;    (if to (1- to) (point-max)))
!   (let (to)
      (save-excursion
        ;; Must handle
        ;; ...\c
--- 3787,3799 ----
        (fset 'insert-and-inherit insert-and-inherit)
        (set-marker to nil))))
 
! (defun woman-find-next-control-line (&optional pat)
    "Find and return start of next control line."
  ;  (let ((to (save-excursion
  ;          (re-search-forward "^\\." nil t))))
  ;    (if to (1- to) (point-max)))
!   (let ((pattern (concat "\\(\\\\c\\)?\n[.']" pat))
!         to)
      (save-excursion
        ;; Must handle
        ;; ...\c
*************** expression in parentheses.  Leaves point
*** 3799,3810 ****
        ;; BEWARE THAT THIS CODE MAY BE UNRELIABLE!!!!!
        (while
        (and
!        (setq to (re-search-forward "\\(\\\\c\\)?\n[.']" nil t))
         (match-beginning 1)
         (looking-at "br"))
      (goto-char (match-beginning 0))
      (woman-delete-line 2)))
!     (if to (1- to) (point-max))))
 
  (defun woman2-PD (to)
    ".PD d -- Set the interparagraph distance to d.
--- 3802,3813 ----
        ;; BEWARE THAT THIS CODE MAY BE UNRELIABLE!!!!!
        (while
        (and
!        (setq to (re-search-forward pattern nil t))
         (match-beginning 1)
         (looking-at "br"))
      (goto-char (match-beginning 0))
      (woman-delete-line 2)))
!     (if to (- to (+ 1 (length pat))) (point-max))))
 
  (defun woman2-PD (to)
    ".PD d -- Set the interparagraph distance to d.
*************** Needs doing properly!"
*** 4560,4566 ****
    ".TS -- Start of table code for the tbl processor.
  Format paragraphs upto TO."
    ;; This is a preliminary hack that seems to suffice for lilo.8.
-   (woman-delete-line 1)            ; ignore any arguments
    (when woman-emulate-tbl
      ;; Assumes column separator is \t and intercolumn spacing is 3.
      ;; The first line may optionally be a list of options terminated by
--- 4563,4568 ----
*************** Format paragraphs upto TO."
*** 4572,4577 ****
--- 4574,4595 ----
      (woman-delete-line 1)
      ;; For each column, find its width and align it:
      (let ((start (point)) (col 1))
+       (WoMan-log "%s" (buffer-substring start (+ start 40)))
+       ;; change T{ T} to tabs
+       (while (search-forward "T{\n" to t)
+         (replace-match "")
+         (catch 'end
+           (while (search-forward "\n" to t)
+             (replace-match " ")
+             (if (looking-at "T}")
+                 (progn
+                   (delete-char 2)
+                   (throw 'end t))))))
+       (goto-char start)
+       ;; strip space and headers
+       (while (re-search-forward "^\\.TH\\|\\.sp" to t)
+         (woman-delete-whole-line))
+       (goto-char start)
        (while (prog1 (search-forward "\t" to t) (goto-char start))
      ;; Find current column width:
      (while (< (point) to)
*************** Format paragraphs upto TO."
*** 4587,4593 ****
          (delete-char -1)
          (insert-char ?\  (- col (current-column))))
        (forward-line))
!     (goto-char start))))
    ;; Format table with no filling or adjusting (cf. woman2-nf):
    (setq woman-nofill t)
    (woman2-format-paragraphs to))
--- 4605,4628 ----
          (delete-char -1)
          (insert-char ?\  (- col (current-column))))
        (forward-line))
!         (goto-char start))
!       ;; find maximum width
!       (let ((max-col 0))
!         (while (search-forward "\n" to t)
!           (backward-char)
!           (if (> (current-column) max-col)
!               (setq max-col (current-column)))
!           (forward-char))         
!         (goto-char start)
!         ;; break lines if they are too long
!         (when (and (> max-col woman-fill-column)
!                    (> woman-fill-column col))
!           (setq max-col woman-fill-column)
!           (woman-break-table col to)
!           (goto-char start))         
!         (while (re-search-forward "^_$" to t)
!           (replace-match (make-string max-col ?_)))
!         (goto-char start))))
    ;; Format table with no filling or adjusting (cf. woman2-nf):
    (setq woman-nofill t)
    (woman2-format-paragraphs to))
*************** Format paragraphs upto TO."
*** 4596,4601 ****
--- 4631,4648 ----
    ;; ".TE -- End of table code for the tbl processor."
    ;; Turn filling and adjusting back on.
 
+ (defun woman-break-table (start-column to)
+   (while (< (point) to)
+     (move-to-column woman-fill-column)
+     (if (eolp)
+         (forward-line)
+       (if (and (search-backward " " start t)
+                (> (current-column) start-column))
+           (progn
+             (insert-char ?\n 1)
+             (insert-char ?\ (- start-column 5)))
+         (forward-line)))))
+
 

  ;;; WoMan message logging:
 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#5635; Package emacs. (Tue, 10 Apr 2012 23:46:01 GMT) Full text and rfc822 format available.

Message #4 received at 5635 <at> debbugs.gnu.org (full text, mbox):

From: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
To: Michael Vehrs <Michael.Burschik <at> gmx.de>
Cc: 5635 <at> debbugs.gnu.org
Subject: Re: Slight improvement to WoMan tbl handling
Date: Wed, 11 Apr 2012 01:44:41 +0200
Michael Vehrs <Michael.Burschik <at> gmx.de> writes:

> This patch adds support for the "T{ T}" tbl syntax. Since this syntax is 
> mainly used for long lines within a table, the patch also adds support 
> for filling the last column of a table if the line length would exceed 
> fill-column.

Looks good, I think.  But a patch of this size needs FSF copyright
assignment papers signed.  Do you have such paperwork on file, and if
not, would you be willing to sign such papers?

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#5635; Package emacs. (Thu, 12 Apr 2012 17:35:02 GMT) Full text and rfc822 format available.

Message #7 received at 5635 <at> debbugs.gnu.org (full text, mbox):

From: Michael Vehrs <Michael.Burschik <at> gmx.de>
To: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
Cc: 5635 <at> debbugs.gnu.org
Subject: Re: Slight improvement to WoMan tbl handling
Date: Thu, 12 Apr 2012 19:33:39 +0200
On 11.04.2012 01:44, Lars Magne Ingebrigtsen wrote:
> Michael Vehrs<Michael.Burschik <at> gmx.de>  writes:
>
>    
>> This patch adds support for the "T{ T}" tbl syntax. Since this syntax is
>> mainly used for long lines within a table, the patch also adds support
>> for filling the last column of a table if the line length would exceed
>> fill-column.
>>      
> Looks good, I think.  But a patch of this size needs FSF copyright
> assignment papers signed.  Do you have such paperwork on file, and if
> not, would you be willing to sign such papers?
>    

I am willing to sign, but I do not have the papers at hand.

Regards

Michael






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#5635; Package emacs. (Thu, 12 Apr 2012 17:48:01 GMT) Full text and rfc822 format available.

Message #10 received at 5635 <at> debbugs.gnu.org (full text, mbox):

From: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
To: Michael Vehrs <Michael.Burschik <at> gmx.de>
Cc: 5635 <at> debbugs.gnu.org
Subject: Re: bug#5635: Slight improvement to WoMan tbl handling
Date: Thu, 12 Apr 2012 19:46:18 +0200
Michael Vehrs <Michael.Burschik <at> gmx.de> writes:

> I am willing to sign, but I do not have the papers at hand.

Great!

Please email the following information to assign <at> gnu.org, and we
will send you the assignment form for your past and future changes.

Please use your full legal name (in ASCII characters) as the subject
line of the message.
----------------------------------------------------------------------
REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES

[What is the name of the program or package you're contributing to?]
Emacs

[Did you copy any files or text written by someone else in these changes?
Even if that material is free software, we need to know about it.]

[Do you have an employer who might have a basis to claim to own
your changes?  Do you attend a school which might make such a claim?]

[For the copyright registration, what country are you a citizen of?]

[What year were you born?]

[Please write your email address here.]

[Please write your postal address here.]

[Which files have you changed so far, and which new files have you written
so far?]

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#5635; Package emacs. (Thu, 12 Apr 2012 17:58:02 GMT) Full text and rfc822 format available.

Message #13 received at 5635 <at> debbugs.gnu.org (full text, mbox):

From: Michael Vehrs <Michael.Burschik <at> gmx.de>
To: Lars Magne Ingebrigtsen <larsi <at> gnus.org>
Cc: 5635 <at> debbugs.gnu.org
Subject: Re: bug#5635: Slight improvement to WoMan tbl handling
Date: Thu, 12 Apr 2012 19:56:13 +0200
On 12.04.2012 19:46, Lars Magne Ingebrigtsen wrote:
> Michael Vehrs<Michael.Burschik <at> gmx.de>  writes:
>
>    
>> I am willing to sign, but I do not have the papers at hand.
>>      
> Great!
>
> Please email the following information to assign <at> gnu.org, and we
> will send you the assignment form for your past and future changes.
>
> Please use your full legal name (in ASCII characters) as the subject
> line of the message.
>    

Done.


Regards

Michael

> ----------------------------------------------------------------------
> REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES
>
> [What is the name of the program or package you're contributing to?]
> Emacs
>
> [Did you copy any files or text written by someone else in these changes?
> Even if that material is free software, we need to know about it.]
>
> [Do you have an employer who might have a basis to claim to own
> your changes?  Do you attend a school which might make such a claim?]
>
> [For the copyright registration, what country are you a citizen of?]
>
> [What year were you born?]
>
> [Please write your email address here.]
>
> [Please write your postal address here.]
>
> [Which files have you changed so far, and which new files have you written
> so far?]
>
>    





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#5635; Package emacs. (Sat, 21 Apr 2012 05:57:01 GMT) Full text and rfc822 format available.

Message #16 received at 5635 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> gnu.org>
To: Michael Vehrs <Michael.Burschik <at> gmx.de>
Cc: Lars Magne Ingebrigtsen <larsi <at> gnus.org>, 5635 <at> debbugs.gnu.org
Subject: Re: bug#5635: Slight improvement to WoMan tbl handling
Date: Sat, 21 Apr 2012 13:55:55 +0800
Your copyright assignment has come through, and I've committed your
patch to trunk.  Thanks for your contribution.




bug closed, send any further explanations to 5635 <at> debbugs.gnu.org and Michael Vehrs <Michael.Burschik <at> gmx.de> Request was from Chong Yidong <cyd <at> gnu.org> to control <at> debbugs.gnu.org. (Sat, 21 Apr 2012 05:57:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 19 May 2012 11:24:02 GMT) Full text and rfc822 format available.

This bug report was last modified 11 years and 356 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.