ufold

Прелама сваки UTF-8 улазни ред да стане у задату дужину
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 3a7da39339cdc139b724e6eba90001a623dc76e4
родитељ ef3d819a7f41f415719f487b7810d918540fd1d8
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Mon, 19 Jul 2021 16:17:27 +0200

Logic for -s WIP

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mufold.1.in | 6++++++
Mufold.c | 42++++++++++++++++++++++++++----------------
измењених датотека: 2, додавања: 32(+), брисања: 16(-)

diff --git a/ufold.1.in b/ufold.1.in @@ -60,6 +60,12 @@ writing to standard output. It is a version of a program .BR fold (1) from the GNU coreutils, but which supports input encoded in UTF-8. . +.LP +If a special filename of \[lq]\-\[rq] is given, +.B ufold +will instead read from the standard input. This also happens when no filename is +given. +. .SH AUTHOR . Strahinya Radich, diff --git a/ufold.c b/ufold.c @@ -130,11 +130,13 @@ main(int argc, char** argv) return error(errno, "Cannot open file"); char line[MAXINPUTBUF]; + u32 token[MAXBUF]; u32 uch; u8 u8_char[8]; u8* pu8_char = NULL; u8* pline = NULL; u8* pline_inner = NULL; + u32* ptoken = NULL; long col = 0; long delta = 0; size_t len = 0; @@ -153,28 +155,36 @@ main(int argc, char** argv) pline = (u8*)line; while (*pline) { - u8_char_to_u32(&uch, pline, &len); - pline_inner = pline; - pu8_char = u8_char; - while (*pline_inner && pline_inner < pline + len) - *pu8_char++ = *pline_inner++; - *pu8_char = 0; - if (uch == (u32)L'\t') - delta = 8 - (col % 8); + if (spaces) + { + /* TODO: -s logic */ + } else - delta = 1; - if (col + delta > width) { - printf("\n"); - col = 0; + u8_char_to_u32(&uch, pline, &len); + pline_inner = pline; + pu8_char = u8_char; + while (*pline_inner && pline_inner < + pline + len) + *pu8_char++ = *pline_inner++; + *pu8_char = 0; if (uch == (u32)L'\t') - delta = 8; + delta = 8 - (col % 8); else delta = 1; + if (col + delta > width) + { + printf("\n"); + col = 0; + if (uch == (u32)L'\t') + delta = 8; + else + delta = 1; + } + printf("%s", u8_char); + col += delta; + pline += len; } - printf("%s", u8_char); - col += delta; - pline += len; } printf("\n"); col = 0;