From 97dd257780cb993a5c65dce26f968dc4eeec6dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 15 Jun 2023 16:45:35 +0200 Subject: [PATCH] Basic support for table ansi resets. --- src/members-fees.scm | 1 + src/members-print.scm | 1 - src/table-border.scm | 2 ++ src/table.scm | 24 +++++++++++++++--------- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/members-fees.scm b/src/members-fees.scm index a8c90b4..107e7c6 100644 --- a/src/members-fees.scm +++ b/src/members-fees.scm @@ -177,6 +177,7 @@ (list "" 1 2 3 4 5 6 7 8 9 10 11 12)) (member-calendar->years-table mc)))) (table->string data + #:ansi-reset? #t #:border '(((light #:top #:left none) (light #:top none) ... (light #:top #:right none)) ((light #:left none) light ... (light #:right none)) ... ((light #:bottom #:left none) (light #:bottom none) ... (light #:bottom #:right none))) diff --git a/src/members-print.scm b/src/members-print.scm index cbb857d..ce74a54 100644 --- a/src/members-print.scm +++ b/src/members-print.scm @@ -143,7 +143,6 @@ (member-payments->table mr) (member-calendar->table mr)) ) - #:ansi #t #:row0-border #t #:col-border #t)) (let* ((balance (member-balance mr)) diff --git a/src/table-border.scm b/src/table-border.scm index a7f2318..2ac1aac 100644 --- a/src/table-border.scm +++ b/src/table-border.scm @@ -29,6 +29,8 @@ ( table-rows-border + make-table-vertical-sgr-block + table-border-vertical table-border-between-rows? diff --git a/src/table.scm b/src/table.scm index 213892a..537fa0e 100644 --- a/src/table.scm +++ b/src/table.scm @@ -89,15 +89,21 @@ (res '()) (prev-borders #f)) (if (null? rows) - (apply append - (reverse (if (table-border-between-rows? prev-borders #f) - (cons (table-rows-border col-widths - prev-borders - #f - col-separators - unicode?) - res) - res))) + (let ((res0 (apply append + (reverse (if (table-border-between-rows? prev-borders #f) + (cons (table-rows-border col-widths + prev-borders + #f + col-separators + unicode?) + res) + res))))) + (if ansi-reset? + (sgr-block-happend res0 + (make-table-vertical-sgr-block + (sgr-block-height res0) + "\x1b[0m")) + res0)) (loop (cdr rows) (cdr borders) (if (table-border-between-rows? prev-borders (car borders))