aboutsummaryrefslogtreecommitdiff
path: root/contrib/bsddialog/utility
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bsddialog/utility')
-rw-r--r--contrib/bsddialog/utility/GNUmakefile11
-rw-r--r--contrib/bsddialog/utility/Makefile11
-rw-r--r--contrib/bsddialog/utility/bsddialog.121
-rw-r--r--contrib/bsddialog/utility/bsddialog.c2
-rw-r--r--contrib/bsddialog/utility/util.h2
-rw-r--r--contrib/bsddialog/utility/util_builders.c66
-rw-r--r--contrib/bsddialog/utility/util_cli.c2
-rw-r--r--contrib/bsddialog/utility/util_theme.c4
8 files changed, 74 insertions, 45 deletions
diff --git a/contrib/bsddialog/utility/GNUmakefile b/contrib/bsddialog/utility/GNUmakefile
index 518ec0d912d6..600efc7aacf6 100644
--- a/contrib/bsddialog/utility/GNUmakefile
+++ b/contrib/bsddialog/utility/GNUmakefile
@@ -6,6 +6,7 @@
OUTPUT = bsddialog
SOURCES = bsddialog.c util_builders.c util_cli.c util_theme.c
OBJECTS = $(SOURCES:.c=.o)
+PREFIX = /usr/local
ifneq ($(ENABLEDEBUG),)
CFLAGS += -g
@@ -20,7 +21,13 @@ endif
RM = rm -f
-all : $(OUTPUT)
+all: $(OUTPUT)
+
+install: all
+ ${INSTALL} -m 0755 ${OUTPUT} ${DESTDIR}${PREFIX}/bin/${OUTPUT}
+
+uninstall:
+ ${RM} ${DESTDIR}${PREFIX}/bin/${OUTPUT}
$(OUTPUT): $(OBJECTS)
$(CC) $^ -o $@ $(LDFLAGS)
@@ -31,3 +38,5 @@ $(OUTPUT): $(OBJECTS)
clean:
$(RM) $(OUTPUT) *.o *~
+
+.PHONY: all install uninstall clean
diff --git a/contrib/bsddialog/utility/Makefile b/contrib/bsddialog/utility/Makefile
index ab51b46a25be..e6cd541fded4 100644
--- a/contrib/bsddialog/utility/Makefile
+++ b/contrib/bsddialog/utility/Makefile
@@ -6,6 +6,7 @@
OUTPUT = bsddialog
SOURCES = bsddialog.c util_builders.c util_cli.c util_theme.c
OBJECTS = ${SOURCES:.c=.o}
+PREFIX = /usr/local
.if defined(DEBUG)
CFLAGS += -g
@@ -21,7 +22,13 @@ LDFLAGS += -ltinfow -Wl,-rpath=${LIBPATH} -L${LIBPATH} -lbsddialog
INSTALL = install
RM = rm -f
-all : ${OUTPUT}
+all: ${OUTPUT}
+
+install: all
+ ${INSTALL} -m 0755 ${OUTPUT} ${DESTDIR}${PREFIX}/bin/${OUTPUT}
+
+uninstall:
+ ${RM} ${DESTDIR}${PREFIX}/bin/${OUTPUT}
${OUTPUT}: ${OBJECTS}
${CC} ${LDFLAGS} ${OBJECTS} -o ${.PREFIX}
@@ -31,3 +38,5 @@ ${OUTPUT}: ${OBJECTS}
clean:
${RM} ${OUTPUT} *.o *~ *.core *.gz
+
+.PHONY: all install uninstall clean
diff --git a/contrib/bsddialog/utility/bsddialog.1 b/contrib/bsddialog/utility/bsddialog.1
index 4586ba16020c..0ec2a96952bd 100644
--- a/contrib/bsddialog/utility/bsddialog.1
+++ b/contrib/bsddialog/utility/bsddialog.1
@@ -1,5 +1,5 @@
.\"
-.\" Copyright (c) 2021-2024 Alfonso Sabato Siciliano
+.\" Copyright (c) 2021-2025 Alfonso Sabato Siciliano
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 25, 2024
+.Dd June 22, 2025
.Dt BSDDIALOG 1
.Os
.Sh NAME
@@ -80,7 +80,14 @@ The following options can change the default behavior of the utility and are
common to some dialog.
.Bl -tag -width Ds
.It Fl Fl alternate-screen
-If available set alternate screen mode, see
+Set alternate screen mode if the terminal and
+.Xr curses 3
+provide it.
+If enabled bsddialog draws to the alternate screen and restores the main screen
+after exit.
+See
+.Dq smcup
+in
.Xr terminfo 5 .
.It Fl Fl ascii-lines
Ascii characters to draw lines.
@@ -291,7 +298,11 @@ Set an exit code value for the
.Dq Ok
button.
.It Fl Fl normal-screen
-If available set normal screen mode, see
+Set normal screen mode.
+bsddialog does not restore the previous screen after exit.
+See
+.Dq rmcup
+in
.Xr terminfo 5 .
.It Fl Fl output-fd Ar fd
Print input from user interface to the specified file descriptor.
@@ -737,7 +748,7 @@ Right1 generic button.
.It 10
Right2 generic button.
.It 11
-Right2 generic button.
+Right3 generic button.
.El
.Sh EXAMPLES
Backtitle, title and message:
diff --git a/contrib/bsddialog/utility/bsddialog.c b/contrib/bsddialog/utility/bsddialog.c
index 3ba21eadf7a3..bce1d0ab8452 100644
--- a/contrib/bsddialog/utility/bsddialog.c
+++ b/contrib/bsddialog/utility/bsddialog.c
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2021-2024 Alfonso Sabato Siciliano
+ * Copyright (c) 2021-2025 Alfonso Sabato Siciliano
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/contrib/bsddialog/utility/util.h b/contrib/bsddialog/utility/util.h
index 2750c2ee6951..d1f7793c9755 100644
--- a/contrib/bsddialog/utility/util.h
+++ b/contrib/bsddialog/utility/util.h
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2021-2023 Alfonso Sabato Siciliano
+ * Copyright (c) 2021-2025 Alfonso Sabato Siciliano
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/contrib/bsddialog/utility/util_builders.c b/contrib/bsddialog/utility/util_builders.c
index 2e69994a0ec0..0a968d4319f9 100644
--- a/contrib/bsddialog/utility/util_builders.c
+++ b/contrib/bsddialog/utility/util_builders.c
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2021-2024 Alfonso Sabato Siciliano
+ * Copyright (c) 2021-2025 Alfonso Sabato Siciliano
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -82,7 +82,7 @@ int gauge_builder(BUILDER_ARGS)
perc = 0;
if (argc == 1) {
- perc = (u_int)strtoul(argv[0], NULL, 10);
+ perc = (unsigned int)strtoul(argv[0], NULL, 10);
perc = perc > 100 ? 100 : perc;
} else if (argc > 1) {
error_args(opt->name, argc - 1, argv + 1);
@@ -106,7 +106,7 @@ int mixedgauge_builder(BUILDER_ARGS)
exit_error(true,
"bad %s pair number [<minilabel> <miniperc>]", opt->name);
- mainperc = (u_int)strtoul(argv[0], NULL, 10);
+ mainperc = (unsigned int)strtoul(argv[0], NULL, 10);
mainperc = mainperc > 100 ? 100 : mainperc;
argc--;
argv++;
@@ -138,7 +138,7 @@ int pause_builder(BUILDER_ARGS)
if (argc > 1)
error_args(opt->name, argc - 1, argv + 1);
- secs = (u_int)strtoul(argv[0], NULL, 10);
+ secs = (unsigned int)strtoul(argv[0], NULL, 10);
output = bsddialog_pause(conf, text, rows, cols, &secs);
return (output);
@@ -189,9 +189,9 @@ static int date(BUILDER_ARGS)
error_args(opt->name, argc - 3, argv + 3);
} else if (argc == 3) {
/* lib checks/sets max and min */
- dd = (u_int)strtoul(argv[0], NULL, 10);
- mm = (u_int)strtoul(argv[1], NULL, 10);
- yy = (u_int)strtoul(argv[2], NULL, 10);
+ dd = (unsigned int)strtoul(argv[0], NULL, 10);
+ mm = (unsigned int)strtoul(argv[1], NULL, 10);
+ yy = (unsigned int)strtoul(argv[2], NULL, 10);
}
if (strcmp(opt->name, "--datebox") == 0)
@@ -259,9 +259,9 @@ int timebox_builder(BUILDER_ARGS)
if (argc > 3) {
error_args("--timebox", argc - 3, argv + 3);
} else if (argc == 3) {
- hh = (u_int)strtoul(argv[0], NULL, 10);
- mm = (u_int)strtoul(argv[1], NULL, 10);
- ss = (u_int)strtoul(argv[2], NULL, 10);
+ hh = (unsigned int)strtoul(argv[0], NULL, 10);
+ mm = (unsigned int)strtoul(argv[1], NULL, 10);
+ ss = (unsigned int)strtoul(argv[2], NULL, 10);
}
output = bsddialog_timebox(conf, text, rows, cols, &hh, &mm, &ss);
@@ -315,7 +315,7 @@ get_menu_items(int argc, char **argv, bool setprefix, bool setdepth,
for (i = 0; i < *nitems; i++) {
(*items)[i].prefix = setprefix ? argv[j++] : "";
(*items)[i].depth = setdepth ?
- (u_int)strtoul(argv[j++], NULL, 0) : 0;
+ (unsigned int)strtoul(argv[j++], NULL, 0) : 0;
(*items)[i].name = setname ? argv[j++] : "";
(*items)[i].desc = setdesc ? argv[j++] : "";
if (setstatus) {
@@ -436,7 +436,7 @@ int checklist_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--checklist missing <menurows>");
- menurows = (u_int)strtoul(argv[0], NULL, 10);
+ menurows = (unsigned int)strtoul(argv[0], NULL, 10);
get_menu_items(argc-1, argv+1, opt->item_prefix, opt->item_depth, true,
true, true, opt->item_bottomdesc, &nitems, &items, &focusitem, opt);
@@ -461,7 +461,7 @@ int menu_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--menu missing <menurows>");
- menurows = (u_int)strtoul(argv[0], NULL, 10);
+ menurows = (unsigned int)strtoul(argv[0], NULL, 10);
get_menu_items(argc-1, argv+1, opt->item_prefix, opt->item_depth, true,
true, false, opt->item_bottomdesc, &nitems, &items, &focusitem,
@@ -487,7 +487,7 @@ int radiolist_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--radiolist missing <menurows>");
- menurows = (u_int)strtoul(argv[0], NULL, 10);
+ menurows = (unsigned int)strtoul(argv[0], NULL, 10);
get_menu_items(argc-1, argv+1, opt->item_prefix, opt->item_depth, true,
true, true, opt->item_bottomdesc, &nitems, &items, &focusitem, opt);
@@ -512,7 +512,7 @@ int treeview_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--treeview missing <menurows>");
- menurows = (u_int)strtoul(argv[0], NULL, 10);
+ menurows = (unsigned int)strtoul(argv[0], NULL, 10);
get_menu_items(argc-1, argv+1, opt->item_prefix, true, true, true, true,
opt->item_bottomdesc, &nitems, &items, &focusitem, opt);
@@ -595,7 +595,7 @@ int form_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--form missing <formheight>");
- formheight = (u_int)strtoul(argv[0], NULL, 10);
+ formheight = (unsigned int)strtoul(argv[0], NULL, 10);
argc--;
argv++;
@@ -609,11 +609,11 @@ int form_builder(BUILDER_ARGS)
j = 0;
for (i = 0; i < nitems; i++) {
items[i].label = argv[j++];
- items[i].ylabel = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xlabel = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].ylabel = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xlabel = (unsigned int)strtoul(argv[j++], NULL, 10);
items[i].init = argv[j++];
- items[i].yfield = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xfield = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].yfield = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xfield = (unsigned int)strtoul(argv[j++], NULL, 10);
fieldlen = (int)strtol(argv[j++], NULL, 10);
if (fieldlen == 0)
@@ -621,7 +621,7 @@ int form_builder(BUILDER_ARGS)
else
items[i].fieldlen = abs(fieldlen);
- items[i].maxvaluelen = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].maxvaluelen = (unsigned int)strtoul(argv[j++], NULL, 10);
if (items[i].maxvaluelen == 0)
items[i].maxvaluelen = items[i].fieldlen;
@@ -678,7 +678,7 @@ int mixedform_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--mixedform missing <formheight>");
- formheight = (u_int)strtoul(argv[0], NULL, 10);
+ formheight = (unsigned int)strtoul(argv[0], NULL, 10);
argc--;
argv++;
@@ -692,21 +692,21 @@ int mixedform_builder(BUILDER_ARGS)
j = 0;
for (i = 0; i < nitems; i++) {
items[i].label = argv[j++];
- items[i].ylabel = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xlabel = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].ylabel = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xlabel = (unsigned int)strtoul(argv[j++], NULL, 10);
items[i].init = argv[j++];
- items[i].yfield = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xfield = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].yfield = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xfield = (unsigned int)strtoul(argv[j++], NULL, 10);
fieldlen = (int)strtol(argv[j++], NULL, 10);
if (fieldlen == 0)
items[i].fieldlen = strcols(items[i].init);
else
items[i].fieldlen = abs(fieldlen);
- items[i].maxvaluelen = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].maxvaluelen = (unsigned int)strtoul(argv[j++], NULL, 10);
if (items[i].maxvaluelen == 0)
items[i].maxvaluelen = items[i].fieldlen;
- items[i].flags = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].flags = (unsigned int)strtoul(argv[j++], NULL, 10);
if (fieldlen <= 0)
items[i].flags |= BSDDIALOG_FIELDREADONLY;
@@ -765,7 +765,7 @@ int passwordform_builder(BUILDER_ARGS)
if (argc < 1)
exit_error(true, "--passwordform missing <formheight>");
- formheight = (u_int)strtoul(argv[0], NULL, 10);
+ formheight = (unsigned int)strtoul(argv[0], NULL, 10);
argc--;
argv++;
@@ -780,11 +780,11 @@ int passwordform_builder(BUILDER_ARGS)
j = 0;
for (i = 0; i < nitems; i++) {
items[i].label = argv[j++];
- items[i].ylabel = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xlabel = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].ylabel = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xlabel = (unsigned int)strtoul(argv[j++], NULL, 10);
items[i].init = argv[j++];
- items[i].yfield = (u_int)strtoul(argv[j++], NULL, 10);
- items[i].xfield = (u_int)strtoul(argv[j++], NULL, 10);
+ items[i].yfield = (unsigned int)strtoul(argv[j++], NULL, 10);
+ items[i].xfield = (unsigned int)strtoul(argv[j++], NULL, 10);
fieldlen = (int)strtol(argv[j++], NULL, 10);
items[i].fieldlen = abs(fieldlen);
diff --git a/contrib/bsddialog/utility/util_cli.c b/contrib/bsddialog/utility/util_cli.c
index a70de36a699e..01b6fc31f065 100644
--- a/contrib/bsddialog/utility/util_cli.c
+++ b/contrib/bsddialog/utility/util_cli.c
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2021-2023 Alfonso Sabato Siciliano
+ * Copyright (c) 2021-2025 Alfonso Sabato Siciliano
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/contrib/bsddialog/utility/util_theme.c b/contrib/bsddialog/utility/util_theme.c
index a95cadacc1b0..cca79e83b97d 100644
--- a/contrib/bsddialog/utility/util_theme.c
+++ b/contrib/bsddialog/utility/util_theme.c
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2022-2024 Alfonso Sabato Siciliano
+ * Copyright (c) 2022-2025 Alfonso Sabato Siciliano
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -279,7 +279,7 @@ void loadtheme(const char *file, bool compatibility)
break;
case BOOL:
boolvalue = (strstr(value, "true") != NULL) ?
- true :false;
+ true : false;
*((bool*)p[i].value) = boolvalue;
break;
case COLOR: