---
paste.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/paste.c b/paste.c
index b0ac761..0159fe0 100644
--- a/paste.c
+++ b/paste.c
@@ -53,7 +53,8 @@ nextline:
for (; efgetrune(&c, dsc[i].fp, dsc[i].name) ;) {
for (m = last + 1; m < i; m++)
- efputrune(&(delim[m % delimlen]), stdout,
"<stdout>");
+ if (delim[m % delimlen] != '\0')
+ efputrune(&(delim[m % delimlen]),
stdout, "<stdout>");
last = i;
if (c == '\n') {
if (i != fdescrlen - 1)
@@ -68,7 +69,8 @@ nextline:
if (i == fdescrlen - 1)
putchar('\n');
else
- efputrune(&d, stdout, "<stdout>");
+ if (d != '\0')
+ efputrune(&d, stdout, "<stdout>");
last++;
}
}
@@ -96,7 +98,7 @@ main(int argc, char *argv[])
seq = 1;
break;
case 'd':
- adelim = EARGF(usage());
+ adelim = ARGF();
unescape(adelim);
break;
default:
@@ -109,8 +111,12 @@ main(int argc, char *argv[])
/* populate delimiters */
/* TODO: fix libutf to accept sizes */
delim = ereallocarray(NULL, utflen(adelim) + 1, sizeof(*delim));
- if (!(delimlen = utftorunestr(adelim, delim)))
+ if (*adelim == '\0') {
+ delimlen = 1;
+ *delim = '\0';
+ } else if (!(delimlen = utftorunestr(adelim, delim))) {
usage();
+ }
/* populate file list */
dsc = ereallocarray(NULL, argc, sizeof(*dsc));
--
2.25.1