commit c12f5752c6768d3a218a071fe568721fba4f8875
parent 82f399cae0c9602a1527e4c0ee2d1e7c37a70770
Author: Jan Klemkow <j.klemkow@wemelug.de>
Date: Sun, 15 Nov 2015 22:10:02 +0100
make bell optional
Diffstat:
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/lchat.1 b/lchat.1
@@ -6,7 +6,7 @@
.Nd line chat
.Sh SYNOPSIS
.Nm
-.Op Fl eh
+.Op Fl aeh
.Op Fl n Ar lines
.Op Fl p Ar prompt
.Op Fl t Ar title
@@ -32,6 +32,8 @@ path.
The options are as follows:
.Bl -tag -width Ds
+.It Fl a
+Turn off the bell on external line input.
.It Fl e
Allow to enter empty lines.
.It Fl h
diff --git a/lchat.c b/lchat.c
@@ -68,7 +68,7 @@ line_output(struct slackline *sl, char *file)
static void
usage(void)
{
- fprintf(stderr, "lchar [-eh] [-n lines] [-p prompt] [-t title] [-i in]"
+ fprintf(stderr, "lchar [-aeh] [-n lines] [-p prompt] [-t title] [-i in]"
" [-o out] [directory]\n");
exit(EXIT_FAILURE);
}
@@ -84,6 +84,7 @@ main(int argc, char *argv[])
int c;
int ch;
bool empty_line = false;
+ bool bell = true;
size_t history_len = 5;
char *prompt = ">";
size_t prompt_len = strlen(prompt);
@@ -93,8 +94,11 @@ main(int argc, char *argv[])
char *out_file = NULL;
FILE *tail_fh;
- while ((ch = getopt(argc, argv, "n:i:eo:p:t:h")) != -1) {
+ while ((ch = getopt(argc, argv, "an:i:eo:p:t:h")) != -1) {
switch (ch) {
+ case 'a':
+ bell = false;
+ break;
case 'n':
errno = 0;
history_len = strtoull(optarg, NULL, 0);
@@ -234,7 +238,8 @@ main(int argc, char *argv[])
err(EXIT_FAILURE, "read");
if (write(STDOUT_FILENO, buf, n) == -1)
err(EXIT_FAILURE, "write");
- putchar('\a'); /* ring the bell on external input */
+ if (bell) /* ring the bell on external input */
+ putchar('\a');
}
out:
/* show current input line */