чување 3a7da39339cdc139b724e6eba90001a623dc76e4
родитељ ef3d819a7f41f415719f487b7810d918540fd1d8
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Mon, 19 Jul 2021 16:17:27 +0200
Logic for -s WIP
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 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;