sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 00b579566ac6fec6076548d5af1fb72eb5a879f2
parent cc3aefa4883a7c208566de6d117819be7c7083ce
Author: FRIGN <dev@frign.de>
Date:   Mon,  7 Mar 2016 20:56:15 +0100

Use the UTF8_POINT macro in cols(1)

No need for libutf any more

Diffstat:
MREADME | 2+-
Mcols.c | 15++++++++-------
2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/README b/README @@ -21,7 +21,7 @@ The following tools are implemented: 0=*|x chroot . 0=*|o cksum . 0=*|o cmp . - #*|x cols . +0#*|x cols . 0=*|o comm . 0=*|o cp (-i) 0=*|x cron . diff --git a/cols.c b/cols.c @@ -9,7 +9,6 @@ #include <unistd.h> #include "text.h" -#include "utf.h" #include "util.h" static void @@ -63,9 +62,10 @@ main(int argc, char *argv[]) } for (i = 0; i < b.nlines; i++) { - /* TODO: fix libutf to run utflen on a memory chunk - * of given size to also handle embedded NULs */ - len = utflen(b.lines[i].data); + for (j = 0, len = 0; j < b.lines[i].len; j++) { + if (UTF8_POINT(b.lines[i].data[j])) + len++; + } if (len && b.lines[i].data[b.lines[i].len - 1] == '\n') { b.lines[i].data[--(b.lines[i].len)] = '\0'; len--; @@ -79,9 +79,10 @@ main(int argc, char *argv[]) for (i = 0; i < rows; i++) { for (j = 0; j < cols && i + j * rows < b.nlines; j++) { - /* TODO: fix libutf to run utflen on a memory chunk - * of given size to also handle embedded NULs */ - len = utflen(b.lines[i + j * rows].data); + for (k = 0, len = 0; k < b.lines[i + j * rows].len; k++) { + if (UTF8_POINT(b.lines[i + j * rows].data[k])) + len++; + } fwrite(b.lines[i + j * rows].data, 1, b.lines[i + j * rows].len, stdout); if (j < cols - 1)