xref: /freebsd/contrib/bsddialog/CHANGELOG (revision f2d966f6c13d93cccceb8e594a69d1a50471d314)
1*f2d966f6SAlfonso S. Siciliano2025-08-15 Version 1.1
2*f2d966f6SAlfonso S. Siciliano
3*f2d966f6SAlfonso S. Siciliano	Library:
4*f2d966f6SAlfonso S. Siciliano	* add: bsddialog_slider().
5*f2d966f6SAlfonso S. Siciliano	  Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/7
6*f2d966f6SAlfonso S. Siciliano
7*f2d966f6SAlfonso S. Siciliano	Utility:
8*f2d966f6SAlfonso S. Siciliano	* add: --slider dialog.
9*f2d966f6SAlfonso S. Siciliano	  Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/7
10*f2d966f6SAlfonso S. Siciliano
113e42d719SAlfonso S. Siciliano2025-06-22 Version 1.0.5
123e42d719SAlfonso S. Siciliano
133e42d719SAlfonso S. Siciliano	Manual:
143e42d719SAlfonso S. Siciliano	* fix: "User-friendly documentation for alternate screen"
153e42d719SAlfonso S. Siciliano	  https://bugs.freebsd.org/285459.
163e42d719SAlfonso S. Siciliano	  Improve bsddialog.1: --alternate-screen and --normal-screen.
173e42d719SAlfonso S. Siciliano
183e42d719SAlfonso S. Siciliano	NetBSD (tested on amd64) refactoring, no function changes:
193e42d719SAlfonso S. Siciliano	* https://gitlab.com/alfix/bsddialog/-/merge_requests/4
203e42d719SAlfonso S. Siciliano	  lib: include <stdarg.h> in lib_util.c.
213e42d719SAlfonso S. Siciliano	* https://gitlab.com/alfix/bsddialog/-/merge_requests/5
223e42d719SAlfonso S. Siciliano	  a call to curses' refresh() is performed, while a local
233e42d719SAlfonso S. Siciliano	  variable is also called refresh.
243e42d719SAlfonso S. Siciliano	* Makefiles: add install and uninstall targets (both GND and BSD)
253e42d719SAlfonso S. Siciliano	  https://gitlab.com/alfix/bsddialog/-/merge_requests/3
263e42d719SAlfonso S. Siciliano
273e42d719SAlfonso S. Siciliano	MacOS (tested on amd64) refactoring, no function changes:
283e42d719SAlfonso S. Siciliano	* https://gitlab.com/alfix/bsddialog/-/merge_requests/6
293e42d719SAlfonso S. Siciliano	  utility: replace u_int with unsigned int.
303e42d719SAlfonso S. Siciliano
313e42d719SAlfonso S. Siciliano	Library:
323e42d719SAlfonso S. Siciliano	* fix: useless refreshes, https://gitlab.com/alfix/bsddialog/-/issues/8:
333e42d719SAlfonso S. Siciliano	  "It takes lot of time when running over a 115200 UART".
343e42d719SAlfonso S. Siciliano	  Not fixed for bsddialog_gauge() because it has to be rewritten.
353e42d719SAlfonso S. Siciliano	* change: bsddialog_backtitle() does not update the screen so the
363e42d719SAlfonso S. Siciliano	  backtitle is not printed. To use if a dialog is built later.
373e42d719SAlfonso S. Siciliano	  Rationale: see "115200 UART" problem above.
383e42d719SAlfonso S. Siciliano	* add: bsddialog_backtitle_rf() to print a top title refreshing the
393e42d719SAlfonso S. Siciliano	  screen like bsddialog_backtitle() was previously.
403e42d719SAlfonso S. Siciliano	* change: forms, ENTER is also a navigation keys in forms fields.
413e42d719SAlfonso S. Siciliano	  Request: https://bugs.freebsd.org/287592
423e42d719SAlfonso S. Siciliano	  If conf.button.always_active is true the form is closes immediatly.
433e42d719SAlfonso S. Siciliano
443e42d719SAlfonso S. Siciliano	Library and implicitly utility:
453e42d719SAlfonso S. Siciliano	* fix: textbox buttons returned values (was always OK).
463e42d719SAlfonso S. Siciliano	  Thanks to https://reviews.freebsd.org/D48668.
473e42d719SAlfonso S. Siciliano	* change: TAB is a navigation keys in forms. Previously it directly
483e42d719SAlfonso S. Siciliano	  switched form-fields <-> buttons.
493e42d719SAlfonso S. Siciliano	  Request: https://bugs.freebsd.org/287592
503e42d719SAlfonso S. Siciliano
513e42d719SAlfonso S. Siciliano	Utility:
523e42d719SAlfonso S. Siciliano	* change: forms, ENTER is a also navigation keys in forms fields.
533e42d719SAlfonso S. Siciliano	  Previously it directly closed the form except with --switch-buttons
543e42d719SAlfonso S. Siciliano	  Request: https://bugs.freebsd.org/287592
553e42d719SAlfonso S. Siciliano
563e42d719SAlfonso S. Siciliano
573e42d719SAlfonso S. Siciliano2024-07-01 Version 1.0.4
58d4ca0015SKyle Evans
59d4ca0015SKyle Evans	Utility internal refactoring (no functional change):
60d4ca0015SKyle Evans	* change: rename an internal constant to avoid a future conflict
61d4ca0015SKyle Evans	    because FreeBSD is changing headers files for _FORTIFY_SOURCE.
62d4ca0015SKyle Evans	    Reported and fixed by Kyle Evans.
63d4ca0015SKyle Evans
643e42d719SAlfonso S. Siciliano2024-05-27 Version 1.0.3
65079f6054SAlfonso S. Siciliano
66079f6054SAlfonso S. Siciliano	Utility:
67079f6054SAlfonso S. Siciliano	change: --form and --mixedform do not print field value to output fd if
68079f6054SAlfonso S. Siciliano	        <fieldlen> is <= 0 (readonly). To note --mixedgauge continues
69079f6054SAlfonso S. Siciliano	        to print field value if <flag> = 2 (readonly) unless <fieldlen>
70079f6054SAlfonso S. Siciliano	        is <= 0 (as described previously).
71079f6054SAlfonso S. Siciliano
72079f6054SAlfonso S. Siciliano
73a6d8be45SAlfonso S. Siciliano2024-04-11 Version 1.0.2
74a6d8be45SAlfonso S. Siciliano
75a6d8be45SAlfonso S. Siciliano	Utility:
76a6d8be45SAlfonso S. Siciliano	improvements and changes for --form and --mixedform:
77a6d8be45SAlfonso S. Siciliano	    * add: <maxletters> 0 sets <maxletters> like <fieldlen>.
78a6d8be45SAlfonso S. Siciliano	    * add: <fieldlen> 0 sets <fieldlen> like <init> width and readonly.
79a6d8be45SAlfonso S. Siciliano	    * change: <maxletters> 0 was an error (remains error in lib).
80a6d8be45SAlfonso S. Siciliano	    * change: <fieldlen> 0 was an error (remains error in lib)
81a6d8be45SAlfonso S. Siciliano	      (<fieldlen> 0 and <init> "" is still an error.).
82a6d8be45SAlfonso S. Siciliano
83a6d8be45SAlfonso S. Siciliano	Library and implicitly utility:
84a6d8be45SAlfonso S. Siciliano	* add: Ctrl-l to redraw dialog.
85a6d8be45SAlfonso S. Siciliano	    Request stable@freebsd.org January 2024.
86a6d8be45SAlfonso S. Siciliano	* add: -, +, Ctrl-p, Ctrl-n for several dialogs.
87a6d8be45SAlfonso S. Siciliano	    +, - request for menus, private feature request.
88a6d8be45SAlfonso S. Siciliano	    Ctrl-p, Ctrl-n for menu, request hackers@freebsd.org February 2024.
89a6d8be45SAlfonso S. Siciliano	* fix: escaped text ending with an escape symbol.
90a6d8be45SAlfonso S. Siciliano	* change: truncate mixedgauge long (over the screen/minibars)
91a6d8be45SAlfonso S. Siciliano	    minilabels adding "...". As a result, avoid check-size error.
92a6d8be45SAlfonso S. Siciliano	    https://gitlab.com/alfix/bsddialog/-/issues/6.
93a6d8be45SAlfonso S. Siciliano	* change: invert UP/DOWN keys to set a rangebox value.
94a6d8be45SAlfonso S. Siciliano
95a6d8be45SAlfonso S. Siciliano
96a6d8be45SAlfonso S. Siciliano2023-11-16 Version 1.0.1
97a6d8be45SAlfonso S. Siciliano
98a6d8be45SAlfonso S. Siciliano	Library Internal Refactoring:
99a6d8be45SAlfonso S. Siciliano	* add: arrow macro handlers.
100a6d8be45SAlfonso S. Siciliano	* change: Box-drawing characters, from utf8 to wide chars to avoid to
101a6d8be45SAlfonso S. Siciliano	    handle "env NCURSES_NO_UTF8_ACS=1".
102a6d8be45SAlfonso S. Siciliano	    Request https://bugs.freebsd.org/274472,
103a6d8be45SAlfonso S. Siciliano	    Rationale https://reviews.freebsd.org/D42380.
104a6d8be45SAlfonso S. Siciliano
10561ba55bcSBaptiste Daroussin2023-08-01 Version 1.0
10661ba55bcSBaptiste Daroussin
10761ba55bcSBaptiste Daroussin	Utility:
10861ba55bcSBaptiste Daroussin	* add: comments to --save-theme output file.
10961ba55bcSBaptiste Daroussin	* add: blink, halfbright, highlight to --save-theme and --load-theme.
11061ba55bcSBaptiste Daroussin	* add: theme.menu.[f_]prefixcolor to --save-theme and --load-theme.
11161ba55bcSBaptiste Daroussin	* add: --datebox-format <d/m/y|m/d/y|y/m/d> to set --datebox UI.
11261ba55bcSBaptiste Daroussin	* add: --help-print-items (--help-status becomes alias).
11361ba55bcSBaptiste Daroussin	* add: --text-escape (--colors becomes alias).
11461ba55bcSBaptiste Daroussin	* add: new escapes \Zd, \Zk, \Zs, \ZD, \ZK, \ZS, for --text-escape.
11561ba55bcSBaptiste Daroussin	* add: env NO_COLOR, to set blackwhite theme.
11661ba55bcSBaptiste Daroussin	* add: $HOME/.bsddialog.conf startup theme file.
11761ba55bcSBaptiste Daroussin	* add: env BSDDIALOG_THEMEFILE startup theme file.
11861ba55bcSBaptiste Daroussin	* add: --left1-button <label>.
11961ba55bcSBaptiste Daroussin	* add: --left2-button <label>.
12061ba55bcSBaptiste Daroussin	* add: --left3-button <label>.
12161ba55bcSBaptiste Daroussin	* add: --right1-button <label>.
12261ba55bcSBaptiste Daroussin	* add: --right2-button <label>.
12361ba55bcSBaptiste Daroussin	* add: --right3-button <label>.
12461ba55bcSBaptiste Daroussin	* add: dynamic exit codes.
12561ba55bcSBaptiste Daroussin	    - add: --error-exit-code.
12661ba55bcSBaptiste Daroussin	    - add: --ok-exit-code.
12761ba55bcSBaptiste Daroussin	    - add: --cancel-exit-code.
12861ba55bcSBaptiste Daroussin	    - add: --help-exit-code.
12961ba55bcSBaptiste Daroussin	    - add: --extra-exit-code.
13061ba55bcSBaptiste Daroussin	    - add: --timeout-exit-code.
13161ba55bcSBaptiste Daroussin	    - add: --esc-exit-code.
13261ba55bcSBaptiste Daroussin	    - add: --left1-exit-code.
13361ba55bcSBaptiste Daroussin	    - add: --left2-exit-code.
13461ba55bcSBaptiste Daroussin	    - add: --left3-exit-code.
13561ba55bcSBaptiste Daroussin	    - add: --right1-exit-code.
13661ba55bcSBaptiste Daroussin	    - add: --right2-exit-code.
13761ba55bcSBaptiste Daroussin	    - add: --right3-exit-code.
13861ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_ERROR.
13961ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_OK.
14061ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_CANCEL.
14161ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_HELP.
14261ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_EXTRA.
14361ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_TIMEOUT.
14461ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_ESC.
14561ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_LEFT1.
14661ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_LEFT2.
14761ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_LEFT3.
14861ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_RIGHT1.
14961ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_RIGHT2.
15061ba55bcSBaptiste Daroussin	    - add: env BSDDIALOG_RIGHT3.
15161ba55bcSBaptiste Daroussin	* add: undocumented envs for bsdconfig(8) compatibility.
15261ba55bcSBaptiste Daroussin	    - env BSDDIALOG_COMPATRC for use_shadow setting.
15361ba55bcSBaptiste Daroussin	    - env BSDDIALOG_ITEM_HELP to add/set exit code.
15461ba55bcSBaptiste Daroussin	* change: rename themes --theme <3d|blackwhite|flat>.
15561ba55bcSBaptiste Daroussin	* change: --no-names and --no-descriptions mutually exclusive (via lia).
15661ba55bcSBaptiste Daroussin	* change: quote only checklist output items if necessary. Previously
15761ba55bcSBaptiste Daroussin	    also radiolist item.
15861ba55bcSBaptiste Daroussin	* change: dialogs with user input print always values except with ERROR,
15961ba55bcSBaptiste Daroussin	    ESC, Cancel. Previously the situation was quite heterogeneous.
16061ba55bcSBaptiste Daroussin	* improve: DIAGNOSTIC messages adding fmt string errors.
16161ba55bcSBaptiste Daroussin	* improve: disable theme setting (opt and env) with no-color terminals.
16261ba55bcSBaptiste Daroussin	* improve: menus on|off status (strcasecmp, diagnostic, real off check).
16361ba55bcSBaptiste Daroussin	* improve: --bikeshed with button delimiter and --date-format.
16461ba55bcSBaptiste Daroussin	* improve: --textbox accepts button options.
16561ba55bcSBaptiste Daroussin	* improve: Forms with Help button.
16661ba55bcSBaptiste Daroussin	    - print "HELP" (like menus).
16761ba55bcSBaptiste Daroussin	    - accept --help-list-items.
16861ba55bcSBaptiste Daroussin	    - accept --help-print-name.
16961ba55bcSBaptiste Daroussin	* fix: --load-theme attributes.
17061ba55bcSBaptiste Daroussin	* fix: --clear-screen with --and-dialog.
17161ba55bcSBaptiste Daroussin	* delete: --theme <bsddialog> (partially implemented).
17261ba55bcSBaptiste Daroussin	* delete: --esc-return-cancel (replaced by new env and option).
17361ba55bcSBaptiste Daroussin	* delete: --generic-button1 (replaced by --right1-button).
17461ba55bcSBaptiste Daroussin	* delete: --generic-button2 (replaced by --right2-button).
17561ba55bcSBaptiste Daroussin	* refactor: modularize in more files (main, cli, builders, theme).
17661ba55bcSBaptiste Daroussin
17761ba55bcSBaptiste Daroussin	Library:
17861ba55bcSBaptiste Daroussin	* add: bsddialog_inmode().
17961ba55bcSBaptiste Daroussin	* add: bsddialog_clear(y) for utility --clear-screen.
18061ba55bcSBaptiste Daroussin	* add: bsddialog_refresh() for utility terminal mode options.
18161ba55bcSBaptiste Daroussin	* add: conf.date.format="d/m/y"|"m/d/y"|"y/m/d" to customize
18261ba55bcSBaptiste Daroussin	    bsddialog_datebox() UI (boxes) with a date format.
18361ba55bcSBaptiste Daroussin	* add: 'const char *end' to bsddialog_gauge().
18461ba55bcSBaptiste Daroussin	* add: draw focus on the shortcut-key-selected button at exit.
18561ba55bcSBaptiste Daroussin	* add: escapes for conf.text.highlight \Zd, \Zk, \Zs, \ZD, \ZK, \ZS.
18661ba55bcSBaptiste Daroussin	* add: other theme flags.
18761ba55bcSBaptiste Daroussin	    - BSDDIALOG_BLINK.
18861ba55bcSBaptiste Daroussin	    - BSDDIALOG_HALFBRIGHT.
18961ba55bcSBaptiste Daroussin	    - BSDDIALOG_HIGHLIGHT.
19061ba55bcSBaptiste Daroussin	* add: generic buttons.
19161ba55bcSBaptiste Daroussin	    - conf.button.left1_label, BSDDIALOG_LEFT1 return value.
19261ba55bcSBaptiste Daroussin	    - conf.button.left2_label, BSDDIALOG_LEFT2 return value.
19361ba55bcSBaptiste Daroussin	    - conf.button.left3_label, BSDDIALOG_LEFT3 return value.
19461ba55bcSBaptiste Daroussin	    - conf.button.right1.label, BSDDIALOG_RIGHT1 return value.
19561ba55bcSBaptiste Daroussin	    - conf.button.right2.label, BSDDIALOG_RIGHT2 return value.
19661ba55bcSBaptiste Daroussin	    - conf.button.right3.label, BSDDIALOG_RIGHT3 return value.
19761ba55bcSBaptiste Daroussin	* add: unused bsddialog_menugroup.min_on for future features.
19861ba55bcSBaptiste Daroussin	* add: theme.menu.f_prefixcolor and theme.menu.prefixcolor.
19961ba55bcSBaptiste Daroussin	* improve: check (when possible) API pointers.
20061ba55bcSBaptiste Daroussin	* improve: circolar buttons with left and right keys for msgbox, yesno,
20161ba55bcSBaptiste Daroussin	    menus, rangebox and pause.
20261ba55bcSBaptiste Daroussin	* improve: bsddialog_textbox() handles conf.buttons.
20361ba55bcSBaptiste Daroussin	* improve: bsddialog_datebox() a box change affects the others as well.
20461ba55bcSBaptiste Daroussin	* improve: bsddialog_geterror() with fmt strings.
20561ba55bcSBaptiste Daroussin	* change: API NULL strings handled like "", except gauge *sep and *end.
20661ba55bcSBaptiste Daroussin	* change: menus and form less restrictive with text, hide text with
20761ba55bcSBaptiste Daroussin	    little screens (same behavior as other dialogs).
20861ba55bcSBaptiste Daroussin	* change: mixedgauge BSDDIALOG_MG_BLANK does not draw minibar but prints
20961ba55bcSBaptiste Daroussin	    minilabel. The change allows mixedgauge to add sections. To restore
21061ba55bcSBaptiste Daroussin	    the previous behavior setting minilabel to "".
21161ba55bcSBaptiste Daroussin	* change: check/set bsddialog_gauge() perc max 100.
21261ba55bcSBaptiste Daroussin	* change: check/set bsddialog_mixedgauge() mainperc max 100.
21361ba55bcSBaptiste Daroussin	* change: conf.menu.no_name and conf.menu.no_desc mutually exclusive.
21461ba55bcSBaptiste Daroussin	* change: bsddialog_pause() sec -> *sec to know remaining time at exit.
21561ba55bcSBaptiste Daroussin	* change: add *focusitem to bsddialog_form() like menus.
21661ba55bcSBaptiste Daroussin	* change: "pointer" values are always set except when BSDDIALOG_ERROR
21761ba55bcSBaptiste Daroussin	    occurs. Examples *yy/*mm/*ss, rangebox *value.
21861ba55bcSBaptiste Daroussin	    - delete conf.menu.on_without_ok.
21961ba55bcSBaptiste Daroussin	    - delete conf.form.value_without_ok.
22061ba55bcSBaptiste Daroussin	* rename: conf.text.highlight -> conf.text.escape.
22161ba55bcSBaptiste Daroussin	* rename: theme.menu.namesepcolor -> theme.menu.sepnamecolor.
22261ba55bcSBaptiste Daroussin	* rename: theme.menu.descsepcolor -> theme.menu.sepdesccolor.
22361ba55bcSBaptiste Daroussin	* fix: bsddialog_pause() elevation bar after resize.
22461ba55bcSBaptiste Daroussin	* fix: bsddialog_textbox() key '0'.
22561ba55bcSBaptiste Daroussin	* fix: timebox.c checksize (boxes width).
22661ba55bcSBaptiste Daroussin	* fix: extend menurows after shrink and enlarge.
22761ba55bcSBaptiste Daroussin	* fix: menu pad and form pad "re-expansion" after shrink and enlarge.
22861ba55bcSBaptiste Daroussin	* fix: shadow top-left corner (trick wresize() before wmove()).
22961ba55bcSBaptiste Daroussin	* fix: increment bsddialog_total_progview size for more general use.
23061ba55bcSBaptiste Daroussin	* delete: BSDDIALOG_THEME_BSDDIALOG (partially implemented).
23161ba55bcSBaptiste Daroussin	* delete: conf.button.generic1_label (for new conf.button.right1_label).
23261ba55bcSBaptiste Daroussin	* delete: BSDDIALOG_GENERIC1 return value (new BSDDIALOG_RIGHT1).
23361ba55bcSBaptiste Daroussin	* delete: conf.button.generic2_label (for new conf.button.right2_label).
23461ba55bcSBaptiste Daroussin	* delete: BSDDIALOG_GENERIC2 return value (new BSDDIALOG_RIGHT2).
23561ba55bcSBaptiste Daroussin	* delete: bsddialog_clearterminal(), replaced by bsddialog_clear(y).
23661ba55bcSBaptiste Daroussin	* refactor: internal implementation.
23761ba55bcSBaptiste Daroussin	    - add: internal structures to represent components.
23861ba55bcSBaptiste Daroussin	    - merge: (when possible) dialogs autosize.
23961ba55bcSBaptiste Daroussin	    - merge: (when possible) dialogs checksize.
24061ba55bcSBaptiste Daroussin	    - merge: for each dialog "build" with "update" -> <dialog>_redraw().
24161ba55bcSBaptiste Daroussin	    - merge: new_dialog() with update_dialog() -> draw_dialog().
24261ba55bcSBaptiste Daroussin	    - merge: infobox.c with messagebox.c (delete infobox.c)
24361ba55bcSBaptiste Daroussin	    - merge: bsddialog_datebox() + bsddialog_calendar() -> datebox.c
24461ba55bcSBaptiste Daroussin	    - change: flat and blackwhite real themes, 3d adapted from flat.
24561ba55bcSBaptiste Daroussin	    - improve: replace wrefresh() -> wnoutrefresh()/doupdate().
24661ba55bcSBaptiste Daroussin	    - improve: replace prefresh() -> pnoutrefresh()/doupdate().
24761ba55bcSBaptiste Daroussin	    - improve: menu split code to build private items.
24861ba55bcSBaptiste Daroussin	    - improve: form split code to build private items.
24961ba55bcSBaptiste Daroussin	    - delete: -Wno-implicit-fallthrough.
25061ba55bcSBaptiste Daroussin
25161ba55bcSBaptiste Daroussin
25261ba55bcSBaptiste Daroussin2023-06-12 Version 0.4.2
25361ba55bcSBaptiste Daroussin
25461ba55bcSBaptiste Daroussin	Library:
25561ba55bcSBaptiste Daroussin	* fix: compile error with aarch64-gcc12 for "\Z[0-7]" check;
25661ba55bcSBaptiste Daroussin	    https://gitlab.com/alfix/bsddialog/-/issues/5.
25761ba55bcSBaptiste Daroussin	* fix: BSDDIALOG_FIELDCURSOREND with multiple items
25861ba55bcSBaptiste Daroussin	    (warning aarch64-gcc12).
25961ba55bcSBaptiste Daroussin
26061ba55bcSBaptiste Daroussin
26161ba55bcSBaptiste Daroussin2023-01-02 Version 0.4.1
26261ba55bcSBaptiste Daroussin
26361ba55bcSBaptiste Daroussin	Utility:
26461ba55bcSBaptiste Daroussin	* fix: default space separator menus output, except if --separator " ".
26561ba55bcSBaptiste Daroussin	* rename: GNUMakefile to GNUmakefile to simplify linux build.
26661ba55bcSBaptiste Daroussin	    Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/2.
26761ba55bcSBaptiste Daroussin
26861ba55bcSBaptiste Daroussin	Library:
26961ba55bcSBaptiste Daroussin	* fix: t.dialog.linelowercolor no bold-black, some terminal draws grey.
27061ba55bcSBaptiste Daroussin	* fix: text wrapping (actual string length) with --colors.
27161ba55bcSBaptiste Daroussin	* rename: GNUMakefile to GNUmakefile to simplify linux build.
27261ba55bcSBaptiste Daroussin	    Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/2.
27361ba55bcSBaptiste Daroussin
27461ba55bcSBaptiste Daroussin
27584823cc7SAlfonso S. Siciliano2022-09-24 Version 0.4
27684823cc7SAlfonso S. Siciliano
27784823cc7SAlfonso S. Siciliano	Utility:
27884823cc7SAlfonso S. Siciliano	* add: --normal-screen to set normal mode.
27984823cc7SAlfonso S. Siciliano	* add: --alternate-screen to set alternate mode.
28084823cc7SAlfonso S. Siciliano	* add: --keep-tite as --alternate-screen alias.
28184823cc7SAlfonso S. Siciliano	* add: --and-dialog to build other dialogs.
28284823cc7SAlfonso S. Siciliano	* add: --and-widget as --and-dialog alias.
28361ba55bcSBaptiste Daroussin	* add: --no-names (--no-tags becomes alias).
28461ba55bcSBaptiste Daroussin	* add: --no-descriptions (--no-items becomes alias).
28561ba55bcSBaptiste Daroussin	* add: --help-print-name (--help-tags becomes alias).
28661ba55bcSBaptiste Daroussin	* add: --item-bottom-desc (--item-help becomes alias).
28784823cc7SAlfonso S. Siciliano	* add: --cr-wrap (was partially implemented) to keep '\n' with "\n".
28884823cc7SAlfonso S. Siciliano	* add: --text-unchanged to avoid default modification.
28961ba55bcSBaptiste Daroussin	* add: --tab-escape to enable "\t" in text.
29084823cc7SAlfonso S. Siciliano	* add: --clear-screen to clear the screen.
29184823cc7SAlfonso S. Siciliano	* add: --clear-dialog to clear the dialog (was --clear).
29284823cc7SAlfonso S. Siciliano	* add: --calendar dialog to select a date.
29384823cc7SAlfonso S. Siciliano	* add: DIAGNOSTICS messages for bad arguments number.
29484823cc7SAlfonso S. Siciliano	* add: DIAGNOSTICS messages for missing and unexpected options.
29561ba55bcSBaptiste Daroussin	* change: --clear becomes alias for --clear-screen.
29684823cc7SAlfonso S. Siciliano	* change: --print-maxsize format output.
29784823cc7SAlfonso S. Siciliano	* change: --menu, --radiolist, --checklist and --treeview output.
29884823cc7SAlfonso S. Siciliano	    - no printed items with Cancel or ESC.
29984823cc7SAlfonso S. Siciliano	    - --separator prints <sepstr> before each item except HELP.
30084823cc7SAlfonso S. Siciliano	    - --separator and --separate-output print <sepstr> after each item.
30184823cc7SAlfonso S. Siciliano	    - quoted item name/desc only when needed.
30284823cc7SAlfonso S. Siciliano	    - --menu avoids to print selected item after focused HELP item.
30384823cc7SAlfonso S. Siciliano	* change: text default modification.
30484823cc7SAlfonso S. Siciliano	    - without a "\n": '\t' -> space, '\n' -> '\n', trim spaces.
30584823cc7SAlfonso S. Siciliano	    - with a "\n": '\t' -> space, '\n' -> space, "\n" -> '\n', no trim.
30684823cc7SAlfonso S. Siciliano	    - delete '\n' after "\n" (also with --cr-wrap).
30784823cc7SAlfonso S. Siciliano	* change: --datebox input and output format yy/mm/dd -> dd/mm/yy.
30884823cc7SAlfonso S. Siciliano	* delete: --no-collapse (partially implemented).
30984823cc7SAlfonso S. Siciliano	* delete: --no-nl-expand (partially implemented).
31084823cc7SAlfonso S. Siciliano	* delete: --trim (partially implemented).
31184823cc7SAlfonso S. Siciliano
31284823cc7SAlfonso S. Siciliano	Library:
31384823cc7SAlfonso S. Siciliano	* add: bsddialog_msgbox() HOME, END, PPAGE and NPAGE keys.
31484823cc7SAlfonso S. Siciliano	* add: bsddialog_yesno() HOME, END, PPAGE and NPAGE keys.
31584823cc7SAlfonso S. Siciliano	* add: bsddialog_menu() SPACE key (equivalent to ENTER).
31684823cc7SAlfonso S. Siciliano	* add: bsddialog_calendar() to select a date.
31784823cc7SAlfonso S. Siciliano	* change: rename enum bsddialog_grouptype -> enum bsddialog_menutype.
31861ba55bcSBaptiste Daroussin	* change: fixed-menurows becomes at most menurows (depending on text).
31961ba55bcSBaptiste Daroussin	* change: fixed-rows becomes at most rows, min(rows, screenH - shadow).
32061ba55bcSBaptiste Daroussin	* change: fixed-cols becomes at most cols, min(cols, screenW - shadow).
32184823cc7SAlfonso S. Siciliano	* delete: undocumented internal bsddialog_menuitem.depth factor (was 2).
32284823cc7SAlfonso S. Siciliano
32384823cc7SAlfonso S. Siciliano
324b319d934SAlfonso S. Siciliano2022-08-29 Version 0.3
325b319d934SAlfonso S. Siciliano
326b319d934SAlfonso S. Siciliano	Utility:
327b319d934SAlfonso S. Siciliano	* add: --textbox accepts options for the first button.
32884823cc7SAlfonso S. Siciliano	* add: --columns-per-row for text autosizing.
32984823cc7SAlfonso S. Siciliano	* add: --load-theme to read and set a custom theme at runtime.
33084823cc7SAlfonso S. Siciliano	* add: --save-theme to save current theme.
33184823cc7SAlfonso S. Siciliano	* add: --bikeshed for random settings.
33261ba55bcSBaptiste Daroussin	* add: --switch-buttons to enable buttons/input widgets focus switching.
33361ba55bcSBaptiste Daroussin	       Available for: --form, --inputbox, --mixedform, --passwordform,
33461ba55bcSBaptiste Daroussin	       --passwordbox, --timebox and --datebox.
335b319d934SAlfonso S. Siciliano	* change: rename --esc-cancelvalue to --esc-return-cancel.
336b319d934SAlfonso S. Siciliano	* change: form field value is printed like multibyte charachter string,
337b319d934SAlfonso S. Siciliano	          previously widechar string.
33884823cc7SAlfonso S. Siciliano	* change: --timebox output with zero padding.
33984823cc7SAlfonso S. Siciliano	* change: --datebox output mm and dd with zero padding.
340b319d934SAlfonso S. Siciliano	* fix: --hline with empty string.
341b319d934SAlfonso S. Siciliano	* fix: avoid to overlay the backtitle by setting a top margin.
342b319d934SAlfonso S. Siciliano	* fix: avoid to overlay down shadow with menus and forms bottomdesc
343b319d934SAlfonso S. Siciliano	       by setting a down margin.
344b319d934SAlfonso S. Siciliano	* fix: --form read-only flag with multiple fields.
345b319d934SAlfonso S. Siciliano
346b319d934SAlfonso S. Siciliano	Library:
347b319d934SAlfonso S. Siciliano	* add: conf.auto_topmargin and conf.auto_downmargin.
348b319d934SAlfonso S. Siciliano	* add: bsddialog_textbox() accepts conf.button.* for the first button.
349b319d934SAlfonso S. Siciliano	* add: bsddialog_textbox() arrows and percentage.
350b319d934SAlfonso S. Siciliano	* add: conf.text.cols_per_row to set a ratio for text autosizing.
351b319d934SAlfonso S. Siciliano	* add: timebox and datebox arrows and focus background for boxes.
352b319d934SAlfonso S. Siciliano	* add: timebox and datebox UP key to switch focus.
35384823cc7SAlfonso S. Siciliano	* add: bsddialog_init_notheme() in bsddialog.h.
35484823cc7SAlfonso S. Siciliano	* add: bsddialog_hascolors() in bsddialog_theme.h.
355b319d934SAlfonso S. Siciliano	* add: theme.form.bottomdesccolor and theme.menu.bottomdesccolor.
356b319d934SAlfonso S. Siciliano	* add: conf.button.always_active to disable buttons/input-boxes switch.
357b319d934SAlfonso S. Siciliano	* add: dynamic buttons margin.
358b319d934SAlfonso S. Siciliano	    - add: theme.button.minmargin and theme.button.maxmargin.
359b319d934SAlfonso S. Siciliano	    - delete: theme.button.hmargin.
360b319d934SAlfonso S. Siciliano	* add: Unicode.
361b319d934SAlfonso S. Siciliano	    - UI handles multicolumn charachters: backtitle, title,
362b319d934SAlfonso S. Siciliano	      text (word wrapping, autosizing), menus (shortcuts, name, desc),
363b319d934SAlfonso S. Siciliano	      forms (label, field), textbox, mixedgauge (minilabel),
364b319d934SAlfonso S. Siciliano	      buttons (label, shortcuts), bottomtitle.
365b319d934SAlfonso S. Siciliano	    - API handles char* arguments like multibyte charachter string,
366b319d934SAlfonso S. Siciliano	      depending on the current locale.
367b319d934SAlfonso S. Siciliano	    - Internally wide charachters are used to get input from keyboard
368b319d934SAlfonso S. Siciliano	      and to adapt word wrapping and dynamic text autosizing to
369b319d934SAlfonso S. Siciliano	      muticolumn charachters.
370b319d934SAlfonso S. Siciliano	* refactoring: (rewrite) form.c.
371b319d934SAlfonso S. Siciliano	    - delete: libformw dep implementing its features from scratch.
372b319d934SAlfonso S. Siciliano	    - delete: maxvaluelen >= valuelen constraint.
373b319d934SAlfonso S. Siciliano	    - delete: conf.form.enable_wchar, get always unicode (wchar) input.
374b319d934SAlfonso S. Siciliano	    - add: KEY_HOME, KEY_END, KEY_PPAGE, KEY_NPAGE keys in field.
375b319d934SAlfonso S. Siciliano	    - add: KEY_UP can move focus from buttons to fields.
376b319d934SAlfonso S. Siciliano	    - add: KEY_DOWN can move focus from item to buttons, if nitem is 1.
377b319d934SAlfonso S. Siciliano	    - add: conf.form.securembch secure multibyte charachter.
378b319d934SAlfonso S. Siciliano	    - add: BSDDIALOG_FIELDNOCOLOR for formitem.flags.
379b319d934SAlfonso S. Siciliano	    - add: BSDDIALOG_FIELDCURSOREND for formitem.flags.
380b319d934SAlfonso S. Siciliano	    - add: BSDDIALOG_FIELDEXTEND for formitem.flags.
381b319d934SAlfonso S. Siciliano	    - add: BSDDIALOG_FIELDSINGLEBYTE for formitem.flags.
382b319d934SAlfonso S. Siciliano	    - add: resizing and refresh after KEY_RESIZE (SIGWINCH).
383b319d934SAlfonso S. Siciliano	    - add: items scrolling.
384b319d934SAlfonso S. Siciliano	    - add: conf.form.value_wchar, value is wchar_t* instead of MB-char*.
385b319d934SAlfonso S. Siciliano	    - add: formheight autosizing.
386b319d934SAlfonso S. Siciliano	    - add: dynamic item position.
387b319d934SAlfonso S. Siciliano	* fix: bsddialog_gauge() with fd < 0.
388b319d934SAlfonso S. Siciliano	* fix: bsddialog_gauge() refresh new text.
38984823cc7SAlfonso S. Siciliano	* fix: internal segmentation fault with disabled shadow.
390b319d934SAlfonso S. Siciliano	* fix: center position without shadow.
391b319d934SAlfonso S. Siciliano	* fix: bsddialog_infobox() with zero text length.
392b319d934SAlfonso S. Siciliano	* fix: text wrapping with more than 1024 words.
393b319d934SAlfonso S. Siciliano	* fix: rename theme.shadow.h to theme.shadow.y.
394b319d934SAlfonso S. Siciliano	* fix: rename theme.shadow.w to theme.shadow.x.
395b319d934SAlfonso S. Siciliano	* fix: menurows autosize with fixed rows improving text_size().
396b319d934SAlfonso S. Siciliano	* fix: messagebox.c scrolling and checksize without text.
397b319d934SAlfonso S. Siciliano
398b319d934SAlfonso S. Siciliano
399b319d934SAlfonso S. Siciliano2022-03-02 Version 0.2
400bce40c02SAlfonso S. Siciliano
401bce40c02SAlfonso S. Siciliano	Utility:
402bce40c02SAlfonso S. Siciliano	* add: (this) CHANGELOG.
403bce40c02SAlfonso S. Siciliano	* add: "menus" print item with focus (except with OK and ERROR).
404bce40c02SAlfonso S. Siciliano	* add: pause.sh example.
405bce40c02SAlfonso S. Siciliano	* add: timebox.sh example.
406bce40c02SAlfonso S. Siciliano	* change: --theme name "default" -> "flat".
407bce40c02SAlfonso S. Siciliano	* delete: treeview.sh example.
408bce40c02SAlfonso S. Siciliano	* fix: --separate-output does not quote (except with --quoted).
409bce40c02SAlfonso S. Siciliano	* fix: --datebox and --date-format month in output.
410bce40c02SAlfonso S. Siciliano	* improve: examples handle exit status.
411bce40c02SAlfonso S. Siciliano
412bce40c02SAlfonso S. Siciliano	Library:
413bce40c02SAlfonso S. Siciliano	* add: conf.form.enable_wchar for wide characters in bsddialog_form().
414bce40c02SAlfonso S. Siciliano	* add: theme.menu.f_selectorcolor.
415bce40c02SAlfonso S. Siciliano	* add: formw.c example.
416bce40c02SAlfonso S. Siciliano	* change: move conf.f1_file and conf.f1_message in conf.key.
417bce40c02SAlfonso S. Siciliano	* change: theme.button.[left|right]ch -> theme.button.[left|right]delim.
418bce40c02SAlfonso S. Siciliano	* change: theme.button.space -> theme.button.hmargin.
419bce40c02SAlfonso S. Siciliano	* change: theme.menu.arrowcolor -> theme.dialog.arrowcolor.
42084823cc7SAlfonso S. Siciliano	* change: internal bsddialog_menuitem.depth factor 4 -> 2.
421bce40c02SAlfonso S. Siciliano	* fix: disable HOME, PPAGE, END and NPAGE keys in bsddialog_form().
422bce40c02SAlfonso S. Siciliano	* fix: visible cursor for timebox.c and form.c in VM VirtualBox.
423bce40c02SAlfonso S. Siciliano	* fix: mixedlist, center position of separator with big pad.
424bce40c02SAlfonso S. Siciliano	* fix: timebox and datebox set values only with BSDDIALOG_OK.
425bce40c02SAlfonso S. Siciliano	* fix: menurows autosize with fullscreen.
426bce40c02SAlfonso S. Siciliano	* fix: bar color with 0%.
427bce40c02SAlfonso S. Siciliano	* fix: bar label position.
428bce40c02SAlfonso S. Siciliano	* improve: timebox and datebox navigation (keys, buttons and shortcuts).
429bce40c02SAlfonso S. Siciliano	* improve: "menus" colors for accessibility.
430bce40c02SAlfonso S. Siciliano
431bce40c02SAlfonso S. Siciliano
432b319d934SAlfonso S. Siciliano2022-01-27 Version 0.1
433bce40c02SAlfonso S. Siciliano
43484823cc7SAlfonso S. Siciliano	* Options: --ascii-lines, --backtitle <backtitle>, --begin-x <x>,
435bce40c02SAlfonso S. Siciliano	  --begin-y <y>, --cancel-label <label>, --clear, --colors, --cr-wrap,
436bce40c02SAlfonso S. Siciliano	  --date-format <format>, --defaultno, --default-button <label>,
437bce40c02SAlfonso S. Siciliano	  --default-no, --default-item <name>, --disable-esc,
438bce40c02SAlfonso S. Siciliano	  --esc-cancelvalue, --exit-label <label>, --extra-button,
439bce40c02SAlfonso S. Siciliano	  --extra-label <label>, --generic-button1 <label>,
440bce40c02SAlfonso S. Siciliano	  --generic-button2 <label>, --help, --help-button,
441bce40c02SAlfonso S. Siciliano	  --help-label <label>, --help-status, --help-tags,
442bce40c02SAlfonso S. Siciliano	  --hfile <filename>, --hline <string>, --hmsg <string>, --ignore,
443bce40c02SAlfonso S. Siciliano	  --insecure, --item-depth, --item-help, --items-prefix,
444bce40c02SAlfonso S. Siciliano	  --max-input <size>, --no-cancel, --nocancel, --no-collapse,
445bce40c02SAlfonso S. Siciliano	  --no-items, --no-label <label>, --no-lines, --no-nl-expand,
446bce40c02SAlfonso S. Siciliano	  --no-ok, --nook, --no-shadow, --no-tags, --ok-label <label>,
447bce40c02SAlfonso S. Siciliano	  --output-fd <fd>, --output-separator <sep>, --print-maxsize,
448bce40c02SAlfonso S. Siciliano	  --print-size, --print-version, --quoted, --separate-output,
449bce40c02SAlfonso S. Siciliano	  --separator <sep>, --shadow, --single-quoted, --sleep <secs>,
450bce40c02SAlfonso S. Siciliano	  --stderr, --stdout, --tab-len <spaces>,
451bce40c02SAlfonso S. Siciliano	  --theme <blackwhite|bsddialog|default|dialog>,
452bce40c02SAlfonso S. Siciliano	  --time-format <format>, --title <title>, --trim, --version,
453bce40c02SAlfonso S. Siciliano	  --yes-label <label>.
454bce40c02SAlfonso S. Siciliano	* Dialogs: --checklist, --datebox, --form, --gauge, --infobox,
455bce40c02SAlfonso S. Siciliano	  --inputbox, --menu, --mixedform, --mixedgauge, --msgbox,
456bce40c02SAlfonso S. Siciliano	  --passwordbox, --passwordform, --pause, --radiolist, --rangebox,
457bce40c02SAlfonso S. Siciliano	  --textbox, --timebox, --treeview, --yesno.
458bce40c02SAlfonso S. Siciliano	* Manuals: bsddialog.1, bsddialog.3.
459