Correct col0 for row delimiters.
This commit is contained in:
parent
71c9e7a5fe
commit
19a370e448
1 changed files with 20 additions and 9 deletions
29
table.scm
29
table.scm
|
@ -237,25 +237,33 @@
|
|||
res))))))
|
||||
|
||||
;; Creates table row delimiter based on column widths.
|
||||
(define (table-row-delimiter cws left line cross right)
|
||||
(define (table-row-delimiter cws left line cross0 cross right)
|
||||
(string-append
|
||||
left
|
||||
(string-intersperse
|
||||
(map
|
||||
(lambda (cw)
|
||||
(string-repeat line cw))
|
||||
cws)
|
||||
cross)
|
||||
(let cloop ((cws cws)
|
||||
(res "")
|
||||
(idx 0))
|
||||
(if (null? cws)
|
||||
res
|
||||
(cloop (cdr cws)
|
||||
(string-append res
|
||||
(case idx
|
||||
((0) "")
|
||||
((1) cross0)
|
||||
(else cross))
|
||||
(string-repeat line (car cws)))
|
||||
(add1 idx))))
|
||||
right))
|
||||
|
||||
;; Returns table row delimiter based on column widths, extracting
|
||||
;; line style from particular row of border style vector.
|
||||
(define (table-row-delimiter/styled tb cb cws svec srow)
|
||||
(define (table-row-delimiter/styled tb cb0 cb cws svec srow)
|
||||
(define (sref i)
|
||||
(vector-ref svec (+ i (* srow 4))))
|
||||
(table-row-delimiter cws
|
||||
(if tb (sref 0) "")
|
||||
(sref 1)
|
||||
(if (or cb cb0) (sref 2) "")
|
||||
(if cb (sref 2) "")
|
||||
(if tb (sref 3) "")))
|
||||
|
||||
|
@ -287,6 +295,7 @@
|
|||
(let loop ((rows table)
|
||||
(res (if table-border
|
||||
(list (table-row-delimiter/styled table-border
|
||||
col0-border
|
||||
column-border
|
||||
cws
|
||||
stylevec
|
||||
|
@ -296,6 +305,7 @@
|
|||
(if (null? rows)
|
||||
(let ((res0 (if table-border
|
||||
(cons (table-row-delimiter/styled table-border
|
||||
col0-border
|
||||
column-border
|
||||
cws
|
||||
stylevec
|
||||
|
@ -311,6 +321,7 @@
|
|||
(and row0-border
|
||||
(= idx 1)))
|
||||
(cons (table-row-delimiter/styled table-border
|
||||
col0-border
|
||||
column-border
|
||||
cws
|
||||
stylevec
|
||||
|
@ -374,7 +385,7 @@
|
|||
(table-row->lines '(("a ") ("bb") ("ccc") (" ")) "]" "|" "|" "[" #f)
|
||||
'("]a |bb|ccc| ["))
|
||||
(test-equal? table-row-delimiter
|
||||
(table-row-delimiter '(1 2 3 1) "/" "-" "+" "\\")
|
||||
(table-row-delimiter '(1 2 3 1) "/" "-" "+" "+" "\\")
|
||||
"/-+--+---+-\\")
|
||||
))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue