git: b319d934379f - main - contrib/bsddialog: Import version 0.3
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 03 Sep 2022 14:42:08 UTC
The branch main has been updated by asiciliano:
URL: https://cgit.FreeBSD.org/src/commit/?id=b319d934379f5b819cd195be7e03dbd407566fd4
commit b319d934379f5b819cd195be7e03dbd407566fd4
Merge: b0e86eed27ec 2c9fd7655ba5
Author: Alfonso S. Siciliano <asiciliano@FreeBSD.org>
AuthorDate: 2022-09-03 14:40:21 +0000
Commit: Alfonso S. Siciliano <asiciliano@FreeBSD.org>
CommitDate: 2022-09-03 14:41:44 +0000
contrib/bsddialog: Import version 0.3
New features overview:
* Unicode. User interface handles multi-column characters. API can
handle char* like a multibyte character string. Internally wide
characters are used for keyboard input, to adapt word wrapping and
dynamic text auto-sizing for multi-column characters.
* Forms refactoring. Complete rewrite deleting libformw dependency.
* Theme. New utility options to save and load custom theme at run-time.
* TUI navigation. Added keys to navigate input components. Changed
default focus behavior of input dialogs to be LGPL-dialog-like; a new
option can set the previous whiptail-like behavior.
See /usr/src/contrib/bsddialog/CHANGELOG '2022-08-29 Version 0.3'
for more detailed information.
Merge commit '2c9fd7655ba54e7239f528e1af9fe09662de9b03'
contrib/bsddialog/.gitignore | 2 +
contrib/bsddialog/CHANGELOG | 77 +-
contrib/bsddialog/GNUMakefile | 2 +-
contrib/bsddialog/Makefile | 2 +-
contrib/bsddialog/README.md | 25 +-
contrib/bsddialog/bsddialog.1 | 216 +++-
contrib/bsddialog/bsddialog.c | 259 +++--
contrib/bsddialog/examples_library/compile | 4 +-
contrib/bsddialog/examples_library/datebox.c | 4 +-
contrib/bsddialog/examples_library/form.c | 12 +-
contrib/bsddialog/examples_library/formw.c | 61 --
contrib/bsddialog/examples_library/timebox.c | 4 +-
contrib/bsddialog/examples_utility/form.sh | 10 +-
contrib/bsddialog/examples_utility/mixedform.sh | 6 +-
contrib/bsddialog/examples_utility/passwordform.sh | 10 +-
contrib/bsddialog/lib/GNUMakefile | 6 +-
contrib/bsddialog/lib/Makefile | 4 +-
contrib/bsddialog/lib/barbox.c | 78 +-
contrib/bsddialog/lib/bsddialog.3 | 172 ++-
contrib/bsddialog/lib/bsddialog.h | 20 +-
contrib/bsddialog/lib/bsddialog_theme.h | 17 +-
contrib/bsddialog/lib/formbox.c | 1145 +++++++++++++-------
contrib/bsddialog/lib/infobox.c | 6 +-
contrib/bsddialog/lib/lib_util.c | 544 +++++++---
contrib/bsddialog/lib/lib_util.h | 16 +-
contrib/bsddialog/lib/libbsddialog.c | 19 +-
contrib/bsddialog/lib/menubox.c | 155 +--
contrib/bsddialog/lib/messagebox.c | 63 +-
contrib/bsddialog/lib/textbox.c | 117 +-
contrib/bsddialog/lib/theme.c | 187 ++--
contrib/bsddialog/lib/timebox.c | 190 ++--
contrib/bsddialog/util_theme.c | 356 ++++++
contrib/bsddialog/util_theme.h | 35 +
usr.bin/bsddialog/Makefile | 2 +-
34 files changed, 2666 insertions(+), 1160 deletions(-)
diff --cc contrib/bsddialog/.gitignore
index 62f7b594a708,000000000000..10a6663fbb47
mode 100644,000000..100644
--- a/contrib/bsddialog/.gitignore
+++ b/contrib/bsddialog/.gitignore
@@@ -1,27 -1,0 +1,29 @@@
+bsddialog
+*.o
+*~
+*.a
+examples_library/buildlist
+examples_library/checklist
+examples_library/datebox
+examples_library/form
+examples_library/formw
++examples_library/margin
+examples_library/menu
+examples_library/mixedlist
+examples_library/radiolist
+examples_library/theme
+examples_library/treeview
+examples_library/infobox
+examples_library/msgbox
+examples_library/pause
+examples_library/rangebox
+examples_library/sade
+examples_library/timebox
+examples_library/yesno
++examples_library/u_msgbox
+*.gz
+lib/libbsddialog.so*
+BSDDIALOG.geany
+BSDDIALOG.tags
+*.core
+freebsd-lab/
diff --cc contrib/bsddialog/Makefile
index 5d5d0cc923a5,000000000000..344233581d30
mode 100644,000000..100644
--- a/contrib/bsddialog/Makefile
+++ b/contrib/bsddialog/Makefile
@@@ -1,50 -1,0 +1,50 @@@
+# PUBLIC DOMAIN - NO WARRANTY, see:
+# <http://creativecommons.org/publicdomain/zero/1.0/>
+#
+# Written in 2021 by Alfonso Sabato Siciliano
+
+OUTPUT= bsddialog
- SOURCES= bsddialog.c
++SOURCES= bsddialog.c util_theme.c
+OBJECTS= ${SOURCES:.c=.o}
+LIBPATH= ${.CURDIR}/lib
+LIBBSDDIALOG= ${LIBPATH}/libbsddialog.so
+
+CFLAGS+= -I${LIBPATH} -std=gnu99 -Wall -Wextra -Werror -Wno-unused-parameter
+# `make -DDEBUG`
+.if defined(DEBUG)
+CFLAGS= -g -Wall -I${LIBPATH}
+LIBDEBUG= -DDEBUG
+.endif
+LDFLAGS+= -Wl,-rpath=${LIBPATH} -L${LIBPATH} -lbsddialog
+
+BINDIR= /usr/local/bin
+MAN= ${OUTPUT}.1
+GZIP= gzip -cn
+MANDIR= /usr/local/share/man/man1
+
+INSTALL= install
+RM= rm -f
+
+all : ${OUTPUT}
+
+${OUTPUT}: ${LIBBSDDIALOG} ${OBJECTS}
+ ${CC} ${LDFLAGS} ${OBJECTS} -o ${.PREFIX}
+
+${LIBBSDDIALOG}:
+ make -C ${LIBPATH} ${LIBDEBUG}
+
+.c.o:
+ ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+
+install:
+ ${INSTALL} -s -m 555 ${OUTPUT} ${BINDIR}
+ ${GZIP} ${MAN} > ${MAN}.gz
+ ${INSTALL} -m 444 ${MAN}.gz ${MANDIR}
+
+unistall:
+ ${RM} ${BINDIR}/${OUTPUT}
+ ${RM} ${MANDIR}/${MAN}.gz
+
+clean:
+ make -C ${LIBPATH} clean
+ ${RM} ${OUTPUT} *.o *~ *.core ${MAN}.gz
diff --cc contrib/bsddialog/README.md
index 3a814b38ddb4,000000000000..016995b232ae
mode 100644,000000..100644
--- a/contrib/bsddialog/README.md
+++ b/contrib/bsddialog/README.md
@@@ -1,117 -1,0 +1,132 @@@
- # BSDDialog 0.2
++# BSDDialog 0.3
+
-
- This project provides **bsddialog** and **libbsddialog**, an utility and a
- library to build scripts and tools with TUI dialogs and widgets.
++This project provides **bsddialog** and **libbsddialog**, an utility
++and a library to build scripts and tools with TUI dialogs and widgets.
+
+
+## Intro
+
+Briefly:
- <https://www.freebsd.org/status/report-2021-04-2021-06/#_bsddialog_tui_widgets>
++<https://www.freebsd.org/status/report-2021-04-2021-06/bsddialog/>
+
+Utility:
+<https://alfonsosiciliano.gitlab.io/posts/2021-12-07-bsddialog.html>
+
+Library:
+<https://alfonsosiciliano.gitlab.io/posts/2022-01-16-libbsddialog.html>
+
+Screenshots:
+<https://www.flickr.com/photos/alfonsosiciliano/albums/72157720215006074>
+
+
+## Getting Started
+
+FreeBSD:
+
+```
+% git clone https://gitlab.com/alfix/bsddialog.git
+% cd bsddialog
+% make
+% ./bsddialog --msgbox "Hello World!" 8 20
+```
+
++Linux:
++
++```
++% git clone https://gitlab.com/alfix/bsddialog.git
++% cd bsddialog
++% make -f GNUMakefile
++% ./bsddialog --msgbox "Hello World!" 8 20
++```
++
+Output:
+
+
+
+
+## Utility
+
+**Dialogs:**
+
+--checklist, --datebox, --form, --gauge, --inputbox, --menu, --mixedform,
+--mixedgauge, --msgbox, --passwordbox, --passwordform, --pause, --radiolist,
+--rangebox, --textbox, --timebox, --treeview, --yesno.
+
+**Manual**
+
+ - [bsddialog(1)](https://alfonsosiciliano.gitlab.io/posts/2022-01-26-manual-bsddialog.html)
+
+
+**Examples**:
+
+```
+% ./bsddialog --backtitle "TITLE" --title msgbox --msgbox "Hello World!" 5 30
+% ./bsddialog --theme blackwhite --title msgbox --msgbox "Hello World!" 5 30
+% ./bsddialog --begin-y 2 --default-no --title yesno --yesno "Hello World!" 5 30
+% ./bsddialog --ascii-lines --pause "Hello World!" 8 50 10
+% ./bsddialog --checklist "Space to select" 0 0 0 Name1 Desc1 off Name2 Desc2 on
+% ./bsddialog --title yesno --hline "bsddialog" --yesno "Hello World!" 5 25
+% ./bsddialog --extra-button --help-button --yesno "Hello World!" 0 0
+```
+
+and [Examples](https://gitlab.com/alfix/bsddialog/-/tree/main/examples_utility)
+in the _Public Domain_ to build new projects:
+```
+% sh ./examples_utility/checklist.sh
+% sh ./examples_utility/form.sh
+% sh ./examples_utility/gauge.sh
+% sh ./examples_utility/infobox.sh
+% sh ./examples_utility/inputbox.sh
+% sh ./examples_utility/menu.sh
+% sh ./examples_utility/mixedform.sh
+% sh ./examples_utility/mixedgauge.sh
+% sh ./examples_utility/msgbox.sh
+% sh ./examples_utility/passwordbox.sh
+% sh ./examples_utility/passwordform.sh
+% sh ./examples_utility/pause.sh
+% sh ./examples_utility/radiolist.sh
+% sh ./examples_utility/timebox.sh
+% sh ./examples_utility/yesno.sh
+```
+
+## Library
+
+**API**
+
+ - [bsddialog.h](https://gitlab.com/alfix/bsddialog/-/blob/main/lib/bsddialog.h)
+ - [bsddialog\_theme.h](https://gitlab.com/alfix/bsddialog/-/blob/main/lib/bsddialog_theme.h)
+
+
+**Manual**
+
+ - [bsddialog(3)](https://alfonsosiciliano.gitlab.io/posts/2022-01-15-manual-libbsddialog.html)
+
+
+**Examples**:
+
+[Examples](https://gitlab.com/alfix/bsddialog/-/tree/main/examples_library)
+in the _Public Domain_ to build new projects:
+```
+% cd examples_library
+% sh compile
++% ./checklist
+% ./datebox
+% ./form
+% ./infobox
+% ./menu
+% ./mixedlist
+% ./msgbox
+% ./pause
+% ./radiolist
+% ./rangebox
+% ./theme
+% ./timebox
+% ./yesno
+```
++
++
++## TODO and Ideas
+
++ - menubar feature
++ - key callback
++ - Right-To-Left text
diff --cc contrib/bsddialog/lib/Makefile
index 962b059b3e03,000000000000..5c535c5483f1
mode 100644,000000..100644
--- a/contrib/bsddialog/lib/Makefile
+++ b/contrib/bsddialog/lib/Makefile
@@@ -1,75 -1,0 +1,75 @@@
+# PUBLIC DOMAIN - NO WARRANTY, see:
+# <http://creativecommons.org/publicdomain/zero/1.0/>
+#
+# Written in 2021 by Alfonso Sabato Siciliano
+
- VERSION = 0.2
++VERSION = 0.3
+LIBRARY = bsddialog
+LIBRARY_SO = lib${LIBRARY:=.so}
+LIBRARY_A = lib${LIBRARY:=.a}
+HEADERS = bsddialog.h bsddialog_theme.h bsddialog_progressview.h
+SOURCES = barbox.c formbox.c infobox.c libbsddialog.c lib_util.c menubox.c \
+ messagebox.c textbox.c theme.c timebox.c
+OBJECTS = ${SOURCES:.c=.o}
+CFLAGS += -D_XOPEN_SOURCE_EXTENDED -fPIC -Wall -Wextra
+LDFLAGS += -fstack-protector-strong -shared -Wl,-x -Wl,--fatal-warnings \
+ -Wl,--warn-shared-textrel -Wl,-soname,${LIBRARY_SO}.${VERSION} \
- -L/usr/lib -lformw -lncursesw -ltinfow
++ -L/usr/lib -lncursesw -ltinfow
+
+.if defined(DEBUG)
+# `make -DDEBUG`
+CFLAGS = -g -D_XOPEN_SOURCE_EXTENDED -fPIC -Wall -Wextra
+.else
+CFLAGS += -std=gnu99 -fstack-protector-strong
+.endif
+
+LOCALBASE = /usr/local
+LN = ln -s -f
+RM = rm -f
+CP = cp
+GZIP = gzip -cn
+LDCONFIG = /sbin/ldconfig -m
+MAN = ${OUTPUT}.3
+GZIP = gzip -cn
+MANDIR = ${LOCALBASE}/share/man/man3
+INSTALL = install
+RM = rm -f
+
+all : man ${LIBRARY}
+
+${LIBRARY}: ${LIBRARY_SO} ${LIBRARY_A}
+
+${LIBRARY_SO}.${VERSION}: ${OBJECTS}
+ ${CC} ${LDFLAGS} ${.ALLSRC} -o ${LIBRARY_SO}.${VERSION}
+
+${LIBRARY_SO}: ${LIBRARY_SO}.${VERSION}
+ ${LN} ${LIBRARY_SO}.${VERSION} ${LIBRARY_SO}
+
+${LIBRARY_A}: ${OBJECTS}
+ ${AR} cr ${.TARGET} ${OBJECTS}
+ ${RANLIB} ${.TARGET}
+
+.c.o:
+ ${CC} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+
+man:
+ ${GZIP} ${LIBRARY}.3 > ${LIBRARY}.3.gz
+
+clean:
+ ${RM} ${LIBRARY_SO}* *.o *~ *.gz ${LIBRARY_A}
+
+
+install:
+ ${INSTALL} -m 644 ${HEADERS} ${LOCALBASE}/include
+ ${INSTALL} -m 644 -s ${LIBRARY_SO}.${VERSION} ${LOCALBASE}/lib/
+ ${INSTALL} -l rs ${LOCALBASE}/lib/${LIBRARY_SO}.${VERSION} ${LOCALBASE}/lib/${LIBRARY_SO}
+ ${INSTALL} -m 644 ${LIBRARY_A} ${LOCALBASE}/lib
+ ${LDCONFIG} ${LOCALBASE}/lib
+ ${INSTALL} -m 644 ${LIBRARY}.3.gz ${MANDIR}
+
+unistall:
+ ${RM} ${LOCALBASE}/include/${LIBRARY}*.h
+ ${RM} ${LOCALBASE}/lib/${LIBRARY_SO}
+ ${RM} ${LOCALBASE}/lib/${LIBRARY_SO}.${VERSION}
+ ${LDCONFIG} ${LOCALBASE}/lib
+ ${RM} ${MANDIR}/${LIBRARY}.3.gz
diff --cc contrib/bsddialog/util_theme.c
index 000000000000,e003e2c3d05f..e003e2c3d05f
mode 000000,100644..100644
--- a/contrib/bsddialog/util_theme.c
+++ b/contrib/bsddialog/util_theme.c
diff --cc contrib/bsddialog/util_theme.h
index 000000000000,fd9b32db1204..fd9b32db1204
mode 000000,100644..100644
--- a/contrib/bsddialog/util_theme.h
+++ b/contrib/bsddialog/util_theme.h
diff --cc usr.bin/bsddialog/Makefile
index 66d94ec19533,000000000000..5b10f1ea0451
mode 100644,000000..100644
--- a/usr.bin/bsddialog/Makefile
+++ b/usr.bin/bsddialog/Makefile
@@@ -1,12 -1,0 +1,12 @@@
+BSDDIALOG= ${SRCTOP}/contrib/bsddialog
+.PATH: ${BSDDIALOG}
+
+PROG= bsddialog
+SRCS= bsddialog.c
- MAN= bsddialog.1
++MAN= bsddialog.1 util_theme.c
+CFLAGS+= -I${BSDDIALOG}/lib
+LIBADD= bsddialog
+
+WARNS= 3
+
+.include <bsd.prog.mk>