From nobody Sat Sep 03 14:42:08 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MKctn0s0Cz4bZR6; Sat, 3 Sep 2022 14:42:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MKctn0NHxz3WZ2; Sat, 3 Sep 2022 14:42:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1662216129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ugsXpJlB/6BZH9uQDwCc+TxOFImtoY4/LMF8VvCymZQ=; b=tU1I1fGsFPYe0cMWBQeGZPvENqeA0qloSLUlI/r2ydODq3YqfpQ22HEawFOqoVLbSZGOGW iEVvqmOwj2hQDwD6k220HxO2a6TuHpP0Kmc8ggeCSybjoicq22RK36/hkz7W52Iqm7hMlx W5K96/+Jc/tq7dc9drgN33AhmtiAmyETHoMdh0+0vQETAnzLM49quUtBvHbqCEEBh8Mcv0 Y/7dGDeISHzxc39WErzZkDNHffMwq0IFkVYj3N1q+a37stTUoGDySCqda6OU7a2umasVjm yXzOUnCYSu6FUoWvKkQpgguNKz6qbyM1pHjYjVFQssTuOV2Q3DRmrRyhEa8B5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4MKctm6Zhtz19q8; Sat, 3 Sep 2022 14:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 283Eg8ok096972; Sat, 3 Sep 2022 14:42:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 283Eg8VP096971; Sat, 3 Sep 2022 14:42:08 GMT (envelope-from git) Date: Sat, 3 Sep 2022 14:42:08 GMT Message-Id: <202209031442.283Eg8VP096971@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alfonso S. Siciliano" Subject: git: b319d934379f - main - contrib/bsddialog: Import version 0.3 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asiciliano X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b319d934379f5b819cd195be7e03dbd407566fd4 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1662216129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ugsXpJlB/6BZH9uQDwCc+TxOFImtoY4/LMF8VvCymZQ=; b=B3gmtFPOGcmwCR3xWOohuAng9swQ03KXw3rpPBXgElqXkEeujnGLGrni42VP0E2H2xVAAr 5CJhzb/m3mn+CBy1csIlkg6ylN+SvYs0+XeScak4Xobox7EYTzVcjuEHO0dXzi0HxTh499 xu67WzR6R/iY/ygJ+XasZGV/VhbBBPxtmJ7TEmHV6w1c51H1wDn2LzqpG2EgXY5cguo1Pg /mBgnI5I8/ncJovgZOBo2i9bWaodD26v+XJTWwOuXCr10n+cjxnay0fMyA4SQ7HDW/SF4S C3HtFAN5CKzIR26kHt6fWSSOMzpZKVAMg9UTRFqUyVHQ7FYz6m4DzplLfiyjPA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1662216129; a=rsa-sha256; cv=none; b=tR7WFOiX3xM17srsMoBh2IJuQvnqM1bzDjgvxQY81Ax0KzBjZ0H5s9ldLmJ66DmBqF6TWA OjXgBNHT3UMsIEJ0VU/6HqQAqN/m439JZ8VNoxz5Kn0L9rDCjIcO85D7gR7tRSX/3KAEDz nQMgprGG4CqX2JeUrdCW9ETONfnPrRsErwV7KZRFaeZU8s6WDB0UJnClSzKgiNXWLc3Far Rpn44i7nS2867jvljCkTt4RhaFzpAWHYgWoIkLD8H7Sa4YyZpyI3OBz5k4+QNA2gj2UfwU s6eC9emUnY191gglrxq0W3sN8+Tu+GgU+nx/S6lyr4OZ0d9VZz9Qmyp8oT9JVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N 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 AuthorDate: 2022-09-03 14:40:21 +0000 Commit: Alfonso S. Siciliano 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: +# +# +# 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: - ++ + +Utility: + + +Library: + + +Screenshots: + + + +## 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: + +![screenshot](screenshot.png) + + +## 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: +# +# +# 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