GNU bug report logs -
#5635
Slight improvement to WoMan tbl handling
Previous Next
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.
Message #1 received at quiet <at> debbugs.gnu.org (full text, mbox):
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):
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):
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):
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):
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):
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 12 years and 338 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.