]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bsddialog/CHANGELOG
libvmmapi: Move more amd64-specific ioctl wrappers to vmmapi_machdep.c
[FreeBSD/FreeBSD.git] / contrib / bsddialog / CHANGELOG
1 2023-08-01 Version 1.0
2
3         Utility:
4         * add: comments to --save-theme output file.
5         * add: blink, halfbright, highlight to --save-theme and --load-theme.
6         * add: theme.menu.[f_]prefixcolor to --save-theme and --load-theme.
7         * add: --datebox-format <d/m/y|m/d/y|y/m/d> to set --datebox UI.
8         * add: --help-print-items (--help-status becomes alias).
9         * add: --text-escape (--colors becomes alias).
10         * add: new escapes \Zd, \Zk, \Zs, \ZD, \ZK, \ZS, for --text-escape.
11         * add: env NO_COLOR, to set blackwhite theme.
12         * add: $HOME/.bsddialog.conf startup theme file.
13         * add: env BSDDIALOG_THEMEFILE startup theme file.
14         * add: --left1-button <label>.
15         * add: --left2-button <label>.
16         * add: --left3-button <label>.
17         * add: --right1-button <label>.
18         * add: --right2-button <label>.
19         * add: --right3-button <label>.
20         * add: dynamic exit codes.
21             - add: --error-exit-code.
22             - add: --ok-exit-code.
23             - add: --cancel-exit-code.
24             - add: --help-exit-code.
25             - add: --extra-exit-code.
26             - add: --timeout-exit-code.
27             - add: --esc-exit-code.
28             - add: --left1-exit-code.
29             - add: --left2-exit-code.
30             - add: --left3-exit-code.
31             - add: --right1-exit-code.
32             - add: --right2-exit-code.
33             - add: --right3-exit-code.
34             - add: env BSDDIALOG_ERROR.
35             - add: env BSDDIALOG_OK.
36             - add: env BSDDIALOG_CANCEL.
37             - add: env BSDDIALOG_HELP.
38             - add: env BSDDIALOG_EXTRA.
39             - add: env BSDDIALOG_TIMEOUT.
40             - add: env BSDDIALOG_ESC.
41             - add: env BSDDIALOG_LEFT1.
42             - add: env BSDDIALOG_LEFT2.
43             - add: env BSDDIALOG_LEFT3.
44             - add: env BSDDIALOG_RIGHT1.
45             - add: env BSDDIALOG_RIGHT2.
46             - add: env BSDDIALOG_RIGHT3.
47         * add: undocumented envs for bsdconfig(8) compatibility.
48             - env BSDDIALOG_COMPATRC for use_shadow setting.
49             - env BSDDIALOG_ITEM_HELP to add/set exit code.
50         * change: rename themes --theme <3d|blackwhite|flat>.
51         * change: --no-names and --no-descriptions mutually exclusive (via lia).
52         * change: quote only checklist output items if necessary. Previously
53             also radiolist item.
54         * change: dialogs with user input print always values except with ERROR,
55             ESC, Cancel. Previously the situation was quite heterogeneous.
56         * improve: DIAGNOSTIC messages adding fmt string errors.
57         * improve: disable theme setting (opt and env) with no-color terminals.
58         * improve: menus on|off status (strcasecmp, diagnostic, real off check).
59         * improve: --bikeshed with button delimiter and --date-format.
60         * improve: --textbox accepts button options.
61         * improve: Forms with Help button.
62             - print "HELP" (like menus).
63             - accept --help-list-items.
64             - accept --help-print-name.
65         * fix: --load-theme attributes.
66         * fix: --clear-screen with --and-dialog.
67         * delete: --theme <bsddialog> (partially implemented).
68         * delete: --esc-return-cancel (replaced by new env and option).
69         * delete: --generic-button1 (replaced by --right1-button).
70         * delete: --generic-button2 (replaced by --right2-button).
71         * refactor: modularize in more files (main, cli, builders, theme).
72
73         Library:
74         * add: bsddialog_inmode().
75         * add: bsddialog_clear(y) for utility --clear-screen.
76         * add: bsddialog_refresh() for utility terminal mode options.
77         * add: conf.date.format="d/m/y"|"m/d/y"|"y/m/d" to customize
78             bsddialog_datebox() UI (boxes) with a date format.
79         * add: 'const char *end' to bsddialog_gauge().
80         * add: draw focus on the shortcut-key-selected button at exit.
81         * add: escapes for conf.text.highlight \Zd, \Zk, \Zs, \ZD, \ZK, \ZS.
82         * add: other theme flags.
83             - BSDDIALOG_BLINK.
84             - BSDDIALOG_HALFBRIGHT.
85             - BSDDIALOG_HIGHLIGHT.
86         * add: generic buttons.
87             - conf.button.left1_label, BSDDIALOG_LEFT1 return value.
88             - conf.button.left2_label, BSDDIALOG_LEFT2 return value.
89             - conf.button.left3_label, BSDDIALOG_LEFT3 return value.
90             - conf.button.right1.label, BSDDIALOG_RIGHT1 return value.
91             - conf.button.right2.label, BSDDIALOG_RIGHT2 return value.
92             - conf.button.right3.label, BSDDIALOG_RIGHT3 return value.
93         * add: unused bsddialog_menugroup.min_on for future features.
94         * add: theme.menu.f_prefixcolor and theme.menu.prefixcolor.
95         * improve: check (when possible) API pointers.
96         * improve: circolar buttons with left and right keys for msgbox, yesno,
97             menus, rangebox and pause.
98         * improve: bsddialog_textbox() handles conf.buttons.
99         * improve: bsddialog_datebox() a box change affects the others as well.
100         * improve: bsddialog_geterror() with fmt strings.
101         * change: API NULL strings handled like "", except gauge *sep and *end.
102         * change: menus and form less restrictive with text, hide text with
103             little screens (same behavior as other dialogs).
104         * change: mixedgauge BSDDIALOG_MG_BLANK does not draw minibar but prints
105             minilabel. The change allows mixedgauge to add sections. To restore
106             the previous behavior setting minilabel to "".
107         * change: check/set bsddialog_gauge() perc max 100.
108         * change: check/set bsddialog_mixedgauge() mainperc max 100.
109         * change: conf.menu.no_name and conf.menu.no_desc mutually exclusive.
110         * change: bsddialog_pause() sec -> *sec to know remaining time at exit.
111         * change: add *focusitem to bsddialog_form() like menus.
112         * change: "pointer" values are always set except when BSDDIALOG_ERROR
113             occurs. Examples *yy/*mm/*ss, rangebox *value.
114             - delete conf.menu.on_without_ok.
115             - delete conf.form.value_without_ok.
116         * rename: conf.text.highlight -> conf.text.escape.
117         * rename: theme.menu.namesepcolor -> theme.menu.sepnamecolor.
118         * rename: theme.menu.descsepcolor -> theme.menu.sepdesccolor.
119         * fix: bsddialog_pause() elevation bar after resize.
120         * fix: bsddialog_textbox() key '0'.
121         * fix: timebox.c checksize (boxes width).
122         * fix: extend menurows after shrink and enlarge.
123         * fix: menu pad and form pad "re-expansion" after shrink and enlarge.
124         * fix: shadow top-left corner (trick wresize() before wmove()).
125         * fix: increment bsddialog_total_progview size for more general use.
126         * delete: BSDDIALOG_THEME_BSDDIALOG (partially implemented).
127         * delete: conf.button.generic1_label (for new conf.button.right1_label).
128         * delete: BSDDIALOG_GENERIC1 return value (new BSDDIALOG_RIGHT1).
129         * delete: conf.button.generic2_label (for new conf.button.right2_label).
130         * delete: BSDDIALOG_GENERIC2 return value (new BSDDIALOG_RIGHT2).
131         * delete: bsddialog_clearterminal(), replaced by bsddialog_clear(y).
132         * refactor: internal implementation.
133             - add: internal structures to represent components.
134             - merge: (when possible) dialogs autosize.
135             - merge: (when possible) dialogs checksize.
136             - merge: for each dialog "build" with "update" -> <dialog>_redraw().
137             - merge: new_dialog() with update_dialog() -> draw_dialog().
138             - merge: infobox.c with messagebox.c (delete infobox.c)
139             - merge: bsddialog_datebox() + bsddialog_calendar() -> datebox.c
140             - change: flat and blackwhite real themes, 3d adapted from flat.
141             - improve: replace wrefresh() -> wnoutrefresh()/doupdate().
142             - improve: replace prefresh() -> pnoutrefresh()/doupdate().
143             - improve: menu split code to build private items.
144             - improve: form split code to build private items.
145             - delete: -Wno-implicit-fallthrough.
146
147
148 2023-06-12 Version 0.4.2
149
150         Library:
151         * fix: compile error with aarch64-gcc12 for "\Z[0-7]" check;
152             https://gitlab.com/alfix/bsddialog/-/issues/5.
153         * fix: BSDDIALOG_FIELDCURSOREND with multiple items
154             (warning aarch64-gcc12).
155
156
157 2023-01-02 Version 0.4.1
158
159         Utility:
160         * fix: default space separator menus output, except if --separator " ".
161         * rename: GNUMakefile to GNUmakefile to simplify linux build.
162             Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/2.
163
164         Library:
165         * fix: t.dialog.linelowercolor no bold-black, some terminal draws grey.
166         * fix: text wrapping (actual string length) with --colors.
167         * rename: GNUMakefile to GNUmakefile to simplify linux build.
168             Thanks to https://gitlab.com/alfix/bsddialog/-/merge_requests/2.
169
170
171 2022-09-24 Version 0.4
172
173         Utility:
174         * add: --normal-screen to set normal mode.
175         * add: --alternate-screen to set alternate mode.
176         * add: --keep-tite as --alternate-screen alias.
177         * add: --and-dialog to build other dialogs.
178         * add: --and-widget as --and-dialog alias.
179         * add: --no-names (--no-tags becomes alias).
180         * add: --no-descriptions (--no-items becomes alias).
181         * add: --help-print-name (--help-tags becomes alias).
182         * add: --item-bottom-desc (--item-help becomes alias).
183         * add: --cr-wrap (was partially implemented) to keep '\n' with "\n".
184         * add: --text-unchanged to avoid default modification.
185         * add: --tab-escape to enable "\t" in text.
186         * add: --clear-screen to clear the screen.
187         * add: --clear-dialog to clear the dialog (was --clear).
188         * add: --calendar dialog to select a date.
189         * add: DIAGNOSTICS messages for bad arguments number.
190         * add: DIAGNOSTICS messages for missing and unexpected options.
191         * change: --clear becomes alias for --clear-screen.
192         * change: --print-maxsize format output.
193         * change: --menu, --radiolist, --checklist and --treeview output.
194             - no printed items with Cancel or ESC.
195             - --separator prints <sepstr> before each item except HELP.
196             - --separator and --separate-output print <sepstr> after each item.
197             - quoted item name/desc only when needed.
198             - --menu avoids to print selected item after focused HELP item.
199         * change: text default modification.
200             - without a "\n": '\t' -> space, '\n' -> '\n', trim spaces.
201             - with a "\n": '\t' -> space, '\n' -> space, "\n" -> '\n', no trim.
202             - delete '\n' after "\n" (also with --cr-wrap).
203         * change: --datebox input and output format yy/mm/dd -> dd/mm/yy.
204         * delete: --no-collapse (partially implemented).
205         * delete: --no-nl-expand (partially implemented).
206         * delete: --trim (partially implemented).
207
208         Library:
209         * add: bsddialog_msgbox() HOME, END, PPAGE and NPAGE keys.
210         * add: bsddialog_yesno() HOME, END, PPAGE and NPAGE keys.
211         * add: bsddialog_menu() SPACE key (equivalent to ENTER).
212         * add: bsddialog_calendar() to select a date.
213         * change: rename enum bsddialog_grouptype -> enum bsddialog_menutype.
214         * change: fixed-menurows becomes at most menurows (depending on text).
215         * change: fixed-rows becomes at most rows, min(rows, screenH - shadow).
216         * change: fixed-cols becomes at most cols, min(cols, screenW - shadow).
217         * delete: undocumented internal bsddialog_menuitem.depth factor (was 2).
218
219
220 2022-08-29 Version 0.3
221
222         Utility:
223         * add: --textbox accepts options for the first button.
224         * add: --columns-per-row for text autosizing.
225         * add: --load-theme to read and set a custom theme at runtime.
226         * add: --save-theme to save current theme.
227         * add: --bikeshed for random settings.
228         * add: --switch-buttons to enable buttons/input widgets focus switching.
229                Available for: --form, --inputbox, --mixedform, --passwordform,
230                --passwordbox, --timebox and --datebox.
231         * change: rename --esc-cancelvalue to --esc-return-cancel.
232         * change: form field value is printed like multibyte charachter string,
233                   previously widechar string.
234         * change: --timebox output with zero padding.
235         * change: --datebox output mm and dd with zero padding.
236         * fix: --hline with empty string.
237         * fix: avoid to overlay the backtitle by setting a top margin.
238         * fix: avoid to overlay down shadow with menus and forms bottomdesc
239                by setting a down margin.
240         * fix: --form read-only flag with multiple fields.
241
242         Library:
243         * add: conf.auto_topmargin and conf.auto_downmargin.
244         * add: bsddialog_textbox() accepts conf.button.* for the first button.
245         * add: bsddialog_textbox() arrows and percentage.
246         * add: conf.text.cols_per_row to set a ratio for text autosizing.
247         * add: timebox and datebox arrows and focus background for boxes.
248         * add: timebox and datebox UP key to switch focus.
249         * add: bsddialog_init_notheme() in bsddialog.h.
250         * add: bsddialog_hascolors() in bsddialog_theme.h.
251         * add: theme.form.bottomdesccolor and theme.menu.bottomdesccolor.
252         * add: conf.button.always_active to disable buttons/input-boxes switch.
253         * add: dynamic buttons margin.
254             - add: theme.button.minmargin and theme.button.maxmargin.
255             - delete: theme.button.hmargin.
256         * add: Unicode.
257             - UI handles multicolumn charachters: backtitle, title,
258               text (word wrapping, autosizing), menus (shortcuts, name, desc),
259               forms (label, field), textbox, mixedgauge (minilabel),
260               buttons (label, shortcuts), bottomtitle.
261             - API handles char* arguments like multibyte charachter string,
262               depending on the current locale.
263             - Internally wide charachters are used to get input from keyboard
264               and to adapt word wrapping and dynamic text autosizing to
265               muticolumn charachters.
266         * refactoring: (rewrite) form.c.
267             - delete: libformw dep implementing its features from scratch.
268             - delete: maxvaluelen >= valuelen constraint.
269             - delete: conf.form.enable_wchar, get always unicode (wchar) input.
270             - add: KEY_HOME, KEY_END, KEY_PPAGE, KEY_NPAGE keys in field.
271             - add: KEY_UP can move focus from buttons to fields.
272             - add: KEY_DOWN can move focus from item to buttons, if nitem is 1.
273             - add: conf.form.securembch secure multibyte charachter.
274             - add: BSDDIALOG_FIELDNOCOLOR for formitem.flags.
275             - add: BSDDIALOG_FIELDCURSOREND for formitem.flags.
276             - add: BSDDIALOG_FIELDEXTEND for formitem.flags.
277             - add: BSDDIALOG_FIELDSINGLEBYTE for formitem.flags.
278             - add: resizing and refresh after KEY_RESIZE (SIGWINCH).
279             - add: items scrolling.
280             - add: conf.form.value_wchar, value is wchar_t* instead of MB-char*.
281             - add: formheight autosizing.
282             - add: dynamic item position.
283         * fix: bsddialog_gauge() with fd < 0.
284         * fix: bsddialog_gauge() refresh new text.
285         * fix: internal segmentation fault with disabled shadow.
286         * fix: center position without shadow.
287         * fix: bsddialog_infobox() with zero text length.
288         * fix: text wrapping with more than 1024 words.
289         * fix: rename theme.shadow.h to theme.shadow.y.
290         * fix: rename theme.shadow.w to theme.shadow.x.
291         * fix: menurows autosize with fixed rows improving text_size().
292         * fix: messagebox.c scrolling and checksize without text.
293
294
295 2022-03-02 Version 0.2
296
297         Utility:
298         * add: (this) CHANGELOG.
299         * add: "menus" print item with focus (except with OK and ERROR).
300         * add: pause.sh example.
301         * add: timebox.sh example.
302         * change: --theme name "default" -> "flat".
303         * delete: treeview.sh example.
304         * fix: --separate-output does not quote (except with --quoted).
305         * fix: --datebox and --date-format month in output.
306         * improve: examples handle exit status.
307
308         Library:
309         * add: conf.form.enable_wchar for wide characters in bsddialog_form().
310         * add: theme.menu.f_selectorcolor.
311         * add: formw.c example.
312         * change: move conf.f1_file and conf.f1_message in conf.key.
313         * change: theme.button.[left|right]ch -> theme.button.[left|right]delim.
314         * change: theme.button.space -> theme.button.hmargin.
315         * change: theme.menu.arrowcolor -> theme.dialog.arrowcolor.
316         * change: internal bsddialog_menuitem.depth factor 4 -> 2.
317         * fix: disable HOME, PPAGE, END and NPAGE keys in bsddialog_form().
318         * fix: visible cursor for timebox.c and form.c in VM VirtualBox.
319         * fix: mixedlist, center position of separator with big pad.
320         * fix: timebox and datebox set values only with BSDDIALOG_OK.
321         * fix: menurows autosize with fullscreen.
322         * fix: bar color with 0%.
323         * fix: bar label position.
324         * improve: timebox and datebox navigation (keys, buttons and shortcuts).
325         * improve: "menus" colors for accessibility.
326
327
328 2022-01-27 Version 0.1
329
330         * Options: --ascii-lines, --backtitle <backtitle>, --begin-x <x>,
331           --begin-y <y>, --cancel-label <label>, --clear, --colors, --cr-wrap,
332           --date-format <format>, --defaultno, --default-button <label>,
333           --default-no, --default-item <name>, --disable-esc,
334           --esc-cancelvalue, --exit-label <label>, --extra-button,
335           --extra-label <label>, --generic-button1 <label>,
336           --generic-button2 <label>, --help, --help-button,
337           --help-label <label>, --help-status, --help-tags,
338           --hfile <filename>, --hline <string>, --hmsg <string>, --ignore,
339           --insecure, --item-depth, --item-help, --items-prefix,
340           --max-input <size>, --no-cancel, --nocancel, --no-collapse,
341           --no-items, --no-label <label>, --no-lines, --no-nl-expand,
342           --no-ok, --nook, --no-shadow, --no-tags, --ok-label <label>,
343           --output-fd <fd>, --output-separator <sep>, --print-maxsize,
344           --print-size, --print-version, --quoted, --separate-output,
345           --separator <sep>, --shadow, --single-quoted, --sleep <secs>,
346           --stderr, --stdout, --tab-len <spaces>,
347           --theme <blackwhite|bsddialog|default|dialog>,
348           --time-format <format>, --title <title>, --trim, --version,
349           --yes-label <label>.
350         * Dialogs: --checklist, --datebox, --form, --gauge, --infobox,
351           --inputbox, --menu, --mixedform, --mixedgauge, --msgbox,
352           --passwordbox, --passwordform, --pause, --radiolist, --rangebox,
353           --textbox, --timebox, --treeview, --yesno.
354         * Manuals: bsddialog.1, bsddialog.3.