]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/dialog/dialog.1
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / dialog / dialog.1
1 '\" t
2 .\" $Id: dialog.1,v 1.133 2011/06/29 09:39:29 tom Exp $
3 .\" Copyright 2005-2010,2011  Thomas E. Dickey
4 .\"
5 .\" This program is free software; you can redistribute it and/or modify
6 .\" it under the terms of the GNU Lesser General Public License, version 2.1
7 .\" as published by the Free Software Foundation.
8 .\"
9 .\" This program is distributed in the hope that it will be useful, but
10 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
11 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 .\" Lesser General Public License for more details.
13 .\"
14 .\" You should have received a copy of the GNU Lesser General Public
15 .\" License along with this program; if not, write to
16 .\"     Free Software Foundation, Inc.
17 .\"     51 Franklin St., Fifth Floor
18 .\"     Boston, MA 02110, USA.
19 .\"
20 .\" definitions for renaming
21 .ds p dialog
22 .ds l dialog
23 .ds L Dialog
24 .ds D DIALOG
25 .\"
26 .de ES
27 .ne 8
28 .IP
29 ..
30 .de EX
31 .RS +10
32 .nf
33 ..
34 .de EE
35 .fi
36 .RE
37 ..
38 .
39 .TH \*D 1 "" "$Date: 2011/06/29 09:39:29 $"
40 .SH NAME
41 \*p \- display dialog boxes from shell scripts
42 .SH SYNOPSIS
43 \fB\*p --clear\fP
44 .br
45 .BI "\*p --create-rc " file
46 .br
47 \fB\*p --print-maxsize\fP
48 .br
49 \fB\*p\fP
50 \fIcommon-options\fP
51 \fIbox-options\fP
52 .SH DESCRIPTION
53 \fB\*L\fP
54 is a program that will let you to present a variety of questions or
55 display messages using dialog boxes from a shell script.
56 These types of dialog boxes are implemented
57 (though not all are necessarily compiled into \fB\*p\fR):
58 .RS
59 .LP
60 .nh
61 .na
62 .BR calendar ", "
63 .BR checklist ", "
64 .BR dselect ", "
65 .BR editbox ", "
66 .BR form ", "
67 .BR fselect ", "
68 .BR gauge ", "
69 .BR infobox ", "
70 .BR inputbox ", "
71 .BR inputmenu ", "
72 .BR menu ", "
73 .BR mixedform ", "
74 .BR mixedgauge ", "
75 .BR msgbox " (message), "
76 .BR passwordbox ", "
77 .BR passwordform ", "
78 .BR pause ", "
79 .BR prgbox ", "
80 .BR programbox ", "
81 .BR progressbox ", "
82 .BR radiolist ", "
83 .BR tailbox ", "
84 .BR tailboxbg ", "
85 .BR textbox ", "
86 .BR timebox ", and "
87 .BR yesno " (yes/no)."
88 .ad
89 .hy
90 .RE
91 .PP
92 You can put more than one dialog box into a script:
93 .TP 5
94 -
95 Use the "\fB--and-widget\fP" token to force \fB\*p\fP to proceed to the next
96 dialog unless you have pressed ESC to cancel, or
97 .TP 5
98 -
99 Simply add the tokens for the next dialog box, making a chain.
100 \*L stops chaining when the return code from a dialog is nonzero,
101 e.g., Cancel or No (see DIAGNOSTICS).
102 .PP
103 Some widgets, e.g., checklist, will write text to \fB\*p\fP's output.
104 Normally that is the standard error, but there are options for
105 changing this: "\fB--output-fd\fP", "\fB--stderr\fP" and "\fB--stdout\fP".
106 No text is written if the Cancel button (or ESC) is pressed;
107 \fB\*p\fP exits immediately in that case.
108 .
109 .\" ************************************************************************
110 .SH OPTIONS
111 All options begin with "\fB--\fP"
112 (two ASCII hyphens,
113 for the benefit of those using systems with deranged locale support).
114 .PP
115 A "\fB--\fP" by itself is used as an escape,
116 i.e., the next token on the command-line is not treated as an option.
117 .RS
118 .B \*p --title -- --Not an option
119 .RE
120 .PP
121 The "\fB--args\fP" option tells \fB\*p\fP to list the command-line
122 parameters to the standard error.
123 This is useful when debugging complex scripts using
124 the "\fB--\fP" and "\fB--file\fP",
125 since the command-line may be rewritten as these are expanded.
126 .PP
127 The "\fB--file\fP" option tells \fB\*p\fP to read parameters from
128 the file named as its value.
129 .RS
130 .B \*p --file \fIparameterfile
131 .RE
132 Blanks not within double-quotes are discarded
133 (use backslashes to quote single characters).
134 The result is inserted into the command-line,
135 replacing "\fB--file\fP" and its option value.
136 Interpretation of the command-line resumes from that point.
137 If \fIparameterfile\fP begins with "&", \fB\*p\fP
138 interprets the following text as a file descriptor number
139 rather than a filename.
140 .
141 .SS \fBCommon Options\fP
142 .
143 .IP "\fB--ascii-lines
144 Rather than draw graphics lines around boxes,
145 draw ASCII "+" and "-" in the same place.
146 See also "\fB--no-lines\fR".
147 .
148 .IP "\fB--aspect \fIratio"
149 This gives you some control over the box dimensions when using auto
150 sizing (specifying 0 for height and width).
151 It represents width / height.
152 The default is 9, which means 9 characters wide to every 1 line high.
153 .
154 .IP "\fB--backtitle \fIbacktitle"
155 Specifies a
156 \fIbacktitle\fP
157 string to be displayed on the backdrop, at the top of the screen.
158 .
159 .IP "\fB--begin \fIy x"
160 Specify the position of the upper left corner of a dialog box on the screen.
161 .
162 .IP "\fB--cancel-label \fIstring"
163 Override the label used for "Cancel" buttons.
164 .
165 .IP "\fB--clear"
166 Clears the widget screen, keeping only the screen_color background.
167 Use this when you combine widgets with "\fB--and-widget\fR" to erase the
168 contents of a previous widget on the screen, so it won't be seen
169 under the contents of a following widget.
170 Understand this as the complement of "\fB--keep-window\fR".
171 To compare the effects, use these:
172 .
173 .ES
174 All three widgets visible, staircase effect, ordered 1,2,3:
175 .EX
176 \*p \
177                                --begin 2 2 --yesno "" 0 0 \\
178     --and-widget               --begin 4 4 --yesno "" 0 0 \\
179     --and-widget               --begin 6 6 --yesno "" 0 0
180 .EE
181 .
182 .ES
183 Only the last widget is left visible:
184 .EX
185 \*p \
186                  --clear       --begin 2 2 --yesno "" 0 0 \\
187     --and-widget --clear       --begin 4 4 --yesno "" 0 0 \\
188     --and-widget               --begin 6 6 --yesno "" 0 0
189 .EE
190 .
191 .ES
192 All three widgets visible, staircase effect, ordered 3,2,1:
193 .EX
194 \*p \
195                  --keep-window --begin 2 2 --yesno "" 0 0 \\
196     --and-widget --keep-window --begin 4 4 --yesno "" 0 0 \\
197     --and-widget               --begin 6 6 --yesno "" 0 0
198 .EE
199 .
200 .ES
201 First and third widget visible, staircase effect, ordered 3,1:
202 .EX
203 \*p \
204                  --keep-window --begin 2 2 --yesno "" 0 0 \\
205     --and-widget --clear       --begin 4 4 --yesno "" 0 0 \\
206     --and-widget               --begin 6 6 --yesno "" 0 0
207 .EE
208 .IP
209 Note, if you want to restore original console colors and send your
210 cursor home after the dialog program has exited, use the \fBclear\fR\ (1)
211 command.
212 .
213 .IP "\fB--colors"
214 Interpret embedded "\\Z" sequences in the dialog text
215 by the following character,
216 which tells \fB\*p\fP to set colors or video attributes:
217 0 through 7 are the ANSI used in curses:
218 black,
219 red,
220 green,
221 yellow,
222 blue,
223 magenta,
224 cyan and
225 white respectively.
226 Bold is set by 'b', reset by 'B'.
227 Reverse is set by 'r', reset by 'R'.
228 Underline is set by 'u', reset by 'U'.
229 The settings are cumulative, e.g., "\\Zb\\Z1" makes the following text
230 bold (perhaps bright) red.
231 Restore normal settings with "\\Zn".
232 .
233 .IP "\fB--column-separator \fIstring"
234 Tell \fB\*p\fP to split data for radio/checkboxes and menus on the
235 occurrences of the given string, and to align the split data into columns.
236 .
237 .IP "\fB--cr-wrap"
238 Interpret embedded newlines in the dialog text as a newline on the screen.
239 Otherwise, \fB\*p\fR will only wrap lines where needed to fit inside the text box.
240 Even though you can control line breaks with this,
241 \fB\*L\fR will still wrap any lines that are too long for the width of the box.
242 Without cr-wrap, the layout of your text may be formatted to look nice
243 in the source code of your script without affecting the way it will
244 look in the dialog.
245 .IP
246 See also the "\fB--no-collapse\fP" and "\fB--trim\fP" options.
247 .
248 .IP "\fB--create-rc \fIfile"
249 When
250 \fB\*p\fP
251 supports run-time configuration,
252 this can be used to dump a sample configuration file to the file specified
253 by
254 .IR file "."
255 .
256 .IP "\fB--date-format \fIformat"
257 If the host provides \fBstrftime\fP,
258 this option allows you to specify the format of the date printed for
259 the \fB--calendar\fP widget.
260 The time of day (hour, minute, second) are the current local time.
261 .
262 .IP "\fB--defaultno"
263 Make the default value of the
264 \fByes/no\fP
265 box a
266 .BR No .
267 Likewise, make the default button of widgets that provide "OK" and "Cancel"
268 a \fBCancel\fP.
269 If "\fB--nocancel\fP" or "\fB--visit-items\fP" are given
270 those options overrides this,
271 making the default button always "Yes" (internally the same as "OK").
272 .
273 .IP "\fB--default-item \fIstring"
274 Set the default item in a checklist, form or menu box.
275 Normally the first item in the box is the default.
276 .
277 .IP "\fB--exit-label \fIstring"
278 Override the label used for "EXIT" buttons.
279 .
280 .IP "\fB--extra-button"
281 Show an extra button, between "OK" and "Cancel" buttons.
282 .
283 .IP "\fB--extra-label \fIstring"
284 Override the label used for "Extra" buttons.
285 Note: for inputmenu widgets, this defaults to "Rename".
286 .
287 .IP "\fB--help"
288 Prints the help message to the standard output and exits.
289 The help message is also printed if no options are given,
290 or if an unrecognized option is given.
291 .
292 .IP "\fB--help-button"
293 Show a help-button after "OK" and "Cancel" buttons,
294 i.e., in checklist, radiolist and menu boxes.
295 If "\fB--item-help\fR" is also given, on exit
296 the return status will be the same as for the "OK" button,
297 and the item-help text will be written to \fB\*p\fP's output after the token "HELP".
298 Otherwise, the return status will indicate that the Help button was pressed,
299 and no message printed.
300 .
301 .IP "\fB--help-label \fIstring"
302 Override the label used for "Help" buttons.
303 .
304 .IP "\fB--help-status"
305 If the help-button is selected,
306 writes the checklist, radiolist or form information
307 after the item-help "HELP" information.
308 This can be used to reconstruct the state of a checklist after processing
309 the help request.
310 .
311 .IP "\fB--hfile \fIfilename"
312 Display the given file using a textbox when the user presses F1.
313 .
314 .IP "\fB--hline \fIstring"
315 Display the given string centered at the bottom of the widget.
316 .
317 .IP "\fB--ignore"
318 Ignore options that \fB\*p\fP does not recognize.
319 Some well-known ones such as "\fB--icon\fP" are ignored anyway,
320 but this is a better choice for compatibility with other implementations.
321 .
322 .IP "\fB--input-fd \fIfd"
323 Read keyboard input from the given file descriptor.
324 Most \fB\*p\fR scripts read from the standard input,
325 but the gauge widget reads a pipe (which is always standard input).
326 Some configurations do not work properly when
327 \fB\*p\fP tries to reopen the terminal.
328 Use this option (with appropriate juggling of file-descriptors)
329 if your script must work in that type of environment.
330 .
331 .IP "\fB--insecure"
332 Makes the password widget friendlier but less secure,
333 by echoing asterisks for each character.
334 .
335 .IP "\fB--item-help"
336 Interpret the tags data for checklist, radiolist and menu boxes
337 adding a column which is displayed in the bottom line of the
338 screen, for the currently selected item.
339 .
340 .IP "\fB--keep-tite"
341 Normally \fB\*p\fP checks to see if it is running in an \fBxterm\fP,
342 and in that case tries to suppress the initialization strings that
343 would make it switch to the alternate screen.
344 Switching between the normal and alternate screens
345 is visually distracting in a script which runs \fB\*p\fP
346 several times.
347 Use this option to allow \fB\*p\fP to use those initialization strings. 
348 .
349 .IP "\fB--keep-window"
350 Normally when \fB\*p\fR performs several \fBtailboxbg\fR widgets
351 connected by "\fB--and-widget\fR",
352 it clears the old widget from the screen by painting over it.
353 Use this option to suppress that repainting.
354 .IP
355 At exit, \fB\*p\fR repaints all of the widgets which have been
356 marked with "\fB--keep-window\fR", even if they are not \fBtailboxbg\fR widgets.
357 That causes them to be repainted in reverse order.
358 See the discussion of the "\fB--clear\fR" option for examples.
359 .
360 .IP "\fB--max-input \fIsize"
361 Limit input strings to the given size.
362 If not specified, the limit is 2048.
363 .
364 .IP "\fB--no-cancel"
365 .IP "\fB--nocancel"
366 Suppress the "Cancel" button in checklist, inputbox and menu box modes.
367 A script can still test if the user pressed the ESC key to cancel to quit.
368 .
369 .IP "\fB--no-collapse"
370 Normally \fB\*p\fR converts tabs to spaces and reduces multiple
371 spaces to a single space for text which is displayed in a message boxes, etc.
372 Use this option to disable that feature.
373 Note that \fB\*p\fR will still wrap text,
374 subject to the "\fB--cr-wrap\fR" and "\fB--trim\fR" options.
375 .
376 .IP "\fB--no-kill"
377 Tells
378 \fB\*p\fP
379 to put the
380 \fBtailboxbg\fP
381 box in the background,
382 printing its process id to \fB\*p\fP's output.
383 SIGHUP is disabled for the background process.
384 .
385 .IP "\fB--no-label \fIstring"
386 Override the label used for "No" buttons.
387 .
388 .IP "\fB--no-lines
389 Rather than draw lines around boxes, draw spaces in the same place.
390 See also "\fB--ascii-lines\fR".
391 .
392 .IP "\fB--no-mouse
393 Do not enable the mouse.
394 .
395 .IP "\fB--no-nl-expand
396 Do not convert "\\n" substrings of the message/prompt text into
397 literal newlines.
398 .
399 .IP "\fB--no-ok"
400 .IP "\fB--nook"
401 Suppress the "OK" button in checklist, inputbox and menu box modes.
402 A script can still test if the user pressed the "Enter" key to accept the data.
403 .
404 .
405 .IP "\fB--no-shadow"
406 Suppress shadows that would be drawn to the right and bottom of each dialog box.
407 .
408 .IP "\fB--ok-label \fIstring"
409 Override the label used for "OK" buttons.
410 .
411 .IP "\fB--output-fd \fIfd"
412 Direct output to the given file descriptor.
413 Most \fB\*p\fR scripts write to the standard error,
414 but error messages may also be written there, depending on your script.
415 .
416 .IP "\fB--separator \fIstring"
417 .IP "\fB--output-separator\fIstring"
418 Specify a string that will separate the output on \fB\*p\fP's output from
419 checklists, rather than a newline (for --separate-output) or a space.
420 This applies to other widgets such as forms and editboxes which normally
421 use a newline.
422 .
423 .IP "\fB--print-maxsize"
424 Print the maximum size of dialog boxes, i.e., the screen size,
425 to \fB\*p\fP's output.
426 This may be used alone, without other options.
427 .
428 .IP "\fB--print-size"
429 Prints the size of each dialog box to \fB\*p\fP's output.
430 .
431 .IP "\fB--print-version"
432 Prints \fB\*p\fR's version to \fB\*p\fP's output.
433 This may be used alone, without other options.
434 It does not cause \fBdialog\fP to exit by itself.
435 .
436 .IP "\fB--scrollbar"
437 For widgets holding a scrollable set of data,
438 draw a scrollbar on its right-margin.
439 This does not respond to the mouse.
440 .
441 .IP "\fB--separate-output"
442 For checklist widgets, output result one line at a time, with no quoting.
443 This facilitates parsing by another program.
444 .
445 .IP "\fB--separate-widget \fIstring"
446 Specify a string that will separate the output on \fB\*p\fP's output from
447 each widget.
448 This is used to simplify parsing the result of a dialog with several widgets.
449 If this option is not given,
450 the default separator string is a tab character.
451 .
452 .IP "\fB--shadow"
453 Draw a shadow to the right and bottom of each dialog box.
454 .
455 .IP "\fB--single-quoted"
456 Use single-quoting as needed (and no quotes if unneeded) for the
457 output of checklist's as well as the item-help text.
458 If this option is not set, \fB\*p\fP uses double quotes around each item.
459 That requires occasional use of backslashes to make the output useful in
460 shell scripts.
461 .
462 .IP "\fB--size-err"
463 Check the resulting size of a dialog box before trying to use it,
464 printing the resulting size if it is larger than the screen.
465 (This option is obsolete, since all new-window calls are checked).
466 .
467 .IP "\fB--sleep \fIsecs"
468 Sleep (delay) for the given number of seconds after processing a dialog box.
469 .
470 .IP "\fB--stderr"
471 Direct output to the standard error.
472 This is the default, since curses normally writes screen updates to
473 the standard output.
474 .
475 .IP "\fB--stdout"
476 Direct output to the standard output.
477 This option is provided for compatibility with Xdialog,
478 however using it in portable scripts is not recommended,
479 since curses normally writes its screen updates to the standard output.
480 If you use this option, \fB\*p\fR attempts to reopen the terminal
481 so it can write to the display.
482 Depending on the platform and your environment, that may fail.
483 .
484 .IP "\fB--tab-correct"
485 Convert each tab character to one or more spaces
486 (for the \fBtextbox\fP widget; otherwise to a single space).
487 Otherwise, tabs are rendered according to the curses library's interpretation.
488 .
489 .IP "\fB--tab-len \fIn"
490 Specify the number of spaces that a tab character occupies if the
491 "\fB--tab-correct\fP" option is given.
492 The default is 8.
493 This option is only effective for the \fBtextbox\fP widget.
494 .
495 .IP "\fB--time-format \fIformat"
496 If the host provides \fBstrftime\fP,
497 this option allows you to specify the format of the time printed for
498 the \fB--timebox\fP widget.
499 The day, month, year values in this case are for the current local time.
500 .
501 .IP "\fB--timeout \fIsecs"
502 Timeout (exit with error code)
503 if no user response within the given number of seconds.
504 This is overridden if the background "\fB--tailboxbg\fP is used.
505 A timeout of zero seconds is ignored.
506 .
507 .IP "\fB--title \fItitle"
508 Specifies a
509 \fItitle\fP
510 string to be displayed at the top of the dialog box.
511 .
512 .IP "\fB--trace \fIfilename"
513 logs the command-line parameters and
514 keystrokes to the given file.
515 If \fBdialog\fP reads a configure file, it is logged as well.
516 Piped input to the \fIgauge\fP widget is logged.
517 Use control/T to log a picture of the current dialog window.
518 .
519 .IP "\fB--trim"
520 eliminate leading blanks,
521 trim literal newlines and repeated blanks from message text.
522 .
523 .IP
524 See also the "\fB--cr-wrap\fR" and "\fB--no-collapse\fR" options.
525 .
526 .IP "\fB--version"
527 Prints \fB\*p\fR's version to the standard output, and exits.
528 See also "\fB--print-version\fP".
529 .
530 .IP "\fB--visit-items"
531 Modify the tab-traversal of checklist, radiobox, menubox and inputmenu
532 to include the list of items as one of the states.
533 This is useful as a visual aid,
534 i.e., the cursor position helps some users.
535 .IP
536 When this option is given, the cursor is initially placed on the list.
537 Abbreviations (the first letter of the tag) apply to the list items.
538 If you tab to the button row, abbreviations apply to the buttons.
539 .
540 .IP "\fB--yes-label \fIstring"
541 Override the label used for "Yes" buttons.
542 .
543 .\" ************************************************************************
544 .SS Box Options
545 All dialog boxes have at least three parameters:
546 .TP 5
547 \fItext\fP
548 the caption or contents of the box.
549 .TP 5
550 \fIheight\fP
551 the height of the dialog box.
552 .TP 5
553 \fIwidth\fP
554 the width of the dialog box.
555 .PP
556 Other parameters depend on the box type.
557 .
558 .
559 .IP "\fB--calendar \fItext height width day month year"
560 A \fBcalendar\fP box displays
561 month, day and year in separately adjustable windows.
562 If the values for day, month or year are missing or negative,
563 the current date's corresponding values are used.
564 You can increment or decrement any of those using the
565 left-, up-, right- and down-arrows.
566 Use vi-style h, j, k and l for moving around the array of days in a month.
567 Use tab or backtab to move between windows.
568 If the year is given as zero, the current date is used as an initial value.
569 .IP
570 On exit, the date is printed in the form day/month/year.
571 The format can be overridden using the \fB--date-format\fP option.
572 .
573 .
574 .IP "\fB--checklist \fItext height width list-height \fR[ \fItag item status \fR] \fI..."
575 A
576 \fBchecklist\fP
577 box is similar to a
578 \fBmenu\fP
579 box; there are
580 multiple entries presented in the form of a menu.
581 Another difference is
582 that you can indicate which entry is currently selected, by setting its
583 .IR status " to " on "."
584 Instead of choosing
585 one entry among the entries, each entry can be turned on or off by the user.
586 The initial on/off state of each entry is specified by
587 .IR status "."
588 .IP
589 On exit, a list of the \fItag\fP
590 strings of those entries that are turned on
591 will be printed on \fB\*p\fP's output.
592 If the "\fB--separate-output\fP" option is not given,
593 the strings will be quoted to make it simple for scripts to separate them.
594 See the "\fB--single-quoted\fP" option, which modifies the quoting behavior.
595 .
596 .
597 .IP "\fB--dselect \fIfilepath height width\fR"
598 The directory-selection dialog displays a text-entry window in which you can type
599 a directory, and above that a windows with directory names.
600 .IP
601 Here
602 \fBfilepath\fP
603 can be a filepath in which case the directory window
604 will display the contents of the path and the text-entry window will contain
605 the preselected directory.
606 .IP
607 Use tab or arrow keys to move between the windows.
608 Within the directory window, use the up/down arrow keys
609 to scroll the current selection.
610 Use the space-bar to copy the current selection into the text-entry
611 window.
612 .IP
613 Typing any printable characters switches focus to the text-entry window,
614 entering that character as well as scrolling the directory
615 window to the closest match.
616 .IP
617 Use a carriage return or the "OK" button to accept the current value
618 in the text-entry window and exit.
619 .IP
620 On exit, the contents of the text-entry window are written to \fB\*p\fP's output.
621 .
622 .IP "\fB--editbox \fIfilepath height width\fR"
623 The edit-box dialog displays a copy of the file.
624 You may edit it using 
625 the \fIbackspace\fP, \fIdelete\fP and cursor keys
626 to correct typing errors.
627 It also recognizes pageup/pagedown.
628 Unlike the \fB--inputbox\fP,
629 you must tab to the "OK" or "Cancel" buttons to close the dialog.
630 Pressing the "Enter" key within the box will split the corresponding line.
631 .IP
632 On exit, the contents of the edit window are written to \fB\*p\fP's output.
633 .
634 .nf
635 .IP "\fB--form \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..."
636 .fi
637 The \fBform\fP dialog displays a form consisting of labels and fields,
638 which are positioned on a scrollable window by coordinates given in the script.
639 The field length \fIflen\fR and input-length \fIilen\fR tell how long
640 the field can be.
641 The former defines the length shown for a selected field,
642 while the latter defines the permissible length of the data entered in the
643 field.
644 .RS
645 .TP 3
646 -
647 If \fIflen\fR is zero, the corresponding field cannot be altered.
648 and the contents of the field determine the displayed-length.
649 .TP 3
650 -
651 If \fIflen\fR is negative, the corresponding field cannot be altered,
652 and the negated value of \fIflen\fR is used as the displayed-length.
653 .TP 3
654 -
655 If \fIilen\fR is zero, it is set to \fIflen\fR.
656 .RE
657 .IP
658 Use up/down arrows (or control/N, control/P) to move between fields.
659 Use tab to move between windows.
660 .IP
661 On exit, the contents of the form-fields are written to \fB\*p\fP's output,
662 each field separated by a newline.
663 The text used to fill non-editable fields
664 (\fIflen\fR is zero or negative)
665 is not written out.
666 .
667 .
668 .IP "\fB--fselect \fIfilepath height width\fR"
669 The \fBfselect\fP (file-selection) dialog displays a text-entry window in which you can type
670 a filename (or directory), and above that two windows with directory
671 names and filenames.
672 .IP
673 Here
674 \fBfilepath\fP
675 can be a filepath in which case the file and directory windows
676 will display the contents of the path and the text-entry window will contain
677 the preselected filename.
678 .IP
679 Use tab or arrow keys to move between the windows.
680 Within the directory or filename windows, use the up/down arrow keys
681 to scroll the current selection.
682 Use the space-bar to copy the current selection into the text-entry
683 window.
684 .IP
685 Typing any printable characters switches focus to the text-entry window,
686 entering that character as well as scrolling the directory and filename
687 windows to the closest match.
688 .IP
689 Typing the space character forces \fB\*p\fP to complete the current
690 name (up to the point where there may be a match against more than one
691 entry).
692 .IP
693 Use a carriage return or the "OK" button to accept the current value
694 in the text-entry window and exit.
695 .IP
696 On exit, the contents of the text-entry window are written to \fB\*p\fP's output.
697 .
698 .
699 .IP "\fB--gauge \fItext height width [percent]\fR"
700 A
701 \fBgauge\fP
702 box displays a meter along the bottom of the box.
703 The meter indicates the percentage.
704 New percentages are read from
705 standard input, one integer per line.
706 The meter is updated
707 to reflect each new percentage.
708 If the standard input reads the string "XXX",
709 then the first line following is taken as an integer percentage,
710 then subsequent lines up to another "XXX" are used for a new prompt.
711 The gauge exits when EOF is reached on the standard input.
712 .IP
713 The \fIpercent\fR value denotes the initial percentage shown in the meter.
714 If not specified, it is zero.
715 .IP
716 On exit, no text is written to \fB\*p\fP's output.
717 The widget accepts no input, so the exit status is always OK.
718 .
719 .
720 .IP "\fB--infobox \fItext height width"
721 An \fBinfo\fP box is basically a \fBmessage\fP box.
722 However, in this case, \fB\*p\fP
723 will exit immediately after displaying the message to the user.
724 The screen is not cleared when \fB\*p\fP
725 exits, so that the message will remain on the screen until the calling
726 shell script clears it later.
727 This is useful when you want to inform
728 the user that some operations are carrying on that may require some
729 time to finish.
730 .IP
731 On exit, no text is written to \fB\*p\fP's output.
732 Only an "OK" button is provided for input,
733 but an ESC exit status may be returned.
734 .
735 .
736 .IP "\fB--inputbox \fItext height width [init]"
737 An
738 \fBinput\fP
739 box is useful when you want to ask questions that
740 require the user to input a string as the answer.
741 If init is supplied
742 it is used to initialize the input string.
743 When entering the string,
744 the \fIbackspace\fP, \fIdelete\fP and cursor keys
745 can be used to correct typing errors.
746 If the input string is longer than
747 can fit in the dialog box, the input field will be scrolled.
748 .IP
749 On exit, the input string will be printed on \fB\*p\fP's output.
750 .
751 .
752 .IP "\fB--inputmenu \fItext height width menu-height \fR[ \fItag item \fR] \fI..."
753 An \fBinputmenu\fP box is very similar to an ordinary \fBmenu\fP box.
754 There are only a few differences between them:
755 .RS
756 .TP 4
757 1.
758 The entries are not automatically centered but left adjusted.
759 .TP
760 2.
761 An extra button (called \fIRename\fP) is implied to rename
762 the current item when it is pressed.
763 .TP
764 3.
765 It is possible to rename the current entry by pressing the
766 \fIRename\fP
767 button.
768 Then \fB\*p\fP will write the following on \fB\*p\fP's output.
769 .IP
770 RENAMED <tag> <item>
771 .RE
772 .
773 .
774 .IP "\fB--menu \fItext height width menu-height \fR[ \fItag item \fR] \fI..."
775 As its name suggests, a
776 \fBmenu\fP
777 box is a dialog box that can be used to present a list of choices in
778 the form of a menu for the user to choose.
779 Choices are displayed in the order given.
780 Each menu entry consists of a \fItag\fP string and an \fIitem\fP string.
781 The \fItag\fP
782 gives the entry a name to distinguish it from the other entries in the
783 menu.
784 The \fIitem\fP is a short description of the option that the entry represents.
785 The user can move between the menu entries by pressing the
786 cursor keys, the first letter of the \fItag\fP
787 as a hot-key, or the number keys
788 .IR 1-9 ". There are"
789 \fImenu-height\fP
790 entries displayed in the menu at one time, but the menu will be
791 scrolled if there are more entries than that.
792 .IP
793 On exit the \fItag\fP
794 of the chosen menu entry will be printed on \fB\*p\fP's output.
795 If the "\fB--help-button\fR" option is given, the corresponding help
796 text will be printed if the user selects the help button.
797 .
798 .nf
799 .IP "\fB--mixedform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen itype \fR] \fI..."
800 .fi
801 The \fBmixedform\fP dialog displays a form consisting of labels and fields,
802 much like the \fB--form\fP dialog.
803 It differs by adding a field-type parameter to each field's description.
804 Each bit in the type denotes an attribute of the field:
805 .RS
806 .TP 5
807 1
808 hidden, e.g., a password field.
809 .TP 5
810 2
811 readonly, e.g., a label.
812 .RE
813 .
814 .IP "\fB--mixedgauge \fItext height width percent \fR[ \fItag1 item1 \fR] \fI..."
815 A
816 \fBmixedgauge\fP
817 box displays a meter along the bottom of the box.
818 The meter indicates the percentage.
819 .IP
820 It also displays a list of the \fItag\fP- and \fIitem\fP-values at the
821 top of the box.
822 See \*l(3) for the tag values.
823 .IP
824 The \fItext\fP is shown as a caption between the list and meter.
825 The \fIpercent\fR value denotes the initial percentage shown in the meter.
826 .IP
827 No provision is made for reading data from the standard input as \fB--gauge\fP
828 does.
829 .IP
830 On exit, no text is written to \fB\*p\fP's output.
831 The widget accepts no input, so the exit status is always OK.
832 .
833 .IP "\fB--msgbox \fItext height width"
834 A \fBmessage\fP box is very similar to a \fByes/no\fP box.
835 The only difference between a \fBmessage\fP box and a \fByes/no\fP
836 box is that a \fBmessage\fP box has only a single \fBOK\fP button.
837 You can use this dialog box to display any message you like.
838 After reading the message, the user can press the \fIENTER\fP key so that
839 \fB\*p\fP will exit and the calling shell script can continue its operation.
840 .IP
841 If the message is too large for the space,
842 \fB\*p\fP may allow you to scroll it,
843 provided that the underlying curses implementation is capable enough.
844 In this case, a percentage is shown in the base of the widget.
845 .IP
846 On exit, no text is written to \fB\*p\fP's output.
847 Only an "OK" button is provided for input,
848 but an ESC exit status may be returned.
849 .
850 .IP "\fB\-\-pause \fItext height width seconds\fR"
851 A
852 \fBpause\fP
853 box displays a meter along the bottom of the box.
854 The meter indicates how many seconds remain until the end of the pause.
855 The pause exits when timeout is reached
856 or the user presses the OK button
857 (status OK)
858 or the user presses the CANCEL button
859 or Esc key.
860 .IP "\fB--passwordbox \fItext height width [init]"
861 A \fBpassword\fP box is similar to an input box,
862 except that the text the user enters is not displayed.
863 This is useful when prompting for passwords or other
864 sensitive information.
865 Be aware that if anything is passed in "init", it
866 will be visible in the system's process table to casual snoopers.
867 Also, it
868 is very confusing to the user to provide them with a default password they
869 cannot see.
870 For these reasons, using "init" is highly discouraged.
871 See "\fB--insecure\fP" if you do not care about your password.
872 .IP
873 On exit, the input string will be printed on \fB\*p\fP's output.
874 .
875 .
876 .nf
877 .IP "\fB--passwordform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..."
878 .fi
879 This is identical to \fB--form\fP except that all text fields are
880 treated as \fBpassword\fP widgets rather than \fBinputbox\fP widgets.
881 .
882 .
883 .IP "\fB--prgbox \fItext command height width"
884 .IP "\fB--prgbox \fIcommand height width"
885 A \fBprgbox\fP is very similar to a \fBprogrambox\fP.
886 .IP
887 This dialog box is used to display the output of a command that is
888 specified as an argument to \fBprgbox\fP.
889 .IP
890 After the command completes, the user can press the \fIENTER\fP key so that
891 \fBdialog\fP will exit and the calling shell script can continue its operation.
892 .IP
893 If three parameters are given, it displays the text under the title,
894 delineated from the scrolling file's contents.
895 If only two parameters are given, this text is omitted.
896 .
897 .
898 .IP "\fB--programbox \fItext height width"
899 .IP "\fB--programbox \fIheight width"
900 A \fBprogrambox\fP is very similar to a \fBprogressbox\fP.
901 The only difference between a \fBprogram\fP box and a \fBprogress\fP
902 box is that a \fBprogram\fP box displays an \fBOK\fP button.
903 .IP
904 This dialog box is used to display the piped output of a command.
905 After the command completes, the user can press the \fIENTER\fP key so that
906 \fBdialog\fP will exit and the calling shell script can continue its operation.
907 .IP
908 If three parameters are given, it displays the text under the title,
909 delineated from the scrolling file's contents.
910 If only two parameters are given, this text is omitted.
911 .
912 .
913 .IP "\fB--progressbox \fItext height width"
914 .IP "\fB--progressbox \fIheight width"
915 A \fBprogressbox\fP is similar to an \fBtailbox\fP,
916 except that it will exit when it reaches the end of the file.
917 If three parameters are given, it displays the text under the title,
918 delineated from the scrolling file's contents.
919 If only two parameters are given, this text is omitted.
920 .
921 .
922 .IP "\fB--radiolist \fItext height width list-height \fR [ \fItag item status \fR] \fI..."
923 A
924 \fBradiolist\fP
925 box is similar to a
926 \fBmenu\fP
927 box.
928 The only difference is
929 that you can indicate which entry is currently selected, by setting its
930 .IR status " to " on "."
931 .IP
932 On exit, the name of the selected item is written to \fB\*p\fP's output.
933 .
934 .
935 .IP "\fB--tailbox \fIfile height width"
936 Display text from a file in a dialog box, as in a "tail -f" command.
937 Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
938 A '0' resets the scrolling.
939 .IP
940 On exit, no text is written to \fB\*p\fP's output.
941 Only an "OK" button is provided for input,
942 but an ESC exit status may be returned.
943 .
944 .
945 .IP "\fB--tailboxbg \fIfile height width"
946 Display text from a file in a dialog box as a background task,
947 as in a "tail -f &" command.
948 Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
949 A '0' resets the scrolling.
950 .IP
951 \*L treats the background task specially if there are other
952 widgets (\fB--and-widget\fP) on the screen concurrently.
953 Until those widgets are closed (e.g., an "OK"),
954 \fB\*p\fP will perform all of the tailboxbg widgets in the same process,
955 polling for updates.
956 You may use a tab to traverse between the widgets on the screen,
957 and close them individually, e.g., by pressing \fIENTER\fP.
958 Once the non-tailboxbg widgets are closed, \fB\*p\fP forks a copy of itself
959 into the background, and prints its process id if the "\fB--no-kill\fP" option
960 is given.
961 .IP
962 On exit, no text is written to \fB\*p\fP's output.
963 Only an "EXIT" button is provided for input,
964 but an ESC exit status may be returned.
965 .IP
966 NOTE:
967 Older versions of \fB\*p\fP forked immediately and attempted to
968 update the screen individually.
969 Besides being bad for performance,
970 it was unworkable.
971 Some older scripts may not work properly with the polled scheme.
972 .
973 .
974 .IP "\fB--textbox \fIfile height width"
975 A
976 \fBtext\fP
977 box lets you display the contents of a text file in a dialog box.
978 It is like a simple text file viewer.
979 The user can move through the file by using the
980 cursor, page-up, page-down
981 and \fIHOME/END\fR keys available on most keyboards.
982 If the lines are too long to be displayed in the box,
983 the \fILEFT/RIGHT\fP
984 keys can be used to scroll the text region horizontally.
985 You may also use vi-style keys h, j, k, l in place of the cursor keys,
986 and B or N in place of the page-up and page-down keys.
987 Scroll up/down using vi-style 'k' and 'j', or arrow-keys.
988 Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
989 A '0' resets the left/right scrolling.
990 For more convenience,
991 vi-style forward and backward searching functions are also provided.
992 .IP
993 On exit, no text is written to \fB\*p\fP's output.
994 Only an "EXIT" button is provided for input,
995 but an ESC exit status may be returned.
996 .
997 .
998 .IP "\fB--timebox \fItext height [width hour minute second]"
999 A dialog is displayed which allows you to select hour, minute and second.
1000 If the values for hour, minute or second are missing or negative,
1001 the current date's corresponding values are used.
1002 You can increment or decrement any of those using the
1003 left-, up-, right- and down-arrows.
1004 Use tab or backtab to move between windows.
1005 .IP
1006 On exit, the result is printed in the form hour:minute:second.
1007 The format can be overridden using the \fB--time-format\fP option.
1008 .
1009 .
1010 .IP "\fB--yesno \fItext height width"
1011 A \fByes/no\fP dialog box of
1012 size \fIheight\fP rows by \fIwidth\fP columns will be displayed.
1013 The string specified by
1014 \fItext\fP
1015 is displayed inside the dialog box.
1016 If this string is too long to fit
1017 in one line, it will be automatically divided into multiple lines at
1018 appropriate places.
1019 The
1020 \fItext\fP
1021 string can also contain the sub-string
1022 .I
1023 "\en"
1024 or newline characters
1025 \fI`\en'\fP
1026 to control line breaking explicitly.
1027 This dialog box is useful for
1028 asking questions that require the user to answer either yes or no.
1029 The dialog box has a
1030 \fBYes\fP
1031 button and a
1032 \fBNo\fP
1033 button, in which the user can switch between by pressing the
1034 .IR TAB " key."
1035 .IP
1036 On exit, no text is written to \fB\*p\fP's output.
1037 In addition to the "Yes" and "No" exit codes (see DIAGNOSTICS)
1038 an ESC exit status may be returned.
1039 .IP
1040 The codes used for "Yes" and "No" match those used for "OK" and "Cancel",
1041 internally no distinction is made.
1042 .
1043 .\" ************************************************************************
1044 .SS "Obsolete Options"
1045 .\" from cdialog 0.9a (Pako)
1046 .IP "\fB--beep"
1047 This was used to tell the original cdialog that it should make a beep
1048 when the separate processes of the tailboxbg widget would repaint the screen.
1049 .
1050 .\" from cdialog 0.9a (Pako)
1051 .IP "\fB--beep-after"
1052 Beep after a user has completed a widget by pressing one of the buttons.
1053 .
1054 .\" ************************************************************************
1055 .SH "RUN-TIME CONFIGURATION"
1056 .TP 4
1057 1.
1058 Create a sample configuration file by typing:
1059 .LP
1060 .in +1i
1061 "\*p --create-rc <file>"
1062 .TP 4
1063 2.
1064 At start,
1065 \fB\*p\fP
1066 determines the settings to use as follows:
1067 .RS
1068 .TP 4
1069 a)
1070 if environment variable
1071 \fBDIALOGRC\fP
1072 is set, its value determines the name of the configuration file.
1073 .TP 4
1074 b)
1075 if the file in (a) is not found, use the file
1076 \fI$HOME/.dialogrc\fP
1077 as the configuration file.
1078 .TP 4
1079 c)
1080 if the file in (b) is not found, try using the GLOBALRC file determined at
1081 compile-time, i.e., \fI/etc/dialogrc\fP.
1082 .TP 4
1083 d)
1084 if the file in (c) is not found, use compiled in defaults.
1085 .RE
1086 .TP 4
1087 3.
1088 Edit the sample configuration file and copy it to some place that
1089 \fB\*p\fP
1090 can find, as stated in step 2 above.
1091 .
1092 .\" ************************************************************************
1093 .SH "KEY BINDINGS"
1094 You can override or add to key bindings in \fB\*p\fP
1095 by adding to the configuration file.
1096 \fB\*L\fP's \fBbindkey\fP command maps single keys to its internal coding.
1097 .EX
1098 bindkey \fIwidget\fP \fIcurses_key\fP \fIdialog_key\fP
1099 .EE
1100 The \fIwidget\fP name can be "*" (all widgets), or
1101 specific widgets such as \fBtextbox\fP.
1102 Specific widget bindings override the "*" bindings.
1103 User-defined bindings override the built-in bindings.
1104 .PP
1105 The \fIcurses_key\fP can be any of the names derived from
1106 \fBcurses.h\fP, e.g., "HELP" from "KEY_HELP".
1107 \fB\*L\fP also recognizes ANSI control characters such as "^A", "^?",
1108 as well as C1-controls such as "~A" and "~?".
1109 Finally, it allows any single character to be escaped with a backslash.
1110 .PP
1111 \fB\*L\fP's internal keycode names correspond to the
1112 \fBDLG_KEYS_ENUM\fP type in
1113 \fBdlg_keys.h\fP, e.g., "HELP" from "DLGK_HELP".
1114 .
1115 .\" ************************************************************************
1116 .SH ENVIRONMENT
1117 .TP 15
1118 \fBDIALOGOPTS\fP
1119 Define this variable to apply any of the common options to each widget.
1120 Most of the common options are reset before processing each widget.
1121 If you set the options in this environment variable,
1122 they are applied to \fB\*p\fP's state after the reset.
1123 As in the "\fB--file\fP" option,
1124 double-quotes and backslashes are interpreted.
1125 .IP
1126 The "\fB--file\fP" option is not considered a common option
1127 (so you cannot embed it within this environment variable).
1128 .TP 15
1129 \fBDIALOGRC\fP
1130 Define this variable if you want to specify the name of the configuration file
1131 to use.
1132 .TP 15
1133 \fBDIALOG_CANCEL\fP
1134 .TP 15
1135 \fBDIALOG_ERROR\fP
1136 .TP 15
1137 \fBDIALOG_ESC\fP
1138 .TP 15
1139 \fBDIALOG_EXTRA\fP
1140 .TP 15
1141 \fBDIALOG_HELP\fP
1142 .TP 15
1143 \fBDIALOG_ITEM_HELP\fP
1144 .TP 15
1145 \fBDIALOG_OK\fP
1146 Define any of these variables to change the exit code on
1147 Cancel (1),
1148 error (-1),
1149 ESC (255),
1150 Extra (3),
1151 Help (2),
1152 Help with --item-help (2),
1153 or OK (0).
1154 Normally shell scripts cannot distinguish between -1 and 255.
1155 .TP 15
1156 \fBDIALOG_TTY\fP
1157 Set this variable to "1" to provide compatibility with older versions
1158 of \fB\*p\fP which assumed that if the script redirects the standard output,
1159 that the "\fB--stdout\fP" option was given.
1160 .SH FILES
1161 .TP 20
1162 \fI$HOME/.dialogrc\fP
1163 default configuration file
1164 .SH EXAMPLES
1165 The \fB\*p\fP sources contain several samples
1166 of how to use the different box options and how they look.
1167 Just take a look into the directory \fBsamples/\fP of the source.
1168 .SH DIAGNOSTICS
1169 Exit status is subject to being overridden by environment variables.
1170 Normally they are:
1171 .TP 5
1172 0
1173 if
1174 .BR \*p " is exited by pressing the " Yes " or " OK
1175 button.
1176 .TP 5
1177 1
1178 if the
1179 .BR No " or " Cancel
1180 button is pressed.
1181 .TP 5
1182 2
1183 if the
1184 .BR Help
1185 button is pressed.
1186 .TP 5
1187 3
1188 if the
1189 .BR Extra
1190 button is pressed.
1191 4
1192 if the
1193 .BR Item Help
1194 button is pressed.
1195 .TP 5
1196 -1
1197 if errors occur inside \fB\*p\fP
1198 or \fB\*p\fP is exited by pressing the \fIESC\fP key.
1199 .
1200 .\" ************************************************************************
1201 .SH PORTABILITY
1202 \fB\*L\fP works with X/Open curses.
1203 However, some implementations have deficiencies:
1204 .RS 3
1205 .TP 3
1206 -
1207 HPUX curses (and perhaps others) do not open the terminal properly for
1208 the \fInewterm\fP function.
1209 This interferes with \fB\*p\fP's \fB--input-fd\fP option,
1210 by preventing cursor-keys and similar escape sequences from being recognized.
1211 .TP 3
1212 -
1213 NetBSD 5.1 curses has incomplete support for wide-characters.
1214 \fB\*p\fP will build, but not all examples display properly.
1215 .RE
1216 .\" ************************************************************************
1217 .SH COMPATIBILITY
1218 You may want to write scripts which run with other \fBdialog\fP "clones".
1219 .SS ORIGINAL DIALOG
1220 First, there is the "original" \fBdialog\fP program to consider (versions
1221 0.3 to 0.9).
1222 It had some misspelled (or inconsistent) options.
1223 The \fB\*p\fP program maps those deprecated options to the preferred ones.
1224 They include:
1225 .RS
1226 .TS
1227 l l
1228 _ _
1229 l l.
1230 \fIOption\fR    \fITreatment\fR
1231 \fB--beep-after\fP      ignored
1232 \fB--guage\fP   mapped to \fB--gauge\fP
1233 .TE
1234 .RE
1235 .SS XDIALOG
1236 Technically, "\fBXdialog\fP",
1237 this is an X application.
1238 With some care, it is possible to write useful scripts that work
1239 with both \fBXdialog\fP and \fBdialog\fP.
1240 .PP
1241 The \fB\*p\fP program ignores these options which are recognized
1242 by \fBXdialog\fP:
1243 .RS
1244 .TS
1245 l l
1246 _ _
1247 l l.
1248 \fIOption\fR    \fITreatment\fR
1249 \fB--allow-close\fP     ignored
1250 \fB--auto-placement\fP  ignored
1251 \fB--fixed-font\fP      ignored
1252 \fB--icon\fP    ignored
1253 \fB--keep-colors\fP     ignored
1254 \fB--no-close\fP        ignored
1255 \fB--no-cr-wrap\fP      ignored
1256 \fB--screen-center\fP   ignored
1257 \fB--separator\fP       mapped to \fB--separate-output\fP
1258 \fB--smooth\fP  ignored
1259 \fB--under-mouse\fP     ignored
1260 \fB--wmclass\fP ignored
1261 .TE
1262 .RE
1263 .PP
1264 \fBXdialog\fP's manpage has a section discussing its compatibility with \fB\*p\fP.
1265 .SS WHIPTAIL
1266 Then there is \fBwhiptail\fP.
1267 For practical purposes, it is maintained by Debian.
1268 Its documentation claims
1269 .RS
1270 .sp
1271 .nf
1272 whiptail(1) is a lightweight replacement for \*p(1),
1273 to provide dialog boxes for shell scripts. It is built on the 
1274 newt windowing library rather than the ncurses library, allowing
1275 it to be smaller in embedded enviroments such as installers,
1276 rescue disks, etc.
1277 .sp
1278 whiptail is designed to be drop-in compatible with \*p, but
1279 has less features: some dialog boxes are not implemented, such
1280 as tailbox, timebox, calendarbox, etc.
1281 .fi
1282 .RE
1283 .PP
1284 Comparing actual sizes (Debian testing, 2007/1/10):
1285 The total of sizes for \fBwhiptail\fP, the newt, popt and slang libraries is 757kb.
1286 The comparable number for \fB\*p\fP (counting ncurses) is 520kb.
1287 Disregard the first paragraph.
1288 .PP
1289 The second paragraph is misleading, since \fBwhiptail\fP
1290 also does not work for common options of \*p, such as the gauge box.
1291 \fBwhiptail\fP is less compatible with \fB\*p\fP than the decade-old
1292 original dialog 0.4 program.
1293 .PP
1294 \fBwhiptail\fP's manpage borrows features from \fB\*p\fP, e.g.,
1295 \fB--default-item\fP (2000),
1296 \fB--output-fd\fP (2002),
1297 but oddly cites only \fB\*p\fP versions up to 0.4 (1996) as a source.
1298 That is, its manpage refers to features which
1299 were borrowed from more recent versions of \fB\*p\fP, e.g.,
1300 the \fB--gauge\fP and \fB--password\fP boxes,
1301 as well as options such as \fB-separate-output\fP (2008).
1302 Somewhat humorously, one may note that the \fBpopt\fP feature
1303 (undocumented in its manpage)
1304 of using a "--" as an escape was documented in \fB\*p\fP's manpage about
1305 a year before it was mentioned in \fBwhiptail\fP's manpage.
1306 \fBwhiptail\fP's manpage incorrectly attributes that to \fBgetopt\fP
1307 (and is inaccurate anyway).
1308 .PP
1309 Debian uses \fBwhiptail\fP for the official \fB\*p\fP variation.
1310 .PP
1311 The \fB\*p\fP program ignores or maps these options which are recognized
1312 by \fBwhiptail\fP:
1313 .RS
1314 .TS
1315 l l
1316 _ _
1317 l l.
1318 \fIOption\fR    \fITreatment\fR
1319 \fB--fb\fP      ignored
1320 \fB--fullbutton\fP      ignored
1321 \fB--nocancel\fP        mapped to \fB--no-cancel\fP
1322 \fB--noitem\fP  ignored
1323 .TE
1324 .RE
1325 .\" ************************************************************************
1326 .SH BUGS
1327 Perhaps.
1328 .SH AUTHOR
1329 .LP
1330 Thomas E. Dickey (updates for 0.9b and beyond)
1331 .SH CONTRIBUTORS
1332 Kiran Cherupally - the mixed form and mixed gauge widgets.
1333 .LP
1334 Tobias C. Rittweiler
1335 .LP
1336 Valery Reznic - the form and progressbox widgets.
1337 .LP
1338 Yura Kalinichenko adapted the gauge widget as "pause".
1339 .PP
1340 This is a rewrite (except as needed to provide compatibility)
1341 of the earlier version of \fB\*p 0.9a\fP,
1342 which lists as authors:
1343 .RS
1344 .LP
1345 Savio Lam - version 0.3, "dialog"
1346 .LP
1347 Stuart Herbert - patch for version 0.4
1348 .LP
1349 Marc Ewing - the gauge widget.
1350 .LP
1351 Pasquale De Marco "Pako" - version 0.9a, "cdialog"
1352 .RE