commit a6e5a69166f668898bfc0731b634322bb277fe5a
parent e00ac3d799536cee5a7facf4fd5b39109377193d
Author: Jan Klemkow <j.klemkow@wemelug.de>
Date: Sat, 7 Nov 2015 05:16:21 +0100
fix empty line option and behavior
Diffstat:
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/lchat.1 b/lchat.1
@@ -6,7 +6,7 @@
.Nd line chat
.Sh SYNOPSIS
.Nm
-.Op Fl nh
+.Op Fl eh
.Op Fl H Ar lines
.Op Fl p Ar prompt
.Op Fl t Ar title
@@ -24,7 +24,7 @@ in the background to get output lines from
The options are as follows:
.Bl -tag -width Ds
-.It Fl n
+.It Fl e
Allow to enter empty lines.
.It Fl h
Shows usage text.
diff --git a/lchat.c b/lchat.c
@@ -57,7 +57,7 @@ line_output(struct slackline *sl, char *file)
static void
usage(void)
{
- fprintf(stderr, "lchar [-nh] [-H lines] [-p prompt] [-t title] [-i in]"
+ fprintf(stderr, "lchar [-eh] [-H lines] [-p prompt] [-t title] [-i in]"
" [-o out] [directory]\n");
exit(EXIT_FAILURE);
}
@@ -72,7 +72,7 @@ main(int argc, char *argv[])
int fd = STDIN_FILENO;
int c;
int ch;
- bool empty_line = true;
+ bool empty_line = false;
size_t history_len = 5;
char *prompt = ">";
size_t prompt_len = strlen(prompt);
@@ -81,7 +81,7 @@ main(int argc, char *argv[])
char *out_file = NULL;
FILE *tail_fh;
- while ((ch = getopt(argc, argv, "H:i:no:p:t:h")) != -1) {
+ while ((ch = getopt(argc, argv, "H:i:eo:p:t:h")) != -1) {
switch (ch) {
case 'H':
errno = 0;
@@ -93,8 +93,8 @@ main(int argc, char *argv[])
if ((in_file = strdup(optarg)) == NULL)
err(EXIT_FAILURE, "strdup");
break;
- case 'n':
- empty_line = false;
+ case 'e':
+ empty_line = true;
break;
case 'o':
if ((out_file = strdup(optarg)) == NULL)
@@ -190,7 +190,7 @@ main(int argc, char *argv[])
c = getchar();
if (c == 13) { /* return */
if (sl->len == 0 && empty_line == false)
- continue;
+ goto out;
line_output(sl, in_file);
sl_reset(sl);
}
@@ -214,7 +214,7 @@ main(int argc, char *argv[])
err(EXIT_FAILURE, "write");
putchar('\a'); /* ring the bell on external input */
}
-
+ out:
/* show current input line */
fputs(prompt, stdout);
fputs(sl->buf, stdout);