This version of dialog was originally from a Debian snapshot. I've done this
+ updated dialog.pot
+ modify fselect.c to work with autosize, i.e., given height and width
zero (report by Martin Povolny).
+ add a null-pointer check in justify_text(), needed by fselect.c
+ add several more options which dialog can safely ignore, from
+ refinements for configure macros checking for $CPPFLAGS, from lynx.
+ update config.guess, config.sub to match autoconf 2.50
> Martin Povolny
+ add cs.po
+ use nl_langinfo() to customize names for day-of-week, and month
> Vincent Stemen
Fixed dialog.c to not pass menu items through dlg_trim_string().
Stripping extra spaces out of the menu items broke some of my
scripts by altering the string that it compared to know which menu
item was selected. There should be no need to do justification on
the menu items, which are always one line, anyway.
> Vincent Stemen
+ rewrote the text justification code to be able to have preformatted
text in the prompts with extra spaces like the older versions of
dialog. If there are "\n" strings in the text, then extra spaces are
preserved. Lines are always wrapped on word boundaries.
+ fixed --cr-wrap to break lines on '\n' (newline) characters and not
add an extra line at the top and bottom of the text. It now works
as the manual says it should.
+ it is no longer necessary to use "\n\" at the end of lines to escape
the '\n' character. "\n" now works. However, the old way, "\n\"
+ the fixes involved the following changes:
- rewrote dlg_trim_string() to recognize preformatted text (know
when not to strip extra spaces) and to pay attention to --cr-wrap.
- rewrote justify_text() which now calls a new function in util.c,
print_line(), to print each line and end it on a word boundary.
- modified real_auto_size() to call a new function
auto_size_preformated() to calculate the box size for preformatted
- removed skip_blanks() and skip_text() since they are not used by
the new justify_text().
- modified dialog.c to not call dlg_trim_string() on title strings
so that titles retain their spaces.
+ modified the following demo files in the sample directory:
changed all "\n\" strings to "\n" to demonstrate the extra
backslash is no longer needed.
removed all the "\n\" strings from the end of the lines to
properly demonstrate --cr-wrap.
this sample was using "--aspect 9 --cr-wrap". Rewrote it to
properly demonstrate --aspect. 9 is already dialog's default
aspect ratio. It now creates several dialogs in sequence,
demonstrating aspect ratios of 9, 12 and 6 and properly
+ made the following changes to the manual (dialog.1).
- rewrote the description of --aspect to be more understandable.
- rewrote the description of --cr-wrap to be more correct and more
detailed. It did say, "Otherwise, the text for each dialog will
display on a single line.", which is not correct. It wraps the
text to fit in the box.
+ use logic from menubox dialog in checklist to handle autosizing when
list height is given as zero (fixes problem reported by Eric Veltman).
+ modify checklist and menubox dialogs to check for too-wide data, and
truncate one or both of the name and text fields to fit (also
reported by Eric Veltman).
+ corrected a few items from Vincent's patch:
- use C89-style comments rather than C++
- restore logic in justify_text() which checks for win==0, needed to
work with standard curses implementations other than ncurses.
The first call on justify_text() passes a null pointer as a flag
to indicate that checking should be done, but no screen updates.
- avoid modifying the buffer in decode_percent(), otherwise a message
containing a space or newline would be truncated at the whitespace.
- modify dlg_button_x_step() and dlg_button_layout() slightly to
work with altered print_autowrap(), etc.
+ fixes to build/work with SunOS 4.x 5lib curses
+ fix a memory leak in mouse_region().
+ simplify handling of optional parameters with new functions
optional_str() and optional_num().
+ add calendar and timebox dialogs (compatible with Xdialog).
+ correct typo in fallback definition for getparyx, and remove void
cast for mouse_open and mouse_close which prevented build with
Sun's Solaris compiler.
+ rename --enable-lxdialog configure option to --enable-Xdialog
+ modify CF_NCURSES_CPPFLAGS macro to match more variations of ncurses
+ update config.guess, config.sub
+ modify some configure script macros to avoid problems with buggy
autoconf 2.49c which breaks changequote().
+ small fix to revised real_auto_size() and justify_text() to avoid
adding origin to box-width, which broke samples/wheel.
+ apply 1999/12/25 tempfile change to wheel and copismall samples.
+ add sample script for tailboxbg.
+ revised lock-file management to better ensure that locks are actually
created by the tailbox subprocess(es).
+ correct hardcoded signal 15 in tailbox to SIGHUP to match
documentation. Signal 15 is usually SIGTERM, which cannot be caught.
+ correct off-by-one comparison of return-value for arg_rest() which
dialog --gauge test 10 50
dump core because it expected a 4th parameter (fixes Debian #80641).
+ resync config.sub, config.guess from
http://subversions.gnu.org/cgi-bin/cvsweb/config/ (which finally have
cases for OS/2 EMX), minor tweaks to related configure script macros.
+ restore treatment of predefined height/width in real_auto_size()
which was lost in 2000/12/12 rewrite (report by Raphael Halimi).
+ updates for configure script macros AM_PATH_PROG_WITH_TEST,
CF_CURSES_LIBS, CF_LIB_PREFIX, CF_PROG_EXT for $PATHSEP and $CFLAGS
+ correct change for create_lock(), which resulted in an infinite loop
(patch by Chris Butler).
+ rewrote print_autowrap() and real_auto_size() to share common code
justify_text(), which now does text flow even when the string
contains newlines (fixes Debian #77199).
+ improve create_lock() function using open() with O_EXCL rather than
fopen() (patch by Matt Kraai fixes Debian #78951).
+ correct description of --fselect in man page (patch by Tomas Pospisek
fixes Debian #77200).
+ add --no-cancel as alias for --nocancel for compatibility with
Xdialog (report by Luis E Limon).
+ some lint fixes using lclint (mostly void-casts, but some
sign-extension fixes e.g., for ctype.h macros, and loop in
+ modified to build/run on OS/2 EMX with ncurses.
+ minor changes to po/*.po (trim trailing blanks, provide explicit
translation for "OK"), to work with Solaris gettext.
+ modified to allow this to build with archaic version (1.8.6)
of ncurses on FreeBSD 3.1 (does not run).
+ update config.guess, config.sub from subversions.gnu.org
+ use new function sub_window() to check success/failure of calls to
subwin(), printing an error message if it fails (fixes Debian #74903).
+ use combination of isatty/ttyname to look for workable tty device
on systems which have no /dev/tty, e.g., BeOS.
+ change exiterr() to use stdarg.h, make some messages easier to
+ add dialog_clear()
+ make samples/install/setup build.
+ implemented mouse support for buttons, e.g., in yesno dialog using
ncurses (the gpm support no longer works, but is useful for reference)
+ add a configure check for chtype.
+ updates for configure script macros (CF_BUNDLED_INTL, CF_CURSES_LIBS,
CF_GCC_ATTRIBUTES, CF_GCC_WARNINGS, CF_INCLUDE_DIRS), and scripts
+ cleanup of item-help change, integrate with checkbox and radiobox.
+ add ja.po, from Hirofumi Takeda.
> patch by Marco Mariani
+ add --item-help option, which makes menubox data interpreted as
3 columns rather than 2. The third column is displayed on the
last line of the screen as a help/status message for the currently
+ add it.po, pt.po
+ change TAG_KEY_HL to FALSE, making unselected items in checkbox
easier to read on Linux console.
+ change real_auto_size() to allow it to be used for dialogs that have
no prompt, e.g., fselect. Also, rather than requiring both height
and width to be given as -1 for maximizing the dialog, allow either
+ increase minimum height needed for autosized yesno dialog.
+ add --version as an alias for --print-version.
+ fix for build on Solaris without NLS (cannot redefine 'gettext()').
+ add fselect dialog (compatible with Xdialog).
+ add --enable-lxdialog configure option.
+ use new configure macro CF_ARG_MSG_ENABLE to show progress with
+ implement --stdout and --stderr options as in Xdialog.
+ move logic that translates "\\n" into '\n' into main program to
simplify logic that formats text.
+ make ifdef's for rc-file not specific to ncurses.
+ correct logic making percent parameter of gauge optional.
+ add alternate test-script for gauge, adapted from Xdialog.
+ modify guage to make optional a percentage which was read at the
beginning of the XXX-delimited message text, since clones of dialog
are written to assume this is text. If the line is not a simple
integer, dialog will treat it as text.
+ make the percent parameter of gauge optional, as in Xdialog.
+ undo one use of CharOf() in guage.c, an error.
+ fix configure macro AM_WITH_NLS to refrain from attempting to make a
symbolic link into/libintl.h if we are not using the bundled intl
directory from gettext (reported by Julian Coleman).
+ add ru.po, from Michael Sobolev
+ updates for config.guess, config.sub from tin.
+ updates for configure script macros: CF_MATH_LIB (improperly nested
brackets/parenthesis) and CF_XOPEN_CURSES (make include of
<*curses.h> depend on configure tests).
+ repaint screen when a control/L is pressed.
+ apply CharOf() macro to avoid sign-extension on calls to waddch(),
fixes a problem with accented characters (reported by Santiago Vila).
+ add es.po, from Santiago Vila
+ modified to use gettext (configure option --enable-nls). This uses
gettext 0.10.35, which must be previously installed. (It can also
use an included intl library, but I consider that to be a waste of
+ remove code in checklist/radiobox, menubox that try to use
abbreviations for the OK/Cancel buttons since those conflict with the
check for abbreviations in list entries, which are more useful.
+ moved padding of button labels out of string literals, into the
logic of dlg_draw_buttons().
+ resync/update with configure macros CF_CURSES_LIBS, CF_FIND_LIBRARY,
CF_HEADER_PATH, CF_LIBRARY_PATH and CF_NCURSES_LIBS, as well as
mkdirs.sh and config.guess.
+ add --default-item option, for menubox to set the default selection
(fixes Debian #49796).
+ add sample scripts for --nocancel and --fb options with inputbox.
+ modify inputbox* sample scripts to show application errors, if any.
+ add --nocancel option, and ignore --noitem, --fb, --fullbutton, to
make this compatible with whiptail scripts. (whiptail does not
handle many dialog scripts however).
+ modify checklist/radiobox to handle home, end, nextpage, prevpage
keys, as well as make the abbreviation search work for the whole
list, not only the current page.
+ treat KEY_LL the same as KEY_END in checklist and textbox.
+ add logic for KEY_BTAB.
+ use new function dlg_draw_buttons() to better manage the layout of
+ another pass of cleanup of dialog.c, makes it use a single table for
lookup of option names and help-message. Eliminated numerous
adjustments to 'offset' variable.
+ on initialization, check if standard input is from a terminal. If
not, open /dev/tty (fixes Debian #57771)
+ implement inline editing in textbox.c search dialog.
+ revise inputbox.c, allowing inline editing with arrow-keys. removed
redundant logic in that module.
+ correct a typo that prevented rc-file configuration from building.
+ correct ifdef's to compile/run if the curses implementation does not
+ improve test-case for gauge.
+ change gauge.c to show progress in reverse-video, add a check for
end-of-file in the loop for reading new messages.
+ use curses whline() function to simplify print_arrows() logic in
checkbox.c and menubox.c
+ use curses beep() function rather than hardcoded strings.
+ correct several compiler warnings for gcc -pedantic (mismatch of
+ modify exiterr() to avoid possible expansion of '%'.
+ change CF_MATH_LIB configure macro to allow specifying a particular
test-function. For dialog, this should be sqrt(). The macro was
originally written for ncurses, which needs sin(). However, that is
a builtin function on the m68k port (reported by Roman Hodek, this fixes
+ update manpage (Debian #25648).
+ modify configure test for math library to avoid using a constant
parameter to the test function, lest gcc optimize the call away
(fixes Debian #55553).
+ restructure help-message so actual problem is indicated. The original
help-message is shown if no parameters are given, or if the --help
option is specified alone.
+ suppress xterm's alternate screen mode by sending an exit_ca_mode
after initscr if the terminal looks like xterm, e.g., has key_mouse
defined, and has private-mode escapes in both enter_ca_mode and
exit_ca_mode (fixes Debian #55181).
+ change yellow lettering on white to blue on white, since it offers
better contrast (fixes Debian #51196).
+ use napms() rather than sleep().
+ some cleanup/simplification of main program. Indent'd dialog.c and
+ eliminate several places where repeated options are treated as
an error, since they are really executed once anyway.
+ remove pre-autoconf Makefile
+ remove sleep's from a few of the sample scripts, which left users
thinking that dialog was slow to complete an action.
+ rewrote infobox sample script, using dialog's --sleep option and
a loop in the script.
+ change 'ch' variable in tailbox.c to an integer, because it is
compared against EOF (fixes Debian #53157).
+ corrected mandir variable in makefile.in (reported by Santiago Vila).
+ small changes to sample scripts, from Debian: rename "guage" script
to "gauge", change path to copy of GPL used in textbox.
+ add uninstall rule to makefile.in, fixed some dependencies so
"make install" works without first doing "make all".
+ use more portable scheme for tempfile generation in samples.
+ add a configure script, prefer to not use the original Makefile
because it works only with GNU make.
+ correct prototype of 'main()', which misused const.
+ modify guage.c to use fgets() rather than gets().
+ merge changes from Debian package maintainer
+ add a password dialog box.
+ implement "--defaultno" option to specify if the default for
the yes/no box is "No".
+ modify input.c to clear the input field to the right of the
given string (unclear: this seems redundant, since the
dialog is drawn in a new window).
+ check for list_height less than one in checklist.c
+ use function wscrl() in preference to scroll() in checklist.c
and menubox.c (unclear: in ncurses, scroll() is a macro that
+ remove the "-I/usr/include/ncurses" option from Makefile
since Debian does not install ncurses' header files into
+ simplify menubox.c using new functions print_arrows() and
+ add logic to handle KEY_NPAGE and KEY_PPAGE.
+ change sample scripts to use Debian tempfile utility rather
than putting files into /tmp.
+ change sample scripts to use 'dialog' from user's path rather
than in the parent directory as in the build directory.
+ use the system copy of GPL rather than that in the build
directory as an example for the textbox script.
+ fix some gcc warnings about ambiguous use of "else"
+ cleaned up some of the redundant code with new functions:
+ modified msgbox.c and yesno.c to work with the KEY_RESIZE sigwinch
handling in ncurses 4.2
+ corrected spelling of "gauge"
The relevant portions of the Debian change log for the original version
(dialog-0.9a-12) are abstracted here, omitting details of their packaging:
+ Replaced guage.c by the one in dialog 0.6z, which is known to work.
Fixes Bug #18284: unstable dialog.
+ dialog.c: dialog_input_result printed with "%s" format. This was
Bug #9913, fixed by Bill Mitchell, but the change was lost.
+ Pristine source, .depend is not removed in clean target. Instead, it
is made zero lenght (otherwise it would not work *without* fakeroot).
+ Added '^U' support in input box (Bug #9915, patch by joey -- debian.org).
+ Wrote patch to fix core-dumping problem (Bug #13170). Sven Rudolph