diff --git a/MAINTAINERS b/MAINTAINERS index 4f4d15869c81..818b52175f9e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -58,9 +58,7 @@ fusefs(4) asomers Pre-commit review requested. geli pjd Pre-commit review requested (both sys/geom/eli/ and sbin/geom/class/eli/). iwm(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org iwn(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org -libdpv dteske Pre-commit review requested. Keep in sync with dpv(1). libfetch des Pre-commit review requested. -libfigpar dteske Pre-commit review requested. libm freebsd-numerics Send email with patches to freebsd-numerics@ libpam des Pre-commit review requested. linprocfs des Pre-commit review requested. @@ -120,7 +118,6 @@ tools/build imp,jrtc27 Pre-commit review requested, especially to fix bootstrap top(1) eadler Pre-commit review requested. ufshci(4) jaeyoon Pre-commit review requested. usr.sbin/bsdconfig dteske Pre-commit phabricator review requested. -usr.sbin/dpv dteske Pre-commit review requested. Keep in sync with libdpv. usr.sbin/pkg pkg@ Please coordinate behavior or flag changes with pkg team. usr.sbin/sysrc dteske Pre-commit phabricator review requested. Keep in sync with bsdconfig(8) sysrc.subr. vmm(4) #bhyve Pre-commit review requested via #bhyve phabricator group. diff --git a/Makefile.inc1 b/Makefile.inc1 index f7d68dd0b4bd..6d82baeda643 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -3345,7 +3345,6 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \ lib/libbz2 ${_libcom_err} lib/libcrypt \ lib/libc++ \ lib/libelf lib/libexpat \ - lib/libfigpar \ ${_lib_libgssapi} \ lib/libjail \ lib/libkiconv lib/libkldelf lib/libkvm \ @@ -3384,11 +3383,6 @@ _prebuild_libs= ${_kerberos5_lib_libasn1} \ ${_secure_lib_libcrypto} ${_secure_lib_libssl} \ ${_lib_libldns} ${_secure_lib_libssh} -.if ${MK_DIALOG} != "no" -_prebuild_libs+= gnu/lib/libdialog -gnu/lib/libdialog__L: lib/msun__L lib/ncurses/tinfo__L lib/ncurses/ncurses__L -.endif - .if ${MK_GOOGLETEST} != "no" _prebuild_libs+= lib/libregex .endif diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 071fb20e870a..e966cd83f581 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,32 @@ # xargs -n1 | sort | uniq -d; # done +# 20260628: Removed dialog, figpar, dpv +OLD_FILES+=usr/bin/dialog +OLD_FILES+=usr/bin/dpv +OLD_FILES+=usr/lib/libdialog.a +OLD_FILES+=usr/lib/libdialog.so +OLD_LIBS+=usr/lib/libdialog.so.10 +OLD_FILES+=usr/lib/libdpv.a +OLD_FILES+=usr/lib/libdpv.so +OLD_LIBS+=usr/lib/libdpv.so.3 +OLD_FILES+=usr/lib/libfigpar.a +OLD_FILES+=usr/lib/libfigpar.so +OLD_LIBS+=usr/lib/libfigpar.so.0 +OLD_FILES+=usr/share/man/man1/dialog.1.gz +OLD_FILES+=usr/share/man/man1/dpv.1.gz +OLD_FILES+=usr/share/man/man3/dialog.3.gz +OLD_FILES+=usr/share/man/man3/dpv.3.gz +OLD_FILES+=usr/share/man/man3/dpv_free.3.gz +OLD_FILES+=usr/share/man/man3/figpar.3.gz +OLD_FILES+=usr/share/man/man3/get_config_option.3.gz +OLD_FILES+=usr/share/man/man3/parse_config.3.gz +OLD_FILES+=usr/share/man/man3/replaceall.3.gz +OLD_FILES+=usr/share/man/man3/strcount.3.gz +OLD_FILES+=usr/share/man/man3/strexpand.3.gz +OLD_FILES+=usr/share/man/man3/strexpandnl.3.gz +OLD_FILES+=usr/share/man/man3/strtolower.3.gz + # 20260602: Removed by 0a36787e4c1f on 20210723 OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_MESSAGES diff --git a/contrib/dialog/CHANGES b/contrib/dialog/CHANGES deleted file mode 100644 index 8e5d22e400a3..000000000000 --- a/contrib/dialog/CHANGES +++ /dev/null @@ -1,2461 +0,0 @@ --- $Id: CHANGES,v 1.723 2021/01/17 20:21:41 tom Exp $ --- Thomas E. Dickey - -This version of dialog was originally from a Debian snapshot. I've done this -to it: - -2021/01/17 - + updated dialog.pot - + add option --no-hot-list, to allow suppressing the hotkey feature - from lists. - + increase minimum height of inputbox to avoid input field overlapping - with the button-box (report by Victor Ananjevsky). - + modify options-parsing to permit a "no" on any boolean option and - deprecating the "no" options without a "-" , e.g., generalizing on - "--nook" equivalence to "--no-ok". - -2021/01/12 - + minor spelling fixes, per codespell - + update configure macros, for quoting/escaping fixes per shellcheck - + update config.guess, config.sub - -2020/11/26 - + modify configure script's compiler check to work around Xcode's - useless aliases for standard C. - + enable keep-tite feature for NetBSD 8 and up; earlier releases would - dump core. - > new features/fixes (Glenn Herteg) - + add option "--cursor-off-label" - + add option "--erase-on-exit" - + fix errata in manpage. - + fix logic: dlg_button_to_char() would return wrong value if no - uppercase was found - -2020/11/25 - + add DIALOG_TIMEOUT to sample scripts, and use report-button more - consistently to handle unexpected exit-status values. - -2020/11/24 - + add dlg_getenv_num() and dlg_getenv_str(). - + add DLG_EXIT_TIMEOUT to allow scripts to exit on an expired timeout - with an exit-status different from DLG_EXIT_ERROR or DLG_EXIT_ESC - (patch by Norbert Koch). - -2020/11/23 - + modify dlg_ok_label() and dlg_ok_labels() to ignore --no-ok if all - buttons would be omitted. - + add/use dlg_der_window() to account for derived windows just like - subwindows, to fix regression in dlg_getc() in fselect/dselect - widget. - + modify several widgets to make their handling of --no-ok consistent - with the majority of the widgets: editbox.c, menubox.c, msgbox.c, - rangebox.c, textbox.c, timebox.c - + add ^D as binding for new virtual key DLGK_LEAVE, which will close - the current dialog by activating the currently-selected button. - + improve manual-page description of --no-ok option (reports by - Hans Mueller, Gil Delescluse). - + modify configure script to make Solaris -R rpath feature work - -2020/11/21 - + fix regression in dlg_getc() caused by not taking into account - subwindows used for input (report by Michael Wihl). - -2020/11/20 - + add validity-checks for window pointer (report/testcase by Michael - Wihl). - + improve configure macros: - CF_CLANG_COMPILER: apply compiler-flags needed for test. - CF_WITH_SCREEN_PDCURSES: use this to reduce X11-checks. - -2020/11/17 - + amend initialization for dlg_getc to fix regression in pause widget - from 2020/03/27 changes (reports by Aidan Tessier, Norbert Koch, - Josmar Pierri). - + improve configure macros: - CF_CLANG_COMPILER: split-out check for -Qunused-arguments to ensure - that clang supports it. IBM xlclang does not. - CF_MIXEDCASE_FILENAMES: when cross-compiling to darwin (macOS), - assume the filesystem doesn't support mixed-case - -2020/09/21 - + modify init_dialog's initialization of tab_len and aspect_ratio to - avoid overwriting initialization done in process_common_options - (report/patch by Rainer Weikusat, Debian #970508). - -2020/09/13 - + fix out-of-order description for --tailbox vs --rangebox in manpage - (report by Glenn Herteg). - + updated configure-macros: compiler-warnings and shared-library - options. Changed configure --with-warnings to --enable-warnings for - consistency. - + update config.guess - -2020/04/01 - + updated sq.po from - http://translationproject.org/latest/dialog/ - -2020/03/27 - + add clarification in manual page to show when the single/double - quotes may be needed (prompted by discussion with Danilo G Baio). - + fix an extra ".exe" in makefile.in which prevented Cygwin build. - + fix most cppcheck warnings - + tailbox/tailboxbg's exit-button now works with mouse-clicks - + fix repainting while resizing for the editbox widget. - + add configure-check for curses_exit() from ncurses 6.2 - + fix a few memory leaks in fselect.c, mixedgauge.c when resizing. - + fix inconsistency in dlg_string_to_argv() which made the checklist9 - example not work. - + add empty-string check in dlg_print_listitem() to avoid indexing past - the end of the array of character-offsets. - + improve handling of KEY_RESIZE by repainting the backtitle after - clearing the screen (integrated patch by Rainer Weikusat, Debian - #954185). - + improve logic for wtimeout() calls which are used to set temporary - non-blocking reads (prompted by patch by Rainer Weikusat, Debian - #954220). - + add "make check" rule. - + updated configure-macros. - -2020/02/28 - + updated configure-macros, to work around ncurses vs xcode's c99 -W - + update config.guess - -2019/12/31 - + updated configure-macros. - + update config.guess - -2019/12/10 - + correct rc-file lookup of "default" color (report by Grady Martin, - cf: 2019/09/24). - + fix several issues in the sample scripts reported by shellcheck. - + fix a few spelling errors reported by codespell (report by Jens - Schleusener). - + correct check for return-value of isblank(), which is not necessarily - 0/1 (report/patch by Paul Cercueil, Peter Korsgaard, cf: 2018/05/31). - -2019/12/09 - + amend change for parsing command-options before calling init_dialog, - to handle --no-shadow, etc., which are initialized in init_dialog - (report by Paul Cercueil, cf: 2018/06/21). - + add dlg_trace_va_msg to manpage, symbol files. - -2019/11/10 - + improve layout of several widgets' data area when maximizing. - + modify dselect/fselect to work with autosizing (Debian #915949). - + add error messages from dlg_exiterr() to trace file. - + improve manual page description of escaping in key-bindings. - + modify inputmenu to recognize the "Cancel" button and keys bound to - that feature while editing a renamed menu item. - + revert one change, in form.c to the --last-key feature (Debian - #942025). - + correct ordering of libraries in configure-script, which appended - in a case where it should have prepended. - + update config.guess, config.sub - -2019/09/26 - + improve dialog-config script's filtering of -L options using the - linker default directories. - + improve dialog-config script, adding a -L option corresponding to - the configure --libdir option if it would be a duplicate (report by - Andrew Kosteltsev). - + build-fix for configure --disable-trace - + updated pt.po from - http://translationproject.org/latest/dialog/ - -2019/09/24 - + allow for underline- and reverse-video flags in the ".rc" file - (integrated patch by Richard Robbins). - -2019/08/08 - + amend change to --last-key feature to eliminate an unnecessary - separator (report by Gabriele Balducci). - -2019/08/06 - + extend --last-key feature to the remaining widgets which have - ok/cancel buttons, and add logic to map keys which happen to be - bound to ok/extra/cancel/help to simulate a button-press on the - corresponding button (report by "sgewrk"). - -2019/08/01 - + further fixes for dialog-config.in (report by Andrew Kosteltsev). - -2019/07/28 - + modify dialog-config.in so that setting prefix or exec-prefix to - a given value with --prefix=VALUE or --exec-prefix=VALUE has the - expected result of changing bindir, etc. - + correct substitution for $LIBS value in dialog-config.in (report by - Andrew Kosteltsev). - -2019/07/24 - + modify dlg_will_resize() and dlg_result_key() functions to reduce - the chance that dialog exits on a SIGWINCH (Debian #930775). - + make test-package for the development headers/library - + add --libs-only-L, etc., to dialog-config script (prompted by - discussion with Andrew Kosteltsev). - + fix a memory leak in gauge widget (Andrew Kosteltsev). - + minor fix for CF_GCC_WARNINGS - + update config.guess, config.sub - -2019/02/11 - + modify to work with ncurses' threaded-library, which does not allow - assignment to LINES/COLS (report by Marcus Roeckrath). - + correct clearing after text in progressbox from 2018/06/21 changes - for resizing (reports by David Boyd, Alan Somers). - + improved configure macros CF_GNU_SOURCE, CF_POSIX_C_SOURCE, - CF_XOPEN_SOURCE - + update config.guess, config.sub - -2018/11/07 - + convert ja.po to UTF-8 for consistency (suggested by Stanislav - Brabec). - + repair mis-encoded hi.po (report/analysis by Stanislav Brabec). - -2018/10/22 - + improved configure macros CF_CC_ENV_FLAGS, CF_LD_RPATH_OPT, - CF_LIBRARY_PATH, CF_SHARED_OPTS, CF_WITH_MAN2HTML, - CF_WITH_VERSIONED_SYMS from ncurses - + add ast.po, from - http://translationproject.org/latest/dialog/ - -2018/06/21 - + improve file-offset computation in textbox.c (Werner Fink). - + fix an overlooked case with real_auto_size() to maximize when - height or width is given as -1. - + build-fixes for configure options "--disable-Xdialog2" and - "--disable-form" - + add traces for each widget to show its parameters. - + modify color scheme for mixedgauge to use the dialog window colors, - like the captions. - + fix a too-small malloc in the mixedgauge widget. - + fix a use-after-free in dlg_remove_callback(). - + improve handling of SIGWINCH for several widgets (Debian #865840). - + menubox, the point of the Debian report was that it would be nice - to increase the window size if the terminal size increases. Did - that as a special case less problematic than decreasing the - terminal size. Added samples/menubox11 to demonstrate by - comparison with menubox10 a problem with debconf which puts extra - newlines in the caption that interfere with autowrap. - + progressbox and derived prgbox, programbox, now handle resizing. - + yesno, window was cleared - + add dlg_ttysize() to support new options, allowing scripts to obtain - some text-formatting details without initializing the terminal. - + add options --print-text-only, and --print-text-size for scripts that - adjust the widget size according to how the captions are formatted. - + improve dialog.pl: - + add demo.pl, to demonstrate the functions - + quote/escape string parameters passed to dialog. - + ensure all "integer" parameters are really integers. - + use actual screensize for list captions rather than assuming 24 - lines. - + when trimming blanks, treat unconverted tabs the same as spaces. - + correct parameter to test when trimming blanks from the script, - e.g., with "--trim" (report by Jarno Suni). - + improve documentation of the various whitespace-filtering options, - to show which take precedence (Debian #867536, cf: Debian #102942). - + modify msgbox.c, yesno.c to bind SCROLLKEY_BINDINGS before - TRAVERSE_BINDINGS so that up/down arrow will by default scroll the - message up/down rather than be aliases for tab-traversal (report by - Fredrik Kers). - + modify dump_one_binding() to show when a binding is overridden. - + improve format of trace-file, making comment-syntax consistent, - as well as showing argv-splitting as a series of comments. - + modify dlg_string_to_argv() to change the quoting behavior to be - more consistent with shell behavior (patch by Denilson Sa Maia). - + modify dlg_getc() to return ESC when a timeout expires, notifying - callers that a quit occurred rather than exiting the application - (suggested by Rodrigo Freitas). - + modify handle_inputs() to ensure cursor-visibility is restored when - there is no input character available (report by Guillaume Vareille). - + improve comment in manual page regarding which widgets can use the - "--help-button" (prompted by discussion with Csanyi Pal). - + add a check for valid object pointer in tailbox's main loop since - the getc-callback may have been freed within ui_getc.c (report by - "David"). - + improved configure macros for ncurses: CF_GNU_SOURCE, CF_SHARED_OPTS, - CF_CURSES_LIBS, CF_CURSES_FUNCS, CF_NCURSES_CONFIG - + improved configure script checks for groff vs man2html: - CF_PROG_GROFF and CF_WITH_MAN2HTML - + build-fix from lynx for AM_WITH_NLS configure macro - + update config.guess, config.sub - -2017/12/09 - + update ftp url in test-packages. - + modify test-packages to use recommended compiler/linker flags. - + improved configure macros AM_WITH_NLS, CF_CC_ENV_FLAGS, - CF_CURSES_LIBS, CF_NCURSES_CONFIG, CF_SHARED_OPTS, CF_WITH_LIBTOOL, - CF__INTL_BODY. - + update config.guess, config.sub - -2017/05/09 - + improved configure macros CF_ADD_CFLAGS, CF_CC_ENV_FLAGS, and - CF_SHARED_OPTS. - + updated hu.po and tr.po from - http://translationproject.org/latest/dialog/ - + update config.guess, config.sub - -2017/01/31 - + use DLG_TRACE macro consistently to make "--disable-trace" configure - option work. - + modify buildlist widget to support option "--reorder" for to allow - user to reorder the data based on the sequence of selections - (discussion with Paraic O'Ceallaigh). - + fill background color on unused parts of buildlist. - + fix a minor error in buildlist which let pageup switch columns. - + change several calls to dlg_trace_msg to prefix with "#" to make - the trace logs more consistent for parsing. - + add samples/run_test.sh - + further improve performance with very long command-lines by changes - to howmany_tags(). - + modify dlg_string_to_argv() to convert escaped double-quotes to - plain double-quotes when within a double-quoted string. - + modify makefile to apply CFLAGS to linking - + modify dlg_string_to_argv() to ignore escaped newlines except when - quoted, fixing a problem with samples/checklist9. - + interpret $DIALOGOPTS before expanding "--file", etc., to allow - the environment variable to turn on tracing in that process. - + improve performance when processing very long command lines, e.g., - using "--file" by changing dialog_opts[] to an array of pointers to - the expanded argv[] (discussion with Lars Tauber). - + modified autoconf macros - + CF_CC_ENV_FLAGS amend the last change to move only the - preprocessor, optimization and warning flags to CPPFLAGS and - CFLAGS, leaving the residue in CC. That happens to work for gcc's - various "model" options, but may require tuning for other compilers - + CF_LARGEFILE workaround for clang exit-code vs warnings - + CF_MATH_LIB quiet strict gcc warning - + CF_WITH_LIBTOOL fix a few places in configure/build scripts where - DESTDIR and rpath were combined - + CF_XOPEN_SOURCE add "uclinux" to list of Linux's - + update config.guess, config.sub - -2016/11/20 - + added fur.po (Friulian) from - http://translationproject.org/latest/dialog/ - -2016/08/28 - + improve parsing and trace for "bindkey", to convert space to/from - "\s", as well as handle octal escapes for single byte characters. - + change explicit checks for space character used for select or toggle - to make this rebindable to "TOGGLE" (prompted by discussion with - Paul van Tilburg). - + add default bindings for cursor left/right to formbox. The cursor - left/right cases were replaced with rebindable symbols in 2005/12/07 - without providing these keys as default values (report/patch by - Miroslav Lichvar). - + modified autoconf macros - + CF_PROG_LINT add cpplint to programs to use; drop ad hoc tdlint and - alint. - + CF_CC_ENV_FLAGS don't limit the check to -I, -U and -D options, - since the added options can include various compiler options before - and after preprocessor options. - + CF_GNU_SOURCE recent glibc (Debian 2.23-4 for example) has - misordered ifdef/checks for new symbol _DEFAULT_SOURCE, producing - warning messages when only _GNU_SOURCE is defined. Add a followup - check to define _DEFAULT_SOURCE. - + CF_XOPEN_SOURCE use _GNU_SOURCE for cygwin headers, tested with - cygwin 2.3, 2.5 (patch by Corinna Vinschen). - + mention --no-collapse option in manual page description of - --tab-correct option. - + update config.guess, config.sub - -2016/04/24 - + fix a special case in drawing shadow on a line-drawing cell where the - alternate-character set flag was lost (report by Martin Kravec). - + fix a regression from 2015/05/13 changes for escaping; it is - necessary to retain backslashes within quotes to make "\Z" escapes - work (report by Marcin Krol). - + fix test package for RPMs; changes in 2015 omitted symbolic links - for the library. - + fix typo in help message for "--buildlist" (report by Rihards Olups). - + modified autoconf macros - + CF_PROG_AR, CF_AR_FLAGS added to improve check for archive tool. - + CF_LD_RPATH_OPT, change FreeBSD to use -Wl,-rpath rather than - -rpath option. According to FreeBSD #178732, either works since - FreeBSD 4.x; however scons does not accept anything except the - -Wl,-rpath form. - + CF_WITH_NCURSES_ETC, change from ncurses to check for pthreads - dependency. - -2016/02/09 - + modify editbox widget to add a trailing newline if the text has none - to ensure the last line is not ignored (report by Florent Rougon). - + change mouse initialization to look for button-presses rather than - button-clicks, for better response. - + modify dump_curses_key() to show mouse-coding in readable form. - + correct mapping of mouse-clicks on the day-grid in calendar widget - when "--week-start" is used to set the start of the week (report by - Stefan Vogtner). - > integrated changes from Stefan Vogtner: - + use Gregorian algorithm for leap year - + use mktime if available; calendar was written just as it became - standard. - -2016/01/26 - release 1.3 - + correct --infobox documentation, which said it shows an OK button. - + fix a couple of place in test-scripts which referred to $SIG_TRAP - rather than $SIG_QUIT - + reorganize dialog.3, to use subsections for generating navigation - pane, using man2html - + add "--week-start" option for calendar widget (prompted by discussion - with Stefan Vogtner). - + add a limit-check in editbox.c to ensure that mouse-clicks outside - the filled-in text area do not access past the end of the array - (report by Stefan Vogtner). - + update configure macros from ncurses changes. - + update config.guess, config.sub - -2015/09/20 - + decrease table value for minimum number of arguments for the widgets - which use --no-items option (report by Raven Singularity). - + update configure macros: - + use $SHELL consistently, deprecate non-POSIX shell - + PKG_CONFIG may simply be unset - fix - + add option to allow changing ABI version, from ncurses6. - -2015/05/28 - + fixes for two autoconf macros, CF_ADD_INCDIR and CF_NCURSES_CONFIG - from work on ncurses. - + build-fix for NetBSD curses (patch by Matthias Scheler). - -2015/05/13 - + add configure option --with-install-prefix, like ncurses. - + add --with-screen and related configure options from ncurses-examples - to allow building with ncurses6 test-packages. - + update configure macros for improved coding style from lynx changes. - + updated ro.po from - http://translationproject.org/latest/dialog/ - + update config.guess, config.sub - > patches by Florent Rougon: - + fix two bugs in the "--file" option. - + When the number of arguments read from the included file is 0, the - code used to just skip over '--file' and its argument instead of - removing them from the argument list, causing "Error: Unknown - option --file" later on. - + In the alternative case (at least one argument read from the file), - the previous code used to do '--j;' in order to "force rescan" of - the inserted arguments. However, control then flowed to outer - blocks where a '++j;' counteracted this measure, causing "Error: - Unknown option --msgbox" (for instance) later on. - + modify escaping in argv.c to be more uniform, whether or not the - backslash is found within a parameter. - -2015/02/25 - + modify gauge widget to keep from erasing a second gauge widget, e.g., - via the "--and-widget" option. This is a cosmetic change to match - behavior of dialog 1.0 (report by Jason Orendorf). - + add configure option "--with-man2html" - + add configure options for versioned symbols, from ongoing work on - ncurses. - + update configure macros, e.g., for shared libraries - -2015/01/25 - + suppress highlighting of character which denotes an abbreviation or - shortcut for the OK/Cancel and other buttons for these widgets, which - use abbreviations for the list shown on the screen: buildlist, - checklist/radiobox, menubox, treeview (Debian #775295). - + add grid up/left and down/right bindings in editbox.c as synonyms for - field prev and next, respectively when handling the OK/Cancel buttons - (Debian #775294). - -2014/09/11 - + correct malloc-size for change to prgbox. - -2014/09/10 - + fixes to make "-c" option work when passing command to shell for the - prgbox widget, for example in samples/prgbox2 (report by Korantin - Auguste). - -2014/09/08 - + fix an out-of-bounds array index in buildlist widget (report by - Cade Foster). - -2014/09/01 - + add configure check for groff, needed for html/ps/pdf output. - + update configure-script macros: - + CF_ACVERSION_CHECK - work around another gratuitous incompatibility - introduced in 2.69 - + CF_ADD_CFLAGS - workaround for ash-shell, e.g., with Minix - + CF_ADD_LIBS - filter out duplicates - + CF_CURSES_FUNCS - improve workaround for weak-linkage, seems to fix - tests with NetBSD 6.1 - + CF_INTEL_COMPILER - clean up the -no-gcc option which was leftover - from testing. - + CF_LIB_SUFFIX - change suffix for AIX shared libraries to ".so". - + CF_MAKEFLAGS - workaround for GNU make 4.0 incompatibility with - previous releases. - + CF_XOPEN_SOURCE - add cases for Minix, UnixWare and improve the - workaround for Solaris. - + improve comparison in compare_cache() function, in case difference - between pointers does not fit in int's. - + updated de.po, es.po, hu.po, lv.po from - http://translationproject.org/latest/dialog/ - + update config.guess, config.sub - -2014/02/19 - + cleanup of manpages prompted by Gislason's comments. - + several changes to manpages to improve presentation (patches by - Bjarni I. Gislason, Debian #739180, Debian #739181) - + use "\/" when transitioning from italic to normal font - + correct an instance of "e.g,." - + use "\e" rather than "\\" to present a literal "\" - + improve formatting of table header - + remove some excess space-characters - + change a reference 0-9 to use "through" as the connector - + use "\&" to separate "." from a space to make the space shorter - + change a list's TP macro parameters to make the hanging text align - better with the adjacent paragraph - + add comma in a few places before "and" in a list - + separate units from numbers with a nonfillable space - + replace "-" with en-dash in a few places - + corrected argument indices after "--args" and "--file" to rescan the - argument list after removing/substituting those options. - + fix loops for "--file" option to handle cases with zero or no tokens at - all substituted (Redhat #1066168). - + add gd.po from - http://translationproject.org/latest/dialog/ - -2014/01/12 - + improve calculation for amount to scroll in programbox when an "Ok" - button might obscure part of the data (report by Florent Rougon). - + modify program to permit --separate-output to be used with buildlist - and treeview widgets (report by Florent Rougon). - + add list-height parameter to manpage description of --buildlist - (report by Florent Rougon). - + minor fixes to dialog.1 manpage; the reported problem was actually - fixed in 20120703 (Debian #726233, patch by Bjarni Ingi Gislason). - + add a "Hello World" example to dialog.3 manpage (prompted by - discussions with Dustin Oprea, Kevin Ingwersen). - + correct comparison in dlg_lookup_key() so that using "bindkey" with - a "*" wildcard parameter works as documented (report by Stewart - Benedict). - + updated configure macros, fixes for clang and mingw. - + update config.guess, config.sub - -2013/09/28 - + fix a regression in gauge widget from 2013/09/28 changes; - dlg_reallocate_gauge() failed when no --title option was given - (report by Tritonas Insomnia). - -2013/09/23 - + fix samples/inputbox6-utf8, which had depended unnecessarily on bash. - + improve memory caching for wide-character manipulation in gauge - widget (report by Devin Teske). - + add dlg_reallocate_gauge (discussion with Devin Teske). - + updated configure macros to use msys changes from ncurses. - + update config.guess, config.sub - -2013/09/02 - + modify makefile rule to make the ".png" filenames created by groff - predictable. - + add option --help-tags to allow scripts to get the item's tag field - consistently from help- and help-item button results rather than - getting the item's text for the latter (discussion with Florent - Rougon). - + correct manpage discussion of DIALOG_ITEM_HELP versus --item-help, - as well as --help-button return status (report by Florent Rougon). - + correct limit used for --hline option (report by Devin Teske, - cf: 2011/06/30). - + do not print empty "[]" if a --hline option was given with an empty - value (report by Devin Teske). - + miscellaneous configure script fixes/updates. In particular, add - option --with-shared which builds shared libraries without a libtool - dependency. - + add FreeBSD port-files for test-builds. - + update lt.po, add fa.po from - http://translationproject.org/latest/dialog/ - + update config.guess, config.sub - -2013/05/23 - + modify ifdef in arrows.c to work around packages which use the - wide-character ncursesw headers with the ncurses library (report - by Aleksey Cheusov). - + correct workaround for xterm alternate-screen to work with/without - the fix made in ncurses that makes putp() always write to the - standard output (Debian #708829). - + improve limit-checks for checklist, in case the dialog is resized - (report by Ilya A Arkhipov). - + add --last-key option (adapted from patch by Jordi Pujol, Debian - #697607). - -2013/03/15 - + update zh_TW.po, add an.po from - http://translationproject.org/latest/dialog/ - -2012/12/30 - release 1.2 - + improve some older changelog entries to help with HTML'izing content. - + various fixes/improvements for scrollbar appearance. - + add mappings for some equivalent options provided by whiptail; - add configure option --disable-whiptail to allow suppressing these. - + add configure option --disable-Xdialog2 to allow suppressing the - newer features, i.e., for cdialog 1.2 - + add --no-items option, for consistency. - + add --no-tags option, like Xdialog. - + add buildlist, rangebox and treeview dialogs, like Xdialog. - + remove obsolete workaround for ncurses 4.2 scrolling in checklist - and menubox. - + improve dialog_helpfile() by preventing it from showing extra buttons - (suggested by xDog Walker). - + correct logic in formbox's scroll_next() function (report by xDog - Walker). - + fix a case with inputbox widget where preset input text is not shown - until moving the cursor within the text (report by xDog Walker). - + handle SIGCHLD in dialog_prgbox() to eliminate defunct processes - (report by xDog Walker). - + improve the way "hotkeys" are assigned to widget buttons by checking - if a given key has already been used in the row of buttons (Debian - #684933). - + amend fix for --trace parsing from 2012/07/03, which sometimes - skipped a parameter (report by xDog Walker). - + drop copismall and install files from samples, which were essentially - nonfunctional. - + correct secondary border colors in samples/slackware.rc and - samples/whiptail.rc - + update gl.po, add ia.po from - http://translationproject.org/latest/dialog/ - + fix various issues reported by coverity scan. - + miscellaneous configure script fixes/updates: - + require autoconf 2.52+patches - + support --datarootdir option - + check for clang compiler - + check for tinfo library when looking for ncurses - + add 3rd parameter to AC_DEFINE for autoheader - + remove unused macros from aclocal.m4 - + update config.guess, config.sub - -2012/07/06 - + modify samples/setup-tempfile to work with Tru64's shell. - + modify inputmenu sample scripts to make them more portable: - + use "id" rather than "$GROUPS", use sed to work with Solaris. - + use sed to split-up the rename results to work with HPUX. - + fix regression in msgbox (ArchLinux #30574) - -2012/07/03 - + modify prgbox widget to work with --extra-button, etc. - + add case values to several widgets to allow for mouse-clicks with - "--extra-button" and "--help-button" additions. - + correct timebox widget's exit code for "--extra-button" when handing - the "enter" key. - + modify msgbox widget to honor "--extra-button". - + corrected processing of "--trace" option, which did not update the - index into command-line to point past its value. - + add a check in dialog program for valid characters used in option, - e.g., to generate an error if a script attempts to add option value - using "=" rather than with whitespace. - + add new command-line option --default-button and library function - dlg_default_button() to retrieve the value set by the option - to provide a way to set the default button directly rather than - by combining --nook, etc. (patch by Zoltan Kelemen). - + amend include of unctrl.h to apply only to the case where curses.h - is included, to avoid conflict of ncurses' unctrl.h with a system - implementation (report by Martin Roedlach) - + add limit-check to dlg_toupper() in non-wide curses mode to work - when non-character values such as arrow-key codes are passed to - it (patch by Zoltan Kelemen). - + override timeout value, e.g., as set via --timeout command-line - option in pause widget because that interferes with pause's behavior - (report by Jan Spitalnik). - + modify samples/inputmenu* to allow ":" in renamed text (report by - Andreas Stoewing). - + modify double-quoting to make it more consistent, i.e., checklist - output is quoted only when needed. This fixes the case where - single-quotes were used whether or not needed, but also modifies - older checklist behavior for double-quoting which always added those - (Debian #663664). - + correct exit-code used in inputmenu for "rename" button (Debian - #673041, forwarded from Ubuntu #333909, patch by Lebedev Vadim). - + update el.po and hr.po from - http://translationproject.org/latest/dialog/ - + use checkbashisms to clean up sample scripts. - -2012/02/15 - + modify menubox.c to use the same improvement as in checklist.c - + improve auto width computation for checklist widget by using - dlg_calc_list_width as in the non-auto case (Edho Arief). - + eliminate some bashisms in the sample scripts (Pedro Giffuni). - + makefile fixes from FreeBSD ports (Li-Wen Hsu): - + make --with-package option of configure script work. - + get LIBTOOL_VERSION from configure script, needed by - ${LIBTOOL_VERSION} in LIBTOOL_CREATE (LIB_CREATE in configure and - aclocal.m4) - + update cs.po and sr.po from - http://translationproject.org/latest/dialog/ - + updated configure script macros, improving CF_XOPEN_SOURCE among - other fixes. - -2011/10/20 - + fix --analyze warnings for clang versions 2.8, 2.9. - + add configure check for lint program. - + add check in dlg_getc() in case its window is freed as a side effect - of removing callbacks. - + fix logic in freeing subwindows (report by xDog Walker). - + fix a regression in logic distinguishing between inputmenu and menu - widgets (report by xDog Walker). - + minor fixes to library manpage. - -2011/10/18 - + modify header-sh.in to work around limit on sed script length on - HPUX. - + add a special case of parameter parsing for "--trace" to the - initialization done before calling init_dialog(), to allow users to - capture the initial state of the parameter list before any options - are processed and removed. This is only done if "--trace" is the - first option, otherwise it is handled in the common options as before - (report by xDog Walker). - + modify samples/testdata-8bit, discarding $1 from the parameter list - if it was used, so that the source'ing scripts can consistently use - "$@" to insert parameters before the widget, e.g., as an alternative - to using $DIALOGOPTS (report by xDog Walker). - + modify treatment of function pointers in menubox.c, make - dlg_renamed_menutext() and dlg_dummy_menutext() visible to library - users (request by xDog Walker). - + add dlg_count_real_columns(), use to modify centering for "--hline" - text to account for "\Z"s (report by xDog Walker). - + improve check in dlg_draw_arrows2() for conflict between the window - title and up-arrow marker to take into account that the given window - may not be the top-level window of the widget. - + change width of page up/down mouse areas in fselect panes to use the - full width of the panes rather than only the portion from the left - margin to the up/down arrow. - + add/use dlg_draw_box2() and dlg_draw_bottom_box2() to use the - secondary borders. - + modify rc-file read/write to accept/generate color values that refer - to previously-processed items in the color table. This reduces the - number of distinct colors that must be specified to set up a color - scheme. - + add color table entries for secondary borders, i.e., the ones that - are normally drawn with the dialog's text-colors (Debian #641168). - + modify fselect.c to scan the current directory if the input field - happens to be empty (Debian #640905). - + repeated the discussion of environment variables that can override - the exit-status values in the manpage's return-codes section - (Debian #642105). - + add an example to the manpage showing how to override the form - widget's keys used for field/button traversal (Debian #642108). - + modify call to dlg_register_window() in formbox.c so that the editing - bindings are attached to the form sub-window rather than the - top-level dialog window. Also change the name by which the editing - bindings are bound for editbox.c, fselect.c and inputbox.c, so that - the editing and navigation bindings can be different. - + correct logic in dlg_lookup_key() so that it matches the widget name - before using a binding from .dialogrc, allowing the inner/outer - windows of form and other editing widgets to have different bindings. - + modify dlg_register_window() to call dlg_dump_window_keys() after - its updates, via the --trace output, to supplement the manpage - description of key bindings (Debian #642108). - + add DLGK_FORM_PREV and DLGK_FORM_NEXT key-bindings to form.c, to - allow binding a single key to traverse both form-fields and buttons - (Debian #642108). - + modify dlg_parse_rc() to check for error return from - dlg_parse_bindkey(). - + add function dlg_dump_window_keys(), to help with debugging widgets. - + add CR, LF, TAB, FF and ESC to table of curses names to help make - key bindings more readable. - + update table of dialog key-names so that helpfile and trace are - dumped properly. - + correct dlg_dump_keys(), which was showing only the first item in - the matched binding table. - + save/restore window current position in dlg_update_mixedgauge(). - + pass return-code from pause_for_ok() from dlg_progressbox() when - pauseopt is set, rather than only DLG_OK. - + call setlocale() in init_dialog() rather than relying on on-demand - use within inputstr.c, since there are paths in textbox widget which - do not exercise the latter (report by xDog Walker). - + fix some places where checks for "\Z" were done without also checking - dialog_vars.colors (report by Moray Henderson). - + correct logic for DIALOGOPTS parsing so that the parse happens only - once unless memory leak checking is enabled (report by xDog Walker). - + remove an incorrect free() call in dlg_free_gauge() (report by xDog - Walker). - + modify dlg_trace_win() to log wide-characters (report by xDog Walker). - + make traces shorter by skipping repeated ERR's, but showing the - number skipped (report by xDog Walker). - + improve description in manpage to distinguish program box and - progress box from tailboxes (adapted from email by xDog Walker). - + modify dlg_trace_win() so that it looks for the topmost window in a - dialog. Because subwindows share space with the top window, tracing - the latter shows the whole widget (report by xDog Walker). - + expand tracing so that each window is traced before soliciting input, - making the ^T feature to print a window on demand partly redundant - (suggested by xDog Walker). - + cosmetic change in dialog.h to avoid "*/*" strings from comments next - to "*" (report by xDog Walker). - + ensure result from dlg_align_columns() has trailing null on each - string. Analysis was hindered by libc6's continuance of libc5's - early-1990s misfeature of clearing the result from malloc, noting - that libc6's documentation incorrectly claims that it does not do - this (report by xDog Walker). - -2011/07/07 - + modify util.c to work better with old versions of ncurses: - + suppress use of wchgat() before fix in 20060715 which is needed - for simple shadow manipulation used here in 2011/06/30 (report - by xDog Walker). - + add a null-pointer check in dlg_print_scrolled() - + fix a regression in dlg_getc() introduced by changes to intercept - F1 for help-popup (report by xDog Walker). - -2011/06/30 - + correct license statement for prgbox.c (Debian #632198). - + correct layout when "--colors" is used, by discounting characters in - the escape sequences from the column counts (report by xDog Walker). - + modify dlg_checklist() so that only one item in the list can - initially be selected (report by xDog Walker). - + add/use macro dlg_enter_buttoncode() to improve implementation of - "--nook" option (report by xDog Walker). - + add option "--no-nl-expand" to suppress the conversion of "\n" - strings into newlines (request by xDog Walker). - + modify LIB_CREATE symbol in makefile.in to include the library - dependencies such as ncurses. This is needed when dynamically - loading the library (report/analysis by xDog Walker). - + modify dlg_exit_label() to suppress the Cancel button, for - consistency. - + modify dlg_exit_label() to honor the --nook option, except when there - is no other button, e.g., the help-button. - + modify dlg_exit_buttoncode() so that it returns the proper code for - help-button (report by xDog Walker). - + correct loop limit when processing "--column-separator" (report by - xDog Walker). - + modify handling of "--version" and "--help" to ensure that they are - processed, and exit before widgets. Separate "--print-version" - from "--version", allowing its output to be interspersed with - widget output (report by xDog Walker). - + correct a few places where "--version" or "--help" options went - always to stdout rather than allowing redirection with the "--stderr" - option (report by xDog Walker). - + improve repainting after erasing a widget and its shadow. - + add "--hline" and "--hfile" options for compatibility with FreeBSD - dialog (request by Devin Teske). - + add dialog version message when opening a trace file (request by - xDog Walker). - + show filename of rc-file in traces. - + add piped-in data for gauge widget to traces. - + add entrypoints to gauge widget, for allocating, updating and freeing - the widget (adapted from patch by Stephen Hurd). - + fix a reference to freed memory in the gauge widget. - + fix --no-mouse option by actually closing the mouse (report by - xDog Walker). - + add sk.po from - http://translationproject.org/latest/dialog/ - + limit Solaris xpg4 portability fix for redefinition of ERR to cover - the specific value found in , in case an application - includes dialog.h after curses.h (FreeBSD #156601, report by Jaakko - Heinonen, Stephen Hurd). - + updated configure macros: - + CF_CURSES_CPPFLAGS, - + CF_CURSES_LIBS, make checks for special libraries on hpux10 and - sunos4 optional - + CF_CURSES_FUNCS, workaround for bug in gcc 4.2.1 (FreeBSD 8.1) - which caused part of test program to be omitted, i.e., when it saw - two return-statements in a row it omitted the _first_ one. Also - add expression to pointer check to help FreeBSD's linker decide it - should be validated. Just an assignment was not enough. Also, add - check for unctrl.h - + CF_CURSES_HEADER, change order for curses.h / ncurses.h pairs to - put ncurses.h first, which will tend to provide the same #define's - as in CF_NCURSES_HEADER (report by Dennis Preiser). - + CF_CURSES_TERM_H, modify to avoid spurious check for - if there is no ncurses version. Look for - ncurses's term.h anyway, to work around breakage by packagers who - separate ncurses' header files. - + CF_DISABLE_RPATH_HACK, fix garbled message - + CF_LD_RPATH_OPT, add mirbsd - + CF_MAKEFLAGS, filter out GNU make's entering/leaving messages. - This only appeared when using the macro in a dpkg script, though it - should have in other cases. - + CF_RPATH_HACK, add a check for libraries not found, e.g., from - suppressed functionality of gcc in linking from /usr/local/lib, and - add a -L option to help work around this. - + CF_XOPEN_SOURCE, workaround for cygwin to get ncurses' configure - script to define _XOPEN_SOURCE_EXTENDED (cygwin's features.h - doesn't do anything, so it needs a crutch). - + update config.guess, config.sub - -2011/03/02 - + add --prgbox and --programbox (adapted from patch by David Boyd). - + add sl.po from - http://translationproject.org/latest/dialog/ - + fix timeouts from 2011/01/18, which were being interpreted as - milliseconds rather than seconds (report by Luis Moreira). - -2011/01/18 - + fix inconsistency in return-codes for textbox when help-button is - used by making dlg_exit_buttoncode() a wrapper for - dlg_ok_buttoncode(). - + modify pause widget to use dlg_ok_buttoncode(), so help-button works. - + correct two infobox sample scripts, which did not pass extra - command-line parameters due to quoting problems. - + add a limit-check to the timebox widget (patch by Garrett Cooper). - + modify --trace option to also trace the command-line parameters. - + account for combining characters when wrapping text (Debian #570634). - + correct handling of SIGWINCH in gauge widget (Debian #305705). - + add gauge_color, to make guage's progress-bar distinct from - title_color (request by Dominic Derdau). - + update fi.po from - http://translationproject.org/latest/dialog/ - as well as resync line-numbers in the other po-files. - + modify configure script and dialog program to build with NetBSD's - wide-character curses functions, including workarounds for its - incorrect WACS_xxx definitions. Some of the UTF-8 examples work. - + add back-tab for traversal of tailboxbg widgets, for symmetry with - tab-traversal. - + reduce flicker in tailboxbg by checking if the input file size has - changed. - + modify internals of callbacks to avoid blocking reads of their - associated files by keyboard input. - + add command-line option --no-mouse, to suppress use of mouse. - + add configure option --enable-header-subdir to allow the header files - to be installed into a subdirectory named for the package. - + modify dlg_restore_vars() to retain the updated values of - input_result and input_length, eliminating the need for a caller to - provide their own user buffer (prompted by report by Thiago Bimbatti - Felicio). - + add a null-pointer check in show_result() for - dialog_vars.input_result, and ensure it is set to null after freeing - (prompted by report by Thiago Bimbatti Felicio). - + change order of -I options in CPPFLAGS (report by Michel Feldheim) - + modify pause-widget so that it no longer exits when an unrecognized - key is pressed (patch by Creidieki M Crouch). - + add --with-package option to configure script to allow renaming - of the dialog program and library, to support the package scripts. - + add Debian and RPM package scripts for test-builds. - + several improvements to configure script: - + quote params of ifelse() - + change obsolete ${name-value} to standard ${name:-value} - + use new macros CF_ADD_LIB/CF_ADD_LIBS to enforce consistency. - + AM_GNU_GETTEXT, drop $MKINSTALLDIRS, use "mkdir -p" consistently. - + CF_ADD_SUBDIR_PATH, workaround - if $prefix was not mkdir'd yet, no - directories were added. - + CF_BUNDLED_INTL, add --with-textdomain option, to use with lynx-dev - package - + CF_FIND_LINKAGE, simplify save/restore of $LIBS - + CF_GCC_WARNINGS, fix for Mac OS X (compiler makes conftest.dSYM - directory) - + CF_HEADER_PATH, don't search for variations of everything in the - current include-path - + CF_WITH_CURSES_DIR, move the calls to CF_ADD_INCDIR and - CF_ADD_LIBDIR for the curses-directory here, from - CF_NCURSES_CPPFLAGS and CF_NCURSES_LDFLAGS, so it will work even - with the default checking, e.g., no --with-ncurses, etc. - + update config.guess, config.sub - -2010/04/28 - + several improvements to configure script: - + modify CF_CURSES_TERM_H to handle cases such as cygwin where - packager has installed curses.h and term.h in different - directories, e.g., to wedge in a termcap library. - + modify CF_XOPEN_SOURCE, adding special case for OpenSolaris - + modify CF_MAKE_TAGS to add check for exctags and exetags, prefer to - ctags and etags to work around pkgsrc (NetBSD) renaming. - + correct CF_FIND_LINKAGE, setting cache variable for library_file in - the special case where no directory search is made. - + improve CF_GCC_VERSION, suppress stderr for c89 alias of gcc. - + improve CF_GCC_WARNINGS, moving -W and -Wall into the list to - check, since c89 alias for gcc complains about these options. - + modify CF_HEADER_PATH, to not search for variations of everything - in the current include-path - + use "mkdir -p", remove mkdirs.sh - + use CF_CURSES_HEADER to fill in possible subdirectory used for - ncurses header filename. - + modify CF_XOPEN_CURSES to work around current ncurse header loss of - predefinition of _XOPEN_SOURCE_EXTENDED - + add "--disable-rpath-hack" option, along with scripting to add - rpath option to libraries found in unusual places. - + modify pause widget to autosize like gauge, and to omit the area for - buttons when none are displayed. - + fix an infinite loop in dlg_button_layout() if there are no buttons - to display (Debian #579390). - + add makefile rules for generating html, etc., documentation from - nroff. - > patches by Samuel Martin Moro - + reset errors in tailbox before reading new character. - + modify dlg_draw_scrollbar(), omitting hiding percentages in boxes - when no arrows or scrollbar are needed. - + correct value of row for scrollbars in formbox. - + update es.po from - http://translationproject.org/latest/dialog/ - -2010/01/19 - + split up binding tables in inputbox and similar widgets to avoid - conflict between cursor-key use for input-string versus navigation - (report by slakmagik). - + if strftime() is available, support --time-format option for timebox - widget. - + if strftime() is available, support --date-format option for calendar - widget (request by Walter Harms). - + build-fixes for linking to intl library in /usr/local - + add --scrollbar option, use in most widgets to show a scrollbar on - the right margin of the data. That is cosmetic, does not respond to - the mouse. - + reuse functions from msgbox to allow prompt for yesno box to be - scrolled in a too-small window. - + correct mapping of button-codes with --nook option (report by Lebedev - Vadim). - + cleanup sample scripts using new utility scripts setup-* and report-*, - and allow command-line parameters to be added, for ad hoc testing. - + correct change to tailbox widget from 2009/02/22 using - dlg_button_layout(), which broke that widget. - + document some of the portability caveats. - + modify gauge widget to service callbacks (prompted by patch and - comments by Frank Sorenson). - + modify editbox to allow its input buffer to be larger than MAX_LEN - unless bounded by the --max-input option, and add limit-checks for - the buffer (report by slakmagik). - + improve manpage description of --checklist (report by Isaac Good). - + several improvements to configure script macros: CF_ADD_CFLAGS - CF_CURSES_FUNCS CF_DISABLE_ECHO CF_GCC_ATTRIBUTES CF_MATH_LIB - CF_POSIX_C_SOURCE CF_REMOVE_DEFINE CF_WITH_LIBTOOL CF_XOPEN_SOURCE - + add is.po, lv.po, sw.po from - http://translationproject.org/latest/dialog/ - + update de.po, id.po, pl.po, pt_BR.po, vi.po from - http://translationproject.org/latest/dialog/ - -2009/02/22 - + do not display top-arrows for scrolling if they would overwrite the - title (report by slakmagik) - + consistently use dlg_button_layout() when autosizing widgets (report - by slakmagik). - + add "-" and "+" bindings to timebox widget. - + add "-" and "+" bindings to calendar widget (OpenSolaris #6739031). - + review/fix other widgets to ensure that they exit on error, e.g., - editbox.c - + modify check in dlg_getc() to treat closure of either stdin or stdout - as an error, rather than both. This is more stringent than the check - added in 2007/07/04. - + modify dlg_result_key() to map curses ERR to dialog's error exit - (adapted from patch by Domagoj Pensa). - + updated several configure script macros: - + consistently append, rather then prepend, to $CFLAGS - + add cases for AIX 6, mint, and dragonfly to CF_XOPEN_SOURCE - + use $PATH_SEPARATOR rather than $PATHSEP - + improve CF_FIND_LINKAGE, use in checks for more libraries, e.g., - libutf8 and libiconv. - + update da.po, ru.po from - http://translationproject.org/latest/dialog/ - + update config.guess, config.sub - -2008/08/19 - + amend changes to quoting; by default, the checklist widget quotes its - output except when --separate-output is used (Debian #495600). - + add eo.po from - http://translationproject.org/latest/dialog/ - -2008/07/27 - + add pointer-check when closing piped input (cf: 2007/03/25) - + use here-documents rather than echo, when passing backslashes in - strings, to accommodate the Debian shell "dash" (Debian #489563). - + recode several ".po" files to UTF-8 for consistency. - + change --separator to be an alias for --output-separator, for - compatibility with Xdialog. - + add --output-separator option to allow scripts to change the output - separator from a newline (for --separate-output) or a space. This - applies to other widgets such as forms and editboxes which normally - use a newline. - + add --column-separator option, to tell where column-aligned data for - radio/checkboxes or menus should be split into columns (request by - Ben Dibbens). - + add id.po, ku.po, lt.po, nb.po and update ca.po, fr.po, gl.po, ja.po, - th.po from - http://translationproject.org/latest/dialog/ - + add "--quoted" option, to quote values returned by formbox, etc. - + change names of EX/ES macros in dialog.1 to work around name- - pollution caused by changes in Debian #470729. - -2008/03/16 - + modify dlg_mouse_wgetch() to loop only on errors that it detects, - rather than on errors forwarded from dlg_getc(), in case those are - due to a disconnected terminal (report by Anatoli Sakhnik). - + allow "default" color in dialogrc file (request by Dashing). - + fix an indexing error in formbox (Debian #469190, report by Dmitry - Gomerman, patch by Vladimir Mezentsev). - + add bindings for CTL/N, CTL/P to checklist, fselect and menubox - widgets (prompted by discussion with John Gatewood Ham). - + add be@latin.po, th.po and update zh_TW.po from - http://translationproject.org/latest/dialog/ - > patches by Peter Astrand: - + modify dlg_auto_sizefile() to ensure the computed height and width - do not extend beyond the screen size. - + use unctrl() to make inputstr.c work with Solaris curses. - > patches by Yura Kalinichenko: - + extend pause widget to use ok/cancel buttons (the former giving the - same result as a timeout), rather than an exit-button. - + fix initialization parameter of inputbox for multibyte characters. - -2007/10/28 - + improve layout of checklist.c, menubox.c, ensuring that the list fits - within the available space (report by Gordon Schumacher). - + undo removal of redundant chunk from checklist.c in 2007/02/27, - since some scripts depend on this (Debian #443077). - + update nl.po from - http://translationproject.org/latest/dialog/ - -2007/09/30 - + correct cursor position in editbox after deleting past left margin - (report by Joe McDonagh). - + add "--no-ok" option (patch by Klaus Knopper). - + modify "--file" option to allow it to read from sources other than - a regular file (patch by Pieter van Beek). - + improved hi.po (Hindi) (from Klaus Knopper). - + fix masking of attributes in dlg_draw_shadow() which lost - line-drawing bit (report by David Everly). - + fix editbox widget to handle zero-length files (report by Joe - McDonagh). - + update "po" files eu.po ga.po it.po ms.po sv.po vi.po wa.po zh_CN.po - from - http://translationproject.org/latest/dialog/ - -2007/07/04 - + revise the resizable shadows so textbox's search dialog has text - visible in the shadow again. - + improve the prefixing of autoconf-related symbols in the installed - header files, taking into account symbols which are not mentioned in - dlg_config.h - + add a check when ERR returned from wgetch() to ensure that the - input/output streams are still valid. If that happens, force - ESC to be returned, quitting dialog (report by Reiner Huober). - + add extern "C" declarations to dlg_keys.h so the corresponding - function declarations are exported to C++ as C symbols. - + update config.guess, config.sub - -2007/06/04 - + fix a memory leak in editbox.c - + revise change from 2007/02/27 which moved the logic for trimming - option text out of the loop because that moved it before - initialization of the "--trim" option. Put it back in the loop, but - limit the tokens which are trimmed to cover only those for the - current widget. Also ensure that all tokens for a widget are - trimmed, rather than only the first, which is usually text (report by - Lai Zit Seng). - + add _FILE_OFFSET_BITS definition in CF_LARGEFILE configure macro. - -2007/05/28 - + revise changes needed to make textbox's searchbox handle ncurses - resizing events, e.g., by handling the ERR in that code rather than - in dlg_getc() (Debian #423732). - -2007/05/14 - + supply a repaint_text() call in tailbox.c which was bypassed because - dlg_getc() now retries on ERR (Debian #423732, cf: 2007/02/27). - + modify dlg_getc() to fix regression in 2007/02/27 for use of - timeouts, broken by fixes to allow resizing of textbox (patch by - Arnaud Fontaine, Debian #418905). - + modify dlg_getc() to fix regression in use of TAB for traversal of - tailboxbg widgets due to changes for user-definable key bindings - (Debian #418917, cf: 2005/12/07). - -2007/04/09 - + add case in dlg_getc() to handle tab for traversing between widgets - as in the samples/tailboxbg1 script. Normally the key binding - overrides, except for the special case where multiple widgets are - available. - + add configure --with-libtool-opts, which passes its value to the - library creation and linkage passes, e.g., - --with-libtool-opts=-static - to force the result to be static libraries (prompted by a related - request by Santiago Vila). - > several fixes based on Coverity scan: - + fix memory leak in timebox, calendar widgets if the widget cannot - be created. - + fix memory leak in dlg_key.c if a user binding's storage cannot - be allocated. - + fix improperly delinked entry in dlg_del_window(). - -2007/03/25 - + improve mkdirs.sh to ignore error from mkdir if the target directory - happens to already exist (suggested by Harald van Dijk). - + amend documentation for --gauge to reflect longstanding quirk which - allows it to read percentage from the first line after an "XXX" - (Debian #415596). - + fix makefile dependency so "configure && make install-lib" works. - + fix resizing of msgbox; the message was not repainted (Debian - #415022, patch by Brian Rolfe). - + fix typo in makefile LIB_OBJECT symbol from 2007/02/27 changes. - + improve CF_MBSTATE_T by including stdio.h, needed on Tru64 to make - the test-compile work. - + change makefile to install dialog.3 as part of install-lib rather - than install-man (report by Thomas Klausner). - + use $(INSTALL_SCRIPT) for installing dialog-config (report by - Santiago Vila). - -2007/02/27 - release 1.1 - + mark as "dialog 1.1" - + add dialog-config script, which provides applications with compile- - and link-information for using the dialog library. - + move calls to dlg_trim_string() out of loop in dialog.c, so each - string is trimmed once (report by Ivanov Makcim). - + modify textbox.c to allow resizing while the search box is presented. - This relies on bug-fix in ncurses 5.6 20070224. - + use dgettext() rather than gettext() to allow libdialog to use the - messages installed for dialog (patch by Vajna Miklos). - + modify inputbox to position the cursor initially at the end of any - initial-text (request by Klaus Knopper). - + add configure --with-valgrind for testing. - + add --trace option, for debugging. - + add --ascii-lines and --no-lines options to control the way the - line-drawing characters are rendered (request by Klaus Knopper). - + add --keep-tite option, to override suppression of smcup/rmcup - (termcap ti/te) strings which would switch to xterm's alternate - screen (Debian #380665). - + modify fselect/dselect to use space-character as a completion - operator like tab in shells (patch by Yoram Bar Haim). - + remove a redundant chunk from checklist.c which reported status a - second time if the help-button was pressed but no item-help option - was in effect (Andre C Barros). - + fix return-status from "dialog --pause" (Debian #409254). - + add --mixedform and --mixedgauge dialogs based on patch from - Kiran Cherupally. - + add some notes on compatibility to the manpage. - + add editbox dialog (compatible with Xdialog, Debian #368478). - + add dselect dialog (compatible with Xdialog). - + remove an incorrect initialization of .text_flen from 2005/12/07 - changes, which made all fields in a form editable (Debian #404045). - + report error and exit if a filename given for the --file option - cannot be opened (report by "Dog Walker"). - + make --program-prefix, etc., work in configure script, e.g., to make - program install as "cdialog". This does not alter the library name. - + add install-bin, install-man (and uninstall) rules to makefile. - + updates for configure script macros (originally vile, lynx, xterm): - AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, CF_CURSES_CPPFLAGS, - CF_CURSES_LIBS, CF_INCLUDE_DIRS, CF_LARGEFILE, CF_MAKEFLAGS, - CF_PATH_SYNTAX, CF_SUBDIR_PATH, CF_SUBST, CF_WITH_DBMALLOC, - CF_WITH_DMALLOC, CF_WITH_LIBTOOL and CF_XOPEN_SOURCE. - + update config.guess, config.sub - > adapted fixes from SuSE package (Werner Fink): - + add some limit-checks in dlg_draw_shadow(). - + make shadows resizable, using new dlg_move_window() in msgbox.c - and yesno.c - + add dialog_state.input, use this in end_dialog() to decide whether - to close pipe inputs and call _exit(), or simply call exit(). - + modify dlg_ctl_size() to check if the reason for failure is because - shadows were used; retry in that case without shadows. - + add signal catcher for SIGSEGV. - -2006/02/21 - + fix logic in split-out dlg_menu() to separate inputmenu and menu - handling (report by Auke Kok). - -2006/01/26 - + fix fselect.c to compile properly with Intel compiler and largefile - option. - + improve configure script checks for curses headers to work around - breakage in some packages, e.g., cygwin. - + amend correction to menubox, fixes normal menus (Debian #349969). - -2006/01/19 - + completed dialog.3 manpage - + modify configure script option --with-gauge to cover all flavors of - the gauge (gauge, pause, progressbox). - + add progressbox widget, a hybrid of gauge and tailbox (Reznic Valery). - + fix a comparison in checklist.c to avoid unneeded arrows when the - list happens to fit in the window (patch by Peter Postma). - + correct wrapping computation in print_line() from 2005/11/07 changes - (report by Barry Kauler). - + update sv.po (comments only). - http://www.iro.umontreal.ca/translation/maint/dialog/ - + correct logic that passes the callback for menubox to do inputmenu - operations from 2005/12/7 changes (report by Reznic Valery). - -2006/01/01 - + add a null-pointer check in dlg_register_buttons(), needed for the - tailboxbg (Debian #345524). - + fix a few memory leaks reported by valgrind. - -2005/12/19 - + correct return-values of new functions dlg_default_listitem() and - dlg_default_formitem() (Debian #344002). - + add Swedish translation (Debian #343303, by Daniel Nylander) - + begin function-summaries in dialog.3 - + update config.guess, config.sub - -2005/12/07 - + change license to LGPL. - + change naming convention in dlg_colors.h to make it easier to read, - and incidentally remove the last chunk of code preventing relicense. - + add --passwordform (request by Reznic Valery). - + modify pause.c, msgbox.c to work with --help-button. - + modify formbox.c, inputbox.c, textbox.c, yesno.c to work with extra - button (adapted from Reznic Valery patch). - + modify dlg_exit_label(), dlg_yes_labels() and dlg_ok_label() to allow - help-button (prompted by Reznic Valery patch). - + add zh_CN.po file from - http://www.iro.umontreal.ca/translation/maint/dialog/ - + provide alternate interfaces for dialog_checklist(), dialog_menu() - and dialog_form(): dlg_checklist(), dlg_menu() and dlg_form() - (discussion with Michael Gebetsroither). - + add/use dlg_result_key() to allow binding function keys to the - buttons. - + implement user-definable key bindings in the rc-file. - + modify inline cases for KEY_xxx values to use binding tables in new - module dlg_keys.c - + add several DIALOG_STATE items to the rc file: aspect, - separate_widget, tab_len and visit_links - + add a tab-adjustment to dlg_print_text() to improve solution from - 2005/10/30, e.g., in the samples/form* scripts. - + fix an off-by-one which made mouse-selection not work for menu items - past the first page (GenToo #112024, patch by Harald van Dijk). - -2005/11/07 - + extend dlg_add_result() to allow caller to pass a null pointer - for dialog_vars.input_result (Debian #336986). - + correct length used for text portion of radio/checkboxes (report by - Valentin Stoykov). - + modify msgbox, textbox and center_label() to work properly for - LANG=bg_BG.utf8 examples by Valentin Stoykov. - + modify use of freopen() to work with opaque FILE type on DragonFly - (report by Jeremy C Reed). - + modify print_line() to compute columns, use that for the call to - dlg_print_line(). Fix a few places where strlen() was used instead - of dlg_count_columns() (reports by Valentin Stoykov). - -2005/10/30 - + reviewed changes since beginning development in 1999, decided that - there are no appreciable portions of original code remaining. - Marked sources to correspond. - + improve cache performance for inputstr.c using tsearch() rather than - a linked-list search (Debian #294853). - + remove a special case for darwin in CF_XOPEN_SOURCE configure macro. - + add ms.po file from - http://www.iro.umontreal.ca/translation/maint/dialog/ - + remove an assignment that caused the cursor to appear initially on a - form field rather than button (Debian #333506). - + modify buttons.c to count columns rather than bytes, fixing case - where buttons were laid out incorrectly (report by Valentin Stoykov). - + change dlg_print_text() to count columns rather than bytes, fixing - case where fewer columns were displayed in menu than expected - (report by Valentin Stoykov). - -2005/10/05 - + improve fix for dlg_does_output(), eliminating redundant leading - separator. - + fill background color for item-help text (report by Peter Postma). - + correct interaction between --separate-output and --output-separator - broken in 2005/09/11 fix for Debian #326918 (Debian #331440). - + update config.guess, config.sub - -2005/09/11 - + undo doubled adjustment for left/right margins when wrapping text - for msgbox, gauge and pause (report by Xyba). - + correct position of scrolled text in formbox broken by 2004/12/19 - changes (report by Konrad Jelen). - + call dlg_does_output() from dlg_add_result(), ensuring that - separators are used when combining widgets such as formbox (report by - John Suykerbuyk). - + fix marker in textbox.c to make it disappear at the top of the file - (report by Patrick J. Volkerding). - + fix marker shown in arrows.c for checklists, etc., which was "(+)" - where it should have been "(-)" (report/patch by Patrick J. - Volkerding). - + fix --input-fd (changes in glibc since 2003 made dialog hang on exit - due to the way dialog updated stdin). - + restore default value (a tab) for --separator or --separate-widget - lost in 2003/11/26 changes (Debian #326918). - + make several widgets handle SIGWINCH (calendar, checklist, formbox, - fselect, inputbox, menubox, pause, tailbox, textbox, timebox). Only - msgbox and yesno had been done before. Note that some still have - fixed geometry requirements, so they cannot be shrunk below a given - threshold. Also, these changes do not address traversal, e.g., for - tailboxbg. - + make gauge widget handle SIGWINCH with ncurses (Debian #305705). - + add configure option to control whether largefile support is - compiled-in (Debian #298882). - + update eu.po (Debian #312622, patch by Piarres Egana). - + add/update po files from - http://www.iro.umontreal.ca/translation/maint/dialog/ - fi.po, rw.po, sr.po, tr.po, zh_TW.po - + fixes for configure script: - + improve script for determining gcc version - + improve checks for Intel compiler and related warning options - + improve checks for defining _XOPEN_SOURCE (or alternatives) and - _POSIX_C_SOURCE - + update config.guess, config.sub - -2005/03/06 - + add/update po files from - http://www.iro.umontreal.ca/translation/maint/dialog/ - ga.po, it.po - + revert last change for da.po; it was from an older version (report by - Morten Brix Pedersen). - -2005/02/06 - + modify makefile.in so --disable-echo applies to libtool builds. - + corrected malloc size used for editable fields in formbox widget to - match the function which updates the corresponding buffer. - + modify formbox widget's use of flen to allow negative values to be - used to limit the length of the displayed field. - + improve description in manpage of output from formbox widget - (Debian #292418). - + modify formbox widget to allow fields with flen==0 to display - (Debian #292417). - + improved configure macros CF_POSIX_C_SOURCE and CF_XOPEN_SOURCE, to - avoid redefinition warnings on cygwin. - + fix a typo in inputmenu-stdout found via "sh -n" (report by Steve - Grubb). - + add/update po files from - http://www.iro.umontreal.ca/translation/maint/dialog/ - ca.po, da.po, hu.po, nl.po, rm.po, ro.po, vi.po - -2005/01/16 - + add --args option to help with debugging scripts. - + adapted some new po files from Debian package for whiptail: ar.po, - bg.po, gl.po, hi.po, hr.po, mg.po, mk.po, ro.po, sq.po and zh_TW.po - + update da.po (Morten Brix Pedersen). - + add configure check for Intel 8.0 compiler, to set appropriate - warning options. - + update config.guess, config.sub - -2004/12/22 - + correct a typo in 2004/12/19 changes which caused width of multibyte - characters to be incorrectly computed in some locales. - + modify --version and --help options to write consistently to the - standard output (report by Santiago Vila). - + modify tailboxbg by resetting tty modes at the point where it forks a - process to update the screen, rather than waiting until that process - exits. This improves user feedback by making it apparent that dialog - is no longer processing input after that point (Redhat #142538). - + minor updates to some .po files using Babel Fish, comparing with lynx. - + update es.po (Santiago Vila). - + work around bug in NetBSD 1.6 curses which seems to be confused by - reusing color pairs with different video attributes. The problem - does not appear in NetBSD 2.0 curses (but its headers do not provide - version info, so color-caching is not available for that - configuration). - + modify pause and gauge widgets to ensure that reverse-video progress - bar is visible when the background is reversed, e.g., using the - default non-color attributes. - + use chtype rather than attr_t, to build with old Solaris curses, - used in save/restore operation from 2004/09/20. - -2004/12/19 - + add pause-widget (patch by Yura Kalinichenko). - + modify exit-code returned on selecting the "Help"-button when the - --item-help option is given. Previously this returned the same code - as "OK", since it combines output for "OK" with the help status. It - now returns the help-code, but this can be overridden by setting the - environment variable $DIALOG_ITEM_HELP (reports by Erika Pacholleck - and Sebastian Muesch). - + modify formbox widget so input-length is not limited to field-length - (report by David Liebermann). - + localize the label on the search box for textbox widget (report by - Erika Pacholleck). - + correct usage message detail for fselect, which listed an extra - parameter (Debian #284008). - + add include for in ui_getc.c to build with QNX 4.25 - using Watcom 10.6 (patch by Len Meakin). - + modify behavior when no locale (or POSIX locale) is set to allow - legacy interpretation of Latin-1 character set (Debian #284795). - -2004/11/18 - + correct computation of column width for menubox/checkbox tags, for - multicolumn characters, e.g., the menubox-utf8 example. - + correct calls to wbkgdset(), which set the background attribute but - not the corresponding character (ncurses uses blank if none is given). - + improve configure script check for _XOPEN_SOURCE and _POSIX_C_SOURCE. - + improved limit-computation in show_message() to allow for scrolling - very long messages. - + adjust scrolling logic in msgbox to account for the one-line offset - used by the logic which wraps text in a box, thus avoiding leaving - an extra blank line (report by Maxim Sobolev). - -2004/09/20 - + add samples/whiptail.rc - + add samples/dialog.py (noting that a later version of this exists - as pythondialog, but this is relatively self-contained). Modified - the script to accept the $DIALOG environment variable like the other - sample scripts, to specify the path of the program to use. - + modify the install rule for header-files so the autoconf names in - dlg_config.h (and corresponding usage in dialog.h, etc), are altered - from "HAVE_xxx" to "DLG_HAVE_xxx", etc. - + add a check for getenv("HOME") in rc.c - + add a call to end_dialog() in signal_handler for tailboxbg (from - patch by Werner Fink). - + correct initialization in checklist and radiobox for --default-item, - scrolling as needed. - + modify --visit-items option so that it puts the cursor initially on - the list (in menubox, checklist and radiobox), accepts abbreviations - for the buttons when the cursor is on the button-row, and otherwise - (when --visit-items is given) abbreviations apply only to the list - (report by Erika Pacholleck). - + modify a few widgets (inputbox, textbox, yesno) to beep on unexpected - input. - + modify some msgbox widget to accept abbreviations of its button - label, for consistency with other widgets (request by Erika - Pacholleck). - + corrected logic of dlg_char_to_button(), making it check only the - first uppercase letter in each button label rather than all uppercase - letters (report by Erika Pacholleck, cf: 2003/09/10). - + improved description of --clear and --keep-window options (adapted - from Erika Pacholleck). - + move discussion of --beep and --beep-signal options to Obsolete - Options section of manpage, remove these from the help-message - (report by Erika Pacholleck). - + bracket extern's in dialog.h with C++ extern "C" declaration, in case - the library is used from a C++ application. - + modify inputmenu examples to allow ESC to cancel the script. - + modify inputmenu widget to cancel edit on a TAB or ESC. - + modify inputmenu widget to use the same color scheme for the editable - text as the inputbox widget. - + modify samples/killall to work around differences in "cut" versions. - + use the color-caching from the \Z logic when loading the ".rc" file, - thereby reducing the number of color pairs required, and making it - less likely that deriving color pairs for drawing arrows on a given - background will run out of colors. - + save/restore window attributes in dlg_draw_arrows() and similar - functions, to allow widgets to draw arrows using the widget's - background rather than a common/fixed value (request by Erika - Pacholleck). - + modify textbox widget so the down-arrow will be hidden when at the - end of the file. (Modifying the up-arrow to be hidden is harder - - will do this when implementing scrollbars). - + correct off-by-one in fselect.c which left down-arrows showing at - the bottom of directory- and file-lists (report by Erika Pacholleck). - + improve display of percentages by omitting blanks where lines should - be shown. - + modify logic for \Z escapes to make those that set video attributes - not clear the colors (report by Erika Pacholleck). - + modify logic for \Z escapes to allow foreground and background - colors to be the same, provided that bold attribute is set. - Also improved the logic for choosing a background color when the - foreground and background are the same (report by Erika Pacholleck). - + updated configure script macro CF_XOPEN_SOURCE, ensuring that the - _POSIX_C_SOURCE value is defined with a specific value (bug report - originally for lynx). - + fix configure script so that po/makefile is generated properly when - the configure --srcdir --enable-nls options are used. - + modify makefile.in to allow build/install from another directory, - i.e., using configure --srcdir (patch by Mike Castle). - + updated da.po (Debian #262587, Morten Brix Pedersen). - + modify some sample scripts to avoid using grave quotes nested within - double quotes with multiple file redirection, which does not work - with Solaris /bin/sh (report/analysis by Eric Haller). - + check for end of string immediately after a \Z escape to avoid - displaying the null terminator as a ^@ (report by Erika Pacholleck). - > patches by Erika Pacholleck: - + modify calendar.c, fselect.c and timebox.c to use color scheme like - other lists, using menubox colors rather than dialog colors. - + correct charset for po/de.po, translate messages for "Help" and - "Rename". - + omit parentheses around percentage in textbox.c - + correct a few mismatched attributes, e.g., searchbox_attr in textbox.c, - percentage in msgbox.c, - - -2004/07/31 - + add test scripts to cover zero-width column case. - + remove limit checks from checklist.c and menubox.c (cf: 2004/07/28), - since some scripts use zero-width columns (Debian #262411 and report - by Kyle Sallee). - -2004/07/29 - + modify msgbox.c to only reserve space for percentage shown as part - of scrollable text for the msgbox widget. This makes infobox look - as it did before 2004/06/06 changes (report by Vinesh Christopher) - -2004/07/28 - + remove redundant calls to wtimeout() from widgets since wtimeout() - is properly called from ui_getc() where it is controlled by the - --timeout option (bug report by juanjo). - + add limit checks in checklist.c and menubox.c for very narrow screens - (prompted by Steve Grubb patch). - + initialize step in dlg_draw_buttons() in case it is used to draw - a vertical list of buttons (prompted by Steve Grubb patch). - > fixes by Steve Grubb: - + correct logic in checklist.c (cf: 2003/11/26 changes) which turned - quoting on unnecessarily for radiobox, breaking some old scripts. - + increase size of array in dlg_ok_labels() to avoid overrun if extra - and help buttons are used (cf: 2002/06/12 changes). - + initialize fkey variable in menubox.c and textbox.c (cf: 2003/07/12). - -2004/07/21 - release 1.0 - + minor updates for configure script, i.e., CF_XOPEN_SOURCE, - CF_NCURSES_LIBS macros. - + update config.guess, config.sub - + add nl.po (Jacques Weewer). - -2004/06/06 - + add --visit-items option, which allows the user to tab to the item - list in the checklist/radiobox and menubox widgets (request by - Ari Moisio). - + use wide-character line-drawing for up/down arrows when configured - for wide-characters, gives better results with uxterm. - + limit the number of times a --file option can be used, to prevent - runaway recursion if a --file option is embedded within a file which - is included. - + improve discussion of wrapping in the manpage (Debian #251937). - + modify msgbox to allow it to scroll vertically like textbox (Debian - #233276). This only works with ncurses. - + implement $DIALOGVARS environment variable to apply common options to - dialog_vars when it is reset before processing other common options. - + add --single-quoted option to control whether output is double-quoted - with '"' or single-quoted with single-quotes. - + revert the default quoting behavior of checklists to use - double-quotes (report by Mark K Post regarding Slackware scripts). - + add eu.po (Basque) (Piarres Beobide Egaa). - + add ca.po (Catalan) (Jordi Mallach). - -2004/04/21 - + add a call to flushinp() to init_dialog(), to discard any typeahead - before dialog is invoked (Debian #244746). - + correct dlg_match_char() function, which was broken during rewrite - to support wide-characters (Debian #244777). - + improved ru.po, uses UTF-8 charset (Leonid Kanter, Redhat #119200). - + correct position of shadow drawn for dialogs, which appeared to work - for most versions of curses (other than NetBSD) but would have been - visible for certain color schemes (discussion with Julian Coleman). - + correct loop-exit in longest_word() (Tomas Heredia, forwarded by - Santiago Vila). - + add cy.po (Welsh) (Dafydd Harries). - -2004/03/16 - + modify quoting of results to use single-quote rather than double - quote, and ensure that results containing a quote or backslash - character are escaped (report by Florent Rougon) - + remove an incorrect comparison from checklist which made cursor - stick on the last line, from 2004/03/01 changes. - -2004/03/14 - + add a dependency to install library if "--with-libtool" is used. - + add manpage for the library. - + add "--file" - + modify formbox.c to support "--help-status" like menubox. - + modify checklist.c to add item name to the "HELP" string when - "--help-button" is used and no --item-help option is given (Debian - #236841, report/patch by Jorg Sommer). - + rename colors.h to dlg_colors.h, install that when the library is - installed. - + add copyright notice to usage ("--help") message. - + correct a missing bounds check for mouse-clicks in menubox (prompted - by Debian #233044). - + updated several configure-script macros: AM_GNU_GETTEXT, - AM_WITH_NLS, CF_OUR_MESSAGES, CF_PROG_EXT, CF_WITH_DBMALLOC, - CF_WITH_DMALLOC, CF_WITH_LIBTOOL, CF_XOPEN_SOURCE. - -2004/03/01 - + improve layout of calendar widget to allow for very long button - labels (report by Santiago Vila). - + correct logic for $DIALOG_TTY, broken in 2003/11/30. The environment - variable must evaluate to a nonzero integer (report by Florent - Rougon). - + document interaction between "--default-no" and "--no-cancel" options - in manpage (Debian #223488). - + change configure script to use autoconf 2.52+patch, to work around - issues with Estonian locale (report by Seemant Kulleen). - + add uk.po (Ukrainian) (Debian #232441). - + make --default-item apply to checklist widget (Debian #225255). - + correct a missing check for --item-help when --help-status was given - for checklist (Debian #232921). - + correct a missing bounds check for mouse-clicks in checklist (Debian - #233044). - + update config.guess, config.sub - -2003/12/07 - + correct infinite loop in yesno widget when "--defaultno" option is - combined with "--no-cancel" (Debian #223077). - -2003/11/30 - + suppress double-quotes added for "--help-status" option if the - string does not contain any special characters. - -2003/11/26 - + add samples/sourcemage.rc, for comparison with slackware.rc - + add "--insecure" option (request by Sean Mathews (DrWho@f34r.com)). - + make "--defaultno" option apply to widgets which use OK/Cancel - buttons as well (Debian #209030). - + improve documentation of exit-codes for each widget in the manpage - (Debian #217926). - + add option "--keep-window" to suppress repainting after completing - each widget (request by Ingo van Lil). - + add options "--yes-label" and "--no-label" to allow override of the - "Yes" and "No" strings (request by Christoph Zwerschke). - + add option "--help-status" to allow script to restore a checklist - or radiolist after processing an item-help string (Debian #209031). - + modify width-calculation for non-formatted text to ensure it is - wide enough for the longest word in the text (patch by Andrew Gaul). - + modify dlg_index_columns() to count a newline as a single cell rather - than 2 for the normal curses case. This fixes an off-by-one for - the text-justification, shown in screen 2 of msgbox1 sample script. - + fix dlg_char_to_button(); 2003/09/10 changes made it incorrectly - ignore case of the labels. - + change calendar's use of arrow keys so they are (as before 2002/06/22) - interpreted within the day-grid as movement within that grid (request - by David Anders). - + correct missing initialization of last_getc variable in dlg_getc() - (report/analysis by Victor Wodecki). - + modify main program to make - dialog --no-shadow --print-maxsize - work. Normally dialog prints the screen size after subtracting the - area reserved for shadows, but some applications may need the actual - screen size (Debian #213424). - + several related changes (Debian #213425): - + separate the examples using "--stdout" and "--output-fd" from the - normal usage examples. - + add "--input-fd" option, provide a sample of its use. - + modify init_dialog() to use initscr() unless a "--stdout" option - was used. Some scripts relied on the coincidence that redirecting - standard output from dialog would "work". Before this change - init_dialog() assumed that redirected standard output was - synonymous with "--stdout" option (not the intended behavior). - + modify command-line parsing to look for "--stdout" and "--stderr" - options first, allowing only one. - + add a check for an environment variable $DIALOG_TTY which provides - the older behavior, i.e., try to open the terminal directly if - stdout is redirected. - + interface changes, to make libdialog simpler to use: - + rename all of the internal functions to begin with "dlg_", but - provide compatibility with older names if the application defines - __DIALOG_OLD_NAMES__. - + add dialog_version() function, and corresponding DIALOG_VERSION and - DIALOG_PATCHDATE definitions to dlg_config.h - + eliminate remaining global variables such as screen_initialized in - favor of dialog_state and dialog_vars. - + move some data such as dialog_vars.output to dialog_state, since - they are normally not reset between widgets. - + change interfaces of dialog_yesno() and dialog_checklist() to use - dialog_state.defaultno and dialog_vars.separate_output, making it - simpler and more consistent. - + improve configure script and related definitions: - + add "--with-libtool" option to provide shared library support by - libtool. - + rename generated "config.h" to "dlg_config.h", so it can be - installed without naming conflict. Added "dlg_config.h" to - install-lib rule. - + modify configure script and makefile to use EXEEXT and OBJEXT. - + add "--enable-widec" option to control whether wide-curses features - are compiled-in, rather than check for the existence of those in - the curses library. This allows building with HPUX curses, which - has abandoned legacy features while not quite supporting X/Open - curses. - + add configure check for getbegx(), etc., which are not provided on - all platforms. - + update config.guess, config.sub - -2003/10/02 - + update hu.po (Arpad Biro). - + revert part of the 2003/08/18 change to "--stdout" option. Using - stderr for screen output does not work well on several platforms - since stdout's settings are affected (report by Kent Robotti). - -2003/09/24 - + modify tailbox to allow it to display files with arbitrarily long - lines. - + fix an infinite loop in tailbox, broken when making interface changes - to dlg_getc() (report by Ingo van Lil). - + amend fix for "--and-widget" to not treat "---" as an option (report - by Kent Robotti). - + updated es.po (Santiago Vila). - -2003/09/10 - + correct "RENAMED" result from inputmenu widget, which did not reset - the result buffer, and did not account for scroll-offset (Debian - #209336). - + modify button, menu and checklist logic that matches a character to - the beginning of a text field to support wide-characters (completes - Debian #195674). - + modify configure script to not use "head -1". - -2003/08/30 - + modify searchbox popup in textbox widget so one can simply press - return on an empty input to cancel the popup. - + modify error reporting to avoid clearing screen if a problem is - found in the ".rc" file. - + add color/attribute combinations for form widget (based on patch by - Reznic Valery). - + combine rc-file colors, attribute- and color-tables to obtain a - single table for color values, which requires less work to add new - entries. - + modify fselect widget to make back-tab work again, since it was - broken by the rewrite of dlg_edit_string(). - + modify howmany_tags() so it will quit searching when it finds any - option, not only "--and-widget" (Debian #206636). - + correct call to dlg_print_text() in print_line(), which did not - account for hidden characters (report/patch by David Poole). - + modify print_button() to display properly if locale defines ok/cancel - or yes/no buttons that contain multibyte characters. - -2003/08/20 - + correct an indexing error when deleting from the end of a line using - KEY_DC; it happened to work on Linux because malloc() clears memory - like calloc(). - + add '\r' to case statement where '\n' is translated to KEY_ENTER to - work around defect in NetBSD curses. - + modify configure check for getparyx(), etc., which are implemented - by NetBSD curses as functions rather than macros. - + correct configure check for term.h, which may be - if ncursesw development headers are installed, but not ncurses - development headers. Or they may not coincide (Debian #206287). - -2003/08/18 - + modify checklist.c and menubox.c to display tags properly if they - contain wide-characters. - + better solution for initializing curses when "--stdout" option is - used, e.g., use stderr for the output if it is a tty. Also correct - the error handling, so dialog exits with an error if it cannot - find a way to do output (Debian #205509). - + modify sample scripts to use consistent definition of $DIALOG - (Debian #205508). - + add UTF-8 examples inputbox6-utf8, inputbox6-utf8 (from Tomohiro - Kubota, Debian #195674). - + modify print_line() to work with wide-characters, e.g., so it handles - wrapping for double-width characters. - + cache results from multibyte character indices, speeds up cursor - movement. - + modify form widget to support scrolling and mouse-selection. - + add form widget (based on patch by Reznic Valery). - + correct mouse-handling for inputmenu widget. - + corrections to menu.c: location of clearing operation, and height of - rows in code for older ncurses versions (patch by Reznic Valery). - + improve logic that compensates for xterm's alternate-screen by - cancelling the rmcup/smcup strings after the rmcup has been issued. - That ensures that dialog will not clear the screen on exit (report - by Javier Kohen). - + modify initialization between widgets to retain the values for the - --aspect, --separate-widget and --tab-len options. - + add --separator as an alias for --separate-widget (compatible with - Xdialog). - + correct handling of Xdialog's --icon and --wmclass options, whose - parameter was not ignored. - + correct logic for --separate-widget so its string is written before - each output, rather than only for --and-widget option (report by - Javier Kohen). - + improve limit-check in center_label() for buttons.c (report by Tor - Vidar Havstad). - + correct layout of --menu widget, which reduced display width due to - logic for --inputmenu being applied whether or not that configuration - was used (reports by Javier Kohen, Dimitar Zhekov and MAL - ). Fixes Debian #201215. - + modify gauge widget to support --begin option (Hans-Joachim Baader). - + updated pl.po (Jaroslaw Swierczynski). - + hide cursor while painting gauge. - + add auto-sizing logic to gauge widget (reports by Javier Kohen and - Robert Schubert). - -2003/07/20 - + rewrote inputstr.c, allowing it to enter and display wide-characters. - Some nonprinting characters such as control/B can be edited as well. - + modify timebox to allow user to type numbers into the fields. - + change interfaces of dlg_getc(), mouse_wgetch(), etc., to add - parameter that returns whether the result is really a function-key. - This is needed to work with wide-character curses. - + correct computation of week-number in calendar widget (report by - Heiner Lamann). - + updated configure script macros: - + suppress -Winline with gcc 3.3, since it is broken. - + fix caching bug in CF_UTF8_LIB - + improved script for CF_BUNDLED_INTL. - + update config.guess, config.sub - -2003/03/08 - + add null-pointer checks to some malloc calls which were overlooked. - + correct logic in dlg_add_result(), which did not copy content of - non-allocated buffer to the first allocation (report by Daniel - Dupont). - -2003/03/02 - + correct an uninitialized value in dlg_add_result() (Debian #182683). - -2003/01/30 - + corrected print_line(), which subtracted the margin twice from the - right-limit, making a string wrap unnecessarily (Debian #168823). - + correct initial limit-check for arrows in checklist.c, which used - the wrong variable, showing the bottom arrow when it should not - (Debian #168823). - + modify driver to always call show_result(), to simplify updates. - + fix several memory leaks, important if dialog is run with a large - number of widgets (report by albert.veli@telia.com forwarded by - Santiago Vila). - + check if the screen output is actually to the terminal before trying - to suppress xterm's alternate screen mode (see 2000/01/18) (report by - David Oliveira). - + use dialog_vars.input_result consistently to return the text which is - printed after a widget completes. In many cases, dialog now - allocates enough space to hold the text, rather than use a fixed - buffer. The checklist widget was writing directly to the output to - avoid limits of the fixed buffer. - + modify dialog.c to also write dialog_vars.input_result if the - Help-button was pressed (request by Amon Ott). - + add hu.po (Arpad Biro). - + update fr.po, pt.po, pt_BR.po to add strings for "Help" button (patch - by Frederic L W Meunier). - + fix off-by-one error in menu.c, checklist.c (reported by - Tomasz Wasiak 2002/09/15 and others: - Andrew Gaul 2002/11/12, - Tobias C Rittweiler 2002/11/19, - Arpad Biro 2003/01/21). - + updated configure script, improving checks for ncurses in various - locations, updated NLS script to match lynx. Added --with-curses-dir - option. - > Tobias C Rittweiler: - + make ifdef in mousewget.c consistent with usage in dialog.h - + use beep() rather than flash() in dlg_edit_string(), for consistency - with the other functions. - + change order of buttons so extra button falls between Ok/Cancel. - + fix so "dialog --print-maxsize" exits from curses. - + add --inputmenu option. - -2002/08/14 - + modify checklist.c and menubox.c to treat the extra button like the - "Ok" button by making dialog print the chosen items (request by - Tobias C Rittweiler). - + add examples checklist6 and menubox6 to illustrate the --colors - option. - + implement -colors option, which allows one to highlight words in the - titles and most text areas with color or video attributes (adapted - from patch by Tobias C Rittweiler). - + add examples inputbox4, inputbox5 to illustrate how to use the - --output-fd option, and how to use dialog without any temporary - file at all. - + add --output-fd option (Debian #153984). - + documented vi-style keys for calendar, textbox widgets in manpage. - -2002/06/22 - + improve mouse handling, e.g., for up/down scrolling in calendar, - checklist, etc. - + add --extra-button and --extra-label options (adapted from patch - by Tobias C Rittweiler). - + correct displayed cursor position in inputbox when returning to the - input area after traversing the buttons with tabs, etc. - + add left/right arrows for traversal in calendar and timebox dialogs. - + implement two new functions dlg_next_ok_buttonindex() and - dlg_prev_ok_buttonindex(), using these to hide details about the - traversal over buttons in several widgets. - + modify checklist.c and menubox.c to verify if both --help-button and - --item-help are specified before assuming that selecting the help - button should cause the "HELP {item-help}" message to be printed - (reported by Marcel Ritter). - + modify init_dialog() to work around HP's broken tty driver (report by - John Mudd). Specifically, the problem is that when opening /dev/tty - directly (to support the --stdout option), the terminal does not - change to raw mode. The workaround opens /dev/tty only as needed; - the --stdout option does not work on HPUX but otherwise dialog works. - + updated el.po (patch by kromJx ). - -2002/05/19 - release 0.9b - + add --no-collapse option to allow one to retain tabs and repeated - blanks in a message box (request by Roberto Simoni). - + use DLG_EXIT_ESC constant rather than -1's in several places. This - has the effect of changing some exit-with-error cases to denote that - the exit was because ESC was pressed (patch by Diego Alvarez, - forward by Santiago Vila). - + bump package version to 0.9b (with patch-date, as usual). - + add --exit-label option (request by Roberto Simoni). - + updated de.po to correct translation for "Cancel" (from Michael - Piefel, Debian #146402). - + use definitions from autoconf macro AC_HEADER_TIME to ensure that - time() is properly prototyped. - + update pl.po, adding translation for "Help" (patch by Jaroslaw - Swierczynski ). - + update COPYING file, to reflect address change of FSF (reported by - Santiago Vila). - + update some configuration script macros: CF_CHECK_CACHE, - CF_CURSES_CPPFLAGS, CF_HEADER_PATH and CF_MAKEFLAGS. - + correct misuse of "$with_XXX" variables in the configure script, - which prevented configuration against curses library as opposed to - ncurses. - + update config.guess, config.sub - -2002/03/09 (a) - + modify geometry of samples/fselect scripts to allow them to run in - a 24x80 screen (report/patch by Santiago Vila). - + correct exit-code for menubox.c when Cancel is pressed. This was - unintentionally altered when adding --help-button (reported by - Patrick J Volkerding) - -2002/03/09 - + add --timeout option, which forces the program to exit with an error - if no user response is given within the specified number of seconds - (request by ). - + modify calendar widget to allow day/month/year values to default to - the current date (request by ). - + modify display of buttons in checklist.c and menubox.c to handle the - case where the button label is empty (Debian #134388). - + extended logic for ok/cancel/help to make this work with checklist - widget. - + revert pt_BT.po, apply changes to pt.po (report by Frederic L W - Meunier). - > several changes from Stanislav Ievlev: - + add options --help-button and --help-label to make menubox display a - third button which can be used to return an exit code causing the - calling script to show extended help information. - + use home/end keys in input string-editing, e.g., inputbox. - + add option --max-input to limit length of string returned by inputbox - and other widgets which allow the user to edit a string. - -2001/12/02 - + add --ok-label and --cancel-label options (request by Kyle Sallee). - + correct usage message for --fselect option (reported by Patrick J - Volkerding). - + add samples/debian.rc, for comparison with slackware.rc - + corrected samples/slackware.rc, which was just the compiled-in - default values (patch by Patrick J Volkerding). - + modify search rule for rc-file to add a global rc file /etc/dialogrc - (patch by Patrick J Volkerding). - + updated pt_BR.po with modified entries for fselect.c (Frederic L W - Meunier). - + add pl.po (Swiergot ). - -2001/11/11 - + modify command-line parsing to allow a "--" argument to act as an - escape, so the next argument is not recognized as an option if it - begins with "--". This is apparently one of popt's undocumented - features, upon which some Debian scripts depend (Debian #116642). - + add da.po (Morten Brix Pedersen ). - + add an install-strip rule to makefile, changing the normal install - rule to not strip the installed executable (based on discussion with - Santiago Vila). - + initialize my_output variable if user cannot open /dev/tty, e.g., if - su'd to another user (patch by Richard Braakman (), Debian - #117177). - + add configure option --with-ncursesw, to allow configure/build with - wide-character version of ncurses. - -2001/10/14 - + add option --ignore, to make dialog be ignore options that it does - not recognize. - + add option --trim, to trim literal newlines and repeated spaces from - text that will be displayed. Add samples/msgbox2, which is the - same as msgbox1, but using --trim (cf: change for Debian #102942). - + minor correction to attributes for buttons.c to use active_attr on - the right-side of a button. - + add a sample dialog rc-file slackware.rc based on diffs in hdasetup - package at - http://ftp1.sourceforge.net/pub/mirrors/slackware/slackware/source/a/hdsetup/ - (discussion with Frederic L W Meunier). - + modify dialog.pl to avoid using a statically-named tempfile, allowing - multiple processes to use this script (patch by James Ranson - (), Debian #110609). - + correct fprintf() call in j_menu() function, i.e., "--menu" option, - which did not guard against expanding '%' embedded in the parameters - (Stavros Chatzistefanidis ). - + add et.po (Ivar Smolin ). - + update fr.po (Frederic L W Meunier). - + modify to allow scripts to alter the exit codes, mainly to - distinguish ESC and ERROR exits. This is done by setting a shell - variable such as DIALOG_ESC to a new value (request by Petr Vandrovec - (), Debian #99264) - -2001/08/27 - + use VPATH in makefile to support build with configure --srcdir, if - the make program supports that. Note that samples/install/makefile - is not generated, due to awkward limitation of autoconf script - (reported by Frederic L W Meunier <0@pervalidus.net>). - + add po/pt_BR.po (Frederic L W Meunier <0@pervalidus.net>). - + correct sense of --enable/--disable shown in configure --help (report - by Frederic L W Meunier <0@pervalidus.net>). - + correct logic for --clear option, broken in 2000/07/02 (fixes Debian - #110254). - -2001/08/11 - + porting fixes to work on AIX: flush output to work around bug in - curses library, use ./killall in scripts to avoid conflict with - AIX program by that name. - + modify dlg_trim_string() to retain literal newlines if the string - does not contain "\\n" strings, and to retain leading blanks on the - resulting lines, for compatibility with older scripts (Debian - #102942). - + add charset specification to cs.po - + change dates in CHANGES to consistent format, add el.po for Greek - (patch by kromJx ). - + eliminate static globals (bss, data) from modules rc, tailbox, - textbox using better parameter-passing convention, and const. - + cleanup temporary files in a few of the sample scripts. - + rewrote tailboxbg using select() rather than fork(), thereby - eliminating lock-files. Only one process should be trying to display - on the screen at any given time. - + add error check to ensure that numeric parameters are really numbers. - + correct off-by-one in error messages reporting too-few or too-many - tokens for a given option (reported by George Mirchev). - + fix typo in manpage, "textboxbg" where "tailboxbg" was meant - (reported by George Mirchev ). - + use DLG_EXIT_xxx symbols consistently for all exit codes. - + updated es.po (patch by Santiago Vila). - + updates for some configure script macros from lynx: CF_MAKEFLAGS, - CF_NCURSES_VERSION, CF_PROG_EXT. - + fixes to compile if is included, e.g., when building with - AIX curses (report by Suzi Dowson ). - -2001/05/27 - + 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 - Xdialog 2.0.2 - + 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 - -2001/05/11 - > 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. - -2001/04/29 - > 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\" - still works. - + 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 - text. - - 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: - - inputbox - changed all "\n\" strings to "\n" to demonstrate the extra - backslash is no longer needed. - - inputbox1 - removed all the "\n\" strings from the end of the lines to - properly demonstrate --cr-wrap. - - msgbox1 - 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 - demonstrates --cr-wrap. - + 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. - > T.Dickey: - + 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 - -2001/04/15 - + 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 - header files. - + update config.guess, config.sub - + modify some configure script macros to avoid problems with buggy - autoconf 2.49c which breaks changequote(). - -2001/01/15 - + 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 - made - 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. - -2000/12/17 - + 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 - fixes. - -2000/12/13 - + correct change for create_lock(), which resulted in an infinite loop - (patch by Chris Butler, ). - -2000/12/12 - + 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 (), Debian #78951). - + correct description of --fselect in man page (patch by Tomas Pospisek - (), Debian #77200). - + add --no-cancel as alias for --nocancel for compatibility with - Xdialog (report by Luis E Limon ). - -2000/10/27 - + some lint fixes using lclint (mostly void-casts, but some - sign-extension fixes e.g., for ctype.h macros, and loop in - dlg_char_to_button()). - + 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 - -2000/10/17 - + 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. - -2000/10/08 - + change exiterr() to use stdarg.h, make some messages easier to - understand. - + 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 - config.guess, config.sub - + cleanup of item-help change, integrate with checklist 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 - selected item. - + add it.po, pt.po - + change TAG_KEY_HL to FALSE, making unselected items in checklist - easier to read on Linux console. - -2000/07/30 - + 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 - alone. - + 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 - enable/disable switches. - -2000/07/02 - + 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. - -2000/06/29 - + add alternate test-script for gauge, adapted from Xdialog. - + modify gauge 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). - -2000/04/25 - + 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 - -2000/04/23 - + 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 - disk space). - + 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. - -2000/02/22 - + 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 - yes/no/ok/cancel buttons. - + 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) - -2000/02/05 - + 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 - support color. - -2000/01/23 - + 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 - checklist.c and menubox.c - + use curses beep() function rather than hardcoded strings. - + correct several compiler warnings for gcc -pedantic (mismatch of - const, signed/unsigned). - + 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 Debian #55553). - -2000/01/18 - + 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 - util.c - + eliminate several places where repeated options are treated as - an error, since they are really executed once anyway. - -2000/01/15 - + 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". - -1999/12/25 - + 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 - Santiago Vila : - - 1999/10/07 - + add a password dialog box (Debian #45964, patch by Joey Hess). - + implement "--defaultno" option to specify if the default for - the yes/no box is "No" (Debian #46076, patch by Joey Hess). - 1999/03/10 - + modify input.c to clear the input field to the right of the - given string, to help with screen-refresh - 1998/12/08 - + check for list_height less than one in checklist.c (Debian - #22239). - 1998/10/21 - + use function wscrl() in preference to scroll() in checklist.c - and menubox.c (unclear: in ncurses, scroll() is a macro that - uses wscrl()). - + remove the "-I/usr/include/ncurses" option from Makefile - since Debian does not install ncurses' header files into - that directory. - 1998/09/12 - + simplify menubox.c using new functions print_arrows() and - print_items(). add logic to handle KEY_NPAGE and KEY_PPAGE - (Debian #26326). - + modifications to provide sample scripts (Debian #26211): - + 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. - -1999/11/27 - + fix some gcc warnings about ambiguous use of "else" - -1999/05/01 - + cleaned up some of the redundant code with new functions: - box_x_ordinate - box_y_ordinate - draw_title - draw_bottom_box - new_window - - + 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: - -1998/05/24 - - + Replaced guage.c by the one in dialog 0.6z, which is known to work. - Fixes Debian #18284: unstable dialog. - -1997/12/16 - - + dialog.c: dialog_input_result printed with "%s" format. This was - Debian #9913, fixed by Bill Mitchell, but the change was lost. - + Pristine source, .depend is not removed in clean target. Instead, it - is made zero length (otherwise it would not work *without* fakeroot). - + Added '^U' support in input box (Debian #9915, patch by Joey Hess). - + Wrote patch to fix core-dumping problem (Debian #13170). Sven Rudolph - : - --- vile:fk=8bit diff --git a/contrib/dialog/COPYING b/contrib/dialog/COPYING deleted file mode 100644 index 8add30ad590a..000000000000 --- a/contrib/dialog/COPYING +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/contrib/dialog/README b/contrib/dialog/README deleted file mode 100644 index 1bad4311dd40..000000000000 --- a/contrib/dialog/README +++ /dev/null @@ -1,61 +0,0 @@ --(1999-12-25)------------------------------------------------------------------- -This version of dialog, formerly known as cdialog is based on the Debian -package for dialog 0.9a (see CHANGES for recent modifications) -- T.Dickey - --(1996-01-15)------------------------------------------------------------------- -I have uploaded cdialog-0.9a.tar.gz to sunsite. It should be moved -to pub/Linux/utils/shell, I think. - -Starting point for cdialog v.0.9a was dialog-0.6c. Many new features -like as Resolution-independence, Auto-sizing, Maximizing, more widget -on the same screen (multi-widget), etc. were added. New widget are -tailbox and tailbox-in-background. Here are the options: - - Usage: dialog - { --and-widget } - - Common options: - [--backtitle ] [--sleep ] [--beep] [--beep-after] - [--clear] [--begin ] [--aspect ] [--print-size] - [--print-maxsize] [--size-err] [--separate-output] [--cr-wrap] - [--tab-len ] [--tab-correct] [--print-version] [--no-kill] - [--title ] - - Global options: [--shadow] [--no-shadow] [--separate-widget "<str>"] - -At the moment, mouse support with libgpm can't be added because it -does't implement the wtimeout() function of ncurses. Wtimeout() is -needed to have more widgets (es.tailbox) cooperating on the same -screen... I don't know if with newer versions of libgpm it's possible. - -I have no more time to write docs for this new version...Is there -anyone, that looking at the code, can do it??? Ouch! :-) -Don't flame me! - -For the future, if any volunteer want, the way to evolve cdialog is to -1) make a daemon for a better support of multi-tasking or implementing - multithreading. -2) add an option that could permit to read commands (--options) from a - file, like as in a normal programming language, but maintaining - compatibility with older version of dialog. - -I no longer could maintain cdialog... -Executable and library name of cdialog are the same of dialog, for -compatibility. - -I think that only one directive should be follow: don't use a resource -like stdin, stdout when you'll write new options for cdialog; these -resources have to be shared from all widgets on the command line. -Guage uses stdin :-/ so that can't be mixed for example with an inputbox, -but it was made before of multi-widget. However this is not a big problem! - -THERE ARE NO *KNOWN* BUGS. If anyone has much time and can find the way -to add wtimeout() support to libgpm, also mouse could be supported. - -Please use ncurses-1.9.4 or newer. - -| __ | demarco_p@abramo.it:~$ make Linux | more > UserFriendly; -| /__) | /~~ _ _ _ _ /~\ _ / . _ | -|/ ako | (___ (_) | ) ) (-' (__/ | ) /__ | | ) (_| >< . coordinator. - diff --git a/contrib/dialog/VERSION b/contrib/dialog/VERSION deleted file mode 100644 index fc653b601c01..000000000000 --- a/contrib/dialog/VERSION +++ /dev/null @@ -1 +0,0 @@ -15:0:0 1.3 20210117 diff --git a/contrib/dialog/aclocal.m4 b/contrib/dialog/aclocal.m4 deleted file mode 100644 index 191ba9c373fe..000000000000 --- a/contrib/dialog/aclocal.m4 +++ /dev/null @@ -1,7150 +0,0 @@ -dnl macros used for DIALOG configure script -dnl $Id: aclocal.m4,v 1.150 2021/01/11 09:03:36 tom Exp $ -dnl --------------------------------------------------------------------------- -dnl Copyright 1999-2020,2021 -- Thomas E. Dickey -dnl -dnl Permission is hereby granted, free of charge, to any person obtaining a -dnl copy of this software and associated documentation files (the -dnl "Software"), to deal in the Software without restriction, including -dnl without limitation the rights to use, copy, modify, merge, publish, -dnl distribute, distribute with modifications, sublicense, and/or sell -dnl copies of the Software, and to permit persons to whom the Software is -dnl furnished to do so, subject to the following conditions: -dnl -dnl The above copyright notice and this permission notice shall be included -dnl in all copies or portions of the Software. -dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. -dnl -dnl Except as contained in this notice, the name(s) of the above copyright -dnl holders shall not be used in advertising or otherwise to promote the -dnl sale, use or other dealings in this Software without prior written -dnl authorization. -dnl -dnl see -dnl https://invisible-island.net/autoconf/ -dnl --------------------------------------------------------------------------- -dnl --------------------------------------------------------------------------- -dnl AM_GNU_GETTEXT version: 15 updated: 2021/01/02 09:31:20 -dnl -------------- -dnl Usage: Just like AM_WITH_NLS, which see. -AC_DEFUN([AM_GNU_GETTEXT], - [AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([jm_GLIBC21])dnl - AC_REQUIRE([CF_PROG_CC])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \ -getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ -strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) - - AM_ICONV - AM_LANGINFO_CODESET - AM_LC_MESSAGES - AM_WITH_NLS([$1],[$2],[$3],[$4]) - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - AC_MSG_CHECKING(for catalogs to be installed) - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - ("$presentlang"*) useit=yes;; - esac - done - if test "$useit" = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - AC_MSG_RESULT($LINGUAS) - fi - - dnl Construct list of names of catalog files to be constructed. - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], []) - AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) -])dnl -dnl --------------------------------------------------------------------------- -dnl AM_ICONV version: 12 updated: 2007/07/30 19:12:03 -dnl -------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl iconv.m4 -dnl ==================== -dnl serial AM2 -dnl -dnl From Bruno Haible. -dnl -dnl ==================== -dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the -dnl range of locations searched. Retain the same cache-variable naming to -dnl allow reuse with the other gettext macros -Thomas E Dickey -AC_DEFUN([AM_ICONV], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - AC_ARG_WITH([libiconv-prefix], -[ --with-libiconv-prefix=DIR - search for libiconv in DIR/include and DIR/lib], [ - CF_ADD_OPTIONAL_PATH($withval, libiconv) - ]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - CF_FIND_LINKAGE(CF__ICONV_HEAD, - CF__ICONV_BODY, - iconv, - am_cv_func_iconv=yes, - am_cv_func_iconv=["no, consider installing GNU libiconv"])]) - - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - - AC_CACHE_CHECK([if the declaration of iconv() needs const.], - am_cv_proto_iconv_const,[ - AC_TRY_COMPILE(CF__ICONV_HEAD [ -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -],[], am_cv_proto_iconv_const=no, - am_cv_proto_iconv_const=yes)]) - - if test "$am_cv_proto_iconv_const" = yes ; then - am_cv_proto_iconv_arg1="const" - else - am_cv_proto_iconv_arg1="" - fi - - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi - - LIBICONV= - if test "$cf_cv_find_linkage_iconv" = yes; then - CF_ADD_INCDIR($cf_cv_header_path_iconv) - if test -n "$cf_cv_library_file_iconv" ; then - LIBICONV="-liconv" - CF_ADD_LIBDIR($cf_cv_library_path_iconv) - fi - fi - - AC_SUBST(LIBICONV) -])dnl -dnl --------------------------------------------------------------------------- -dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59 -dnl ------------------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl codeset.m4 -dnl ==================== -dnl serial AM1 -dnl -dnl From Bruno Haible. -AC_DEFUN([AM_LANGINFO_CODESET], -[ -AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include <langinfo.h>], - [char* cs = nl_langinfo(CODESET); (void)cs], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test "$am_cv_langinfo_codeset" = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) - fi -])dnl -dnl --------------------------------------------------------------------------- -dnl AM_LC_MESSAGES version: 6 updated: 2021/01/02 09:31:20 -dnl -------------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl lcmessage.m4 -dnl ==================== -dnl Check whether LC_MESSAGES is available in <locale.h>. -dnl Ulrich Drepper <drepper@cygnus.com>, 1995. -dnl -dnl This file can be copied and used freely without restrictions. It can -dnl be used in projects which are not available under the GNU General Public -dnl License or the GNU Library General Public License but which still want -dnl to provide support for the GNU gettext functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. -dnl -dnl serial 2 -dnl -AC_DEFUN([AM_LC_MESSAGES], -[if test "$ac_cv_header_locale_h" = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test "$am_cv_val_LC_MESSAGES" = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your <locale.h> file defines LC_MESSAGES.]) - fi -fi])dnl -dnl --------------------------------------------------------------------------- -dnl AM_PATH_PROG_WITH_TEST version: 10 updated: 2021/01/02 09:31:20 -dnl ---------------------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl progtest.m4 -dnl ==================== -dnl Search path for a program which passes the given test. -dnl Ulrich Drepper <drepper@cygnus.com>, 1996. -dnl -dnl This file can be copied and used freely without restrictions. It can -dnl be used in projects which are not available under the GNU General Public -dnl License or the GNU Library General Public License but which still want -dnl to provide support for the GNU gettext functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. -dnl -dnl serial 2 -dnl -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[# Extract the first word of "$2", so it can be a program name with args. -AC_REQUIRE([CF_PATHSEP]) -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - ([[\\/]*|?:[\\/]]*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - (*) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_word$ac_exeext" ; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word$ac_exeext" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -])dnl -dnl --------------------------------------------------------------------------- -dnl AM_WITH_NLS version: 31 updated: 2021/01/04 17:48:08 -dnl ----------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl gettext.m4 -dnl ==================== -dnl Macro to add for using GNU gettext. -dnl Ulrich Drepper <drepper@cygnus.com>, 1995. -dnl ==================== -dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the -dnl range of locations searched. Retain the same cache-variable naming to -dnl allow reuse with the other gettext macros -Thomas E Dickey -dnl ==================== -dnl -dnl This file can be copied and used freely without restrictions. It can -dnl be used in projects which are not available under the GNU General Public -dnl License or the GNU Library General Public License but which still want -dnl to provide support for the GNU gettext functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. -dnl -dnl serial 10 -dnl -dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR], [ENABLED]). -dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). Otherwise, a static library -dnl $(top_builddir)/intl/libintl.a will be created. -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. -dnl LIBDIR is used to find the intl libraries. If empty, -dnl the value `$(top_builddir)/intl/' is used. -dnl ENABLED is used to control the default for the related --enable-nls, since -dnl not all application developers want this feature by default, e.g., lynx. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_WITH_NLS], -[AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - ifelse([$4],,[ - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes)],[ - AC_ARG_ENABLE(nls, - [ --enable-nls use Native Language Support], - USE_NLS=$enableval, USE_NLS=no)]) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - INTLLIBS= - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - dnl We need to process the po/ directory. - POSUB=po - AC_DEFINE(ENABLE_NLS, 1, - [Define to 1 if translation of program messages to the user's native language - is requested.]) - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we may have - dnl to fall back to GNU NLS library. - CATOBJEXT=NONE - - dnl Save these (possibly-set) variables for reference. If the user - dnl overrode these to provide full pathnames, then warn if not actually - dnl GNU gettext, but do not override their values. Also, if they were - dnl overridden, suppress the part of the library test which prevents it - dnl from finding anything other than GNU gettext. Doing this also - dnl suppresses a bogus search for the intl library. - cf_save_msgfmt_path="$MSGFMT" - cf_save_xgettext_path="$XGETTEXT" - - dnl Search for GNU msgfmt in the PATH. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - ["$ac_dir/$ac_word" --statistics /dev/null >/dev/null 2>&1], :) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AC_SUBST(MSGFMT) - - dnl Search for GNU xgettext in the PATH. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - ["$ac_dir/$ac_word" --omit-header /dev/null >/dev/null 2>&1], :) - - cf_save_OPTS_1="$CPPFLAGS" - if test "x$cf_save_msgfmt_path" = "x$MSGFMT" && \ - test "x$cf_save_xgettext_path" = "x$XGETTEXT" ; then - CF_ADD_CFLAGS(-DIGNORE_MSGFMT_HACK) - fi - - cf_save_LIBS_1="$LIBS" - CF_ADD_LIBS($LIBICONV) - - CF_FIND_LINKAGE(CF__INTL_HEAD, - CF__INTL_BODY($2), - intl, - cf_cv_func_gettext=yes, - cf_cv_func_gettext=no) - - AC_MSG_CHECKING([for libintl.h and gettext()]) - AC_MSG_RESULT($cf_cv_func_gettext) - - LIBS="$cf_save_LIBS_1" - CPPFLAGS="$cf_save_OPTS_1" - - if test "$cf_cv_func_gettext" = yes ; then - AC_DEFINE(HAVE_LIBINTL_H,1,[Define to 1 if we have libintl.h]) - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$PACKAGE" != gettext; then - AC_DEFINE(HAVE_GETTEXT, 1, - [Define if the GNU gettext() function is already present or preinstalled.]) - - CF_ADD_INCDIR($cf_cv_header_path_intl) - - if test -n "$cf_cv_library_file_intl" ; then - dnl If iconv() is in a separate libiconv library, then anyone - dnl linking with libintl{.a,.so} also needs to link with - dnl libiconv. - INTLLIBS="$cf_cv_library_file_intl $LIBICONV" - CF_ADD_LIBDIR($cf_cv_library_path_intl,INTLLIBS) - fi - - gt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - AC_CHECK_FUNCS(dcgettext) - LIBS="$gt_save_LIBS" - - CATOBJEXT=.gmo - fi - elif test -z "$MSGFMT" || test -z "$XGETTEXT" ; then - AC_MSG_WARN(disabling NLS feature) - sed -e /ENABLE_NLS/d confdefs.h >confdefs.tmp - mv confdefs.tmp confdefs.h - ALL_LINGUAS= - CATOBJEXT=.ignored - MSGFMT=":" - GMSGFMT=":" - XGETTEXT=":" - POSUB= - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - USE_NLS=no - nls_cv_use_gnu_gettext=no - fi - - if test "$CATOBJEXT" = "NONE"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on GNU gettext library. - nls_cv_use_gnu_gettext=maybe - fi - fi - - if test "$nls_cv_use_gnu_gettext" != "no"; then - CATOBJEXT=.gmo - if test -f "$srcdir/intl/libintl.h" ; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - elif test "$nls_cv_use_gnu_gettext" = "yes"; then - nls_cv_use_gnu_gettext=no - AC_MSG_WARN(no NLS library is packaged with this application) - fi - fi - - dnl Test whether we really found GNU msgfmt. - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then - : ; - else - AC_MSG_WARN([found msgfmt program is not GNU msgfmt]) - fi - fi - - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then - : ; - else - AC_MSG_WARN([found xgettext program is not GNU xgettext]) - fi - fi - fi - - if test "$XGETTEXT" != ":"; then - AC_OUTPUT_COMMANDS( - [for ac_file in $CONFIG_FILES; do - - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - (*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - - # PO directories have a Makefile.in generated from Makefile.inn. - case "$ac_file" in - (*/[Mm]akefile.in) - # Adjust a relative srcdir. - ac_dir="`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`" - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots="`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`" - ac_base="`basename $ac_file .in`" - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - - case "$ac_given_srcdir" in - (.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - (/*) top_srcdir="$ac_given_srcdir" ;; - (*) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base" - sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base" - fi - ;; - esac - done]) - - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - if test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case "$ac_prog_version" in - ('') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - (1.2[6-9]*|1.[3-9][0-9]*|[2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - (*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test "$ac_verc_fail" = yes; then - INTLBISON=: - fi - fi - - dnl These rules are solely for the distribution goal. While doing this - dnl we only have to keep exactly one list of the available catalogs - dnl in configure.in. - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - fi - - dnl Make all variables we use known to autoconf. - AC_SUBST(BUILD_INCLUDED_LIBINTL) - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(GMOFILES) - AC_SUBST(INTLLIBS) - AC_SUBST(INTLOBJS) - AC_SUBST(POFILES) - AC_SUBST(POSUB) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST(DATADIRNAME) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST(INSTOBJEXT) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST(GENCAT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49 -dnl ------------------ -dnl Conditionally generate script according to whether we're using a given autoconf. -dnl -dnl $1 = version to compare against -dnl $2 = code to use if AC_ACVERSION is at least as high as $1. -dnl $3 = code to use if AC_ACVERSION is older than $1. -define([CF_ACVERSION_CHECK], -[ -ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl -ifdef([m4_version_compare], -[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])], -[CF_ACVERSION_COMPARE( -AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])), -AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53 -dnl -------------------- -dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1, -dnl MAJOR2, MINOR2, TERNARY2, -dnl PRINTABLE2, not FOUND, FOUND) -define([CF_ACVERSION_COMPARE], -[ifelse(builtin([eval], [$2 < $5]), 1, -[ifelse([$8], , ,[$8])], -[ifelse([$9], , ,[$9])])])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15 -dnl ------------- -dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS -dnl $1 = flags to add -dnl $2 = if given makes this macro verbose. -dnl -dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS, -dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily -dnl confused by the quotes (which require backslashes to keep them usable). -AC_DEFUN([CF_ADD_CFLAGS], -[ -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $1 -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags) - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags) - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags) - ;; - esac - CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags) - ;; - esac - ;; - (*) - CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags) - ;; - esac - ;; -(yes) - CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags) - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) - CF_APPEND_TEXT(CFLAGS,$cf_new_cflags) -fi - -if test -n "$cf_new_cppflags" ; then - ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) - CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags) -fi - -if test -n "$cf_new_extra_cppflags" ; then - ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) - CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags) -fi - -AC_SUBST(EXTRA_CPPFLAGS) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42 -dnl ------------- -dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's -dnl redundant. We don't normally need to add -I/usr/local/include for gcc, -dnl but old versions (and some misinstalled ones) need that. To make things -dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to -dnl the include-path). -AC_DEFUN([CF_ADD_INCDIR], -[ -if test -n "$1" ; then - for cf_add_incdir in $1 - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir) - AC_TRY_COMPILE([#include <stdio.h>], - [printf("Hello")], - [], - [cf_have_incdir=yes]) - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - CF_VERBOSE(adding $cf_add_incdir to include-path) - ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05 -dnl ---------- -dnl Add a library, used to enforce consistency. -dnl -dnl $1 = library to add, without the "-l" -dnl $2 = variable to update (default $LIBS) -AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42 -dnl ------------- -dnl Adds to the library-path -dnl -dnl Some machines have trouble with multiple -L options. -dnl -dnl $1 is the (list of) directory(s) to add -dnl $2 is the optional name of the variable to update (default LDFLAGS) -dnl -AC_DEFUN([CF_ADD_LIBDIR], -[ -if test -n "$1" ; then - for cf_add_libdir in $1 - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - CF_VERBOSE(adding $cf_add_libdir to library-path) - ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])" - fi - fi - done -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33 -dnl ----------- -dnl Add one or more libraries, used to enforce consistency. Libraries are -dnl prepended to an existing list, since their dependencies are assumed to -dnl already exist in the list. -dnl -dnl $1 = libraries to add, with the "-l", etc. -dnl $2 = variable to update (default $LIBS) -AC_DEFUN([CF_ADD_LIBS],[ -cf_add_libs="[$]ifelse($2,,LIBS,[$2])" -# reverse order -cf_add_0lib= -for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -ifelse($2,,LIBS,[$2])="$cf_add_libs" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22 -dnl ---------------- -dnl Add a given library after another, e.g., following the one it satisfies a -dnl dependency for. -dnl -dnl $1 = the first library -dnl $2 = its dependency -AC_DEFUN([CF_ADD_LIB_AFTER],[ -CF_VERBOSE(...before $LIBS) -LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'` -CF_VERBOSE(...after $LIBS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_OPTIONAL_PATH version: 3 updated: 2015/05/10 19:52:14 -dnl -------------------- -dnl Add an optional search-path to the compile/link variables. -dnl See CF_WITH_PATH -dnl -dnl $1 = shell variable containing the result of --with-XXX=[DIR] -dnl $2 = module to look for. -AC_DEFUN([CF_ADD_OPTIONAL_PATH],[ -case "$1" in -(no) - ;; -(yes) - ;; -(*) - CF_ADD_SEARCHPATH([$1], [AC_MSG_ERROR(cannot find $2 under $1)]) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_SEARCHPATH version: 6 updated: 2020/12/31 20:19:42 -dnl ----------------- -dnl Set $CPPFLAGS and $LDFLAGS with the directories given via the parameter. -dnl They can be either the common root of include- and lib-directories, or the -dnl lib-directory (to allow for things like lib64 directories). -dnl See also CF_FIND_LINKAGE. -dnl -dnl $1 is the list of colon-separated directory names to search. -dnl $2 is the action to take if a parameter does not yield a directory. -AC_DEFUN([CF_ADD_SEARCHPATH], -[ -AC_REQUIRE([CF_PATHSEP]) -for cf_searchpath in `echo "$1" | tr $PATH_SEPARATOR ' '`; do - if test -d "$cf_searchpath/include" ; then - CF_ADD_INCDIR($cf_searchpath/include) - elif test -d "$cf_searchpath/../include" ; then - CF_ADD_INCDIR($cf_searchpath/../include) - ifelse([$2],,,[else -$2]) - fi - if test -d "$cf_searchpath/lib" ; then - CF_ADD_LIBDIR($cf_searchpath/lib) - elif test -d "$cf_searchpath" ; then - CF_ADD_LIBDIR($cf_searchpath) - ifelse([$2],,,[else -$2]) - fi -done -]) -dnl --------------------------------------------------------------------------- -dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42 -dnl ------------------ -dnl Append to a search-list for a nonstandard header/lib-file -dnl $1 = the variable to return as result -dnl $2 = the package name -dnl $3 = the subdirectory, e.g., bin, include or lib -dnl $4 = the directory under which we will test for subdirectories -dnl $5 = a directory that we do not want $4 to match -AC_DEFUN([CF_ADD_SUBDIR_PATH], -[ -test "x$4" != "x$5" && \ -test -d "$4" && \ -ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) { - test -n "$verbose" && echo " ... testing for $3-directories under $4" - test -d "$4/$3" && $1="[$]$1 $4/$3" - test -d "$4/$3/$2" && $1="[$]$1 $4/$3/$2" - test -d "$4/$3/$2/$3" && $1="[$]$1 $4/$3/$2/$3" - test -d "$4/$2/$3" && $1="[$]$1 $4/$2/$3" - test -d "$4/$2/$3/$2" && $1="[$]$1 $4/$2/$3/$2" -} -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55 -dnl -------------- -dnl use this macro for appending text without introducing an extra blank at -dnl the beginning -define([CF_APPEND_TEXT], -[ - test -n "[$]$1" && $1="[$]$1 " - $1="[$]{$1}$2" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31 -dnl -------------- -dnl Allow user to disable a normally-on option. -AC_DEFUN([CF_ARG_DISABLE], -[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31 -dnl ------------- -dnl Allow user to enable a normally-off option. -AC_DEFUN([CF_ARG_ENABLE], -[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ARG_MSG_ENABLE version: 2 updated: 2000/07/29 19:32:03 -dnl ----------------- -dnl Verbose form of AC_ARG_ENABLE: -dnl -dnl Parameters: -dnl $1 = message -dnl $2 = option name -dnl $3 = help-string -dnl $4 = action to perform if option is enabled -dnl $5 = action if perform if option is disabled -dnl $6 = default option value (either 'yes' or 'no') -AC_DEFUN([CF_ARG_MSG_ENABLE],[ -AC_MSG_CHECKING($1) -AC_ARG_ENABLE($2,[$3],,enableval=ifelse($6,,no,$6)) -AC_MSG_RESULT($enableval) -if test "$enableval" != no ; then -ifelse($4,,[ :],$4) -else -ifelse($5,,[ :],$5) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14 -dnl ------------- -dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus -dnl values. -dnl -dnl Parameters: -dnl $1 = option name -dnl $2 = help-string -dnl $3 = action to perform if option is not default -dnl $4 = action if perform if option is default -dnl $5 = default option value (either 'yes' or 'no') -AC_DEFUN([CF_ARG_OPTION], -[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes) - if test "$enableval" != "$5" ; then -ifelse([$3],,[ :]dnl -,[ $3]) ifelse([$4],,,[ - else - $4]) - fi],[enableval=$5 ifelse([$4],,,[ - $4 -])dnl -])])dnl -dnl --------------------------------------------------------------------------- -dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04 -dnl ----------- -dnl Check for suitable "ar" (archiver) options for updating an archive. -dnl -dnl In particular, handle some obsolete cases where the "-" might be omitted, -dnl as well as a workaround for breakage of make's archive rules by the GNU -dnl binutils "ar" program. -AC_DEFUN([CF_AR_FLAGS],[ -AC_REQUIRE([CF_PROG_AR]) - -AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[ - case "$cf_cv_system_name" in - (*-msvc*) - cf_cv_ar_flags='' - cat >mk_static_lib.sh <<-EOF - #!$SHELL - MSVC_BIN="[$]AR" - out="\[$]1" - shift - exec \[$]MSVC_BIN -out:"\[$]out" \[$]@ - EOF - chmod +x mk_static_lib.sh - AR=`pwd`/mk_static_lib.sh - ;; - (*) - cf_cv_ar_flags=unknown - for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv - do - - # check if $ARFLAGS already contains this choice - if test "x$ARFLAGS" != "x" ; then - cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"` - if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then - cf_cv_ar_flags= - break - fi - fi - - rm -f "conftest.$ac_cv_objext" - rm -f conftest.a - - cat >"conftest.$ac_ext" <<EOF -#line __oline__ "configure" -int testdata[[3]] = { 123, 456, 789 }; -EOF - if AC_TRY_EVAL(ac_compile) ; then - echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC - $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null - if test -f conftest.a ; then - cf_cv_ar_flags="$cf_ar_flags" - break - fi - else - CF_VERBOSE(cannot compile test-program) - break - fi - done - rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext" - ;; - esac -]) - -if test -n "$ARFLAGS" ; then - if test -n "$cf_cv_ar_flags" ; then - ARFLAGS="$ARFLAGS $cf_cv_ar_flags" - fi -else - ARFLAGS=$cf_cv_ar_flags -fi - -AC_SUBST(ARFLAGS) -]) -dnl --------------------------------------------------------------------------- -dnl CF_BUNDLED_INTL version: 20 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Top-level macro for configuring an application with a bundled copy of -dnl the intl and po directories for gettext. -dnl -dnl $1 specifies either Makefile or makefile, defaulting to the former. -dnl $2 if nonempty sets the option to --enable-nls rather than to --disable-nls -dnl -dnl Sets variables which can be used to substitute in makefiles: -dnl GT_YES - "#" comment unless building intl library, otherwise empty -dnl GT_NO - "#" comment if building intl library, otherwise empty -dnl INTLDIR_MAKE - to make ./intl directory -dnl MSG_DIR_MAKE - to make ./po directory -dnl SUB_MAKEFILE - list of makefiles in ./intl, ./po directories -dnl -dnl Defines: -dnl HAVE_LIBGETTEXT_H if we're using ./intl -dnl NLS_TEXTDOMAIN -dnl -dnl Environment: -dnl ALL_LINGUAS if set, lists the root names of the ".po" files. -dnl CONFIG_H assumed to be "config.h" -dnl PACKAGE must be set, used as default for textdomain -dnl VERSION may be set, otherwise extract from "VERSION" file. -dnl -AC_DEFUN([CF_BUNDLED_INTL],[ -cf_makefile=ifelse($1,,Makefile,$1) - -dnl Set of available languages (based on source distribution). Note that -dnl setting $LINGUAS overrides $ALL_LINGUAS. Some environments set $LINGUAS -dnl rather than $LC_ALL -test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d "$srcdir/po" && cd "$srcdir/po" && echo *.po|sed -e 's/\.po//g' -e 's/*//'` - -# Allow override of "config.h" definition: -: ${CONFIG_H:=config.h} -AC_SUBST(CONFIG_H) - -if test -z "$PACKAGE" ; then - AC_MSG_ERROR([[CF_BUNDLED_INTL] used without setting [PACKAGE] variable]) -fi - -if test -z "$VERSION" ; then -if test -f "$srcdir/VERSION" ; then - VERSION=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1` -else - VERSION=unknown -fi -fi -AC_SUBST(VERSION) - -AM_GNU_GETTEXT(,,,[$2]) - -if test "$USE_NLS" = yes ; then - AC_ARG_WITH(textdomain, - [ --with-textdomain=PKG NLS text-domain (default is package name)], - [NLS_TEXTDOMAIN=$withval], - [NLS_TEXTDOMAIN=$PACKAGE]) - AC_DEFINE_UNQUOTED(NLS_TEXTDOMAIN,"$NLS_TEXTDOMAIN",[Define to the nls textdomain value]) - AC_SUBST(NLS_TEXTDOMAIN) -fi - -INTLDIR_MAKE= -MSG_DIR_MAKE= -SUB_MAKEFILE= - -dnl this updates SUB_MAKEFILE and MSG_DIR_MAKE: -CF_OUR_MESSAGES($1) - -if test "$USE_INCLUDED_LIBINTL" = yes ; then - if test "$nls_cv_force_use_gnu_gettext" = yes ; then - : - elif test "$nls_cv_use_gnu_gettext" = yes ; then - : - else - INTLDIR_MAKE="#" - fi - if test -z "$INTLDIR_MAKE"; then - AC_DEFINE(HAVE_LIBGETTEXT_H,1,[Define to 1 if we have libgettext.h]) - for cf_makefile in \ - $srcdir/intl/Makefile.in \ - $srcdir/intl/makefile.in - do - if test -f "$cf_makefile" ; then - SUB_MAKEFILE="$SUB_MAKEFILE `echo \"${cf_makefile}\"|sed -e 's,^'$srcdir/',,' -e 's/\.in$//'`:${cf_makefile}" - break - fi - done - fi -else - INTLDIR_MAKE="#" - if test "$USE_NLS" = yes ; then - AC_CHECK_HEADERS(libintl.h) - fi -fi - -if test -z "$INTLDIR_MAKE" ; then - CF_APPEND_TEXT(CPPFLAGS,-I../intl) -fi - -dnl FIXME: we use this in lynx (the alternative is a spurious dependency upon -dnl GNU make) -if test "$BUILD_INCLUDED_LIBINTL" = yes ; then - GT_YES="#" - GT_NO= -else - GT_YES= - GT_NO="#" -fi - -AC_SUBST(INTLDIR_MAKE) -AC_SUBST(MSG_DIR_MAKE) -AC_SUBST(GT_YES) -AC_SUBST(GT_NO) - -dnl FIXME: the underlying AM_GNU_GETTEXT macro either needs some fixes or a -dnl little documentation. It doesn't define anything so that we can ifdef our -dnl own code, except ENABLE_NLS, which is too vague to be of any use. - -if test "$USE_INCLUDED_LIBINTL" = yes ; then - if test "$nls_cv_force_use_gnu_gettext" = yes ; then - AC_DEFINE(HAVE_GETTEXT,1,[Define to 1 if we have gettext function]) - elif test "$nls_cv_use_gnu_gettext" = yes ; then - AC_DEFINE(HAVE_GETTEXT,1,[Define to 1 if we have gettext function]) - fi - if test -n "$nls_cv_header_intl" ; then - AC_DEFINE(HAVE_LIBINTL_H,1,[Define to 1 if we have header-file for libintl]) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20 -dnl --------------- -dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content -dnl into CC. This will not help with broken scripts that wrap the compiler -dnl with options, but eliminates a more common category of user confusion. -dnl -dnl In particular, it addresses the problem of being able to run the C -dnl preprocessor in a consistent manner. -dnl -dnl Caveat: this also disallows blanks in the pathname for the compiler, but -dnl the nuisance of having inconsistent settings for compiler and preprocessor -dnl outweighs that limitation. -AC_DEFUN([CF_CC_ENV_FLAGS], -[ -# This should have been defined by AC_PROG_CC -: "${CC:=cc}" - -AC_MSG_CHECKING(\$CFLAGS variable) -case "x$CFLAGS" in -(*-[[IUD]]*) - AC_MSG_RESULT(broken) - AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options) - cf_flags="$CFLAGS" - CFLAGS= - for cf_arg in $cf_flags - do - CF_ADD_CFLAGS($cf_arg) - done - ;; -(*) - AC_MSG_RESULT(ok) - ;; -esac - -AC_MSG_CHECKING(\$CC variable) -case "$CC" in -(*[[\ \ ]]-*) - AC_MSG_RESULT(broken) - AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options) - # humor him... - cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'` - cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'` - CC="$cf_prog" - for cf_arg in $cf_flags - do - case "x$cf_arg" in - (x-[[IUDfgOW]]*) - CF_ADD_CFLAGS($cf_arg) - ;; - (*) - CC="$CC $cf_arg" - ;; - esac - done - CF_VERBOSE(resulting CC: '$CC') - CF_VERBOSE(resulting CFLAGS: '$CFLAGS') - CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS') - ;; -(*) - AC_MSG_RESULT(ok) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15 -dnl -------------- -dnl Check if we're accidentally using a cache from a different machine. -dnl Derive the system name, as a check for reusing the autoconf cache. -dnl -dnl If we've packaged config.guess and config.sub, run that (since it does a -dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow -dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM -dnl which is useful in cross-compiles. -dnl -dnl Note: we would use $ac_config_sub, but that is one of the places where -dnl autoconf 2.5x broke compatibility with autoconf 2.13 -AC_DEFUN([CF_CHECK_CACHE], -[ -if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then - ifelse([$1],,[AC_CANONICAL_HOST],[$1]) - system_name="$host_os" -else - system_name="`(uname -s -r) 2>/dev/null`" - if test -z "$system_name" ; then - system_name="`(hostname) 2>/dev/null`" - fi -fi -test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.]) -AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) - -test -z "$system_name" && system_name="$cf_cv_system_name" -test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name) - -if test ".$system_name" != ".$cf_cv_system_name" ; then - AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)) - AC_MSG_ERROR("Please remove config.cache and try again.") -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_CFLAGS version: 4 updated: 2021/01/02 19:22:58 -dnl --------------- -dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from -dnl a build-configuration such as imake. These have the pitfall that they -dnl often contain compiler-specific options which we cannot use, mixed with -dnl preprocessor options that we usually can. -AC_DEFUN([CF_CHECK_CFLAGS], -[ -CF_VERBOSE(checking additions to CFLAGS) -cf_check_cflags="$CFLAGS" -cf_check_cppflags="$CPPFLAGS" -CF_ADD_CFLAGS($1,yes) -if test "x$cf_check_cflags" != "x$CFLAGS" ; then -AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],, - [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS) - if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then - CF_VERBOSE(but keeping change to \$CPPFLAGS) - fi - CFLAGS="$cf_check_cflags"]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 -dnl ------------------------ -dnl Show the version of libtool -dnl -dnl Save the version in a cache variable - this is not entirely a good thing, -dnl but the version string from libtool is very ugly, and for bug reports it -dnl might be useful to have the original string. -AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[ -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - AC_MSG_CHECKING(version of $LIBTOOL) - CF_LIBTOOL_VERSION - AC_MSG_RESULT($cf_cv_libtool_version) - if test -z "$cf_cv_libtool_version" ; then - AC_MSG_ERROR(This is not GNU libtool) - fi -else - AC_MSG_ERROR(GNU libtool has not been found) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04 -dnl ----------------- -dnl Check if the given compiler is really clang. clang's C driver defines -dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does -dnl not ignore some gcc options. -dnl -dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to -dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from -dnl the wrappers for gcc and g++ warnings. -dnl -dnl $1 = GCC (default) or GXX -dnl $2 = CLANG_COMPILER (default) -dnl $3 = CFLAGS (default) or CXXFLAGS -AC_DEFUN([CF_CLANG_COMPILER],[ -ifelse([$2],,CLANG_COMPILER,[$2])=no - -if test "$ifelse([$1],,[$1],GCC)" = yes ; then - AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler) - cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" - AC_TRY_COMPILE([],[ -#ifdef __clang__ -#else -make an error -#endif -],[ifelse([$2],,CLANG_COMPILER,[$2])=yes -],[]) - ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" - AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2])) -fi - -CLANG_VERSION=none - -if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then - case "$CC" in - (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]]) - AC_MSG_WARN(replacing broken compiler alias $CC) - CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`" - CC=clang - ;; - esac - - AC_MSG_CHECKING(version of $CC) - CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" - test -z "$CLANG_VERSION" && CLANG_VERSION=unknown - AC_MSG_RESULT($CLANG_VERSION) - - for cf_clang_opt in \ - -Qunused-arguments \ - -Wno-error=implicit-function-declaration - do - AC_MSG_CHECKING(if option $cf_clang_opt works) - cf_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cf_clang_opt" - AC_TRY_LINK([ - #include <stdio.h>],[ - printf("hello!\\n");],[ - cf_clang_optok=yes],[ - cf_clang_optok=no]) - AC_MSG_RESULT($cf_clang_optok) - CFLAGS="$cf_save_CFLAGS" - if test "$cf_clang_optok" = yes; then - CF_VERBOSE(adding option $cf_clang_opt) - CF_APPEND_TEXT(CFLAGS,$cf_clang_opt) - fi - done -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04 -dnl ----------------- -dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most -dnl character-strings. -dnl -dnl It is ambiguous because the specification accommodated the pre-ANSI -dnl compilers bundled by more than one vendor in lieu of providing a standard C -dnl compiler other than by costly add-ons. Because of this, the specification -dnl did not take into account the use of const for telling the compiler that -dnl string literals would be in readonly memory. -dnl -dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to -dnl let the compiler decide how to represent Xt's strings which were #define'd. -dnl That does not solve the problem of using the block of Xt's strings which -dnl are compiled into the library (and is less efficient than one might want). -dnl -dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both -dnl when compiling the library and compiling using the library, to tell the -dnl compiler that String is const. -AC_DEFUN([CF_CONST_X_STRING], -[ -AC_REQUIRE([AC_PATH_XTRA]) - -CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING]) - -AC_TRY_COMPILE( -[ -#include <stdlib.h> -#include <X11/Intrinsic.h> -], -[String foo = malloc(1); (void)foo],[ - -AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[ - AC_TRY_COMPILE( - [ -#define _CONST_X_STRING /* X11R7.8 (perhaps) */ -#undef XTSTRINGDEFINES /* X11R5 and later */ -#include <stdlib.h> -#include <X11/Intrinsic.h> - ],[String foo = malloc(1); *foo = 0],[ - cf_cv_const_x_string=no - ],[ - cf_cv_const_x_string=yes - ]) -]) - -CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING]) - -case "$cf_cv_const_x_string" in -(no) - CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES) - ;; -(*) - CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING) - ;; -esac - -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_CHTYPE version: 11 updated: 2021/01/02 09:31:20 -dnl ---------------- -dnl Test if curses defines 'chtype' (usually a 'long' type for SysV curses). -AC_DEFUN([CF_CURSES_CHTYPE], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl -AC_CACHE_CHECK(for chtype typedef,cf_cv_chtype_decl,[ - AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>], - [chtype foo; (void)foo], - [cf_cv_chtype_decl=yes], - [cf_cv_chtype_decl=no])]) -if test "$cf_cv_chtype_decl" = yes ; then - AC_DEFINE(HAVE_TYPE_CHTYPE,1,[Define to 1 if chtype is declared]) - AC_CACHE_CHECK(if chtype is scalar or struct,cf_cv_chtype_type,[ - AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>], - [static chtype foo; long x = foo; (void)x], - [cf_cv_chtype_type=scalar], - [cf_cv_chtype_type=struct])]) - if test "$cf_cv_chtype_type" = scalar ; then - AC_DEFINE(TYPE_CHTYPE_IS_SCALAR,1,[Define to 1 if chtype is a scaler/integer]) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27 -dnl ---------------- -dnl Tie together the configure-script macros for curses. It may be ncurses, -dnl but unless asked, we do not make a special search for ncurses. However, -dnl still check for the ncurses version number, for use in other macros. -AC_DEFUN([CF_CURSES_CONFIG], -[ -CF_CURSES_CPPFLAGS -CF_NCURSES_VERSION -CF_CURSES_LIBS -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_CPPFLAGS version: 14 updated: 2021/01/02 09:31:20 -dnl ------------------ -dnl Look for the curses headers. -AC_DEFUN([CF_CURSES_CPPFLAGS],[ - -AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[ -cf_cv_curses_incdir=no -case "$host_os" in -(hpux10.*) - if test "x$cf_cv_screen" = "xcurses_colr" - then - test -d /usr/include/curses_colr && \ - cf_cv_curses_incdir="-I/usr/include/curses_colr" - fi - ;; -(sunos3*|sunos4*) - if test "x$cf_cv_screen" = "xcurses_5lib" - then - test -d /usr/5lib && \ - test -d /usr/5include && \ - cf_cv_curses_incdir="-I/usr/5include" - fi - ;; -esac -]) -if test "$cf_cv_curses_incdir" != no -then - CF_APPEND_TEXT(CPPFLAGS,$cf_cv_curses_incdir) -fi - -CF_CURSES_HEADER -CF_TERM_HEADER -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_EXIT version: 1 updated: 2020/03/26 19:15:16 -dnl -------------- -dnl Check for ncurses memory-leak/debug feature. Starting with ncurses 6.2, -dnl the curses_exit() function is always present, simplifying linkage changes -dnl when switching to/from a debug-library. -AC_DEFUN([CF_CURSES_EXIT], -[ -CF_CURSES_FUNCS(\ -curses_exit \ -_nc_free_and_exit \ -) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_FUNCS version: 20 updated: 2020/12/31 20:19:42 -dnl --------------- -dnl Curses-functions are a little complicated, since a lot of them are macros. -AC_DEFUN([CF_CURSES_FUNCS], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl -AC_REQUIRE([CF_XOPEN_CURSES]) -AC_REQUIRE([CF_CURSES_TERM_H]) -AC_REQUIRE([CF_CURSES_UNCTRL_H]) -for cf_func in $1 -do - CF_UPPER(cf_tr_func,$cf_func) - AC_MSG_CHECKING(for ${cf_func}) - CF_MSG_LOG(${cf_func}) - AC_CACHE_VAL(cf_cv_func_$cf_func,[ - eval cf_result='$ac_cv_func_'$cf_func - if test ".$cf_result" != ".no"; then - AC_TRY_LINK(CF__CURSES_HEAD, - [ -#ifndef ${cf_func} -long foo = (long)(&${cf_func}); -fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo); -if (foo + 1234L > 5678L) - ${cf_cv_main_return:-return}(foo != 0); -#endif - ], - [cf_result=yes], - [cf_result=no]) - fi - eval 'cf_cv_func_'$cf_func'="$cf_result"' - ]) - # use the computed/retrieved cache-value: - eval 'cf_result=$cf_cv_func_'$cf_func - AC_MSG_RESULT($cf_result) - if test "$cf_result" != no; then - AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func}) - fi -done -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30 -dnl ---------------- -dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common -dnl variations of ncurses' installs. -dnl -dnl $1 = ncurses when looking for ncurses, or is empty -AC_DEFUN([CF_CURSES_HEADER],[ -AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[ -cf_cv_ncurses_header=none -for cf_header in \ - ncurses.h ifelse($1,,,[$1/ncurses.h]) \ - curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h]) -do -AC_TRY_COMPILE([#include <${cf_header}>], - [initscr(); tgoto("?", 0,0)], - [cf_cv_ncurses_header=$cf_header; break],[]) -done -]) - -if test "$cf_cv_ncurses_header" = none ; then - AC_MSG_ERROR(No curses header-files found) -fi - -# cheat, to get the right #define's for HAVE_NCURSES_H, etc. -AC_CHECK_HEADERS($cf_cv_ncurses_header) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_LIBS version: 44 updated: 2021/01/02 09:31:20 -dnl -------------- -dnl Look for the curses libraries. Older curses implementations may require -dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first. -AC_DEFUN([CF_CURSES_LIBS],[ - -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl -AC_MSG_CHECKING(if we have identified curses libraries) -AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr(); tgoto("?", 0,0)], - cf_result=yes, - cf_result=no) -AC_MSG_RESULT($cf_result) - -if test "$cf_result" = no ; then -case "$host_os" in -(freebsd*) - AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)]) - ;; -(hpux10.*) - # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr - # next (1998), and xcurses "newer" (2000). There is no header file for - # Hcurses; the subdirectory curses_colr has the headers (curses.h and - # term.h) for cur_colr - if test "x$cf_cv_screen" = "xcurses_colr" - then - AC_CHECK_LIB(cur_colr,initscr,[ - CF_ADD_LIBS(-lcur_colr) - ac_cv_func_initscr=yes - ],[ - AC_CHECK_LIB(Hcurses,initscr,[ - # HP's header uses __HP_CURSES, but user claims _HP_CURSES. - CF_ADD_LIBS(-lHcurses) - CF_APPEND_TEXT(CPPFLAGS,-D__HP_CURSES -D_HP_CURSES) - ac_cv_func_initscr=yes - ])]) - fi - ;; -(linux*) - case `arch 2>/dev/null` in - (x86_64) - if test -d /lib64 - then - CF_ADD_LIBDIR(/lib64) - else - CF_ADD_LIBDIR(/lib) - fi - ;; - (*) - CF_ADD_LIBDIR(/lib) - ;; - esac - ;; -(sunos3*|sunos4*) - if test "x$cf_cv_screen" = "xcurses_5lib" - then - if test -d /usr/5lib ; then - CF_ADD_LIBDIR(/usr/5lib) - CF_ADD_LIBS(-lcurses -ltermcap) - fi - fi - ac_cv_func_initscr=yes - ;; -esac - -if test ".$ac_cv_func_initscr" != .yes ; then - cf_save_LIBS="$LIBS" - - if test ".${cf_cv_ncurses_version:-no}" != .no - then - cf_check_list="ncurses curses cursesX" - else - cf_check_list="cursesX curses ncurses" - fi - - # Check for library containing tgoto. Do this before curses library - # because it may be needed to link the test-case for initscr. - if test "x$cf_term_lib" = x - then - AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[ - for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown - do - AC_CHECK_LIB($cf_term_lib,tgoto,[ - : "${cf_nculib_root:=$cf_term_lib}" - break - ]) - done - ]) - fi - - # Check for library containing initscr - test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" - if test "x$cf_curs_lib" = x - then - for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown - do - LIBS="-l$cf_curs_lib $cf_save_LIBS" - if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then - AC_MSG_CHECKING(if we can link with $cf_curs_lib library) - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr()], - [cf_result=yes], - [cf_result=no]) - AC_MSG_RESULT($cf_result) - test "$cf_result" = yes && break - elif test "$cf_curs_lib" = "$cf_term_lib" ; then - cf_result=no - elif test "$cf_term_lib" != predefined ; then - AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries) - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr(); tgoto((char *)0, 0, 0);], - [cf_result=no], - [ - LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr()], - [cf_result=yes], - [cf_result=error]) - ]) - AC_MSG_RESULT($cf_result) - test "$cf_result" != error && break - fi - done - fi - test "$cf_curs_lib" = unknown && AC_MSG_ERROR(no curses library found) -fi -fi - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_TERM_H version: 15 updated: 2021/01/02 09:31:20 -dnl ---------------- -dnl SVr4 curses should have term.h as well (where it puts the definitions of -dnl the low-level interface). This may not be true in old/broken implementations, -dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4 -dnl running with Solaris 2.5.1). -AC_DEFUN([CF_CURSES_TERM_H], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl - -AC_CACHE_CHECK(for term.h, cf_cv_term_header,[ - -# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look -# for <term.h> if we do not find the variant. - -cf_header_list="term.h ncurses/term.h ncursesw/term.h" - -case "${cf_cv_ncurses_header:-curses.h}" in -(*/*) - cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h - cf_header_list="$cf_header_item $cf_header_list" - ;; -esac - -for cf_header in $cf_header_list -do - AC_TRY_COMPILE([ -#include <${cf_cv_ncurses_header:-curses.h}> -#include <${cf_header}>], - [WINDOW *x; (void)x], - [cf_cv_term_header=$cf_header - break], - [cf_cv_term_header=no]) -done - -case "$cf_cv_term_header" in -(no) - # If curses is ncurses, some packagers still mess it up by trying to make - # us use GNU termcap. This handles the most common case. - for cf_header in ncurses/term.h ncursesw/term.h - do - AC_TRY_COMPILE([ -#include <${cf_cv_ncurses_header:-curses.h}> -#ifdef NCURSES_VERSION -#include <${cf_header}> -#else -make an error -#endif], - [WINDOW *x; (void)x], - [cf_cv_term_header=$cf_header - break], - [cf_cv_term_header=no]) - done - ;; -esac -]) - -case "$cf_cv_term_header" in -(term.h) - AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h]) - ;; -(ncurses/term.h) - AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h]) - ;; -(ncursesw/term.h) - AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h]) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_UNCTRL_H version: 8 updated: 2021/01/02 09:31:20 -dnl ------------------ -dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages -dnl may put it in a subdirectory (along with ncurses' other headers, of -dnl course). Packages which put the headers in inconsistent locations are -dnl broken). -AC_DEFUN([CF_CURSES_UNCTRL_H], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl - -AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[ - -# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look -# for <unctrl.h> if we do not find the variant. - -cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h" - -case "${cf_cv_ncurses_header:-curses.h}" in -(*/*) - cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h - cf_header_list="$cf_header_item $cf_header_list" - ;; -esac - -for cf_header in $cf_header_list -do - AC_TRY_COMPILE([ -#include <${cf_cv_ncurses_header:-curses.h}> -#include <${cf_header}>], - [WINDOW *x; (void)x], - [cf_cv_unctrl_header=$cf_header - break], - [cf_cv_unctrl_header=no]) -done -]) - -case "$cf_cv_unctrl_header" in -(no) - AC_MSG_WARN(unctrl.h header not found) - ;; -esac - -case "$cf_cv_unctrl_header" in -(unctrl.h) - AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h]) - ;; -(ncurses/unctrl.h) - AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h]) - ;; -(ncursesw/unctrl.h) - AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h]) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_WACS_MAP version: 8 updated: 2021/01/04 19:45:09 -dnl ------------------ -dnl Check for likely values of wacs_map[]. -AC_DEFUN([CF_CURSES_WACS_MAP], -[ -AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[ - cf_cv_curses_wacs_map=unknown - for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char - do - AC_TRY_LINK([ -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}>], - [void *foo = &(${name}['k']); (void)foo], - [cf_cv_curses_wacs_map=$name - break]) - done]) - -test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_WACS_SYMBOLS version: 4 updated: 2021/01/04 19:45:09 -dnl ---------------------- -dnl Do a check to see if the WACS_xxx constants are defined compatibly with -dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx -dnl constants is broken since those constants do not point to cchar_t's. -AC_DEFUN([CF_CURSES_WACS_SYMBOLS], -[ -AC_REQUIRE([CF_CURSES_WACS_MAP]) - -AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[ -cf_cv_curses_wacs_symbols=no -if test "$cf_cv_curses_wacs_map" != unknown -then - AC_TRY_LINK([ -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}>], - [cchar_t *foo = WACS_PLUS; - ${cf_cv_curses_wacs_map}['k'] = *WACS_PLUS; (void)foo], - [cf_cv_curses_wacs_symbols=yes]) -else - AC_TRY_LINK([ -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}>], - [cchar_t *foo = WACS_PLUS; (void)foo], - [cf_cv_curses_wacs_symbols=yes]) -fi -]) - -test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CURSES_WGETPARENT version: 4 updated: 2020/03/19 20:23:48 -dnl -------------------- -dnl Check for curses support for directly determining the parent of a given -dnl window. Some implementations make this difficult, so we provide for -dnl defining an application-specific function that gives this functionality. -dnl -dnl $1 = name of function to use if the feature is missing -AC_DEFUN([CF_CURSES_WGETPARENT],[ -CF_CURSES_FUNCS(wgetparent) -if test "x$cf_cv_func_wgetparent" != xyes -then - AC_MSG_CHECKING(if WINDOW has _parent member) - AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>], - [WINDOW *p = stdscr->_parent; (void)p], - [cf_window__parent=yes], - [cf_window__parent=no]) - AC_MSG_RESULT($cf_window__parent) - if test "$cf_window__parent" = yes - then - AC_DEFINE(HAVE_WINDOW__PARENT,1,[Define to 1 if WINDOW struct has _parent member]) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42 -dnl ---------- -dnl "dirname" is not portable, so we fake it with a shell script. -AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57 -dnl --------------- -dnl You can always use "make -n" to see the actual options, but it's hard to -dnl pick out/analyze warning messages when the compile-line is long. -dnl -dnl Sets: -dnl ECHO_LT - symbol to control if libtool is verbose -dnl ECHO_LD - symbol to prefix "cc -o" lines -dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o) -dnl SHOW_CC - symbol to put before explicit "cc -c" lines -dnl ECHO_CC - symbol to put before any "cc" line -dnl -AC_DEFUN([CF_DISABLE_ECHO],[ -AC_MSG_CHECKING(if you want to see long compiling messages) -CF_ARG_DISABLE(echo, - [ --disable-echo do not display "compiling" commands], - [ - ECHO_LT='--silent' - ECHO_LD='@echo linking [$]@;' - RULE_CC='@echo compiling [$]<' - SHOW_CC='@echo compiling [$]@' - ECHO_CC='@' -],[ - ECHO_LT='' - ECHO_LD='' - RULE_CC='' - SHOW_CC='' - ECHO_CC='' -]) -AC_MSG_RESULT($enableval) -AC_SUBST(ECHO_LT) -AC_SUBST(ECHO_LD) -AC_SUBST(RULE_CC) -AC_SUBST(SHOW_CC) -AC_SUBST(ECHO_CC) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04 -dnl -------------------------- -dnl Check if we should use the libtool 1.5 feature "-version-number" instead of -dnl the older "-version-info" feature. The newer feature allows us to use -dnl version numbering on shared libraries which make them compatible with -dnl various systems. -AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION], -[ -AC_MSG_CHECKING(if libtool -version-number should be used) -CF_ARG_DISABLE(libtool-version, - [ --disable-libtool-version enable to use libtool's incompatible naming scheme], - [cf_libtool_version=no], - [cf_libtool_version=yes]) -AC_MSG_RESULT($cf_libtool_version) - -if test "$cf_libtool_version" = yes ; then - LIBTOOL_VERSION="-version-number" -else - LIBTOOL_VERSION="-version-info" - case "x$VERSION" in - (x) - AC_MSG_WARN(VERSION was not set) - ;; - (x*.*.*) - ABI_VERSION="$VERSION" - CF_VERBOSE(ABI_VERSION: $ABI_VERSION) - ;; - (x*:*:*) - ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'` - CF_VERBOSE(ABI_VERSION: $ABI_VERSION) - ;; - (*) - AC_MSG_WARN(unexpected VERSION value: $VERSION) - ;; - esac -fi - -AC_SUBST(ABI_VERSION) -AC_SUBST(LIBTOOL_VERSION) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44 -dnl --------------------- -dnl The rpath-hack makes it simpler to build programs, particularly with the -dnl *BSD ports which may have essential libraries in unusual places. But it -dnl can interfere with building an executable for the base system. Use this -dnl option in that case. -AC_DEFUN([CF_DISABLE_RPATH_HACK], -[ -AC_MSG_CHECKING(if rpath-hack should be disabled) -CF_ARG_DISABLE(rpath-hack, - [ --disable-rpath-hack don't add rpath options for additional libraries], - [enable_rpath_hack=no], - [enable_rpath_hack=yes]) -dnl TODO - drop cf_disable_rpath_hack -if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi -AC_MSG_RESULT($cf_disable_rpath_hack) - -if test "$enable_rpath_hack" = yes ; then - CF_RPATH_HACK -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42 -dnl --------------- -dnl Check if the rpath option should be used, setting cache variable -dnl cf_cv_enable_rpath if so. -AC_DEFUN([CF_ENABLE_RPATH], -[ -AC_MSG_CHECKING(if rpath option should be used) -AC_ARG_ENABLE(rpath, -[ --enable-rpath use rpath option when generating shared libraries], -[cf_cv_enable_rpath=$enableval], -[cf_cv_enable_rpath=no]) -AC_MSG_RESULT($cf_cv_enable_rpath) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50 -dnl ------------------ -dnl Configure-option to enable gcc warnings -dnl -dnl $1 = extra options to add, if supported -dnl $2 = option for checking attributes. By default, this is done when -dnl warnings are enabled. For other values: -dnl yes: always do this, e.g., to use in generated library-headers -dnl no: never do this -AC_DEFUN([CF_ENABLE_WARNINGS],[ -if test "$GCC" = yes || test "$GXX" = yes -then -CF_FIX_WARNINGS(CFLAGS) -CF_FIX_WARNINGS(CPPFLAGS) -CF_FIX_WARNINGS(LDFLAGS) -AC_MSG_CHECKING(if you want to turn on gcc warnings) -CF_ARG_ENABLE(warnings, - [ --enable-warnings test: turn on gcc compiler warnings], - [enable_warnings=yes], - [enable_warnings=no]) -AC_MSG_RESULT($enable_warnings) -if test "$enable_warnings" = "yes" -then - ifelse($2,,[CF_GCC_ATTRIBUTES]) - CF_GCC_WARNINGS($1) -fi -ifelse($2,yes,[CF_GCC_ATTRIBUTES]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FIND_LIBRARY version: 11 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We -dnl prefer a standard location, and use -L options only if we do not find the -dnl library in the standard library location(s). -dnl $1 = library name -dnl $2 = library class, usually the same as library name -dnl $3 = includes -dnl $4 = code fragment to compile/link -dnl $5 = corresponding function-name -dnl $6 = flag, nonnull if failure should not cause an error-exit -dnl -dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had -dnl to use a -L option. -AC_DEFUN([CF_FIND_LIBRARY], -[ - eval 'cf_cv_have_lib_'"$1"'=no' - cf_libdir="" - AC_CHECK_FUNC($5, - eval 'cf_cv_have_lib_'"$1"'=yes',[ - cf_save_LIBS="$LIBS" - AC_MSG_CHECKING(for $5 in -l$1) - LIBS="-l$1 $LIBS" - AC_TRY_LINK([$3],[$4], - [AC_MSG_RESULT(yes) - eval 'cf_cv_have_lib_'"$1"'=yes' - ], - [AC_MSG_RESULT(no) - CF_LIBRARY_PATH(cf_search,$2) - for cf_libdir in $cf_search - do - AC_MSG_CHECKING(for -l$1 in $cf_libdir) - LIBS="-L$cf_libdir -l$1 $cf_save_LIBS" - AC_TRY_LINK([$3],[$4], - [AC_MSG_RESULT(yes) - eval 'cf_cv_have_lib_'"$1"'=yes' - break], - [AC_MSG_RESULT(no) - LIBS="$cf_save_LIBS"]) - done - ]) - ]) -eval 'cf_found_library="[$]cf_cv_have_lib_'"$1"\" -ifelse($6,,[ -if test "$cf_found_library" = no ; then - AC_MSG_ERROR(Cannot link $1 library) -fi -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42 -dnl --------------- -dnl Find a library (specifically the linkage used in the code fragment), -dnl searching for it if it is not already in the library path. -dnl See also CF_ADD_SEARCHPATH. -dnl -dnl Parameters (4-on are optional): -dnl $1 = headers for library entrypoint -dnl $2 = code fragment for library entrypoint -dnl $3 = the library name without the "-l" option or ".so" suffix. -dnl $4 = action to perform if successful (default: update CPPFLAGS, etc) -dnl $5 = action to perform if not successful -dnl $6 = module name, if not the same as the library name -dnl $7 = extra libraries -dnl -dnl Sets these variables: -dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found -dnl $cf_cv_header_path_$3 - include-directory if needed -dnl $cf_cv_library_path_$3 - library-directory if needed -dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3 -AC_DEFUN([CF_FIND_LINKAGE],[ - -# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these -# will be set on completion of the AC_TRY_LINK below. -cf_cv_header_path_$3= -cf_cv_library_path_$3= - -CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)]) - -cf_save_LIBS="$LIBS" - -AC_TRY_LINK([$1],[$2],[ - cf_cv_find_linkage_$3=yes - cf_cv_header_path_$3=/usr/include - cf_cv_library_path_$3=/usr/lib -],[ - -LIBS="-l$3 $7 $cf_save_LIBS" - -AC_TRY_LINK([$1],[$2],[ - cf_cv_find_linkage_$3=yes - cf_cv_header_path_$3=/usr/include - cf_cv_library_path_$3=/usr/lib - cf_cv_library_file_$3="-l$3" -],[ - cf_cv_find_linkage_$3=no - LIBS="$cf_save_LIBS" - - CF_VERBOSE(find linkage for $3 library) - CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)]) - - cf_save_CPPFLAGS="$CPPFLAGS" - cf_test_CPPFLAGS="$CPPFLAGS" - - CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6])) - for cf_cv_header_path_$3 in $cf_search - do - if test -d "$cf_cv_header_path_$3" ; then - CF_VERBOSE(... testing $cf_cv_header_path_$3) - CPPFLAGS="$cf_save_CPPFLAGS" - CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3) - AC_TRY_COMPILE([$1],[$2],[ - CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3) - cf_cv_find_linkage_$3=maybe - cf_test_CPPFLAGS="$CPPFLAGS" - break],[ - CPPFLAGS="$cf_save_CPPFLAGS" - ]) - fi - done - - if test "$cf_cv_find_linkage_$3" = maybe ; then - - CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)]) - - cf_save_LIBS="$LIBS" - cf_save_LDFLAGS="$LDFLAGS" - - ifelse([$6],,,[ - CPPFLAGS="$cf_test_CPPFLAGS" - LIBS="-l$3 $7 $cf_save_LIBS" - AC_TRY_LINK([$1],[$2],[ - CF_VERBOSE(... found $3 library in system) - cf_cv_find_linkage_$3=yes]) - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - ]) - - if test "$cf_cv_find_linkage_$3" != yes ; then - CF_LIBRARY_PATH(cf_search,$3) - for cf_cv_library_path_$3 in $cf_search - do - if test -d "$cf_cv_library_path_$3" ; then - CF_VERBOSE(... testing $cf_cv_library_path_$3) - CPPFLAGS="$cf_test_CPPFLAGS" - LIBS="-l$3 $7 $cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3" - AC_TRY_LINK([$1],[$2],[ - CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3) - cf_cv_find_linkage_$3=yes - cf_cv_library_file_$3="-l$3" - break],[ - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS" - ]) - fi - done - CPPFLAGS="$cf_save_CPPFLAGS" - LDFLAGS="$cf_save_LDFLAGS" - fi - - else - cf_cv_find_linkage_$3=no - fi - ],$7) -]) - -LIBS="$cf_save_LIBS" - -if test "$cf_cv_find_linkage_$3" = yes ; then -ifelse([$4],,[ - CF_ADD_INCDIR($cf_cv_header_path_$3) - CF_ADD_LIBDIR($cf_cv_library_path_$3) - CF_ADD_LIB($3) -],[$4]) -else -ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20 -dnl --------------- -dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's -dnl "-Werror" flags can interfere with configure-checks. Those go into -dnl EXTRA_CFLAGS. -dnl -dnl $1 = variable name to repair -define([CF_FIX_WARNINGS],[ -if test "$GCC" = yes || test "$GXX" = yes -then - case [$]$1 in - (*-Werror=*) - CF_VERBOSE(repairing $1: [$]$1) - cf_temp_flags= - for cf_temp_scan in [$]$1 - do - case "x$cf_temp_scan" in - (x-Werror=*) - CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan) - ;; - (*) - CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan) - ;; - esac - done - $1="$cf_temp_flags" - CF_VERBOSE(... fixed [$]$1) - CF_VERBOSE(... extra $EXTRA_CFLAGS) - ;; - esac -fi -AC_SUBST(EXTRA_CFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09 -dnl -------------- -dnl Forget that we saw the given tool. -AC_DEFUN([CF_FORGET_TOOL],[ -unset ac_cv_prog_ac_ct_$1 -unset ac_ct_$1 -unset $1 -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_WAIT version: 4 updated: 2021/01/02 09:31:20 -dnl ------------ -dnl Test for the presence of <sys/wait.h>, 'union wait', arg-type of 'wait()' -dnl and/or 'waitpid()'. -dnl -dnl Note that we cannot simply grep for 'union wait' in the wait.h file, -dnl because some Posix systems turn this on only when a BSD variable is -dnl defined. -dnl -dnl I don't use AC_HEADER_SYS_WAIT, because it defines HAVE_SYS_WAIT_H, which -dnl would conflict with an attempt to test that header directly. -dnl -AC_DEFUN([CF_FUNC_WAIT], -[ -AC_REQUIRE([CF_UNION_WAIT]) -if test "$cf_cv_type_unionwait" = yes; then - - AC_MSG_CHECKING(if union wait can be used as wait-arg) - AC_CACHE_VAL(cf_cv_arg_union_wait,[ - AC_TRY_COMPILE($cf_wait_headers, - [union wait x; wait(&x)], - [cf_cv_arg_union_wait=yes], - [cf_cv_arg_union_wait=no]) - ]) - AC_MSG_RESULT($cf_cv_arg_union_wait) - test "$cf_cv_arg_union_wait" = yes && AC_DEFINE(WAIT_USES_UNION,1,[Define to 1 if wait() uses a union parameter]) - - AC_MSG_CHECKING(if union wait can be used as waitpid-arg) - AC_CACHE_VAL(cf_cv_arg_union_waitpid,[ - AC_TRY_COMPILE($cf_wait_headers, - [union wait x; waitpid(0, &x, 0)], - [cf_cv_arg_union_waitpid=yes], - [cf_cv_arg_union_waitpid=no]) - ]) - AC_MSG_RESULT($cf_cv_arg_union_waitpid) - test "$cf_cv_arg_union_waitpid" = yes && AC_DEFINE(WAITPID_USES_UNION,1,[Define to 1 if waitpid() uses a union parameter]) - -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50 -dnl ----------------- -dnl Test for availability of useful gcc __attribute__ directives to quiet -dnl compiler warnings. Though useful, not all are supported -- and contrary -dnl to documentation, unrecognized directives cause older compilers to barf. -AC_DEFUN([CF_GCC_ATTRIBUTES], -[AC_REQUIRE([AC_PROG_FGREP])dnl - -if test "$GCC" = yes || test "$GXX" = yes -then -cat > conftest.i <<EOF -#ifndef GCC_PRINTF -#define GCC_PRINTF 0 -#endif -#ifndef GCC_SCANF -#define GCC_SCANF 0 -#endif -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif -EOF -if test "$GCC" = yes -then - AC_CHECKING([for $CC __attribute__ directives]) -cat > "conftest.$ac_ext" <<EOF -#line __oline__ "${as_me:-configure}" -#include "confdefs.h" -#include "conftest.h" -#include "conftest.i" -#if GCC_PRINTF -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#if GCC_SCANF -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -extern void wow(char *,...) GCC_SCANFLIKE(1,2); -extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; -extern void foo(void) GCC_NORETURN; -int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; } -EOF - cf_printf_attribute=no - cf_scanf_attribute=no - for cf_attribute in scanf printf unused noreturn - do - CF_UPPER(cf_ATTRIBUTE,$cf_attribute) - cf_directive="__attribute__(($cf_attribute))" - echo "checking for $CC $cf_directive" 1>&AC_FD_CC - - case "$cf_attribute" in - (printf) - cf_printf_attribute=yes - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE 1 -EOF - ;; - (scanf) - cf_scanf_attribute=yes - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE 1 -EOF - ;; - (*) - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE $cf_directive -EOF - ;; - esac - - if AC_TRY_EVAL(ac_compile); then - test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute) - cat conftest.h >>confdefs.h - case "$cf_attribute" in - (noreturn) - AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc]) - ;; - (printf) - cf_value='/* nothing */' - if test "$cf_printf_attribute" != no ; then - cf_value='__attribute__((format(printf,fmt,var)))' - AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.]) - fi - AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc]) - ;; - (scanf) - cf_value='/* nothing */' - if test "$cf_scanf_attribute" != no ; then - cf_value='__attribute__((format(scanf,fmt,var)))' - AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.]) - fi - AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc]) - ;; - (unused) - AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc]) - ;; - esac - fi - done -else - ${FGREP-fgrep} define conftest.i >>confdefs.h -fi -rm -rf ./conftest* -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36 -dnl -------------- -dnl Find version of gcc, and (because icc/clang pretend to be gcc without being -dnl compatible), attempt to determine if icc/clang is actually used. -AC_DEFUN([CF_GCC_VERSION],[ -AC_REQUIRE([AC_PROG_CC]) -GCC_VERSION=none -if test "$GCC" = yes ; then - AC_MSG_CHECKING(version of $CC) - GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" - test -z "$GCC_VERSION" && GCC_VERSION=unknown - AC_MSG_RESULT($GCC_VERSION) -fi -CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS) -CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59 -dnl --------------- -dnl Check if the compiler supports useful warning options. There's a few that -dnl we don't use, simply because they're too noisy: -dnl -dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) -dnl -Winline (usually not worthwhile) -dnl -Wredundant-decls (system headers make this too noisy) -dnl -Wtraditional (combines too many unrelated messages, only a few useful) -dnl -Wwrite-strings (too noisy, but should review occasionally). This -dnl is enabled for ncurses using "--enable-const". -dnl -pedantic -dnl -dnl Parameter: -dnl $1 is an optional list of gcc warning flags that a particular -dnl application might want to use, e.g., "no-unused" for -dnl -Wno-unused -dnl Special: -dnl If $with_ext_const is "yes", add a check for -Wwrite-strings -dnl -AC_DEFUN([CF_GCC_WARNINGS], -[ -AC_REQUIRE([CF_GCC_VERSION]) -if test "x$have_x" = xyes; then CF_CONST_X_STRING fi -cat > "conftest.$ac_ext" <<EOF -#line __oline__ "${as_me:-configure}" -int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; } -EOF -if test "$INTEL_COMPILER" = yes -then -# The "-wdXXX" options suppress warnings: -# remark #1419: external declaration in primary source file -# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) -# remark #1684: conversion from pointer to same-sized integral type (potential portability problem) -# remark #193: zero used for undefined preprocessing identifier -# remark #593: variable "curs_sb_left_arrow" was set but never used -# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits -# remark #869: parameter "tw" was never referenced -# remark #981: operands are evaluated in unspecified order -# warning #279: controlling expression is constant - - AC_CHECKING([for $CC warning options]) - cf_save_CFLAGS="$CFLAGS" - EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall" - for cf_opt in \ - wd1419 \ - wd1683 \ - wd1684 \ - wd193 \ - wd593 \ - wd279 \ - wd810 \ - wd869 \ - wd981 - do - CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if AC_TRY_EVAL(ac_compile); then - test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) - EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" - fi - done - CFLAGS="$cf_save_CFLAGS" -elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown" -then - AC_CHECKING([for $CC warning options]) - cf_save_CFLAGS="$CFLAGS" - cf_warn_CONST="" - test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" - cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" - test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= - for cf_opt in W Wall \ - Wbad-function-cast \ - Wcast-align \ - Wcast-qual \ - Wdeclaration-after-statement \ - Wextra \ - Winline \ - Wmissing-declarations \ - Wmissing-prototypes \ - Wnested-externs \ - Wpointer-arith \ - Wshadow \ - Wstrict-prototypes \ - Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1 - do - CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if AC_TRY_EVAL(ac_compile); then - test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt) - case "$cf_opt" in - (Winline) - case "$GCC_VERSION" in - ([[34]].*) - CF_VERBOSE(feature is broken in gcc $GCC_VERSION) - continue;; - esac - ;; - (Wpointer-arith) - case "$GCC_VERSION" in - ([[12]].*) - CF_VERBOSE(feature is broken in gcc $GCC_VERSION) - continue;; - esac - ;; - esac - EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" - fi - done - CFLAGS="$cf_save_CFLAGS" -fi -rm -rf ./conftest* - -AC_SUBST(EXTRA_CFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41 -dnl ------------- -dnl Check if we must define _GNU_SOURCE to get a reasonable value for -dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect -dnl (or misfeature) of glibc2, which breaks portability of many applications, -dnl since it is interwoven with GNU extensions. -dnl -dnl Well, yes we could work around it... -dnl -dnl Parameters: -dnl $1 is the nominal value for _XOPEN_SOURCE -AC_DEFUN([CF_GNU_SOURCE], -[ -cf_gnu_xopen_source=ifelse($1,,500,$1) - -AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[ -AC_TRY_COMPILE([#include <sys/types.h>],[ - #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0 - return 0; - #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0 - return 0; - #else - # error not GNU C library - #endif], - [cf_cv_gnu_library=yes], - [cf_cv_gnu_library=no]) -]) - -if test x$cf_cv_gnu_library = xyes; then - - # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE - # was changed to help a little. newlib incorporated the change about 4 - # years later. - AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[ - cf_save="$CPPFLAGS" - CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE) - AC_TRY_COMPILE([#include <sys/types.h>],[ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2) - return 0; - #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3) - return 0; - #else - # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old - #endif], - [cf_cv_gnu_library_219=yes], - [cf_cv_gnu_library_219=no]) - CPPFLAGS="$cf_save" - ]) - - if test "x$cf_cv_gnu_library_219" = xyes; then - cf_save="$CPPFLAGS" - AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[ - CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source) - AC_TRY_COMPILE([ - #include <limits.h> - #include <sys/types.h> - ],[ - #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1) - return 0; - #else - # error GNU C library is too old - #endif], - [cf_cv_gnu_dftsrc_219=yes], - [cf_cv_gnu_dftsrc_219=no]) - ]) - test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save" - else - cf_cv_gnu_dftsrc_219=maybe - fi - - if test "x$cf_cv_gnu_dftsrc_219" != xyes; then - - AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[ - AC_TRY_COMPILE([#include <sys/types.h>],[ - #ifndef _XOPEN_SOURCE - #error expected _XOPEN_SOURCE to be defined - #endif], - [cf_cv_gnu_source=no], - [cf_save="$CPPFLAGS" - CF_ADD_CFLAGS(-D_GNU_SOURCE) - AC_TRY_COMPILE([#include <sys/types.h>],[ - #ifdef _XOPEN_SOURCE - #error expected _XOPEN_SOURCE to be undefined - #endif], - [cf_cv_gnu_source=no], - [cf_cv_gnu_source=yes]) - CPPFLAGS="$cf_save" - ]) - ]) - - if test "$cf_cv_gnu_source" = yes - then - AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[ - CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE) - AC_TRY_COMPILE([#include <sys/types.h>],[ - #ifdef _DEFAULT_SOURCE - #error expected _DEFAULT_SOURCE to be undefined - #endif], - [cf_cv_default_source=no], - [cf_cv_default_source=yes]) - ]) - if test "$cf_cv_default_source" = yes - then - CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE) - fi - fi - fi - -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_HEADERS_SH version: 1 updated: 2007/07/04 15:37:05 -dnl ------------- -dnl Setup variables needed to construct headers-sh -AC_DEFUN([CF_HEADERS_SH],[ -PACKAGE_PREFIX=$1 -PACKAGE_CONFIG=$2 -AC_SUBST(PACKAGE_PREFIX) -AC_SUBST(PACKAGE_CONFIG) -EXTRA_OUTPUT="$EXTRA_OUTPUT headers-sh:$srcdir/headers-sh.in" -]) -dnl --------------------------------------------------------------------------- -dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04 -dnl -------------- -dnl Construct a search-list of directories for a nonstandard header-file -dnl -dnl Parameters -dnl $1 = the variable to return as result -dnl $2 = the package name -AC_DEFUN([CF_HEADER_PATH], -[ -$1= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE) - cf_header_path_list="$cf_header_path_list [$]$1" - ;; - esac - done -fi - -# add the variations for the package we are looking for -CF_SUBDIR_PATH($1,$2,include) - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && $1="[$]$1 $includedir" - test -d "$includedir/$2" && $1="[$]$1 $includedir/$2" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && $1="[$]$1 $oldincludedir" - test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2" -} - -$1="[$]$1 $cf_header_path_list" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59 -dnl ----------------- -dnl Check if the given compiler is really the Intel compiler for Linux. It -dnl tries to imitate gcc, but does not return an error when it finds a mismatch -dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK. -dnl -dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to -dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from -dnl the wrappers for gcc and g++ warnings. -dnl -dnl $1 = GCC (default) or GXX -dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS -dnl $3 = CFLAGS (default) or CXXFLAGS -AC_DEFUN([CF_INTEL_COMPILER],[ -AC_REQUIRE([AC_CANONICAL_HOST]) -ifelse([$2],,INTEL_COMPILER,[$2])=no - -if test "$ifelse([$1],,[$1],GCC)" = yes ; then - case "$host_os" in - (linux*|gnu*) - AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler) - cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])" - ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc" - AC_TRY_COMPILE([],[ -#ifdef __INTEL_COMPILER -#else -make an error -#endif -],[ifelse([$2],,INTEL_COMPILER,[$2])=yes -cf_save_CFLAGS="$cf_save_CFLAGS -we147" -],[]) - ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS" - AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2])) - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48 -dnl ------------ -dnl Add checks for large file support. -AC_DEFUN([CF_LARGEFILE],[ -ifdef([AC_FUNC_FSEEKO],[ - AC_SYS_LARGEFILE - if test "$enable_largefile" != no ; then - AC_FUNC_FSEEKO - - # Normally we would collect these definitions in the config.h, - # but (like _XOPEN_SOURCE), some environments rely on having these - # defined before any of the system headers are included. Another - # case comes up with C++, e.g., on AIX the compiler compiles the - # header files by themselves before looking at the body files it is - # told to compile. For ncurses, those header files do not include - # the config.h - if test "$ac_cv_sys_large_files" != no - then - CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES) - fi - if test "$ac_cv_sys_largefile_source" != no - then - CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE) - fi - if test "$ac_cv_sys_file_offset_bits" != no - then - CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits) - fi - - AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[ - AC_TRY_COMPILE([ -#pragma GCC diagnostic error "-Wincompatible-pointer-types" -#include <sys/types.h> -#include <dirent.h> - ],[ - /* if transitional largefile support is setup, this is true */ - extern struct dirent64 * readdir(DIR *); - struct dirent64 *x = readdir((DIR *)0); - struct dirent *y = readdir((DIR *)0); - int z = x - y; - (void)z; - ], - [cf_cv_struct_dirent64=yes], - [cf_cv_struct_dirent64=no]) - ]) - test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64]) - fi -]) -]) -dnl --------------------------------------------------------------------------- -dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04 -dnl --------------- -dnl For the given system and compiler, find the compiler flags to pass to the -dnl loader to use the "rpath" feature. -AC_DEFUN([CF_LD_RPATH_OPT], -[ -AC_REQUIRE([CF_CHECK_CACHE]) - -LD_RPATH_OPT= -if test "x$cf_cv_enable_rpath" != xno -then - AC_MSG_CHECKING(for an rpath option) - case "$cf_cv_system_name" in - (irix*) - if test "$GCC" = yes; then - LD_RPATH_OPT="-Wl,-rpath," - else - LD_RPATH_OPT="-rpath " - fi - ;; - (linux*|gnu*|k*bsd*-gnu|freebsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (openbsd[[2-9]].*|mirbsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (dragonfly*) - LD_RPATH_OPT="-rpath " - ;; - (netbsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (osf*|mls+*) - LD_RPATH_OPT="-rpath " - ;; - (solaris2*) - LD_RPATH_OPT="-R" - ;; - (*) - ;; - esac - AC_MSG_RESULT($LD_RPATH_OPT) - - case "x$LD_RPATH_OPT" in - (x-R*) - AC_MSG_CHECKING(if we need a space after rpath option) - cf_save_LIBS="$LIBS" - CF_ADD_LIBS(${LD_RPATH_OPT}$libdir) - AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes) - LIBS="$cf_save_LIBS" - AC_MSG_RESULT($cf_rpath_space) - test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LD_SEARCHPATH version: 2 updated: 2019/09/26 20:34:14 -dnl ---------------- -dnl Try to obtain the linker's search-path, for use in scripts. -dnl -dnl Ignore LD_LIBRARY_PATH, etc. -AC_DEFUN([CF_LD_SEARCHPATH],[ -AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[ - -if test "$cross_compiling" != yes ; then - -# GNU binutils' ld does not involve permissions which may stop ldconfig. -cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u` - -# The -NX options tell newer versions of Linux ldconfig to not attempt to -# update the cache, which makes it run faster. -test -z "$cf_pathlist" && \ - cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u` - -test -z "$cf_pathlist" && - cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u` - -# This works with OpenBSD 6.5, which lists only filenames -test -z "$cf_pathlist" && - cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u` - -if test -z "$cf_pathlist" -then - # dyld default path with MacOS - if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin - then - # do this to bypass check - cf_cv_ld_searchpath='$HOME/lib' - cf_pathlist="/usr/local/lib /lib /usr/lib" - fi -fi - -if test -z "$cf_pathlist" -then - # Solaris is hardcoded - if test -d /opt/SUNWspro/lib - then - cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib" - elif test -d /usr/ccs/lib - then - cf_pathlist="/usr/ccs/lib /usr/lib" - fi -fi - -fi - -# If nothing else, assume it is conventional -test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib" - -# Finally, check that this is only directories -for cf_path in [$]0 $cf_pathlist -do - if test -d "$cf_path"; then - test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} " - cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}" - fi -done - -# Ensure that it is nonempty -test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib -]) - -LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'` -AC_SUBST(LD_SEARCHPATH) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04 -dnl --------------- -dnl Construct a search-list of directories for a nonstandard library-file -dnl -dnl Parameters -dnl $1 = the variable to return as result -dnl $2 = the package name -AC_DEFUN([CF_LIBRARY_PATH], -[ -$1= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE) - cf_library_path_list="$cf_library_path_list [$]$1" - ;; - esac - done -fi - -CF_SUBDIR_PATH($1,$2,lib) - -$1="$cf_library_path_list [$]$1" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09 -dnl ------------------ -AC_DEFUN([CF_LIBTOOL_VERSION],[ -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'` -else - cf_cv_libtool_version= -fi -test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04 -dnl ------------- -dnl Compute the library-prefix for the given host system -dnl $1 = variable to set -define([CF_LIB_PREFIX], -[ - case "$cf_cv_system_name" in - (OS/2*|os2*) - if test "$DFT_LWR_MODEL" = libtool; then - LIB_PREFIX='lib' - else - LIB_PREFIX='' - fi - ;; - (*-msvc*) - LIB_PREFIX='' - ;; - (*) LIB_PREFIX='lib' - ;; - esac -ifelse($1,,,[$1=$LIB_PREFIX]) - AC_SUBST(LIB_PREFIX) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59 -dnl ------------- -dnl Compute the library file-suffix from the given model name -dnl $1 = model name -dnl $2 = variable to set (the nominal library suffix) -dnl $3 = dependency variable to set (actual filename) -dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. -AC_DEFUN([CF_LIB_SUFFIX], -[ - case X$1 in - (Xlibtool) - $2='.la' - $3=[$]$2 - ;; - (Xdebug) - case "$cf_cv_system_name" in - (*-msvc*) - $2='_g.lib' - ;; - (*) - $2='_g.a' - ;; - esac - $3=[$]$2 - ;; - (Xprofile) - case "$cf_cv_system_name" in - (*-msvc*) - $2='_p.lib' - ;; - (*) - $2='_p.a' - ;; - esac - $3=[$]$2 - ;; - (Xshared) - case "$cf_cv_system_name" in - (aix[[5-7]]*) - $2='.so' - $3=[$]$2 - ;; - (*-msvc*) - $2='.dll' - $3='.dll.lib' - ;; - (cygwin*|msys*|mingw*) - $2='.dll' - $3='.dll.a' - ;; - (darwin*) - $2='.dylib' - $3=[$]$2 - ;; - (hpux*) - case "$target" in - (ia64*) - $2='.so' - $3=[$]$2 - ;; - (*) - $2='.sl' - $3=[$]$2 - ;; - esac - ;; - (*) - $2='.so' - $3=[$]$2 - ;; - esac - ;; - (*) - case "$target" in - (*-msvc*) - $2='.lib' - ;; - (*) - $2='.a' - ;; - esac - $3=[$]$2 - ;; - esac - if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}" - then - $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}" - $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}" - fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49 -dnl ------------ -dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make' -dnl options to lower-levels. It's very useful for "make -n" -- if we have it. -dnl (GNU 'make' does both, something POSIX 'make', which happens to make the -dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-) -AC_DEFUN([CF_MAKEFLAGS], -[AC_REQUIRE([AC_PROG_FGREP])dnl - -AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[ - cf_cv_makeflags='' - for cf_option in '-${MAKEFLAGS}' '${MFLAGS}' - do - cat >cf_makeflags.tmp <<CF_EOF -SHELL = $SHELL -all : - @ echo '.$cf_option' -CF_EOF - cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ ]]*$,,'` - case "$cf_result" in - (.*k|.*kw) - cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`" - case "$cf_result" in - (.*CC=*) cf_cv_makeflags= - ;; - (*) cf_cv_makeflags=$cf_option - ;; - esac - break - ;; - (.-) - ;; - (*) - CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\") - ;; - esac - done - rm -f cf_makeflags.tmp -]) - -AC_SUBST(cf_cv_makeflags) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32 -dnl ------------ -dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have -dnl a monocase filesystem. -AC_DEFUN([CF_MAKE_TAGS],[ -AC_REQUIRE([CF_MIXEDCASE_FILENAMES]) - -AC_CHECK_PROGS(CTAGS, exctags ctags) -AC_CHECK_PROGS(ETAGS, exetags etags) - -AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no) - -if test "$cf_cv_mixedcase" = yes ; then - AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no) -else - MAKE_UPPER_TAGS=no -fi - -if test "$MAKE_UPPER_TAGS" = yes ; then - MAKE_UPPER_TAGS= -else - MAKE_UPPER_TAGS="#" -fi - -if test "$MAKE_LOWER_TAGS" = yes ; then - MAKE_LOWER_TAGS= -else - MAKE_LOWER_TAGS="#" -fi - -AC_SUBST(CTAGS) -AC_SUBST(ETAGS) - -AC_SUBST(MAKE_UPPER_TAGS) -AC_SUBST(MAKE_LOWER_TAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20 -dnl ----------- -dnl Checks for libraries. At least one UNIX system, Apple Macintosh -dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler -dnl AC_CHECK_LIB(m,sin), because that fails for C++. -AC_DEFUN([CF_MATH_LIB], -[ -AC_CACHE_CHECK(if -lm needed for math functions, - cf_cv_need_libm,[ - AC_TRY_LINK([ - #include <stdio.h> - #include <stdlib.h> - #include <math.h> - ], - [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)], - [cf_cv_need_libm=no], - [cf_cv_need_libm=yes])]) -if test "$cf_cv_need_libm" = yes -then -ifelse($1,,[ - CF_ADD_LIB(m) -],[$1=-lm]) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_MBSTATE_T version: 5 updated: 2020/03/19 20:23:48 -dnl ------------ -dnl Check if mbstate_t is declared, and if so, which header file. -dnl This (including wchar.h) is needed on Tru64 5.0 to declare mbstate_t, -dnl as well as include stdio.h to work around a misuse of varargs in wchar.h -AC_DEFUN([CF_MBSTATE_T], -[ -AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_mbstate_t,[ -AC_TRY_COMPILE([ -#include <stdlib.h> -#include <stdio.h> -#ifdef HAVE_LIBUTF8_H -#include <libutf8.h> -#endif], - [mbstate_t state; (void)state], - [cf_cv_mbstate_t=no], - [AC_TRY_COMPILE([ -#include <stdlib.h> -#include <stdio.h> -#include <wchar.h> -#ifdef HAVE_LIBUTF8_H -#include <libutf8.h> -#endif], - [mbstate_t value; (void)value], - [cf_cv_mbstate_t=yes], - [cf_cv_mbstate_t=unknown])])]) - -if test "$cf_cv_mbstate_t" = yes ; then - AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h]) -fi - -if test "$cf_cv_mbstate_t" != unknown ; then - AC_DEFINE(HAVE_MBSTATE_T,1,[Define to 1 if mbstate_t is declared]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MERGE_EXTRA_CFLAGS version: 2 updated: 2021/01/02 09:31:20 -dnl --------------------- -dnl CF_FIX_WARNINGS moves problematic flags into EXTRA_CFLAGS, but some scripts -dnl may depend on being able to override that variable at build-time. Move it -dnl all back. -define([CF_MERGE_EXTRA_CFLAGS],[ -if test "$GCC" = yes || test "$GXX" = yes -then - CF_APPEND_TEXT(CFLAGS,$EXTRA_CFLAGS) - EXTRA_CFLAGS= -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59 -dnl ---------------------- -dnl Check if the file-system supports mixed-case filenames. If we're able to -dnl create a lowercase name and see it as uppercase, it doesn't support that. -AC_DEFUN([CF_MIXEDCASE_FILENAMES], -[ -AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ -if test "$cross_compiling" = yes ; then - case "$target_alias" in - (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*) - cf_cv_mixedcase=no - ;; - (*) - cf_cv_mixedcase=yes - ;; - esac -else - rm -f conftest CONFTEST - echo test >conftest - if test -f CONFTEST ; then - cf_cv_mixedcase=no - else - cf_cv_mixedcase=yes - fi - rm -f conftest CONFTEST -fi -]) -test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32 -dnl ---------- -dnl Write a debug message to config.log, along with the line number in the -dnl configure script. -AC_DEFUN([CF_MSG_LOG],[ -echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_CC_CHECK version: 5 updated: 2020/12/31 20:19:42 -dnl ------------------- -dnl Check if we can compile with ncurses' header file -dnl $1 is the cache variable to set -dnl $2 is the header-file to include -dnl $3 is the root name (ncurses or ncursesw) -AC_DEFUN([CF_NCURSES_CC_CHECK],[ - AC_TRY_COMPILE([ -]ifelse($3,ncursesw,[ -#define _XOPEN_SOURCE_EXTENDED -#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */ -#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */ -])[ -#include <$2>],[ -#ifdef NCURSES_VERSION -]ifelse($3,ncursesw,[ -#ifndef WACS_BSSB - make an error -#endif -])[ -printf("%s\\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\\n"); -#else - make an error -#endif -#endif - ] - ,[$1=$2] - ,[$1=no]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_CONFIG version: 26 updated: 2021/01/03 08:05:37 -dnl ----------------- -dnl Tie together the configure-script macros for ncurses, preferring these in -dnl order: -dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG -dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG -dnl c) just plain libraries -dnl -dnl $1 is the root library name (default: "ncurses") -AC_DEFUN([CF_NCURSES_CONFIG],[ -AC_REQUIRE([CF_PKG_CONFIG]) -cf_ncuconfig_root=ifelse($1,,ncurses,$1) -cf_have_ncuconfig=no - -if test "x${PKG_CONFIG:=none}" != xnone; then - AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root) - if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then - AC_MSG_RESULT(yes) - - AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work) - cf_have_ncuconfig=unknown - - cf_save_CFLAGS="$CFLAGS" - cf_save_CPPFLAGS="$CPPFLAGS" - cf_save_LIBS="$LIBS" - - cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`" - cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`" - - # while -W for passing linker flags is prevalent, it is not "standard". - # At least one wrapper for c89/c99 (in Apple's xcode) has its own - # incompatible _and_ non-standard -W option which gives an error. Work - # around that pitfall. - case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in - (x*c[[89]]9@@*-W*) - CF_ADD_CFLAGS($cf_pkg_cflags) - CF_ADD_LIBS($cf_pkg_libs) - - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr(); mousemask(0,0); tigetstr((char *)0);], - [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); }], - [cf_test_ncuconfig=yes], - [cf_test_ncuconfig=no], - [cf_test_ncuconfig=maybe])], - [cf_test_ncuconfig=no]) - - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - - if test "x$cf_test_ncuconfig" != xyes; then - cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^ ]]*//g'` - cf_pkg_cflags="$cf_temp" - cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^ ]]*//g'` - cf_pkg_libs="$cf_temp" - fi - ;; - esac - - CF_ADD_CFLAGS($cf_pkg_cflags) - CF_ADD_LIBS($cf_pkg_libs) - - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr(); mousemask(0,0); tigetstr((char *)0);], - [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); }], - [cf_have_ncuconfig=yes], - [cf_have_ncuconfig=no], - [cf_have_ncuconfig=maybe])], - [cf_have_ncuconfig=no]) - AC_MSG_RESULT($cf_have_ncuconfig) - test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes - if test "$cf_have_ncuconfig" != "yes" - then - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - NCURSES_CONFIG_PKG=none - else - AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) - NCURSES_CONFIG_PKG=$cf_ncuconfig_root - CF_TERM_HEADER - fi - - else - AC_MSG_RESULT(no) - NCURSES_CONFIG_PKG=none - fi -else - NCURSES_CONFIG_PKG=none -fi - -if test "x$cf_have_ncuconfig" = "xno"; then - cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}" - - CF_ACVERSION_CHECK(2.52, - [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)], - [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)]) - - if test "$NCURSES_CONFIG" != none ; then - - CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`) - CF_ADD_LIBS(`$NCURSES_CONFIG --libs`) - - # even with config script, some packages use no-override for curses.h - CF_CURSES_HEADER(ifelse($1,,ncurses,$1)) - - dnl like CF_NCURSES_CPPFLAGS - AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) - - dnl like CF_NCURSES_LIBS - CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root) - AC_DEFINE_UNQUOTED($cf_nculib_ROOT) - - dnl like CF_NCURSES_VERSION - cf_cv_ncurses_version="`$NCURSES_CONFIG --version`" - - else - - CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1)) - CF_NCURSES_LIBS(ifelse($1,,ncurses,$1)) - - fi -else - NCURSES_CONFIG=none -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_CPPFLAGS version: 22 updated: 2021/01/02 09:31:20 -dnl ------------------- -dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting -dnl the CPPFLAGS variable so we can include its header. -dnl -dnl The header files may be installed as either curses.h, or ncurses.h (would -dnl be obsolete, except that some packagers prefer this name to distinguish it -dnl from a "native" curses implementation). If not installed for overwrite, -dnl the curses.h file would be in an ncurses subdirectory (e.g., -dnl /usr/include/ncurses), but someone may have installed overwriting the -dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd -dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in -dnl the header. -dnl -dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header -dnl is already in the include-path, don't even bother with this, since we cannot -dnl easily determine which file it is. In this case, it has to be <curses.h>. -dnl -dnl The optional parameter gives the root name of the library, in case it is -dnl not installed as the default curses library. That is how the -dnl wide-character version of ncurses is installed. -AC_DEFUN([CF_NCURSES_CPPFLAGS], -[AC_REQUIRE([CF_WITH_CURSES_DIR]) - -AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl -cf_ncuhdr_root=ifelse($1,,ncurses,$1) - -test -n "$cf_cv_curses_dir" && \ -test "$cf_cv_curses_dir" != "no" && { \ - CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root) -} - -AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[ - cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h" - { test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h" - for cf_header in $cf_header_list - do - CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1) - test "$cf_cv_ncurses_h" != no && break - done -]) - -CF_NCURSES_HEADER -CF_TERM_HEADER - -# some applications need this, but should check for NCURSES_VERSION -AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) - -CF_NCURSES_VERSION -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_HEADER version: 7 updated: 2021/01/04 19:33:05 -dnl ----------------- -dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common -dnl variations of ncurses' installs. -dnl -dnl See also CF_CURSES_HEADER, which sets the same cache variable. -AC_DEFUN([CF_NCURSES_HEADER],[ - -if test "$cf_cv_ncurses_h" != no ; then - cf_cv_ncurses_header=$cf_cv_ncurses_h -else - -AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[ - test -n "$verbose" && echo - CF_HEADER_PATH(cf_search,$cf_ncuhdr_root) - test -n "$verbose" && echo "search path $cf_search" - cf_save2_CPPFLAGS="$CPPFLAGS" - for cf_incdir in $cf_search - do - CF_ADD_INCDIR($cf_incdir) - for cf_header in \ - ncurses.h \ - curses.h - do - CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1) - if test "$cf_cv_ncurses_h2" != no ; then - cf_cv_ncurses_h2=$cf_incdir/$cf_header - test -n "$verbose" && echo $ECHO_N " ... found $ECHO_C" 1>&AC_FD_MSG - break - fi - test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG - done - CPPFLAGS="$cf_save2_CPPFLAGS" - test "$cf_cv_ncurses_h2" != no && break - done - test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found) - ]) - - CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2) - cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`" - if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then - cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header" - fi - CF_ADD_INCDIR($cf_1st_incdir) - -fi - -# Set definitions to allow ifdef'ing for ncurses.h - -case "$cf_cv_ncurses_header" in -(*ncurses.h) - AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h]) - ;; -esac - -case "$cf_cv_ncurses_header" in -(ncurses/curses.h|ncurses/ncurses.h) - AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h]) - ;; -(ncursesw/curses.h|ncursesw/ncurses.h) - AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h]) - ;; -esac - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37 -dnl --------------- -dnl Look for the ncurses library. This is a little complicated on Linux, -dnl because it may be linked with the gpm (general purpose mouse) library. -dnl Some distributions have gpm linked with (bsd) curses, which makes it -dnl unusable with ncurses. However, we don't want to link with gpm unless -dnl ncurses has a dependency, since gpm is normally set up as a shared library, -dnl and the linker will record a dependency. -dnl -dnl The optional parameter gives the root name of the library, in case it is -dnl not installed as the default curses library. That is how the -dnl wide-character version of ncurses is installed. -AC_DEFUN([CF_NCURSES_LIBS], -[AC_REQUIRE([CF_NCURSES_CPPFLAGS]) - -cf_nculib_root=ifelse($1,,ncurses,$1) - # This works, except for the special case where we find gpm, but - # ncurses is in a nonstandard location via $LIBS, and we really want - # to link gpm. -cf_ncurses_LIBS="" -cf_ncurses_SAVE="$LIBS" -AC_CHECK_LIB(gpm,Gpm_Open, - [AC_CHECK_LIB(gpm,initscr, - [LIBS="$cf_ncurses_SAVE"], - [cf_ncurses_LIBS="-lgpm"])]) - -case "$host_os" in -(freebsd*) - # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). - if test "$cf_nculib_root" = ncurses ; then - AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"]) - fi - ;; -esac - -CF_ADD_LIBS($cf_ncurses_LIBS) - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - CF_ADD_LIBS(-l$cf_nculib_root) -else - CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root, - [#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr()], - initscr) -fi - -if test -n "$cf_ncurses_LIBS" ; then - AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS) - cf_ncurses_SAVE="$LIBS" - for p in $cf_ncurses_LIBS ; do - q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"` - if test "$q" != "$LIBS" ; then - LIBS="$q" - fi - done - AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>], - [initscr(); mousemask(0,0); tigetstr((char *)0);], - [AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) - LIBS="$cf_ncurses_SAVE"]) -fi - -CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root) -AC_DEFINE_UNQUOTED($cf_nculib_ROOT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41 -dnl ------------------- -dnl Use this followup check to ensure that we link with pthreads if ncurses -dnl uses it. -AC_DEFUN([CF_NCURSES_PTHREADS],[ -: ${cf_nculib_root:=ifelse($1,,ncurses,$1)} -AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads, - cf_cv_ncurses_pthreads=yes, - cf_cv_ncurses_pthreads=no) -if test "$cf_cv_ncurses_pthreads" = yes -then - CF_ADD_LIBS(-lpthread) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_VERSION version: 16 updated: 2020/12/31 20:19:42 -dnl ------------------ -dnl Check for the version of ncurses, to aid in reporting bugs, etc. -dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use -dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi. -AC_DEFUN([CF_NCURSES_VERSION], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl -AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[ - cf_cv_ncurses_version=no - cf_tempfile=out$$ - rm -f "$cf_tempfile" - AC_TRY_RUN([ -#include <${cf_cv_ncurses_header:-curses.h}> -#include <stdio.h> -int main(void) -{ - FILE *fp = fopen("$cf_tempfile", "w"); -#ifdef NCURSES_VERSION -# ifdef NCURSES_VERSION_PATCH - fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); -# else - fprintf(fp, "%s\\n", NCURSES_VERSION); -# endif -#else -# ifdef __NCURSES_H - fprintf(fp, "old\\n"); -# else - make an error -# endif -#endif - ${cf_cv_main_return:-return}(0); -}],[ - cf_cv_ncurses_version=`cat $cf_tempfile`],,[ - - # This will not work if the preprocessor splits the line after the - # Autoconf token. The 'unproto' program does that. - cat > "conftest.$ac_ext" <<EOF -#include <${cf_cv_ncurses_header:-curses.h}> -#undef Autoconf -#ifdef NCURSES_VERSION -Autoconf NCURSES_VERSION -#else -#ifdef __NCURSES_H -Autoconf "old" -#endif -; -#endif -EOF - cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out" - AC_TRY_EVAL(cf_try) - if test -f conftest.out ; then - cf_out=`sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%' conftest.out` - test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" - rm -f conftest.out - fi -]) - rm -f "$cf_tempfile" -]) -test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NL_LANGINFO_1STDAY version: 3 updated: 2020/03/19 20:23:48 -dnl --------------------- -dnl glibc locale support has runtime extensions which might be implemented in -dnl other systems. -AC_DEFUN([CF_NL_LANGINFO_1STDAY],[ -AC_CACHE_CHECK(if runtime has nl_langinfo support for first weekday, - cf_nl_langinfo_1stday,[ - AC_TRY_COMPILE([ -#include <langinfo.h> -#include <locale.h> -],[ - int first_weekday = nl_langinfo (_NL_TIME_FIRST_WEEKDAY)[0]; - long week_1stday_l = (long) nl_langinfo (_NL_TIME_WEEK_1STDAY); - (void) first_weekday; - (void) week_1stday_l; -],[cf_nl_langinfo_1stday=yes -],[cf_nl_langinfo_1stday=no -]) -]) -test "x$cf_nl_langinfo_1stday" = xyes && AC_DEFINE(HAVE_NL_LANGINFO_1STDAY,1,[Define to 1 if runtime has nl_langinfo support for first weekday]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09 -dnl ------------------ -dnl see CF_WITH_NO_LEAKS -AC_DEFUN([CF_NO_LEAKS_OPTION],[ -AC_MSG_CHECKING(if you want to use $1 for testing) -AC_ARG_WITH($1, - [$2], - [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[ - $4 -]) - : "${with_cflags:=-g}" - : "${enable_leaks:=no}" - with_$1=yes], - [with_$1=]) -AC_MSG_RESULT(${with_$1:-no}) - -case ".$with_cflags" in -(.*-g*) - case .$CFLAGS in - (.*-g*) - ;; - (*) - CF_ADD_CFLAGS([-g]) - ;; - esac - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04 -dnl ---------------- -dnl Check if the given variable is a number. If not, report an error. -dnl $1 is the variable -dnl $2 is the message -AC_DEFUN([CF_NUMBER_SYNTAX],[ -if test -n "$1" ; then - case $1 in - ([[0-9]]*) - ;; - (*) - AC_MSG_ERROR($2 is not a number: $1) - ;; - esac -else - AC_MSG_ERROR($2 value is empty) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_OUR_MESSAGES version: 8 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Check if we use the messages included with this program -dnl -dnl $1 specifies either Makefile or makefile, defaulting to the former. -dnl -dnl Sets variables which can be used to substitute in makefiles: -dnl MSG_DIR_MAKE - to make ./po directory -dnl SUB_MAKEFILE - makefile in ./po directory (see CF_BUNDLED_INTL) -dnl -AC_DEFUN([CF_OUR_MESSAGES], -[ -cf_makefile=ifelse($1,,Makefile,$1) - -use_our_messages=no -if test "$USE_NLS" = yes ; then -if test -d "$srcdir/po" ; then -AC_MSG_CHECKING(if we should use included message-library) - AC_ARG_ENABLE(included-msgs, - [ --disable-included-msgs use included messages, for i18n support], - [use_our_messages=$enableval], - [use_our_messages=yes]) -fi -AC_MSG_RESULT($use_our_messages) -fi - -MSG_DIR_MAKE="#" -if test "$use_our_messages" = yes -then - SUB_MAKEFILE="$SUB_MAKEFILE po/$cf_makefile.in:$srcdir/po/$cf_makefile.inn" - MSG_DIR_MAKE= -fi - -AC_SUBST(MSG_DIR_MAKE) -AC_SUBST(SUB_MAKEFILE) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04 -dnl ---------- -dnl Provide a value for the $PATH and similar separator (or amend the value -dnl as provided in autoconf 2.5x). -AC_DEFUN([CF_PATHSEP], -[ - AC_MSG_CHECKING(for PATH separator) - case "$cf_cv_system_name" in - (os2*) PATH_SEPARATOR=';' ;; - (*) ${PATH_SEPARATOR:=':'} ;; - esac -ifelse([$1],,,[$1=$PATH_SEPARATOR]) - AC_SUBST(PATH_SEPARATOR) - AC_MSG_RESULT($PATH_SEPARATOR) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20 -dnl -------------- -dnl Check the argument to see that it looks like a pathname. Rewrite it if it -dnl begins with one of the prefix/exec_prefix variables, and then again if the -dnl result begins with 'NONE'. This is necessary to work around autoconf's -dnl delayed evaluation of those symbols. -AC_DEFUN([CF_PATH_SYNTAX],[ -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".[$]$1" in -(.\[$]\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX - ;; -(.\[$]\{*prefix\}*|.\[$]\{*dir\}*) - eval $1="[$]$1" - case ".[$]$1" in - (.NONE/*) - $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PDCURSES_X11 version: 15 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Configure for PDCurses' X11 library -AC_DEFUN([CF_PDCURSES_X11],[ -AC_REQUIRE([CF_X_ATHENA]) - -CF_ACVERSION_CHECK(2.52, - [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)], - [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)]) - -if test "$XCURSES_CONFIG" != none ; then - -CF_ADD_CFLAGS(`$XCURSES_CONFIG --cflags`) -CF_ADD_LIBS(`$XCURSES_CONFIG --libs`) - -cf_cv_lib_XCurses=yes - -else - -LDFLAGS="$LDFLAGS $X_LIBS" -CF_CHECK_CFLAGS($X_CFLAGS) -AC_CHECK_LIB(X11,XOpenDisplay, - [CF_ADD_LIBS(-lX11)],, - [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS]) -AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[ -CF_ADD_LIBS(-lXCurses) -AC_TRY_LINK([ -#include <xcurses.h> -char *XCursesProgramName = "test"; -],[XCursesExit();], -[cf_cv_lib_XCurses=yes], -[cf_cv_lib_XCurses=no]) -]) - -fi - -if test "$cf_cv_lib_XCurses" = yes ; then - AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix]) - AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix]) - AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix])) -else - AC_MSG_ERROR(Cannot link with XCurses) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04 -dnl ------------- -dnl Check for the package-config program, unless disabled by command-line. -AC_DEFUN([CF_PKG_CONFIG], -[ -AC_MSG_CHECKING(if you want to use pkg-config) -AC_ARG_WITH(pkg-config, - [ --with-pkg-config{=path} enable/disable use of pkg-config], - [cf_pkg_config=$withval], - [cf_pkg_config=yes]) -AC_MSG_RESULT($cf_pkg_config) - -case "$cf_pkg_config" in -(no) - PKG_CONFIG=none - ;; -(yes) - CF_ACVERSION_CHECK(2.52, - [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)], - [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)]) - ;; -(*) - PKG_CONFIG=$withval - ;; -esac - -test -z "$PKG_CONFIG" && PKG_CONFIG=none -if test "$PKG_CONFIG" != none ; then - CF_PATH_SYNTAX(PKG_CONFIG) -elif test "x$cf_pkg_config" != xno ; then - AC_MSG_WARN(pkg-config is not installed) -fi - -AC_SUBST(PKG_CONFIG) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17 -dnl ----------------- -dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed. -dnl -dnl POSIX.1-1990 _POSIX_SOURCE -dnl POSIX.1-1990 and _POSIX_SOURCE and -dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2 -dnl Bindings Option -dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L -dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L -dnl X/Open 2000 _POSIX_C_SOURCE=200112L -dnl -dnl Parameters: -dnl $1 is the nominal value for _POSIX_C_SOURCE -AC_DEFUN([CF_POSIX_C_SOURCE], -[AC_REQUIRE([CF_POSIX_VISIBLE])dnl - -if test "$cf_cv_posix_visible" = no; then - -cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1]) - -cf_save_CFLAGS="$CFLAGS" -cf_save_CPPFLAGS="$CPPFLAGS" - -CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE) -CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE) - -AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[ - CF_MSG_LOG(if the symbol is already defined go no further) - AC_TRY_COMPILE([#include <sys/types.h>],[ -#ifndef _POSIX_C_SOURCE -make an error -#endif], - [cf_cv_posix_c_source=no], - [cf_want_posix_source=no - case .$cf_POSIX_C_SOURCE in - (.[[12]]??*) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - ;; - (.2) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - cf_want_posix_source=yes - ;; - (.*) - cf_want_posix_source=yes - ;; - esac - if test "$cf_want_posix_source" = yes ; then - AC_TRY_COMPILE([#include <sys/types.h>],[ -#ifdef _POSIX_SOURCE -make an error -#endif],[], - cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE") - fi - CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE) - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source) - CF_MSG_LOG(if the second compile does not leave our definition intact error) - AC_TRY_COMPILE([#include <sys/types.h>],[ -#ifndef _POSIX_C_SOURCE -make an error -#endif],, - [cf_cv_posix_c_source=no]) - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - ]) -]) - -if test "$cf_cv_posix_c_source" != no ; then - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - CF_ADD_CFLAGS($cf_cv_posix_c_source) -fi - -fi # cf_cv_posix_visible - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17 -dnl ---------------- -dnl POSIX documents test-macros which an application may set before any system -dnl headers are included to make features available. -dnl -dnl Some BSD platforms (originally FreeBSD, but copied by a few others) -dnl diverged from POSIX in 2002 by setting symbols which make all of the most -dnl recent features visible in the system header files unless the application -dnl overrides the corresponding test-macros. Doing that introduces portability -dnl problems. -dnl -dnl This macro makes a special check for the symbols used for this, to avoid a -dnl conflicting definition. -AC_DEFUN([CF_POSIX_VISIBLE], -[ -AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[ -AC_TRY_COMPILE([#include <stdio.h>],[ -#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \ - && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \ - && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \ - && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0) -#error conflicting symbols found -#endif -],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes]) -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22 -dnl ---------- -dnl Check for archiver "ar". -AC_DEFUN([CF_PROG_AR],[ -AC_CHECK_TOOL(AR, ar, ar) -]) -dnl --------------------------------------------------------------------------- -dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54 -dnl ---------- -dnl standard check for CC, plus followup sanity checks -dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name -AC_DEFUN([CF_PROG_CC],[ -CF_ACVERSION_CHECK(2.53, - [AC_MSG_WARN(this will incorrectly handle gnatgcc choice) - AC_REQUIRE([AC_PROG_CC])], - []) -ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)]) -CF_GCC_VERSION -CF_ACVERSION_CHECK(2.52, - [AC_PROG_CC_STDC], - [CF_ANSI_CC_REQD]) -CF_CC_ENV_FLAGS -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_EXT version: 15 updated: 2021/01/02 09:31:20 -dnl ----------- -dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX. -AC_DEFUN([CF_PROG_EXT], -[ -AC_REQUIRE([CF_CHECK_CACHE]) -case "$cf_cv_system_name" in -(os2*) - CFLAGS="$CFLAGS -Zmt" - CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__) - CXXFLAGS="$CXXFLAGS -Zmt" - # autoconf's macro sets -Zexe and suffix both, which conflict:w - LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" - ac_cv_exeext=.exe - ;; -esac - -AC_EXEEXT -AC_OBJEXT - -PROG_EXT="$EXEEXT" -AC_SUBST(PROG_EXT) -test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19 -dnl ------------- -dnl Check if groff is available, for cases (such as html output) where nroff -dnl is not enough. -AC_DEFUN([CF_PROG_GROFF],[ -AC_PATH_PROG(GROFF_PATH,groff,no) -AC_PATH_PROGS(NROFF_PATH,nroff mandoc,no) -AC_PATH_PROG(TBL_PATH,tbl,cat) -if test "x$GROFF_PATH" = xno -then - NROFF_NOTE= - GROFF_NOTE="#" -else - NROFF_NOTE="#" - GROFF_NOTE= -fi -AC_SUBST(GROFF_NOTE) -AC_SUBST(NROFF_NOTE) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37 -dnl ------------ -AC_DEFUN([CF_PROG_LINT], -[ -AC_CHECK_PROGS(LINT, lint cppcheck splint) -case "x$LINT" in -(xcppcheck|x*/cppcheck) - test -z "$LINT_OPTS" && LINT_OPTS="--enable=all" - ;; -esac -AC_SUBST(LINT_OPTS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37 -dnl ------------ -dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f" -dnl option if it is supported. -AC_DEFUN([CF_PROG_LN_S],[ -AC_PROG_LN_S -AC_MSG_CHECKING(if $LN_S -f options work) - -rm -f conf$$.src conf$$dst -echo >conf$$.dst -echo first >conf$$.src -if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then - cf_prog_ln_sf=yes -else - cf_prog_ln_sf=no -fi -rm -f conf$$.dst conf$$src -AC_MSG_RESULT($cf_prog_ln_sf) - -test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50 -dnl ---------------- -dnl Remove all -U and -D options that refer to the given symbol from a list -dnl of C compiler options. This works around the problem that not all -dnl compilers process -U and -D options from left-to-right, so a -U option -dnl cannot be used to cancel the effect of a preceding -D option. -dnl -dnl $1 = target (which could be the same as the source variable) -dnl $2 = source (including '$') -dnl $3 = symbol to remove -define([CF_REMOVE_DEFINE], -[ -$1=`echo "$2" | \ - sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \ - -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'` -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45 -dnl --------------------- -dnl Restore flags saved in CF_SAVE_XTRA_FLAGS -dnl $1 = name of current macro -define([CF_RESTORE_XTRA_FLAGS], -[ -LIBS="$cf_save_LIBS_$1" -CFLAGS="$cf_save_CFLAGS_$1" -CPPFLAGS="$cf_save_CPPFLAGS_$1" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50 -dnl ------------- -AC_DEFUN([CF_RPATH_HACK], -[AC_REQUIRE([AC_PROG_FGREP])dnl -AC_REQUIRE([CF_LD_RPATH_OPT])dnl - -AC_MSG_CHECKING(for updated LDFLAGS) -if test -n "$LD_RPATH_OPT" ; then - AC_MSG_RESULT(maybe) - - AC_CHECK_PROGS(cf_ldd_prog,ldd,no) - cf_rpath_list="/usr/lib /lib" - if test "$cf_ldd_prog" != no - then - cf_rpath_oops= - -AC_TRY_LINK([#include <stdio.h>], - [printf("Hello");], - [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq` - cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`]) - - # If we passed the link-test, but get a "not found" on a given library, - # this could be due to inept reconfiguration of gcc to make it only - # partly honor /usr/local/lib (or whatever). Sometimes this behavior - # is intentional, e.g., installing gcc in /usr/bin and suppressing the - # /usr/local libraries. - if test -n "$cf_rpath_oops" - then - for cf_rpath_src in $cf_rpath_oops - do - for cf_rpath_dir in \ - /usr/local \ - /usr/pkg \ - /opt/sfw - do - if test -f "$cf_rpath_dir/lib/$cf_rpath_src" - then - CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src) - LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" - break - fi - done - done - fi - fi - - CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS) - - CF_RPATH_HACK_2(LDFLAGS) - CF_RPATH_HACK_2(LIBS) - - CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS) -else - AC_MSG_RESULT(no) -fi -AC_SUBST(EXTRA_LDFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04 -dnl --------------- -dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to -dnl EXTRA_LDFLAGS for each -L option found. -dnl -dnl $cf_rpath_list contains a list of directories to ignore. -dnl -dnl $1 = variable name to update. The LDFLAGS variable should be the only one, -dnl but LIBS often has misplaced -L options. -AC_DEFUN([CF_RPATH_HACK_2], -[ -CF_VERBOSE(...checking $1 [$]$1) - -cf_rpath_dst= -for cf_rpath_src in [$]$1 -do - case "$cf_rpath_src" in - (-L*) - - # check if this refers to a directory which we will ignore - cf_rpath_skip=no - if test -n "$cf_rpath_list" - then - for cf_rpath_item in $cf_rpath_list - do - if test "x$cf_rpath_src" = "x-L$cf_rpath_item" - then - cf_rpath_skip=yes - break - fi - done - fi - - if test "$cf_rpath_skip" = no - then - # transform the option - if test "$LD_RPATH_OPT" = "-R " ; then - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` - else - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` - fi - - # if we have not already added this, add it now - cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` - if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" - then - CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp) - EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" - fi - fi - ;; - esac - cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" -done -$1=$cf_rpath_dst - -CF_VERBOSE(...checked $1 [$]$1) -AC_SUBST(EXTRA_LDFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44 -dnl ------------------ -dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers -dnl and libraries which do not update those variables. -dnl -dnl $1 = name of current macro -define([CF_SAVE_XTRA_FLAGS], -[ -cf_save_LIBS_$1="$LIBS" -cf_save_CFLAGS_$1="$CFLAGS" -cf_save_CPPFLAGS_$1="$CPPFLAGS" -LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}" -for cf_X_CFLAGS in $X_CFLAGS -do - case "x$cf_X_CFLAGS" in - x-[[IUD]]*) - CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS" - ;; - *) - CFLAGS="$CFLAGS $cf_X_CFLAGS" - ;; - esac -done -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SHARED_OPTS version: 105 updated: 2021/01/02 17:09:14 -dnl -------------- -dnl -------------- -dnl Attempt to determine the appropriate CC/LD options for creating a shared -dnl library. -dnl -dnl Notes: -dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within -dnl the build-tree, i.e., by making use of the libraries that are compiled in -dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the -dnl shared library since that can lead to unexpected results at runtime. -dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared -dnl libraries are compiled in ../../lib -dnl -dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure -dnl to install symbolic links to the rel/abi versions of shared libraries. -dnl -dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi -dnl version when making symbolic links. -dnl -dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library -dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix -dnl (ex: libncurses.so.<ver>). -dnl -dnl Some loaders leave 'so_locations' lying around. It's nice to clean up. -AC_DEFUN([CF_SHARED_OPTS], -[ - AC_REQUIRE([CF_LD_RPATH_OPT]) - - RM_SHARED_OPTS= - LOCAL_LDFLAGS= - LOCAL_LDFLAGS2= - LD_SHARED_OPTS= - INSTALL_LIB="-m 644" - : ${rel_builddir:=.} - - shlibdir=$libdir - AC_SUBST(shlibdir) - - MAKE_DLLS="#" - AC_SUBST(MAKE_DLLS) - - cf_cv_do_symlinks=no - cf_ld_rpath_opt= - test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT" - - AC_MSG_CHECKING(if release/abi version should be used for shared libs) - AC_ARG_WITH(shlib-version, - [ --with-shlib-version=X Specify rel or abi version for shared libs], - [test -z "$withval" && withval=auto - case "$withval" in - (yes) - cf_cv_shlib_version=auto - ;; - (rel|abi|auto) - cf_cv_shlib_version=$withval - ;; - (*) - AC_MSG_RESULT($withval) - AC_MSG_ERROR([option value must be one of: rel, abi, or auto]) - ;; - esac - ],[cf_cv_shlib_version=auto]) - AC_MSG_RESULT($cf_cv_shlib_version) - - cf_cv_rm_so_locs=no - cf_try_cflags= - - # Some less-capable ports of gcc support only -fpic - CC_SHARED_OPTS= - - cf_try_fPIC=no - if test "$GCC" = yes - then - cf_try_fPIC=yes - else - case "$cf_cv_system_name" in - (*linux*) # e.g., PGI compiler - cf_try_fPIC=yes - ;; - esac - fi - - if test "$cf_try_fPIC" = yes - then - AC_MSG_CHECKING(which $CC option to use) - cf_save_CFLAGS="$CFLAGS" - for CC_SHARED_OPTS in -fPIC -fpic '' - do - CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS" - AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[]) - done - AC_MSG_RESULT($CC_SHARED_OPTS) - CFLAGS="$cf_save_CFLAGS" - fi - - cf_cv_shlib_version_infix=no - - case "$cf_cv_system_name" in - (aix4.[3-9]*|aix[[5-7]]*) - if test "$GCC" = yes; then - CC_SHARED_OPTS='-Wl,-brtl' - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' - else - CC_SHARED_OPTS='-brtl' - # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall" - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@' - fi - ;; - (beos*) - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0' - ;; - (cygwin*) - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cf_cv_shlib_version=cygdll - cf_cv_shlib_version_infix=cygdll - shlibdir=$bindir - MAKE_DLLS= - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\[$]1 - IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \[$]SHARED_LIB - ** IMPORT_LIB \[$]IMPORT_LIB -EOF - exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (msys*) - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cf_cv_shlib_version=msysdll - cf_cv_shlib_version_infix=msysdll - shlibdir=$bindir - MAKE_DLLS= - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\[$]1 - IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \[$]SHARED_LIB - ** IMPORT_LIB \[$]IMPORT_LIB -EOF - exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (darwin*) - cf_try_cflags="no-cpp-precomp" - CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi - cf_cv_shlib_version_infix=yes - AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [ - cf_save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no) - LDFLAGS=$cf_save_LDFLAGS]) - if test "$cf_cv_ldflags_search_paths_first" = yes; then - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - fi - ;; - (hpux[[7-8]]*) - # HP-UX 8.07 ld lacks "+b" option used for libdir search-list - if test "$GCC" != yes; then - CC_SHARED_OPTS='+Z' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]' - INSTALL_LIB="-m 555" - ;; - (hpux*) - # (tested with gcc 2.7.2 -- I don't have c89) - if test "$GCC" = yes; then - LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}' - else - CC_SHARED_OPTS='+Z' - LD_SHARED_OPTS='-Wl,+b,${libdir}' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]' - # HP-UX shared libraries must be executable, and should be - # readonly to exploit a quirk in the memory manager. - INSTALL_LIB="-m 555" - ;; - (interix*) - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}' - else - cf_shared_soname='`basename $[@]`' - fi - CC_SHARED_OPTS= - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]' - ;; - (irix*) - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - # tested with IRIX 5.2 and 'cc'. - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]' - fi - cf_cv_rm_so_locs=yes - ;; - (linux*|gnu*|k*bsd*-gnu) - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - CF_SHARED_SONAME - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' - ;; - (mingw*msvc*) - cf_cv_shlib_version=msvcdll - cf_cv_shlib_version_infix=msvcdll - shlibdir=$bindir - MAKE_DLLS= - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-link -dll" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib" - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\[$]1 - IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\` - shift - my_ld=\[$]1 - shift - cat <<-EOF - Linking shared library - ** SHARED LIB \$SHARED_LIB - ** IMPORT_LIB \$IMPORT_LIB -EOF - args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g") - exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args - mv "\${IMPORT_LIB}" "\${IMPORT_LIB}" -CF_EOF - chmod +x mk_shared_lib.sh - cat >mk_prog.sh <<-CF_EOF - #!$SHELL - shift - # Ignore first argument (compiler) and use LD (link.exe) unconditionally - LD="[$]LD" - clopts=() - ldopts=("/subsystem:console") - libs=() - isdll=0 - while test \[$]# -gt 0; do - case "\[$]1" in - -link) - # ignore -link argument - ;; - -M[[TD]] | -M[[TD]]d) - # ignore runtime-library option - ;; - -dll) - isdll=1 - ;; - -W* | -w*) - # ignore warnings - ;; - -D*) - clopts+=("\[$]1") - ;; - -I*) - clopts+=("\[$]1") - ;; - -l*) - libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`") - ;; - -L*) - ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`") - ;; - *.obj | *.o) - ldopts+=("\[$]1") - ;; - -Wl,*) - for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do - ldopts+=("\[$]{linkarg}") - done - ;; - *.lib) - ldopts+=("\[$]1") - ;; - -o) - shift - ldopts+=("-out:\[$]1") - ;; - *) - clopts+=("\[$]1") - ldopts+=("\[$]1") - ;; - esac - shift - done - if [[ "\$isdll" -ne 0 ]]; then - for lib in \[$]{libs[[*]]}; do - ldopts+=("\[$]lib.dll.lib") - done - else - for lib in \[$]{libs[[*]]}; do - ldopts+=("\[$]lib.lib") - done - fi - cat <<-EOF - Creating program - ** ld options: "\[$]{ldopts[[@]]}" -EOF - exec \[$]LD \[$]{ldopts[[@]]} -CF_EOF - chmod +x mk_prog.sh - LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh" - LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh" - ;; - (mingw*) - cf_cv_shlib_version=mingw - cf_cv_shlib_version_infix=mingw - shlibdir=$bindir - MAKE_DLLS= - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,--enable-auto-import" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\[$]1 - IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \[$]SHARED_LIB - ** IMPORT_LIB \[$]IMPORT_LIB -EOF - exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (openbsd[[2-9]].*|mirbsd*) - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - CF_SHARED_SONAME - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' - ;; - (nskJ*) - CC_SHARED_OPTS= - MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]' - ;; - (nskL*) - CC_SHARED_OPTS= - MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]' - ;; - (nto-qnx*|openbsd*|freebsd[[12]].*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - (dragonfly*|freebsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then - LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - CF_SHARED_SONAME - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]' - ;; - (netbsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then - LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - if test "$cf_cv_shlib_version" = auto; then - if test -f /usr/libexec/ld.elf_so; then - cf_cv_shlib_version=abi - else - cf_cv_shlib_version=rel - fi - fi - CF_SHARED_SONAME - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]' - fi - ;; - (osf*|mls+*) - # tested with OSF/1 V3.2 and 'cc' - # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't - # link with shared libs). - MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`' - case "$host_os" in - (osf4*) - MK_SHARED_LIB="${MK_SHARED_LIB} -msym" - ;; - esac - MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]' - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - cf_cv_rm_so_locs=yes - ;; - (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98 - # tested with osr5.0.5 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-belf -KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@' - if test "$cf_cv_enable_rpath" = yes ; then - # only way is to set LD_RUN_PATH but no switch for it - RUN_PATH=$libdir - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - LINK_PROGS='LD_RUN_PATH=${libdir}' - LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib' - ;; - (sunos4*) - # tested with SunOS 4.1.1 and gcc 2.7.0 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - (solaris2*) - # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2 - # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3 - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS" - fi - CF_SHARED_SONAME - if test "$GCC" != yes; then - cf_save_CFLAGS="$CFLAGS" - for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O - do - CFLAGS="$cf_shared_opts $cf_save_CFLAGS" - AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break]) - done - CFLAGS="$cf_save_CFLAGS" - CC_SHARED_OPTS=$cf_shared_opts - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]' - fi - ;; - (sysv5uw7*|unix_sv*) - # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc) - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@' - ;; - (*) - CC_SHARED_OPTS='unknown' - MK_SHARED_LIB='echo unknown' - ;; - esac - - # This works if the last tokens in $MK_SHARED_LIB are the -o target. - case "$cf_cv_shlib_version" in - (rel|abi) - case "$MK_SHARED_LIB" in - (*'-o $[@]') - test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes - ;; - (*) - AC_MSG_WARN(ignored --with-shlib-version) - ;; - esac - ;; - esac - - if test -n "$cf_try_cflags" - then -cat > conftest.$ac_ext <<EOF -#line __oline__ "${as_me:-configure}" -#include <stdio.h> -int main(int argc, char *argv[[]]) -{ - printf("hello\\n"); - return (argv[[argc-1]] == 0) ; -} -EOF - cf_save_CFLAGS="$CFLAGS" - for cf_opt in $cf_try_cflags - do - CFLAGS="$cf_save_CFLAGS -$cf_opt" - AC_MSG_CHECKING(if CFLAGS option -$cf_opt works) - if AC_TRY_EVAL(ac_compile); then - AC_MSG_RESULT(yes) - cf_save_CFLAGS="$CFLAGS" - else - AC_MSG_RESULT(no) - fi - done - CFLAGS="$cf_save_CFLAGS" - fi - - - # RPATH_LIST is a colon-separated list of directories - test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" - test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" - - test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" - - CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS) - CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) - - AC_SUBST(CC_SHARED_OPTS) - AC_SUBST(LD_RPATH_OPT) - AC_SUBST(LD_SHARED_OPTS) - AC_SUBST(MK_SHARED_LIB) - AC_SUBST(RM_SHARED_OPTS) - - AC_SUBST(LINK_PROGS) - AC_SUBST(LINK_TESTS) - - AC_SUBST(EXTRA_LDFLAGS) - AC_SUBST(LOCAL_LDFLAGS) - AC_SUBST(LOCAL_LDFLAGS2) - - AC_SUBST(INSTALL_LIB) - AC_SUBST(RPATH_LIST) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43 -dnl ---------------- -dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for -dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar) -dnl option. -dnl -dnl $1 is the default that should be used for "$cf_cv_shlib_version". -dnl If missing, use "rel". -define([CF_SHARED_SONAME], -[ - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1) - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $[@]`' - fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04 -dnl ------------- -dnl Check for definitions & structures needed for window size-changing -dnl -dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952 -AC_DEFUN([CF_SIZECHANGE], -[ -AC_REQUIRE([CF_STRUCT_TERMIOS]) -AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[ - cf_cv_sizechange=unknown - cf_save_CPPFLAGS="$CPPFLAGS" - -for cf_opts in "" "NEED_PTEM_H" -do - - CPPFLAGS="$cf_save_CPPFLAGS" - if test -n "$cf_opts" - then - CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts) - fi - AC_TRY_COMPILE([#include <sys/types.h> -#ifdef HAVE_TERMIOS_H -#include <termios.h> -#else -#ifdef HAVE_TERMIO_H -#include <termio.h> -#endif -#endif - -#ifdef NEED_PTEM_H -/* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h - */ -#include <sys/stream.h> -#include <sys/ptem.h> -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif -],[ -#ifdef TIOCGSIZE - struct ttysize win; /* SunOS 3.0... */ - int y = win.ts_lines = 2; - int x = win.ts_cols = 1; - (void)y; - (void)x; -#else -#ifdef TIOCGWINSZ - struct winsize win; /* everything else */ - int y = win.ws_row = 2; - int x = win.ws_col = 1; - (void)y; - (void)x; -#else - no TIOCGSIZE or TIOCGWINSZ -#endif /* TIOCGWINSZ */ -#endif /* TIOCGSIZE */ - ], - [cf_cv_sizechange=yes], - [cf_cv_sizechange=no]) - - CPPFLAGS="$cf_save_CPPFLAGS" - if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&AC_FD_CC - test -n "$cf_opts" && cf_cv_sizechange="$cf_opts" - break - fi -done -]) -if test "$cf_cv_sizechange" != no ; then - AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided]) - case "$cf_cv_sizechange" in - (NEED*) - AC_DEFINE_UNQUOTED($cf_cv_sizechange ) - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13 -dnl ----------------- -dnl Some machines require _POSIX_SOURCE to completely define struct termios. -AC_DEFUN([CF_STRUCT_TERMIOS],[ -AC_REQUIRE([CF_XOPEN_SOURCE]) - -AC_CHECK_HEADERS( \ -termio.h \ -termios.h \ -unistd.h \ -sys/ioctl.h \ -sys/termio.h \ -) - -if test "$ac_cv_header_termios_h" = yes ; then - case "$CFLAGS $CPPFLAGS" in - (*-D_POSIX_SOURCE*) - termios_bad=dunno ;; - (*) termios_bad=maybe ;; - esac - if test "$termios_bad" = maybe ; then - AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE) - AC_TRY_COMPILE([#include <termios.h>], - [struct termios foo; int x = foo.c_iflag = 1; (void)x], - termios_bad=no, [ - AC_TRY_COMPILE([ -#define _POSIX_SOURCE -#include <termios.h>], - [struct termios foo; int x = foo.c_iflag = 2; (void)x], - termios_bad=unknown, - termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])) - ]) - AC_MSG_RESULT($termios_bad) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06 -dnl -------------- -dnl Construct a search-list for a nonstandard header/lib-file -dnl $1 = the variable to return as result -dnl $2 = the package name -dnl $3 = the subdirectory, e.g., bin, include or lib -AC_DEFUN([CF_SUBDIR_PATH], -[ -$1= - -CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE) - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - [$]HOME -do - CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix) -done -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_TERM_HEADER version: 6 updated: 2021/01/02 09:31:20 -dnl -------------- -dnl Look for term.h, which is part of X/Open curses. It defines the interface -dnl to terminfo database. Usually it is in the same include-path as curses.h, -dnl but some packagers change this, breaking various applications. -AC_DEFUN([CF_TERM_HEADER],[ -AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[ -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -AC_TRY_COMPILE([#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> -],[int x = auto_left_margin; (void)x],[ - cf_cv_term_header="$cf_test"],[ - cf_cv_term_header=unknown - ]) - test "$cf_cv_term_header" != unknown && break -done -]) - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h]) - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h]) - ;; -(ncursesw/term.h) - AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h]) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00 -dnl -------------- -dnl Trim extra base X libraries added as a workaround for inconsistent library -dnl dependencies returned by "new" pkg-config files. -AC_DEFUN([CF_TRIM_X_LIBS],[ - for cf_trim_lib in Xmu Xt X11 - do - case "$LIBS" in - (*-l$cf_trim_lib\ *-l$cf_trim_lib*) - LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` - CF_VERBOSE(..trimmed $LIBS) - ;; - esac - done -]) -dnl --------------------------------------------------------------------------- -dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15 -dnl ----------------- -dnl This is a simple wrapper to use for pkg-config, for libraries which may be -dnl available in that form. -dnl -dnl $1 = package name, which may be a shell variable -dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS -dnl $3 = logic to use if pkg-config does not have the package -AC_DEFUN([CF_TRY_PKG_CONFIG],[ -AC_REQUIRE([CF_PKG_CONFIG]) - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then - CF_VERBOSE(found package $1) - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "$1" 2>/dev/null`" - CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs) - CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs) - CF_ADD_CFLAGS($cf_pkgconfig_incs) - CF_ADD_LIBS($cf_pkgconfig_libs) - ifelse([$2],,:,[$2]) -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - ifelse([$3],,:,[$3]) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13 -dnl ------------------- -dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we -dnl can define it successfully. -AC_DEFUN([CF_TRY_XOPEN_SOURCE],[ -AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ - AC_TRY_COMPILE([ -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_save="$CPPFLAGS" - CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE) - AC_TRY_COMPILE([ -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -],[ -#ifdef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_cv_xopen_source=$cf_XOPEN_SOURCE]) - CPPFLAGS="$cf_save" - ]) -]) - -if test "$cf_cv_xopen_source" != no ; then - CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE) - CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE) - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" - CF_ADD_CFLAGS($cf_temp_xopen_source) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_UNION_WAIT version: 8 updated: 2021/01/02 09:31:20 -dnl ------------- -dnl Check to see if the BSD-style union wait is declared. Some platforms may -dnl use this, though it is deprecated in favor of the 'int' type in Posix. -dnl Some vendors provide a bogus implementation that declares union wait, but -dnl uses the 'int' type instead; we try to spot these by checking for the -dnl associated macros. -dnl -dnl Ahem. Some implementers cast the status value to an int*, as an attempt to -dnl use the macros for either union wait or int. So we do a check compile to -dnl see if the macros are defined and apply to an int. -dnl -dnl Sets: $cf_cv_type_unionwait -dnl Defines: HAVE_TYPE_UNIONWAIT -AC_DEFUN([CF_UNION_WAIT], -[ -AC_REQUIRE([CF_WAIT_HEADERS]) -AC_MSG_CHECKING([for union wait]) -AC_CACHE_VAL(cf_cv_type_unionwait,[ - AC_TRY_LINK($cf_wait_headers, - [int x; - int y = WEXITSTATUS(x); - int z = WTERMSIG(x); - wait(&x); - (void)x; - (void)y; - (void)z; - ], - [cf_cv_type_unionwait=no - echo compiles ok w/o union wait 1>&AC_FD_CC - ],[ - AC_TRY_LINK($cf_wait_headers, - [union wait x; -#ifdef WEXITSTATUS - int y = WEXITSTATUS(x); -#endif -#ifdef WTERMSIG - int z = WTERMSIG(x); -#endif - wait(&x); - (void)x; -#ifdef WEXITSTATUS - (void)y; -#endif -#ifdef WTERMSIG - (void)z; -#endif - ], - [cf_cv_type_unionwait=yes - echo compiles ok with union wait and possibly macros too 1>&AC_FD_CC - ], - [cf_cv_type_unionwait=no])])]) -AC_MSG_RESULT($cf_cv_type_unionwait) -test "$cf_cv_type_unionwait" = yes && AC_DEFINE(HAVE_TYPE_UNIONWAIT,1,[Define to 1 if type unionwait is declared]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 -dnl -------- -dnl Make an uppercase version of a variable -dnl $1=uppercase($2) -AC_DEFUN([CF_UPPER], -[ -$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51 -dnl ----------- -dnl Check for multibyte support, and if not found, utf8 compatibility library -AC_DEFUN([CF_UTF8_LIB], -[ -AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[ - cf_save_LIBS="$LIBS" - AC_TRY_LINK([ -#include <stdlib.h>],[putwc(0,0);], - [cf_cv_utf8_lib=yes], - [CF_FIND_LINKAGE([ -#include <libutf8.h>],[putwc(0,0);],utf8, - [cf_cv_utf8_lib=add-on], - [cf_cv_utf8_lib=no]) -])]) - -# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between -# ncurses/ncursesw: -if test "$cf_cv_utf8_lib" = "add-on" ; then - AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h]) - CF_ADD_INCDIR($cf_cv_header_path_utf8) - CF_ADD_LIBDIR($cf_cv_library_path_utf8) - CF_ADD_LIBS($cf_cv_library_file_utf8) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12 -dnl ---------- -dnl Use AC_VERBOSE w/o the warnings -AC_DEFUN([CF_VERBOSE], -[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG -CF_MSG_LOG([$1]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04 -dnl --------------- -dnl Define several useful symbols derived from the VERSION file. A separate -dnl file is preferred to embedding the version numbers in various scripts. -dnl (automake is a textbook-example of why the latter is a bad idea, but there -dnl are others). -dnl -dnl The file contents are: -dnl libtool-version release-version patch-version -dnl or -dnl release-version -dnl where -dnl libtool-version (see ?) consists of 3 integers separated by '.' -dnl release-version consists of a major version and minor version -dnl separated by '.', optionally followed by a patch-version -dnl separated by '-'. The minor version need not be an -dnl integer (but it is preferred). -dnl patch-version is an integer in the form yyyymmdd, so ifdef's and -dnl scripts can easily compare versions. -dnl -dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL -dnl simply extracts the first field using 'cut -f1'. -dnl -dnl Optional parameters: -dnl $1 = internal name for package -dnl $2 = external name for package -AC_DEFUN([CF_VERSION_INFO], -[ -if test -f "$srcdir/VERSION" ; then - AC_MSG_CHECKING(for package version) - - # if there are not enough fields, cut returns the last one... - cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1` - cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2` - cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3` - - # this is how CF_BUNDLED_INTL uses $VERSION: - VERSION="$cf_field1" - - VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'` - test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version) - - VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'` - test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version) - - AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR}) - - AC_MSG_CHECKING(for package patch date) - VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'` - case .$VERSION_PATCH in - (.) - AC_MSG_ERROR(missing patch-date $VERSION_PATCH) - ;; - (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]]) - ;; - (*) - AC_MSG_ERROR(illegal patch-date $VERSION_PATCH) - ;; - esac - AC_MSG_RESULT($VERSION_PATCH) -else - AC_MSG_ERROR(did not find $srcdir/VERSION) -fi - -# show the actual data that we have for versions: -CF_VERBOSE(ABI VERSION $VERSION) -CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR) -CF_VERBOSE(VERSION_MINOR $VERSION_MINOR) -CF_VERBOSE(VERSION_PATCH $VERSION_PATCH) - -AC_SUBST(VERSION) -AC_SUBST(VERSION_MAJOR) -AC_SUBST(VERSION_MINOR) -AC_SUBST(VERSION_PATCH) - -dnl if a package name is given, define its corresponding version info. We -dnl need the package name to ensure that the defined symbols are unique. -ifelse($1,,,[ - cf_PACKAGE=$1 - PACKAGE=ifelse($2,,$1,$2) - AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name]) - AC_SUBST(PACKAGE) - CF_UPPER(cf_PACKAGE,$cf_PACKAGE) - AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}") - AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH}) -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WAIT_HEADERS version: 3 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Build up an expression $cf_wait_headers with the header files needed to -dnl compile against the prototypes for 'wait()', 'waitpid()', etc. Assume it's -dnl Posix, which uses <sys/types.h> and <sys/wait.h>, but allow SVr4 variation -dnl with <wait.h>. -AC_DEFUN([CF_WAIT_HEADERS], -[ -AC_HAVE_HEADERS(sys/wait.h) -cf_wait_headers="#include <sys/types.h> -" -if test "$ac_cv_header_sys_wait_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <sys/wait.h> -" -else -AC_HAVE_HEADERS(wait.h) -AC_HAVE_HEADERS(waitstatus.h) -if test "$ac_cv_header_wait_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <wait.h> -" -fi -if test "$ac_cv_header_waitstatus_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <waitstatus.h> -" -fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WIDEC_CURSES version: 6 updated: 2020/03/19 20:23:48 -dnl --------------- -dnl Check for curses implementations that can handle wide-characters -AC_DEFUN([CF_WIDEC_CURSES], -[ -AC_CACHE_CHECK(if curses supports wide characters,cf_cv_widec_curses,[ -AC_TRY_LINK([ -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}>],[ - wchar_t temp[2]; - wchar_t wch = 'A'; - temp[0] = wch; - waddnwstr(stdscr, temp, 1); -], -[cf_cv_widec_curses=yes], -[cf_cv_widec_curses=no]) -]) - -if test "$cf_cv_widec_curses" = yes ; then - AC_DEFINE(WIDEC_CURSES,1,[Define to 1 if curses supports wide characters]) - - # This is needed on Tru64 5.0 to declare mbstate_t - AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_widec_mbstate,[ - AC_TRY_COMPILE([ -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}>], -[mbstate_t state; (void)state], -[cf_cv_widec_mbstate=no], -[AC_TRY_COMPILE([ -#include <stdlib.h> -#include <wchar.h> -#include <${cf_cv_ncurses_header:-curses.h}>], -[mbstate_t state; (void)state], -[cf_cv_widec_mbstate=yes], -[cf_cv_widec_mbstate=unknown])])]) - -if test "$cf_cv_widec_mbstate" = yes ; then - AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h]) -fi - -if test "$cf_cv_widec_mbstate" != unknown ; then - AC_DEFINE(HAVE_MBSTATE_T,1,[Define to 1 if we have mbstate_t type]) -fi - -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04 -dnl ------------------- -dnl Allow library's ABI to be overridden. Generally this happens when a -dnl packager has incremented the ABI past that used in the original package, -dnl and wishes to keep doing this. -dnl -dnl $1 is the package name, if any, to derive a corresponding {package}_ABI -dnl symbol. -AC_DEFUN([CF_WITH_ABI_VERSION],[ -test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 -AC_ARG_WITH(abi-version, -[ --with-abi-version=XXX override derived ABI version],[ - if test "x$cf_cv_abi_version" != "x$withval" - then - AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval) - case "$cf_cv_rel_version" in - (5.*) - cf_cv_rel_version=$withval.0 - ;; - (6.*) - cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release - ;; - esac - fi - cf_cv_abi_version=$withval]) - CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version) -ifelse($1,,,[ -$1_ABI=$cf_cv_abi_version -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_CURSES_DIR version: 4 updated: 2021/01/02 19:22:58 -dnl ------------------ -dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses -dnl libraries. -AC_DEFUN([CF_WITH_CURSES_DIR],[ - -AC_MSG_CHECKING(for specific curses-directory) -AC_ARG_WITH(curses-dir, - [ --with-curses-dir=DIR directory in which (n)curses is installed], - [cf_cv_curses_dir=$withval], - [cf_cv_curses_dir=no]) -AC_MSG_RESULT($cf_cv_curses_dir) - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - CF_PATH_SYNTAX(withval) - if test -d "$cf_cv_curses_dir" - then - CF_ADD_INCDIR($cf_cv_curses_dir/include) - CF_ADD_LIBDIR($cf_cv_curses_dir/lib) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47 -dnl ---------------- -dnl Configure-option for dbmalloc. The optional parameter is used to override -dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. -AC_DEFUN([CF_WITH_DBMALLOC],[ -CF_NO_LEAKS_OPTION(dbmalloc, - [ --with-dbmalloc test: use Conor Cahill's dbmalloc library], - [USE_DBMALLOC]) - -if test "$with_dbmalloc" = yes ; then - AC_CHECK_HEADER(dbmalloc.h, - [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47 -dnl --------------- -dnl Configure-option for dmalloc. The optional parameter is used to override -dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. -AC_DEFUN([CF_WITH_DMALLOC],[ -CF_NO_LEAKS_OPTION(dmalloc, - [ --with-dmalloc test: use Gray Watson's dmalloc library], - [USE_DMALLOC]) - -if test "$with_dmalloc" = yes ; then - AC_CHECK_HEADER(dmalloc.h, - [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08 -dnl ------------------- -dnl Use this with libtool to specify the list of symbols that may be exported. -dnl The input file contains one symbol per line; comments work with "#". -dnl -dnl $1 = basename of the ".sym" file (default $PACKAGE) -AC_DEFUN([CF_WITH_EXPORT_SYMS], -[ -AC_MSG_CHECKING(if exported-symbols file should be used) -AC_ARG_WITH(export-syms, - [ --with-export-syms=XXX limit exported symbols using libtool], - [with_export_syms=$withval], - [with_export_syms=no]) -if test "x$with_export_syms" = xyes -then - with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym' - AC_SUBST(PACKAGE) -fi -AC_MSG_RESULT($with_export_syms) -if test "x$with_export_syms" != xno -then - EXPORT_SYMS="-export-symbols $with_export_syms" - AC_SUBST(EXPORT_SYMS) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_INSTALL_PREFIX version: 4 updated: 2010/10/23 15:52:32 -dnl ---------------------- -dnl Configure-script option to give a default value for the poorly-chosen name -dnl $(DESTDIR). -AC_DEFUN([CF_WITH_INSTALL_PREFIX], -[ -AC_MSG_CHECKING(for install-prefix) -AC_ARG_WITH(install-prefix, - [ --with-install-prefix=XXX sets DESTDIR, useful for packaging], - [cf_opt_with_install_prefix=$withval], - [cf_opt_with_install_prefix=${DESTDIR:-no}]) -AC_MSG_RESULT($cf_opt_with_install_prefix) -if test "$cf_opt_with_install_prefix" != no ; then - CF_PATH_SYNTAX(cf_opt_with_install_prefix) - DESTDIR=$cf_opt_with_install_prefix -fi -AC_SUBST(DESTDIR) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04 -dnl --------------- -dnl Provide a configure option to incorporate libtool. Define several useful -dnl symbols for the makefile rules. -dnl -dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses -dnl macros from libtool.m4 which is in the aclocal directory of automake. -dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro. -dnl But that still does not work properly since the macro is expanded outside -dnl the CF_WITH_LIBTOOL macro: -dnl -dnl #!/bin/sh -dnl ACLOCAL=`aclocal --print-ac-dir` -dnl if test -z "$ACLOCAL" ; then -dnl echo cannot find aclocal directory -dnl exit 1 -dnl elif test ! -f $ACLOCAL/libtool.m4 ; then -dnl echo cannot find libtool.m4 file -dnl exit 1 -dnl fi -dnl -dnl LOCAL=aclocal.m4 -dnl ORIG=aclocal.m4.orig -dnl -dnl trap "mv $ORIG $LOCAL" 0 1 2 3 15 -dnl rm -f $ORIG -dnl mv $LOCAL $ORIG -dnl -dnl # sed the LIBTOOL= assignment to omit the current directory? -dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL -dnl cat $ORIG >>$LOCAL -dnl -dnl autoconf-257 $* -dnl -AC_DEFUN([CF_WITH_LIBTOOL], -[ -AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION]) -ifdef([AC_PROG_LIBTOOL],,[ -LIBTOOL= -]) -# common library maintenance symbols that are convenient for libtool scripts: -LIB_CREATE='${AR} -cr' -LIB_OBJECT='${OBJECTS}' -LIB_SUFFIX=.a -LIB_PREP="$RANLIB" - -# symbols used to prop libtool up to enable it to determine what it should be -# doing: -LIB_CLEAN= -LIB_COMPILE= -LIB_LINK='${CC}' -LIB_INSTALL= -LIB_UNINSTALL= - -AC_MSG_CHECKING(if you want to build libraries with libtool) -AC_ARG_WITH(libtool, - [ --with-libtool generate libraries with libtool], - [with_libtool=$withval], - [with_libtool=no]) -AC_MSG_RESULT($with_libtool) -if test "$with_libtool" != "no"; then -ifdef([AC_PROG_LIBTOOL],[ - # missing_content_AC_PROG_LIBTOOL{{ - AC_PROG_LIBTOOL - # missing_content_AC_PROG_LIBTOOL}} -],[ - if test "$with_libtool" != "yes" ; then - CF_PATH_SYNTAX(with_libtool) - LIBTOOL=$with_libtool - else - AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none) - CF_LIBTOOL_VERSION - if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool - then - CF_FORGET_TOOL(LIBTOOL) - AC_CHECK_TOOLS(LIBTOOL,[glibtool],none) - CF_LIBTOOL_VERSION - fi - fi - if test -z "$LIBTOOL" ; then - AC_MSG_ERROR(Cannot find libtool) - fi -])dnl - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' - LIB_OBJECT='${OBJECTS:.o=.lo}' - LIB_SUFFIX=.la - LIB_CLEAN='${LIBTOOL} --mode=clean' - LIB_COMPILE='${LIBTOOL} --mode=compile' - LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}' - LIB_INSTALL='${LIBTOOL} --mode=install' - LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' - LIB_PREP=: - - CF_CHECK_LIBTOOL_VERSION - - # special hack to add -no-undefined (which libtool should do for itself) - LT_UNDEF= - case "$cf_cv_system_name" in - (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]]) - LT_UNDEF=-no-undefined - ;; - esac - AC_SUBST([LT_UNDEF]) - - # special hack to add --tag option for C++ compiler - case "$cf_cv_libtool_version" in - (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) - LIBTOOL_CXX="$LIBTOOL --tag=CXX" - LIBTOOL="$LIBTOOL --tag=CC" - ;; - (*) - LIBTOOL_CXX="$LIBTOOL" - ;; - esac -else - LIBTOOL="" - LIBTOOL_CXX="" -fi - -test -z "$LIBTOOL" && ECHO_LT= - -AC_SUBST(LIBTOOL) -AC_SUBST(LIBTOOL_CXX) -AC_SUBST(LIBTOOL_OPTS) - -AC_SUBST(LIB_CREATE) -AC_SUBST(LIB_OBJECT) -AC_SUBST(LIB_SUFFIX) -AC_SUBST(LIB_PREP) - -AC_SUBST(LIB_CLEAN) -AC_SUBST(LIB_COMPILE) -AC_SUBST(LIB_LINK) -AC_SUBST(LIB_INSTALL) -AC_SUBST(LIB_UNINSTALL) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04 -dnl -------------------- -dnl Allow user to pass additional libtool options into the library creation -dnl and link steps. The main use for this is to do something like -dnl ./configure --with-libtool-opts=-static -dnl to get the same behavior as automake-flavored -dnl ./configure --enable-static -AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[ -AC_MSG_CHECKING(for additional libtool options) -AC_ARG_WITH(libtool-opts, - [ --with-libtool-opts=XXX specify additional libtool options], - [with_libtool_opts=$withval], - [with_libtool_opts=no]) -AC_MSG_RESULT($with_libtool_opts) - -case .$with_libtool_opts in -(.yes|.no|.) - ;; -(*) - LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts" - ;; -esac - -AC_SUBST(LIBTOOL_OPTS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_MAN2HTML version: 12 updated: 2021/01/03 18:30:50 -dnl ---------------- -dnl Check for man2html and groff. Prefer man2html over groff, but use groff -dnl as a fallback. See -dnl -dnl http://invisible-island.net/scripts/man2html.html -dnl -dnl Generate a shell script which hides the differences between the two. -dnl -dnl We name that "man2html.tmp". -dnl -dnl The shell script can be removed later, e.g., using "make distclean". -AC_DEFUN([CF_WITH_MAN2HTML],[ -AC_REQUIRE([CF_PROG_GROFF])dnl -AC_REQUIRE([AC_PROG_FGREP])dnl - -case "x${with_man2html}" in -(xno) - cf_man2html=no - ;; -(x|xyes) - AC_PATH_PROG(cf_man2html,man2html,no) - case "x$cf_man2html" in - (x/*) - AC_MSG_CHECKING(for the modified Earl Hood script) - if ( $cf_man2html -help 2>&1 | grep 'Make an index of headers at the end' >/dev/null ) - then - cf_man2html_ok=yes - else - cf_man2html=no - cf_man2html_ok=no - fi - AC_MSG_RESULT($cf_man2html_ok) - ;; - (*) - cf_man2html=no - ;; - esac -esac - -AC_MSG_CHECKING(for program to convert manpage to html) -AC_ARG_WITH(man2html, - [ --with-man2html=XXX use XXX rather than groff], - [cf_man2html=$withval], - [cf_man2html=$cf_man2html]) - -cf_with_groff=no - -case $cf_man2html in -(yes) - AC_MSG_RESULT(man2html) - AC_PATH_PROG(cf_man2html,man2html,no) - ;; -(no|groff|*/groff*) - cf_with_groff=yes - cf_man2html=$GROFF_PATH - AC_MSG_RESULT($cf_man2html) - ;; -(*) - AC_MSG_RESULT($cf_man2html) - ;; -esac - -MAN2HTML_TEMP="man2html.tmp" - cat >$MAN2HTML_TEMP <<CF_EOF -#!$SHELL -# Temporary script generated by CF_WITH_MAN2HTML -# Convert inputs to html, sending result to standard output. -# -# Parameters: -# \${1} = rootname of file to convert -# \${2} = suffix of file to convert, e.g., "1" -# \${3} = macros to use, e.g., "man" -# -ROOT=\[$]1 -TYPE=\[$]2 -MACS=\[$]3 - -unset LANG -unset LC_ALL -unset LC_CTYPE -unset LANGUAGE -GROFF_NO_SGR=stupid -export GROFF_NO_SGR - -CF_EOF - -NROFF_OPTS= -if test "x$cf_with_groff" = xyes -then - MAN2HTML_NOTE="$GROFF_NOTE" - MAN2HTML_PATH="$GROFF_PATH" - cat >>$MAN2HTML_TEMP <<CF_EOF -$SHELL -c "$TBL_PATH \${ROOT}.\${TYPE} | $GROFF_PATH -P -o0 -I\${ROOT}_ -Thtml -\${MACS}" -CF_EOF -else - # disable hyphenation if this is groff - if test "x$GROFF_PATH" != xno - then - AC_MSG_CHECKING(if nroff is really groff) - cf_check_groff="`$NROFF_PATH --version 2>/dev/null | grep groff`" - test -n "$cf_check_groff" && cf_check_groff=yes - test -n "$cf_check_groff" || cf_check_groff=no - AC_MSG_RESULT($cf_check_groff) - test "x$cf_check_groff" = xyes && NROFF_OPTS="-rHY=0" - fi - MAN2HTML_NOTE="" - CF_PATH_SYNTAX(cf_man2html) - MAN2HTML_PATH="$cf_man2html" - AC_MSG_CHECKING(for $cf_man2html top/bottom margins) - - # for this example, expect 3 lines of content, the remainder is head/foot - cat >conftest.in <<CF_EOF -.TH HEAD1 HEAD2 HEAD3 HEAD4 HEAD5 -.SH SECTION -MARKER -CF_EOF - - LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out - - cf_man2html_1st="`${FGREP-fgrep} -n MARKER conftest.out |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`" - cf_man2html_top=`expr "$cf_man2html_1st" - 2` - cf_man2html_bot="`wc -l conftest.out |sed -e 's/[[^0-9]]//g'`" - cf_man2html_bot=`expr "$cf_man2html_bot" - 2 - "$cf_man2html_top"` - cf_man2html_top_bot="-topm=$cf_man2html_top -botm=$cf_man2html_bot" - - AC_MSG_RESULT($cf_man2html_top_bot) - - AC_MSG_CHECKING(for pagesize to use) - for cf_block in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - do - cat >>conftest.in <<CF_EOF -.nf -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -CF_EOF - done - - LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out - cf_man2html_page="`${FGREP-fgrep} -n HEAD1 conftest.out |sed -n '$p' |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`" - test -z "$cf_man2html_page" && cf_man2html_page=99999 - test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999 - - rm -rf conftest* - AC_MSG_RESULT($cf_man2html_page) - - cat >>$MAN2HTML_TEMP <<CF_EOF -: \${MAN2HTML_PATH=$MAN2HTML_PATH} -MAN2HTML_OPTS="\$MAN2HTML_OPTS -index -title=\"\$ROOT(\$TYPE)\" -compress -pgsize $cf_man2html_page" -case \${TYPE} in -(ms) - $TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH -topm=0 -botm=0 \$MAN2HTML_OPTS - ;; -(*) - $TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH $cf_man2html_top_bot \$MAN2HTML_OPTS - ;; -esac -CF_EOF -fi - -chmod 700 $MAN2HTML_TEMP - -AC_SUBST(MAN2HTML_NOTE) -AC_SUBST(MAN2HTML_PATH) -AC_SUBST(MAN2HTML_TEMP) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20 -dnl ------------------- -dnl Use this macro for programs which use any variant of "curses", e.g., -dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated -dnl library (such as slang) should use a "--with-screen=XXX" option. -dnl -dnl This does not use AC_DEFUN, because that would tell autoconf to run each -dnl of the macros inside this one - before this macro. -define([CF_WITH_NCURSES_ETC],[ -CF_WITH_CURSES_DIR - -cf_cv_screen=curses - -AC_MSG_CHECKING(for specified curses library type) -AC_ARG_WITH(screen, - [ --with-screen=XXX use specified curses-libraries], - [cf_cv_screen=$withval],[ - -AC_ARG_WITH(ncursesw, - [ --with-ncursesw use wide ncurses-libraries], - [cf_cv_screen=ncursesw],[ - -AC_ARG_WITH(ncurses, - [ --with-ncurses use ncurses-libraries], - [cf_cv_screen=ncurses],[ - -AC_ARG_WITH(pdcurses, - [ --with-pdcurses compile/link with pdcurses X11 library], - [cf_cv_screen=pdcurses],[ - -AC_ARG_WITH(curses-colr, - [ --with-curses-colr compile/link with HPUX 10.x color-curses], - [cf_cv_screen=curses_colr],[ - -AC_ARG_WITH(curses-5lib, - [ --with-curses-5lib compile/link with SunOS 5lib curses], - [cf_cv_screen=curses_5lib])])])])])]) - -AC_MSG_RESULT($cf_cv_screen) - -case $cf_cv_screen in -(curses|curses_*) - CF_CURSES_CONFIG - ;; -(ncursesw*) - CF_UTF8_LIB - CF_NCURSES_CONFIG($cf_cv_screen) - ;; -(ncurses*) - CF_NCURSES_CONFIG($cf_cv_screen) - ;; -(pdcurses) - CF_PDCURSES_X11 - ;; -(*) - AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen) - ;; -esac - -CF_NCURSES_PTHREADS($cf_cv_screen) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_NO_LEAKS version: 4 updated: 2021/01/05 20:08:11 -dnl ---------------- -AC_DEFUN([CF_WITH_NO_LEAKS],[ - -AC_REQUIRE([CF_WITH_DMALLOC]) -AC_REQUIRE([CF_WITH_DBMALLOC]) -AC_REQUIRE([CF_WITH_PURIFY]) -AC_REQUIRE([CF_WITH_VALGRIND]) - -AC_MSG_CHECKING(if you want to perform memory-leak testing) -AC_ARG_WITH(no-leaks, - [ --with-no-leaks test: free permanent memory, analyze leaks], - [AC_DEFINE(NO_LEAKS,1,[Define to 1 to enable leak-checking]) - cf_doalloc=".${with_dmalloc}${with_dbmalloc}${with_purify}${with_valgrind}" - case ${cf_doalloc} in - (*yes*) ;; - (*) AC_DEFINE(DOALLOC,10000,[Define to size of malloc-array]) ;; - esac - enable_leaks=no], - [enable_leaks=yes]) -dnl TODO - drop with_no_leaks -if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi -AC_MSG_RESULT($with_no_leaks) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_PURIFY version: 2 updated: 2006/12/14 18:43:43 -dnl -------------- -AC_DEFUN([CF_WITH_PURIFY],[ -CF_NO_LEAKS_OPTION(purify, - [ --with-purify test: use Purify], - [USE_PURIFY], - [LINK_PREFIX="$LINK_PREFIX purify"]) -AC_SUBST(LINK_PREFIX) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49 -dnl ------------------- -dnl Allow library's release-version to be overridden. Generally this happens when a -dnl packager has incremented the release-version past that used in the original package, -dnl and wishes to keep doing this. -dnl -dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR -dnl and {package}_MINOR symbols -dnl symbol. -AC_DEFUN([CF_WITH_REL_VERSION],[ -test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 -AC_ARG_WITH(rel-version, -[ --with-rel-version=XXX override derived release version], -[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval) - cf_cv_rel_version=$withval]) -ifelse($1,,[ - CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version) -],[ - $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'` - $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'` - CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version) - CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version) -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_SCREEN_PDCURSES version: 1 updated: 2020/08/28 16:56:27 -dnl ----------------------- -dnl Call this macro before CF_ENABLE_WARNINGS for configure scripts which use -dnl the "--with-screen=pdcurses" selection. Doing that allows the configure -dnl script to search for the X11/Xt header files to declare (or not) the -dnl symbol needed to enable "const" in those header files. If that configure -dnl option is not used, then those checks are unnecessary. -AC_DEFUN([CF_WITH_SCREEN_PDCURSES],[ -AC_PROVIDE([AC_PATH_XTRA]) -AC_PROVIDE([AC_PATH_X]) -if test -n "$with_screen" && test "x$with_screen" = "xpdcurses" -then - AC_PATH_X - AC_PATH_XTRA -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_SHARED_OR_LIBTOOL version: 7 updated: 2014/11/02 16:11:49 -dnl ------------------------- -dnl Provide shared libraries using either autoconf macros (--with-shared) or -dnl using the external libtool script (--with-libtool). -dnl -dnl $1 = program name (all caps preferred) -dnl $1 = release version -dnl $2 = ABI version -define([CF_WITH_SHARED_OR_LIBTOOL],[ - -REL_VERSION=$2 -ABI_VERSION=$3 -cf_cv_rel_version=$REL_VERSION -AC_SUBST(ABI_VERSION) -AC_SUBST(REL_VERSION) - -CF_WITH_REL_VERSION($1) -CF_WITH_ABI_VERSION - -LIB_MODEL=static -DFT_LWR_MODEL=$LIB_MODEL -LIBTOOL_MAKE="#" - -# use to comment-out makefile lines -MAKE_NORMAL= -MAKE_STATIC= -MAKE_SHARED="#" -MAKE_DLLS="#" - -shlibdir=$libdir -AC_SUBST(shlibdir) - -CF_WITH_LIBTOOL - -LIB_CREATE="$LIB_CREATE \[$]@" - -if test "$with_libtool" = "yes" ; then - OBJEXT="lo" - LIB_MODEL=libtool - DFT_LWR_MODEL=$LIB_MODEL - LIBTOOL_MAKE= - CF_WITH_LIBTOOL_OPTS - CF_WITH_EXPORT_SYMS - MAKE_NORMAL="#" - MAKE_STATIC="#" - MAKE_SHARED= -else - AC_MSG_CHECKING(if you want to build shared libraries) - AC_ARG_WITH(shared, - [ --with-shared generate shared-libraries], - [with_shared=$withval], - [with_shared=no]) - AC_MSG_RESULT($with_shared) - if test "$with_shared" = "yes" ; then - LIB_MODEL=shared - DFT_LWR_MODEL=$LIB_MODEL - CF_SHARED_OPTS - CF_WITH_VERSIONED_SYMS - LIB_PREP=: - LIB_CREATE="[$]MK_SHARED_LIB" - CFLAGS="$CFLAGS $CC_SHARED_OPTS" - MAKE_NORMAL="#" - MAKE_STATIC="#" - MAKE_SHARED= - fi -fi - -LIB_SUFFIX= -CF_LIB_SUFFIX($LIB_MODEL, DFT_LIB_SUFFIX, DFT_DEP_SUFFIX) -LIB_SUFFIX=$DFT_LIB_SUFFIX - -AC_SUBST(DFT_LWR_MODEL) -AC_SUBST(DFT_LIB_SUFFIX) -AC_SUBST(DFT_DEP_SUFFIX) -AC_SUBST(LIB_MODEL) - -AC_SUBST(LIBTOOL_MAKE) - -AC_SUBST(MAKE_DLLS) -AC_SUBST(MAKE_NORMAL) -AC_SUBST(MAKE_SHARED) -AC_SUBST(MAKE_STATIC) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21 -dnl ---------------- -AC_DEFUN([CF_WITH_VALGRIND],[ -CF_NO_LEAKS_OPTION(valgrind, - [ --with-valgrind test: use valgrind], - [USE_VALGRIND]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01 -dnl ---------------------- -dnl Use this when building shared library with ELF, to markup symbols with the -dnl version identifier from the given input file. Generally that identifier is -dnl the same as the SONAME at which the symbol was first introduced. -dnl -dnl $1 = basename of the ".map" file (default $PACKAGE) -AC_DEFUN([CF_WITH_VERSIONED_SYMS], -[AC_REQUIRE([AC_PROG_FGREP])dnl -AC_REQUIRE([AC_PROG_EGREP])dnl - -AC_MSG_CHECKING(if versioned-symbols file should be used) -AC_ARG_WITH(versioned-syms, - [ --with-versioned-syms=X markup versioned symbols using ld], - [with_versioned_syms=$withval], - [with_versioned_syms=no]) -case "x$with_versioned_syms" in -(xyes) - with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map' - AC_SUBST(PACKAGE) - ;; -(xno) - ;; -(x/*) - test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms) - ;; -(*) - test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms) - with_versioned_syms=`pwd`/"$with_versioned_syms" - ;; -esac -AC_MSG_RESULT($with_versioned_syms) - -RESULTING_SYMS= -VERSIONED_SYMS= -WILDCARD_SYMS= - -if test "x$with_versioned_syms" != xno -then - RESULTING_SYMS=$with_versioned_syms - case "x$MK_SHARED_LIB" in - (*-Wl,*) - VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}" - MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"` - CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) - ;; - (*-dy\ *) - VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}" - MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"` - CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB) - ;; - (*) - AC_MSG_WARN(this system does not support versioned-symbols) - ;; - esac - - # Linux ld can selectively override scope, e.g., of symbols beginning with - # "_" by first declaring some as global, and then using a wildcard to - # declare the others as local. Some other loaders cannot do this. Check - # by constructing a (very) simple shared library and inspecting its - # symbols. - if test "x$VERSIONED_SYMS" != "x" - then - AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols) - WILDCARD_SYMS=no - - # make sources - rm -f conftest.* - - cat >conftest.ver <<EOF -module_1.0 { -global: - globalf1; -local: - localf1; -}; -module_2.0 { -global: - globalf2; -local: - localf2; - _*; -} module_1.0; -submodule_1.0 { -global: - subglobalf1; - _ismissing; -local: - sublocalf1; -}; -submodule_2.0 { -global: - subglobalf2; -local: - sublocalf2; - _*; -} submodule_1.0; -EOF - cat >conftest.$ac_ext <<EOF -#line __oline__ "configure" -int _ismissing(void) { return 1; } -int _localf1(void) { return 1; } -int _localf2(void) { return 2; } -int globalf1(void) { return 1; } -int globalf2(void) { return 2; } -int _sublocalf1(void) { return 1; } -int _sublocalf2(void) { return 2; } -int subglobalf1(void) { return 1; } -int subglobalf2(void) { return 2; } -EOF - cat >conftest.mk <<EOF -CC=${CC} -CFLAGS=${CFLAGS} -CPPFLAGS=${CPPFLAGS} -LDFLAGS=${LDFLAGS} -LIBS=${LIBS} -VERSIONED_SYMS=${VERSIONED_SYMS} -RESULTING_SYMS=conftest.ver -MK_SHARED_LIB=${MK_SHARED_LIB} -conftest.so: conftest.$ac_cv_objext - \$(MK_SHARED_LIB) conftest.$ac_cv_objext -EOF - - # compile source, make library - if make -f conftest.mk 2>&AC_FD_CC >/dev/null - then - # test for missing symbol in either Data or Text section - cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[ ]][[DT]][[ ]]'`" - test -n "$cf_missing" && WILDCARD_SYMS=yes - fi - AC_MSG_RESULT($WILDCARD_SYMS) - rm -f conftest.* - fi -fi -AC_SUBST(RESULTING_SYMS) -AC_SUBST(VERSIONED_SYMS) -AC_SUBST(WILDCARD_SYMS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_CURSES version: 16 updated: 2021/01/02 09:31:20 -dnl --------------- -dnl Test if we should define X/Open source for curses, needed on Digital Unix -dnl 4.x, to see the extended functions, but breaks on IRIX 6.x. -dnl -dnl The getbegyx() check is needed for HPUX, which omits legacy macros such -dnl as getbegy(). The latter is better design, but the former is standard. -AC_DEFUN([CF_XOPEN_CURSES], -[ -AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl -AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[ -cf_cv_need_xopen_extension=unknown -AC_TRY_LINK([ -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}>],[ -#if defined(NCURSES_VERSION_PATCH) -#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403) - make an error -#endif -#endif -#ifdef NCURSES_VERSION - cchar_t check; - int check2 = curs_set((int)sizeof(check)); -#endif - long x = winnstr(stdscr, "", 0); - int x1, y1; -#ifdef NCURSES_VERSION - (void)check2; -#endif - getbegyx(stdscr, y1, x1); - (void)x; - (void)y1; - (void)x1; - ], - [cf_cv_need_xopen_extension=none], - [ - for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR - do - AC_TRY_LINK([ -#define $cf_try_xopen_extension 1 -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}>],[ -#ifdef NCURSES_VERSION - cchar_t check; - int check2 = curs_set((int)sizeof(check)); -#endif - long x = winnstr(stdscr, "", 0); - int x1, y1; - getbegyx(stdscr, y1, x1); -#ifdef NCURSES_VERSION - (void)check2; -#endif - (void)x; - (void)y1; - (void)x1; - ], - [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break]) - done - ]) -]) - -case "$cf_cv_need_xopen_extension" in -(*_*) - CF_APPEND_TEXT(CPPFLAGS,-D$cf_cv_need_xopen_extension) - ;; -esac - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59 -dnl --------------- -dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, -dnl or adapt to the vendor's definitions to get equivalent functionality, -dnl without losing the common non-POSIX features. -dnl -dnl Parameters: -dnl $1 is the nominal value for _XOPEN_SOURCE -dnl $2 is the nominal value for _POSIX_C_SOURCE -AC_DEFUN([CF_XOPEN_SOURCE],[ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([CF_POSIX_VISIBLE]) - -if test "$cf_cv_posix_visible" = no; then - -cf_XOPEN_SOURCE=ifelse([$1],,500,[$1]) -cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2]) -cf_xopen_source= - -case "$host_os" in -(aix[[4-7]]*) - cf_xopen_source="-D_ALL_SOURCE" - ;; -(msys) - cf_XOPEN_SOURCE=600 - ;; -(darwin[[0-8]].*) - cf_xopen_source="-D_APPLE_C_SOURCE" - ;; -(darwin*) - cf_xopen_source="-D_DARWIN_C_SOURCE" - cf_XOPEN_SOURCE= - ;; -(freebsd*|dragonfly*|midnightbsd*) - # 5.x headers associate - # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L - # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L - cf_POSIX_C_SOURCE=200112L - cf_XOPEN_SOURCE=600 - cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -(hpux11*) - cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" - ;; -(hpux*) - cf_xopen_source="-D_HPUX_SOURCE" - ;; -(irix[[56]].*) - cf_xopen_source="-D_SGI_SOURCE" - cf_XOPEN_SOURCE= - ;; -(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin) - CF_GNU_SOURCE($cf_XOPEN_SOURCE) - ;; -(minix*) - cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this... - ;; -(mirbsd*) - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types - cf_XOPEN_SOURCE= - CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) - ;; -(netbsd*) - cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw - ;; -(openbsd[[4-9]]*) - # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw - cf_xopen_source="-D_BSD_SOURCE" - cf_XOPEN_SOURCE=600 - ;; -(openbsd*) - # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw - ;; -(osf[[45]]*) - cf_xopen_source="-D_OSF_SOURCE" - ;; -(nto-qnx*) - cf_xopen_source="-D_QNX_SOURCE" - ;; -(sco*) - # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer - ;; -(solaris2.*) - cf_xopen_source="-D__EXTENSIONS__" - cf_cv_xopen_source=broken - ;; -(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2) - cf_XOPEN_SOURCE= - cf_POSIX_C_SOURCE= - ;; -(*) - CF_TRY_XOPEN_SOURCE - CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE) - ;; -esac - -if test -n "$cf_xopen_source" ; then - CF_ADD_CFLAGS($cf_xopen_source,true) -fi - -dnl In anything but the default case, we may have system-specific setting -dnl which is still not guaranteed to provide all of the entrypoints that -dnl _XOPEN_SOURCE would yield. -if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then - AC_MSG_CHECKING(if _XOPEN_SOURCE really is set) - AC_TRY_COMPILE([#include <stdlib.h>],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_XOPEN_SOURCE_set=yes], - [cf_XOPEN_SOURCE_set=no]) - AC_MSG_RESULT($cf_XOPEN_SOURCE_set) - if test "$cf_XOPEN_SOURCE_set" = yes - then - AC_TRY_COMPILE([#include <stdlib.h>],[ -#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE -make an error -#endif], - [cf_XOPEN_SOURCE_set_ok=yes], - [cf_XOPEN_SOURCE_set_ok=no]) - if test "$cf_XOPEN_SOURCE_set_ok" = no - then - AC_MSG_WARN(_XOPEN_SOURCE is lower than requested) - fi - else - CF_TRY_XOPEN_SOURCE - fi -fi -fi # cf_cv_posix_visible -]) -dnl --------------------------------------------------------------------------- -dnl CF_X_ATHENA version: 24 updated: 2020/03/10 18:53:47 -dnl ----------- -dnl Check for Xaw (Athena) libraries -dnl -dnl Sets $cf_x_athena according to the flavor of Xaw which is used. -AC_DEFUN([CF_X_ATHENA], -[ -cf_x_athena=${cf_x_athena:-Xaw} - -AC_MSG_CHECKING(if you want to link with Xaw 3d library) -withval= -AC_ARG_WITH(Xaw3d, - [ --with-Xaw3d link with Xaw 3d library]) -if test "$withval" = yes ; then - cf_x_athena=Xaw3d - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(if you want to link with Xaw 3d xft library) -withval= -AC_ARG_WITH(Xaw3dxft, - [ --with-Xaw3dxft link with Xaw 3d xft library]) -if test "$withval" = yes ; then - cf_x_athena=Xaw3dxft - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(if you want to link with neXT Athena library) -withval= -AC_ARG_WITH(neXtaw, - [ --with-neXtaw link with neXT Athena library]) -if test "$withval" = yes ; then - cf_x_athena=neXtaw - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(if you want to link with Athena-Plus library) -withval= -AC_ARG_WITH(XawPlus, - [ --with-XawPlus link with Athena-Plus library]) -if test "$withval" = yes ; then - cf_x_athena=XawPlus - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -cf_x_athena_lib="" - -if test "$PKG_CONFIG" != none ; then - cf_athena_list= - test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6" - for cf_athena_pkg in \ - $cf_athena_list \ - ${cf_x_athena} \ - ${cf_x_athena}-devel \ - lib${cf_x_athena} \ - lib${cf_x_athena}-devel - do - CF_TRY_PKG_CONFIG($cf_athena_pkg,[ - cf_x_athena_lib="$cf_pkgconfig_libs" - CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena) - AC_DEFINE_UNQUOTED($cf_x_athena_LIBS) - - CF_TRIM_X_LIBS - -AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[ -AC_TRY_LINK([ -#include <X11/Xmu/CharSet.h> -],[ -int check = XmuCompareISOLatin1("big", "small"); -(void)check; -],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])]) - - if test "$cf_cv_xaw_compat" = no - then - # workaround for broken ".pc" files... - case "$cf_x_athena_lib" in - (*-lXmu*) - ;; - (*) - CF_VERBOSE(work around broken package) - cf_save_xmu="$LIBS" - cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'` - CF_TRY_PKG_CONFIG(xmu,[ - LIBS="$cf_save_xmu" - CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs) - ],[ - CF_ADD_LIB_AFTER($cf_first_lib,-lXmu) - ]) - CF_TRIM_X_LIBS - ;; - esac - fi - - break]) - done -fi - -if test -z "$cf_x_athena_lib" ; then - CF_X_EXT - CF_X_TOOLKIT - CF_X_ATHENA_CPPFLAGS($cf_x_athena) - CF_X_ATHENA_LIBS($cf_x_athena) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_X_ATHENA_CPPFLAGS version: 9 updated: 2020/12/31 10:54:15 -dnl -------------------- -dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of -dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw. -AC_DEFUN([CF_X_ATHENA_CPPFLAGS], -[ -AC_REQUIRE([AC_PATH_XTRA]) -cf_x_athena_root=ifelse([$1],,Xaw,[$1]) -cf_x_athena_inc="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - if test -z "$cf_x_athena_inc" ; then - CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS]) - cf_test=X11/$cf_x_athena_root/SimpleMenu.h - if test "$cf_path" != default ; then - CF_APPEND_TEXT(CPPFLAGS,-I$cf_path/include) - AC_MSG_CHECKING(for $cf_test in $cf_path) - else - AC_MSG_CHECKING(for $cf_test) - fi - AC_TRY_COMPILE([ -#include <X11/Intrinsic.h> -#include <$cf_test>],[], - [cf_result=yes], - [cf_result=no]) - AC_MSG_RESULT($cf_result) - CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS]) - if test "$cf_result" = yes ; then - test "$cf_path" = default && cf_x_athena_inc=default - test "$cf_path" != default && cf_x_athena_inc="$cf_path/include" - break - fi - fi -done - -if test -z "$cf_x_athena_inc" ; then - AC_MSG_WARN([Unable to find Athena header files]) -elif test "$cf_x_athena_inc" != default ; then - CF_APPEND_TEXT(CPPFLAGS,-I$cf_x_athena_inc) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_X_ATHENA_LIBS version: 13 updated: 2020/01/11 18:16:10 -dnl ---------------- -dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of -dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw. -AC_DEFUN([CF_X_ATHENA_LIBS], -[AC_REQUIRE([CF_X_TOOLKIT]) -cf_x_athena_root=ifelse([$1],,Xaw,[$1]) -cf_x_athena_lib="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - for cf_lib in \ - ${cf_x_athena_root} \ - ${cf_x_athena_root}7 \ - ${cf_x_athena_root}6 - do - for cf_libs in \ - "-l$cf_lib -lXmu" \ - "-l$cf_lib -lXpm -lXmu" \ - "-l${cf_lib}_s -lXmu_s" - do - test -n "$cf_x_athena_lib" && break - - CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_LIBS]) - cf_test=XawSimpleMenuAddGlobalActions - test "$cf_path" != default && cf_libs="-L$cf_path/lib $cf_libs" - CF_ADD_LIBS($cf_libs) - AC_MSG_CHECKING(for $cf_test in $cf_libs) - AC_TRY_LINK([ -#include <X11/Intrinsic.h> -#include <X11/$cf_x_athena_root/SimpleMenu.h> -],[ -$cf_test((XtAppContext) 0)], - [cf_result=yes], - [cf_result=no]) - AC_MSG_RESULT($cf_result) - CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_LIBS]) - - if test "$cf_result" = yes ; then - cf_x_athena_lib="$cf_libs" - break - fi - done # cf_libs - test -n "$cf_x_athena_lib" && break - done # cf_lib -done - -if test -z "$cf_x_athena_lib" ; then - AC_MSG_ERROR( -[Unable to successfully link Athena library (-l$cf_x_athena_root) with test program]) -fi - -CF_ADD_LIBS($cf_x_athena_lib) -CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena) -AC_DEFINE_UNQUOTED($cf_x_athena_LIBS) -]) -dnl --------------------------------------------------------------------------- -dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05 -dnl -------- -AC_DEFUN([CF_X_EXT],[ -CF_TRY_PKG_CONFIG(Xext,,[ - AC_CHECK_LIB(Xext,XextCreateExtension, - [CF_ADD_LIB(Xext)])]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_X_TOOLKIT version: 26 updated: 2021/01/02 09:31:20 -dnl ------------ -dnl Check for X Toolkit libraries -AC_DEFUN([CF_X_TOOLKIT], -[ -AC_REQUIRE([AC_PATH_XTRA]) -AC_REQUIRE([CF_CHECK_CACHE]) - -# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new) (and -# in some cases has installed dummy files in the former, other cases replaced -# it with a link to the new location). This complicates the configure script. -# Check for that pitfall, and recover using pkg-config -# -# If none of these are set, the configuration is almost certainly broken. -if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}" -then - CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)]) - CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)]) - CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)]) - CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)]) -else - LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS" -fi - -cf_have_X_LIBS=no - -CF_TRY_PKG_CONFIG(xt,[ - - case "x$LIBS" in - (*-lX11*) - ;; - (*) -# we have an "xt" package, but it may omit Xt's dependency on X11 -AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[ -AC_TRY_LINK([ -#include <X11/Xlib.h> -],[ - int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0); - int rc2 = XClearWindow((Display*) 0, (Window) 0); - int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0); - int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0); -],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])]) - if test "$cf_cv_xt_x11_compat" = no - then - CF_VERBOSE(work around broken X11 dependency) - # 2010/11/19 - good enough until a working Xt on Xcb is delivered. - CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)]) - fi - ;; - esac - -AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[ -AC_TRY_LINK([ -#include <X11/Shell.h> -],[int num = IceConnectionNumber(0); (void) num -],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])]) - - if test "$cf_cv_xt_ice_compat" = no - then - # workaround for broken ".pc" files used for X Toolkit. - case "x$X_PRE_LIBS" in - (*-lICE*) - case "x$LIBS" in - (*-lICE*) - ;; - (*) - CF_VERBOSE(work around broken ICE dependency) - CF_TRY_PKG_CONFIG(ice, - [CF_TRY_PKG_CONFIG(sm)], - [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)]) - ;; - esac - ;; - esac - fi - - cf_have_X_LIBS=yes -],[ - - LDFLAGS="$X_LIBS $LDFLAGS" - CF_CHECK_CFLAGS($X_CFLAGS) - - AC_CHECK_FUNC(XOpenDisplay,,[ - AC_CHECK_LIB(X11,XOpenDisplay, - [CF_ADD_LIB(X11)])]) - - AC_CHECK_FUNC(XtAppInitialize,,[ - AC_CHECK_LIB(Xt, XtAppInitialize, - [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library]) - cf_have_X_LIBS=Xt - LIBS="-lXt $LIBS"])]) -]) - -if test "$cf_have_X_LIBS" = no ; then - AC_MSG_WARN( -[Unable to successfully link X Toolkit library (-lXt) with -test program. You will have to check and add the proper libraries by hand -to makefile.]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF__ADD_SHLIB_RULES version: 6 updated: 2016/04/21 21:07:50 -dnl ------------------- -dnl Append rules for creating, installing, uninstalling and cleaning library. -dnl In particular, this is needed for shared libraries since there are symbolic -dnl links which depend on configuration choices. -dnl -dnl The logic is controlled by these cache variables: -dnl $cf_cv_do_symlinks -dnl $cf_cv_shlib_version -dnl -dnl The macro uses variables set by CF__DEFINE_SHLIB_VARS -dnl -dnl $1 = makefile to append to -dnl $2 = model (static, shared, libtool) -dnl $3 = objects (dependencies) -dnl $4 = additional libraries needed to link the shared library -define([CF__ADD_SHLIB_RULES],[ - -CF__DEFINE_LIB_TARGET - -case x$2 in -(xlibtool|xshared) - cf_libdeps="ifelse($4,,,[$4])" - ;; -(x*) - cf_libdeps= - ;; -esac - -cat >>$1 <<CF_EOF - -# generated by CF__ADD_SHLIB_RULES -# libmodel: $2 -# symlinks: $cf_cv_do_symlinks -# shlibver: $cf_cv_shlib_version - -CF_EOF - -cat >>$1 <<CF_EOF -$cf_libname :: \\ -CF_EOF - -cat >>$1 <<CF_EOF - $3 - @echo linking \[$]@ - \$(LIBTOOL_CREATE) $3 $cf_libdeps -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>$1 <<CF_EOF - \$(LN_S) $cf_libname $cf_liblink - \$(LN_S) $cf_liblink $cf_libroot -CF_EOF -fi - -cat >>$1 <<CF_EOF - -install \\ -install.libs :: \$(DESTDIR)\$(libdir)/$cf_libname - -\$(DESTDIR)\$(libdir)/$cf_libname :: \\ - \$(DESTDIR)\$(libdir) \\ - $3 - @echo linking \[$]@ - \$(LIBTOOL_CREATE) $3 $cf_libdeps -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>$1 <<CF_EOF - cd \$(DESTDIR)\$(libdir) && (\$(LN_S) $cf_libname $cf_liblink; \$(LN_S) $cf_liblink $cf_libroot; ) -CF_EOF -fi - -if test x$2 = xshared -then -cat >>$1 <<CF_EOF - - \$(SHELL) -c "if test -z "\$(DESTDIR)" ; then /sbin/ldconfig; fi" -CF_EOF -fi - -cat >>$1 <<CF_EOF - -uninstall \\ -uninstall.libs :: - @echo uninstalling \$(DESTDIR)\$(libdir)/$cf_libname -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>$1 <<CF_EOF - -rm -f \$(DESTDIR)\$(libdir)/$cf_libroot - -rm -f \$(DESTDIR)\$(libdir)/$cf_liblink -CF_EOF -fi - -cat >>$1 <<CF_EOF - -rm -f \$(DESTDIR)\$(libdir)/$cf_libname - -clean \\ -clean.libs :: -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>$1 <<CF_EOF - -rm -f $cf_libroot - -rm -f $cf_liblink -CF_EOF -fi - -cat >>$1 <<CF_EOF - -rm -f $cf_libname - -mostlyclean:: - -rm -f $3 -# end generated by CF__ADD_SHLIB_RULES -CF_EOF -])dnl -dnl --------------------------------------------------------------------------- -dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49 -dnl --------------- -dnl Define a reusable chunk which includes <curses.h> and <term.h> when they -dnl are both available. -define([CF__CURSES_HEAD],[ -#ifdef HAVE_XCURSES -#include <xcurses.h> -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header:-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include <ncursesw/term.h> -#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include <ncurses/term.h> -#elif defined(HAVE_TERM_H) -#include <term.h> -#endif -#endif -]) -dnl --------------------------------------------------------------------------- -dnl CF__DEFINE_LIB_TARGET version: 2 updated: 2015/05/10 19:52:14 -dnl --------------------- -define([CF__DEFINE_LIB_TARGET],[ -cf_libname=\${LIB_BASENAME} -cf_liblink=$cf_libname -cf_libroot=$cf_libname - -if test "x$cf_cv_do_symlinks" = xyes -then - case "x$cf_cv_shlib_version" in - (xrel) - cf_liblink="\${LIB_ABI_NAME}" - cf_libname="\${LIB_REL_NAME}" - ;; - (xabi) - cf_liblink="\${LIB_REL_NAME}" - cf_libname="\${LIB_ABI_NAME}" - ;; - esac -fi -LIB_TARGET=$cf_libname -])dnl -dnl --------------------------------------------------------------------------- -dnl CF__DEFINE_SHLIB_VARS version: 4 updated: 2015/09/28 17:49:10 -dnl --------------------- -dnl Substitute makefile variables useful for CF__ADD_SHLIB_RULES. -dnl -dnl The substitution requires these variables: -dnl LIB_PREFIX - "lib" -dnl LIB_ROOTNAME - "foo" -dnl LIB_SUFFIX - ".so" -dnl REL_VERSION - "5.0" -dnl ABI_VERSION - "4.2.4" -define([CF__DEFINE_SHLIB_VARS],[ -CF__DEFINE_LIB_TARGET -SET_SHLIB_VARS="# begin CF__DEFINE_SHLIB_VARS\\ -LIB_BASENAME = \${LIB_PREFIX}\${LIB_ROOTNAME}\${LIB_SUFFIX}\\ -LIB_REL_NAME = \${LIB_BASENAME}.\${REL_VERSION}\\ -LIB_ABI_NAME = \${LIB_BASENAME}.\${ABI_VERSION}\\ -LIB_TARGET = $LIB_TARGET\\ -RM_SHARED_OPTS = $RM_SHARED_OPTS\\ -# end CF__DEFINE_SHLIB_VARS" -AC_SUBST(SET_SHLIB_VARS) -AC_SUBST(LIB_TARGET) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF__ICONV_BODY version: 2 updated: 2007/07/26 17:35:47 -dnl -------------- -dnl Test-code needed for iconv compile-checks -define([CF__ICONV_BODY],[ - iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);] -)dnl -dnl --------------------------------------------------------------------------- -dnl CF__ICONV_HEAD version: 1 updated: 2007/07/26 15:57:03 -dnl -------------- -dnl Header-files needed for iconv compile-checks -define([CF__ICONV_HEAD],[ -#include <stdlib.h> -#include <iconv.h>] -)dnl -dnl --------------------------------------------------------------------------- -dnl CF__INIT_SHLIB_RULES version: 2 updated: 2013/07/27 17:38:32 -dnl -------------------- -dnl The third parameter to AC_OUTPUT, used to pass variables needed for -dnl CF__ADD_SHLIB_RULES. -define([CF__INIT_SHLIB_RULES],[ -ABI_VERSION="$ABI_VERSION" -REL_VERSION="$REL_VERSION" -LIB_MODEL="$LIB_MODEL" -LIB_PREFIX="$LIB_PREFIX" -LIB_ROOTNAME="$LIB_ROOTNAME" -DFT_DEP_SUFFIX="$DFT_DEP_SUFFIX" -RM_SHARED_OPTS="$RM_SHARED_OPTS" -cf_cv_do_symlinks="$cf_cv_do_symlinks" -cf_cv_shlib_version="$cf_cv_shlib_version" -]) -dnl --------------------------------------------------------------------------- -dnl CF__INTL_BODY version: 3 updated: 2017/07/10 20:13:33 -dnl ------------- -dnl Test-code needed for libintl compile-checks -dnl $1 = parameter 2 from AM_WITH_NLS -define([CF__INTL_BODY],[ - bindtextdomain ("", ""); - return (int) gettext ("") - ifelse([$1], need-ngettext, [ + (int) ngettext ("", "", 0)], []) -#ifndef IGNORE_MSGFMT_HACK - [ + _nl_msg_cat_cntr] -#endif -]) -dnl --------------------------------------------------------------------------- -dnl CF__INTL_HEAD version: 1 updated: 2007/07/26 17:35:47 -dnl ------------- -dnl Header-files needed for libintl compile-checks -define([CF__INTL_HEAD],[ -#include <libintl.h> -extern int _nl_msg_cat_cntr; -])dnl -dnl --------------------------------------------------------------------------- -dnl jm_GLIBC21 version: 4 updated: 2015/05/10 19:52:14 -dnl ---------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl glibc21.m4 -dnl ==================== -dnl serial 2 -dnl -dnl Test for the GNU C Library, version 2.1 or newer. -dnl From Bruno Haible. -AC_DEFUN([jm_GLIBC21], -[ -AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include <features.h> -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no)]) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" -]) diff --git a/contrib/dialog/argv.c b/contrib/dialog/argv.c deleted file mode 100644 index e5dc4c8894bc..000000000000 --- a/contrib/dialog/argv.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * $Id: argv.c,v 1.13 2020/03/26 02:55:37 tom Exp $ - * - * argv - Reusable functions for argv-parsing. - * - * Copyright 2011-2018,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <string.h> - -/* - * Convert a string to an argv[], returning a char** index (which must be - * freed by the caller). The string is modified (replacing gaps between - * tokens with nulls). - */ -char ** -dlg_string_to_argv(char *blob) -{ - size_t n, k; - int pass; - size_t length = strlen(blob); - char **result = 0; - -#ifdef HAVE_DLG_TRACE - if (dialog_state.trace_output) { - DLG_TRACE(("# dlg_string_to_argv:\n")); - DLG_TRACE(("# given:\n")); - for (n = k = 0; n < length; ++n) { - if (blob[n] == '\n') { - DLG_TRACE(("#%s\t%.*s\\n\n", - k ? "+" : "", - (int) (n - k), blob + k)); - k = n + 1; - } - } - if (n > k) { - DLG_TRACE(("#%s\t%.*s\n", - k ? "+" : "", - (int) (n - k), blob + k)); - } - DLG_TRACE(("# result:\n")); - } -#endif - for (pass = 0; pass < 2; ++pass) { - bool inparm = FALSE; - bool quoted = FALSE; - char *param = blob; - size_t count = 0; - - for (n = 0; n < length; ++n) { - if (quoted && blob[n] == '"') { - quoted = FALSE; - } else if (blob[n] == '"') { - quoted = TRUE; - if (!inparm) { - if (pass) { - result[count] = param; - } - ++count; - inparm = TRUE; - } - } else if (!quoted && isspace(UCH(blob[n]))) { - if (inparm) { - if (pass) { - *param = '\0'; - } - ++param; - inparm = FALSE; - } - } else { - if (blob[n] == '\\') { - size_t n1 = (n + 1); - bool ignore = FALSE; - if (n1 == length) { - break; /* The string is terminated by a backslash */ - } else if ((blob[n1] == '\\') || - (blob[n1] == '"') || - (ignore = (blob[n1] == '\n'))) { - /* eat the backslash */ - if (pass) { - --length; - for (k = n; k < length; ++k) - blob[k] = blob[k + 1]; - blob[length] = '\0'; - } else { - ++param; /* pretend I ate it */ - } - if (ignore) - continue; - } - } - if (!inparm) { - if (pass) { - result[count] = param; - } - ++count; - inparm = TRUE; - } - if (pass) { - *param = blob[n]; - } - ++param; - } - } - - if (pass) { - *param = '\0'; - } else { - if (count) { - result = dlg_calloc(char *, count + 1); - assert_ptr(result, "string_to_argv"); - } else { - break; /* no tokens found */ - } - } - } -#ifdef HAVE_DLG_TRACE - if (result != 0) { - for (n = 0; result[n] != 0; ++n) { - DLG_TRACE(("#\targv[%d] = %s\n", (int) n, result[n])); - } - } -#endif - return result; -} - -/* - * Count the entries in an argv list. - */ -int -dlg_count_argv(char **argv) -{ - int result = 0; - - if (argv != 0) { - while (argv[result] != 0) - ++result; - } - return result; -} - -int -dlg_eat_argv(int *argcp, char ***argvp, int start, int count) -{ - int k; - - *argcp -= count; - for (k = start; k <= *argcp; k++) - (*argvp)[k] = (*argvp)[k + count]; - (*argvp)[*argcp] = 0; - return TRUE; -} diff --git a/contrib/dialog/arrows.c b/contrib/dialog/arrows.c deleted file mode 100644 index b8bf6c69e61c..000000000000 --- a/contrib/dialog/arrows.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - * $Id: arrows.c,v 1.53 2019/07/24 23:04:14 tom Exp $ - * - * arrows.c -- draw arrows to indicate end-of-range for lists - * - * Copyright 2000-2018,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> - -#ifdef USE_WIDE_CURSES -#if defined(CURSES_WACS_ARRAY) && !defined(CURSES_WACS_SYMBOLS) -/* workaround for NetBSD 5.1 curses */ -#undef WACS_DARROW -#undef WACS_UARROW -#define WACS_DARROW &(CURSES_WACS_ARRAY['.']) -#define WACS_UARROW &(CURSES_WACS_ARRAY['-']) -#endif -#define add_acs(win, code) wadd_wch(win, W ## code) -#else -#define add_acs(win, code) waddch(win, dlg_boxchar(code)) -#endif - -/* size of decorations */ -#define ON_LEFT 4 -#define ON_RIGHT 3 - -#ifdef HAVE_COLOR -static chtype -merge_colors(chtype foreground, chtype background) -{ - chtype result = foreground; - if ((foreground & A_COLOR) != (background & A_COLOR)) { - short fg_f, bg_f; - short fg_b, bg_b; - short fg_pair = (short) PAIR_NUMBER(foreground); - short bg_pair = (short) PAIR_NUMBER(background); - - if (pair_content(fg_pair, &fg_f, &bg_f) != ERR - && pair_content(bg_pair, &fg_b, &bg_b) != ERR) { - result &= ~A_COLOR; - result |= dlg_color_pair(fg_f, bg_b); - } - } - return result; -} -#else -#define merge_colors(f,b) (f) -#endif - -/* - * If we have help-line text, e.g., from "--hline", draw it between the other - * decorations at the bottom of the dialog window. - */ -void -dlg_draw_helpline(WINDOW *win, bool decorations) -{ - int bottom; - - if (dialog_vars.help_line != 0 - && dialog_vars.help_line[0] != 0 - && (bottom = getmaxy(win) - 1) > 0) { - chtype attr = A_NORMAL; - int cols = dlg_count_columns(dialog_vars.help_line); - int other = decorations ? (ON_LEFT + ON_RIGHT) : 0; - int avail = (getmaxx(win) - other - 2); - int limit = dlg_count_real_columns(dialog_vars.help_line) + 2; - - if (limit < avail) { - int cur_x, cur_y; - - getyx(win, cur_y, cur_x); - other = decorations ? ON_LEFT : 0; - (void) wmove(win, bottom, other + (avail - limit) / 2); - waddch(win, '['); - dlg_print_text(win, dialog_vars.help_line, cols, &attr); - waddch(win, ']'); - wmove(win, cur_y, cur_x); - } - } -} - -void -dlg_draw_arrows2(WINDOW *win, - int top_arrow, - int bottom_arrow, - int x, - int top, - int bottom, - chtype attr, - chtype borderattr) -{ - chtype save = dlg_get_attrs(win); - int cur_x, cur_y; - int limit_x = getmaxx(win); - bool draw_top = TRUE; - bool is_toplevel = (wgetparent(win) == stdscr); - - getyx(win, cur_y, cur_x); - - /* - * If we're drawing a centered title, do not overwrite with the arrows. - */ - if (dialog_vars.title && is_toplevel && (top - getbegy(win)) < MARGIN) { - int have = (limit_x - dlg_count_columns(dialog_vars.title)) / 2; - int need = x + 5; - if (need > have) - draw_top = FALSE; - } - - if (draw_top) { - (void) wmove(win, top, x); - if (top_arrow) { - dlg_attrset(win, merge_colors(uarrow_attr, attr)); - (void) add_acs(win, ACS_UARROW); - (void) waddstr(win, "(-)"); - } else { - dlg_attrset(win, attr); - (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT); - } - } - mouse_mkbutton(top, x - 1, 6, KEY_PPAGE); - - (void) wmove(win, bottom, x); - if (bottom_arrow) { - dlg_attrset(win, merge_colors(darrow_attr, borderattr)); - (void) add_acs(win, ACS_DARROW); - (void) waddstr(win, "(+)"); - } else { - dlg_attrset(win, borderattr); - (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT); - } - mouse_mkbutton(bottom, x - 1, 6, KEY_NPAGE); - - (void) wmove(win, cur_y, cur_x); - wrefresh(win); - - dlg_attrset(win, save); -} - -void -dlg_draw_scrollbar(WINDOW *win, - long first_data, - long this_data, - long next_data, - long total_data, - int left, - int right, - int top, - int bottom, - chtype attr, - chtype borderattr) -{ - int oldy, oldx; - - chtype save = dlg_get_attrs(win); - int top_arrow = (first_data != 0); - int bottom_arrow = (next_data < total_data); - - getyx(win, oldy, oldx); - - dlg_draw_helpline(win, TRUE); - if (bottom_arrow || top_arrow || dialog_state.use_scrollbar) { - char buffer[80]; - int percent; - int len; - - percent = (!total_data - ? 100 - : (int) ((next_data * 100) - / total_data)); - - if (percent < 0) - percent = 0; - else if (percent > 100) - percent = 100; - - dlg_attrset(win, position_indicator_attr); - (void) sprintf(buffer, "%d%%", percent); - (void) wmove(win, bottom, right - 7); - (void) waddstr(win, buffer); - if ((len = dlg_count_columns(buffer)) < 4) { - dlg_attrset(win, border_attr); - whline(win, dlg_boxchar(ACS_HLINE), 4 - len); - } - } -#define BARSIZE(num) (int) (0.5 + (double) ((all_high * (int) (num)) / (double) total_data)) -#define ORDSIZE(num) (int) ((double) ((all_high * (int) (num)) / (double) all_diff)) - - if (dialog_state.use_scrollbar) { - int all_high = (bottom - top - 1); - - this_data = MAX(0, this_data); - - if (total_data > 0 && all_high > 0) { - int all_diff = (int) (total_data + 1); - int bar_diff = (int) (next_data + 1 - this_data); - int bar_high; - - bar_high = ORDSIZE(bar_diff); - if (bar_high <= 0) - bar_high = 1; - - if (bar_high < all_high) { - int bar_last = BARSIZE(next_data); - int bar_y; - - wmove(win, top + 1, right); - - dlg_attrset(win, save); - wvline(win, ACS_VLINE | A_REVERSE, all_high); - - bar_y = ORDSIZE(this_data); - if (bar_y >= bar_last && bar_y > 0) - bar_y = bar_last - 1; - if (bar_last - bar_y > bar_high && bar_high > 1) - ++bar_y; - bar_last = MIN(bar_last, all_high); - - wmove(win, top + 1 + bar_y, right); - - dlg_attrset(win, position_indicator_attr); - dlg_attron(win, A_REVERSE); -#if defined(WACS_BLOCK) && defined(NCURSES_VERSION) && defined(USE_WIDE_CURSES) - wvline_set(win, WACS_BLOCK, bar_last - bar_y); -#else - wvline(win, ACS_BLOCK, bar_last - bar_y); -#endif - } - } - } - dlg_draw_arrows2(win, - top_arrow, - bottom_arrow, - left + ARROWS_COL, - top, - bottom, - attr, - borderattr); - - dlg_attrset(win, save); - wmove(win, oldy, oldx); -} - -void -dlg_draw_arrows(WINDOW *win, - int top_arrow, - int bottom_arrow, - int x, - int top, - int bottom) -{ - dlg_draw_helpline(win, TRUE); - dlg_draw_arrows2(win, - top_arrow, - bottom_arrow, - x, - top, - bottom, - menubox_border2_attr, - menubox_border_attr); -} diff --git a/contrib/dialog/buildlist.c b/contrib/dialog/buildlist.c deleted file mode 100644 index e21700e7c8ae..000000000000 --- a/contrib/dialog/buildlist.c +++ /dev/null @@ -1,1268 +0,0 @@ -/* - * $Id: buildlist.c,v 1.94 2020/11/23 00:37:17 tom Exp $ - * - * buildlist.c -- implements the buildlist dialog - * - * Copyright 2012-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -/* - * Visually like menubox, but two columns. - */ - -#define sLEFT (-2) -#define sRIGHT (-1) - -#define KEY_LEFTCOL '^' -#define KEY_RIGHTCOL '$' - -#define MIN_HIGH (1 + (5 * MARGIN)) - -typedef struct { - WINDOW *win; - int box_y; - int box_x; - int top_index; - int cur_index; - DIALOG_LISTITEM **ip; /* pointers to items in this list */ -} MY_DATA; - -#if 0 -#define TRACE(p) dlg_trace_msg p -#else -#define TRACE(p) /* nothing */ -#endif - -#define okIndex(all,index) ((index) >= 0 && (index) < (all)->item_no) - -#define myItem(p,n) ((p)->ip)[n] -#define mySide(n) ((n)?"right":"left") - -typedef struct { - DIALOG_LISTITEM *items; /* all items in the widget */ - int base_y; /* base for mouse coordinates */ - int base_x; - int use_height; /* actual size of column box */ - int use_width; - int item_no; - int check_x; - int item_x; - MY_DATA list[2]; -} ALL_DATA; - -/* - * Translate a choice from items[] to a row-number in an unbounded column, - * starting at zero. - */ -static int -index2row(ALL_DATA * all, int choice, int selected) -{ - MY_DATA *data = all->list + selected; - int result = -1; - - if (okIndex(all, choice)) { - int row; - - for (row = 0; row < all->item_no; ++row) { - TRACE(("!... choice %d: %p vs row %d: %p\n", - choice, all->items + choice, - row, myItem(data, row))); - if (myItem(data, row) == all->items + choice) { - result = row; - break; - } - } - } - TRACE(("! index2row(choice %d, %s) = %d\n", choice, mySide(selected), result)); - return result; -} - -/* - * Convert a row-number back to an item number, i.e., index into items[]. - */ -static int -row2index(ALL_DATA * all, int row, int selected) -{ - MY_DATA *data = all->list + selected; - int result = -1; - int n; - for (n = 0; n < all->item_no; ++n) { - TRACE(("!... row %d: %p vs choice %d: %p\n", - row, myItem(data, row), - n, all->items + n)); - if (myItem(data, row) == all->items + n) { - result = n; - break; - } - } - TRACE(("! row2index(row %d, %s) = %d\n", row, mySide(selected), result)); - return result; -} - -/* - * Print list item. The 'selected' parameter is true if 'choice' is the - * current item. That one is colored differently from the other items. - */ -static void -print_item(ALL_DATA * all, - WINDOW *win, - DIALOG_LISTITEM * item, - int row, - int selected) -{ - chtype save = dlg_get_attrs(win); - int i; - bool both = (!dialog_vars.no_tags && !dialog_vars.no_items); - bool first = TRUE; - int climit = (all->item_x - all->check_x - 1); - const char *show = (dialog_vars.no_items - ? item->name - : item->text); - - /* Clear 'residue' of last item */ - dlg_attrset(win, menubox_attr); - (void) wmove(win, row, 0); - for (i = 0; i < getmaxx(win); i++) - (void) waddch(win, ' '); - - (void) wmove(win, row, all->check_x); - dlg_attrset(win, menubox_attr); - - if (both) { - dlg_print_listitem(win, item->name, climit, first, selected); - (void) waddch(win, ' '); - first = FALSE; - } - - (void) wmove(win, row, all->item_x); - climit = (getmaxx(win) - all->item_x + 1); - dlg_print_listitem(win, show, climit, first, selected); - - if (selected) { - dlg_item_help(item->help); - } - dlg_attrset(win, save); -} - -/* - * Prints either the left (unselected) or right (selected) list. - */ -static void -print_1_list(ALL_DATA * all, - int choice, - int selected) -{ - MY_DATA *data = all->list + selected; - DIALOG_LISTITEM *target = (okIndex(all, choice) - ? all->items + choice - : 0); - WINDOW *win = data->win; - int i, j; - int last = 0; - int top_row = index2row(all, data->top_index, selected); - int max_rows = getmaxy(win); - - TRACE(("! print_1_list %d %s, top %d\n", choice, mySide(selected), top_row)); - for (i = j = 0; j < max_rows; i++) { - int ii = i + top_row; - if (ii < 0) { - continue; - } else if (myItem(data, ii)) { - print_item(all, - win, - myItem(data, ii), - j, myItem(data, ii) == target); - last = ++j; - } else { - break; - } - } - if (wmove(win, last, 0) != ERR) { - while (waddch(win, ' ') != ERR) { - ; - } - } - (void) wnoutrefresh(win); -} - -/* - * Return the previous item from the list, staying in the same column. If no - * further movement is possible, return the same choice as given. - */ -static int -prev_item(ALL_DATA * all, int choice, int selected) -{ - int result = choice; - int row = index2row(all, choice, selected); - if (row > 0) { - row--; - result = row2index(all, row, selected); - } - TRACE(("! prev_item choice %d, %s = %d\n", choice, mySide(selected), result)); - return result; -} - -/* - * Return true if the given choice is on the first page in the current column. - */ -static bool -stop_prev(ALL_DATA * all, int choice, int selected) -{ - return (prev_item(all, choice, selected) == choice); -} - -static bool -check_hotkey(DIALOG_LISTITEM * items, int choice, int selected) -{ - bool result = FALSE; - - if ((items[choice].state != 0) == selected) { - if (dlg_match_char(dlg_last_getc(), - (dialog_vars.no_tags - ? items[choice].text - : items[choice].name))) { - result = TRUE; - } - } - return result; -} - -/* - * Return the next item from the list, staying in the same column. If no - * further movement is possible, return the same choice as given. - */ -static int -next_item(ALL_DATA * all, int choice, int selected) -{ - MY_DATA *data = all->list + selected; - int result = choice; - int row = index2row(all, choice, selected); - TRACE(("! given item %d, testing next-item on row %d\n", choice, row + 1)); - if (myItem(data, row + 1)) { - result = row2index(all, row + 1, selected); - } - TRACE(("! next_item(%d, %s) ->%d\n", choice, mySide(selected), result)); - return result; -} - -/* - * Return the first choice from items[] for the given column. - */ -static int -first_item(ALL_DATA * all, int selected) -{ - MY_DATA *data = all->list + selected; - int result = -1; - - if (myItem(data, 0) != 0) { - int n; - - for (n = 0; n < all->item_no; ++n) { - if (myItem(data, 0) == &all->items[n]) { - result = n; - break; - } - } - } - TRACE(("! first_item %s = %d\n", mySide(selected), result)); - return result; -} - -/* - * Return the last choice from items[] for the given column. - */ -static int -last_item(ALL_DATA * all, int selected) -{ - MY_DATA *data = all->list + selected; - int result = -1; - int n; - - for (n = 0; myItem(data, n) != 0; ++n) { - result = n; - } - if (result >= 0) { - result = row2index(all, result, selected); - } - TRACE(("! last_item %s = %d\n", mySide(selected), result)); - return result; -} - -static int -skip_rows(ALL_DATA * all, int row, int skip, int selected) -{ - MY_DATA *data = all->list + selected; - int result = row; - - if (skip > 0) { - int n; - - for (n = row + 1; (n < all->item_no) && (n <= row + skip); ++n) { - if (myItem(data, n) == 0) - break; - result = n; - } - } else if (skip < 0) { - result -= skip; - if (result < 0) - result = 0; - } - TRACE(("! skip_rows row %d, skip %d, %s = %d\n", - row, skip, mySide(selected), result)); - return result; -} - -/* - * Find the closest item in the given column starting with the given choice. - */ -static int -closest_item(ALL_DATA * all, int choice, int selected) -{ - int prev = choice; - int next = choice; - int result = choice; - int n; - - for (n = choice; n >= 0; --n) { - if ((all->items[n].state != 0) == selected) { - prev = n; - break; - } - } - for (n = choice; n < all->item_no; ++n) { - if ((all->items[n].state != 0) == selected) { - next = n; - break; - } - } - if (prev != choice) { - result = prev; - if (next != choice) { - if ((choice - prev) > (next - choice)) { - result = next; - } - } - } else if (next != choice) { - result = next; - } - TRACE(("! XXX closest item choice %d, %s = %d\n", - choice, mySide(selected), result)); - return result; -} - -static void -print_both(ALL_DATA * all, - int choice) -{ - int selected; - int cur_y, cur_x; - WINDOW *dialog = wgetparent(all->list[0].win); - - TRACE(("! print_both %d\n", choice)); - getyx(dialog, cur_y, cur_x); - for (selected = 0; selected < 2; ++selected) { - MY_DATA *data = all->list + selected; - WINDOW *win = data->win; - int thumb_top = index2row(all, data->top_index, selected); - int thumb_max = index2row(all, -1, selected); - int thumb_end = thumb_top + getmaxy(win); - - print_1_list(all, choice, selected); - - dlg_mouse_setcode(selected * KEY_MAX); - dlg_draw_scrollbar(dialog, - (long) (data->top_index), - (long) (thumb_top), - (long) MIN(thumb_end, thumb_max), - (long) thumb_max, - data->box_x + all->check_x, - data->box_x + getmaxx(win), - data->box_y, - data->box_y + getmaxy(win) + 1, - menubox_border2_attr, - menubox_border_attr); - } - (void) wmove(dialog, cur_y, cur_x); - dlg_mouse_setcode(0); -} - -static void -set_top_item(ALL_DATA * all, int choice, int selected) -{ - if (choice != all->list[selected].top_index) { - DLG_TRACE(("# set top of %s column to %d\n", - mySide(selected), - choice)); - all->list[selected].top_index = choice; - } -} - -/* - * Adjust the top-index as needed to ensure that it and the given item are - * visible. - */ -static void -fix_top_item(ALL_DATA * all, int cur_item, int selected) -{ - int top_item = all->list[selected].top_index; - int cur_row = index2row(all, cur_item, selected); - int top_row = index2row(all, top_item, selected); - - if (cur_row < top_row) { - top_item = cur_item; - } else if ((cur_row - top_row) >= all->use_height) { - top_item = row2index(all, cur_row + 1 - all->use_height, selected); - } - if (cur_row < all->use_height) { - top_item = row2index(all, 0, selected); - } - DLG_TRACE(("# fix_top_item(cur_item %d, %s) ->top_item %d\n", - cur_item, mySide(selected), top_item)); - set_top_item(all, top_item, selected); -} - -static void -append_right_side(ALL_DATA * all, int choice) -{ - MY_DATA *data = &all->list[1]; - int j; - for (j = 0; j < all->item_no; ++j) { - if (myItem(data, j) == 0) { - myItem(data, j) = &all->items[choice]; - break; - } - } -} - -static void -amend_right_side(ALL_DATA * all, int choice) -{ - MY_DATA *data = &all->list[1]; - int j, k; - for (j = 0; j < all->item_no; ++j) { - if (myItem(data, j) == &all->items[choice]) { - for (k = j; k < all->item_no; ++k) { - if ((myItem(data, k) = myItem(data, k + 1)) == 0) - break; - } - break; - } - } -} - -static void -fill_one_side(ALL_DATA * all, int selected) -{ - int i, j; - MY_DATA *data = all->list + selected; - - for (i = j = 0; j < all->item_no; ++j) { - myItem(data, i) = 0; - if ((all->items[j].state != 0) == selected) { - myItem(data, i) = all->items + j; - TRACE(("! %s item[%d] %p = all[%d] %p\n", - mySide(selected), - i, myItem(data, i), - j, all->items + j)); - ++i; - } - } - myItem(data, i) = 0; -} - -static void -fill_both_sides(ALL_DATA * all) -{ - int k; - - for (k = 0; k < 2; ++k) { - fill_one_side(all, k); - } -} - -/* - * This is an alternate interface to 'buildlist' which allows the application - * to read the list item states back directly without putting them in the - * output buffer. - */ -int -dlg_buildlist(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - DIALOG_LISTITEM * items, - const char *states, - int order_mode, - int *current_item) -{ -#define THIS_FUNC "dlg_buildlist" - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE+KEY_MAX) ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE+KEY_MAX) ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFTCOL ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHTCOL ), - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - ALL_DATA all; - MY_DATA *data = all.list; - int i, j, k, key2, found, x, y, cur_x, cur_y; - int key, fkey; - bool save_visit = dialog_state.visit_items; - int button; - int cur_item; - int name_width, text_width, full_width, list_width; - int result = DLG_EXIT_UNKNOWN; - int num_states; - bool first = TRUE; - WINDOW *dialog; - char *prompt; - const char **buttons = dlg_ok_labels(); - const char *widget_name = "buildlist"; - - dialog_state.plain_buttons = TRUE; - - /* - * Unlike other uses of --visit-items, we have two windows to visit. - */ - if (dialog_state.visit_cols) - dialog_state.visit_cols = 2; - - memset(&all, 0, sizeof(all)); - all.items = items; - all.item_no = item_no; - for (k = 0; k < 2; ++k) { - data[k].ip = dlg_calloc(DIALOG_LISTITEM *, (item_no + 2)); - } - fill_both_sides(&all); - - if (dialog_vars.default_item != 0) { - cur_item = dlg_default_listitem(items); - } else { - if ((cur_item = first_item(&all, 0)) < 0) - cur_item = first_item(&all, 1); - } - button = (dialog_state.visit_items - ? (items[cur_item].state ? sRIGHT : sLEFT) - : dlg_default_button()); - - dlg_does_output(); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - - all.use_height = list_height; - all.use_width = (2 * (dlg_calc_list_width(item_no, items) - + 4 - + 2 * MARGIN) - + 1); - all.use_width = MAX(26, all.use_width); - if (all.use_height == 0) { - /* calculate height without items (4) */ - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, all.use_width); - dlg_calc_listh(&height, &all.use_height, item_no); - } else { - dlg_auto_size(title, prompt, - &height, &width, - MIN_HIGH + all.use_height, all.use_width); - } - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - /* we need at least two states */ - if (states == 0 || strlen(states) < 2) - states = " *"; - num_states = (int) strlen(states); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, widget_name, binding); - dlg_register_buttons(dialog, widget_name, buttons); - - dlg_mouse_setbase(all.base_x = x, all.base_y = y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - list_width = (width - 6 * MARGIN - 2) / 2; - getyx(dialog, cur_y, cur_x); - data[0].box_y = cur_y + 1; - data[0].box_x = MARGIN + 1; - data[1].box_y = cur_y + 1; - data[1].box_x = data[0].box_x + 1 + 2 * MARGIN + list_width; - - /* - * After displaying the prompt, we know how much space we really have. - * Limit the list to avoid overwriting the ok-button. - */ - all.use_height = height - MIN_HIGH - cur_y; - if (all.use_height <= 0) - all.use_height = 1; - - for (k = 0; k < 2; ++k) { - /* create new window for the list */ - data[k].win = dlg_sub_window(dialog, all.use_height, list_width, - y + data[k].box_y + 1, - x + data[k].box_x + 1); - - /* draw a box around the list items */ - dlg_draw_box(dialog, data[k].box_y, data[k].box_x, - all.use_height + 2 * MARGIN, - list_width + 2 * MARGIN, - menubox_border_attr, menubox_border2_attr); - } - - text_width = 0; - name_width = 0; - /* Find length of longest item to center buildlist */ - for (i = 0; i < item_no; i++) { - text_width = MAX(text_width, dlg_count_columns(items[i].text)); - name_width = MAX(name_width, dlg_count_columns(items[i].name)); - } - - /* If the name+text is wider than the list is allowed, then truncate - * one or both of them. If the name is no wider than 1/4 of the list, - * leave it intact. - */ - all.use_width = (list_width - 6 * MARGIN); - if (dialog_vars.no_tags && !dialog_vars.no_items) { - full_width = MIN(all.use_width, text_width); - } else if (dialog_vars.no_items) { - full_width = MIN(all.use_width, name_width); - } else { - if (text_width >= 0 - && name_width >= 0 - && all.use_width > 0 - && text_width + name_width > all.use_width) { - int need = (int) (0.25 * all.use_width); - if (name_width > need) { - int want = (int) (all.use_width * ((double) name_width) / - (text_width + name_width)); - name_width = (want > need) ? want : need; - } - text_width = all.use_width - name_width; - } - full_width = text_width + name_width; - } - - all.check_x = (all.use_width - full_width) / 2; - all.item_x = ((dialog_vars.no_tags - ? 0 - : (dialog_vars.no_items - ? 0 - : (name_width + 2))) - + all.check_x); - - /* ensure we are scrolled to show the current choice */ - j = MIN(all.use_height, item_no); - for (i = 0; i < 2; ++i) { - if ((items[cur_item].state != 0) == i) { - int top_item = cur_item - j + 1; - if (top_item < 0) - top_item = 0; - while ((items[top_item].state != 0) != i) - ++top_item; - set_top_item(&all, top_item, i); - } else { - set_top_item(&all, 0, i); - } - } - - /* register the new window, along with its borders */ - for (i = 0; i < 2; ++i) { - dlg_mouse_mkbigregion(data[i].box_y + 1, - data[i].box_x, - all.use_height, - list_width + 2, - 2 * KEY_MAX + (i * (1 + all.use_height)), - 1, 1, 1 /* by lines */ ); - } - - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - - while (result == DLG_EXIT_UNKNOWN) { - int which = (items[cur_item].state != 0); - MY_DATA *moi = data + which; - int at_top = index2row(&all, moi->top_index, which); - int at_end = index2row(&all, -1, which); - int at_bot = skip_rows(&all, at_top, all.use_height, which); - int was_mouse; - - DLG_TRACE(("# ** state %d:%d top %d (%d:%d:%d) %s\n", - cur_item, item_no - 1, - moi->top_index, - at_top, at_bot, at_end, - mySide(which))); - - if (first) { - print_both(&all, cur_item); - dlg_trace_win(dialog); - first = FALSE; - } - - if (button < 0) { /* --visit-items */ - int cur_row = index2row(&all, cur_item, which); - cur_y = (data[which].box_y - + cur_row - + 1); - if (at_top > 0) - cur_y -= at_top; - cur_x = (data[which].box_x - + all.check_x + 1); - DLG_TRACE(("# ...visit row %d (%d,%d)\n", cur_row, cur_y, cur_x)); - wmove(dialog, cur_y, cur_x); - } - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - was_mouse = (fkey && is_DLGK_MOUSE(key)); - if (was_mouse) - key -= M_EVENT; - - if (!was_mouse) { - ; - } else if (key >= 2 * KEY_MAX) { - i = (key - 2 * KEY_MAX) % (1 + all.use_height); - j = (key - 2 * KEY_MAX) / (1 + all.use_height); - k = row2index(&all, i + at_top, j); - DLG_TRACE(("# MOUSE column %d, row %d ->item %d\n", j, i, k)); - if (k >= 0 && j < 2) { - if (j != which) { - /* - * Mouse click was in the other column. - */ - moi = data + j; - fix_top_item(&all, k, j); - } - which = j; - at_top = index2row(&all, moi->top_index, which); - at_bot = skip_rows(&all, at_top, all.use_height, which); - cur_item = k; - print_both(&all, cur_item); - key = DLGK_TOGGLE; /* force the selected item to toggle */ - } else { - beep(); - continue; - } - fkey = FALSE; - } else if (key >= KEY_MIN) { - if (key > KEY_MAX) { - if (which == 0) { - key = KEY_RIGHTCOL; /* switch to right-column */ - fkey = FALSE; - } else { - key -= KEY_MAX; - } - } else { - if (which == 1) { - key = KEY_LEFTCOL; /* switch to left-column */ - fkey = FALSE; - } - } - key = dlg_lookup_key(dialog, key, &fkey); - } - - /* - * A space toggles the item status. Normally we put the cursor on - * the next available item in the same column. But if there are no - * more items in the column, move the cursor to the other column. - */ - if (key == DLGK_TOGGLE) { - int new_choice; - int new_state = items[cur_item].state + 1; - - if ((new_choice = next_item(&all, cur_item, which)) == cur_item) { - new_choice = prev_item(&all, cur_item, which); - } - DLG_TRACE(("# cur_item %d, new_choice:%d\n", cur_item, new_choice)); - /* FIXME - how to test and handle multiple states? */ - if (new_state >= num_states) - new_state = 0; - - items[cur_item].state = new_state; - if (order_mode) { - fill_one_side(&all, 0); - if (new_state) { - append_right_side(&all, cur_item); - } else { - amend_right_side(&all, cur_item); - } - } else { - fill_both_sides(&all); - } - if (cur_item == moi->top_index) { - set_top_item(&all, new_choice, which); - } - - if (new_choice >= 0) { - fix_top_item(&all, cur_item, !which); - cur_item = new_choice; - } - print_both(&all, cur_item); - dlg_trace_win(dialog); - continue; /* wait for another key press */ - } - - /* - * Check if key pressed matches first character of any item tag in - * list. If there is more than one match, we will cycle through - * each one as the same key is pressed repeatedly. - */ - found = FALSE; - if (!fkey) { - if (button < 0 || !dialog_state.visit_items) { - for (j = cur_item + 1; j < item_no; j++) { - if (check_hotkey(items, j, which)) { - found = TRUE; - i = j; - break; - } - } - if (!found) { - for (j = 0; j <= cur_item; j++) { - if (check_hotkey(items, j, which)) { - found = TRUE; - i = j; - break; - } - } - } - if (found) - dlg_flush_getc(); - } else if ((j = dlg_char_to_button(key, buttons)) >= 0) { - button = j; - ungetch('\n'); - continue; - } - } - - /* - * A single digit (1-9) positions the selection to that line in the - * current screen. - */ - if (!found - && (key <= '9') - && (key > '0') - && (key - '1' < at_bot)) { - found = TRUE; - i = key - '1'; - } - - if (!found && fkey) { - switch (key) { - case DLGK_FIELD_PREV: - if ((button == sRIGHT) && dialog_state.visit_items) { - key = DLGK_GRID_LEFT; - button = sLEFT; - } else { - button = dlg_prev_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - if (button == sRIGHT) { - key = DLGK_GRID_RIGHT; - } else { - continue; - } - } - break; - case DLGK_FIELD_NEXT: - if ((button == sLEFT) && dialog_state.visit_items) { - key = DLGK_GRID_RIGHT; - button = sRIGHT; - } else { - button = dlg_next_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - if (button == sLEFT) { - key = DLGK_GRID_LEFT; - } else { - continue; - } - } - break; - } - } - - if (!found && fkey) { - i = cur_item; - found = TRUE; - switch (key) { - case DLGK_GRID_LEFT: - i = closest_item(&all, cur_item, 0); - fix_top_item(&all, i, 0); - break; - case DLGK_GRID_RIGHT: - if (order_mode) { - i = last_item(&all, 1); - } else { - i = closest_item(&all, cur_item, 1); - } - fix_top_item(&all, i, 1); - break; - case DLGK_PAGE_PREV: - if (cur_item > moi->top_index) { - i = moi->top_index; - } else if (moi->top_index != 0) { - int temp = at_top; - if ((temp -= all.use_height) < 0) - temp = 0; - i = row2index(&all, temp, which); - } - break; - case DLGK_PAGE_NEXT: - if ((at_end - at_bot) < all.use_height) { - i = next_item(&all, - row2index(&all, at_end, which), - which); - } else { - i = next_item(&all, - row2index(&all, at_bot, which), - which); - at_top = at_bot; - set_top_item(&all, - next_item(&all, - row2index(&all, at_top, which), - which), - which); - at_bot = skip_rows(&all, at_top, all.use_height, which); - at_bot = MIN(at_bot, at_end); - } - break; - case DLGK_ITEM_FIRST: - i = first_item(&all, which); - break; - case DLGK_ITEM_LAST: - i = last_item(&all, which); - break; - case DLGK_ITEM_PREV: - i = prev_item(&all, cur_item, which); - if (stop_prev(&all, cur_item, which)) - continue; - break; - case DLGK_ITEM_NEXT: - i = next_item(&all, cur_item, which); - break; - default: - found = FALSE; - break; - } - } - - if (found) { - if (i != cur_item) { - int now_at = index2row(&all, i, which); - int oops = item_no; - int old_item; - - DLG_TRACE(("# <--CHOICE %d\n", i)); - DLG_TRACE(("# <--topITM %d\n", moi->top_index)); - DLG_TRACE(("# <--now_at %d\n", now_at)); - DLG_TRACE(("# <--at_top %d\n", at_top)); - DLG_TRACE(("# <--at_bot %d\n", at_bot)); - - if (now_at >= at_bot) { - while (now_at >= at_bot) { - if ((at_bot - at_top) >= all.use_height) { - set_top_item(&all, - next_item(&all, moi->top_index, which), - which); - } - at_top = index2row(&all, moi->top_index, which); - at_bot = skip_rows(&all, at_top, all.use_height, which); - - DLG_TRACE(("# ...at_bot %d (now %d vs %d)\n", - at_bot, now_at, at_end)); - DLG_TRACE(("# ...topITM %d\n", moi->top_index)); - DLG_TRACE(("# ...at_top %d (diff %d)\n", at_top, - at_bot - at_top)); - - if (at_bot >= at_end) { - /* - * If we bumped into the end, move the top-item - * down by one line so that we can display the - * last item in the list. - */ - if ((at_bot - at_top) > all.use_height) { - set_top_item(&all, - next_item(&all, moi->top_index, which), - which); - } else if (at_top > 0 && - (at_bot - at_top) >= all.use_height) { - set_top_item(&all, - next_item(&all, moi->top_index, which), - which); - } - break; - } - if (--oops < 0) { - DLG_TRACE(("# OOPS-forward\n")); - break; - } - } - } else if (now_at < at_top) { - while (now_at < at_top) { - old_item = moi->top_index; - set_top_item(&all, - prev_item(&all, moi->top_index, which), - which); - at_top = index2row(&all, moi->top_index, which); - - DLG_TRACE(("# ...at_top %d (now %d)\n", at_top, now_at)); - DLG_TRACE(("# ...topITM %d\n", moi->top_index)); - - if (moi->top_index >= old_item) - break; - if (at_top <= now_at) - break; - if (--oops < 0) { - DLG_TRACE(("# OOPS-backward\n")); - break; - } - } - } - DLG_TRACE(("# -->now_at %d\n", now_at)); - cur_item = i; - print_both(&all, cur_item); - } - dlg_trace_win(dialog); - continue; /* wait for another key press */ - } - - if (fkey) { - switch (key) { - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - free(prompt); - _dlg_resize_cleanup(dialog); - /* repaint */ - first = TRUE; - goto retry; -#endif - default: - if (was_mouse) { - if ((key2 = dlg_ok_buttoncode(key)) >= 0) { - result = key2; - break; - } - beep(); - } - } - } else if (key > 0) { - beep(); - } - } - - /* - * If told to re-order the list, update it to reflect the current display: - * a) The left-side will be at the beginning, without gaps. - * b) The right-side will follow, in display-order. - */ - if (order_mode) { - DIALOG_LISTITEM *redo; - int row; - int choice; - int new_item = cur_item; - - redo = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1); - assert_ptr(redo, THIS_FUNC); - - j = 0; - for (k = 0; k < 2; ++k) { - for (row = 0; row < item_no; ++row) { - if (myItem(all.list + k, row) == 0) - break; - choice = row2index(&all, row, k); - if (choice == cur_item) - new_item = j; - redo[j++] = items[choice]; - } - } - - cur_item = new_item; - memcpy(items, redo, sizeof(DIALOG_LISTITEM) * (size_t) (item_no + 1)); - - free(redo); - } - - for (k = 0; k < 2; ++k) { - free(data[k].ip); - } - - dialog_state.visit_cols = save_visit; - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - - *current_item = cur_item; - return result; -#undef THIS_FUNC -} - -/* - * Display a dialog box with a list of options that can be turned on or off - */ -int -dialog_buildlist(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - char **items, - int order_mode) -{ -#define THIS_FUNC "dialog_buildlist" - int result; - int i, j; - DIALOG_LISTITEM *listitems; - bool separate_output = dialog_vars.separate_output; - bool show_status = FALSE; - int current = 0; - char *help_result; - - DLG_TRACE(("# buildlist args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("lheight", list_height); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - DLG_TRACE2N("order", order_mode != 0); - - listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1); - assert_ptr(listitems, THIS_FUNC); - - for (i = j = 0; i < item_no; ++i) { - listitems[i].name = items[j++]; - listitems[i].text = (dialog_vars.no_items - ? dlg_strempty() - : items[j++]); - listitems[i].state = !dlg_strcmp(items[j++], "on"); - listitems[i].help = ((dialog_vars.item_help) - ? items[j++] - : dlg_strempty()); - } - dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - - result = dlg_buildlist(title, - cprompt, - height, - width, - list_height, - item_no, - listitems, - NULL, - order_mode, - ¤t); - - switch (result) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - show_status = TRUE; - break; - case DLG_EXIT_HELP: - dlg_add_help_listitem(&result, &help_result, &listitems[current]); - if ((show_status = dialog_vars.help_status)) { - if (separate_output) { - dlg_add_string(help_result); - } else { - dlg_add_quoted(help_result); - } - } else { - dlg_add_string(help_result); - } - break; - } - - if (show_status) { - for (i = 0; i < item_no; i++) { - if (listitems[i].state) { - if (dlg_need_separator()) - dlg_add_separator(); - if (separate_output) { - dlg_add_string(listitems[i].name); - } else { - dlg_add_quoted(listitems[i].name); - } - } - } - AddLastKey(); - } - - dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - free(listitems); - return result; -#undef THIS_FUNC -} diff --git a/contrib/dialog/buttons.c b/contrib/dialog/buttons.c deleted file mode 100644 index 1a9c87ee67a5..000000000000 --- a/contrib/dialog/buttons.c +++ /dev/null @@ -1,833 +0,0 @@ -/* - * $Id: buttons.c,v 1.106 2021/01/17 17:03:16 tom Exp $ - * - * buttons.c -- draw buttons, e.g., OK/Cancel - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#ifdef NEED_WCHAR_H -#include <wchar.h> -#endif - -#define MIN_BUTTON (-dialog_state.visit_cols) -#define CHR_BUTTON (!dialog_state.plain_buttons) - -static void -center_label(char *buffer, int longest, const char *label) -{ - int len = dlg_count_columns(label); - int right = 0; - - *buffer = 0; - if (len < longest) { - int left = (longest - len) / 2; - right = (longest - len - left); - if (left > 0) - sprintf(buffer, "%*s", left, " "); - } - strcat(buffer, label); - if (right > 0) - sprintf(buffer + strlen(buffer), "%*s", right, " "); -} - -/* - * Parse a multibyte character out of the string, set it past the parsed - * character. - */ -static int -string_to_char(const char **stringp) -{ - int result; -#ifdef USE_WIDE_CURSES - const char *string = *stringp; - size_t have = strlen(string); - size_t len; - wchar_t cmp2[2]; - mbstate_t state; - - memset(&state, 0, sizeof(state)); - len = mbrlen(string, have, &state); - - if ((int) len > 0 && len <= have) { - size_t check; - - memset(&state, 0, sizeof(state)); - memset(cmp2, 0, sizeof(cmp2)); - check = mbrtowc(cmp2, string, len, &state); - if ((int) check <= 0) - cmp2[0] = 0; - *stringp += len; - } else { - cmp2[0] = UCH(*string); - *stringp += 1; - } - result = cmp2[0]; -#else - const char *string = *stringp; - result = UCH(*string); - *stringp += 1; -#endif - return result; -} - -static size_t -count_labels(const char **labels) -{ - size_t result = 0; - if (labels != 0) { - while (*labels++ != 0) { - ++result; - } - } - return result; -} - -/* - * Check if the latest key should be added to the hotkey list. - */ -static int -was_hotkey(int this_key, int *used_keys, size_t next) -{ - int result = FALSE; - - if (next != 0) { - size_t n; - for (n = 0; n < next; ++n) { - if (used_keys[n] == this_key) { - result = TRUE; - break; - } - } - } - return result; -} - -/* - * Determine the hot-keys for a set of button-labels. Normally these are - * the first uppercase character in each label. However, if more than one - * button has the same first-uppercase, then we will (attempt to) look for - * an alternate. - * - * This allocates data which must be freed by the caller. - */ -static int * -get_hotkeys(const char **labels) -{ - int *result = 0; - size_t count = count_labels(labels); - - if ((result = dlg_calloc(int, count + 1)) != 0) { - size_t n; - - for (n = 0; n < count; ++n) { - const char *label = labels[n]; - const int *indx = dlg_index_wchars(label); - int limit = dlg_count_wchars(label); - int i; - - for (i = 0; i < limit; ++i) { - int first = indx[i]; - int check = UCH(label[first]); -#ifdef USE_WIDE_CURSES - int last = indx[i + 1]; - if ((last - first) != 1) { - const char *temp = (label + first); - check = string_to_char(&temp); - } -#endif - if (dlg_isupper(check) && !was_hotkey(check, result, n)) { - result[n] = check; - break; - } - } - } - } - return result; -} - -typedef enum { - sFIND_KEY = 0 - ,sHAVE_KEY = 1 - ,sHAD_KEY = 2 -} HOTKEY; - -/* - * Print a button - */ -static void -print_button(WINDOW *win, char *label, int hotkey, int y, int x, int selected) -{ - int i; - HOTKEY state = sFIND_KEY; - const int *indx = dlg_index_wchars(label); - int limit = dlg_count_wchars(label); - chtype key_attr = (selected - ? button_key_active_attr - : button_key_inactive_attr); - chtype label_attr = (selected - ? button_label_active_attr - : button_label_inactive_attr); - - (void) wmove(win, y, x); - dlg_attrset(win, selected - ? button_active_attr - : button_inactive_attr); - (void) waddstr(win, "<"); - dlg_attrset(win, label_attr); - for (i = 0; i < limit; ++i) { - int check; - int first = indx[i]; - int last = indx[i + 1]; - - switch (state) { - case sFIND_KEY: - check = UCH(label[first]); -#ifdef USE_WIDE_CURSES - if ((last - first) != 1) { - const char *temp = (label + first); - check = string_to_char(&temp); - } -#endif - if (check == hotkey) { - dlg_attrset(win, key_attr); - state = sHAVE_KEY; - } - break; - case sHAVE_KEY: - dlg_attrset(win, label_attr); - state = sHAD_KEY; - break; - default: - break; - } - waddnstr(win, label + first, last - first); - } - dlg_attrset(win, selected - ? button_active_attr - : button_inactive_attr); - (void) waddstr(win, ">"); - if (!dialog_vars.cursor_off_label) { - (void) wmove(win, y, x + ((int) (strspn) (label, " ")) + 1); - } -} - -/* - * Count the buttons in the list. - */ -int -dlg_button_count(const char **labels) -{ - int result = 0; - while (*labels++ != 0) - ++result; - return result; -} - -/* - * Compute the size of the button array in columns. Return the total number of - * columns in *length, and the longest button's columns in *longest - */ -void -dlg_button_sizes(const char **labels, - int vertical, - int *longest, - int *length) -{ - int n; - - *length = 0; - *longest = 0; - for (n = 0; labels[n] != 0; n++) { - if (vertical) { - *length += 1; - *longest = 1; - } else { - int len = dlg_count_columns(labels[n]); - if (len > *longest) - *longest = len; - *length += len; - } - } - /* - * If we can, make all of the buttons the same size. This is only optional - * for buttons laid out horizontally. - */ - if (*longest < 6 - (*longest & 1)) - *longest = 6 - (*longest & 1); - if (!vertical) - *length = *longest * n; -} - -/* - * Compute the size of the button array. - */ -int -dlg_button_x_step(const char **labels, int limit, int *gap, int *margin, int *step) -{ - int count = dlg_button_count(labels); - int longest; - int length; - int result; - - *margin = 0; - if (count != 0) { - int unused; - int used; - - dlg_button_sizes(labels, FALSE, &longest, &length); - used = (length + (count * 2)); - unused = limit - used; - - if ((*gap = unused / (count + 3)) <= 0) { - if ((*gap = unused / (count + 1)) <= 0) - *gap = 1; - *margin = *gap; - } else { - *margin = *gap * 2; - } - *step = *gap + (used + count - 1) / count; - result = (*gap > 0) && (unused >= 0); - } else { - result = 0; - } - return result; -} - -/* - * Make sure there is enough space for the buttons - */ -void -dlg_button_layout(const char **labels, int *limit) -{ - int gap, margin, step; - - if (labels != 0 && dlg_button_count(labels)) { - int width = 1; - - while (!dlg_button_x_step(labels, width, &gap, &margin, &step)) - ++width; - width += (4 * MARGIN); - if (width > COLS) - width = COLS; - if (width > *limit) - *limit = width; - } -} - -/* - * Print a list of buttons at the given position. - */ -void -dlg_draw_buttons(WINDOW *win, - int y, int x, - const char **labels, - int selected, - int vertical, - int limit) -{ - chtype save = dlg_get_attrs(win); - int step = 0; - int length; - int longest; - int final_x; - int final_y; - int gap; - int margin; - size_t need; - - dlg_mouse_setbase(getbegx(win), getbegy(win)); - - getyx(win, final_y, final_x); - - dlg_button_sizes(labels, vertical, &longest, &length); - - if (vertical) { - y += 1; - step = 1; - } else { - dlg_button_x_step(labels, limit, &gap, &margin, &step); - x += margin; - } - - /* - * Allocate a buffer big enough for any label. - */ - need = (size_t) longest; - if (need != 0) { - char *buffer; - int n; - int *hotkeys = get_hotkeys(labels); - - assert_ptr(hotkeys, "dlg_draw_buttons"); - - for (n = 0; labels[n] != 0; ++n) { - need += strlen(labels[n]) + 1; - } - buffer = dlg_malloc(char, need); - assert_ptr(buffer, "dlg_draw_buttons"); - - /* - * Draw the labels. - */ - for (n = 0; labels[n] != 0; n++) { - center_label(buffer, longest, labels[n]); - mouse_mkbutton(y, x, dlg_count_columns(buffer), n); - print_button(win, buffer, - CHR_BUTTON ? hotkeys[n] : -1, - y, x, - (selected == n) || (n == 0 && selected < 0)); - if (selected == n) - getyx(win, final_y, final_x); - - if (vertical) { - if ((y += step) > limit) - break; - } else { - if ((x += step) > limit) - break; - } - } - (void) wmove(win, final_y, final_x); - wrefresh(win); - dlg_attrset(win, save); - free(buffer); - free(hotkeys); - } -} - -/* - * Match a given character against the beginning of the string, ignoring case - * of the given character. The matching string must begin with an uppercase - * character. - */ -int -dlg_match_char(int ch, const char *string) -{ - if (!dialog_vars.no_hot_list) { - if (string != 0) { - int cmp2 = string_to_char(&string); -#ifdef USE_WIDE_CURSES - wint_t cmp1 = dlg_toupper(ch); - if (cmp2 != 0 && (wchar_t) cmp1 == (wchar_t) dlg_toupper(cmp2)) { - return TRUE; - } -#else - if (ch > 0 && ch < 256) { - if (dlg_toupper(ch) == dlg_toupper(cmp2)) - return TRUE; - } -#endif - } - } - return FALSE; -} - -/* - * Find the first uppercase character in the label, which we may use for an - * abbreviation. - */ -int -dlg_button_to_char(const char *label) -{ - int cmp = -1; - - while (*label != 0) { - int ch = string_to_char(&label); - if (dlg_isupper(ch)) { - cmp = ch; - break; - } - } - return cmp; -} - -/* - * Given a list of button labels, and a character which may be the abbreviation - * for one, find it, if it exists. An abbreviation will be the first character - * which happens to be capitalized in the label. - */ -int -dlg_char_to_button(int ch, const char **labels) -{ - int result = DLG_EXIT_UNKNOWN; - - if (labels != 0) { - int *hotkeys = get_hotkeys(labels); - - ch = (int) dlg_toupper(dlg_last_getc()); - - if (hotkeys != 0) { - int j; - - for (j = 0; labels[j] != 0; ++j) { - if (ch == hotkeys[j]) { - dlg_flush_getc(); - result = j; - break; - } - } - free(hotkeys); - } - } - - return result; -} - -static const char * -my_yes_label(void) -{ - return (dialog_vars.yes_label != NULL) - ? dialog_vars.yes_label - : _("Yes"); -} - -static const char * -my_no_label(void) -{ - return (dialog_vars.no_label != NULL) - ? dialog_vars.no_label - : _("No"); -} - -static const char * -my_ok_label(void) -{ - return (dialog_vars.ok_label != NULL) - ? dialog_vars.ok_label - : _("OK"); -} - -static const char * -my_cancel_label(void) -{ - return (dialog_vars.cancel_label != NULL) - ? dialog_vars.cancel_label - : _("Cancel"); -} - -static const char * -my_exit_label(void) -{ - return (dialog_vars.exit_label != NULL) - ? dialog_vars.exit_label - : _("EXIT"); -} - -static const char * -my_extra_label(void) -{ - return (dialog_vars.extra_label != NULL) - ? dialog_vars.extra_label - : _("Extra"); -} - -static const char * -my_help_label(void) -{ - return (dialog_vars.help_label != NULL) - ? dialog_vars.help_label - : _("Help"); -} - -/* - * Return a list of button labels. - */ -const char ** -dlg_exit_label(void) -{ - const char **result; - DIALOG_VARS save; - - if (dialog_vars.extra_button) { - dlg_save_vars(&save); - dialog_vars.nocancel = TRUE; - result = dlg_ok_labels(); - dlg_restore_vars(&save); - } else { - static const char *labels[3]; - int n = 0; - - if (!dialog_vars.nook) - labels[n++] = my_exit_label(); - if (dialog_vars.help_button) - labels[n++] = my_help_label(); - if (n == 0) - labels[n++] = my_exit_label(); - labels[n] = 0; - - result = labels; - } - return result; -} - -/* - * Map the given button index for dlg_exit_label() into our exit-code. - */ -int -dlg_exit_buttoncode(int button) -{ - int result; - DIALOG_VARS save; - - dlg_save_vars(&save); - dialog_vars.nocancel = TRUE; - - result = dlg_ok_buttoncode(button); - - dlg_restore_vars(&save); - - return result; -} - -static const char ** -finish_ok_label(const char **labels, int n) -{ - if (n == 0) { - labels[n++] = my_ok_label(); - dialog_vars.nook = FALSE; - dlg_trace_msg("# ignore --nook, since at least one button is needed\n"); - } - - labels[n] = NULL; - return labels; -} - -/* - * Return a list of button labels for the OK (no Cancel) group, used in msgbox - * and progressbox. - */ -const char ** -dlg_ok_label(void) -{ - static const char *labels[4]; - int n = 0; - - if (!dialog_vars.nook) - labels[n++] = my_ok_label(); - if (dialog_vars.extra_button) - labels[n++] = my_extra_label(); - if (dialog_vars.help_button) - labels[n++] = my_help_label(); - - return finish_ok_label(labels, n); -} - -/* - * Return a list of button labels for the OK/Cancel group, used in most widgets - * that select an option or data. - */ -const char ** -dlg_ok_labels(void) -{ - static const char *labels[5]; - int n = 0; - - if (!dialog_vars.nook) - labels[n++] = my_ok_label(); - if (dialog_vars.extra_button) - labels[n++] = my_extra_label(); - if (!dialog_vars.nocancel) - labels[n++] = my_cancel_label(); - if (dialog_vars.help_button) - labels[n++] = my_help_label(); - - return finish_ok_label(labels, n); -} - -/* - * Map the given button index for dlg_ok_labels() into our exit-code - */ -int -dlg_ok_buttoncode(int button) -{ - int result = DLG_EXIT_ERROR; - int n = !dialog_vars.nook; - - if (!dialog_vars.nook && (button <= 0)) { - result = DLG_EXIT_OK; - } else if (dialog_vars.extra_button && (button == n++)) { - result = DLG_EXIT_EXTRA; - } else if (!dialog_vars.nocancel && (button == n++)) { - result = DLG_EXIT_CANCEL; - } else if (dialog_vars.help_button && (button == n)) { - result = DLG_EXIT_HELP; - } - DLG_TRACE(("# dlg_ok_buttoncode(%d) = %d:%s\n", - button, result, dlg_exitcode2s(result))); - return result; -} - -/* - * Given that we're using dlg_ok_labels() to list buttons, find the next index - * in the list of buttons. The 'extra' parameter if negative provides a way to - * enumerate extra active areas on the widget. - */ -int -dlg_next_ok_buttonindex(int current, int extra) -{ - int result = current + 1; - - if (current >= 0 - && dlg_ok_buttoncode(result) < 0) - result = extra; - return result; -} - -/* - * Similarly, find the previous button index. - */ -int -dlg_prev_ok_buttonindex(int current, int extra) -{ - int result = current - 1; - - if (result < extra) { - for (result = 0; dlg_ok_buttoncode(result + 1) >= 0; ++result) { - ; - } - } - return result; -} - -/* - * Find the button-index for the "OK" or "Cancel" button, according to - * whether --defaultno is given. If --nocancel was given, we always return - * the index for the first button (usually "OK" unless --nook was used). - */ -int -dlg_defaultno_button(void) -{ - int result = 0; - - if (dialog_vars.defaultno && !dialog_vars.nocancel) { - while (dlg_ok_buttoncode(result) != DLG_EXIT_CANCEL) - ++result; - } - DLG_TRACE(("# dlg_defaultno_button() = %d\n", result)); - return result; -} - -/* - * Find the button-index for a button named with --default-button. If the - * option was not specified, or if the selected button does not exist, return - * the index of the first button (usually "OK" unless --nook was used). - */ -int -dlg_default_button(void) -{ - int result = 0; - - if (dialog_vars.default_button >= 0) { - int i, n; - - for (i = 0; (n = dlg_ok_buttoncode(i)) >= 0; i++) { - if (n == dialog_vars.default_button) { - result = i; - break; - } - } - } - DLG_TRACE(("# dlg_default_button() = %d\n", result)); - return result; -} - -/* - * Return a list of buttons for Yes/No labels. - */ -const char ** -dlg_yes_labels(void) -{ - const char **result; - - if (dialog_vars.extra_button) { - result = dlg_ok_labels(); - } else { - static const char *labels[4]; - int n = 0; - - labels[n++] = my_yes_label(); - labels[n++] = my_no_label(); - if (dialog_vars.help_button) - labels[n++] = my_help_label(); - labels[n] = 0; - - result = labels; - } - - return result; -} - -/* - * Map the given button index for dlg_yes_labels() into our exit-code. - */ -int -dlg_yes_buttoncode(int button) -{ - int result = DLG_EXIT_ERROR; - - if (dialog_vars.extra_button) { - result = dlg_ok_buttoncode(button); - } else if (button == 0) { - result = DLG_EXIT_OK; - } else if (button == 1) { - result = DLG_EXIT_CANCEL; - } else if (button == 2 && dialog_vars.help_button) { - result = DLG_EXIT_HELP; - } - - return result; -} - -/* - * Return the next index in labels[]; - */ -int -dlg_next_button(const char **labels, int button) -{ - if (button < -1) - button = -1; - - if (labels[button + 1] != 0) { - ++button; - } else { - button = MIN_BUTTON; - } - return button; -} - -/* - * Return the previous index in labels[]; - */ -int -dlg_prev_button(const char **labels, int button) -{ - if (button > MIN_BUTTON) { - --button; - } else { - if (button < -1) - button = -1; - - while (labels[button + 1] != 0) - ++button; - } - return button; -} diff --git a/contrib/dialog/calendar.c b/contrib/dialog/calendar.c deleted file mode 100644 index 0caff60072c5..000000000000 --- a/contrib/dialog/calendar.c +++ /dev/null @@ -1,1016 +0,0 @@ -/* - * $Id: calendar.c,v 1.106 2020/11/23 09:03:49 tom Exp $ - * - * calendar.c -- implements the calendar box - * - * Copyright 2001-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#include <time.h> - -#ifdef HAVE_STDINT_H -#include <stdint.h> -#else -#define intptr_t long -#endif - -#define ONE_DAY (60 * 60 * 24) - -#define MON_WIDE 4 /* width of a month-name */ -#define DAY_HIGH 6 /* maximum lines in day-grid */ -#define DAY_WIDE (8 * MON_WIDE) /* width of the day-grid */ -#define HDR_HIGH 1 /* height of cells with month/year */ -#define BTN_HIGH 1 /* height of button-row excluding margin */ - -/* two more lines: titles for day-of-week and month/year boxes */ -#define MIN_HIGH (DAY_HIGH + 2 + HDR_HIGH + BTN_HIGH + (MAX_DAYS * MARGIN)) -#define MIN_WIDE (DAY_WIDE + (4 * MARGIN)) - -typedef enum { - sMONTH = -3 - ,sYEAR = -2 - ,sDAY = -1 -} STATES; - -struct _box; - -typedef int (*BOX_DRAW) (struct _box *, struct tm *); - -typedef struct _box { - WINDOW *parent; - WINDOW *window; - int x; - int y; - int width; - int height; - BOX_DRAW box_draw; - int week_start; -} BOX; - -#define MAX_DAYS 7 -#define MAX_MONTHS 12 - -static char *cached_days[MAX_DAYS]; -static char *cached_months[MAX_MONTHS]; - -static const char * -nameOfDayOfWeek(int n) -{ - static bool shown[MAX_DAYS]; - - while (n < 0) { - n += MAX_DAYS; - } - n %= MAX_DAYS; -#ifdef ENABLE_NLS - if (cached_days[n] == 0) { - const nl_item items[MAX_DAYS] = - { - ABDAY_1, ABDAY_2, ABDAY_3, ABDAY_4, ABDAY_5, ABDAY_6, ABDAY_7 - }; - cached_days[n] = dlg_strclone(nl_langinfo(items[n])); - memset(shown, 0, sizeof(shown)); - } -#endif - if (cached_days[n] == 0) { - static const char *posix_days[MAX_DAYS] = - { - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - }; - size_t limit = MON_WIDE - 1; - char *value = dlg_strclone(posix_days[n]); - - /* - * POSIX does not actually say what the length of an abbreviated name - * is. Typically it is 2, which will fit into our layout. That also - * happens to work with CJK entries as seen in glibc, which are a - * double-width cell. For now (2016/01/26), handle too-long names only - * for POSIX values. - */ - if (strlen(value) > limit) - value[limit] = '\0'; - cached_days[n] = value; - } - if (!shown[n]) { - DLG_TRACE(("# DAY(%d) = '%s'\n", n, cached_days[n])); - shown[n] = TRUE; - } - return cached_days[n]; -} - -static const char * -nameOfMonth(int n) -{ - static bool shown[MAX_MONTHS]; - - while (n < 0) { - n += MAX_MONTHS; - } - n %= MAX_MONTHS; -#ifdef ENABLE_NLS - if (cached_months[n] == 0) { - const nl_item items[MAX_MONTHS] = - { - MON_1, MON_2, MON_3, MON_4, MON_5, MON_6, - MON_7, MON_8, MON_9, MON_10, MON_11, MON_12 - }; - cached_months[n] = dlg_strclone(nl_langinfo(items[n])); - memset(shown, 0, sizeof(shown)); - } -#endif - if (cached_months[n] == 0) { - static const char *posix_mons[MAX_MONTHS] = - { - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - }; - cached_months[n] = dlg_strclone(posix_mons[n]); - } - if (!shown[n]) { - DLG_TRACE(("# MON(%d) = '%s'\n", n, cached_months[n])); - shown[n] = TRUE; - } - return cached_months[n]; -} - -/* - * Algorithm for Gregorian calendar. - */ -static int -isleap(int y) -{ - return ((y % 4 == 0) && - ((y % 100 != 0) || - (y % 400 == 0))) ? 1 : 0; -} - -static void -adjust_year_month(int *year, int *month) -{ - while (*month < 0) { - *month += MAX_MONTHS; - *year -= 1; - } - while (*month >= MAX_MONTHS) { - *month -= MAX_MONTHS; - *year += 1; - } -} - -static int -days_per_month(int year, int month) -{ - static const int nominal[] = - { - 31, 28, 31, 30, 31, 30, - 31, 31, 30, 31, 30, 31 - }; - int result; - - adjust_year_month(&year, &month); - result = nominal[month]; - if (month == 1) - result += isleap(year); - return result; -} - -static int -days_in_month(struct tm *current, int offset /* -1, 0, 1 */ ) -{ - int year = current->tm_year + 1900; - int month = current->tm_mon + offset; - - adjust_year_month(&year, &month); - return days_per_month(year, month); -} - -static int -days_per_year(int year) -{ - return (isleap(year) ? 366 : 365); -} - -static int -days_in_year(struct tm *current, int offset /* -1, 0, 1 */ ) -{ - return days_per_year(current->tm_year + 1900 + offset); -} - -/* - * Adapted from C FAQ - * "17.28: How can I find the day of the week given the date?" - * implementation by Tomohiko Sakamoto. - * - * d = day (0 to whatever) - * m = month (1 through 12) - * y = year (1752 and later, for Gregorian calendar) - */ -static int -day_of_week(int y, int m, int d) -{ - static int t[] = - { - 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 - }; - y -= (m < 3); - return (6 + (y + (y / 4) - (y / 100) + (y / 400) + t[m - 1] + d)) % MAX_DAYS; -} - -static int -day_in_year(int year, int month, int day) -{ - int result = day; - while (--month >= 1) - result += days_per_month(year, month); - return result; -} - -static int -iso_week(int year, int month, int day) -{ - int week = 1; - int dow; - int new_year_dow; - int diy; - int new_years_eve_dow; - static const int thursday = 3; - - /* add the number weeks *between* date and newyear */ - diy = day_in_year(year, month, day); - week += (diy - 1) / MAX_DAYS; - - /* 0 = Monday */ - dow = day_of_week(year, month, day); - new_year_dow = day_of_week(year, 1, 1); - - /* - * If New Year falls on Friday, Saturday or Sunday, then New Years's week - * is the last week of the preceding year. In that case subtract one week. - */ - if (new_year_dow > thursday) - --week; - - /* Add one week if there is a Sunday to Monday transition. */ - if (dow - new_year_dow < 0) - ++week; - - /* Check if we are in the last week of the preceding year. */ - if (week < 1) { - week = iso_week(--year, 12, 31); - } - - /* - * If we are in the same week as New Year's eve, check if New Year's eve is - * in the first week of the next year. - */ - new_years_eve_dow = (new_year_dow + 364 + isleap(year)) % MAX_DAYS; - if (365 + isleap(year) - diy < MAX_DAYS - && new_years_eve_dow >= dow - && new_years_eve_dow < thursday) { - week = 1; - } - return week; -} - -static int * -getisoweeks(int year, int month) -{ - static int result[10]; - int windx = 0; - int day; - int dpm = days_per_month(year, month); - - for (day = 1; day <= dpm; day += MAX_DAYS) - result[windx++] = iso_week(year, month, day); - /* - * Ensure that there is a week number associated with the last day of the - * month, e.g., in case the last day of the month falls before Thursday, - * so that we have to show the week-number for the beginning of the - * following month. - */ - result[windx] = iso_week(year, month, dpm); - return result; -} - -static int -day_cell_number(struct tm *current) -{ - int cell; - cell = current->tm_mday - ((6 + current->tm_mday - current->tm_wday) % MAX_DAYS); - if ((current->tm_mday - 1) % MAX_DAYS != current->tm_wday) - cell += 6; - else - cell--; - return cell; -} - -static int -next_or_previous(int key, int two_d) -{ - int result = 0; - - switch (key) { - case DLGK_GRID_UP: - result = two_d ? -MAX_DAYS : -1; - break; - case DLGK_GRID_LEFT: - result = -1; - break; - case DLGK_GRID_DOWN: - result = two_d ? MAX_DAYS : 1; - break; - case DLGK_GRID_RIGHT: - result = 1; - break; - default: - beep(); - break; - } - return result; -} - -/* - * Draw the day-of-month selection box - */ -static int -draw_day(BOX * data, struct tm *current) -{ - int cell_wide = MON_WIDE; - int y, x, this_x; - int save_y = 0, save_x = 0; - int day = current->tm_mday; - int mday; - int week = 0; - int windx = 0; - int *weeks = 0; - int last = days_in_month(current, 0); - int prev = days_in_month(current, -1); - - werase(data->window); - dlg_draw_box2(data->parent, - data->y - MARGIN, data->x - MARGIN, - data->height + (2 * MARGIN), data->width + (2 * MARGIN), - menubox_attr, - menubox_border_attr, - menubox_border2_attr); - - dlg_attrset(data->window, menubox_attr); /* daynames headline */ - for (x = 0; x < MAX_DAYS; x++) { - mvwprintw(data->window, - 0, (x + 1) * cell_wide, "%*.*s ", - cell_wide - 1, - cell_wide - 1, - nameOfDayOfWeek(x + data->week_start)); - } - - mday = ((6 + current->tm_mday - - current->tm_wday + - data->week_start) % MAX_DAYS) - MAX_DAYS; - if (mday <= -MAX_DAYS) - mday += MAX_DAYS; - - if (dialog_vars.iso_week) { - weeks = getisoweeks(current->tm_year + 1900, current->tm_mon + 1); - } else { - /* mday is now in the range -6 to 0. */ - week = (current->tm_yday + 6 + mday - current->tm_mday) / MAX_DAYS; - } - - for (y = 1; mday < last; y++) { - dlg_attrset(data->window, menubox_attr); /* weeknumbers headline */ - mvwprintw(data->window, - y, 0, - "%*d ", - cell_wide - 1, - weeks ? weeks[windx++] : ++week); - for (x = 0; x < MAX_DAYS; x++) { - this_x = 1 + (x + 1) * cell_wide; - ++mday; - if (wmove(data->window, y, this_x) == ERR) - continue; - dlg_attrset(data->window, item_attr); /* not selected days */ - if (mday == day) { - dlg_attrset(data->window, item_selected_attr); /* selected day */ - save_y = y; - save_x = this_x; - } - if (mday > 0) { - if (mday <= last) { - wprintw(data->window, "%*d", cell_wide - 2, mday); - } else if (mday == day) { - wprintw(data->window, "%*d", cell_wide - 2, mday - last); - } - } else if (mday == day) { - wprintw(data->window, "%*d", cell_wide - 2, mday + prev); - } - } - wmove(data->window, save_y, save_x); - } - /* just draw arrows - scrollbar is unsuitable here */ - dlg_draw_arrows(data->parent, TRUE, TRUE, - data->x + ARROWS_COL, - data->y - 1, - data->y + data->height); - - return 0; -} - -/* - * Draw the month-of-year selection box - */ -static int -draw_month(BOX * data, struct tm *current) -{ - int month; - - month = current->tm_mon + 1; - - dlg_attrset(data->parent, dialog_attr); /* Headline "Month" */ - (void) mvwprintw(data->parent, data->y - 2, data->x - 1, _("Month")); - dlg_draw_box2(data->parent, - data->y - 1, data->x - 1, - data->height + 2, data->width + 2, - menubox_attr, - menubox_border_attr, - menubox_border2_attr); - dlg_attrset(data->window, item_attr); /* color the month selection */ - mvwprintw(data->window, 0, 0, "%s", nameOfMonth(month - 1)); - wmove(data->window, 0, 0); - return 0; -} - -/* - * Draw the year selection box - */ -static int -draw_year(BOX * data, struct tm *current) -{ - int year = current->tm_year + 1900; - - dlg_attrset(data->parent, dialog_attr); /* Headline "Year" */ - (void) mvwprintw(data->parent, data->y - 2, data->x - 1, _("Year")); - dlg_draw_box2(data->parent, - data->y - 1, data->x - 1, - data->height + 2, data->width + 2, - menubox_attr, - menubox_border_attr, - menubox_border2_attr); - dlg_attrset(data->window, item_attr); /* color the year selection */ - mvwprintw(data->window, 0, 0, "%4d", year); - wmove(data->window, 0, 0); - return 0; -} - -static int -init_object(BOX * data, - WINDOW *parent, - int x, int y, - int width, int height, - BOX_DRAW box_draw, - int key_offset, - int code) -{ - data->parent = parent; - data->x = x; - data->y = y; - data->width = width; - data->height = height; - data->box_draw = box_draw; - data->week_start = key_offset; - - data->window = dlg_der_window(data->parent, - data->height, data->width, - data->y, data->x); - if (data->window == 0) - return -1; - - dlg_mouse_setbase(getbegx(parent), getbegy(parent)); - if (code == 'D') { - dlg_mouse_mkbigregion(y + 1, x + MON_WIDE, height - 1, width - MON_WIDE, - KEY_MAX + key_offset, 1, MON_WIDE, 3); - } else { - dlg_mouse_mkregion(y, x, height, width, code); - } - - return 0; -} - -#if defined(ENABLE_NLS) && defined(HAVE_NL_LANGINFO_1STDAY) -#elif defined(HAVE_DLG_GAUGE) -static int -read_locale_setting(const char *name, int which) -{ - FILE *fp; - char command[80]; - int result = -1; - - sprintf(command, "locale %s", name); - if ((fp = dlg_popen(command, "r")) != 0) { - int count = 0; - char buf[80]; - - while (fgets(buf, (int) sizeof(buf) - 1, fp) != 0) { - if (++count > which) { - char *next = 0; - long check = strtol(buf, &next, 0); - if (next != 0 && - next != buf && - *next == '\n') { - result = (int) check; - } - break; - } - } - pclose(fp); - } - return result; -} -#endif - -static int -WeekStart(void) -{ - int result = 0; - char *option = dialog_vars.week_start; - if (option != 0) { - if (option[0]) { - char *next = 0; - long check = strtol(option, &next, 0); - if (next == 0 || - next == option || - *next != '\0') { - if (!strcmp(option, "locale")) { -#if defined(ENABLE_NLS) && defined(HAVE_NL_LANGINFO_1STDAY) - /* - * glibc-specific. - */ - int first_day = nl_langinfo(_NL_TIME_FIRST_WEEKDAY)[0]; - char *basis_ptr = nl_langinfo(_NL_TIME_WEEK_1STDAY); - int basis_day = (int) (intptr_t) basis_ptr; -#elif defined(HAVE_DLG_GAUGE) - /* - * probably Linux-specific, but harmless otherwise. When - * available, the locale program will return a single - * integer on one line. - */ - int first_day = read_locale_setting("first_weekday", 0); - int basis_day = read_locale_setting("week-1stday", 0); -#endif -#if (defined(ENABLE_NLS) && defined(HAVE_NL_LANGINFO_1STDAY)) || defined(HAVE_DLG_GAUGE) - int week_1stday = -1; - if (basis_day == 19971130) - week_1stday = 0; /* Sun */ - else if (basis_day == 19971201) - week_1stday = 1; /* Mon */ - if (week_1stday >= 0) { - result = first_day - week_1stday - 1; - } -#else - result = 0; /* Sun */ -#endif - } else { - int day; - size_t eql = strlen(option); - for (day = 0; day < MAX_DAYS; ++day) { - if (!strncmp(nameOfDayOfWeek(day), option, eql)) { - result = day; - break; - } - } - } - } else if (check < 0) { - result = -1; - } else { - result = (int) (check % MAX_DAYS); - } - } - } - return result; -} - -static int -CleanupResult(int code, WINDOW *dialog, char *prompt, DIALOG_VARS * save_vars) -{ - int n; - - if (dialog != 0) - dlg_del_window(dialog); - dlg_mouse_free_regions(); - if (prompt != 0) - free(prompt); - dlg_restore_vars(save_vars); - - for (n = 0; n < MAX_DAYS; ++n) { - free(cached_days[n]); - cached_days[n] = 0; - } - for (n = 0; n < MAX_MONTHS; ++n) { - free(cached_months[n]); - cached_months[n] = 0; - } - - return code; -} - -static void -trace_date(struct tm *current, struct tm *old) -{ - bool changed = (old == 0 || - current->tm_mday != old->tm_mday || - current->tm_mon != old->tm_mon || - current->tm_year != old->tm_year); - if (changed) { - DLG_TRACE(("# current %04d/%02d/%02d\n", - current->tm_year + 1900, - current->tm_mon + 1, - current->tm_mday)); - } else { - DLG_TRACE(("# current (unchanged)\n")); - } -} - -#define DrawObject(data) (data)->box_draw(data, ¤t) - -/* - * Display a dialog box for entering a date - */ -int -dialog_calendar(const char *title, - const char *subtitle, - int height, - int width, - int day, - int month, - int year) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TOGGLEKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, 'j' ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, DLGK_MOUSE(KEY_NPAGE) ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, '-' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, 'h' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, CHR_BACKSPACE ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, '+' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, 'l' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_NEXT ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_GRID_UP, 'k' ), - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_PREVIOUS ), - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_UP ), - DLG_KEYS_DATA( DLGK_GRID_UP, DLGK_MOUSE(KEY_PPAGE) ), - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - BOX dy_box, mn_box, yr_box; - int fkey; - int key; - int step; - int button; - int result = DLG_EXIT_UNKNOWN; - int week_start; - WINDOW *dialog; - time_t now_time; - struct tm current; - int state = dlg_default_button(); - const char **buttons = dlg_ok_labels(); - char *prompt; - int mincols = MIN_WIDE; - char buffer[MAX_LEN]; - DIALOG_VARS save_vars; - - DLG_TRACE(("# calendar args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", subtitle); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("day", day); - DLG_TRACE2N("month", month); - DLG_TRACE2N("year", year); - - dlg_save_vars(&save_vars); - dialog_vars.separate_output = TRUE; - - dlg_does_output(); - - /* - * Unless overridden, the current time/date is our starting point. - */ - now_time = time((time_t *) 0); - current = *localtime(&now_time); - -#if HAVE_MKTIME - current.tm_isdst = -1; - if (year >= 1900) { - current.tm_year = year - 1900; - } - if (month >= 1) { - current.tm_mon = month - 1; - } - if (day > 0 && day <= days_per_month(current.tm_year + 1900, - current.tm_mon + 1)) { - current.tm_mday = day; - } - now_time = mktime(¤t); -#else - if (day < 0) - day = current.tm_mday; - if (month < 0) - month = current.tm_mon + 1; - if (year < 0) - year = current.tm_year + 1900; - - /* compute a struct tm that matches the day/month/year parameters */ - if (((year -= 1900) > 0) && (year < 200)) { - /* ugly, but I'd like to run this on older machines w/o mktime -TD */ - for (;;) { - if (year > current.tm_year) { - now_time += ONE_DAY * days_in_year(¤t, 0); - } else if (year < current.tm_year) { - now_time -= ONE_DAY * days_in_year(¤t, -1); - } else if (month > current.tm_mon + 1) { - now_time += ONE_DAY * days_in_month(¤t, 0); - } else if (month < current.tm_mon + 1) { - now_time -= ONE_DAY * days_in_month(¤t, -1); - } else if (day > current.tm_mday) { - now_time += ONE_DAY; - } else if (day < current.tm_mday) { - now_time -= ONE_DAY; - } else { - break; - } - current = *localtime(&now_time); - } - } -#endif - - dlg_button_layout(buttons, &mincols); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(subtitle); - dlg_auto_size(title, prompt, &height, &width, 0, mincols); - - height += MIN_HIGH - 1; - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - dialog = dlg_new_window(height, width, - dlg_box_y_ordinate(height), - dlg_box_x_ordinate(width)); - dlg_register_window(dialog, "calendar", binding); - dlg_register_buttons(dialog, "calendar", buttons); - - /* mainbox */ - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); /* text mainbox */ - dlg_print_autowrap(dialog, prompt, height, width); - - /* compute positions of day, month and year boxes */ - memset(&dy_box, 0, sizeof(dy_box)); - memset(&mn_box, 0, sizeof(mn_box)); - memset(&yr_box, 0, sizeof(yr_box)); - - if ((week_start = WeekStart()) < 0 || - init_object(&dy_box, - dialog, - (width - DAY_WIDE) / 2, - 1 + (height - (DAY_HIGH + BTN_HIGH + (5 * MARGIN))), - DAY_WIDE, - DAY_HIGH + 1, - draw_day, - week_start, - 'D') < 0 || - ((dy_box.week_start = WeekStart()) < 0) || - DrawObject(&dy_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - if (init_object(&mn_box, - dialog, - dy_box.x, - dy_box.y - (HDR_HIGH + 2 * MARGIN), - (DAY_WIDE / 2) - MARGIN, - HDR_HIGH, - draw_month, - 0, - 'M') < 0 - || DrawObject(&mn_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - if (init_object(&yr_box, - dialog, - dy_box.x + mn_box.width + 2, - mn_box.y, - mn_box.width, - mn_box.height, - draw_year, - 0, - 'Y') < 0 - || DrawObject(&yr_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - dlg_trace_win(dialog); - while (result == DLG_EXIT_UNKNOWN) { - int key2; - BOX *obj = (state == sDAY ? &dy_box - : (state == sMONTH ? &mn_box : - (state == sYEAR ? &yr_box : 0))); - - button = (state < 0) ? 0 : state; - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - if (obj != 0) - dlg_set_focus(dialog, obj->window); - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } -#define Mouse2Key(key) (key - M_EVENT) - if (fkey && (key >= DLGK_MOUSE(KEY_MIN) && key <= DLGK_MOUSE(KEY_MAX))) { - key = dlg_lookup_key(dialog, Mouse2Key(key), &fkey); - } - - if ((key2 = dlg_char_to_button(key, buttons)) >= 0) { - result = key2; - } else if (fkey) { - /* handle function-keys */ - switch (key) { - case DLGK_MOUSE('D'): - state = sDAY; - break; - case DLGK_MOUSE('M'): - state = sMONTH; - break; - case DLGK_MOUSE('Y'): - state = sYEAR; - break; - case DLGK_TOGGLE: - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_FIELD_PREV: - state = dlg_prev_ok_buttonindex(state, sMONTH); - break; - case DLGK_FIELD_NEXT: - state = dlg_next_ok_buttonindex(state, sMONTH); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - free(prompt); - _dlg_resize_cleanup(dialog); - /* repaint */ - goto retry; -#endif - default: - step = 0; - key2 = -1; - if (is_DLGK_MOUSE(key)) { - if ((key2 = dlg_ok_buttoncode(Mouse2Key(key))) >= 0) { - result = key2; - break; - } else if (key >= DLGK_MOUSE(KEY_MAX)) { - state = sDAY; - obj = &dy_box; - key2 = 1; - step = (key - - DLGK_MOUSE(KEY_MAX) - - day_cell_number(¤t)); - DLG_TRACE(("# mouseclick decoded %d\n", step)); - } - } - if (obj != 0) { - if (key2 < 0) { - step = next_or_previous(key, (obj == &dy_box)); - } - if (step != 0) { - struct tm old = current; - - /* see comment regarding mktime -TD */ - if (obj == &dy_box) { - now_time += ONE_DAY * step; - } else if (obj == &mn_box) { - if (step > 0) - now_time += ONE_DAY * - days_in_month(¤t, 0); - else - now_time -= ONE_DAY * - days_in_month(¤t, -1); - } else if (obj == &yr_box) { - if (step > 0) - now_time += (ONE_DAY - * days_in_year(¤t, 0)); - else - now_time -= (ONE_DAY - * days_in_year(¤t, -1)); - } - - current = *localtime(&now_time); - - trace_date(¤t, &old); - if (obj != &dy_box - && (current.tm_mday != old.tm_mday - || current.tm_mon != old.tm_mon - || current.tm_year != old.tm_year)) - DrawObject(&dy_box); - if (obj != &mn_box && current.tm_mon != old.tm_mon) - DrawObject(&mn_box); - if (obj != &yr_box && current.tm_year != old.tm_year) - DrawObject(&yr_box); - (void) DrawObject(obj); - } - } else if (state >= 0) { - if (next_or_previous(key, FALSE) < 0) - state = dlg_prev_ok_buttonindex(state, sMONTH); - else if (next_or_previous(key, FALSE) > 0) - state = dlg_next_ok_buttonindex(state, sMONTH); - } - break; - } - } - } - -#define DefaultFormat(dst, src) \ - sprintf(dst, "%02d/%02d/%0d", \ - src.tm_mday, src.tm_mon + 1, src.tm_year + 1900) -#ifdef HAVE_STRFTIME - if (dialog_vars.date_format != 0) { - size_t used = strftime(buffer, - sizeof(buffer) - 1, - dialog_vars.date_format, - ¤t); - if (used == 0 || *buffer == '\0') - DefaultFormat(buffer, current); - } else -#endif - DefaultFormat(buffer, current); - - dlg_add_result(buffer); - AddLastKey(); - - return CleanupResult(result, dialog, prompt, &save_vars); -} diff --git a/contrib/dialog/checklist.c b/contrib/dialog/checklist.c deleted file mode 100644 index 13055b77ab4f..000000000000 --- a/contrib/dialog/checklist.c +++ /dev/null @@ -1,702 +0,0 @@ -/* - * $Id: checklist.c,v 1.167 2020/11/23 00:37:47 tom Exp $ - * - * checklist.c -- implements the checklist box - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors: - * Savio Lam (lam836@cs.cuhk.hk) - * Stuart Herbert - S.Herbert@sheffield.ac.uk: radiolist extension - * Alessandro Rubini - rubini@ipvvis.unipv.it: merged the two - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#define MIN_HIGH (1 + (5 * MARGIN)) - -typedef struct { - /* the outer-window */ - WINDOW *dialog; - int box_y; - int box_x; - int check_x; - int item_x; - int checkflag; - int use_height; - int use_width; - /* the inner-window */ - WINDOW *list; - DIALOG_LISTITEM *items; - int item_no; - const char *states; -} ALL_DATA; - -/* - * Print list item. The 'selected' parameter is true if 'choice' is the - * current item. That one is colored differently from the other items. - */ -static void -print_item(ALL_DATA * data, - WINDOW *win, - DIALOG_LISTITEM * item, - const char *states, - int choice, - int selected) -{ - chtype save = dlg_get_attrs(win); - int i; - bool both = (!dialog_vars.no_tags && !dialog_vars.no_items); - bool first = TRUE; - int climit = (getmaxx(win) - data->check_x + 1); - const char *show = (dialog_vars.no_items - ? item->name - : item->text); - - /* Clear 'residue' of last item */ - dlg_attrset(win, menubox_attr); - (void) wmove(win, choice, 0); - for (i = 0; i < data->use_width; i++) - (void) waddch(win, ' '); - - (void) wmove(win, choice, data->check_x); - dlg_attrset(win, selected ? check_selected_attr : check_attr); - (void) wprintw(win, - (data->checkflag == FLAG_CHECK) ? "[%c]" : "(%c)", - states[item->state]); - dlg_attrset(win, menubox_attr); - (void) waddch(win, ' '); - - if (both) { - dlg_print_listitem(win, item->name, climit, first, selected); - first = FALSE; - } - - (void) wmove(win, choice, data->item_x); - dlg_print_listitem(win, show, climit, first, selected); - - if (selected) { - dlg_item_help(item->help); - } - dlg_attrset(win, save); -} - -static void -print_list(ALL_DATA * data, int choice, int scrollamt, int max_choice) -{ - int i; - int cur_y, cur_x; - - getyx(data->dialog, cur_y, cur_x); - for (i = 0; i < max_choice; i++) { - print_item(data, - data->list, - &data->items[i + scrollamt], - data->states, - i, i == choice); - } - (void) wnoutrefresh(data->list); - - dlg_draw_scrollbar(data->dialog, - (long) (scrollamt), - (long) (scrollamt), - (long) (scrollamt + max_choice), - (long) (data->item_no), - data->box_x + data->check_x, - data->box_x + data->use_width, - data->box_y, - data->box_y + data->use_height + 1, - menubox_border2_attr, - menubox_border_attr); - - (void) wmove(data->dialog, cur_y, cur_x); -} - -static bool -check_hotkey(DIALOG_LISTITEM * items, int choice) -{ - bool result = FALSE; - - if (dlg_match_char(dlg_last_getc(), - (dialog_vars.no_tags - ? items[choice].text - : items[choice].name))) { - result = TRUE; - } - return result; -} - -/* - * This is an alternate interface to 'checklist' which allows the application - * to read the list item states back directly without putting them in the - * output buffer. It also provides for more than two states over which the - * check/radio box can display. - */ -int -dlg_checklist(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - DIALOG_LISTITEM * items, - const char *states, - int flag, - int *current_item) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ), - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - ALL_DATA all; - int i, j, key2, found, x, y, cur_x, cur_y; - int key, fkey; - int button = dialog_state.visit_items ? -1 : dlg_default_button(); - int choice = dlg_default_listitem(items); - int scrollamt = 0; - int max_choice; - int use_width, list_width, name_width, text_width; - int result = DLG_EXIT_UNKNOWN; - int num_states; - WINDOW *dialog; - char *prompt; - const char **buttons = dlg_ok_labels(); - const char *widget_name; - - DLG_TRACE(("# %s args:\n", flag ? "checklist" : "radiolist")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("lheight", list_height); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - DLG_TRACE2S("states", states); - DLG_TRACE2N("flag", flag); - DLG_TRACE2N("current", *current_item); - - dialog_state.plain_buttons = TRUE; - - memset(&all, 0, sizeof(all)); - all.items = items; - all.item_no = item_no; - - dlg_does_output(); - - /* - * If this is a radiobutton list, ensure that no more than one item is - * selected initially. Allow none to be selected, since some users may - * wish to provide this flavor. - */ - if (flag == FLAG_RADIO) { - bool first = TRUE; - - for (i = 0; i < item_no; i++) { - if (items[i].state) { - if (first) { - first = FALSE; - } else { - items[i].state = 0; - } - } - } - widget_name = "radiolist"; - } else { - widget_name = "checklist"; - } -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - - all.use_height = list_height; - use_width = dlg_calc_list_width(item_no, items) + 10; - use_width = MAX(26, use_width); - if (all.use_height == 0) { - /* calculate height without items (4) */ - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width); - dlg_calc_listh(&height, &all.use_height, item_no); - } else { - dlg_auto_size(title, prompt, - &height, &width, - MIN_HIGH + all.use_height, use_width); - } - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - /* we need at least two states */ - if (states == 0 || strlen(states) < 2) - states = " *"; - num_states = (int) strlen(states); - all.states = states; - - all.checkflag = flag; - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - all.dialog = dialog; - dlg_register_window(dialog, widget_name, binding); - dlg_register_buttons(dialog, widget_name, buttons); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - all.use_width = width - 6; - getyx(dialog, cur_y, cur_x); - all.box_y = cur_y + 1; - all.box_x = (width - all.use_width) / 2 - 1; - - /* - * After displaying the prompt, we know how much space we really have. - * Limit the list to avoid overwriting the ok-button. - */ - all.use_height = height - MIN_HIGH - cur_y; - if (all.use_height <= 0) - all.use_height = 1; - - max_choice = MIN(all.use_height, item_no); - max_choice = MAX(max_choice, 1); - - /* create new window for the list */ - all.list = dlg_sub_window(dialog, all.use_height, all.use_width, - y + all.box_y + 1, x + all.box_x + 1); - - /* draw a box around the list items */ - dlg_draw_box(dialog, all.box_y, all.box_x, - all.use_height + 2 * MARGIN, - all.use_width + 2 * MARGIN, - menubox_border_attr, menubox_border2_attr); - - text_width = 0; - name_width = 0; - /* Find length of longest item to center checklist */ - for (i = 0; i < item_no; i++) { - text_width = MAX(text_width, dlg_count_columns(items[i].text)); - name_width = MAX(name_width, dlg_count_columns(items[i].name)); - } - - /* If the name+text is wider than the list is allowed, then truncate - * one or both of them. If the name is no wider than 1/4 of the list, - * leave it intact. - */ - use_width = (all.use_width - 6); - if (dialog_vars.no_tags) { - list_width = MIN(all.use_width, text_width); - } else if (dialog_vars.no_items) { - list_width = MIN(all.use_width, name_width); - } else { - if (text_width >= 0 - && name_width >= 0 - && use_width > 0 - && text_width + name_width > use_width) { - int need = (int) (0.25 * use_width); - if (name_width > need) { - int want = (int) (use_width * ((double) name_width) / - (text_width + name_width)); - name_width = (want > need) ? want : need; - } - text_width = use_width - name_width; - } - list_width = (text_width + name_width); - } - - all.check_x = (use_width - list_width) / 2; - all.item_x = ((dialog_vars.no_tags - ? 0 - : (dialog_vars.no_items - ? 0 - : (2 + name_width))) - + all.check_x + 4); - - /* ensure we are scrolled to show the current choice */ - scrollamt = MIN(scrollamt, max_choice + item_no - 1); - if (choice >= (max_choice + scrollamt - 1)) { - scrollamt = MAX(0, choice - max_choice + 1); - choice = max_choice - 1; - } - print_list(&all, choice, scrollamt, max_choice); - - /* register the new window, along with its borders */ - dlg_mouse_mkbigregion(all.box_y + 1, all.box_x, - all.use_height, all.use_width + 2, - KEY_MAX, 1, 1, 1 /* by lines */ ); - - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - - dlg_trace_win(dialog); - - while (result == DLG_EXIT_UNKNOWN) { - int was_mouse; - - if (button < 0) /* --visit-items */ - wmove(dialog, all.box_y + choice + 1, all.box_x + all.check_x + 2); - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - was_mouse = (fkey && is_DLGK_MOUSE(key)); - if (was_mouse) - key -= M_EVENT; - - if (was_mouse && (key >= KEY_MAX)) { - getyx(dialog, cur_y, cur_x); - i = (key - KEY_MAX); - if (i < max_choice) { - choice = (key - KEY_MAX); - print_list(&all, choice, scrollamt, max_choice); - - key = DLGK_TOGGLE; /* force the selected item to toggle */ - } else { - beep(); - continue; - } - fkey = FALSE; - } else if (was_mouse && key >= KEY_MIN) { - key = dlg_lookup_key(dialog, key, &fkey); - } - - /* - * A space toggles the item status. We handle either a checklist - * (any number of items can be selected) or radio list (zero or one - * items can be selected). - */ - if (key == DLGK_TOGGLE) { - int current = scrollamt + choice; - int next = items[current].state + 1; - - if (next >= num_states) - next = 0; - - if (flag == FLAG_CHECK) { /* checklist? */ - getyx(dialog, cur_y, cur_x); - items[current].state = next; - print_item(&all, all.list, - &items[scrollamt + choice], - states, - choice, TRUE); - (void) wnoutrefresh(all.list); - (void) wmove(dialog, cur_y, cur_x); - } else { /* radiolist */ - for (i = 0; i < item_no; i++) { - if (i != current) { - items[i].state = 0; - } - } - if (items[current].state) { - getyx(dialog, cur_y, cur_x); - items[current].state = next ? next : 1; - print_item(&all, all.list, - &items[current], - states, - choice, TRUE); - (void) wnoutrefresh(all.list); - (void) wmove(dialog, cur_y, cur_x); - } else { - items[current].state = 1; - print_list(&all, choice, scrollamt, max_choice); - } - } - continue; /* wait for another key press */ - } - - /* - * Check if key pressed matches first character of any item tag in - * list. If there is more than one match, we will cycle through - * each one as the same key is pressed repeatedly. - */ - found = FALSE; - if (!fkey) { - if (button < 0 || !dialog_state.visit_items) { - for (j = scrollamt + choice + 1; j < item_no; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - if (!found) { - for (j = 0; j <= scrollamt + choice; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - } - if (found) - dlg_flush_getc(); - } else if ((j = dlg_char_to_button(key, buttons)) >= 0) { - button = j; - ungetch('\n'); - continue; - } - } - - /* - * A single digit (1-9) positions the selection to that line in the - * current screen. - */ - if (!found - && (key <= '9') - && (key > '0') - && (key - '1' < max_choice)) { - found = TRUE; - i = key - '1'; - } - - if (!found) { - if (fkey) { - found = TRUE; - switch (key) { - case DLGK_ITEM_FIRST: - i = -scrollamt; - break; - case DLGK_ITEM_LAST: - i = item_no - 1 - scrollamt; - break; - case DLGK_PAGE_PREV: - if (choice) - i = 0; - else if (scrollamt != 0) - i = -MIN(scrollamt, max_choice); - else - continue; - break; - case DLGK_PAGE_NEXT: - i = MIN(choice + max_choice, item_no - scrollamt - 1); - break; - case DLGK_ITEM_PREV: - i = choice - 1; - if (choice == 0 && scrollamt == 0) - continue; - break; - case DLGK_ITEM_NEXT: - i = choice + 1; - if (scrollamt + choice >= item_no - 1) - continue; - break; - default: - found = FALSE; - break; - } - } - } - - if (found) { - if (i != choice) { - getyx(dialog, cur_y, cur_x); - if (i < 0 || i >= max_choice) { - if (i < 0) { - scrollamt += i; - choice = 0; - } else { - choice = max_choice - 1; - scrollamt += (i - max_choice + 1); - } - print_list(&all, choice, scrollamt, max_choice); - } else { - choice = i; - print_list(&all, choice, scrollamt, max_choice); - } - } - continue; /* wait for another key press */ - } - - if (fkey) { - switch (key) { - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - free(prompt); - _dlg_resize_cleanup(dialog); - /* repaint */ - goto retry; -#endif - default: - if (was_mouse) { - if ((key2 = dlg_ok_buttoncode(key)) >= 0) { - result = key2; - break; - } - beep(); - } - } - } else if (key > 0) { - beep(); - } - } - - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - *current_item = (scrollamt + choice); - return result; -} - -/* - * Display a dialog box with a list of options that can be turned on or off - * The `flag' parameter is used to select between radiolist and checklist. - */ -int -dialog_checklist(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - char **items, - int flag) -{ - int result; - int i, j; - DIALOG_LISTITEM *listitems; - bool separate_output = ((flag == FLAG_CHECK) - && (dialog_vars.separate_output)); - bool show_status = FALSE; - int current = 0; - char *help_result; - - listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1); - assert_ptr(listitems, "dialog_checklist"); - - for (i = j = 0; i < item_no; ++i) { - listitems[i].name = items[j++]; - listitems[i].text = (dialog_vars.no_items - ? dlg_strempty() - : items[j++]); - listitems[i].state = !dlg_strcmp(items[j++], "on"); - listitems[i].help = ((dialog_vars.item_help) - ? items[j++] - : dlg_strempty()); - } - dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - - result = dlg_checklist(title, - cprompt, - height, - width, - list_height, - item_no, - listitems, - NULL, - flag, - ¤t); - - switch (result) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - show_status = TRUE; - break; - case DLG_EXIT_HELP: - dlg_add_help_listitem(&result, &help_result, &listitems[current]); - if ((show_status = dialog_vars.help_status)) { - if (separate_output) { - dlg_add_string(help_result); - dlg_add_separator(); - } else { - dlg_add_quoted(help_result); - } - } else { - dlg_add_string(help_result); - } - break; - } - - if (show_status) { - for (i = 0; i < item_no; i++) { - if (listitems[i].state) { - if (separate_output) { - dlg_add_string(listitems[i].name); - dlg_add_separator(); - } else { - if (dlg_need_separator()) - dlg_add_separator(); - if (flag == FLAG_CHECK) - dlg_add_quoted(listitems[i].name); - else - dlg_add_string(listitems[i].name); - } - } - } - dlg_add_last_key(separate_output); - } - - dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - free(listitems); - return result; -} diff --git a/contrib/dialog/columns.c b/contrib/dialog/columns.c deleted file mode 100644 index 17f17f5f3d52..000000000000 --- a/contrib/dialog/columns.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * $Id: columns.c,v 1.11 2019/07/25 00:06:38 tom Exp $ - * - * columns.c -- implements column-alignment - * - * Copyright 2008-2011,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> - -#define each(row, data) \ - row = 0, data = target; \ - row < num_rows; \ - ++row, data = next_row(data, per_row) - -static char * -column_separator(void) -{ - char *result = 0; - - if ((result = dialog_vars.column_separator) != 0) { - if (*result == '\0') - result = 0; - } - return result; -} - -static char ** -next_row(char **target, int per_row) -{ - char *result = (char *) target; - result += per_row; - return (char **) (void *) result; -} - -static char * -next_col(char *source, unsigned offset) -{ - char *mark = column_separator(); - char *result = source + offset; - if (offset) - result += strlen(mark); - return strstr(result, mark); -} - -/* - * Parse the source string, storing the offsets and widths of each column in - * the corresponding arrays. Return the number of columns. - */ -static unsigned -split_row(char *source, unsigned *offsets, unsigned *widths) -{ - int mark = (int) strlen(column_separator()); - char *next = 0; - unsigned result = 0; - unsigned offset = 0; - - do { - if (result) { - offset = (unsigned) (mark + next - source); - widths[result - 1] = offset - offsets[result - 1] - (unsigned) mark; - } - offsets[result] = offset; - ++result; - } while ((next = next_col(source, offset)) != 0); - - offset = (unsigned) strlen(source); - widths[result - 1] = offset - offsets[result - 1]; - - return result; -} - -/* - * The caller passes a pointer to a struct or array containing pointers - * to strings that we may want to copy and reformat according to the column - * separator. - */ -void -dlg_align_columns(char **target, int per_row, int num_rows) -{ - if (column_separator()) { - char **value; - unsigned numcols = 1; - size_t maxcols = 0; - unsigned *widths; - unsigned *offsets; - unsigned *maxwidth; - unsigned realwidth; - unsigned n; - int row; - - /* first allocate arrays for workspace */ - for (each(row, value)) { - size_t len = strlen(*value); - if (maxcols < len) - maxcols = len; - } - ++maxcols; - widths = dlg_calloc(unsigned, maxcols); - offsets = dlg_calloc(unsigned, maxcols); - maxwidth = dlg_calloc(unsigned, maxcols); - - assert_ptr(widths, "dlg_align_columns"); - assert_ptr(offsets, "dlg_align_columns"); - assert_ptr(maxwidth, "dlg_align_columns"); - - /* now, determine the number of columns and the column-widths */ - for (each(row, value)) { - unsigned cols = split_row(*value, offsets, widths); - if (numcols < cols) - numcols = cols; - for (n = 0; n < cols; ++n) { - if (maxwidth[n] < widths[n]) - maxwidth[n] = widths[n]; - } - } - realwidth = numcols - 1; - for (n = 0; n < numcols; ++n) { - realwidth += maxwidth[n]; - } - - /* finally, construct reformatted strings */ - for (each(row, value)) { - unsigned cols = split_row(*value, offsets, widths); - unsigned offset = 0; - char *text = dlg_malloc(char, realwidth + 1); - - assert_ptr(text, "dlg_align_columns"); - - memset(text, ' ', (size_t) realwidth); - for (n = 0; n < cols; ++n) { - memcpy(text + offset, *value + offsets[n], (size_t) widths[n]); - offset += maxwidth[n] + 1; - } - text[realwidth] = 0; - *value = text; - } - - free(widths); - free(offsets); - free(maxwidth); - } -} - -/* - * Free temporary storage used while making column-aligned data. - */ -void -dlg_free_columns(char **target, int per_row, int num_rows) -{ - if (column_separator()) { - int row; - char **value; - - for (each(row, value)) { - free(*value); - } - } -} diff --git a/contrib/dialog/config.guess b/contrib/dialog/config.guess deleted file mode 100755 index 9aff91cfd038..000000000000 --- a/contrib/dialog/config.guess +++ /dev/null @@ -1,1687 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2020 Free Software Foundation, Inc. - -timestamp='2020-08-17' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <https://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -# -# Please send patches to <config-patches@gnu.org>. - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2020 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -tmp= -# shellcheck disable=SC2172 -trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 - -set_cc_for_build() { - # prevent multiple calls if $tmp is already set - test "$tmp" && return 0 - : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } - dummy=$tmp/dummy - case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in - ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do - if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$driver" - break - fi - done - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; - esac -} - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if test -f /.attbin/uname ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "$UNAME_SYSTEM" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - set_cc_for_build - cat <<-EOF > "$dummy.c" - #include <features.h> - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" - - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ - echo unknown)` - case "$UNAME_MACHINE_ARCH" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; - *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; - *:OS108:*:*) - echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; - *:Twizzler:*:*) - echo "$UNAME_MACHINE"-unknown-twizzler - exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - set_cc_for_build - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; - sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include <stdio.h> /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 - then - if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ - test "$TARGET_BINARY_INTERFACE"x = x - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" - fi - else - echo i586-dg-dgux"$UNAME_RELEASE" - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if test -x /usr/bin/oslevel ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include <sys/systemcfg.h> - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if test -x /usr/bin/lslpp ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if test -x /usr/bin/getconf; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if test "$HP_ARCH" = ""; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if test "$HP_ARCH" = hppa2.0w - then - set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - #include <unistd.h> - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if test -x /usr/sbin/sysversion ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - arm:FreeBSD:*:*) - UNAME_PROCESSOR=`uname -p` - set_cc_for_build - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi - else - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf - fi - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; - *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; - *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; - *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; - i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; - *:Interix*:*) - case "$UNAME_MACHINE" in - x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; - IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; - esac ;; - i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-pc-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - *:GNU:*:*) - # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix - exit ;; - aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arm*:Linux:*:*) - set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi - else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - set_cc_for_build - IS_GLIBC=0 - test x"${LIBC}" = xgnu && IS_GLIBC=1 - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef mips - #undef mipsel - #undef mips64 - #undef mips64el - #if ${IS_GLIBC} && defined(_ABI64) - LIBCABI=gnuabi64 - #else - #if ${IS_GLIBC} && defined(_ABIN32) - LIBCABI=gnuabin32 - #else - LIBCABI=${LIBC} - #endif - #endif - - #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa64r6 - #else - #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 - CPU=mipsisa32r6 - #else - #if defined(__mips64) - CPU=mips64 - #else - CPU=mips - #endif - #endif - #endif - - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - MIPS_ENDIAN=el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - MIPS_ENDIAN= - #else - MIPS_ENDIAN= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" - test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; - sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) - set_cc_for_build - LIBCABI=$LIBC - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_X32 >/dev/null - then - LIBCABI="$LIBC"x32 - fi - fi - echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; - i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; - i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" - elif /bin/uname -X 2>/dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes <hewes@openmarket.com>. - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if test -d /usr/nec; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; - SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; - arm64:Darwin:*:*) - echo aarch64-apple-darwin"$UNAME_RELEASE" - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - if command -v xcode-select > /dev/null 2> /dev/null && \ - ! xcode-select --print-path > /dev/null 2> /dev/null ; then - # Avoid executing cc if there is no toolchain installed as - # cc will be a stub that puts up a graphical alert - # prompting the user to install developer tools. - CC_FOR_BUILD=no_compiler_found - else - set_cc_for_build - fi - if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # uname -m returns i386 or x86_64 - UNAME_PROCESSOR=$UNAME_MACHINE - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - # shellcheck disable=SC2154 - if test "$cputype" = 386; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; - *:Unleashed:*:*) - echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" - exit ;; -esac - -# No uname command or uname output not recognized. -set_cc_for_build -cat > "$dummy.c" <<EOF -#ifdef _SEQUENT_ -#include <sys/types.h> -#include <sys/utsname.h> -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#include <signal.h> -#if defined(_SIZE_T_) || defined(SIGLOST) -#include <sys/utsname.h> -#endif -#endif -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include <sys/param.h> - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); -#endif - -#if defined (vax) -#if !defined (ultrix) -#include <sys/param.h> -#if defined (BSD) -#if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -#else -#if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#endif -#else - printf ("vax-dec-bsd\n"); exit (0); -#endif -#else -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname un; - uname (&un); - printf ("vax-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif -#endif -#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -#if defined(_SIZE_T_) || defined(SIGLOST) - struct utsname *un; - uname (&un); - printf ("mips-dec-ultrix%s\n", un.release); exit (0); -#else - printf ("mips-dec-ultrix\n"); exit (0); -#endif -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. -test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } - -echo "$0: unable to guess system type" >&2 - -case "$UNAME_MACHINE:$UNAME_SYSTEM" in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <<EOF - -NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize -the system type. Please install a C compiler and try again. -EOF - ;; -esac - -cat >&2 <<EOF - -This script (version $timestamp), has failed to recognize the -operating system you are using. If your script is old, overwrite *all* -copies of config.guess and config.sub with the latest versions from: - - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -and - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -EOF - -year=`echo $timestamp | sed 's,-.*,,'` -# shellcheck disable=SC2003 -if test "`expr "\`date +%Y\`" - "$year"`" -lt 3 ; then - cat >&2 <<EOF - -If $0 has already been updated, send the following data and any -information you think might be pertinent to config-patches@gnu.org to -provide the necessary information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF -fi - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/contrib/dialog/config.hin b/contrib/dialog/config.hin deleted file mode 100644 index e8fc0a919ee1..000000000000 --- a/contrib/dialog/config.hin +++ /dev/null @@ -1,4 +0,0 @@ -/* - * The configure script expands this as a set of definitions - */ -@DEFS@ diff --git a/contrib/dialog/config.sub b/contrib/dialog/config.sub deleted file mode 100755 index 0753e3084581..000000000000 --- a/contrib/dialog/config.sub +++ /dev/null @@ -1,1851 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2020 Free Software Foundation, Inc. - -timestamp='2020-08-17' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see <https://www.gnu.org/licenses/>. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to <config-patches@gnu.org>. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to <config-patches@gnu.org>." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2020 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Split fields of configuration type -# shellcheck disable=SC2162 -IFS="-" read field1 field2 field3 field4 <<EOF -$1 -EOF - -# Separate into logical components for further validation -case $1 in - *-*-*-*-*) - echo Invalid configuration \`"$1"\': more than four components >&2 - exit 1 - ;; - *-*-*-*) - basic_machine=$field1-$field2 - basic_os=$field3-$field4 - ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in - nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) - basic_machine=$field1 - basic_os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown - basic_os=linux-android - ;; - *) - basic_machine=$field1-$field2 - basic_os=$field3 - ;; - esac - ;; - *-*) - # A lone config we happen to match not fitting any pattern - case $field1-$field2 in - decstation-3100) - basic_machine=mips-dec - basic_os= - ;; - *-*) - # Second component is usually, but not always the OS - case $field2 in - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 - basic_os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ - | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ - | unicom* | ibm* | next | hp | isi* | apollo | altos* \ - | convergent* | ncr* | news | 32* | 3600* | 3100* \ - | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ - | ultra | tti* | harris | dolphin | highlevel | gould \ - | cbm | ns | masscomp | apple | axis | knuth | cray \ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 - basic_os= - ;; - *) - basic_machine=$field1 - basic_os=$field2 - ;; - esac - ;; - esac - ;; - *) - # Convert single-component short-hands not valid as part of - # multi-component configurations. - case $field1 in - 386bsd) - basic_machine=i386-pc - basic_os=bsd - ;; - a29khif) - basic_machine=a29k-amd - basic_os=udi - ;; - adobe68k) - basic_machine=m68010-adobe - basic_os=scout - ;; - alliant) - basic_machine=fx80-alliant - basic_os= - ;; - altos | altos3068) - basic_machine=m68k-altos - basic_os= - ;; - am29k) - basic_machine=a29k-none - basic_os=bsd - ;; - amdahl) - basic_machine=580-amdahl - basic_os=sysv - ;; - amiga) - basic_machine=m68k-unknown - basic_os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown - basic_os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - basic_os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - basic_os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - basic_os=bsd - ;; - aros) - basic_machine=i386-pc - basic_os=aros - ;; - aux) - basic_machine=m68k-apple - basic_os=aux - ;; - balance) - basic_machine=ns32k-sequent - basic_os=dynix - ;; - blackfin) - basic_machine=bfin-unknown - basic_os=linux - ;; - cegcc) - basic_machine=arm-unknown - basic_os=cegcc - ;; - convex-c1) - basic_machine=c1-convex - basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex - basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex - basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex - basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex - basic_os=bsd - ;; - cray) - basic_machine=j90-cray - basic_os=unicos - ;; - crds | unos) - basic_machine=m68k-crds - basic_os= - ;; - da30) - basic_machine=m68k-da30 - basic_os= - ;; - decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec - basic_os= - ;; - delta88) - basic_machine=m88k-motorola - basic_os=sysv3 - ;; - dicos) - basic_machine=i686-pc - basic_os=dicos - ;; - djgpp) - basic_machine=i586-pc - basic_os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd - basic_os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - basic_os=ose - ;; - gmicro) - basic_machine=tron-gmicro - basic_os=sysv - ;; - go32) - basic_machine=i386-pc - basic_os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi - basic_os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi - basic_os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi - basic_os=hms - ;; - harris) - basic_machine=m88k-harris - basic_os=sysv3 - ;; - hp300 | hp300hpux) - basic_machine=m68k-hp - basic_os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp - basic_os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp - basic_os=osf - ;; - hppro) - basic_machine=hppa1.1-hp - basic_os=proelf - ;; - i386mach) - basic_machine=i386-mach - basic_os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi - basic_os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown - basic_os=linux - ;; - magnum | m3230) - basic_machine=mips-mips - basic_os=sysv - ;; - merlin) - basic_machine=ns32k-utek - basic_os=sysv - ;; - mingw64) - basic_machine=x86_64-pc - basic_os=mingw64 - ;; - mingw32) - basic_machine=i686-pc - basic_os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - basic_os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k - basic_os=coff - ;; - morphos) - basic_machine=powerpc-unknown - basic_os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown - basic_os=moxiebox - ;; - msdos) - basic_machine=i386-pc - basic_os=msdos - ;; - msys) - basic_machine=i686-pc - basic_os=msys - ;; - mvs) - basic_machine=i370-ibm - basic_os=mvs - ;; - nacl) - basic_machine=le32-unknown - basic_os=nacl - ;; - ncr3000) - basic_machine=i486-ncr - basic_os=sysv4 - ;; - netbsd386) - basic_machine=i386-pc - basic_os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - basic_os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - basic_os=newsos - ;; - news1000) - basic_machine=m68030-sony - basic_os=newsos - ;; - necv70) - basic_machine=v70-nec - basic_os=sysv - ;; - nh3000) - basic_machine=m68k-harris - basic_os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris - basic_os=cxux - ;; - nindy960) - basic_machine=i960-intel - basic_os=nindy - ;; - mon960) - basic_machine=i960-intel - basic_os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq - basic_os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm - basic_os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - basic_os=ose - ;; - os68k) - basic_machine=m68k-none - basic_os=os68k - ;; - paragon) - basic_machine=i860-intel - basic_os=osf - ;; - parisc) - basic_machine=hppa-unknown - basic_os=linux - ;; - psp) - basic_machine=mipsallegrexel-sony - basic_os=psp - ;; - pw32) - basic_machine=i586-unknown - basic_os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - basic_os=rdos - ;; - rdos32) - basic_machine=i386-pc - basic_os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k - basic_os=coff - ;; - sa29200) - basic_machine=a29k-amd - basic_os=udi - ;; - sei) - basic_machine=mips-sei - basic_os=seiux - ;; - sequent) - basic_machine=i386-sequent - basic_os= - ;; - sps7) - basic_machine=m68k-bull - basic_os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem - basic_os= - ;; - stratus) - basic_machine=i860-stratus - basic_os=sysv4 - ;; - sun2) - basic_machine=m68000-sun - basic_os= - ;; - sun2os3) - basic_machine=m68000-sun - basic_os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - basic_os=sunos4 - ;; - sun3) - basic_machine=m68k-sun - basic_os= - ;; - sun3os3) - basic_machine=m68k-sun - basic_os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - basic_os=sunos4 - ;; - sun4) - basic_machine=sparc-sun - basic_os= - ;; - sun4os3) - basic_machine=sparc-sun - basic_os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - basic_os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - basic_os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - basic_os= - ;; - sv1) - basic_machine=sv1-cray - basic_os=unicos - ;; - symmetry) - basic_machine=i386-sequent - basic_os=dynix - ;; - t3e) - basic_machine=alphaev5-cray - basic_os=unicos - ;; - t90) - basic_machine=t90-cray - basic_os=unicos - ;; - toad1) - basic_machine=pdp10-xkl - basic_os=tops20 - ;; - tpf) - basic_machine=s390x-ibm - basic_os=tpf - ;; - udi29k) - basic_machine=a29k-amd - basic_os=udi - ;; - ultra3) - basic_machine=a29k-nyu - basic_os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - basic_os=none - ;; - vaxv) - basic_machine=vax-dec - basic_os=sysv - ;; - vms) - basic_machine=vax-dec - basic_os=vms - ;; - vsta) - basic_machine=i386-pc - basic_os=vsta - ;; - vxworks960) - basic_machine=i960-wrs - basic_os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - basic_os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - basic_os=vxworks - ;; - xbox) - basic_machine=i686-pc - basic_os=mingw32 - ;; - ymp) - basic_machine=ymp-cray - basic_os=unicos - ;; - *) - basic_machine=$1 - basic_os= - ;; - esac - ;; -esac - -# Decode 1-component or ad-hoc basic machines -case $basic_machine in - # Here we handle the default manufacturer of certain CPU types. It is in - # some cases the only manufacturer, in others, it is the most popular. - w89k) - cpu=hppa1.1 - vendor=winbond - ;; - op50n) - cpu=hppa1.1 - vendor=oki - ;; - op60c) - cpu=hppa1.1 - vendor=oki - ;; - ibm*) - cpu=i370 - vendor=ibm - ;; - orion105) - cpu=clipper - vendor=highlevel - ;; - mac | mpw | mac-mpw) - cpu=m68k - vendor=apple - ;; - pmac | pmac-mpw) - cpu=powerpc - vendor=apple - ;; - - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - cpu=m68000 - vendor=att - ;; - 3b*) - cpu=we32k - vendor=att - ;; - bluegene*) - cpu=powerpc - vendor=ibm - basic_os=cnk - ;; - decsystem10* | dec10*) - cpu=pdp10 - vendor=dec - basic_os=tops10 - ;; - decsystem20* | dec20*) - cpu=pdp10 - vendor=dec - basic_os=tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - cpu=m68k - vendor=motorola - ;; - dpx2*) - cpu=m68k - vendor=bull - basic_os=sysv3 - ;; - encore | umax | mmax) - cpu=ns32k - vendor=encore - ;; - elxsi) - cpu=elxsi - vendor=elxsi - basic_os=${basic_os:-bsd} - ;; - fx2800) - cpu=i860 - vendor=alliant - ;; - genix) - cpu=ns32k - vendor=ns - ;; - h3050r* | hiux*) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - cpu=m68000 - vendor=hp - ;; - hp9k3[2-9][0-9]) - cpu=m68k - vendor=hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - cpu=hppa1.1 - vendor=hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - cpu=hppa1.0 - vendor=hp - ;; - i*86v32) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv32 - ;; - i*86v4*) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv4 - ;; - i*86v) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=sysv - ;; - i*86sol2) - cpu=`echo "$1" | sed -e 's/86.*/86/'` - vendor=pc - basic_os=solaris2 - ;; - j90 | j90-cray) - cpu=j90 - vendor=cray - basic_os=${basic_os:-unicos} - ;; - iris | iris4d) - cpu=mips - vendor=sgi - case $basic_os in - irix*) - ;; - *) - basic_os=irix4 - ;; - esac - ;; - miniframe) - cpu=m68000 - vendor=convergent - ;; - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - cpu=m68k - vendor=atari - basic_os=mint - ;; - news-3600 | risc-news) - cpu=mips - vendor=sony - basic_os=newsos - ;; - next | m*-next) - cpu=m68k - vendor=next - case $basic_os in - openstep*) - ;; - nextstep*) - ;; - ns2*) - basic_os=nextstep2 - ;; - *) - basic_os=nextstep3 - ;; - esac - ;; - np1) - cpu=np1 - vendor=gould - ;; - op50n-* | op60c-*) - cpu=hppa1.1 - vendor=oki - basic_os=proelf - ;; - pa-hitachi) - cpu=hppa1.1 - vendor=hitachi - basic_os=hiuxwe2 - ;; - pbd) - cpu=sparc - vendor=tti - ;; - pbb) - cpu=m68k - vendor=tti - ;; - pc532) - cpu=ns32k - vendor=pc532 - ;; - pn) - cpu=pn - vendor=gould - ;; - power) - cpu=power - vendor=ibm - ;; - ps2) - cpu=i386 - vendor=ibm - ;; - rm[46]00) - cpu=mips - vendor=siemens - ;; - rtpc | rtpc-*) - cpu=romp - vendor=ibm - ;; - sde) - cpu=mipsisa32 - vendor=sde - basic_os=${basic_os:-elf} - ;; - simso-wrs) - cpu=sparclite - vendor=wrs - basic_os=vxworks - ;; - tower | tower-32) - cpu=m68k - vendor=ncr - ;; - vpp*|vx|vx-*) - cpu=f301 - vendor=fujitsu - ;; - w65) - cpu=w65 - vendor=wdc - ;; - w89k-*) - cpu=hppa1.1 - vendor=winbond - basic_os=proelf - ;; - none) - cpu=none - vendor=none - ;; - leon|leon[3-9]) - cpu=sparc - vendor=$basic_machine - ;; - leon-*|leon[3-9]-*) - cpu=sparc - vendor=`echo "$basic_machine" | sed 's/-.*//'` - ;; - - *-*) - # shellcheck disable=SC2162 - IFS="-" read cpu vendor <<EOF -$basic_machine -EOF - ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - cpu=$basic_machine - vendor=pc - ;; - # These rules are duplicated from below for sake of the special case above; - # i.e. things that normalized to x86 arches should also default to "pc" - pc98) - cpu=i386 - vendor=pc - ;; - x64 | amd64) - cpu=x86_64 - vendor=pc - ;; - # Recognize the basic CPU types without company name. - *) - cpu=$basic_machine - vendor=unknown - ;; -esac - -unset -v basic_machine - -# Decode basic machines in the full and proper CPU-Company form. -case $cpu-$vendor in - # Here we handle the default manufacturer of certain CPU types in canonical form. It is in - # some cases the only manufacturer, in others, it is the most popular. - craynv-unknown) - vendor=cray - basic_os=${basic_os:-unicosmp} - ;; - c90-unknown | c90-cray) - vendor=cray - basic_os=${Basic_os:-unicos} - ;; - fx80-unknown) - vendor=alliant - ;; - romp-unknown) - vendor=ibm - ;; - mmix-unknown) - vendor=knuth - ;; - microblaze-unknown | microblazeel-unknown) - vendor=xilinx - ;; - rs6000-unknown) - vendor=ibm - ;; - vax-unknown) - vendor=dec - ;; - pdp11-unknown) - vendor=dec - ;; - we32k-unknown) - vendor=att - ;; - cydra-unknown) - vendor=cydrome - ;; - i370-ibm*) - vendor=ibm - ;; - orion-unknown) - vendor=highlevel - ;; - xps-unknown | xps100-unknown) - cpu=xps100 - vendor=honeywell - ;; - - # Here we normalize CPU types with a missing or matching vendor - dpx20-unknown | dpx20-bull) - cpu=rs6000 - vendor=bull - basic_os=${basic_os:-bosx} - ;; - - # Here we normalize CPU types irrespective of the vendor - amd64-*) - cpu=x86_64 - ;; - blackfin-*) - cpu=bfin - basic_os=linux - ;; - c54x-*) - cpu=tic54x - ;; - c55x-*) - cpu=tic55x - ;; - c6x-*) - cpu=tic6x - ;; - e500v[12]-*) - cpu=powerpc - basic_os=${basic_os}"spe" - ;; - mips3*-*) - cpu=mips64 - ;; - ms1-*) - cpu=mt - ;; - m68knommu-*) - cpu=m68k - basic_os=linux - ;; - m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) - cpu=s12z - ;; - openrisc-*) - cpu=or32 - ;; - parisc-*) - cpu=hppa - basic_os=linux - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - cpu=i586 - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) - cpu=i686 - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - cpu=i686 - ;; - pentium4-*) - cpu=i786 - ;; - pc98-*) - cpu=i386 - ;; - ppc-* | ppcbe-*) - cpu=powerpc - ;; - ppcle-* | powerpclittle-*) - cpu=powerpcle - ;; - ppc64-*) - cpu=powerpc64 - ;; - ppc64le-* | powerpc64little-*) - cpu=powerpc64le - ;; - sb1-*) - cpu=mipsisa64sb1 - ;; - sb1el-*) - cpu=mipsisa64sb1el - ;; - sh5e[lb]-*) - cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` - ;; - spur-*) - cpu=spur - ;; - strongarm-* | thumb-*) - cpu=arm - ;; - tx39-*) - cpu=mipstx39 - ;; - tx39el-*) - cpu=mipstx39el - ;; - x64-*) - cpu=x86_64 - ;; - xscale-* | xscalee[bl]-*) - cpu=`echo "$cpu" | sed 's/^xscale/arm/'` - ;; - arm64-*) - cpu=aarch64 - ;; - - # Recognize the canonical CPU Types that limit and/or modify the - # company names they are paired with. - cr16-*) - basic_os=${basic_os:-elf} - ;; - crisv32-* | etraxfs*-*) - cpu=crisv32 - vendor=axis - ;; - cris-* | etrax*-*) - cpu=cris - vendor=axis - ;; - crx-*) - basic_os=${basic_os:-elf} - ;; - neo-tandem) - cpu=neo - vendor=tandem - ;; - nse-tandem) - cpu=nse - vendor=tandem - ;; - nsr-tandem) - cpu=nsr - vendor=tandem - ;; - nsv-tandem) - cpu=nsv - vendor=tandem - ;; - nsx-tandem) - cpu=nsx - vendor=tandem - ;; - mipsallegrexel-sony) - cpu=mipsallegrexel - vendor=sony - ;; - tile*-*) - basic_os=${basic_os:-linux-gnu} - ;; - - *) - # Recognize the canonical CPU types that are allowed with any - # company name. - case $cpu in - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | abacus \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ - | alphapca5[67] | alpha64pca5[67] \ - | am33_2.0 \ - | amdgcn \ - | arc | arceb \ - | arm | arm[lb]e | arme[lb] | armv* \ - | avr | avr32 \ - | asmjs \ - | ba \ - | be32 | be64 \ - | bfin | bpf | bs2000 \ - | c[123]* | c30 | [cjt]90 | c4x \ - | c8051 | clipper | craynv | csky | cydra \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | elxsi | epiphany \ - | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ - | h8300 | h8500 \ - | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i*86 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle \ - | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ - | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ - | m88110 | m88k | maxq | mb | mcore | mep | metag \ - | microblaze | microblazeel \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64eb | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mmix \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nfp \ - | nios | nios2 | nios2eb | nios2el \ - | none | np1 | ns16k | ns32k | nvptx \ - | open8 \ - | or1k* \ - | or32 \ - | orion \ - | picochip \ - | pdp10 | pdp11 | pj | pjl | pn | power \ - | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ - | pru \ - | pyramid \ - | riscv | riscv32 | riscv64 \ - | rl78 | romp | rs6000 | rx \ - | s390 | s390x \ - | score \ - | sh | shl \ - | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ - | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ - | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ - | spu \ - | tahoe \ - | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ - | tron \ - | ubicom32 \ - | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ - | vax \ - | visium \ - | w65 \ - | wasm32 | wasm64 \ - | we32k \ - | x86 | x86_64 | xc16x | xgate | xps100 \ - | xstormy16 | xtensa* \ - | ymp \ - | z8k | z80) - ;; - - *) - echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 - exit 1 - ;; - esac - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $vendor in - digital*) - vendor=dec - ;; - commodore*) - vendor=cbm - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if test x$basic_os != x -then - -# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just -# set os. -case $basic_os in - gnu/linux*) - kernel=linux - os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'` - ;; - nto-qnx*) - kernel=nto - os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'` - ;; - *-*) - # shellcheck disable=SC2162 - IFS="-" read kernel os <<EOF -$basic_os -EOF - ;; - # Default OS when just kernel was specified - nto*) - kernel=nto - os=`echo $basic_os | sed -e 's|nto|qnx|'` - ;; - linux*) - kernel=linux - os=`echo $basic_os | sed -e 's|linux|gnu|'` - ;; - *) - kernel= - os=$basic_os - ;; -esac - -# Now, normalize the OS (knowing we just have one component, it's not a kernel, -# etc.) -case $os in - # First match some system type aliases that might get confused - # with valid system types. - # solaris* is a basic system type, with this one exception. - auroraux) - os=auroraux - ;; - bluegene*) - os=cnk - ;; - solaris1 | solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - solaris) - os=solaris2 - ;; - unixware*) - os=sysv4.2uw - ;; - # es1800 is here to avoid being matched by es* (a different OS) - es1800*) - os=ose - ;; - # Some version numbers need modification - chorusos*) - os=chorusos - ;; - isc) - os=isc2.2 - ;; - sco6) - os=sco5v6 - ;; - sco5) - os=sco3.2v5 - ;; - sco4) - os=sco3.2v4 - ;; - sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - ;; - sco*v* | scout) - # Don't match below - ;; - sco*) - os=sco3.2v2 - ;; - psos*) - os=psos - ;; - qnx*) - case $cpu in - x86 | i*86) - ;; - *) - os=nto-$os - ;; - esac - ;; - hiux*) - os=hiuxwe2 - ;; - lynx*178) - os=lynxos178 - ;; - lynx*5) - os=lynxos5 - ;; - lynxos*) - # don't get caught up in next wildcard - ;; - lynx*) - os=lynxos - ;; - mac[0-9]*) - os=`echo "$os" | sed -e 's|mac|macos|'` - ;; - opened*) - os=openedition - ;; - os400*) - os=os400 - ;; - sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; - sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; - wince*) - os=wince - ;; - utek*) - os=bsd - ;; - dynix*) - os=bsd - ;; - acis*) - os=aos - ;; - atheos*) - os=atheos - ;; - syllable*) - os=syllable - ;; - 386bsd) - os=bsd - ;; - ctix* | uts*) - os=sysv - ;; - nova*) - os=rtmk-nova - ;; - ns2) - os=nextstep2 - ;; - # Preserve the version number of sinix5. - sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - sinix*) - os=sysv4 - ;; - tpf*) - os=tpf - ;; - triton*) - os=sysv3 - ;; - oss*) - os=sysv3 - ;; - svr4*) - os=sysv4 - ;; - svr3) - os=sysv3 - ;; - sysvr4) - os=sysv4 - ;; - ose*) - os=ose - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - os=mint - ;; - dicos*) - os=dicos - ;; - pikeos*) - # Until real need of OS specific support for - # particular features comes up, bare metal - # configurations are quite functional. - case $cpu in - arm*) - os=eabi - ;; - *) - os=elf - ;; - esac - ;; - *) - # No normalization, but not necessarily accepted, that comes below. - ;; -esac - -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -kernel= -case $cpu-$vendor in - score-*) - os=elf - ;; - spu-*) - os=elf - ;; - *-acorn) - os=riscix1.2 - ;; - arm*-rebel) - kernel=linux - os=gnu - ;; - arm*-semi) - os=aout - ;; - c4x-* | tic4x-*) - os=coff - ;; - c8051-*) - os=elf - ;; - clipper-intergraph) - os=clix - ;; - hexagon-*) - os=elf - ;; - tic54x-*) - os=coff - ;; - tic55x-*) - os=coff - ;; - tic6x-*) - os=coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=tops20 - ;; - pdp11-*) - os=none - ;; - *-dec | vax-*) - os=ultrix4.2 - ;; - m68*-apollo) - os=domain - ;; - i386-sun) - os=sunos4.0.2 - ;; - m68000-sun) - os=sunos3 - ;; - m68*-cisco) - os=aout - ;; - mep-*) - os=elf - ;; - mips*-cisco) - os=elf - ;; - mips*-*) - os=elf - ;; - or32-*) - os=coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=sysv3 - ;; - sparc-* | *-sun) - os=sunos4.1.1 - ;; - pru-*) - os=elf - ;; - *-be) - os=beos - ;; - *-ibm) - os=aix - ;; - *-knuth) - os=mmixware - ;; - *-wec) - os=proelf - ;; - *-winbond) - os=proelf - ;; - *-oki) - os=proelf - ;; - *-hp) - os=hpux - ;; - *-hitachi) - os=hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=sysv - ;; - *-cbm) - os=amigaos - ;; - *-dg) - os=dgux - ;; - *-dolphin) - os=sysv3 - ;; - m68k-ccur) - os=rtu - ;; - m88k-omron*) - os=luna - ;; - *-next) - os=nextstep - ;; - *-sequent) - os=ptx - ;; - *-crds) - os=unos - ;; - *-ns) - os=genix - ;; - i370-*) - os=mvs - ;; - *-gould) - os=sysv - ;; - *-highlevel) - os=bsd - ;; - *-encore) - os=bsd - ;; - *-sgi) - os=irix - ;; - *-siemens) - os=sysv4 - ;; - *-masscomp) - os=rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=uxpv - ;; - *-rom68k) - os=coff - ;; - *-*bug) - os=coff - ;; - *-apple) - os=macos - ;; - *-atari*) - os=mint - ;; - *-wrs) - os=vxworks - ;; - *) - os=none - ;; -esac - -fi - -# Now, validate our (potentially fixed-up) OS. -case $os in - # Sometimes we do "kernel-abi", so those need to count as OSes. - musl* | newlib* | uclibc*) - ;; - # Likewise for "kernel-libc" - eabi | eabihf | gnueabi | gnueabihf) - ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ - | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ - | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ - | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ - | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* \ - | mpw* | magic* | mmixware* | mon960* | lnews* \ - | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ - | aos* | aros* | cloudabi* | sortix* | twizzler* \ - | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ - | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ - | mirbsd* | netbsd* | dicos* | openedition* | ose* \ - | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ - | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ - | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ - | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ - | udi* | lites* | ieee* | go32* | aux* | hcos* \ - | chorusrdb* | cegcc* | glidix* \ - | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ - | midipix* | mingw32* | mingw64* | mint* \ - | uxpv* | beos* | mpeix* | udk* | moxiebox* \ - | interix* | uwin* | mks* | rhapsody* | darwin* \ - | openstep* | oskit* | conix* | pw32* | nonstopux* \ - | storm-chaos* | tops10* | tenex* | tops20* | its* \ - | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ - | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ - | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ - | skyos* | haiku* | rdos* | toppers* | drops* | es* \ - | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ - | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ - | nsk* | powerunix* | genode* | zvmoe* ) - ;; - # This one is extra strict with allowed versions - sco3.2v2 | sco3.2v[4-9]* | sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - ;; - none) - ;; - *) - echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 - exit 1 - ;; -esac - -# As a final step for OS-related things, validate the OS-kernel combination -# (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) - ;; - -dietlibc* | -newlib* | -musl* | -uclibc* ) - # These are just libc implementations, not actual OSes, and thus - # require a kernel. - echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 - exit 1 - ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) - ;; - nto-qnx*) - ;; - *-eabi* | *-gnueabi*) - ;; - -*) - # Blank kernel with real OS is always fine. - ;; - *-*) - echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 - exit 1 - ;; -esac - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -case $vendor in - unknown) - case $cpu-$os in - *-riscix*) - vendor=acorn - ;; - *-sunos*) - vendor=sun - ;; - *-cnk* | *-aix*) - vendor=ibm - ;; - *-beos*) - vendor=be - ;; - *-hpux*) - vendor=hp - ;; - *-mpeix*) - vendor=hp - ;; - *-hiux*) - vendor=hitachi - ;; - *-unos*) - vendor=crds - ;; - *-dgux*) - vendor=dg - ;; - *-luna*) - vendor=omron - ;; - *-genix*) - vendor=ns - ;; - *-clix*) - vendor=intergraph - ;; - *-mvs* | *-opened*) - vendor=ibm - ;; - *-os400*) - vendor=ibm - ;; - s390-* | s390x-*) - vendor=ibm - ;; - *-ptx*) - vendor=sequent - ;; - *-tpf*) - vendor=ibm - ;; - *-vxsim* | *-vxworks* | *-windiss*) - vendor=wrs - ;; - *-aux*) - vendor=apple - ;; - *-hms*) - vendor=hitachi - ;; - *-mpw* | *-macos*) - vendor=apple - ;; - *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) - vendor=atari - ;; - *-vos*) - vendor=stratus - ;; - esac - ;; -esac - -echo "$cpu-$vendor-${kernel:+$kernel-}$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/contrib/dialog/configure b/contrib/dialog/configure deleted file mode 100755 index 1e5c94ceb37c..000000000000 --- a/contrib/dialog/configure +++ /dev/null @@ -1,27284 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.52.20210105. -# -# Copyright 2003-2020,2021 Thomas E. Dickey -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset="unset" -else - as_unset="false" -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: "${ac_max_here_lines=38}" - -ac_unique_file="dialog.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#if STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# if HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#if HAVE_STRINGS_H -# include <strings.h> -#endif -#if HAVE_INTTYPES_H -# include <inttypes.h> -#else -# if HAVE_STDINT_H -# include <stdint.h> -# endif -#endif -#if HAVE_UNISTD_H -# include <unistd.h> -#endif" - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${datarootdir}/info' -mandir='${datarootdir}/man' - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo "$ac_feature" | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo "$ac_feature" | sed 's/-/_/g'` - case "$ac_option" in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst \ - | --runs | --run | --ru) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* \ - | --runs=* | --run=* | --ru=*) - runstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo "$ac_package" | sed 's/-/_/g'` - case "$ac_option" in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo "$ac_package" | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export "$ac_envvar" ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option}" "${host_alias=$ac_option}" "${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo "$ac_prev" | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo "$ac_var"` - case "$ac_val" in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo "$ac_var"` - case "$ac_val" in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: should be removed in autoconf 3.0. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<EOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -EOF - - cat <<EOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datarootdir=DIR read-only architecture-independent data [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR extra definition of runtime data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [DATAROOTDIR/info] - --mandir=DIR man documentation [DATAROOTDIR/man] -EOF - - cat <<\EOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST build programs to run on HOST [BUILD] -EOF -fi - -if test -n "$ac_init_help"; then - - cat <<\EOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - - --disable-echo do not display "compiling" commands - --disable-largefile omit support for large files - --with-install-prefix=XXX sets DESTDIR, useful for packaging - --with-x use the X Window System - --enable-warnings test: turn on gcc compiler warnings - --with-pkg-config{=path} enable/disable use of pkg-config - --with-package=XXX rename dialog to XXX, library to libXXX.a, etc - --enable-header-subdir install dlg_XXX headers to subdirectory - --with-man2html=XXX use XXX rather than groff - --with-libiconv-prefix=DIR - search for libiconv in DIR/include and DIR/lib - --enable-nls use Native Language Support - --with-included-gettext use the GNU gettext library included here - --with-textdomain=PKG NLS text-domain (default is package name) - --disable-included-msgs use included messages, for i18n support - --with-dmalloc test: use Gray Watson's dmalloc library - --with-dbmalloc test: use Conor Cahill's dbmalloc library - --with-purify test: use Purify - --with-valgrind test: use valgrind - --with-no-leaks test: free permanent memory, analyze leaks - --disable-trace do not support --trace option - --enable-rpath use rpath option when generating shared libraries - --with-rel-version=XXX override derived release version - --with-abi-version=XXX override derived ABI version - --disable-libtool-version enable to use libtool's incompatible naming scheme - --with-libtool generate libraries with libtool - --with-libtool-opts=XXX specify additional libtool options - --with-export-syms=XXX limit exported symbols using libtool - --with-shared generate shared-libraries - --with-shlib-version=X Specify rel or abi version for shared libs - --with-versioned-syms=X markup versioned symbols using ld - --with-curses-dir=DIR directory in which (n)curses is installed - --with-screen=XXX use specified curses-libraries - --with-ncursesw use wide ncurses-libraries - --with-ncurses use ncurses-libraries - --with-pdcurses compile/link with pdcurses X11 library - --with-curses-colr compile/link with HPUX 10.x color-curses - --with-curses-5lib compile/link with SunOS 5lib curses - --with-Xaw3d link with Xaw 3d library - --with-Xaw3dxft link with Xaw 3d xft library - --with-neXtaw link with neXT Athena library - --with-XawPlus link with Athena-Plus library - --disable-extras do not include extra dialogs - --disable-rc-file do not include config-file support - --disable-rc-file2 do not use extra attributes in config-file - --disable-Xdialog do not include Xdialog-style dialogs (1.1) - --disable-Xdialog2 do not include extra Xdialog-style dialogs (1.2) - --disable-whiptail do not map extra whiptail options - --disable-form do not include the form dialog - --disable-gauge do not include the gauge dialogs - --disable-tailbox do not include the tailbox dialog - --disable-mixedform do not include the mixedform dialog - --disable-mixedgauge do not include the mixedgauge dialog - --enable-widec enable wide-curses features - --disable-rpath-hack don't add rpath options for additional libraries - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have - headers in a nonstandard directory <include dir> - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -EOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue - cd "$ac_subdir" - # A "../" for each directory in /$ac_subdir. - ac_dots=`echo "$ac_subdir" | - sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - - case "$srcdir" in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir="$srcdir" ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_sub_srcdir="$srcdir/$ac_subdir" ;; - *) # Relative path. - ac_sub_srcdir="$ac_dots$srcdir/$ac_subdir" ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f "$ac_sub_srcdir/configure.gnu"; then - echo - $SHELL "$ac_sub_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_sub_srcdir/configure"; then - echo - $SHELL "$ac_sub_srcdir/configure" --help=recursive - elif test -f "$ac_sub_srcdir/configure.ac" || - test -f "$ac_sub_srcdir/configure.in"; then - echo - "$ac_configure" --help - else - echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 - fi - cd "$ac_popdir" - done -fi - -test -n "$ac_init_help" && exit 0 -if "$ac_init_version"; then - cat <<\EOF - -Copyright 2003-2020,2021 Thomas E. Dickey -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -EOF - exit 0 -fi -exec 5>config.log -cat >&5 <<EOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.52.20210105. Invocation command line was - - $ $0 $@ - -EOF -{ -cat <<_ASUNAME -## ---------- ## -## Platform. ## -## ---------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -PATH = $PATH - -_ASUNAME -} >&5 - -cat >&5 <<EOF -## ------------ ## -## Core tests. ## -## ------------ ## - -EOF - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell meta-characters. -ac_configure_args= -ac_sep= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - ac_sep=" " ;; - *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" - ac_sep=" " ;; - esac - # Get rid of the leading space. -done - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - echo >&5 - echo "## ----------------- ##" >&5 - echo "## Cache variables. ##" >&5 - echo "## ----------------- ##" >&5 - echo >&5 - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} >&5 - sed "/^$/d" confdefs.h >conftest.log - if test -s conftest.log; then - echo >&5 - echo "## ------------ ##" >&5 - echo "## confdefs.h. ##" >&5 - echo "## ------------ ##" >&5 - echo >&5 - cat conftest.log >&5 - fi - (echo; echo) >&5 - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" >&5 - echo "$as_me: exit $exit_status" >&5 - rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' "$ac_signal" -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:955: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - cat "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:966: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:974: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case "$ac_old_set,$ac_new_set" in - set,) - { echo "$as_me:990: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:994: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:1000: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:1002: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:1004: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. It doesn't matter if - # we pass some twice (in addition to the command line arguments). - if test "$ac_new_set" = set; then - case "$ac_new_val" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val" - ;; - esac - fi -done -if "$ac_cache_corrupted"; then - { echo "$as_me:1023: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:1025: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5' -ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_main_return="return" - -case `echo "testing\c" 2>/dev/null; echo 1,2,3`,`echo -n testing 2>/dev/null; echo 1,2,3` in - *c*,-n*) ECHO_N= - ECHO_C= # newlines do not sed ;-) only broken shells would use this case anyway - ECHO_T=' ' - ;; - *c*,* ) ECHO_N=-n - ECHO_C= - ECHO_T= - ;; - *) ECHO_N= - ECHO_C='\c' - ECHO_T= - ;; -esac -echo "#! $SHELL" >conftest.sh -echo "exit 0" >>conftest.sh -chmod +x conftest.sh -if { (echo "$as_me:1054: PATH=\".;.\"; conftest.sh") >&5 - (PATH=".;."; conftest.sh) 2>&5 - ac_status=$? - echo "$as_me:1057: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - ac_path_separator=';' -else - ac_path_separator=: -fi -PATH_SEPARATOR="$ac_path_separator" -rm -f conftest.sh - -ac_config_headers="$ac_config_headers dlg_config.h:config.hin" - -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -DESTDIR= - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:1100: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:1110: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:1114: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:1123: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub "$ac_cv_build_alias"` || - { { echo "$as_me:1127: error: $ac_config_sub $ac_cv_build_alias failed." >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:1132: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo "$ac_cv_build" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -echo "$as_me:1139: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub "$ac_cv_host_alias"` || - { { echo "$as_me:1148: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:1153: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$ac_cv_host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5' -ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_main_return="return" -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:1169: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}gcc" -echo "$as_me:1184: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1192: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1195: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:1204: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="gcc" -echo "$as_me:1219: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1227: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1230: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:1243: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}cc" -echo "$as_me:1258: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1266: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1269: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1278: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="cc" -echo "$as_me:1293: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1301: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1304: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1317: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue -fi -ac_cv_prog_CC="cc" -echo "$as_me:1337: found $ac_dir/$ac_word" >&5 -break -done - -if test "$ac_prog_rejected" = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" ${1+"$@"} - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1359: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1362: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:1373: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -echo "$as_me:1388: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1396: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1399: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:1412: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="$ac_prog" -echo "$as_me:1427: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1435: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1438: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - -test -z "$CC" && { { echo "$as_me:1450: error: no acceptable cc found in \$PATH" >&5 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:1455:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo "$2"` -{ (eval echo "$as_me:1458: \"$ac_compiler --version </dev/null >&5\"") >&5 - (eval $ac_compiler --version </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:1461: \$? = $ac_status" >&5 - (exit "$ac_status"); } -{ (eval echo "$as_me:1463: \"$ac_compiler -v </dev/null >&5\"") >&5 - (eval $ac_compiler -v </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:1466: \$? = $ac_status" >&5 - (exit "$ac_status"); } -{ (eval echo "$as_me:1468: \"$ac_compiler -V </dev/null >&5\"") >&5 - (eval $ac_compiler -V </dev/null >&5) 2>&5 - ac_status=$? - echo "$as_me:1471: \$? = $ac_status" >&5 - (exit "$ac_status"); } - -cat >"conftest.$ac_ext" <<_ACEOF -#line 1475 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:1491: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *"conftest[^"]*"//'` -if { (eval echo "$as_me:1494: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:1497: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. -for ac_file in `ls a.exe conftest.exe 2>/dev/null; - ls a.out conftest 2>/dev/null; - ls a.* conftest.* 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - a.out ) # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool --akim. - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -{ { echo "$as_me:1520: error: C compiler cannot create executables" >&5 -echo "$as_me: error: C compiler cannot create executables" >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:1526: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:1531: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:1537: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1540: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:1547: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:1555: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe "conftest$ac_cv_exeext" -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:1562: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:1564: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:1567: checking for executable suffix" >&5 -echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 -if { (eval echo "$as_me:1569: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:1572: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:1588: error: cannot compute EXEEXT: cannot compile and link" >&5 -echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f "conftest$ac_cv_exeext" -echo "$as_me:1594: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f "conftest.$ac_ext" -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:1600: checking for object suffix" >&5 -echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 1606 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1618: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1621: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -{ { echo "$as_me:1633: error: cannot compute OBJEXT: cannot compile" >&5 -echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f "conftest.$ac_cv_objext" "conftest.$ac_ext" -fi -echo "$as_me:1640: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:1644: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 1650 "configure" -#include "confdefs.h" - -int -main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1665: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1668: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1671: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1674: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_compiler_gnu=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:1686: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:1692: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 1698 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1710: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1713: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1716: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1719: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_prog_cc_g=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:1729: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >"conftest.$ac_ext" <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1756: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1759: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1762: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1765: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - for ac_declaration in \ - ''\ - '#include <stdlib.h>' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >"conftest.$ac_ext" <<_ACEOF -#line 1777 "configure" -#include "confdefs.h" -#include <stdlib.h> -$ac_declaration -int -main (void) -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1790: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1793: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1796: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1799: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -continue -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - cat >"conftest.$ac_ext" <<_ACEOF -#line 1809 "configure" -#include "confdefs.h" -$ac_declaration -int -main (void) -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1821: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1824: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1827: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1830: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done -rm -rf conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo "$ac_declaration" >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5' -ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_main_return="return" - -GCC_VERSION=none -if test "$GCC" = yes ; then - echo "$as_me:1860: checking version of $CC" >&5 -echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 - GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" - test -z "$GCC_VERSION" && GCC_VERSION=unknown - echo "$as_me:1864: result: $GCC_VERSION" >&5 -echo "${ECHO_T}$GCC_VERSION" >&6 -fi - -INTEL_COMPILER=no - -if test "$GCC" = yes ; then - case "$host_os" in - (linux*|gnu*) - echo "$as_me:1873: checking if this is really Intel C compiler" >&5 -echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6 - cf_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -no-gcc" - cat >"conftest.$ac_ext" <<_ACEOF -#line 1878 "configure" -#include "confdefs.h" - -int -main (void) -{ - -#ifdef __INTEL_COMPILER -#else -make an error -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1895: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1898: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1901: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1904: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - INTEL_COMPILER=yes -cf_save_CFLAGS="$cf_save_CFLAGS -we147" - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CFLAGS="$cf_save_CFLAGS" - echo "$as_me:1915: result: $INTEL_COMPILER" >&5 -echo "${ECHO_T}$INTEL_COMPILER" >&6 - ;; - esac -fi - -CLANG_COMPILER=no - -if test "$GCC" = yes ; then - echo "$as_me:1924: checking if this is really Clang C compiler" >&5 -echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 - cf_save_CFLAGS="$CFLAGS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 1928 "configure" -#include "confdefs.h" - -int -main (void) -{ - -#ifdef __clang__ -#else -make an error -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:1945: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1948: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:1951: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1954: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - CLANG_COMPILER=yes - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CFLAGS="$cf_save_CFLAGS" - echo "$as_me:1964: result: $CLANG_COMPILER" >&5 -echo "${ECHO_T}$CLANG_COMPILER" >&6 -fi - -CLANG_VERSION=none - -if test "x$CLANG_COMPILER" = "xyes" ; then - case "$CC" in - (c[1-9][0-9]|*/c[1-9][0-9]) - { echo "$as_me:1973: WARNING: replacing broken compiler alias $CC" >&5 -echo "$as_me: WARNING: replacing broken compiler alias $CC" >&2;} - CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`" - CC=clang - ;; - esac - - echo "$as_me:1980: checking version of $CC" >&5 -echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 - CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" - test -z "$CLANG_VERSION" && CLANG_VERSION=unknown - echo "$as_me:1984: result: $CLANG_VERSION" >&5 -echo "${ECHO_T}$CLANG_VERSION" >&6 - - for cf_clang_opt in \ - -Qunused-arguments \ - -Wno-error=implicit-function-declaration - do - echo "$as_me:1991: checking if option $cf_clang_opt works" >&5 -echo $ECHO_N "checking if option $cf_clang_opt works... $ECHO_C" >&6 - cf_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cf_clang_opt" - cat >"conftest.$ac_ext" <<_ACEOF -#line 1996 "configure" -#include "confdefs.h" - - #include <stdio.h> -int -main (void) -{ - - printf("hello!\\n"); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:2010: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:2013: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:2016: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2019: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_clang_optok=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_clang_optok=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:2030: result: $cf_clang_optok" >&5 -echo "${ECHO_T}$cf_clang_optok" >&6 - CFLAGS="$cf_save_CFLAGS" - if test "$cf_clang_optok" = yes; then - test -n "$verbose" && echo " adding option $cf_clang_opt" 1>&6 - -echo "${as_me:-configure}:2036: testing adding option $cf_clang_opt ..." 1>&5 - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_clang_opt" - - fi - done -fi - -echo "$as_me:2045: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >"conftest.$ac_ext" <<_ACEOF -#line 2053 "configure" -#include "confdefs.h" -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main (void) -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:2102: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2105: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:2108: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2111: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" -done -rm -f "conftest.$ac_ext" "conftest.$ac_objext" -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:2128: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:2131: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# This should have been defined by AC_PROG_CC -: "${CC:=cc}" - -echo "$as_me:2139: checking \$CFLAGS variable" >&5 -echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6 -case "x$CFLAGS" in -(*-[IUD]*) - echo "$as_me:2143: result: broken" >&5 -echo "${ECHO_T}broken" >&6 - { echo "$as_me:2145: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5 -echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;} - cf_flags="$CFLAGS" - CFLAGS= - for cf_arg in $cf_flags - do - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_arg -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - done - ;; -(*) - echo "$as_me:2253: result: ok" >&5 -echo "${ECHO_T}ok" >&6 - ;; -esac - -echo "$as_me:2258: checking \$CC variable" >&5 -echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6 -case "$CC" in -(*[\ \ ]-*) - echo "$as_me:2262: result: broken" >&5 -echo "${ECHO_T}broken" >&6 - { echo "$as_me:2264: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5 -echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;} - # humor him... - cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'` - cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'` - CC="$cf_prog" - for cf_arg in $cf_flags - do - case "x$cf_arg" in - (x-[IUDfgOW]*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_arg -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - ;; - (*) - CC="$CC $cf_arg" - ;; - esac - done - test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6 - -echo "${as_me:-configure}:2381: testing resulting CC: '$CC' ..." 1>&5 - - test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6 - -echo "${as_me:-configure}:2385: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5 - - test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6 - -echo "${as_me:-configure}:2389: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5 - - ;; -(*) - echo "$as_me:2393: result: ok" >&5 -echo "${ECHO_T}ok" >&6 - ;; -esac - -for ac_prog in ggrep grep -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:2402: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$GREP"; then - ac_cv_prog_GREP="$GREP" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_GREP="$ac_prog" -echo "$as_me:2417: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -GREP=$ac_cv_prog_GREP -if test -n "$GREP"; then - echo "$as_me:2425: result: $GREP" >&5 -echo "${ECHO_T}$GREP" >&6 -else - echo "$as_me:2428: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$GREP" && break -done -test -n "$GREP" || GREP=": " - -echo "$as_me:2436: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - for ac_prog in gegrep egrep -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:2448: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $EGREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_EGREP="$ac_dir/$ac_word" - echo "$as_me:2465: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -EGREP=$ac_cv_path_EGREP - -if test -n "$EGREP"; then - echo "$as_me:2476: result: $EGREP" >&5 -echo "${ECHO_T}$EGREP" >&6 -else - echo "$as_me:2479: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$EGREP" && break -done -test -n "$EGREP" || EGREP=": " - - test "x$ac_cv_path_EGREP" = "x:" && { { echo "$as_me:2487: error: cannot find workable egrep" >&5 -echo "$as_me: error: cannot find workable egrep" >&2;} - { (exit 1); exit 1; }; } - fi -fi -echo "$as_me:2492: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6 - EGREP="$ac_cv_path_EGREP" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5' -ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_main_return="return" -echo "$as_me:2502: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >"conftest.$ac_ext" <<_ACEOF -#line 2523 "configure" -#include "confdefs.h" -#include <assert.h> - Syntax error -_ACEOF -if { (eval echo "$as_me:2528: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2534: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err "conftest.$ac_ext" - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >"conftest.$ac_ext" <<_ACEOF -#line 2557 "configure" -#include "confdefs.h" -#include <ac_nonexistent.h> -_ACEOF -if { (eval echo "$as_me:2561: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2567: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err "conftest.$ac_ext" - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err "conftest.$ac_ext" -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:2604: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >"conftest.$ac_ext" <<_ACEOF -#line 2614 "configure" -#include "confdefs.h" -#include <assert.h> - Syntax error -_ACEOF -if { (eval echo "$as_me:2619: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2625: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err "conftest.$ac_ext" - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >"conftest.$ac_ext" <<_ACEOF -#line 2648 "configure" -#include "confdefs.h" -#include <ac_nonexistent.h> -_ACEOF -if { (eval echo "$as_me:2652: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2658: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err "conftest.$ac_ext" - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err "conftest.$ac_ext" -if $ac_preproc_ok; then - : -else - { { echo "$as_me:2686: error: C preprocessor \"$CPP\" fails sanity check" >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS "conftest.$ac_ext" >&5' -ac_link='$CC -o "conftest$ac_exeext" $CFLAGS $CPPFLAGS $LDFLAGS "conftest.$ac_ext" $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_main_return="return" - -echo "$as_me:2698: checking whether ${MAKE-make} sets \${MAKE}" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:2718: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:2722: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:2730: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" -echo "$as_me:2745: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:2753: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:2756: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:2765: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_RANLIB="ranlib" -echo "$as_me:2780: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:2789: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:2792: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:2813: checking for a BSD compatible install" >&5 -echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_save_IFS=$IFS; IFS=$ac_path_separator - for ac_dir in $PATH; do - IFS=$ac_save_IFS - # Account for people who put trailing slashes in PATH elements. - case $ac_dir/ in - / | ./ | .// | /cC/* \ - | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ - | /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if $as_executable_p "$ac_dir/$ac_prog"; then - if test $ac_prog = install && - grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:2862: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo "$as_me:2873: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - echo "$as_me:2877: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:2880: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -echo "$as_me:2884: checking if $LN_S -f options work" >&5 -echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6 - -rm -f conf$$.src conf$$dst -echo >conf$$.dst -echo first >conf$$.src -if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then - cf_prog_ln_sf=yes -else - cf_prog_ln_sf=no -fi -rm -f conf$$.dst conf$$src -echo "$as_me:2896: result: $cf_prog_ln_sf" >&5 -echo "${ECHO_T}$cf_prog_ln_sf" >&6 - -test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f" - -for ac_prog in lint cppcheck splint -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:2905: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_LINT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LINT"; then - ac_cv_prog_LINT="$LINT" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_LINT="$ac_prog" -echo "$as_me:2920: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -LINT=$ac_cv_prog_LINT -if test -n "$LINT"; then - echo "$as_me:2928: result: $LINT" >&5 -echo "${ECHO_T}$LINT" >&6 -else - echo "$as_me:2931: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$LINT" && break -done - -case "x$LINT" in -(xcppcheck|x*/cppcheck) - test -z "$LINT_OPTS" && LINT_OPTS="--enable=all" - ;; -esac - -# Extract the first word of "groff", so it can be a program name with args. -set dummy groff; ac_word=$2 -echo "$as_me:2946: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GROFF_PATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GROFF_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_GROFF_PATH="$GROFF_PATH" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_GROFF_PATH="$ac_dir/$ac_word" - echo "$as_me:2963: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_GROFF_PATH" && ac_cv_path_GROFF_PATH="no" - ;; -esac -fi -GROFF_PATH=$ac_cv_path_GROFF_PATH - -if test -n "$GROFF_PATH"; then - echo "$as_me:2975: result: $GROFF_PATH" >&5 -echo "${ECHO_T}$GROFF_PATH" >&6 -else - echo "$as_me:2978: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -for ac_prog in nroff mandoc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:2986: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_NROFF_PATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $NROFF_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_NROFF_PATH="$NROFF_PATH" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_NROFF_PATH="$ac_dir/$ac_word" - echo "$as_me:3003: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -NROFF_PATH=$ac_cv_path_NROFF_PATH - -if test -n "$NROFF_PATH"; then - echo "$as_me:3014: result: $NROFF_PATH" >&5 -echo "${ECHO_T}$NROFF_PATH" >&6 -else - echo "$as_me:3017: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$NROFF_PATH" && break -done -test -n "$NROFF_PATH" || NROFF_PATH="no" - -# Extract the first word of "tbl", so it can be a program name with args. -set dummy tbl; ac_word=$2 -echo "$as_me:3027: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_TBL_PATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $TBL_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_TBL_PATH="$TBL_PATH" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_TBL_PATH="$ac_dir/$ac_word" - echo "$as_me:3044: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_TBL_PATH" && ac_cv_path_TBL_PATH="cat" - ;; -esac -fi -TBL_PATH=$ac_cv_path_TBL_PATH - -if test -n "$TBL_PATH"; then - echo "$as_me:3056: result: $TBL_PATH" >&5 -echo "${ECHO_T}$TBL_PATH" >&6 -else - echo "$as_me:3059: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test "x$GROFF_PATH" = xno -then - NROFF_NOTE= - GROFF_NOTE="#" -else - NROFF_NOTE="#" - GROFF_NOTE= -fi - -test -z "$GROFF_NOTE" && NROFF_NOTE= - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo "$as_me:3077: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_AR="${ac_tool_prefix}ar" -echo "$as_me:3092: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:3100: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:3103: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:3112: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_AR="ar" -echo "$as_me:3127: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="ar" -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:3136: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:3139: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" -fi - -echo "$as_me:3148: checking for options to update archives" >&5 -echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6 -if test "${cf_cv_ar_flags+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - case "$cf_cv_system_name" in - (*-msvc*) - cf_cv_ar_flags='' - cat >mk_static_lib.sh <<-EOF - #!$SHELL - MSVC_BIN="$AR" - out="\$1" - shift - exec \$MSVC_BIN -out:"\$out" \$@ - EOF - chmod +x mk_static_lib.sh - AR=`pwd`/mk_static_lib.sh - ;; - (*) - cf_cv_ar_flags=unknown - for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv - do - - # check if $ARFLAGS already contains this choice - if test "x$ARFLAGS" != "x" ; then - cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"` - if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then - cf_cv_ar_flags= - break - fi - fi - - rm -f "conftest.$ac_cv_objext" - rm -f conftest.a - - cat >"conftest.$ac_ext" <<EOF -#line 3185 "configure" -int testdata[3] = { 123, 456, 789 }; -EOF - if { (eval echo "$as_me:3188: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:3191: \$? = $ac_status" >&5 - (exit "$ac_status"); } ; then - echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5 - $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&5 1>/dev/null - if test -f conftest.a ; then - cf_cv_ar_flags="$cf_ar_flags" - break - fi - else - test -n "$verbose" && echo " cannot compile test-program" 1>&6 - -echo "${as_me:-configure}:3202: testing cannot compile test-program ..." 1>&5 - - break - fi - done - rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext" - ;; - esac - -fi -echo "$as_me:3212: result: $cf_cv_ar_flags" >&5 -echo "${ECHO_T}$cf_cv_ar_flags" >&6 - -if test -n "$ARFLAGS" ; then - if test -n "$cf_cv_ar_flags" ; then - ARFLAGS="$ARFLAGS $cf_cv_ar_flags" - fi -else - ARFLAGS=$cf_cv_ar_flags -fi - -echo "$as_me:3223: checking for fgrep" >&5 -echo $ECHO_N "checking for fgrep... $ECHO_C" >&6 -if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - for ac_prog in gfgrep fgrep -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:3235: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $FGREP in - [\\/]* | ?:[\\/]*) - ac_cv_path_FGREP="$FGREP" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_FGREP="$ac_dir/$ac_word" - echo "$as_me:3252: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -FGREP=$ac_cv_path_FGREP - -if test -n "$FGREP"; then - echo "$as_me:3263: result: $FGREP" >&5 -echo "${ECHO_T}$FGREP" >&6 -else - echo "$as_me:3266: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$FGREP" && break -done -test -n "$FGREP" || FGREP=": " - - test "x$ac_cv_path_FGREP" = "x:" && { { echo "$as_me:3274: error: cannot find workable fgrep" >&5 -echo "$as_me: error: cannot find workable fgrep" >&2;} - { (exit 1); exit 1; }; } - fi -fi -echo "$as_me:3279: result: $ac_cv_path_FGREP" >&5 -echo "${ECHO_T}$ac_cv_path_FGREP" >&6 - FGREP="$ac_cv_path_FGREP" - -echo "$as_me:3283: checking for makeflags variable" >&5 -echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6 -if test "${cf_cv_makeflags+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_makeflags='' - for cf_option in '-${MAKEFLAGS}' '${MFLAGS}' - do - cat >cf_makeflags.tmp <<CF_EOF -SHELL = $SHELL -all : - @ echo '.$cf_option' -CF_EOF - cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[ ]*$,,'` - case "$cf_result" in - (.*k|.*kw) - cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`" - case "$cf_result" in - (.*CC=*) cf_cv_makeflags= - ;; - (*) cf_cv_makeflags=$cf_option - ;; - esac - break - ;; - (.-) - ;; - (*) - -echo "${as_me:-configure}:3313: testing given option \"$cf_option\",no match \"$cf_result\" ..." 1>&5 - - ;; - esac - done - rm -f cf_makeflags.tmp - -fi -echo "$as_me:3321: result: $cf_cv_makeflags" >&5 -echo "${ECHO_T}$cf_cv_makeflags" >&6 - -echo "$as_me:3324: checking if filesystem supports mixed-case filenames" >&5 -echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6 -if test "${cf_cv_mixedcase+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -if test "$cross_compiling" = yes ; then - case "$target_alias" in - (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*) - cf_cv_mixedcase=no - ;; - (*) - cf_cv_mixedcase=yes - ;; - esac -else - rm -f conftest CONFTEST - echo test >conftest - if test -f CONFTEST ; then - cf_cv_mixedcase=no - else - cf_cv_mixedcase=yes - fi - rm -f conftest CONFTEST -fi - -fi -echo "$as_me:3351: result: $cf_cv_mixedcase" >&5 -echo "${ECHO_T}$cf_cv_mixedcase" >&6 -test "$cf_cv_mixedcase" = yes && -cat >>confdefs.h <<\EOF -#define MIXEDCASE_FILENAMES 1 -EOF - -for ac_prog in exctags ctags -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:3362: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CTAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CTAGS"; then - ac_cv_prog_CTAGS="$CTAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CTAGS="$ac_prog" -echo "$as_me:3377: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CTAGS=$ac_cv_prog_CTAGS -if test -n "$CTAGS"; then - echo "$as_me:3385: result: $CTAGS" >&5 -echo "${ECHO_T}$CTAGS" >&6 -else - echo "$as_me:3388: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CTAGS" && break -done - -for ac_prog in exetags etags -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:3399: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ETAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ETAGS"; then - ac_cv_prog_ETAGS="$ETAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ETAGS="$ac_prog" -echo "$as_me:3414: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ETAGS=$ac_cv_prog_ETAGS -if test -n "$ETAGS"; then - echo "$as_me:3422: result: $ETAGS" >&5 -echo "${ECHO_T}$ETAGS" >&6 -else - echo "$as_me:3425: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ETAGS" && break -done - -# Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args. -set dummy ${CTAGS:-ctags}; ac_word=$2 -echo "$as_me:3434: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAKE_LOWER_TAGS"; then - ac_cv_prog_MAKE_LOWER_TAGS="$MAKE_LOWER_TAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_MAKE_LOWER_TAGS="yes" -echo "$as_me:3449: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_MAKE_LOWER_TAGS" && ac_cv_prog_MAKE_LOWER_TAGS="no" -fi -fi -MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS -if test -n "$MAKE_LOWER_TAGS"; then - echo "$as_me:3458: result: $MAKE_LOWER_TAGS" >&5 -echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 -else - echo "$as_me:3461: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test "$cf_cv_mixedcase" = yes ; then - # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args. -set dummy ${ETAGS:-etags}; ac_word=$2 -echo "$as_me:3468: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAKE_UPPER_TAGS"; then - ac_cv_prog_MAKE_UPPER_TAGS="$MAKE_UPPER_TAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_MAKE_UPPER_TAGS="yes" -echo "$as_me:3483: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_MAKE_UPPER_TAGS" && ac_cv_prog_MAKE_UPPER_TAGS="no" -fi -fi -MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS -if test -n "$MAKE_UPPER_TAGS"; then - echo "$as_me:3492: result: $MAKE_UPPER_TAGS" >&5 -echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 -else - echo "$as_me:3495: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -else - MAKE_UPPER_TAGS=no -fi - -if test "$MAKE_UPPER_TAGS" = yes ; then - MAKE_UPPER_TAGS= -else - MAKE_UPPER_TAGS="#" -fi - -if test "$MAKE_LOWER_TAGS" = yes ; then - MAKE_LOWER_TAGS= -else - MAKE_LOWER_TAGS="#" -fi - -echo "$as_me:3515: checking if you want to see long compiling messages" >&5 -echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 - -# Check whether --enable-echo or --disable-echo was given. -if test "${enable_echo+set}" = set; then - enableval="$enable_echo" - test "$enableval" != no && enableval=yes - if test "$enableval" != "yes" ; then - - ECHO_LT='--silent' - ECHO_LD='@echo linking $@;' - RULE_CC='@echo compiling $<' - SHOW_CC='@echo compiling $@' - ECHO_CC='@' - - else - - ECHO_LT='' - ECHO_LD='' - RULE_CC='' - SHOW_CC='' - ECHO_CC='' - - fi -else - enableval=yes - - ECHO_LT='' - ECHO_LD='' - RULE_CC='' - SHOW_CC='' - ECHO_CC='' - -fi; -echo "$as_me:3549: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 - -if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then - - system_name="$host_os" -else - system_name="`(uname -s -r) 2>/dev/null`" - if test -z "$system_name" ; then - system_name="`(hostname) 2>/dev/null`" - fi -fi -test -n "$system_name" && -cat >>confdefs.h <<EOF -#define SYSTEM_NAME "$system_name" -EOF - -if test "${cf_cv_system_name+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cf_cv_system_name="$system_name" -fi - -test -z "$system_name" && system_name="$cf_cv_system_name" -test -n "$cf_cv_system_name" && echo "$as_me:3573: result: Configuring for $cf_cv_system_name" >&5 -echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6 - -if test ".$system_name" != ".$cf_cv_system_name" ; then - echo "$as_me:3577: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 -echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6 - { { echo "$as_me:3579: error: \"Please remove config.cache and try again.\"" >&5 -echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;} - { (exit 1); exit 1; }; } -fi - -case "$cf_cv_system_name" in -(os2*) - CFLAGS="$CFLAGS -Zmt" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D__ST_MT_ERRNO__" - - CXXFLAGS="$CXXFLAGS -Zmt" - # autoconf's macro sets -Zexe and suffix both, which conflict:w - LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" - ac_cv_exeext=.exe - ;; -esac - -PROG_EXT="$EXEEXT" - -test -n "$PROG_EXT" && -cat >>confdefs.h <<EOF -#define PROG_EXT "$PROG_EXT" -EOF - - echo "$as_me:3605: checking for PATH separator" >&5 -echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6 - case "$cf_cv_system_name" in - (os2*) PATH_SEPARATOR=';' ;; - (*) ${PATH_SEPARATOR:=':'} ;; - esac - - echo "$as_me:3612: result: $PATH_SEPARATOR" >&5 -echo "${ECHO_T}$PATH_SEPARATOR" >&6 - - case "$cf_cv_system_name" in - (OS/2*|os2*) - if test "$DFT_LWR_MODEL" = libtool; then - LIB_PREFIX='lib' - else - LIB_PREFIX='' - fi - ;; - (*-msvc*) - LIB_PREFIX='' - ;; - (*) LIB_PREFIX='lib' - ;; - esac - -echo "$as_me:3630: checking if the POSIX test-macros are already defined" >&5 -echo $ECHO_N "checking if the POSIX test-macros are already defined... $ECHO_C" >&6 -if test "${cf_cv_posix_visible+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 3637 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ - -#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \ - && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \ - && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \ - && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0) -#error conflicting symbols found -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:3656: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:3659: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:3662: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3665: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_posix_visible=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_posix_visible=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:3676: result: $cf_cv_posix_visible" >&5 -echo "${ECHO_T}$cf_cv_posix_visible" >&6 - -if test "$cf_cv_posix_visible" = no; then - -cf_XOPEN_SOURCE=500 -cf_POSIX_C_SOURCE=199506L -cf_xopen_source= - -case "$host_os" in -(aix[4-7]*) - cf_xopen_source="-D_ALL_SOURCE" - ;; -(msys) - cf_XOPEN_SOURCE=600 - ;; -(darwin[0-8].*) - cf_xopen_source="-D_APPLE_C_SOURCE" - ;; -(darwin*) - cf_xopen_source="-D_DARWIN_C_SOURCE" - cf_XOPEN_SOURCE= - ;; -(freebsd*|dragonfly*|midnightbsd*) - # 5.x headers associate - # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L - # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L - cf_POSIX_C_SOURCE=200112L - cf_XOPEN_SOURCE=600 - cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -(hpux11*) - cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500" - ;; -(hpux*) - cf_xopen_source="-D_HPUX_SOURCE" - ;; -(irix[56].*) - cf_xopen_source="-D_SGI_SOURCE" - cf_XOPEN_SOURCE= - ;; -(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin) - -cf_gnu_xopen_source=$cf_XOPEN_SOURCE - -echo "$as_me:3721: checking if this is the GNU C library" >&5 -echo $ECHO_N "checking if this is the GNU C library... $ECHO_C" >&6 -if test "${cf_cv_gnu_library+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 3728 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - - #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0 - return 0; - #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0 - return 0; - #else - # error not GNU C library - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:3747: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:3750: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:3753: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3756: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_gnu_library=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_gnu_library=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:3767: result: $cf_cv_gnu_library" >&5 -echo "${ECHO_T}$cf_cv_gnu_library" >&6 - -if test x$cf_cv_gnu_library = xyes; then - - # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE - # was changed to help a little. newlib incorporated the change about 4 - # years later. - echo "$as_me:3775: checking if _DEFAULT_SOURCE can be used as a basis" >&5 -echo $ECHO_N "checking if _DEFAULT_SOURCE can be used as a basis... $ECHO_C" >&6 -if test "${cf_cv_gnu_library_219+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_save="$CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_DEFAULT_SOURCE" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 3787 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2) - return 0; - #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3) - return 0; - #else - # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:3806: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:3809: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:3812: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3815: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_gnu_library_219=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_gnu_library_219=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS="$cf_save" - -fi -echo "$as_me:3827: result: $cf_cv_gnu_library_219" >&5 -echo "${ECHO_T}$cf_cv_gnu_library_219" >&6 - - if test "x$cf_cv_gnu_library_219" = xyes; then - cf_save="$CPPFLAGS" - echo "$as_me:3832: checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE" >&5 -echo $ECHO_N "checking if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_gnu_dftsrc_219+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - cat >"conftest.$ac_ext" <<_ACEOF -#line 3937 "configure" -#include "confdefs.h" - - #include <limits.h> - #include <sys/types.h> - -int -main (void) -{ - - #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1) - return 0; - #else - # error GNU C library is too old - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:3957: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:3960: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:3963: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3966: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_gnu_dftsrc_219=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_gnu_dftsrc_219=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:3977: result: $cf_cv_gnu_dftsrc_219" >&5 -echo "${ECHO_T}$cf_cv_gnu_dftsrc_219" >&6 - test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save" - else - cf_cv_gnu_dftsrc_219=maybe - fi - - if test "x$cf_cv_gnu_dftsrc_219" != xyes; then - - echo "$as_me:3986: checking if we must define _GNU_SOURCE" >&5 -echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_gnu_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 3993 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - - #ifndef _XOPEN_SOURCE - #error expected _XOPEN_SOURCE to be defined - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4008: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4011: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4014: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4017: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_gnu_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_save="$CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -D_GNU_SOURCE -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4124 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - - #ifdef _XOPEN_SOURCE - #error expected _XOPEN_SOURCE to be undefined - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4139: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4142: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4145: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4148: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_gnu_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_gnu_source=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS="$cf_save" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:4163: result: $cf_cv_gnu_source" >&5 -echo "${ECHO_T}$cf_cv_gnu_source" >&6 - - if test "$cf_cv_gnu_source" = yes - then - echo "$as_me:4168: checking if we should also define _DEFAULT_SOURCE" >&5 -echo $ECHO_N "checking if we should also define _DEFAULT_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_default_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_GNU_SOURCE" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4178 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - - #ifdef _DEFAULT_SOURCE - #error expected _DEFAULT_SOURCE to be undefined - #endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4193: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4196: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4199: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4202: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_default_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_default_source=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:4213: result: $cf_cv_default_source" >&5 -echo "${ECHO_T}$cf_cv_default_source" >&6 - if test "$cf_cv_default_source" = yes - then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_DEFAULT_SOURCE" - - fi - fi - fi - -fi - - ;; -(minix*) - cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this... - ;; -(mirbsd*) - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types - cf_XOPEN_SOURCE= - -if test "$cf_cv_posix_visible" = no; then - -cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE - -cf_save_CFLAGS="$CFLAGS" -cf_save_CPPFLAGS="$CPPFLAGS" - -cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ - sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` - -cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ - sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` - -echo "$as_me:4250: checking if we should define _POSIX_C_SOURCE" >&5 -echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_posix_c_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -echo "${as_me:-configure}:4256: testing if the symbol is already defined go no further ..." 1>&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4259 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifndef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4274: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4277: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4280: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4283: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_posix_c_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_want_posix_source=no - case .$cf_POSIX_C_SOURCE in - (.[12]??*) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - ;; - (.2) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - cf_want_posix_source=yes - ;; - (.*) - cf_want_posix_source=yes - ;; - esac - if test "$cf_want_posix_source" = yes ; then - cat >"conftest.$ac_ext" <<_ACEOF -#line 4304 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifdef _POSIX_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4319: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4322: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4325: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4328: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi - -echo "${as_me:-configure}:4339: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 - - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source" - -echo "${as_me:-configure}:4347: testing if the second compile does not leave our definition intact error ..." 1>&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4350 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifndef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4365: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4368: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4371: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4374: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_posix_c_source=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:4390: result: $cf_cv_posix_c_source" >&5 -echo "${ECHO_T}$cf_cv_posix_c_source" >&6 - -if test "$cf_cv_posix_c_source" != no ; then - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_cv_posix_c_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -fi - -fi # cf_cv_posix_visible - - ;; -(netbsd*) - cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw - ;; -(openbsd[4-9]*) - # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw - cf_xopen_source="-D_BSD_SOURCE" - cf_XOPEN_SOURCE=600 - ;; -(openbsd*) - # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw - ;; -(osf[45]*) - cf_xopen_source="-D_OSF_SOURCE" - ;; -(nto-qnx*) - cf_xopen_source="-D_QNX_SOURCE" - ;; -(sco*) - # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer - ;; -(solaris2.*) - cf_xopen_source="-D__EXTENSIONS__" - cf_cv_xopen_source=broken - ;; -(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2) - cf_XOPEN_SOURCE= - cf_POSIX_C_SOURCE= - ;; -(*) - -echo "$as_me:4530: checking if we should define _XOPEN_SOURCE" >&5 -echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_xopen_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4537 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -int -main (void) -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4556: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4559: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4562: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4565: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_save="$CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4577 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -int -main (void) -{ - -#ifdef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4596: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4599: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4602: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4605: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_xopen_source=$cf_XOPEN_SOURCE -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS="$cf_save" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:4620: result: $cf_cv_xopen_source" >&5 -echo "${ECHO_T}$cf_cv_xopen_source" >&6 - -if test "$cf_cv_xopen_source" != no ; then - -CFLAGS=`echo "$CFLAGS" | \ - sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` - - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_temp_xopen_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -fi - -if test "$cf_cv_posix_visible" = no; then - -cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE - -cf_save_CFLAGS="$CFLAGS" -cf_save_CPPFLAGS="$CPPFLAGS" - -cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \ - sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` - -cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \ - sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'` - -echo "$as_me:4750: checking if we should define _POSIX_C_SOURCE" >&5 -echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_posix_c_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -echo "${as_me:-configure}:4756: testing if the symbol is already defined go no further ..." 1>&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4759 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifndef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4774: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4777: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4780: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4783: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_posix_c_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_want_posix_source=no - case .$cf_POSIX_C_SOURCE in - (.[12]??*) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - ;; - (.2) - cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - cf_want_posix_source=yes - ;; - (.*) - cf_want_posix_source=yes - ;; - esac - if test "$cf_want_posix_source" = yes ; then - cat >"conftest.$ac_ext" <<_ACEOF -#line 4804 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifdef _POSIX_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4819: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4822: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4825: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4828: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi - -echo "${as_me:-configure}:4839: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 - - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_cv_posix_c_source" - -echo "${as_me:-configure}:4847: testing if the second compile does not leave our definition intact error ..." 1>&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 4850 "configure" -#include "confdefs.h" -#include <sys/types.h> -int -main (void) -{ - -#ifndef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:4865: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4868: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:4871: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4874: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_posix_c_source=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:4890: result: $cf_cv_posix_c_source" >&5 -echo "${ECHO_T}$cf_cv_posix_c_source" >&6 - -if test "$cf_cv_posix_c_source" != no ; then - CFLAGS="$cf_trim_CFLAGS" - CPPFLAGS="$cf_trim_CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_cv_posix_c_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -fi - -fi # cf_cv_posix_visible - - ;; -esac - -if test -n "$cf_xopen_source" ; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_xopen_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 - -echo "${as_me:-configure}:5084: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 - -echo "${as_me:-configure}:5094: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6 - -echo "${as_me:-configure}:5104: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -fi - -if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then - echo "$as_me:5114: checking if _XOPEN_SOURCE really is set" >&5 -echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 5117 "configure" -#include "confdefs.h" -#include <stdlib.h> -int -main (void) -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5135: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5138: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5141: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_XOPEN_SOURCE_set=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_XOPEN_SOURCE_set=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - echo "$as_me:5150: result: $cf_XOPEN_SOURCE_set" >&5 -echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6 - if test "$cf_XOPEN_SOURCE_set" = yes - then - cat >"conftest.$ac_ext" <<_ACEOF -#line 5155 "configure" -#include "confdefs.h" -#include <stdlib.h> -int -main (void) -{ - -#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5170: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5173: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5176: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5179: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_XOPEN_SOURCE_set_ok=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_XOPEN_SOURCE_set_ok=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - if test "$cf_XOPEN_SOURCE_set_ok" = no - then - { echo "$as_me:5190: WARNING: _XOPEN_SOURCE is lower than requested" >&5 -echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;} - fi - else - -echo "$as_me:5195: checking if we should define _XOPEN_SOURCE" >&5 -echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_xopen_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 5202 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -int -main (void) -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5221: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5224: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5227: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5230: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_save="$CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 5242 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -int -main (void) -{ - -#ifdef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5261: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5264: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5267: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5270: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_xopen_source=$cf_XOPEN_SOURCE -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS="$cf_save" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:5285: result: $cf_cv_xopen_source" >&5 -echo "${ECHO_T}$cf_cv_xopen_source" >&6 - -if test "$cf_cv_xopen_source" != no ; then - -CFLAGS=`echo "$CFLAGS" | \ - sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'` - - cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_temp_xopen_source -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -fi - - fi -fi -fi # cf_cv_posix_visible - -# Check whether --enable-largefile or --disable-largefile was given. -if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" - -fi; -if test "$enable_largefile" != no; then - - echo "$as_me:5411: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat >"conftest.$ac_ext" <<_ACEOF -#line 5423 "configure" -#include "confdefs.h" -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF - rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5443: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5446: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5449: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5452: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" - CC="$CC -n32" - rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5462: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5465: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5468: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5471: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_sys_largefile_CC=' -n32'; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" - break - done - CC=$ac_save_CC - rm -f "conftest.$ac_ext" - fi -fi -echo "$as_me:5485: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - echo "$as_me:5491: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_file_offset_bits=no - cat >"conftest.$ac_ext" <<_ACEOF -#line 5499 "configure" -#include "confdefs.h" -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5519: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5522: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5525: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5528: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - cat >"conftest.$ac_ext" <<_ACEOF -#line 5537 "configure" -#include "confdefs.h" -#define _FILE_OFFSET_BITS 64 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5558: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5561: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5564: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5567: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_sys_file_offset_bits=64; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - break -done -fi -echo "$as_me:5578: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then - -cat >>confdefs.h <<EOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -EOF - -fi -rm -rf conftest* - echo "$as_me:5588: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_large_files+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_large_files=no - cat >"conftest.$ac_ext" <<_ACEOF -#line 5596 "configure" -#include "confdefs.h" -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5616: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5619: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5622: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5625: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - cat >"conftest.$ac_ext" <<_ACEOF -#line 5634 "configure" -#include "confdefs.h" -#define _LARGE_FILES 1 -#include <sys/types.h> - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5655: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5658: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5661: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5664: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_sys_large_files=1; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - break -done -fi -echo "$as_me:5675: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then - -cat >>confdefs.h <<EOF -#define _LARGE_FILES $ac_cv_sys_large_files -EOF - -fi -rm -rf conftest* -fi - - if test "$enable_largefile" != no ; then - echo "$as_me:5688: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_largefile_source=no - cat >"conftest.$ac_ext" <<_ACEOF -#line 5696 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -return !fseeko; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5708: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5711: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5714: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5717: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - cat >"conftest.$ac_ext" <<_ACEOF -#line 5726 "configure" -#include "confdefs.h" -#define _LARGEFILE_SOURCE 1 -#include <stdio.h> -int -main (void) -{ -return !fseeko; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5739: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5742: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5745: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5748: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_sys_largefile_source=1; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - break -done -fi -echo "$as_me:5759: result: $ac_cv_sys_largefile_source" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6 -if test "$ac_cv_sys_largefile_source" != no; then - -cat >>confdefs.h <<EOF -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source -EOF - -fi -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -echo "$as_me:5773: checking for fseeko" >&5 -echo $ECHO_N "checking for fseeko... $ECHO_C" >&6 -if test "${ac_cv_func_fseeko+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 5779 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -return fseeko && fseeko (stdin, 0, 0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:5791: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5794: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:5797: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5800: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_fseeko=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_fseeko=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:5810: result: $ac_cv_func_fseeko" >&5 -echo "${ECHO_T}$ac_cv_func_fseeko" >&6 -if test $ac_cv_func_fseeko = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_FSEEKO 1 -EOF - -fi - - # Normally we would collect these definitions in the config.h, - # but (like _XOPEN_SOURCE), some environments rely on having these - # defined before any of the system headers are included. Another - # case comes up with C++, e.g., on AIX the compiler compiles the - # header files by themselves before looking at the body files it is - # told to compile. For ncurses, those header files do not include - # the config.h - if test "$ac_cv_sys_large_files" != no - then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_LARGE_FILES" - - fi - if test "$ac_cv_sys_largefile_source" != no - then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_LARGEFILE_SOURCE" - - fi - if test "$ac_cv_sys_file_offset_bits" != no - then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" - - fi - - echo "$as_me:5849: checking whether to use struct dirent64" >&5 -echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6 -if test "${cf_cv_struct_dirent64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 5856 "configure" -#include "confdefs.h" - -#pragma GCC diagnostic error "-Wincompatible-pointer-types" -#include <sys/types.h> -#include <dirent.h> - -int -main (void) -{ - - /* if transitional largefile support is setup, this is true */ - extern struct dirent64 * readdir(DIR *); - struct dirent64 *x = readdir((DIR *)0); - struct dirent *y = readdir((DIR *)0); - int z = x - y; - (void)z; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:5879: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5882: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:5885: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5888: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_struct_dirent64=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_struct_dirent64=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:5899: result: $cf_cv_struct_dirent64" >&5 -echo "${ECHO_T}$cf_cv_struct_dirent64" >&6 - test "$cf_cv_struct_dirent64" = yes && -cat >>confdefs.h <<\EOF -#define HAVE_STRUCT_DIRENT64 1 -EOF - - fi - -echo "$as_me:5908: checking for install-prefix" >&5 -echo $ECHO_N "checking for install-prefix... $ECHO_C" >&6 - -# Check whether --with-install-prefix or --without-install-prefix was given. -if test "${with_install_prefix+set}" = set; then - withval="$with_install_prefix" - cf_opt_with_install_prefix=$withval -else - cf_opt_with_install_prefix=${DESTDIR:-no} -fi; -echo "$as_me:5918: result: $cf_opt_with_install_prefix" >&5 -echo "${ECHO_T}$cf_opt_with_install_prefix" >&6 -if test "$cf_opt_with_install_prefix" != no ; then - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$cf_opt_with_install_prefix" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval cf_opt_with_install_prefix="$cf_opt_with_install_prefix" - case ".$cf_opt_with_install_prefix" in - (.NONE/*) - cf_opt_with_install_prefix=`echo "$cf_opt_with_install_prefix" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - cf_opt_with_install_prefix=`echo "$cf_opt_with_install_prefix" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:5947: error: expected a pathname, not \"$cf_opt_with_install_prefix\"" >&5 -echo "$as_me: error: expected a pathname, not \"$cf_opt_with_install_prefix\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - DESTDIR=$cf_opt_with_install_prefix -fi - -if test -n "$with_screen" && test "x$with_screen" = "xpdcurses" -then - echo "$as_me:5958: checking for X" >&5 -echo $ECHO_N "checking for X... $ECHO_C" >&6 - -# Check whether --with-x or --without-x was given. -if test "${with_x+set}" = set; then - withval="$with_x" - -fi; -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then - # Both variables are already set. - have_x=yes - else - if test "${ac_cv_have_x+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -fr conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - # Make sure to not put "make" in the Imakefile rules, since we grep it out. - cat >Imakefile <<'EOF' -acfindx: - @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' -EOF - if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - eval "`${MAKE-make} acfindx 2>/dev/null | grep -v make`" - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl dylib dll; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /lib) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -fr conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R7/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/opt/local/include -/opt/X11/include - -/usr/include/X11 -/usr/include/X11R7 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R7/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R7 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Intrinsic.h. - # First, try using that file with no special directory specified. - cat >"conftest.$ac_ext" <<_ACEOF -#line 6062 "configure" -#include "confdefs.h" -#include <X11/Intrinsic.h> -_ACEOF -if { (eval echo "$as_me:6066: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:6072: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # We can compile using X headers with no special include directory. -ac_x_includes= -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi -rm -f conftest.err "conftest.$ac_ext" -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lXt $LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 6105 "configure" -#include "confdefs.h" -#include <X11/Intrinsic.h> -int -main (void) -{ -XtMalloc (0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6117: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6120: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6123: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6126: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -LIBS=$ac_save_LIBS -for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl dylib dll; do - if test -r "$ac_dir/libXt.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi # $ac_x_libraries = no - -if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then - # Didn't find X anywhere. Cache the known absence of X. - ac_cv_have_x="have_x=no" -else - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes \ - ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" -fi -fi - - fi - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - echo "$as_me:6164: result: $have_x" >&5 -echo "${ECHO_T}$have_x" >&6 - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes \ - ac_x_includes=$x_includes ac_x_libraries=$x_libraries" - echo "$as_me:6174: result: libraries $x_libraries, headers $x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6 -fi - - if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. - -cat >>confdefs.h <<\EOF -#define X_DISPLAY_MISSING 1 -EOF - - X_CFLAGS= - X_PRE_LIBS= - X_LIBS= - X_EXTRA_LIBS= -else - if test -n "$x_includes"; then - X_CFLAGS="$X_CFLAGS -I$x_includes" - fi - - # It would also be nice to do this for all -L options, not just this one. - if test -n "$x_libraries"; then - X_LIBS="$X_LIBS -L$x_libraries" - # For Solaris; some versions of Sun CC require a space after -R and - # others require no space. Words are not sufficient . . . . - case `(uname -sr) 2>/dev/null` in - "SunOS 5"*) - echo "$as_me:6201: checking whether -R must be followed by a space" >&5 -echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 - ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - cat >"conftest.$ac_ext" <<_ACEOF -#line 6205 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6217: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6220: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6223: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6226: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_R_nospace=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_R_nospace=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - if test $ac_R_nospace = yes; then - echo "$as_me:6236: result: no" >&5 -echo "${ECHO_T}no" >&6 - X_LIBS="$X_LIBS -R$x_libraries" - else - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat >"conftest.$ac_ext" <<_ACEOF -#line 6242 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6254: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6257: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6260: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6263: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_R_space=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_R_space=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - if test $ac_R_space = yes; then - echo "$as_me:6273: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - X_LIBS="$X_LIBS -R $x_libraries" - else - echo "$as_me:6277: result: neither works" >&5 -echo "${ECHO_T}neither works" >&6 - fi - fi - LIBS=$ac_xsave_LIBS - esac - fi - - # Check for system-dependent libraries X programs must link with. - # Do this before checking for the system-independent R6 libraries - # (-lICE), since we may need -lsocket or whatever for X linking. - - if test "$ISC" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" - else - # Martyn Johnson says this is needed for Ultrix, if the X - # libraries were built with DECnet support. And Karl Berry says - # the Alpha needs dnet_stub (dnet does not exist). - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat >"conftest.$ac_ext" <<_ACEOF -#line 6297 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XOpenDisplay (); -int -main (void) -{ -XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6316: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6319: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6322: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6325: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:6331: checking for dnet_ntoa in -ldnet" >&5 -echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6339 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dnet_ntoa (); -int -main (void) -{ -dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6358: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6361: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6364: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6367: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_dnet_dnet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_dnet_dnet_ntoa=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6378: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 -if test "$ac_cv_lib_dnet_dnet_ntoa" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" -fi - - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - echo "$as_me:6385: checking for dnet_ntoa in -ldnet_stub" >&5 -echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6393 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dnet_ntoa (); -int -main (void) -{ -dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6412: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6415: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6418: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6421: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_dnet_stub_dnet_ntoa=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6432: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 -if test "$ac_cv_lib_dnet_stub_dnet_ntoa" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" -fi - - fi -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - LIBS="$ac_xsave_LIBS" - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) - # needs -lnsl. - # The nsl library prevents programs from opening the X display - # on Irix 5.2, according to T.E. Dickey. - # The functions gethostbyname, getservbyname, and inet_addr are - # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - echo "$as_me:6451: checking for gethostbyname" >&5 -echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 -if test "${ac_cv_func_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 6457 "configure" -#include "confdefs.h" -#define gethostbyname autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef gethostbyname - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) -#error found stub for gethostbyname -#endif - - return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6488: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6491: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6494: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6497: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_gethostbyname=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:6507: result: $ac_cv_func_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 - - if test $ac_cv_func_gethostbyname = no; then - echo "$as_me:6511: checking for gethostbyname in -lnsl" >&5 -echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6519 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname (); -int -main (void) -{ -gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6538: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6541: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6544: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6547: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_nsl_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_nsl_gethostbyname=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6558: result: $ac_cv_lib_nsl_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 -if test "$ac_cv_lib_nsl_gethostbyname" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - - if test $ac_cv_lib_nsl_gethostbyname = no; then - echo "$as_me:6565: checking for gethostbyname in -lbsd" >&5 -echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6573 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname (); -int -main (void) -{ -gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6592: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6595: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6598: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6601: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_bsd_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_bsd_gethostbyname=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6612: result: $ac_cv_lib_bsd_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 -if test "$ac_cv_lib_bsd_gethostbyname" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" -fi - - fi - fi - - # lieder@skyler.mavd.honeywell.com says without -lsocket, - # socket/setsockopt and other routines are undefined under SCO ODT - # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary - # on later versions), says Simon Leinen: it contains gethostby* - # variants that don't use the nameserver (or something). -lsocket - # must be given before -lnsl if both are needed. We assume that - # if connect needs -lnsl, so does gethostbyname. - echo "$as_me:6628: checking for connect" >&5 -echo $ECHO_N "checking for connect... $ECHO_C" >&6 -if test "${ac_cv_func_connect+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 6634 "configure" -#include "confdefs.h" -#define connect autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef connect - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char connect (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_connect) || defined (__stub___connect) -#error found stub for connect -#endif - - return connect (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6665: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6668: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6671: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6674: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_connect=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_connect=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:6684: result: $ac_cv_func_connect" >&5 -echo "${ECHO_T}$ac_cv_func_connect" >&6 - - if test $ac_cv_func_connect = no; then - echo "$as_me:6688: checking for connect in -lsocket" >&5 -echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 -if test "${ac_cv_lib_socket_connect+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6696 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char connect (); -int -main (void) -{ -connect (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6715: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6718: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6721: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6724: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_socket_connect=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_socket_connect=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6735: result: $ac_cv_lib_socket_connect" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 -if test "$ac_cv_lib_socket_connect" = yes; then - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" -fi - - fi - - # Guillermo Gomez says -lposix is necessary on A/UX. - echo "$as_me:6744: checking for remove" >&5 -echo $ECHO_N "checking for remove... $ECHO_C" >&6 -if test "${ac_cv_func_remove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 6750 "configure" -#include "confdefs.h" -#define remove autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef remove - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char remove (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_remove) || defined (__stub___remove) -#error found stub for remove -#endif - - return remove (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6781: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6784: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6787: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6790: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_remove=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_remove=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:6800: result: $ac_cv_func_remove" >&5 -echo "${ECHO_T}$ac_cv_func_remove" >&6 - - if test $ac_cv_func_remove = no; then - echo "$as_me:6804: checking for remove in -lposix" >&5 -echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 -if test "${ac_cv_lib_posix_remove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6812 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char remove (); -int -main (void) -{ -remove (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6831: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6834: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6837: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6840: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_posix_remove=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_posix_remove=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6851: result: $ac_cv_lib_posix_remove" >&5 -echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 -if test "$ac_cv_lib_posix_remove" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" -fi - - fi - - # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - echo "$as_me:6860: checking for shmat" >&5 -echo $ECHO_N "checking for shmat... $ECHO_C" >&6 -if test "${ac_cv_func_shmat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 6866 "configure" -#include "confdefs.h" -#define shmat autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef shmat - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shmat (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_shmat) || defined (__stub___shmat) -#error found stub for shmat -#endif - - return shmat (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6897: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6900: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6903: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6906: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_shmat=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_shmat=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:6916: result: $ac_cv_func_shmat" >&5 -echo "${ECHO_T}$ac_cv_func_shmat" >&6 - - if test $ac_cv_func_shmat = no; then - echo "$as_me:6920: checking for shmat in -lipc" >&5 -echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 -if test "${ac_cv_lib_ipc_shmat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lipc $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6928 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shmat (); -int -main (void) -{ -shmat (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:6947: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6950: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:6953: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6956: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_ipc_shmat=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_ipc_shmat=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:6967: result: $ac_cv_lib_ipc_shmat" >&5 -echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 -if test "$ac_cv_lib_ipc_shmat" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" -fi - - fi - fi - - # Check for libraries that X11R6 Xt/Xaw programs need. - ac_save_LDFLAGS=$LDFLAGS - test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" - # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to - # check for ICE first), but we must link in the order -lSM -lICE or - # we get undefined symbols. So assume we have SM if we have ICE. - # These have to be linked with before -lX11, unlike the other - # libraries we check for below, so use a different variable. - # John Interrante, Karl Berry - echo "$as_me:6985: checking for IceConnectionNumber in -lICE" >&5 -echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 6993 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char IceConnectionNumber (); -int -main (void) -{ -IceConnectionNumber (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:7012: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7015: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:7018: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7021: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_ICE_IceConnectionNumber=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_ICE_IceConnectionNumber=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:7032: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 -echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 -if test "$ac_cv_lib_ICE_IceConnectionNumber" = yes; then - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" -fi - - LDFLAGS=$ac_save_LDFLAGS - -fi - -fi - -if test "$GCC" = yes || test "$GXX" = yes -then - -if test "$GCC" = yes || test "$GXX" = yes -then - case $CFLAGS in - (*-Werror=*) - test -n "$verbose" && echo " repairing CFLAGS: $CFLAGS" 1>&6 - -echo "${as_me:-configure}:7053: testing repairing CFLAGS: $CFLAGS ..." 1>&5 - - cf_temp_flags= - for cf_temp_scan in $CFLAGS - do - case "x$cf_temp_scan" in - (x-Werror=*) - - test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS " - EXTRA_CFLAGS="${EXTRA_CFLAGS}$cf_temp_scan" - - ;; - (*) - - test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags " - cf_temp_flags="${cf_temp_flags}$cf_temp_scan" - - ;; - esac - done - CFLAGS="$cf_temp_flags" - test -n "$verbose" && echo " ... fixed $CFLAGS" 1>&6 - -echo "${as_me:-configure}:7076: testing ... fixed $CFLAGS ..." 1>&5 - - test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6 - -echo "${as_me:-configure}:7080: testing ... extra $EXTRA_CFLAGS ..." 1>&5 - - ;; - esac -fi - -if test "$GCC" = yes || test "$GXX" = yes -then - case $CPPFLAGS in - (*-Werror=*) - test -n "$verbose" && echo " repairing CPPFLAGS: $CPPFLAGS" 1>&6 - -echo "${as_me:-configure}:7092: testing repairing CPPFLAGS: $CPPFLAGS ..." 1>&5 - - cf_temp_flags= - for cf_temp_scan in $CPPFLAGS - do - case "x$cf_temp_scan" in - (x-Werror=*) - - test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS " - EXTRA_CFLAGS="${EXTRA_CFLAGS}$cf_temp_scan" - - ;; - (*) - - test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags " - cf_temp_flags="${cf_temp_flags}$cf_temp_scan" - - ;; - esac - done - CPPFLAGS="$cf_temp_flags" - test -n "$verbose" && echo " ... fixed $CPPFLAGS" 1>&6 - -echo "${as_me:-configure}:7115: testing ... fixed $CPPFLAGS ..." 1>&5 - - test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6 - -echo "${as_me:-configure}:7119: testing ... extra $EXTRA_CFLAGS ..." 1>&5 - - ;; - esac -fi - -if test "$GCC" = yes || test "$GXX" = yes -then - case $LDFLAGS in - (*-Werror=*) - test -n "$verbose" && echo " repairing LDFLAGS: $LDFLAGS" 1>&6 - -echo "${as_me:-configure}:7131: testing repairing LDFLAGS: $LDFLAGS ..." 1>&5 - - cf_temp_flags= - for cf_temp_scan in $LDFLAGS - do - case "x$cf_temp_scan" in - (x-Werror=*) - - test -n "$EXTRA_CFLAGS" && EXTRA_CFLAGS="$EXTRA_CFLAGS " - EXTRA_CFLAGS="${EXTRA_CFLAGS}$cf_temp_scan" - - ;; - (*) - - test -n "$cf_temp_flags" && cf_temp_flags="$cf_temp_flags " - cf_temp_flags="${cf_temp_flags}$cf_temp_scan" - - ;; - esac - done - LDFLAGS="$cf_temp_flags" - test -n "$verbose" && echo " ... fixed $LDFLAGS" 1>&6 - -echo "${as_me:-configure}:7154: testing ... fixed $LDFLAGS ..." 1>&5 - - test -n "$verbose" && echo " ... extra $EXTRA_CFLAGS" 1>&6 - -echo "${as_me:-configure}:7158: testing ... extra $EXTRA_CFLAGS ..." 1>&5 - - ;; - esac -fi - -echo "$as_me:7164: checking if you want to turn on gcc warnings" >&5 -echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6 - -# Check whether --enable-warnings or --disable-warnings was given. -if test "${enable_warnings+set}" = set; then - enableval="$enable_warnings" - test "$enableval" != yes && enableval=no - if test "$enableval" != "no" ; then - enable_warnings=yes - else - enable_warnings=no - fi -else - enableval=no - enable_warnings=no - -fi; -echo "$as_me:7181: result: $enable_warnings" >&5 -echo "${ECHO_T}$enable_warnings" >&6 -if test "$enable_warnings" = "yes" -then - -if test "x$have_x" = xyes; then - -cf_save_LIBS_CF_CONST_X_STRING="$LIBS" -cf_save_CFLAGS_CF_CONST_X_STRING="$CFLAGS" -cf_save_CPPFLAGS_CF_CONST_X_STRING="$CPPFLAGS" -LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}" -for cf_X_CFLAGS in $X_CFLAGS -do - case "x$cf_X_CFLAGS" in - x-[IUD]*) - CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS" - ;; - *) - CFLAGS="$CFLAGS $cf_X_CFLAGS" - ;; - esac -done - -cat >"conftest.$ac_ext" <<_ACEOF -#line 7205 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <X11/Intrinsic.h> - -int -main (void) -{ -String foo = malloc(1); (void)foo - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:7220: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7223: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:7226: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7229: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - -echo "$as_me:7232: checking for X11/Xt const-feature" >&5 -echo $ECHO_N "checking for X11/Xt const-feature... $ECHO_C" >&6 -if test "${cf_cv_const_x_string+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 7239 "configure" -#include "confdefs.h" - -#define _CONST_X_STRING /* X11R7.8 (perhaps) */ -#undef XTSTRINGDEFINES /* X11R5 and later */ -#include <stdlib.h> -#include <X11/Intrinsic.h> - -int -main (void) -{ -String foo = malloc(1); *foo = 0 - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:7256: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7259: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:7262: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7265: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_const_x_string=no - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_const_x_string=yes - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:7280: result: $cf_cv_const_x_string" >&5 -echo "${ECHO_T}$cf_cv_const_x_string" >&6 - -LIBS="$cf_save_LIBS_CF_CONST_X_STRING" -CFLAGS="$cf_save_CFLAGS_CF_CONST_X_STRING" -CPPFLAGS="$cf_save_CPPFLAGS_CF_CONST_X_STRING" - -case "$cf_cv_const_x_string" in -(no) - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-DXTSTRINGDEFINES" - - ;; -(*) - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D_CONST_X_STRING" - - ;; -esac - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi -cat > "conftest.$ac_ext" <<EOF -#line 7309 "${as_me:-configure}" -int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; } -EOF -if test "$INTEL_COMPILER" = yes -then -# The "-wdXXX" options suppress warnings: -# remark #1419: external declaration in primary source file -# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem) -# remark #1684: conversion from pointer to same-sized integral type (potential portability problem) -# remark #193: zero used for undefined preprocessing identifier -# remark #593: variable "curs_sb_left_arrow" was set but never used -# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits -# remark #869: parameter "tw" was never referenced -# remark #981: operands are evaluated in unspecified order -# warning #279: controlling expression is constant - - { echo "$as_me:7325: checking for $CC warning options..." >&5 -echo "$as_me: checking for $CC warning options..." >&6;} - cf_save_CFLAGS="$CFLAGS" - EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall" - for cf_opt in \ - wd1419 \ - wd1683 \ - wd1684 \ - wd193 \ - wd593 \ - wd279 \ - wd810 \ - wd869 \ - wd981 - do - CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:7341: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7344: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - test -n "$verbose" && echo "$as_me:7346: result: ... -$cf_opt" >&5 -echo "${ECHO_T}... -$cf_opt" >&6 - EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" - fi - done - CFLAGS="$cf_save_CFLAGS" -elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown" -then - { echo "$as_me:7354: checking for $CC warning options..." >&5 -echo "$as_me: checking for $CC warning options..." >&6;} - cf_save_CFLAGS="$CFLAGS" - cf_warn_CONST="" - test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" - cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs" - test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings= - for cf_opt in W Wall \ - Wbad-function-cast \ - Wcast-align \ - Wcast-qual \ - Wdeclaration-after-statement \ - Wextra \ - Winline \ - Wmissing-declarations \ - Wmissing-prototypes \ - Wnested-externs \ - Wpointer-arith \ - Wshadow \ - Wstrict-prototypes \ - Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST - do - CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:7377: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7380: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - test -n "$verbose" && echo "$as_me:7382: result: ... -$cf_opt" >&5 -echo "${ECHO_T}... -$cf_opt" >&6 - case "$cf_opt" in - (Winline) - case "$GCC_VERSION" in - ([34].*) - test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 - -echo "${as_me:-configure}:7390: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 - - continue;; - esac - ;; - (Wpointer-arith) - case "$GCC_VERSION" in - ([12].*) - test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 - -echo "${as_me:-configure}:7400: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 - - continue;; - esac - ;; - esac - EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" - fi - done - CFLAGS="$cf_save_CFLAGS" -fi -rm -rf ./conftest* - -fi - -if test "$GCC" = yes || test "$GXX" = yes -then -cat > conftest.i <<EOF -#ifndef GCC_PRINTF -#define GCC_PRINTF 0 -#endif -#ifndef GCC_SCANF -#define GCC_SCANF 0 -#endif -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif -EOF -if test "$GCC" = yes -then - { echo "$as_me:7433: checking for $CC __attribute__ directives..." >&5 -echo "$as_me: checking for $CC __attribute__ directives..." >&6;} -cat > "conftest.$ac_ext" <<EOF -#line 7436 "${as_me:-configure}" -#include "confdefs.h" -#include "conftest.h" -#include "conftest.i" -#if GCC_PRINTF -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#if GCC_SCANF -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -extern void wow(char *,...) GCC_SCANFLIKE(1,2); -extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; -extern void foo(void) GCC_NORETURN; -int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { (void)argc; (void)argv; return 0; } -EOF - cf_printf_attribute=no - cf_scanf_attribute=no - for cf_attribute in scanf printf unused noreturn - do - -cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cf_directive="__attribute__(($cf_attribute))" - echo "checking for $CC $cf_directive" 1>&5 - - case "$cf_attribute" in - (printf) - cf_printf_attribute=yes - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE 1 -EOF - ;; - (scanf) - cf_scanf_attribute=yes - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE 1 -EOF - ;; - (*) - cat >conftest.h <<EOF -#define GCC_$cf_ATTRIBUTE $cf_directive -EOF - ;; - esac - - if { (eval echo "$as_me:7485: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7488: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - test -n "$verbose" && echo "$as_me:7490: result: ... $cf_attribute" >&5 -echo "${ECHO_T}... $cf_attribute" >&6 - cat conftest.h >>confdefs.h - case "$cf_attribute" in - (noreturn) - -cat >>confdefs.h <<EOF -#define GCC_NORETURN $cf_directive -EOF - - ;; - (printf) - cf_value='/* nothing */' - if test "$cf_printf_attribute" != no ; then - cf_value='__attribute__((format(printf,fmt,var)))' - -cat >>confdefs.h <<\EOF -#define GCC_PRINTF 1 -EOF - - fi - -cat >>confdefs.h <<EOF -#define GCC_PRINTFLIKE(fmt,var) $cf_value -EOF - - ;; - (scanf) - cf_value='/* nothing */' - if test "$cf_scanf_attribute" != no ; then - cf_value='__attribute__((format(scanf,fmt,var)))' - -cat >>confdefs.h <<\EOF -#define GCC_SCANF 1 -EOF - - fi - -cat >>confdefs.h <<EOF -#define GCC_SCANFLIKE(fmt,var) $cf_value -EOF - - ;; - (unused) - -cat >>confdefs.h <<EOF -#define GCC_UNUSED $cf_directive -EOF - - ;; - esac - fi - done -else - ${FGREP-fgrep} define conftest.i >>confdefs.h -fi -rm -rf ./conftest* -fi - -fi - -echo "$as_me:7551: checking if you want to use pkg-config" >&5 -echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6 - -# Check whether --with-pkg-config or --without-pkg-config was given. -if test "${with_pkg_config+set}" = set; then - withval="$with_pkg_config" - cf_pkg_config=$withval -else - cf_pkg_config=yes -fi; -echo "$as_me:7561: result: $cf_pkg_config" >&5 -echo "${ECHO_T}$cf_pkg_config" >&6 - -case "$cf_pkg_config" in -(no) - PKG_CONFIG=none - ;; -(yes) - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -echo "$as_me:7573: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word" - echo "$as_me:7590: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG - -if test -n "$PKG_CONFIG"; then - echo "$as_me:7601: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6 -else - echo "$as_me:7604: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -echo "$as_me:7613: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word" - echo "$as_me:7630: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none" - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG - -if test -n "$ac_pt_PKG_CONFIG"; then - echo "$as_me:7642: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6 -else - echo "$as_me:7645: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - PKG_CONFIG=$ac_pt_PKG_CONFIG -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - - ;; -(*) - PKG_CONFIG=$withval - ;; -esac - -test -z "$PKG_CONFIG" && PKG_CONFIG=none -if test "$PKG_CONFIG" != none ; then - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$PKG_CONFIG" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval PKG_CONFIG="$PKG_CONFIG" - case ".$PKG_CONFIG" in - (.NONE/*) - PKG_CONFIG=`echo "$PKG_CONFIG" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - PKG_CONFIG=`echo "$PKG_CONFIG" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:7688: error: expected a pathname, not \"$PKG_CONFIG\"" >&5 -echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -elif test "x$cf_pkg_config" != xno ; then - { echo "$as_me:7695: WARNING: pkg-config is not installed" >&5 -echo "$as_me: WARNING: pkg-config is not installed" >&2;} -fi - -echo "$as_me:7699: checking for this package's name" >&5 -echo $ECHO_N "checking for this package's name... $ECHO_C" >&6 - -# Check whether --with-package or --without-package was given. -if test "${with_package+set}" = set; then - withval="$with_package" - PACKAGE=$withval -else - PACKAGE=dialog -fi; -echo "$as_me:7709: result: $PACKAGE" >&5 -echo "${ECHO_T}$PACKAGE" >&6 - -if test -f "$srcdir/VERSION" ; then - echo "$as_me:7713: checking for package version" >&5 -echo $ECHO_N "checking for package version... $ECHO_C" >&6 - - # if there are not enough fields, cut returns the last one... - cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1` - cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2` - cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3` - - # this is how CF_BUNDLED_INTL uses $VERSION: - VERSION="$cf_field1" - - VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'` - test -z "$VERSION_MAJOR" && { { echo "$as_me:7725: error: missing major-version" >&5 -echo "$as_me: error: missing major-version" >&2;} - { (exit 1); exit 1; }; } - - VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[^.]*\.//' -e 's/-.*//'` - test -z "$VERSION_MINOR" && { { echo "$as_me:7730: error: missing minor-version" >&5 -echo "$as_me: error: missing minor-version" >&2;} - { (exit 1); exit 1; }; } - - echo "$as_me:7734: result: ${VERSION_MAJOR}.${VERSION_MINOR}" >&5 -echo "${ECHO_T}${VERSION_MAJOR}.${VERSION_MINOR}" >&6 - - echo "$as_me:7737: checking for package patch date" >&5 -echo $ECHO_N "checking for package patch date... $ECHO_C" >&6 - VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[^-]*-//'` - case .$VERSION_PATCH in - (.) - { { echo "$as_me:7742: error: missing patch-date $VERSION_PATCH" >&5 -echo "$as_me: error: missing patch-date $VERSION_PATCH" >&2;} - { (exit 1); exit 1; }; } - ;; - (.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]) - ;; - (*) - { { echo "$as_me:7749: error: illegal patch-date $VERSION_PATCH" >&5 -echo "$as_me: error: illegal patch-date $VERSION_PATCH" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - echo "$as_me:7754: result: $VERSION_PATCH" >&5 -echo "${ECHO_T}$VERSION_PATCH" >&6 -else - { { echo "$as_me:7757: error: did not find $srcdir/VERSION" >&5 -echo "$as_me: error: did not find $srcdir/VERSION" >&2;} - { (exit 1); exit 1; }; } -fi - -# show the actual data that we have for versions: -test -n "$verbose" && echo " ABI VERSION $VERSION" 1>&6 - -echo "${as_me:-configure}:7765: testing ABI VERSION $VERSION ..." 1>&5 - -test -n "$verbose" && echo " VERSION_MAJOR $VERSION_MAJOR" 1>&6 - -echo "${as_me:-configure}:7769: testing VERSION_MAJOR $VERSION_MAJOR ..." 1>&5 - -test -n "$verbose" && echo " VERSION_MINOR $VERSION_MINOR" 1>&6 - -echo "${as_me:-configure}:7773: testing VERSION_MINOR $VERSION_MINOR ..." 1>&5 - -test -n "$verbose" && echo " VERSION_PATCH $VERSION_PATCH" 1>&6 - -echo "${as_me:-configure}:7777: testing VERSION_PATCH $VERSION_PATCH ..." 1>&5 - - cf_PACKAGE=dialog - PACKAGE=$PACKAGE - -cat >>confdefs.h <<EOF -#define PACKAGE "$PACKAGE" -EOF - -cf_PACKAGE=`echo "$cf_PACKAGE" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <<EOF -#define ${cf_PACKAGE}_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}" -EOF - - cat >>confdefs.h <<EOF -#define ${cf_PACKAGE}_PATCHDATE ${VERSION_PATCH} -EOF - -CFG_ROOTNAME=$PACKAGE -HDR_ROOTNAME=$PACKAGE -LIB_ROOTNAME=$PACKAGE - -echo "$as_me:7800: checking if we should install dlg_XXX headers to subdirectory" >&5 -echo $ECHO_N "checking if we should install dlg_XXX headers to subdirectory... $ECHO_C" >&6 - -# Check whether --enable-header-subdir or --disable-header-subdir was given. -if test "${enable_header_subdir+set}" = set; then - enableval="$enable_header_subdir" - SUB_INC=$enableval -else - SUB_INC=no -fi; -echo "$as_me:7810: result: $SUB_INC" >&5 -echo "${ECHO_T}$SUB_INC" >&6 - -case "x${with_man2html}" in -(xno) - cf_man2html=no - ;; -(x|xyes) - # Extract the first word of "man2html", so it can be a program name with args. -set dummy man2html; ac_word=$2 -echo "$as_me:7820: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_cf_man2html+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $cf_man2html in - [\\/]* | ?:[\\/]*) - ac_cv_path_cf_man2html="$cf_man2html" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_cf_man2html="$ac_dir/$ac_word" - echo "$as_me:7837: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_cf_man2html" && ac_cv_path_cf_man2html="no" - ;; -esac -fi -cf_man2html=$ac_cv_path_cf_man2html - -if test -n "$cf_man2html"; then - echo "$as_me:7849: result: $cf_man2html" >&5 -echo "${ECHO_T}$cf_man2html" >&6 -else - echo "$as_me:7852: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - case "x$cf_man2html" in - (x/*) - echo "$as_me:7858: checking for the modified Earl Hood script" >&5 -echo $ECHO_N "checking for the modified Earl Hood script... $ECHO_C" >&6 - if ( $cf_man2html -help 2>&1 | grep 'Make an index of headers at the end' >/dev/null ) - then - cf_man2html_ok=yes - else - cf_man2html=no - cf_man2html_ok=no - fi - echo "$as_me:7867: result: $cf_man2html_ok" >&5 -echo "${ECHO_T}$cf_man2html_ok" >&6 - ;; - (*) - cf_man2html=no - ;; - esac -esac - -echo "$as_me:7876: checking for program to convert manpage to html" >&5 -echo $ECHO_N "checking for program to convert manpage to html... $ECHO_C" >&6 - -# Check whether --with-man2html or --without-man2html was given. -if test "${with_man2html+set}" = set; then - withval="$with_man2html" - cf_man2html=$withval -else - cf_man2html=$cf_man2html -fi; - -cf_with_groff=no - -case $cf_man2html in -(yes) - echo "$as_me:7891: result: man2html" >&5 -echo "${ECHO_T}man2html" >&6 - # Extract the first word of "man2html", so it can be a program name with args. -set dummy man2html; ac_word=$2 -echo "$as_me:7895: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_cf_man2html+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $cf_man2html in - [\\/]* | ?:[\\/]*) - ac_cv_path_cf_man2html="$cf_man2html" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_cf_man2html="$ac_dir/$ac_word" - echo "$as_me:7912: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_cf_man2html" && ac_cv_path_cf_man2html="no" - ;; -esac -fi -cf_man2html=$ac_cv_path_cf_man2html - -if test -n "$cf_man2html"; then - echo "$as_me:7924: result: $cf_man2html" >&5 -echo "${ECHO_T}$cf_man2html" >&6 -else - echo "$as_me:7927: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - ;; -(no|groff|*/groff*) - cf_with_groff=yes - cf_man2html=$GROFF_PATH - echo "$as_me:7935: result: $cf_man2html" >&5 -echo "${ECHO_T}$cf_man2html" >&6 - ;; -(*) - echo "$as_me:7939: result: $cf_man2html" >&5 -echo "${ECHO_T}$cf_man2html" >&6 - ;; -esac - -MAN2HTML_TEMP="man2html.tmp" - cat >$MAN2HTML_TEMP <<CF_EOF -#!$SHELL -# Temporary script generated by CF_WITH_MAN2HTML -# Convert inputs to html, sending result to standard output. -# -# Parameters: -# \${1} = rootname of file to convert -# \${2} = suffix of file to convert, e.g., "1" -# \${3} = macros to use, e.g., "man" -# -ROOT=\$1 -TYPE=\$2 -MACS=\$3 - -unset LANG -unset LC_ALL -unset LC_CTYPE -unset LANGUAGE -GROFF_NO_SGR=stupid -export GROFF_NO_SGR - -CF_EOF - -NROFF_OPTS= -if test "x$cf_with_groff" = xyes -then - MAN2HTML_NOTE="$GROFF_NOTE" - MAN2HTML_PATH="$GROFF_PATH" - cat >>$MAN2HTML_TEMP <<CF_EOF -$SHELL -c "$TBL_PATH \${ROOT}.\${TYPE} | $GROFF_PATH -P -o0 -I\${ROOT}_ -Thtml -\${MACS}" -CF_EOF -else - # disable hyphenation if this is groff - if test "x$GROFF_PATH" != xno - then - echo "$as_me:7980: checking if nroff is really groff" >&5 -echo $ECHO_N "checking if nroff is really groff... $ECHO_C" >&6 - cf_check_groff="`$NROFF_PATH --version 2>/dev/null | grep groff`" - test -n "$cf_check_groff" && cf_check_groff=yes - test -n "$cf_check_groff" || cf_check_groff=no - echo "$as_me:7985: result: $cf_check_groff" >&5 -echo "${ECHO_T}$cf_check_groff" >&6 - test "x$cf_check_groff" = xyes && NROFF_OPTS="-rHY=0" - fi - MAN2HTML_NOTE="" - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$cf_man2html" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval cf_man2html="$cf_man2html" - case ".$cf_man2html" in - (.NONE/*) - cf_man2html=`echo "$cf_man2html" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - cf_man2html=`echo "$cf_man2html" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:8016: error: expected a pathname, not \"$cf_man2html\"" >&5 -echo "$as_me: error: expected a pathname, not \"$cf_man2html\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - MAN2HTML_PATH="$cf_man2html" - echo "$as_me:8023: checking for $cf_man2html top/bottom margins" >&5 -echo $ECHO_N "checking for $cf_man2html top/bottom margins... $ECHO_C" >&6 - - # for this example, expect 3 lines of content, the remainder is head/foot - cat >conftest.in <<CF_EOF -.TH HEAD1 HEAD2 HEAD3 HEAD4 HEAD5 -.SH SECTION -MARKER -CF_EOF - - LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out - - cf_man2html_1st="`${FGREP-fgrep} -n MARKER conftest.out |sed -e 's/^[^0-9]*://' -e 's/:.*//'`" - cf_man2html_top=`expr "$cf_man2html_1st" - 2` - cf_man2html_bot="`wc -l conftest.out |sed -e 's/[^0-9]//g'`" - cf_man2html_bot=`expr "$cf_man2html_bot" - 2 - "$cf_man2html_top"` - cf_man2html_top_bot="-topm=$cf_man2html_top -botm=$cf_man2html_bot" - - echo "$as_me:8041: result: $cf_man2html_top_bot" >&5 -echo "${ECHO_T}$cf_man2html_top_bot" >&6 - - echo "$as_me:8044: checking for pagesize to use" >&5 -echo $ECHO_N "checking for pagesize to use... $ECHO_C" >&6 - for cf_block in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - do - cat >>conftest.in <<CF_EOF -.nf -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -CF_EOF - done - - LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out - cf_man2html_page="`${FGREP-fgrep} -n HEAD1 conftest.out |sed -n '$p' |sed -e 's/^[^0-9]*://' -e 's/:.*//'`" - test -z "$cf_man2html_page" && cf_man2html_page=99999 - test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999 - - rm -rf conftest* - echo "$as_me:8069: result: $cf_man2html_page" >&5 -echo "${ECHO_T}$cf_man2html_page" >&6 - - cat >>$MAN2HTML_TEMP <<CF_EOF -: \${MAN2HTML_PATH=$MAN2HTML_PATH} -MAN2HTML_OPTS="\$MAN2HTML_OPTS -index -title=\"\$ROOT(\$TYPE)\" -compress -pgsize $cf_man2html_page" -case \${TYPE} in -(ms) - $TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH -topm=0 -botm=0 \$MAN2HTML_OPTS - ;; -(*) - $TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH $cf_man2html_top_bot \$MAN2HTML_OPTS - ;; -esac -CF_EOF -fi - -chmod 700 $MAN2HTML_TEMP - -EXTRAOBJS="" -echo "$as_me:8089: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8095 "configure" -#include "confdefs.h" -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -_ACEOF -if { (eval echo "$as_me:8103: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:8109: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err "conftest.$ac_ext" - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >"conftest.$ac_ext" <<_ACEOF -#line 8131 "configure" -#include "confdefs.h" -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -rf conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >"conftest.$ac_ext" <<_ACEOF -#line 8149 "configure" -#include "confdefs.h" -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -rf conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8170 "configure" -#include "confdefs.h" -#include <ctype.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main (void) -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - $ac_main_return(2); - $ac_main_return (0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:8196: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8199: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:8201: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8204: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_header_stdc=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -fi -fi -echo "$as_me:8217: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -echo "$as_me:8227: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >"conftest.$ac_ext" <<_ACEOF -#line 8235 "configure" -#include "confdefs.h" -#ifndef __cplusplus -static $ac_kw int static_foo () {return 0; } -$ac_kw int foo () {return 0; } -#endif - -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:8244: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8247: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:8250: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8253: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -fi -echo "$as_me:8264: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 -case $ac_cv_c_inline in - inline | yes) ;; - no) -cat >>confdefs.h <<\EOF -#define inline -EOF - ;; - *) cat >>confdefs.h <<EOF -#define inline $ac_cv_c_inline -EOF - ;; -esac - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:8285: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8291 "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:8297: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8300: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:8303: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8306: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_Header=no" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:8316: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -echo "$as_me:8326: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 -if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8332 "configure" -#include "confdefs.h" -$ac_includes_default -int -main (void) -{ -if ((off_t *) 0) - return 0; -if (sizeof (off_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:8347: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8350: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:8353: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8356: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_type_off_t=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_type_off_t=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:8366: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test "$ac_cv_type_off_t" = yes; then - : -else - -cat >>confdefs.h <<EOF -#define off_t long -EOF - -fi - -echo "$as_me:8378: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8384 "configure" -#include "confdefs.h" -$ac_includes_default -int -main (void) -{ -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:8399: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8402: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:8405: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8408: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_type_size_t=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_type_size_t=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:8418: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test "$ac_cv_type_size_t" = yes; then - : -else - -cat >>confdefs.h <<EOF -#define size_t unsigned -EOF - -fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:8432: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8438 "configure" -#include "confdefs.h" -#include <alloca.h> -int -main (void) -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:8450: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8453: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:8456: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8459: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_working_alloca_h=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:8469: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_ALLOCA_H 1 -EOF - -fi - -echo "$as_me:8479: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8485 "configure" -#include "confdefs.h" -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include <malloc.h> -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -int -main (void) -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:8517: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8520: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:8523: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8526: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_alloca_works=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:8536: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_ALLOCA 1 -EOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA="alloca.$ac_objext" - -cat >>confdefs.h <<\EOF -#define C_ALLOCA 1 -EOF - -echo "$as_me:8557: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8563 "configure" -#include "confdefs.h" -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -rf conftest* - -fi -echo "$as_me:8581: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:8586: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8592 "configure" -#include "confdefs.h" -#define $ac_func autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef $ac_func - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -#error found stub for $ac_func -#endif - - return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:8623: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8626: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:8629: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8632: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_var=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:8642: result: `eval echo '${'"$as_ac_var"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6 -if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then - -cat >>confdefs.h <<EOF -#define CRAY_STACKSEG_END $ac_func -EOF - - break -fi - - done -fi - -echo "$as_me:8656: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8665 "configure" -#include "confdefs.h" -int -find_stack_direction (void) -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main (void) -{ - $ac_main_return (find_stack_direction () < 0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:8688: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8691: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:8693: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8696: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_c_stack_direction=-1 -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -fi -echo "$as_me:8708: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<EOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -EOF - -fi - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:8720: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8726 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:8730: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:8736: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:8755: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -for ac_func in getpagesize -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:8768: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8774 "configure" -#include "confdefs.h" -#define $ac_func autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef $ac_func - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -#error found stub for $ac_func -#endif - - return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:8805: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8808: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:8811: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8814: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_var=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:8824: result: `eval echo '${'"$as_ac_var"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6 -if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -EOF - -fi -done - -echo "$as_me:8834: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_mmap_fixed_mapped=no -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 8843 "configure" -#include "confdefs.h" -$ac_includes_default -/* Thanks to Mike Haertel and Jim Avera for this test. - Here is a matrix of mmap possibilities: - mmap private not fixed - mmap private fixed at somewhere currently unmapped - mmap private fixed at somewhere already mapped - mmap shared not fixed - mmap shared fixed at somewhere currently unmapped - mmap shared fixed at somewhere already mapped - For private mappings, we should verify that changes cannot be read() - back from the file, nor mmap's back from the file at a different - address. (There have been systems where private was not correctly - implemented like the infamous i386 svr4.0, and systems where the - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get - propogated back to all the places they're supposed to be. - - Grep wants private fixed already mapped. - The main things grep needs to know about mmap are: - * does it exist and is it safe to write into the mmap'd area - * how to use it (BSD variants) */ - -#include <fcntl.h> -#include <sys/mman.h> - -#if !STDC_HEADERS && !HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H -# include <sys/param.h> -# ifdef EXEC_PAGESIZE -# define getpagesize() EXEC_PAGESIZE -# else /* no EXEC_PAGESIZE */ -# ifdef NBPG -# define getpagesize() NBPG * CLSIZE -# ifndef CLSIZE -# define CLSIZE 1 -# endif /* no CLSIZE */ -# else /* no NBPG */ -# ifdef NBPC -# define getpagesize() NBPC -# else /* no NBPC */ -# ifdef PAGESIZE -# define getpagesize() PAGESIZE -# endif /* PAGESIZE */ -# endif /* no NBPC */ -# endif /* no NBPG */ -# endif /* no EXEC_PAGESIZE */ -# else /* no HAVE_SYS_PARAM_H */ -# define getpagesize() 8192 /* punt totally */ -# endif /* no HAVE_SYS_PARAM_H */ -# endif /* no _SC_PAGESIZE */ - -#endif /* no HAVE_GETPAGESIZE */ - -int -main (void) -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); - if (!data) - $ac_main_return (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - $ac_main_return (1); - if (write (fd, data, pagesize) != pagesize) - $ac_main_return (1); - close (fd); - - /* Next, try to mmap the file at a fixed address which already has - something else allocated at it. If we can, also make sure that - we see the same garbage. */ - fd = open ("conftest.mmap", O_RDWR); - if (fd < 0) - $ac_main_return (1); - data2 = (char *) malloc (2 * pagesize); - if (!data2) - $ac_main_return (1); - data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - $ac_main_return (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - $ac_main_return (1); - - /* Finally, make sure that changes to the mapped area do not - percolate back to the file as seen by read(). (This is a bug on - some variants of i386 svr4.0.) */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - $ac_main_return (1); - if (read (fd, data3, pagesize) != pagesize) - $ac_main_return (1); - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - $ac_main_return (1); - close (fd); - $ac_main_return (0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:8970: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8973: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:8975: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8978: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_mmap_fixed_mapped=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -fi -echo "$as_me:8990: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 -if test $ac_cv_func_mmap_fixed_mapped = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_MMAP 1 -EOF - -fi -rm -f conftest.mmap - -echo "$as_me:9001: checking whether we are using the GNU C Library 2.1 or newer" >&5 -echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6 -if test "${ac_cv_gnu_library_2_1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 9007 "configure" -#include "confdefs.h" - -#include <features.h> -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Lucky GNU user" >/dev/null 2>&1; then - ac_cv_gnu_library_2_1=yes -else - ac_cv_gnu_library_2_1=no -fi -rm -rf conftest* - -fi -echo "$as_me:9027: result: $ac_cv_gnu_library_2_1" >&5 -echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6 - - GLIBC21="$ac_cv_gnu_library_2_1" - -cf_makefile=makefile - -test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d "$srcdir/po" && cd "$srcdir/po" && echo *.po|sed -e 's/\.po//g' -e 's/*//'` - -# Allow override of "config.h" definition: -: ${CONFIG_H:=config.h} - -if test -z "$PACKAGE" ; then - { { echo "$as_me:9040: error: CF_BUNDLED_INTL used without setting PACKAGE variable" >&5 -echo "$as_me: error: CF_BUNDLED_INTL used without setting PACKAGE variable" >&2;} - { (exit 1); exit 1; }; } -fi - -if test -z "$VERSION" ; then -if test -f "$srcdir/VERSION" ; then - VERSION=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1` -else - VERSION=unknown -fi -fi - -for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:9057: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 9063 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:9067: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:9073: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:9092: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \ -getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \ -strdup strtoul tsearch __argz_count __argz_stringify __argz_next -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:9107: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 9113 "configure" -#include "confdefs.h" -#define $ac_func autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef $ac_func - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -#error found stub for $ac_func -#endif - - return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:9144: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9147: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:9150: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9153: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_var=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:9163: result: `eval echo '${'"$as_ac_var"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6 -if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -EOF - -fi -done - -# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then - withval="$with_libiconv_prefix" - -case "$withval" in -(no) - ;; -(yes) - ;; -(*) - -for cf_searchpath in `echo "$withval" | tr $PATH_SEPARATOR ' '`; do - if test -d "$cf_searchpath/include" ; then - -if test -n "$cf_searchpath/include" ; then - for cf_add_incdir in $cf_searchpath/include - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 9214 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:9226: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9229: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:9232: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9235: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:9252: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - elif test -d "$cf_searchpath/../include" ; then - -if test -n "$cf_searchpath/../include" ; then - for cf_add_incdir in $cf_searchpath/../include - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 9298 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:9310: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9313: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:9316: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9319: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:9336: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - else -{ { echo "$as_me:9354: error: cannot find libiconv under $withval" >&5 -echo "$as_me: error: cannot find libiconv under $withval" >&2;} - { (exit 1); exit 1; }; } - fi - if test -d "$cf_searchpath/lib" ; then - -if test -n "$cf_searchpath/lib" ; then - for cf_add_libdir in $cf_searchpath/lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:9379: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - elif test -d "$cf_searchpath" ; then - -if test -n "$cf_searchpath" ; then - for cf_add_libdir in $cf_searchpath - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:9408: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - else -{ { echo "$as_me:9417: error: cannot find libiconv under $withval" >&5 -echo "$as_me: error: cannot find libiconv under $withval" >&2;} - { (exit 1); exit 1; }; } - fi -done - - ;; -esac - -fi; - - echo "$as_me:9428: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6 -if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these -# will be set on completion of the AC_TRY_LINK below. -cf_cv_header_path_iconv= -cf_cv_library_path_iconv= - -echo "${as_me:-configure}:9439: testing Starting FIND_LINKAGE(iconv,) ..." 1>&5 - -cf_save_LIBS="$LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 9444 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <iconv.h> - -int -main (void) -{ - - iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:9463: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9466: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:9469: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9472: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_iconv=yes - cf_cv_header_path_iconv=/usr/include - cf_cv_library_path_iconv=/usr/lib - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - -LIBS="-liconv $cf_save_LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 9486 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <iconv.h> - -int -main (void) -{ - - iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:9505: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9508: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:9511: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9514: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_iconv=yes - cf_cv_header_path_iconv=/usr/include - cf_cv_library_path_iconv=/usr/lib - cf_cv_library_file_iconv="-liconv" - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_find_linkage_iconv=no - LIBS="$cf_save_LIBS" - - test -n "$verbose" && echo " find linkage for iconv library" 1>&6 - -echo "${as_me:-configure}:9531: testing find linkage for iconv library ..." 1>&5 - -echo "${as_me:-configure}:9533: testing Searching for headers in FIND_LINKAGE(iconv,) ..." 1>&5 - - cf_save_CPPFLAGS="$CPPFLAGS" - cf_test_CPPFLAGS="$CPPFLAGS" - -cf_search= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - -test "x$cf_header_path" != "xNONE" && \ -test -d "$cf_header_path" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" - test -d "$cf_header_path/include" && cf_search="$cf_search $cf_header_path/include" - test -d "$cf_header_path/include/iconv" && cf_search="$cf_search $cf_header_path/include/iconv" - test -d "$cf_header_path/include/iconv/include" && cf_search="$cf_search $cf_header_path/include/iconv/include" - test -d "$cf_header_path/iconv/include" && cf_search="$cf_search $cf_header_path/iconv/include" - test -d "$cf_header_path/iconv/include/iconv" && cf_search="$cf_search $cf_header_path/iconv/include/iconv" -} - - cf_header_path_list="$cf_header_path_list $cf_search" - ;; - esac - done -fi - -# add the variations for the package we are looking for - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $prefix" - test -d "$prefix/include" && cf_search="$cf_search $prefix/include" - test -d "$prefix/include/iconv" && cf_search="$cf_search $prefix/include/iconv" - test -d "$prefix/include/iconv/include" && cf_search="$cf_search $prefix/include/iconv/include" - test -d "$prefix/iconv/include" && cf_search="$cf_search $prefix/iconv/include" - test -d "$prefix/iconv/include/iconv" && cf_search="$cf_search $prefix/iconv/include/iconv" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/include" && cf_search="$cf_search $cf_subdir_prefix/include" - test -d "$cf_subdir_prefix/include/iconv" && cf_search="$cf_search $cf_subdir_prefix/include/iconv" - test -d "$cf_subdir_prefix/include/iconv/include" && cf_search="$cf_search $cf_subdir_prefix/include/iconv/include" - test -d "$cf_subdir_prefix/iconv/include" && cf_search="$cf_search $cf_subdir_prefix/iconv/include" - test -d "$cf_subdir_prefix/iconv/include/iconv" && cf_search="$cf_search $cf_subdir_prefix/iconv/include/iconv" -} - -done - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && cf_search="$cf_search $includedir" - test -d "$includedir/iconv" && cf_search="$cf_search $includedir/iconv" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && cf_search="$cf_search $oldincludedir" - test -d "$oldincludedir/iconv" && cf_search="$cf_search $oldincludedir/iconv" -} - -cf_search="$cf_search $cf_header_path_list" - - for cf_cv_header_path_iconv in $cf_search - do - if test -d "$cf_cv_header_path_iconv" ; then - test -n "$verbose" && echo " ... testing $cf_cv_header_path_iconv" 1>&6 - -echo "${as_me:-configure}:9624: testing ... testing $cf_cv_header_path_iconv ..." 1>&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_iconv" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 9632 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <iconv.h> - -int -main (void) -{ - - iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:9651: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9654: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:9657: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9660: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found iconv headers in $cf_cv_header_path_iconv" 1>&6 - -echo "${as_me:-configure}:9665: testing ... found iconv headers in $cf_cv_header_path_iconv ..." 1>&5 - - cf_cv_find_linkage_iconv=maybe - cf_test_CPPFLAGS="$CPPFLAGS" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi - done - - if test "$cf_cv_find_linkage_iconv" = maybe ; then - -echo "${as_me:-configure}:9683: testing Searching for iconv library in FIND_LINKAGE(iconv,) ..." 1>&5 - - cf_save_LIBS="$LIBS" - cf_save_LDFLAGS="$LDFLAGS" - - if test "$cf_cv_find_linkage_iconv" != yes ; then - -cf_search= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - -test "x$cf_library_path" != "xNONE" && \ -test -d "$cf_library_path" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" - test -d "$cf_library_path/lib" && cf_search="$cf_search $cf_library_path/lib" - test -d "$cf_library_path/lib/iconv" && cf_search="$cf_search $cf_library_path/lib/iconv" - test -d "$cf_library_path/lib/iconv/lib" && cf_search="$cf_search $cf_library_path/lib/iconv/lib" - test -d "$cf_library_path/iconv/lib" && cf_search="$cf_search $cf_library_path/iconv/lib" - test -d "$cf_library_path/iconv/lib/iconv" && cf_search="$cf_search $cf_library_path/iconv/lib/iconv" -} - - cf_library_path_list="$cf_library_path_list $cf_search" - ;; - esac - done -fi - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $prefix" - test -d "$prefix/lib" && cf_search="$cf_search $prefix/lib" - test -d "$prefix/lib/iconv" && cf_search="$cf_search $prefix/lib/iconv" - test -d "$prefix/lib/iconv/lib" && cf_search="$cf_search $prefix/lib/iconv/lib" - test -d "$prefix/iconv/lib" && cf_search="$cf_search $prefix/iconv/lib" - test -d "$prefix/iconv/lib/iconv" && cf_search="$cf_search $prefix/iconv/lib/iconv" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/lib" && cf_search="$cf_search $cf_subdir_prefix/lib" - test -d "$cf_subdir_prefix/lib/iconv" && cf_search="$cf_search $cf_subdir_prefix/lib/iconv" - test -d "$cf_subdir_prefix/lib/iconv/lib" && cf_search="$cf_search $cf_subdir_prefix/lib/iconv/lib" - test -d "$cf_subdir_prefix/iconv/lib" && cf_search="$cf_search $cf_subdir_prefix/iconv/lib" - test -d "$cf_subdir_prefix/iconv/lib/iconv" && cf_search="$cf_search $cf_subdir_prefix/iconv/lib/iconv" -} - -done - -cf_search="$cf_library_path_list $cf_search" - - for cf_cv_library_path_iconv in $cf_search - do - if test -d "$cf_cv_library_path_iconv" ; then - test -n "$verbose" && echo " ... testing $cf_cv_library_path_iconv" 1>&6 - -echo "${as_me:-configure}:9758: testing ... testing $cf_cv_library_path_iconv ..." 1>&5 - - CPPFLAGS="$cf_test_CPPFLAGS" - LIBS="-liconv $cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_iconv" - cat >"conftest.$ac_ext" <<_ACEOF -#line 9764 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <iconv.h> - -int -main (void) -{ - - iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:9783: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9786: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:9789: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9792: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found iconv library in $cf_cv_library_path_iconv" 1>&6 - -echo "${as_me:-configure}:9797: testing ... found iconv library in $cf_cv_library_path_iconv ..." 1>&5 - - cf_cv_find_linkage_iconv=yes - cf_cv_library_file_iconv="-liconv" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - done - CPPFLAGS="$cf_save_CPPFLAGS" - LDFLAGS="$cf_save_LDFLAGS" - fi - - else - cf_cv_find_linkage_iconv=no - fi - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -LIBS="$cf_save_LIBS" - -if test "$cf_cv_find_linkage_iconv" = yes ; then -am_cv_func_iconv=yes -else -am_cv_func_iconv="no, consider installing GNU libiconv" -fi - -fi -echo "$as_me:9837: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6 - - if test "$am_cv_func_iconv" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_ICONV 1 -EOF - - echo "$as_me:9846: checking if the declaration of iconv() needs const." >&5 -echo $ECHO_N "checking if the declaration of iconv() needs const.... $ECHO_C" >&6 -if test "${am_cv_proto_iconv_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 9853 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <iconv.h> - -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:9878: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9881: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:9884: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9887: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - am_cv_proto_iconv_const=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -am_cv_proto_iconv_const=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:9897: result: $am_cv_proto_iconv_const" >&5 -echo "${ECHO_T}$am_cv_proto_iconv_const" >&6 - - if test "$am_cv_proto_iconv_const" = yes ; then - am_cv_proto_iconv_arg1="const" - else - am_cv_proto_iconv_arg1="" - fi - -cat >>confdefs.h <<EOF -#define ICONV_CONST $am_cv_proto_iconv_arg1 -EOF - - fi - - LIBICONV= - if test "$cf_cv_find_linkage_iconv" = yes; then - -if test -n "$cf_cv_header_path_iconv" ; then - for cf_add_incdir in $cf_cv_header_path_iconv - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 9942 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:9954: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9957: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:9960: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9963: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:9980: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - if test -n "$cf_cv_library_file_iconv" ; then - LIBICONV="-liconv" - -if test -n "$cf_cv_library_path_iconv" ; then - for cf_add_libdir in $cf_cv_library_path_iconv - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:10019: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - fi - fi - -echo "$as_me:10030: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 -if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 10036 "configure" -#include "confdefs.h" -#include <langinfo.h> -int -main (void) -{ -char* cs = nl_langinfo(CODESET); (void)cs - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10048: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10051: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:10054: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10057: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - am_cv_langinfo_codeset=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -am_cv_langinfo_codeset=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -echo "$as_me:10068: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 - if test "$am_cv_langinfo_codeset" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_LANGINFO_CODESET 1 -EOF - - fi - - if test "$ac_cv_header_locale_h" = yes; then - echo "$as_me:10079: checking for LC_MESSAGES" >&5 -echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 -if test "${am_cv_val_LC_MESSAGES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 10085 "configure" -#include "confdefs.h" -#include <locale.h> -int -main (void) -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10097: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10100: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:10103: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10106: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - am_cv_val_LC_MESSAGES=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -am_cv_val_LC_MESSAGES=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:10116: result: $am_cv_val_LC_MESSAGES" >&5 -echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 - if test "$am_cv_val_LC_MESSAGES" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_LC_MESSAGES 1 -EOF - - fi -fi - echo "$as_me:10126: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - -# Check whether --enable-nls or --disable-nls was given. -if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval -else - USE_NLS=no -fi; - echo "$as_me:10136: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 - - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - INTLLIBS= - - if test "$USE_NLS" = "yes"; then - POSUB=po - -cat >>confdefs.h <<\EOF -#define ENABLE_NLS 1 -EOF - - echo "$as_me:10150: checking whether included gettext is requested" >&5 -echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6 - -# Check whether --with-included-gettext or --without-included-gettext was given. -if test "${with_included_gettext+set}" = set; then - withval="$with_included_gettext" - nls_cv_force_use_gnu_gettext=$withval -else - nls_cv_force_use_gnu_gettext=no -fi; - echo "$as_me:10160: result: $nls_cv_force_use_gnu_gettext" >&5 -echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - CATOBJEXT=NONE - - cf_save_msgfmt_path="$MSGFMT" - cf_save_xgettext_path="$XGETTEXT" - - # Extract the first word of "msgfmt", so it can be a program name with args. - -set dummy msgfmt; ac_word=$2 -echo "$as_me:10173: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$MSGFMT" in - ([\\/]*|?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - (*) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_word$ac_exeext" ; then - if "$ac_dir/$ac_word" --statistics /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exeext" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - echo "$as_me:10200: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6 -else - echo "$as_me:10203: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -echo "$as_me:10209: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_GMSGFMT="$ac_dir/$ac_word" - echo "$as_me:10226: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT - -if test -n "$GMSGFMT"; then - echo "$as_me:10238: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6 -else - echo "$as_me:10241: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - # Extract the first word of "xgettext", so it can be a program name with args. - -set dummy xgettext; ac_word=$2 -echo "$as_me:10248: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$XGETTEXT" in - ([\\/]*|?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - (*) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_word$ac_exeext" ; then - if "$ac_dir/$ac_word" --omit-header /dev/null >/dev/null 2>&1; then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exeext" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - echo "$as_me:10275: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6 -else - echo "$as_me:10278: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - cf_save_OPTS_1="$CPPFLAGS" - if test "x$cf_save_msgfmt_path" = "x$MSGFMT" && \ - test "x$cf_save_xgettext_path" = "x$XGETTEXT" ; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -DIGNORE_MSGFMT_HACK -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - fi - - cf_save_LIBS_1="$LIBS" - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $LIBICONV; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these -# will be set on completion of the AC_TRY_LINK below. -cf_cv_header_path_intl= -cf_cv_library_path_intl= - -echo "${as_me:-configure}:10409: testing Starting FIND_LINKAGE(intl,) ..." 1>&5 - -cf_save_LIBS="$LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 10414 "configure" -#include "confdefs.h" - -#include <libintl.h> -extern int _nl_msg_cat_cntr; - -int -main (void) -{ - - bindtextdomain ("", ""); - return (int) gettext ("") - -#ifndef IGNORE_MSGFMT_HACK - + _nl_msg_cat_cntr -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10436: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10439: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:10442: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10445: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_intl=yes - cf_cv_header_path_intl=/usr/include - cf_cv_library_path_intl=/usr/lib - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - -LIBS="-lintl $cf_save_LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 10459 "configure" -#include "confdefs.h" - -#include <libintl.h> -extern int _nl_msg_cat_cntr; - -int -main (void) -{ - - bindtextdomain ("", ""); - return (int) gettext ("") - -#ifndef IGNORE_MSGFMT_HACK - + _nl_msg_cat_cntr -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10481: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10484: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:10487: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10490: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_intl=yes - cf_cv_header_path_intl=/usr/include - cf_cv_library_path_intl=/usr/lib - cf_cv_library_file_intl="-lintl" - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_find_linkage_intl=no - LIBS="$cf_save_LIBS" - - test -n "$verbose" && echo " find linkage for intl library" 1>&6 - -echo "${as_me:-configure}:10507: testing find linkage for intl library ..." 1>&5 - -echo "${as_me:-configure}:10509: testing Searching for headers in FIND_LINKAGE(intl,) ..." 1>&5 - - cf_save_CPPFLAGS="$CPPFLAGS" - cf_test_CPPFLAGS="$CPPFLAGS" - -cf_search= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - -test "x$cf_header_path" != "xNONE" && \ -test -d "$cf_header_path" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" - test -d "$cf_header_path/include" && cf_search="$cf_search $cf_header_path/include" - test -d "$cf_header_path/include/intl" && cf_search="$cf_search $cf_header_path/include/intl" - test -d "$cf_header_path/include/intl/include" && cf_search="$cf_search $cf_header_path/include/intl/include" - test -d "$cf_header_path/intl/include" && cf_search="$cf_search $cf_header_path/intl/include" - test -d "$cf_header_path/intl/include/intl" && cf_search="$cf_search $cf_header_path/intl/include/intl" -} - - cf_header_path_list="$cf_header_path_list $cf_search" - ;; - esac - done -fi - -# add the variations for the package we are looking for - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $prefix" - test -d "$prefix/include" && cf_search="$cf_search $prefix/include" - test -d "$prefix/include/intl" && cf_search="$cf_search $prefix/include/intl" - test -d "$prefix/include/intl/include" && cf_search="$cf_search $prefix/include/intl/include" - test -d "$prefix/intl/include" && cf_search="$cf_search $prefix/intl/include" - test -d "$prefix/intl/include/intl" && cf_search="$cf_search $prefix/intl/include/intl" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/include" && cf_search="$cf_search $cf_subdir_prefix/include" - test -d "$cf_subdir_prefix/include/intl" && cf_search="$cf_search $cf_subdir_prefix/include/intl" - test -d "$cf_subdir_prefix/include/intl/include" && cf_search="$cf_search $cf_subdir_prefix/include/intl/include" - test -d "$cf_subdir_prefix/intl/include" && cf_search="$cf_search $cf_subdir_prefix/intl/include" - test -d "$cf_subdir_prefix/intl/include/intl" && cf_search="$cf_search $cf_subdir_prefix/intl/include/intl" -} - -done - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && cf_search="$cf_search $includedir" - test -d "$includedir/intl" && cf_search="$cf_search $includedir/intl" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && cf_search="$cf_search $oldincludedir" - test -d "$oldincludedir/intl" && cf_search="$cf_search $oldincludedir/intl" -} - -cf_search="$cf_search $cf_header_path_list" - - for cf_cv_header_path_intl in $cf_search - do - if test -d "$cf_cv_header_path_intl" ; then - test -n "$verbose" && echo " ... testing $cf_cv_header_path_intl" 1>&6 - -echo "${as_me:-configure}:10600: testing ... testing $cf_cv_header_path_intl ..." 1>&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_intl" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 10608 "configure" -#include "confdefs.h" - -#include <libintl.h> -extern int _nl_msg_cat_cntr; - -int -main (void) -{ - - bindtextdomain ("", ""); - return (int) gettext ("") - -#ifndef IGNORE_MSGFMT_HACK - + _nl_msg_cat_cntr -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:10630: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10633: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:10636: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10639: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found intl headers in $cf_cv_header_path_intl" 1>&6 - -echo "${as_me:-configure}:10644: testing ... found intl headers in $cf_cv_header_path_intl ..." 1>&5 - - cf_cv_find_linkage_intl=maybe - cf_test_CPPFLAGS="$CPPFLAGS" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi - done - - if test "$cf_cv_find_linkage_intl" = maybe ; then - -echo "${as_me:-configure}:10662: testing Searching for intl library in FIND_LINKAGE(intl,) ..." 1>&5 - - cf_save_LIBS="$LIBS" - cf_save_LDFLAGS="$LDFLAGS" - - if test "$cf_cv_find_linkage_intl" != yes ; then - -cf_search= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - -test "x$cf_library_path" != "xNONE" && \ -test -d "$cf_library_path" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" - test -d "$cf_library_path/lib" && cf_search="$cf_search $cf_library_path/lib" - test -d "$cf_library_path/lib/intl" && cf_search="$cf_search $cf_library_path/lib/intl" - test -d "$cf_library_path/lib/intl/lib" && cf_search="$cf_search $cf_library_path/lib/intl/lib" - test -d "$cf_library_path/intl/lib" && cf_search="$cf_search $cf_library_path/intl/lib" - test -d "$cf_library_path/intl/lib/intl" && cf_search="$cf_search $cf_library_path/intl/lib/intl" -} - - cf_library_path_list="$cf_library_path_list $cf_search" - ;; - esac - done -fi - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $prefix" - test -d "$prefix/lib" && cf_search="$cf_search $prefix/lib" - test -d "$prefix/lib/intl" && cf_search="$cf_search $prefix/lib/intl" - test -d "$prefix/lib/intl/lib" && cf_search="$cf_search $prefix/lib/intl/lib" - test -d "$prefix/intl/lib" && cf_search="$cf_search $prefix/intl/lib" - test -d "$prefix/intl/lib/intl" && cf_search="$cf_search $prefix/intl/lib/intl" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/lib" && cf_search="$cf_search $cf_subdir_prefix/lib" - test -d "$cf_subdir_prefix/lib/intl" && cf_search="$cf_search $cf_subdir_prefix/lib/intl" - test -d "$cf_subdir_prefix/lib/intl/lib" && cf_search="$cf_search $cf_subdir_prefix/lib/intl/lib" - test -d "$cf_subdir_prefix/intl/lib" && cf_search="$cf_search $cf_subdir_prefix/intl/lib" - test -d "$cf_subdir_prefix/intl/lib/intl" && cf_search="$cf_search $cf_subdir_prefix/intl/lib/intl" -} - -done - -cf_search="$cf_library_path_list $cf_search" - - for cf_cv_library_path_intl in $cf_search - do - if test -d "$cf_cv_library_path_intl" ; then - test -n "$verbose" && echo " ... testing $cf_cv_library_path_intl" 1>&6 - -echo "${as_me:-configure}:10737: testing ... testing $cf_cv_library_path_intl ..." 1>&5 - - CPPFLAGS="$cf_test_CPPFLAGS" - LIBS="-lintl $cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_intl" - cat >"conftest.$ac_ext" <<_ACEOF -#line 10743 "configure" -#include "confdefs.h" - -#include <libintl.h> -extern int _nl_msg_cat_cntr; - -int -main (void) -{ - - bindtextdomain ("", ""); - return (int) gettext ("") - -#ifndef IGNORE_MSGFMT_HACK - + _nl_msg_cat_cntr -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10765: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10768: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:10771: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10774: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found intl library in $cf_cv_library_path_intl" 1>&6 - -echo "${as_me:-configure}:10779: testing ... found intl library in $cf_cv_library_path_intl ..." 1>&5 - - cf_cv_find_linkage_intl=yes - cf_cv_library_file_intl="-lintl" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - done - CPPFLAGS="$cf_save_CPPFLAGS" - LDFLAGS="$cf_save_LDFLAGS" - fi - - else - cf_cv_find_linkage_intl=no - fi - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -LIBS="$cf_save_LIBS" - -if test "$cf_cv_find_linkage_intl" = yes ; then -cf_cv_func_gettext=yes -else -cf_cv_func_gettext=no -fi - - echo "$as_me:10818: checking for libintl.h and gettext()" >&5 -echo $ECHO_N "checking for libintl.h and gettext()... $ECHO_C" >&6 - echo "$as_me:10820: result: $cf_cv_func_gettext" >&5 -echo "${ECHO_T}$cf_cv_func_gettext" >&6 - - LIBS="$cf_save_LIBS_1" - CPPFLAGS="$cf_save_OPTS_1" - - if test "$cf_cv_func_gettext" = yes ; then - -cat >>confdefs.h <<\EOF -#define HAVE_LIBINTL_H 1 -EOF - - if test "$PACKAGE" != gettext; then - -cat >>confdefs.h <<\EOF -#define HAVE_GETTEXT 1 -EOF - -if test -n "$cf_cv_header_path_intl" ; then - for cf_add_incdir in $cf_cv_header_path_intl - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 10865 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:10877: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10880: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:10883: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10886: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:10903: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - if test -n "$cf_cv_library_file_intl" ; then - INTLLIBS="$cf_cv_library_file_intl $LIBICONV" - -if test -n "$cf_cv_library_path_intl" ; then - for cf_add_libdir in $cf_cv_library_path_intl - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:10942: testing adding $cf_add_libdir to library-path ..." 1>&5 - - INTLLIBS="-L$cf_add_libdir $INTLLIBS" - fi - fi - done -fi - - fi - - gt_save_LIBS="$LIBS" - LIBS="$LIBS $INTLLIBS" - -for ac_func in dcgettext -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:10958: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 10964 "configure" -#include "confdefs.h" -#define $ac_func autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef $ac_func - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -#error found stub for $ac_func -#endif - - return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:10995: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10998: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:11001: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11004: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_var=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:11014: result: `eval echo '${'"$as_ac_var"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6 -if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -EOF - -fi -done - - LIBS="$gt_save_LIBS" - - CATOBJEXT=.gmo - fi - elif test -z "$MSGFMT" || test -z "$XGETTEXT" ; then - { echo "$as_me:11029: WARNING: disabling NLS feature" >&5 -echo "$as_me: WARNING: disabling NLS feature" >&2;} - sed -e /ENABLE_NLS/d confdefs.h >confdefs.tmp - mv confdefs.tmp confdefs.h - ALL_LINGUAS= - CATOBJEXT=.ignored - MSGFMT=":" - GMSGFMT=":" - XGETTEXT=":" - POSUB= - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - USE_NLS=no - nls_cv_use_gnu_gettext=no - fi - - if test "$CATOBJEXT" = "NONE"; then - nls_cv_use_gnu_gettext=maybe - fi - fi - - if test "$nls_cv_use_gnu_gettext" != "no"; then - CATOBJEXT=.gmo - if test -f "$srcdir/intl/libintl.h" ; then - INTLOBJS="\$(GETTOBJS)" - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - elif test "$nls_cv_use_gnu_gettext" = "yes"; then - nls_cv_use_gnu_gettext=no - { echo "$as_me:11060: WARNING: no NLS library is packaged with this application" >&5 -echo "$as_me: WARNING: no NLS library is packaged with this application" >&2;} - fi - fi - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then - : ; - else - { echo "$as_me:11069: WARNING: found msgfmt program is not GNU msgfmt" >&5 -echo "$as_me: WARNING: found msgfmt program is not GNU msgfmt" >&2;} - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then - : ; - else - { echo "$as_me:11078: WARNING: found xgettext program is not GNU xgettext" >&5 -echo "$as_me: WARNING: found xgettext program is not GNU xgettext" >&2;} - fi - fi - fi - - if test "$XGETTEXT" != ":"; then - ac_config_commands="$ac_config_commands default-1" - - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - for ac_prog in bison -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:11096: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_INTLBISON+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$INTLBISON"; then - ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_INTLBISON="$ac_prog" -echo "$as_me:11111: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -INTLBISON=$ac_cv_prog_INTLBISON -if test -n "$INTLBISON"; then - echo "$as_me:11119: result: $INTLBISON" >&5 -echo "${ECHO_T}$INTLBISON" >&6 -else - echo "$as_me:11122: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$INTLBISON" && break -done - - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - echo "$as_me:11132: checking version of bison" >&5 -echo $ECHO_N "checking version of bison... $ECHO_C" >&6 - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case "$ac_prog_version" in - ('') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - (1.2[6-9]*|1.[3-9][0-9]*|[2-9].*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - (*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - echo "$as_me:11141: result: $ac_prog_version" >&5 -echo "${ECHO_T}$ac_prog_version" >&6 - fi - if test "$ac_verc_fail" = yes; then - INTLBISON=: - fi - fi - - for lang in $ALL_LINGUAS; do - GMOFILES="$GMOFILES $lang.gmo" - POFILES="$POFILES $lang.po" - done - fi - - nls_cv_header_intl= - nls_cv_header_libgt= - - DATADIRNAME=share - - INSTOBJEXT=.mo - - GENCAT=gencat - - if test "x$CATOBJEXT" != "x"; then - if test "x$ALL_LINGUAS" = "x"; then - LINGUAS= - else - echo "$as_me:11168: checking for catalogs to be installed" >&5 -echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6 - NEW_LINGUAS= - for presentlang in $ALL_LINGUAS; do - useit=no - for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - ("$presentlang"*) useit=yes;; - esac - done - if test "$useit" = yes; then - NEW_LINGUAS="$NEW_LINGUAS $presentlang" - fi - done - LINGUAS=$NEW_LINGUAS - echo "$as_me:11188: result: $LINGUAS" >&5 -echo "${ECHO_T}$LINGUAS" >&6 - fi - - if test -n "$LINGUAS"; then - for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done - fi - fi - - INTL_LIBTOOL_SUFFIX_PREFIX= - -if test "$USE_NLS" = yes ; then - -# Check whether --with-textdomain or --without-textdomain was given. -if test "${with_textdomain+set}" = set; then - withval="$with_textdomain" - NLS_TEXTDOMAIN=$withval -else - NLS_TEXTDOMAIN=$PACKAGE -fi; - -cat >>confdefs.h <<EOF -#define NLS_TEXTDOMAIN "$NLS_TEXTDOMAIN" -EOF - -fi - -INTLDIR_MAKE= -MSG_DIR_MAKE= -SUB_MAKEFILE= - -cf_makefile=makefile - -use_our_messages=no -if test "$USE_NLS" = yes ; then -if test -d "$srcdir/po" ; then -echo "$as_me:11224: checking if we should use included message-library" >&5 -echo $ECHO_N "checking if we should use included message-library... $ECHO_C" >&6 - -# Check whether --enable-included-msgs or --disable-included-msgs was given. -if test "${enable_included_msgs+set}" = set; then - enableval="$enable_included_msgs" - use_our_messages=$enableval -else - use_our_messages=yes -fi; -fi -echo "$as_me:11235: result: $use_our_messages" >&5 -echo "${ECHO_T}$use_our_messages" >&6 -fi - -MSG_DIR_MAKE="#" -if test "$use_our_messages" = yes -then - SUB_MAKEFILE="$SUB_MAKEFILE po/$cf_makefile.in:$srcdir/po/$cf_makefile.inn" - MSG_DIR_MAKE= -fi - -if test "$USE_INCLUDED_LIBINTL" = yes ; then - if test "$nls_cv_force_use_gnu_gettext" = yes ; then - : - elif test "$nls_cv_use_gnu_gettext" = yes ; then - : - else - INTLDIR_MAKE="#" - fi - if test -z "$INTLDIR_MAKE"; then - -cat >>confdefs.h <<\EOF -#define HAVE_LIBGETTEXT_H 1 -EOF - - for cf_makefile in \ - $srcdir/intl/Makefile.in \ - $srcdir/intl/makefile.in - do - if test -f "$cf_makefile" ; then - SUB_MAKEFILE="$SUB_MAKEFILE `echo \"${cf_makefile}\"|sed -e 's,^'$srcdir/',,' -e 's/\.in$//'`:${cf_makefile}" - break - fi - done - fi -else - INTLDIR_MAKE="#" - if test "$USE_NLS" = yes ; then - -for ac_header in libintl.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:11277: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 11283 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:11287: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11293: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:11312: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - - fi -fi - -if test -z "$INTLDIR_MAKE" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I../intl" - -fi - -if test "$BUILD_INCLUDED_LIBINTL" = yes ; then - GT_YES="#" - GT_NO= -else - GT_YES= - GT_NO="#" -fi - -if test "$USE_INCLUDED_LIBINTL" = yes ; then - if test "$nls_cv_force_use_gnu_gettext" = yes ; then - -cat >>confdefs.h <<\EOF -#define HAVE_GETTEXT 1 -EOF - - elif test "$nls_cv_use_gnu_gettext" = yes ; then - -cat >>confdefs.h <<\EOF -#define HAVE_GETTEXT 1 -EOF - - fi - if test -n "$nls_cv_header_intl" ; then - -cat >>confdefs.h <<\EOF -#define HAVE_LIBINTL_H 1 -EOF - - fi -fi - -echo "$as_me:11363: checking if -lm needed for math functions" >&5 -echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6 -if test "${cf_cv_need_libm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 11370 "configure" -#include "confdefs.h" - - #include <stdio.h> - #include <stdlib.h> - #include <math.h> - -int -main (void) -{ -double x = rand(); printf("result = %g\\n", sqrt(x)) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:11386: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11389: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:11392: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11395: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_need_libm=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_need_libm=yes -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:11405: result: $cf_cv_need_libm" >&5 -echo "${ECHO_T}$cf_cv_need_libm" >&6 -if test "$cf_cv_need_libm" = yes -then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lm; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -echo "$as_me:11428: checking if you want to use dmalloc for testing" >&5 -echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6 - -# Check whether --with-dmalloc or --without-dmalloc was given. -if test "${with_dmalloc+set}" = set; then - withval="$with_dmalloc" - -cat >>confdefs.h <<EOF -#define USE_DMALLOC 1 -EOF - - : "${with_cflags:=-g}" - : "${enable_leaks:=no}" - with_dmalloc=yes -else - with_dmalloc= -fi; -echo "$as_me:11445: result: ${with_dmalloc:-no}" >&5 -echo "${ECHO_T}${with_dmalloc:-no}" >&6 - -case ".$with_cflags" in -(.*-g*) - case .$CFLAGS in - (.*-g*) - ;; - (*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -g -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - ;; - esac - ;; -esac - -if test "$with_dmalloc" = yes ; then - echo "$as_me:11559: checking for dmalloc.h" >&5 -echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6 -if test "${ac_cv_header_dmalloc_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 11565 "configure" -#include "confdefs.h" -#include <dmalloc.h> -_ACEOF -if { (eval echo "$as_me:11569: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11575: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_dmalloc_h=yes -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - ac_cv_header_dmalloc_h=no -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:11594: result: $ac_cv_header_dmalloc_h" >&5 -echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6 -if test "$ac_cv_header_dmalloc_h" = yes; then - -echo "$as_me:11598: checking for dmalloc_debug in -ldmalloc" >&5 -echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6 -if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldmalloc $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 11606 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dmalloc_debug (); -int -main (void) -{ -dmalloc_debug (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:11625: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11628: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:11631: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11634: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_dmalloc_dmalloc_debug=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_dmalloc_dmalloc_debug=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:11645: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 -echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 -if test "$ac_cv_lib_dmalloc_dmalloc_debug" = yes; then - cat >>confdefs.h <<EOF -#define HAVE_LIBDMALLOC 1 -EOF - - LIBS="-ldmalloc $LIBS" - -fi - -fi - -fi - -echo "$as_me:11660: checking if you want to use dbmalloc for testing" >&5 -echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6 - -# Check whether --with-dbmalloc or --without-dbmalloc was given. -if test "${with_dbmalloc+set}" = set; then - withval="$with_dbmalloc" - -cat >>confdefs.h <<EOF -#define USE_DBMALLOC 1 -EOF - - : "${with_cflags:=-g}" - : "${enable_leaks:=no}" - with_dbmalloc=yes -else - with_dbmalloc= -fi; -echo "$as_me:11677: result: ${with_dbmalloc:-no}" >&5 -echo "${ECHO_T}${with_dbmalloc:-no}" >&6 - -case ".$with_cflags" in -(.*-g*) - case .$CFLAGS in - (.*-g*) - ;; - (*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -g -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - ;; - esac - ;; -esac - -if test "$with_dbmalloc" = yes ; then - echo "$as_me:11791: checking for dbmalloc.h" >&5 -echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6 -if test "${ac_cv_header_dbmalloc_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 11797 "configure" -#include "confdefs.h" -#include <dbmalloc.h> -_ACEOF -if { (eval echo "$as_me:11801: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11807: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_dbmalloc_h=yes -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - ac_cv_header_dbmalloc_h=no -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:11826: result: $ac_cv_header_dbmalloc_h" >&5 -echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6 -if test "$ac_cv_header_dbmalloc_h" = yes; then - -echo "$as_me:11830: checking for debug_malloc in -ldbmalloc" >&5 -echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6 -if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldbmalloc $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 11838 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char debug_malloc (); -int -main (void) -{ -debug_malloc (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:11857: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11860: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:11863: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11866: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_dbmalloc_debug_malloc=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_dbmalloc_debug_malloc=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:11877: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 -echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 -if test "$ac_cv_lib_dbmalloc_debug_malloc" = yes; then - cat >>confdefs.h <<EOF -#define HAVE_LIBDBMALLOC 1 -EOF - - LIBS="-ldbmalloc $LIBS" - -fi - -fi - -fi - -echo "$as_me:11892: checking if you want to use purify for testing" >&5 -echo $ECHO_N "checking if you want to use purify for testing... $ECHO_C" >&6 - -# Check whether --with-purify or --without-purify was given. -if test "${with_purify+set}" = set; then - withval="$with_purify" - -cat >>confdefs.h <<EOF -#define USE_PURIFY 1 -EOF - - : "${with_cflags:=-g}" - : "${enable_leaks:=no}" - with_purify=yes -else - with_purify= -fi; -echo "$as_me:11909: result: ${with_purify:-no}" >&5 -echo "${ECHO_T}${with_purify:-no}" >&6 - -case ".$with_cflags" in -(.*-g*) - case .$CFLAGS in - (.*-g*) - ;; - (*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -g -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - ;; - esac - ;; -esac - -echo "$as_me:12022: checking if you want to use valgrind for testing" >&5 -echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6 - -# Check whether --with-valgrind or --without-valgrind was given. -if test "${with_valgrind+set}" = set; then - withval="$with_valgrind" - -cat >>confdefs.h <<EOF -#define USE_VALGRIND 1 -EOF - - : "${with_cflags:=-g}" - : "${enable_leaks:=no}" - with_valgrind=yes -else - with_valgrind= -fi; -echo "$as_me:12039: result: ${with_valgrind:-no}" >&5 -echo "${ECHO_T}${with_valgrind:-no}" >&6 - -case ".$with_cflags" in -(.*-g*) - case .$CFLAGS in - (.*-g*) - ;; - (*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -g -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - - ;; - esac - ;; -esac - -echo "$as_me:12152: checking if you want to perform memory-leak testing" >&5 -echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6 - -# Check whether --with-no-leaks or --without-no-leaks was given. -if test "${with_no_leaks+set}" = set; then - withval="$with_no_leaks" - -cat >>confdefs.h <<\EOF -#define NO_LEAKS 1 -EOF - - cf_doalloc=".${with_dmalloc}${with_dbmalloc}${with_purify}${with_valgrind}" - case ${cf_doalloc} in - (*yes*) ;; - (*) -cat >>confdefs.h <<\EOF -#define DOALLOC 10000 -EOF - ;; - esac - enable_leaks=no -else - enable_leaks=yes -fi; -if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi -echo "$as_me:12177: result: $with_no_leaks" >&5 -echo "${ECHO_T}$with_no_leaks" >&6 - -echo "$as_me:12180: checking if you want --trace option" >&5 -echo $ECHO_N "checking if you want --trace option... $ECHO_C" >&6 - -# Check whether --enable-trace or --disable-trace was given. -if test "${enable_trace+set}" = set; then - enableval="$enable_trace" - -else - enableval=yes -fi; -echo "$as_me:12190: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS trace\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_DLG_TRACE 1 -EOF - -else - : -fi - -echo "$as_me:12203: checking if rpath option should be used" >&5 -echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6 - -# Check whether --enable-rpath or --disable-rpath was given. -if test "${enable_rpath+set}" = set; then - enableval="$enable_rpath" - cf_cv_enable_rpath=$enableval -else - cf_cv_enable_rpath=no -fi; -echo "$as_me:12213: result: $cf_cv_enable_rpath" >&5 -echo "${ECHO_T}$cf_cv_enable_rpath" >&6 - -LD_RPATH_OPT= -if test "x$cf_cv_enable_rpath" != xno -then - echo "$as_me:12219: checking for an rpath option" >&5 -echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6 - case "$cf_cv_system_name" in - (irix*) - if test "$GCC" = yes; then - LD_RPATH_OPT="-Wl,-rpath," - else - LD_RPATH_OPT="-rpath " - fi - ;; - (linux*|gnu*|k*bsd*-gnu|freebsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (openbsd[2-9].*|mirbsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (dragonfly*) - LD_RPATH_OPT="-rpath " - ;; - (netbsd*) - LD_RPATH_OPT="-Wl,-rpath," - ;; - (osf*|mls+*) - LD_RPATH_OPT="-rpath " - ;; - (solaris2*) - LD_RPATH_OPT="-R" - ;; - (*) - ;; - esac - echo "$as_me:12250: result: $LD_RPATH_OPT" >&5 -echo "${ECHO_T}$LD_RPATH_OPT" >&6 - - case "x$LD_RPATH_OPT" in - (x-R*) - echo "$as_me:12255: checking if we need a space after rpath option" >&5 -echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6 - cf_save_LIBS="$LIBS" - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in ${LD_RPATH_OPT}$libdir; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 12276 "configure" -#include "confdefs.h" - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:12288: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:12291: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:12294: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:12297: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_rpath_space=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_rpath_space=yes -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - LIBS="$cf_save_LIBS" - echo "$as_me:12307: result: $cf_rpath_space" >&5 -echo "${ECHO_T}$cf_rpath_space" >&6 - test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT " - ;; - esac -fi - -REL_VERSION=${VERSION_MAJOR}.${VERSION_MINOR} -ABI_VERSION=`echo "$VERSION" |sed -e 's/:/./g'` -cf_cv_rel_version=$REL_VERSION - -test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 - -# Check whether --with-rel-version or --without-rel-version was given. -if test "${with_rel_version+set}" = set; then - withval="$with_rel_version" - { echo "$as_me:12323: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5 -echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;} - cf_cv_rel_version=$withval -fi; - - DIALOG_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'` - DIALOG_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[^.]*//' -e 's/^\.//' -e 's/\..*//'` - -if test -n "$DIALOG_MAJOR" ; then - case $DIALOG_MAJOR in - ([0-9]*) - ;; - (*) - { { echo "$as_me:12336: error: Release major-version is not a number: $DIALOG_MAJOR" >&5 -echo "$as_me: error: Release major-version is not a number: $DIALOG_MAJOR" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:12342: error: Release major-version value is empty" >&5 -echo "$as_me: error: Release major-version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -if test -n "$DIALOG_MINOR" ; then - case $DIALOG_MINOR in - ([0-9]*) - ;; - (*) - { { echo "$as_me:12352: error: Release minor-version is not a number: $DIALOG_MINOR" >&5 -echo "$as_me: error: Release minor-version is not a number: $DIALOG_MINOR" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:12358: error: Release minor-version value is empty" >&5 -echo "$as_me: error: Release minor-version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 - -# Check whether --with-abi-version or --without-abi-version was given. -if test "${with_abi_version+set}" = set; then - withval="$with_abi_version" - - if test "x$cf_cv_abi_version" != "x$withval" - then - { echo "$as_me:12371: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5 -echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;} - case "$cf_cv_rel_version" in - (5.*) - cf_cv_rel_version=$withval.0 - ;; - (6.*) - cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release - ;; - esac - fi - cf_cv_abi_version=$withval -fi; - -if test -n "$cf_cv_abi_version" ; then - case $cf_cv_abi_version in - ([0-9]*) - ;; - (*) - { { echo "$as_me:12390: error: ABI version is not a number: $cf_cv_abi_version" >&5 -echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:12396: error: ABI version value is empty" >&5 -echo "$as_me: error: ABI version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -LIB_MODEL=static -DFT_LWR_MODEL=$LIB_MODEL -LIBTOOL_MAKE="#" - -# use to comment-out makefile lines -MAKE_NORMAL= -MAKE_STATIC= -MAKE_SHARED="#" -MAKE_DLLS="#" - -shlibdir=$libdir - -echo "$as_me:12413: checking if libtool -version-number should be used" >&5 -echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6 - -# Check whether --enable-libtool-version or --disable-libtool-version was given. -if test "${enable_libtool_version+set}" = set; then - enableval="$enable_libtool_version" - test "$enableval" != no && enableval=yes - if test "$enableval" != "yes" ; then - cf_libtool_version=no - else - cf_libtool_version=yes - fi -else - enableval=yes - cf_libtool_version=yes - -fi; -echo "$as_me:12430: result: $cf_libtool_version" >&5 -echo "${ECHO_T}$cf_libtool_version" >&6 - -if test "$cf_libtool_version" = yes ; then - LIBTOOL_VERSION="-version-number" -else - LIBTOOL_VERSION="-version-info" - case "x$VERSION" in - (x) - { echo "$as_me:12439: WARNING: VERSION was not set" >&5 -echo "$as_me: WARNING: VERSION was not set" >&2;} - ;; - (x*.*.*) - ABI_VERSION="$VERSION" - test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6 - -echo "${as_me:-configure}:12446: testing ABI_VERSION: $ABI_VERSION ..." 1>&5 - - ;; - (x*:*:*) - ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'` - test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6 - -echo "${as_me:-configure}:12453: testing ABI_VERSION: $ABI_VERSION ..." 1>&5 - - ;; - (*) - { echo "$as_me:12457: WARNING: unexpected VERSION value: $VERSION" >&5 -echo "$as_me: WARNING: unexpected VERSION value: $VERSION" >&2;} - ;; - esac -fi - -LIBTOOL= - -# common library maintenance symbols that are convenient for libtool scripts: -LIB_CREATE='${AR} -cr' -LIB_OBJECT='${OBJECTS}' -LIB_SUFFIX=.a -LIB_PREP="$RANLIB" - -# symbols used to prop libtool up to enable it to determine what it should be -# doing: -LIB_CLEAN= -LIB_COMPILE= -LIB_LINK='${CC}' -LIB_INSTALL= -LIB_UNINSTALL= - -echo "$as_me:12479: checking if you want to build libraries with libtool" >&5 -echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6 - -# Check whether --with-libtool or --without-libtool was given. -if test "${with_libtool+set}" = set; then - withval="$with_libtool" - with_libtool=$withval -else - with_libtool=no -fi; -echo "$as_me:12489: result: $with_libtool" >&5 -echo "${ECHO_T}$with_libtool" >&6 -if test "$with_libtool" != "no"; then - - if test "$with_libtool" != "yes" ; then - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$with_libtool" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval with_libtool="$with_libtool" - case ".$with_libtool" in - (.NONE/*) - with_libtool=`echo "$with_libtool" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - with_libtool=`echo "$with_libtool" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:12520: error: expected a pathname, not \"$with_libtool\"" >&5 -echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - LIBTOOL=$with_libtool - else - if test -n "$ac_tool_prefix"; then - for ac_prog in libtool glibtool - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:12533: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_LIBTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LIBTOOL"; then - ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog" -echo "$as_me:12548: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -LIBTOOL=$ac_cv_prog_LIBTOOL -if test -n "$LIBTOOL"; then - echo "$as_me:12556: result: $LIBTOOL" >&5 -echo "${ECHO_T}$LIBTOOL" >&6 -else - echo "$as_me:12559: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$LIBTOOL" && break - done -fi -if test -z "$LIBTOOL"; then - ac_ct_LIBTOOL=$LIBTOOL - for ac_prog in libtool glibtool -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:12572: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_LIBTOOL"; then - ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_LIBTOOL="$ac_prog" -echo "$as_me:12587: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL -if test -n "$ac_ct_LIBTOOL"; then - echo "$as_me:12595: result: $ac_ct_LIBTOOL" >&5 -echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 -else - echo "$as_me:12598: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_LIBTOOL" && break -done -test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" - - LIBTOOL=$ac_ct_LIBTOOL -fi - -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` -else - cf_cv_libtool_version= -fi -test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version - - if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool - then - -unset ac_cv_prog_ac_ct_LIBTOOL -unset ac_ct_LIBTOOL -unset LIBTOOL - - if test -n "$ac_tool_prefix"; then - for ac_prog in glibtool - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:12629: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_LIBTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LIBTOOL"; then - ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog" -echo "$as_me:12644: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -LIBTOOL=$ac_cv_prog_LIBTOOL -if test -n "$LIBTOOL"; then - echo "$as_me:12652: result: $LIBTOOL" >&5 -echo "${ECHO_T}$LIBTOOL" >&6 -else - echo "$as_me:12655: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$LIBTOOL" && break - done -fi -if test -z "$LIBTOOL"; then - ac_ct_LIBTOOL=$LIBTOOL - for ac_prog in glibtool -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:12668: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_LIBTOOL"; then - ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_LIBTOOL="$ac_prog" -echo "$as_me:12683: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL -if test -n "$ac_ct_LIBTOOL"; then - echo "$as_me:12691: result: $ac_ct_LIBTOOL" >&5 -echo "${ECHO_T}$ac_ct_LIBTOOL" >&6 -else - echo "$as_me:12694: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_LIBTOOL" && break -done -test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none" - - LIBTOOL=$ac_ct_LIBTOOL -fi - -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` -else - cf_cv_libtool_version= -fi -test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version - - fi - fi - if test -z "$LIBTOOL" ; then - { { echo "$as_me:12716: error: Cannot find libtool" >&5 -echo "$as_me: error: Cannot find libtool" >&2;} - { (exit 1); exit 1; }; } - fi - LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o' - LIB_OBJECT='${OBJECTS:.o=.lo}' - LIB_SUFFIX=.la - LIB_CLEAN='${LIBTOOL} --mode=clean' - LIB_COMPILE='${LIBTOOL} --mode=compile' - LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}' - LIB_INSTALL='${LIBTOOL} --mode=install' - LIB_UNINSTALL='${LIBTOOL} --mode=uninstall' - LIB_PREP=: - -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - echo "$as_me:12732: checking version of $LIBTOOL" >&5 -echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6 - -if test -n "$LIBTOOL" && test "$LIBTOOL" != none -then - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` -else - cf_cv_libtool_version= -fi -test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version - - echo "$as_me:12743: result: $cf_cv_libtool_version" >&5 -echo "${ECHO_T}$cf_cv_libtool_version" >&6 - if test -z "$cf_cv_libtool_version" ; then - { { echo "$as_me:12746: error: This is not GNU libtool" >&5 -echo "$as_me: error: This is not GNU libtool" >&2;} - { (exit 1); exit 1; }; } - fi -else - { { echo "$as_me:12751: error: GNU libtool has not been found" >&5 -echo "$as_me: error: GNU libtool has not been found" >&2;} - { (exit 1); exit 1; }; } -fi - - # special hack to add -no-undefined (which libtool should do for itself) - LT_UNDEF= - case "$cf_cv_system_name" in - (cygwin*|msys*|mingw32*|os2*|uwin*|aix[4-7]) - LT_UNDEF=-no-undefined - ;; - esac - - # special hack to add --tag option for C++ compiler - case "$cf_cv_libtool_version" in - (1.[5-9]*|[2-9].[0-9.a-z]*) - LIBTOOL_CXX="$LIBTOOL --tag=CXX" - LIBTOOL="$LIBTOOL --tag=CC" - ;; - (*) - LIBTOOL_CXX="$LIBTOOL" - ;; - esac -else - LIBTOOL="" - LIBTOOL_CXX="" -fi - -test -z "$LIBTOOL" && ECHO_LT= - -LIB_CREATE="$LIB_CREATE \$@" - -if test "$with_libtool" = "yes" ; then - OBJEXT="lo" - LIB_MODEL=libtool - DFT_LWR_MODEL=$LIB_MODEL - LIBTOOL_MAKE= - -echo "$as_me:12789: checking for additional libtool options" >&5 -echo $ECHO_N "checking for additional libtool options... $ECHO_C" >&6 - -# Check whether --with-libtool-opts or --without-libtool-opts was given. -if test "${with_libtool_opts+set}" = set; then - withval="$with_libtool_opts" - with_libtool_opts=$withval -else - with_libtool_opts=no -fi; -echo "$as_me:12799: result: $with_libtool_opts" >&5 -echo "${ECHO_T}$with_libtool_opts" >&6 - -case .$with_libtool_opts in -(.yes|.no|.) - ;; -(*) - LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts" - ;; -esac - -echo "$as_me:12810: checking if exported-symbols file should be used" >&5 -echo $ECHO_N "checking if exported-symbols file should be used... $ECHO_C" >&6 - -# Check whether --with-export-syms or --without-export-syms was given. -if test "${with_export_syms+set}" = set; then - withval="$with_export_syms" - with_export_syms=$withval -else - with_export_syms=no -fi; -if test "x$with_export_syms" = xyes -then - with_export_syms='${top_srcdir}/package/${PACKAGE}.sym' - -fi -echo "$as_me:12825: result: $with_export_syms" >&5 -echo "${ECHO_T}$with_export_syms" >&6 -if test "x$with_export_syms" != xno -then - EXPORT_SYMS="-export-symbols $with_export_syms" - -fi - - MAKE_NORMAL="#" - MAKE_STATIC="#" - MAKE_SHARED= -else - echo "$as_me:12837: checking if you want to build shared libraries" >&5 -echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6 - -# Check whether --with-shared or --without-shared was given. -if test "${with_shared+set}" = set; then - withval="$with_shared" - with_shared=$withval -else - with_shared=no -fi; - echo "$as_me:12847: result: $with_shared" >&5 -echo "${ECHO_T}$with_shared" >&6 - if test "$with_shared" = "yes" ; then - LIB_MODEL=shared - DFT_LWR_MODEL=$LIB_MODEL - - RM_SHARED_OPTS= - LOCAL_LDFLAGS= - LOCAL_LDFLAGS2= - LD_SHARED_OPTS= - INSTALL_LIB="-m 644" - : ${rel_builddir:=.} - - shlibdir=$libdir - - MAKE_DLLS="#" - - cf_cv_do_symlinks=no - cf_ld_rpath_opt= - test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT" - - echo "$as_me:12868: checking if release/abi version should be used for shared libs" >&5 -echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6 - -# Check whether --with-shlib-version or --without-shlib-version was given. -if test "${with_shlib_version+set}" = set; then - withval="$with_shlib_version" - test -z "$withval" && withval=auto - case "$withval" in - (yes) - cf_cv_shlib_version=auto - ;; - (rel|abi|auto) - cf_cv_shlib_version=$withval - ;; - (*) - echo "$as_me:12883: result: $withval" >&5 -echo "${ECHO_T}$withval" >&6 - { { echo "$as_me:12885: error: option value must be one of: rel, abi, or auto" >&5 -echo "$as_me: error: option value must be one of: rel, abi, or auto" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - -else - cf_cv_shlib_version=auto -fi; - echo "$as_me:12894: result: $cf_cv_shlib_version" >&5 -echo "${ECHO_T}$cf_cv_shlib_version" >&6 - - cf_cv_rm_so_locs=no - cf_try_cflags= - - # Some less-capable ports of gcc support only -fpic - CC_SHARED_OPTS= - - cf_try_fPIC=no - if test "$GCC" = yes - then - cf_try_fPIC=yes - else - case "$cf_cv_system_name" in - (*linux*) # e.g., PGI compiler - cf_try_fPIC=yes - ;; - esac - fi - - if test "$cf_try_fPIC" = yes - then - echo "$as_me:12917: checking which $CC option to use" >&5 -echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6 - cf_save_CFLAGS="$CFLAGS" - for CC_SHARED_OPTS in -fPIC -fpic '' - do - CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 12924 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -int x = 1 - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:12936: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:12939: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:12942: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:12945: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - done - echo "$as_me:12954: result: $CC_SHARED_OPTS" >&5 -echo "${ECHO_T}$CC_SHARED_OPTS" >&6 - CFLAGS="$cf_save_CFLAGS" - fi - - cf_cv_shlib_version_infix=no - - case "$cf_cv_system_name" in - (aix4.3-9*|aix[5-7]*) - if test "$GCC" = yes; then - CC_SHARED_OPTS='-Wl,-brtl' - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' - else - CC_SHARED_OPTS='-brtl' - # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall" - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@' - fi - ;; - (beos*) - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $@ -Xlinker -soname=`basename $@` -nostart -e 0' - ;; - (cygwin*) - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cf_cv_shlib_version=cygdll - cf_cv_shlib_version_infix=cygdll - shlibdir=$bindir - MAKE_DLLS= - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\$1 - IMPORT_LIB=\`echo "\$1" | sed -e 's/cyg/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \$SHARED_LIB - ** IMPORT_LIB \$IMPORT_LIB -EOF - exec \$* ${LDFLAGS} -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (msys*) - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cf_cv_shlib_version=msysdll - cf_cv_shlib_version_infix=msysdll - shlibdir=$bindir - MAKE_DLLS= - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\$1 - IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \$SHARED_LIB - ** IMPORT_LIB \$IMPORT_LIB -EOF - exec \$* ${LDFLAGS} -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (darwin*) - cf_try_cflags="no-cpp-precomp" - CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi - cf_cv_shlib_version_infix=yes - echo "$as_me:13025: checking if ld -search_paths_first works" >&5 -echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6 -if test "${cf_cv_ldflags_search_paths_first+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - cat >"conftest.$ac_ext" <<_ACEOF -#line 13034 "configure" -#include "confdefs.h" - -int -main (void) -{ -int i; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:13046: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:13049: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:13052: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:13055: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ldflags_search_paths_first=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_ldflags_search_paths_first=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - LDFLAGS=$cf_save_LDFLAGS -fi -echo "$as_me:13066: result: $cf_cv_ldflags_search_paths_first" >&5 -echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6 - if test "$cf_cv_ldflags_search_paths_first" = yes; then - LDFLAGS="$LDFLAGS -Wl,-search_paths_first" - fi - ;; - (hpux[7-8]*) - # HP-UX 8.07 ld lacks "+b" option used for libdir search-list - if test "$GCC" != yes; then - CC_SHARED_OPTS='+Z' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $@' - INSTALL_LIB="-m 555" - ;; - (hpux*) - # (tested with gcc 2.7.2 -- I don't have c89) - if test "$GCC" = yes; then - LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}' - else - CC_SHARED_OPTS='+Z' - LD_SHARED_OPTS='-Wl,+b,${libdir}' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $@' - # HP-UX shared libraries must be executable, and should be - # readonly to exploit a quirk in the memory manager. - INSTALL_LIB="-m 555" - ;; - (interix*) - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_shared_soname='`basename $@`' - fi - CC_SHARED_OPTS= - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@' - ;; - (irix*) - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - # tested with IRIX 5.2 and 'cc'. - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $@` -o $@' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $@` -o $@' - fi - cf_cv_rm_so_locs=yes - ;; - (linux*|gnu*|k*bsd*-gnu) - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $@`' - fi - - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' - ;; - (mingw*msvc*) - cf_cv_shlib_version=msvcdll - cf_cv_shlib_version_infix=msvcdll - shlibdir=$bindir - MAKE_DLLS= - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-link -dll" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${LD} ${CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib" - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\$1 - IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.lib/'\` - shift - my_ld=\$1 - shift - cat <<-EOF - Linking shared library - ** SHARED LIB \$SHARED_LIB - ** IMPORT_LIB \$IMPORT_LIB -EOF - args=\$(echo \$* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g") - exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args - mv "\${IMPORT_LIB}" "\${IMPORT_LIB}" -CF_EOF - chmod +x mk_shared_lib.sh - cat >mk_prog.sh <<-CF_EOF - #!$SHELL - shift - # Ignore first argument (compiler) and use LD (link.exe) unconditionally - LD="$LD" - clopts=() - ldopts=("/subsystem:console") - libs=() - isdll=0 - while test \$# -gt 0; do - case "\$1" in - -link) - # ignore -link argument - ;; - -M[TD] | -M[TD]d) - # ignore runtime-library option - ;; - -dll) - isdll=1 - ;; - -W* | -w*) - # ignore warnings - ;; - -D*) - clopts+=("\$1") - ;; - -I*) - clopts+=("\$1") - ;; - -l*) - libs+=("\`echo \"\$1\" | sed \"s/^-l//\"\`") - ;; - -L*) - ldopts+=("\`echo \"\$1\" | sed \"s/^-L/-LIBPATH:/\"\`") - ;; - *.obj | *.o) - ldopts+=("\$1") - ;; - -Wl,*) - for linkarg in \`echo '\$1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do - ldopts+=("\${linkarg}") - done - ;; - *.lib) - ldopts+=("\$1") - ;; - -o) - shift - ldopts+=("-out:\$1") - ;; - *) - clopts+=("\$1") - ldopts+=("\$1") - ;; - esac - shift - done - if [ "\$isdll" -ne 0 ]; then - for lib in \${libs[*]}; do - ldopts+=("\$lib.dll.lib") - done - else - for lib in \${libs[*]}; do - ldopts+=("\$lib.lib") - done - fi - cat <<-EOF - Creating program - ** ld options: "\${ldopts[@]}" -EOF - exec \$LD \${ldopts[@]} -CF_EOF - chmod +x mk_prog.sh - LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh" - LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh" - ;; - (mingw*) - cf_cv_shlib_version=mingw - cf_cv_shlib_version_infix=mingw - shlibdir=$bindir - MAKE_DLLS= - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,--enable-auto-import" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS= - MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}' - RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a" - cat >mk_shared_lib.sh <<-CF_EOF - #!$SHELL - SHARED_LIB=\$1 - IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\` - shift - cat <<-EOF - Linking shared library - ** SHARED_LIB \$SHARED_LIB - ** IMPORT_LIB \$IMPORT_LIB -EOF - exec \$* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB} -CF_EOF - chmod +x mk_shared_lib.sh - ;; - (openbsd[2-9].*|mirbsd*) - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $@`' - fi - - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' - ;; - (nskJ*) - CC_SHARED_OPTS= - MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $@' - ;; - (nskL*) - CC_SHARED_OPTS= - MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $@' - ;; - (nto-qnx*|openbsd*|freebsd[12].*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - (dragonfly*|freebsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then - LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - fi - - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $@`' - fi - - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@' - ;; - (netbsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then - LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS" - if test "$cf_cv_shlib_version" = auto; then - if test -f /usr/libexec/ld.elf_so; then - cf_cv_shlib_version=abi - else - cf_cv_shlib_version=rel - fi - fi - - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $@`' - fi - - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $@' - fi - ;; - (osf*|mls+*) - # tested with OSF/1 V3.2 and 'cc' - # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't - # link with shared libs). - MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $@`' - case "$host_os" in - (osf4*) - MK_SHARED_LIB="${MK_SHARED_LIB} -msym" - ;; - esac - MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@' - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - cf_cv_rm_so_locs=yes - ;; - (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98 - # tested with osr5.0.5 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-belf -KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $@ .${REL_VERSION}`.${ABI_VERSION} -o $@' - if test "$cf_cv_enable_rpath" = yes ; then - # only way is to set LD_RUN_PATH but no switch for it - RUN_PATH=$libdir - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - LINK_PROGS='LD_RUN_PATH=${libdir}' - LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib' - ;; - (sunos4*) - # tested with SunOS 4.1.1 and gcc 2.7.0 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - (solaris2*) - # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2 - # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3 - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_enable_rpath" = yes ; then - EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS" - fi - - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - if test "$cf_cv_shlib_version" = rel; then - cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}' - else - cf_cv_shared_soname='`basename $@`' - fi - - if test "$GCC" != yes; then - cf_save_CFLAGS="$CFLAGS" - for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O - do - CFLAGS="$cf_shared_opts $cf_save_CFLAGS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 13405 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello\\n"); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:13417: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:13420: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:13423: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:13426: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - done - CFLAGS="$cf_save_CFLAGS" - CC_SHARED_OPTS=$cf_shared_opts - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $@' - else - MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $@' - fi - ;; - (sysv5uw7*|unix_sv*) - # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc) - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o $@' - ;; - (*) - CC_SHARED_OPTS='unknown' - MK_SHARED_LIB='echo unknown' - ;; - esac - - # This works if the last tokens in $MK_SHARED_LIB are the -o target. - case "$cf_cv_shlib_version" in - (rel|abi) - case "$MK_SHARED_LIB" in - (*'-o $@') - test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes - ;; - (*) - { echo "$as_me:13463: WARNING: ignored --with-shlib-version" >&5 -echo "$as_me: WARNING: ignored --with-shlib-version" >&2;} - ;; - esac - ;; - esac - - if test -n "$cf_try_cflags" - then -cat > conftest.$ac_ext <<EOF -#line 13473 "${as_me:-configure}" -#include <stdio.h> -int main(int argc, char *argv[]) -{ - printf("hello\\n"); - return (argv[argc-1] == 0) ; -} -EOF - cf_save_CFLAGS="$CFLAGS" - for cf_opt in $cf_try_cflags - do - CFLAGS="$cf_save_CFLAGS -$cf_opt" - echo "$as_me:13485: checking if CFLAGS option -$cf_opt works" >&5 -echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6 - if { (eval echo "$as_me:13487: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:13490: \$? = $ac_status" >&5 - (exit "$ac_status"); }; then - echo "$as_me:13492: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - cf_save_CFLAGS="$CFLAGS" - else - echo "$as_me:13496: result: no" >&5 -echo "${ECHO_T}no" >&6 - fi - done - CFLAGS="$cf_save_CFLAGS" - fi - - # RPATH_LIST is a colon-separated list of directories - test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}" - test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}" - - test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations" - - test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6 - -echo "${as_me:-configure}:13511: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5 - - test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 - -echo "${as_me:-configure}:13515: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 - -echo "$as_me:13517: checking if versioned-symbols file should be used" >&5 -echo $ECHO_N "checking if versioned-symbols file should be used... $ECHO_C" >&6 - -# Check whether --with-versioned-syms or --without-versioned-syms was given. -if test "${with_versioned_syms+set}" = set; then - withval="$with_versioned_syms" - with_versioned_syms=$withval -else - with_versioned_syms=no -fi; -case "x$with_versioned_syms" in -(xyes) - with_versioned_syms='${top_srcdir}/package/${PACKAGE}.map' - - ;; -(xno) - ;; -(x/*) - test -f "$with_versioned_syms" || { { echo "$as_me:13535: error: expected a filename: $with_versioned_syms" >&5 -echo "$as_me: error: expected a filename: $with_versioned_syms" >&2;} - { (exit 1); exit 1; }; } - ;; -(*) - test -f "$with_versioned_syms" || { { echo "$as_me:13540: error: expected a filename: $with_versioned_syms" >&5 -echo "$as_me: error: expected a filename: $with_versioned_syms" >&2;} - { (exit 1); exit 1; }; } - with_versioned_syms=`pwd`/"$with_versioned_syms" - ;; -esac -echo "$as_me:13546: result: $with_versioned_syms" >&5 -echo "${ECHO_T}$with_versioned_syms" >&6 - -RESULTING_SYMS= -VERSIONED_SYMS= -WILDCARD_SYMS= - -if test "x$with_versioned_syms" != xno -then - RESULTING_SYMS=$with_versioned_syms - case "x$MK_SHARED_LIB" in - (*-Wl,*) - VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}" - MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\${VERSIONED_SYMS} -Wl,%"` - test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 - -echo "${as_me:-configure}:13562: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 - - ;; - (*-dy\ *) - VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}" - MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\${VERSIONED_SYMS} -dy%"` - test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6 - -echo "${as_me:-configure}:13570: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5 - - ;; - (*) - { echo "$as_me:13574: WARNING: this system does not support versioned-symbols" >&5 -echo "$as_me: WARNING: this system does not support versioned-symbols" >&2;} - ;; - esac - - # Linux ld can selectively override scope, e.g., of symbols beginning with - # "_" by first declaring some as global, and then using a wildcard to - # declare the others as local. Some other loaders cannot do this. Check - # by constructing a (very) simple shared library and inspecting its - # symbols. - if test "x$VERSIONED_SYMS" != "x" - then - echo "$as_me:13586: checking if wildcards can be used to selectively omit symbols" >&5 -echo $ECHO_N "checking if wildcards can be used to selectively omit symbols... $ECHO_C" >&6 - WILDCARD_SYMS=no - - # make sources - rm -f conftest.* - - cat >conftest.ver <<EOF -module_1.0 { -global: - globalf1; -local: - localf1; -}; -module_2.0 { -global: - globalf2; -local: - localf2; - _*; -} module_1.0; -submodule_1.0 { -global: - subglobalf1; - _ismissing; -local: - sublocalf1; -}; -submodule_2.0 { -global: - subglobalf2; -local: - sublocalf2; - _*; -} submodule_1.0; -EOF - cat >conftest.$ac_ext <<EOF -#line 13623 "configure" -int _ismissing(void) { return 1; } -int _localf1(void) { return 1; } -int _localf2(void) { return 2; } -int globalf1(void) { return 1; } -int globalf2(void) { return 2; } -int _sublocalf1(void) { return 1; } -int _sublocalf2(void) { return 2; } -int subglobalf1(void) { return 1; } -int subglobalf2(void) { return 2; } -EOF - cat >conftest.mk <<EOF -CC=${CC} -CFLAGS=${CFLAGS} -CPPFLAGS=${CPPFLAGS} -LDFLAGS=${LDFLAGS} -LIBS=${LIBS} -VERSIONED_SYMS=${VERSIONED_SYMS} -RESULTING_SYMS=conftest.ver -MK_SHARED_LIB=${MK_SHARED_LIB} -conftest.so: conftest.$ac_cv_objext - \$(MK_SHARED_LIB) conftest.$ac_cv_objext -EOF - - # compile source, make library - if make -f conftest.mk 2>&5 >/dev/null - then - # test for missing symbol in either Data or Text section - cf_missing="`nm -P conftest.so 2>&5 |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[ ][DT][ ]'`" - test -n "$cf_missing" && WILDCARD_SYMS=yes - fi - echo "$as_me:13654: result: $WILDCARD_SYMS" >&5 -echo "${ECHO_T}$WILDCARD_SYMS" >&6 - rm -f conftest.* - fi -fi - - LIB_PREP=: - LIB_CREATE="$MK_SHARED_LIB" - CFLAGS="$CFLAGS $CC_SHARED_OPTS" - MAKE_NORMAL="#" - MAKE_STATIC="#" - MAKE_SHARED= - fi -fi - -LIB_SUFFIX= - - case X$LIB_MODEL in - (Xlibtool) - DFT_LIB_SUFFIX='.la' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (Xdebug) - case "$cf_cv_system_name" in - (*-msvc*) - DFT_LIB_SUFFIX='_g.lib' - ;; - (*) - DFT_LIB_SUFFIX='_g.a' - ;; - esac - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (Xprofile) - case "$cf_cv_system_name" in - (*-msvc*) - DFT_LIB_SUFFIX='_p.lib' - ;; - (*) - DFT_LIB_SUFFIX='_p.a' - ;; - esac - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (Xshared) - case "$cf_cv_system_name" in - (aix[5-7]*) - DFT_LIB_SUFFIX='.so' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (*-msvc*) - DFT_LIB_SUFFIX='.dll' - DFT_DEP_SUFFIX='.dll.lib' - ;; - (cygwin*|msys*|mingw*) - DFT_LIB_SUFFIX='.dll' - DFT_DEP_SUFFIX='.dll.a' - ;; - (darwin*) - DFT_LIB_SUFFIX='.dylib' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (hpux*) - case "$target" in - (ia64*) - DFT_LIB_SUFFIX='.so' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - (*) - DFT_LIB_SUFFIX='.sl' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - esac - ;; - (*) - DFT_LIB_SUFFIX='.so' - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - esac - ;; - (*) - case "$target" in - (*-msvc*) - DFT_LIB_SUFFIX='.lib' - ;; - (*) - DFT_LIB_SUFFIX='.a' - ;; - esac - DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX - ;; - esac - if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}" - then - DFT_LIB_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_LIB_SUFFIX}" - DFT_DEP_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}${DFT_DEP_SUFFIX}" - fi - -LIB_SUFFIX=$DFT_LIB_SUFFIX - -echo "$as_me:13754: checking for specific curses-directory" >&5 -echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6 - -# Check whether --with-curses-dir or --without-curses-dir was given. -if test "${with_curses_dir+set}" = set; then - withval="$with_curses_dir" - cf_cv_curses_dir=$withval -else - cf_cv_curses_dir=no -fi; -echo "$as_me:13764: result: $cf_cv_curses_dir" >&5 -echo "${ECHO_T}$cf_cv_curses_dir" >&6 - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$withval" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval withval="$withval" - case ".$withval" in - (.NONE/*) - withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:13795: error: expected a pathname, not \"$withval\"" >&5 -echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - if test -d "$cf_cv_curses_dir" - then - -if test -n "$cf_cv_curses_dir/include" ; then - for cf_add_incdir in $cf_cv_curses_dir/include - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 13831 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:13843: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:13846: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:13849: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:13852: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:13869: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -if test -n "$cf_cv_curses_dir/lib" ; then - for cf_add_libdir in $cf_cv_curses_dir/lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:13905: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - fi -fi - -echo "$as_me:13916: checking for specific curses-directory" >&5 -echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6 - -# Check whether --with-curses-dir or --without-curses-dir was given. -if test "${with_curses_dir+set}" = set; then - withval="$with_curses_dir" - cf_cv_curses_dir=$withval -else - cf_cv_curses_dir=no -fi; -echo "$as_me:13926: result: $cf_cv_curses_dir" >&5 -echo "${ECHO_T}$cf_cv_curses_dir" >&6 - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - -if test "x$prefix" != xNONE; then - cf_path_syntax="$prefix" -else - cf_path_syntax="$ac_default_prefix" -fi - -case ".$withval" in -(.\$\(*\)*|.\'*\'*) - ;; -(..|./*|.\\*) - ;; -(.[a-zA-Z]:[\\/]*) # OS/2 EMX - ;; -(.\$\{*prefix\}*|.\$\{*dir\}*) - eval withval="$withval" - case ".$withval" in - (.NONE/*) - withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%` - ;; - esac - ;; -(.no|.NONE/*) - withval=`echo "$withval" | sed -e s%NONE%$cf_path_syntax%` - ;; -(*) - { { echo "$as_me:13957: error: expected a pathname, not \"$withval\"" >&5 -echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - if test -d "$cf_cv_curses_dir" - then - -if test -n "$cf_cv_curses_dir/include" ; then - for cf_add_incdir in $cf_cv_curses_dir/include - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 13993 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:14005: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:14008: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:14011: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14014: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:14031: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -if test -n "$cf_cv_curses_dir/lib" ; then - for cf_add_libdir in $cf_cv_curses_dir/lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:14067: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - fi -fi - -cf_cv_screen=curses - -echo "$as_me:14080: checking for specified curses library type" >&5 -echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6 - -# Check whether --with-screen or --without-screen was given. -if test "${with_screen+set}" = set; then - withval="$with_screen" - cf_cv_screen=$withval -else - -# Check whether --with-ncursesw or --without-ncursesw was given. -if test "${with_ncursesw+set}" = set; then - withval="$with_ncursesw" - cf_cv_screen=ncursesw -else - -# Check whether --with-ncurses or --without-ncurses was given. -if test "${with_ncurses+set}" = set; then - withval="$with_ncurses" - cf_cv_screen=ncurses -else - -# Check whether --with-pdcurses or --without-pdcurses was given. -if test "${with_pdcurses+set}" = set; then - withval="$with_pdcurses" - cf_cv_screen=pdcurses -else - -# Check whether --with-curses-colr or --without-curses-colr was given. -if test "${with_curses_colr+set}" = set; then - withval="$with_curses_colr" - cf_cv_screen=curses_colr -else - -# Check whether --with-curses-5lib or --without-curses-5lib was given. -if test "${with_curses_5lib+set}" = set; then - withval="$with_curses_5lib" - cf_cv_screen=curses_5lib -fi; -fi; -fi; -fi; -fi; -fi; - -echo "$as_me:14124: result: $cf_cv_screen" >&5 -echo "${ECHO_T}$cf_cv_screen" >&6 - -case $cf_cv_screen in -(curses|curses_*) - -echo "$as_me:14130: checking for extra include directories" >&5 -echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6 -if test "${cf_cv_curses_incdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_curses_incdir=no -case "$host_os" in -(hpux10.*) - if test "x$cf_cv_screen" = "xcurses_colr" - then - test -d /usr/include/curses_colr && \ - cf_cv_curses_incdir="-I/usr/include/curses_colr" - fi - ;; -(sunos3*|sunos4*) - if test "x$cf_cv_screen" = "xcurses_5lib" - then - test -d /usr/5lib && \ - test -d /usr/5include && \ - cf_cv_curses_incdir="-I/usr/5include" - fi - ;; -esac - -fi -echo "$as_me:14156: result: $cf_cv_curses_incdir" >&5 -echo "${ECHO_T}$cf_cv_curses_incdir" >&6 -if test "$cf_cv_curses_incdir" != no -then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_cv_curses_incdir" - -fi - -echo "$as_me:14166: checking if we have identified curses headers" >&5 -echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 -if test "${cf_cv_ncurses_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_ncurses_header=none -for cf_header in \ - ncurses.h \ - curses.h ncurses/ncurses.h ncurses/curses.h -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 14178 "configure" -#include "confdefs.h" -#include <${cf_header}> -int -main (void) -{ -initscr(); tgoto("?", 0,0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:14190: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:14193: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:14196: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14199: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_header=$cf_header; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -fi -echo "$as_me:14210: result: $cf_cv_ncurses_header" >&5 -echo "${ECHO_T}$cf_cv_ncurses_header" >&6 - -if test "$cf_cv_ncurses_header" = none ; then - { { echo "$as_me:14214: error: No curses header-files found" >&5 -echo "$as_me: error: No curses header-files found" >&2;} - { (exit 1); exit 1; }; } -fi - -# cheat, to get the right #define's for HAVE_NCURSES_H, etc. - -for ac_header in $cf_cv_ncurses_header -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:14224: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 14230 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:14234: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:14240: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:14259: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -echo "$as_me:14269: checking for terminfo header" >&5 -echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 14287 "configure" -#include "confdefs.h" -#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> - -int -main (void) -{ -int x = auto_left_margin; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:14302: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:14305: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:14308: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14311: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_term_header="$cf_test" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_term_header=unknown - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - test "$cf_cv_term_header" != unknown && break -done - -fi -echo "$as_me:14327: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - -echo "$as_me:14359: checking for ncurses version" >&5 -echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 -if test "${cf_cv_ncurses_version+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_ncurses_version=no - cf_tempfile=out$$ - rm -f "$cf_tempfile" - if test "$cross_compiling" = yes; then - - # This will not work if the preprocessor splits the line after the - # Autoconf token. The 'unproto' program does that. - cat > "conftest.$ac_ext" <<EOF -#include <${cf_cv_ncurses_header:-curses.h}> -#undef Autoconf -#ifdef NCURSES_VERSION -Autoconf NCURSES_VERSION -#else -#ifdef __NCURSES_H -Autoconf "old" -#endif -; -#endif -EOF - cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo "$as_me:14385: \"$cf_try\"") >&5 - (eval $cf_try) 2>&5 - ac_status=$? - echo "$as_me:14388: \$? = $ac_status" >&5 - (exit "$ac_status"); } - if test -f conftest.out ; then - cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out` - test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" - rm -f conftest.out - fi - -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 14398 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#include <stdio.h> -int main(void) -{ - FILE *fp = fopen("$cf_tempfile", "w"); -#ifdef NCURSES_VERSION -# ifdef NCURSES_VERSION_PATCH - fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); -# else - fprintf(fp, "%s\\n", NCURSES_VERSION); -# endif -#else -# ifdef __NCURSES_H - fprintf(fp, "old\\n"); -# else - make an error -# endif -#endif - ${cf_cv_main_return:-return}(0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:14423: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14426: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:14428: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14431: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_ncurses_version=`cat $cf_tempfile` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi - rm -f "$cf_tempfile" - -fi -echo "$as_me:14445: result: $cf_cv_ncurses_version" >&5 -echo "${ECHO_T}$cf_cv_ncurses_version" >&6 -test "$cf_cv_ncurses_version" = no || -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -echo "$as_me:14452: checking if we have identified curses libraries" >&5 -echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6 -cat >"conftest.$ac_ext" <<_ACEOF -#line 14455 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); tgoto("?", 0,0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14467: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14470: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14473: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14476: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -echo "$as_me:14485: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - -if test "$cf_result" = no ; then -case "$host_os" in -(freebsd*) - echo "$as_me:14491: checking for tgoto in -lmytinfo" >&5 -echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 -if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmytinfo $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 14499 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgoto (); -int -main (void) -{ -tgoto (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14518: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14521: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14524: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14527: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_mytinfo_tgoto=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_mytinfo_tgoto=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:14538: result: $ac_cv_lib_mytinfo_tgoto" >&5 -echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 -if test "$ac_cv_lib_mytinfo_tgoto" = yes; then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lmytinfo; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - - ;; -(hpux10.*) - # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr - # next (1998), and xcurses "newer" (2000). There is no header file for - # Hcurses; the subdirectory curses_colr has the headers (curses.h and - # term.h) for cur_colr - if test "x$cf_cv_screen" = "xcurses_colr" - then - echo "$as_me:14568: checking for initscr in -lcur_colr" >&5 -echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6 -if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcur_colr $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 14576 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (); -int -main (void) -{ -initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14595: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14598: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14601: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14604: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_cur_colr_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_cur_colr_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:14615: result: $ac_cv_lib_cur_colr_initscr" >&5 -echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6 -if test "$ac_cv_lib_cur_colr_initscr" = yes; then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lcur_colr; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - ac_cv_func_initscr=yes - -else - - echo "$as_me:14639: checking for initscr in -lHcurses" >&5 -echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6 -if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lHcurses $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 14647 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (); -int -main (void) -{ -initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14666: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14669: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14672: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14675: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_Hcurses_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_Hcurses_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:14686: result: $ac_cv_lib_Hcurses_initscr" >&5 -echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6 -if test "$ac_cv_lib_Hcurses_initscr" = yes; then - - # HP's header uses __HP_CURSES, but user claims _HP_CURSES. - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lHcurses; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D__HP_CURSES -D_HP_CURSES" - - ac_cv_func_initscr=yes - -fi - -fi - - fi - ;; -(linux*) - case `arch 2>/dev/null` in - (x86_64) - if test -d /lib64 - then - -if test -n "/lib64" ; then - for cf_add_libdir in /lib64 - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:14744: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - else - -if test -n "/lib" ; then - for cf_add_libdir in /lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:14773: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - fi - ;; - (*) - -if test -n "/lib" ; then - for cf_add_libdir in /lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:14804: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - ;; - esac - ;; -(sunos3*|sunos4*) - if test "x$cf_cv_screen" = "xcurses_5lib" - then - if test -d /usr/5lib ; then - -if test -n "/usr/5lib" ; then - for cf_add_libdir in /usr/5lib - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:14839: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lcurses -ltermcap; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - fi - fi - ac_cv_func_initscr=yes - ;; -esac - -if test ".$ac_cv_func_initscr" != .yes ; then - cf_save_LIBS="$LIBS" - - if test ".${cf_cv_ncurses_version:-no}" != .no - then - cf_check_list="ncurses curses cursesX" - else - cf_check_list="cursesX curses ncurses" - fi - - # Check for library containing tgoto. Do this before curses library - # because it may be needed to link the test-case for initscr. - if test "x$cf_term_lib" = x - then - echo "$as_me:14883: checking for tgoto" >&5 -echo $ECHO_N "checking for tgoto... $ECHO_C" >&6 -if test "${ac_cv_func_tgoto+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 14889 "configure" -#include "confdefs.h" -#define tgoto autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef tgoto - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgoto (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_tgoto) || defined (__stub___tgoto) -#error found stub for tgoto -#endif - - return tgoto (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14920: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14923: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14926: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14929: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_tgoto=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_tgoto=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:14939: result: $ac_cv_func_tgoto" >&5 -echo "${ECHO_T}$ac_cv_func_tgoto" >&6 -if test "$ac_cv_func_tgoto" = yes; then - cf_term_lib=predefined -else - - for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown - do - as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh` -echo "$as_me:14948: checking for tgoto in -l$cf_term_lib" >&5 -echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Lib+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$cf_term_lib $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 14956 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgoto (); -int -main (void) -{ -tgoto (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:14975: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:14978: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:14981: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:14984: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_Lib=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_Lib=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:14995: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then - - : "${cf_nculib_root:=$cf_term_lib}" - break - -fi - - done - -fi - - fi - - # Check for library containing initscr - test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS" - if test "x$cf_curs_lib" = x - then - for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown - do - LIBS="-l$cf_curs_lib $cf_save_LIBS" - if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then - echo "$as_me:15018: checking if we can link with $cf_curs_lib library" >&5 -echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 15021 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15033: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15036: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15039: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15042: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:15051: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - test "$cf_result" = yes && break - elif test "$cf_curs_lib" = "$cf_term_lib" ; then - cf_result=no - elif test "$cf_term_lib" != predefined ; then - echo "$as_me:15057: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 -echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 15060 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); tgoto((char *)0, 0, 0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15072: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15075: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15078: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15081: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 15090 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15102: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15105: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15108: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15111: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=error -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:15123: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - test "$cf_result" != error && break - fi - done - fi - test "$cf_curs_lib" = unknown && { { echo "$as_me:15129: error: no curses library found" >&5 -echo "$as_me: error: no curses library found" >&2;} - { (exit 1); exit 1; }; } -fi -fi - - ;; -(ncursesw*) - -echo "$as_me:15138: checking for multibyte character support" >&5 -echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6 -if test "${cf_cv_utf8_lib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_save_LIBS="$LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 15146 "configure" -#include "confdefs.h" - -#include <stdlib.h> -int -main (void) -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15159: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15162: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15165: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15168: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_utf8_lib=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - -# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these -# will be set on completion of the AC_TRY_LINK below. -cf_cv_header_path_utf8= -cf_cv_library_path_utf8= - -echo "${as_me:-configure}:15180: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 - -cf_save_LIBS="$LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 15185 "configure" -#include "confdefs.h" - -#include <libutf8.h> -int -main (void) -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15198: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15201: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15204: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15207: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_utf8=yes - cf_cv_header_path_utf8=/usr/include - cf_cv_library_path_utf8=/usr/lib - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - -LIBS="-lutf8 $cf_save_LIBS" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 15221 "configure" -#include "confdefs.h" - -#include <libutf8.h> -int -main (void) -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15234: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15237: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15240: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15243: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_find_linkage_utf8=yes - cf_cv_header_path_utf8=/usr/include - cf_cv_library_path_utf8=/usr/lib - cf_cv_library_file_utf8="-lutf8" - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_find_linkage_utf8=no - LIBS="$cf_save_LIBS" - - test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 - -echo "${as_me:-configure}:15260: testing find linkage for utf8 library ..." 1>&5 - -echo "${as_me:-configure}:15262: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 - - cf_save_CPPFLAGS="$CPPFLAGS" - cf_test_CPPFLAGS="$CPPFLAGS" - -cf_search= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - -test "x$cf_header_path" != "xNONE" && \ -test -d "$cf_header_path" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" - test -d "$cf_header_path/include" && cf_search="$cf_search $cf_header_path/include" - test -d "$cf_header_path/include/utf8" && cf_search="$cf_search $cf_header_path/include/utf8" - test -d "$cf_header_path/include/utf8/include" && cf_search="$cf_search $cf_header_path/include/utf8/include" - test -d "$cf_header_path/utf8/include" && cf_search="$cf_search $cf_header_path/utf8/include" - test -d "$cf_header_path/utf8/include/utf8" && cf_search="$cf_search $cf_header_path/utf8/include/utf8" -} - - cf_header_path_list="$cf_header_path_list $cf_search" - ;; - esac - done -fi - -# add the variations for the package we are looking for - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $prefix" - test -d "$prefix/include" && cf_search="$cf_search $prefix/include" - test -d "$prefix/include/utf8" && cf_search="$cf_search $prefix/include/utf8" - test -d "$prefix/include/utf8/include" && cf_search="$cf_search $prefix/include/utf8/include" - test -d "$prefix/utf8/include" && cf_search="$cf_search $prefix/utf8/include" - test -d "$prefix/utf8/include/utf8" && cf_search="$cf_search $prefix/utf8/include/utf8" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/include" && cf_search="$cf_search $cf_subdir_prefix/include" - test -d "$cf_subdir_prefix/include/utf8" && cf_search="$cf_search $cf_subdir_prefix/include/utf8" - test -d "$cf_subdir_prefix/include/utf8/include" && cf_search="$cf_search $cf_subdir_prefix/include/utf8/include" - test -d "$cf_subdir_prefix/utf8/include" && cf_search="$cf_search $cf_subdir_prefix/utf8/include" - test -d "$cf_subdir_prefix/utf8/include/utf8" && cf_search="$cf_search $cf_subdir_prefix/utf8/include/utf8" -} - -done - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && cf_search="$cf_search $includedir" - test -d "$includedir/utf8" && cf_search="$cf_search $includedir/utf8" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && cf_search="$cf_search $oldincludedir" - test -d "$oldincludedir/utf8" && cf_search="$cf_search $oldincludedir/utf8" -} - -cf_search="$cf_search $cf_header_path_list" - - for cf_cv_header_path_utf8 in $cf_search - do - if test -d "$cf_cv_header_path_utf8" ; then - test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6 - -echo "${as_me:-configure}:15353: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_cv_header_path_utf8" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 15361 "configure" -#include "confdefs.h" - -#include <libutf8.h> -int -main (void) -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:15374: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:15377: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:15380: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15383: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6 - -echo "${as_me:-configure}:15388: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 - - cf_cv_find_linkage_utf8=maybe - cf_test_CPPFLAGS="$CPPFLAGS" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - fi - done - - if test "$cf_cv_find_linkage_utf8" = maybe ; then - -echo "${as_me:-configure}:15406: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 - - cf_save_LIBS="$LIBS" - cf_save_LDFLAGS="$LDFLAGS" - - if test "$cf_cv_find_linkage_utf8" != yes ; then - -cf_search= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - -test "x$cf_library_path" != "xNONE" && \ -test -d "$cf_library_path" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" - test -d "$cf_library_path/lib" && cf_search="$cf_search $cf_library_path/lib" - test -d "$cf_library_path/lib/utf8" && cf_search="$cf_search $cf_library_path/lib/utf8" - test -d "$cf_library_path/lib/utf8/lib" && cf_search="$cf_search $cf_library_path/lib/utf8/lib" - test -d "$cf_library_path/utf8/lib" && cf_search="$cf_search $cf_library_path/utf8/lib" - test -d "$cf_library_path/utf8/lib/utf8" && cf_search="$cf_search $cf_library_path/utf8/lib/utf8" -} - - cf_library_path_list="$cf_library_path_list $cf_search" - ;; - esac - done -fi - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $prefix" - test -d "$prefix/lib" && cf_search="$cf_search $prefix/lib" - test -d "$prefix/lib/utf8" && cf_search="$cf_search $prefix/lib/utf8" - test -d "$prefix/lib/utf8/lib" && cf_search="$cf_search $prefix/lib/utf8/lib" - test -d "$prefix/utf8/lib" && cf_search="$cf_search $prefix/utf8/lib" - test -d "$prefix/utf8/lib/utf8" && cf_search="$cf_search $prefix/utf8/lib/utf8" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/lib" && cf_search="$cf_search $cf_subdir_prefix/lib" - test -d "$cf_subdir_prefix/lib/utf8" && cf_search="$cf_search $cf_subdir_prefix/lib/utf8" - test -d "$cf_subdir_prefix/lib/utf8/lib" && cf_search="$cf_search $cf_subdir_prefix/lib/utf8/lib" - test -d "$cf_subdir_prefix/utf8/lib" && cf_search="$cf_search $cf_subdir_prefix/utf8/lib" - test -d "$cf_subdir_prefix/utf8/lib/utf8" && cf_search="$cf_search $cf_subdir_prefix/utf8/lib/utf8" -} - -done - -cf_search="$cf_library_path_list $cf_search" - - for cf_cv_library_path_utf8 in $cf_search - do - if test -d "$cf_cv_library_path_utf8" ; then - test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6 - -echo "${as_me:-configure}:15481: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5 - - CPPFLAGS="$cf_test_CPPFLAGS" - LIBS="-lutf8 $cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8" - cat >"conftest.$ac_ext" <<_ACEOF -#line 15487 "configure" -#include "confdefs.h" - -#include <libutf8.h> -int -main (void) -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15500: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15503: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15506: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15509: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6 - -echo "${as_me:-configure}:15514: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5 - - cf_cv_find_linkage_utf8=yes - cf_cv_library_file_utf8="-lutf8" - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - LDFLAGS="$cf_save_LDFLAGS" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - done - CPPFLAGS="$cf_save_CPPFLAGS" - LDFLAGS="$cf_save_LDFLAGS" - fi - - else - cf_cv_find_linkage_utf8=no - fi - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -LIBS="$cf_save_LIBS" - -if test "$cf_cv_find_linkage_utf8" = yes ; then -cf_cv_utf8_lib=add-on -else -cf_cv_utf8_lib=no -fi - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:15556: result: $cf_cv_utf8_lib" >&5 -echo "${ECHO_T}$cf_cv_utf8_lib" >&6 - -# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between -# ncurses/ncursesw: -if test "$cf_cv_utf8_lib" = "add-on" ; then - -cat >>confdefs.h <<\EOF -#define HAVE_LIBUTF8_H 1 -EOF - -if test -n "$cf_cv_header_path_utf8" ; then - for cf_add_incdir in $cf_cv_header_path_utf8 - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 15594 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:15606: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:15609: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:15612: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15615: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:15632: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -if test -n "$cf_cv_library_path_utf8" ; then - for cf_add_libdir in $cf_cv_library_path_utf8 - do - if test "$cf_add_libdir" = /usr/lib ; then - : - elif test -d "$cf_add_libdir" - then - cf_have_libdir=no - if test -n "$LDFLAGS$LIBS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_libdir in $LDFLAGS $LIBS ; do - if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then - cf_have_libdir=yes; break - fi - done - fi - if test "$cf_have_libdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6 - -echo "${as_me:-configure}:15668: testing adding $cf_add_libdir to library-path ..." 1>&5 - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_cv_library_file_utf8; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -cf_ncuconfig_root=$cf_cv_screen -cf_have_ncuconfig=no - -if test "x${PKG_CONFIG:=none}" != xnone; then - echo "$as_me:15698: checking pkg-config for $cf_ncuconfig_root" >&5 -echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6 - if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then - echo "$as_me:15701: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - - echo "$as_me:15704: checking if the $cf_ncuconfig_root package files work" >&5 -echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6 - cf_have_ncuconfig=unknown - - cf_save_CFLAGS="$CFLAGS" - cf_save_CPPFLAGS="$CPPFLAGS" - cf_save_LIBS="$LIBS" - - cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`" - cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`" - - # while -W for passing linker flags is prevalent, it is not "standard". - # At least one wrapper for c89/c99 (in Apple's xcode) has its own - # incompatible _and_ non-standard -W option which gives an error. Work - # around that pitfall. - case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in - (x*c[89]9@@*-W*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkg_cflags -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkg_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 15837 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:15849: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15852: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:15855: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15858: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - if test "$cross_compiling" = yes; then - cf_test_ncuconfig=maybe -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 15864 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); } -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:15871: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:15874: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:15876: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:15879: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_test_ncuconfig=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_test_ncuconfig=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_test_ncuconfig=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - - if test "x$cf_test_ncuconfig" != xyes; then - cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[^ ]*//g'` - cf_pkg_cflags="$cf_temp" - cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[^ ]*//g'` - cf_pkg_libs="$cf_temp" - fi - ;; - esac - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkg_cflags -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkg_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16025 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:16037: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:16040: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:16043: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16046: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - if test "$cross_compiling" = yes; then - cf_have_ncuconfig=maybe -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 16052 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); } -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:16059: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:16062: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:16064: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16067: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_have_ncuconfig=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_ncuconfig=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_ncuconfig=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:16084: result: $cf_have_ncuconfig" >&5 -echo "${ECHO_T}$cf_have_ncuconfig" >&6 - test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes - if test "$cf_have_ncuconfig" != "yes" - then - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - NCURSES_CONFIG_PKG=none - else - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - - NCURSES_CONFIG_PKG=$cf_ncuconfig_root - -echo "$as_me:16100: checking for terminfo header" >&5 -echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 16118 "configure" -#include "confdefs.h" -#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> - -int -main (void) -{ -int x = auto_left_margin; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16133: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16136: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16139: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16142: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_term_header="$cf_test" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_term_header=unknown - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - test "$cf_cv_term_header" != unknown && break -done - -fi -echo "$as_me:16158: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - - fi - - else - echo "$as_me:16193: result: no" >&5 -echo "${ECHO_T}no" >&6 - NCURSES_CONFIG_PKG=none - fi -else - NCURSES_CONFIG_PKG=none -fi - -if test "x$cf_have_ncuconfig" = "xno"; then - cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}" - -if test -n "$ac_tool_prefix"; then - for ac_prog in ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:16209: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NCURSES_CONFIG"; then - ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" -echo "$as_me:16224: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG -if test -n "$NCURSES_CONFIG"; then - echo "$as_me:16232: result: $NCURSES_CONFIG" >&5 -echo "${ECHO_T}$NCURSES_CONFIG" >&6 -else - echo "$as_me:16235: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$NCURSES_CONFIG" && break - done -fi -if test -z "$NCURSES_CONFIG"; then - ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG - for ac_prog in ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:16248: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_NCURSES_CONFIG"; then - ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog" -echo "$as_me:16263: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG -if test -n "$ac_ct_NCURSES_CONFIG"; then - echo "$as_me:16271: result: $ac_ct_NCURSES_CONFIG" >&5 -echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 -else - echo "$as_me:16274: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_NCURSES_CONFIG" && break -done -test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" - - NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG -fi - - if test "$NCURSES_CONFIG" != none ; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in `$NCURSES_CONFIG --cflags` -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in `$NCURSES_CONFIG --libs`; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - # even with config script, some packages use no-override for curses.h - -echo "$as_me:16403: checking if we have identified curses headers" >&5 -echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 -if test "${cf_cv_ncurses_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_ncurses_header=none -for cf_header in \ - ncurses.h $cf_cv_screen/ncurses.h \ - curses.h $cf_cv_screen/curses.h -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 16415 "configure" -#include "confdefs.h" -#include <${cf_header}> -int -main (void) -{ -initscr(); tgoto("?", 0,0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16427: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16430: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16433: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16436: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_header=$cf_header; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -fi -echo "$as_me:16447: result: $cf_cv_ncurses_header" >&5 -echo "${ECHO_T}$cf_cv_ncurses_header" >&6 - -if test "$cf_cv_ncurses_header" = none ; then - { { echo "$as_me:16451: error: No curses header-files found" >&5 -echo "$as_me: error: No curses header-files found" >&2;} - { (exit 1); exit 1; }; } -fi - -# cheat, to get the right #define's for HAVE_NCURSES_H, etc. - -for ac_header in $cf_cv_ncurses_header -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:16461: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 16467 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:16471: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:16477: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:16496: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <<EOF -#define $cf_nculib_ROOT 1 -EOF - - cf_cv_ncurses_version="`$NCURSES_CONFIG --version`" - - else - -cf_ncuhdr_root=$cf_cv_screen - -test -n "$cf_cv_curses_dir" && \ -test "$cf_cv_curses_dir" != "no" && { \ - -if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then - for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16552 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16564: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16567: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16570: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16573: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:16590: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -} - -echo "$as_me:16609: checking for $cf_ncuhdr_root header in include-path" >&5 -echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 -if test "${cf_cv_ncurses_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h" - { test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h" - for cf_header in $cf_header_list - do - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16621 "configure" -#include "confdefs.h" - -#include <$cf_header> -int -main (void) -{ - -#ifdef NCURSES_VERSION - -printf("%s\\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\\n"); -#else - make an error -#endif -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16645: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16648: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16651: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16654: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_h=$cf_header - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_ncurses_h=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - - test "$cf_cv_ncurses_h" != no && break - done - -fi -echo "$as_me:16669: result: $cf_cv_ncurses_h" >&5 -echo "${ECHO_T}$cf_cv_ncurses_h" >&6 - -if test "$cf_cv_ncurses_h" != no ; then - cf_cv_ncurses_header=$cf_cv_ncurses_h -else - -echo "$as_me:16676: checking for $cf_ncuhdr_root include-path" >&5 -echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 -if test "${cf_cv_ncurses_h2+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - test -n "$verbose" && echo - -cf_search= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - -test "x$cf_header_path" != "xNONE" && \ -test -d "$cf_header_path" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" - test -d "$cf_header_path/include" && cf_search="$cf_search $cf_header_path/include" - test -d "$cf_header_path/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root" - test -d "$cf_header_path/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include" - test -d "$cf_header_path/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include" - test -d "$cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - - cf_header_path_list="$cf_header_path_list $cf_search" - ;; - esac - done -fi - -# add the variations for the package we are looking for - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $prefix" - test -d "$prefix/include" && cf_search="$cf_search $prefix/include" - test -d "$prefix/include/$cf_ncuhdr_root" && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root" - test -d "$prefix/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include" - test -d "$prefix/$cf_ncuhdr_root/include" && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include" - test -d "$prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/include" && cf_search="$cf_search $cf_subdir_prefix/include" - test -d "$cf_subdir_prefix/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root" - test -d "$cf_subdir_prefix/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include" - test -d "$cf_subdir_prefix/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include" - test -d "$cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - -done - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && cf_search="$cf_search $includedir" - test -d "$includedir/$cf_ncuhdr_root" && cf_search="$cf_search $includedir/$cf_ncuhdr_root" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && cf_search="$cf_search $oldincludedir" - test -d "$oldincludedir/$cf_ncuhdr_root" && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root" -} - -cf_search="$cf_search $cf_header_path_list" - - test -n "$verbose" && echo "search path $cf_search" - cf_save2_CPPFLAGS="$CPPFLAGS" - for cf_incdir in $cf_search - do - -if test -n "$cf_incdir" ; then - for cf_add_incdir in $cf_incdir - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16797 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16812: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16815: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16818: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:16835: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - for cf_header in \ - ncurses.h \ - curses.h - do - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16858 "configure" -#include "confdefs.h" - -#include <$cf_header> -int -main (void) -{ - -#ifdef NCURSES_VERSION - -printf("%s\\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\\n"); -#else - make an error -#endif -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16882: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16885: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16888: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16891: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_h2=$cf_header - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_ncurses_h2=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - - if test "$cf_cv_ncurses_h2" != no ; then - cf_cv_ncurses_h2=$cf_incdir/$cf_header - test -n "$verbose" && echo $ECHO_N " ... found $ECHO_C" 1>&6 - break - fi - test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6 - done - CPPFLAGS="$cf_save2_CPPFLAGS" - test "$cf_cv_ncurses_h2" != no && break - done - test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:16912: error: not found" >&5 -echo "$as_me: error: not found" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:16917: result: $cf_cv_ncurses_h2" >&5 -echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 - - cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'` - cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`" - if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then - cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header" - fi - -if test -n "$cf_1st_incdir" ; then - for cf_add_incdir in $cf_1st_incdir - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 16953 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:16965: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:16968: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:16971: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:16974: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:16991: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -fi - -# Set definitions to allow ifdef'ing for ncurses.h - -case "$cf_cv_ncurses_header" in -(*ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_H 1 -EOF - - ;; -esac - -case "$cf_cv_ncurses_header" in -(ncurses/curses.h|ncurses/ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_NCURSES_H 1 -EOF - - ;; -(ncursesw/curses.h|ncursesw/ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_NCURSES_H 1 -EOF - - ;; -esac - -echo "$as_me:17039: checking for terminfo header" >&5 -echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 17057 "configure" -#include "confdefs.h" -#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> - -int -main (void) -{ -int x = auto_left_margin; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:17072: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:17075: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:17078: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17081: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_term_header="$cf_test" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_term_header=unknown - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - test "$cf_cv_term_header" != unknown && break -done - -fi -echo "$as_me:17097: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - -# some applications need this, but should check for NCURSES_VERSION - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -echo "$as_me:17135: checking for ncurses version" >&5 -echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 -if test "${cf_cv_ncurses_version+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_ncurses_version=no - cf_tempfile=out$$ - rm -f "$cf_tempfile" - if test "$cross_compiling" = yes; then - - # This will not work if the preprocessor splits the line after the - # Autoconf token. The 'unproto' program does that. - cat > "conftest.$ac_ext" <<EOF -#include <${cf_cv_ncurses_header:-curses.h}> -#undef Autoconf -#ifdef NCURSES_VERSION -Autoconf NCURSES_VERSION -#else -#ifdef __NCURSES_H -Autoconf "old" -#endif -; -#endif -EOF - cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo "$as_me:17161: \"$cf_try\"") >&5 - (eval $cf_try) 2>&5 - ac_status=$? - echo "$as_me:17164: \$? = $ac_status" >&5 - (exit "$ac_status"); } - if test -f conftest.out ; then - cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out` - test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" - rm -f conftest.out - fi - -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 17174 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#include <stdio.h> -int main(void) -{ - FILE *fp = fopen("$cf_tempfile", "w"); -#ifdef NCURSES_VERSION -# ifdef NCURSES_VERSION_PATCH - fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); -# else - fprintf(fp, "%s\\n", NCURSES_VERSION); -# endif -#else -# ifdef __NCURSES_H - fprintf(fp, "old\\n"); -# else - make an error -# endif -#endif - ${cf_cv_main_return:-return}(0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:17199: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17202: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:17204: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17207: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_ncurses_version=`cat $cf_tempfile` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi - rm -f "$cf_tempfile" - -fi -echo "$as_me:17221: result: $cf_cv_ncurses_version" >&5 -echo "${ECHO_T}$cf_cv_ncurses_version" >&6 -test "$cf_cv_ncurses_version" = no || -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -cf_nculib_root=$cf_cv_screen - # This works, except for the special case where we find gpm, but - # ncurses is in a nonstandard location via $LIBS, and we really want - # to link gpm. -cf_ncurses_LIBS="" -cf_ncurses_SAVE="$LIBS" -echo "$as_me:17234: checking for Gpm_Open in -lgpm" >&5 -echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 17242 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char Gpm_Open (); -int -main (void) -{ -Gpm_Open (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17261: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17264: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17267: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17270: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_gpm_Gpm_Open=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_gpm_Gpm_Open=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:17281: result: $ac_cv_lib_gpm_Gpm_Open" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6 -if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then - echo "$as_me:17284: checking for initscr in -lgpm" >&5 -echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 17292 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (); -int -main (void) -{ -initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17311: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17314: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17317: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17320: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_gpm_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_gpm_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:17331: result: $ac_cv_lib_gpm_initscr" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 -if test "$ac_cv_lib_gpm_initscr" = yes; then - LIBS="$cf_ncurses_SAVE" -else - cf_ncurses_LIBS="-lgpm" -fi - -fi - -case "$host_os" in -(freebsd*) - # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). - if test "$cf_nculib_root" = ncurses ; then - echo "$as_me:17346: checking for tgoto in -lmytinfo" >&5 -echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 -if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmytinfo $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 17354 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgoto (); -int -main (void) -{ -tgoto (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17373: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17376: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17379: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17382: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_mytinfo_tgoto=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_mytinfo_tgoto=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:17393: result: $ac_cv_lib_mytinfo_tgoto" >&5 -echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 -if test "$ac_cv_lib_mytinfo_tgoto" = yes; then - cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" -fi - - fi - ;; -esac - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_ncurses_LIBS; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -l$cf_nculib_root; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -else - - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no' - cf_libdir="" - echo "$as_me:17442: checking for initscr" >&5 -echo $ECHO_N "checking for initscr... $ECHO_C" >&6 -if test "${ac_cv_func_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 17448 "configure" -#include "confdefs.h" -#define initscr autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef initscr - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_initscr) || defined (__stub___initscr) -#error found stub for initscr -#endif - - return initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17479: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17482: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17485: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17488: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:17498: result: $ac_cv_func_initscr" >&5 -echo "${ECHO_T}$ac_cv_func_initscr" >&6 -if test "$ac_cv_func_initscr" = yes; then - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' -else - - cf_save_LIBS="$LIBS" - echo "$as_me:17505: checking for initscr in -l$cf_nculib_root" >&5 -echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 - LIBS="-l$cf_nculib_root $LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 17509 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17521: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17524: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17527: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17530: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:17532: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:17539: result: no" >&5 -echo "${ECHO_T}no" >&6 - -cf_search= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - -test "x$cf_library_path" != "xNONE" && \ -test -d "$cf_library_path" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" - test -d "$cf_library_path/lib" && cf_search="$cf_search $cf_library_path/lib" - test -d "$cf_library_path/lib/$cf_nculib_root" && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root" - test -d "$cf_library_path/lib/$cf_nculib_root/lib" && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib" - test -d "$cf_library_path/$cf_nculib_root/lib" && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib" - test -d "$cf_library_path/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root" -} - - cf_library_path_list="$cf_library_path_list $cf_search" - ;; - esac - done -fi - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $prefix" - test -d "$prefix/lib" && cf_search="$cf_search $prefix/lib" - test -d "$prefix/lib/$cf_nculib_root" && cf_search="$cf_search $prefix/lib/$cf_nculib_root" - test -d "$prefix/lib/$cf_nculib_root/lib" && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib" - test -d "$prefix/$cf_nculib_root/lib" && cf_search="$cf_search $prefix/$cf_nculib_root/lib" - test -d "$prefix/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/lib" && cf_search="$cf_search $cf_subdir_prefix/lib" - test -d "$cf_subdir_prefix/lib/$cf_nculib_root" && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root" - test -d "$cf_subdir_prefix/lib/$cf_nculib_root/lib" && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib" - test -d "$cf_subdir_prefix/$cf_nculib_root/lib" && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib" - test -d "$cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root" -} - -done - -cf_search="$cf_library_path_list $cf_search" - - for cf_libdir in $cf_search - do - echo "$as_me:17607: checking for -l$cf_nculib_root in $cf_libdir" >&5 -echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 - LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 17611 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17623: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17626: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17629: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17632: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:17634: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:17641: result: no" >&5 -echo "${ECHO_T}no" >&6 - LIBS="$cf_save_LIBS" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - done - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi - -eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\" - -if test "$cf_found_library" = no ; then - { { echo "$as_me:17656: error: Cannot link $cf_nculib_root library" >&5 -echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} - { (exit 1); exit 1; }; } -fi - -fi - -if test -n "$cf_ncurses_LIBS" ; then - echo "$as_me:17664: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 -echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 - cf_ncurses_SAVE="$LIBS" - for p in $cf_ncurses_LIBS ; do - q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"` - if test "$q" != "$LIBS" ; then - LIBS="$q" - fi - done - cat >"conftest.$ac_ext" <<_ACEOF -#line 17674 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17686: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17689: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17692: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17695: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:17697: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:17702: result: no" >&5 -echo "${ECHO_T}no" >&6 - LIBS="$cf_ncurses_SAVE" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - -cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -cat >>confdefs.h <<EOF -#define $cf_nculib_ROOT 1 -EOF - - fi -else - NCURSES_CONFIG=none -fi - - ;; -(ncurses*) - -cf_ncuconfig_root=$cf_cv_screen -cf_have_ncuconfig=no - -if test "x${PKG_CONFIG:=none}" != xnone; then - echo "$as_me:17727: checking pkg-config for $cf_ncuconfig_root" >&5 -echo $ECHO_N "checking pkg-config for $cf_ncuconfig_root... $ECHO_C" >&6 - if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then - echo "$as_me:17730: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - - echo "$as_me:17733: checking if the $cf_ncuconfig_root package files work" >&5 -echo $ECHO_N "checking if the $cf_ncuconfig_root package files work... $ECHO_C" >&6 - cf_have_ncuconfig=unknown - - cf_save_CFLAGS="$CFLAGS" - cf_save_CPPFLAGS="$CPPFLAGS" - cf_save_LIBS="$LIBS" - - cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`" - cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`" - - # while -W for passing linker flags is prevalent, it is not "standard". - # At least one wrapper for c89/c99 (in Apple's xcode) has its own - # incompatible _and_ non-standard -W option which gives an error. Work - # around that pitfall. - case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in - (x*c[89]9@@*-W*) - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkg_cflags -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkg_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 17866 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:17878: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17881: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:17884: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17887: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - if test "$cross_compiling" = yes; then - cf_test_ncuconfig=maybe -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 17893 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); } -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:17900: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:17903: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:17905: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:17908: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_test_ncuconfig=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_test_ncuconfig=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_test_ncuconfig=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - - CFLAGS="$cf_save_CFLAGS" - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - - if test "x$cf_test_ncuconfig" != xyes; then - cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[^ ]*//g'` - cf_pkg_cflags="$cf_temp" - cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[^ ]*//g'` - cf_pkg_libs="$cf_temp" - fi - ;; - esac - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkg_cflags -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkg_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18054 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:18066: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:18069: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:18072: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18075: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - if test "$cross_compiling" = yes; then - cf_have_ncuconfig=maybe -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 18081 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> - int main(void) - { char *xx = curses_version(); return (xx == 0); } -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:18088: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:18091: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:18093: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18096: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_have_ncuconfig=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_ncuconfig=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_ncuconfig=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:18113: result: $cf_have_ncuconfig" >&5 -echo "${ECHO_T}$cf_have_ncuconfig" >&6 - test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes - if test "$cf_have_ncuconfig" != "yes" - then - CPPFLAGS="$cf_save_CPPFLAGS" - LIBS="$cf_save_LIBS" - NCURSES_CONFIG_PKG=none - else - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - - NCURSES_CONFIG_PKG=$cf_ncuconfig_root - -echo "$as_me:18129: checking for terminfo header" >&5 -echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 18147 "configure" -#include "confdefs.h" -#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> - -int -main (void) -{ -int x = auto_left_margin; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18162: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18165: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18168: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18171: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_term_header="$cf_test" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_term_header=unknown - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - test "$cf_cv_term_header" != unknown && break -done - -fi -echo "$as_me:18187: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - - fi - - else - echo "$as_me:18222: result: no" >&5 -echo "${ECHO_T}no" >&6 - NCURSES_CONFIG_PKG=none - fi -else - NCURSES_CONFIG_PKG=none -fi - -if test "x$cf_have_ncuconfig" = "xno"; then - cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}" - -if test -n "$ac_tool_prefix"; then - for ac_prog in ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:18238: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NCURSES_CONFIG"; then - ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog" -echo "$as_me:18253: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG -if test -n "$NCURSES_CONFIG"; then - echo "$as_me:18261: result: $NCURSES_CONFIG" >&5 -echo "${ECHO_T}$NCURSES_CONFIG" >&6 -else - echo "$as_me:18264: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$NCURSES_CONFIG" && break - done -fi -if test -z "$NCURSES_CONFIG"; then - ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG - for ac_prog in ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:18277: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_NCURSES_CONFIG"; then - ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog" -echo "$as_me:18292: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG -if test -n "$ac_ct_NCURSES_CONFIG"; then - echo "$as_me:18300: result: $ac_ct_NCURSES_CONFIG" >&5 -echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6 -else - echo "$as_me:18303: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_NCURSES_CONFIG" && break -done -test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none" - - NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG -fi - - if test "$NCURSES_CONFIG" != none ; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in `$NCURSES_CONFIG --cflags` -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in `$NCURSES_CONFIG --libs`; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - # even with config script, some packages use no-override for curses.h - -echo "$as_me:18432: checking if we have identified curses headers" >&5 -echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6 -if test "${cf_cv_ncurses_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_ncurses_header=none -for cf_header in \ - ncurses.h $cf_cv_screen/ncurses.h \ - curses.h $cf_cv_screen/curses.h -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 18444 "configure" -#include "confdefs.h" -#include <${cf_header}> -int -main (void) -{ -initscr(); tgoto("?", 0,0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18456: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18459: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18462: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18465: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_header=$cf_header; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -fi -echo "$as_me:18476: result: $cf_cv_ncurses_header" >&5 -echo "${ECHO_T}$cf_cv_ncurses_header" >&6 - -if test "$cf_cv_ncurses_header" = none ; then - { { echo "$as_me:18480: error: No curses header-files found" >&5 -echo "$as_me: error: No curses header-files found" >&2;} - { (exit 1); exit 1; }; } -fi - -# cheat, to get the right #define's for HAVE_NCURSES_H, etc. - -for ac_header in $cf_cv_ncurses_header -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:18490: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 18496 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:18500: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:18506: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:18525: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <<EOF -#define $cf_nculib_ROOT 1 -EOF - - cf_cv_ncurses_version="`$NCURSES_CONFIG --version`" - - else - -cf_ncuhdr_root=$cf_cv_screen - -test -n "$cf_cv_curses_dir" && \ -test "$cf_cv_curses_dir" != "no" && { \ - -if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then - for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18581 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18593: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18596: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18599: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18602: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:18619: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -} - -echo "$as_me:18638: checking for $cf_ncuhdr_root header in include-path" >&5 -echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6 -if test "${cf_cv_ncurses_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h" - { test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h" - for cf_header in $cf_header_list - do - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18650 "configure" -#include "confdefs.h" - -#include <$cf_header> -int -main (void) -{ - -#ifdef NCURSES_VERSION - -printf("%s\\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\\n"); -#else - make an error -#endif -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18674: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18677: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18680: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18683: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_h=$cf_header - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_ncurses_h=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - - test "$cf_cv_ncurses_h" != no && break - done - -fi -echo "$as_me:18698: result: $cf_cv_ncurses_h" >&5 -echo "${ECHO_T}$cf_cv_ncurses_h" >&6 - -if test "$cf_cv_ncurses_h" != no ; then - cf_cv_ncurses_header=$cf_cv_ncurses_h -else - -echo "$as_me:18705: checking for $cf_ncuhdr_root include-path" >&5 -echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6 -if test "${cf_cv_ncurses_h2+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - test -n "$verbose" && echo - -cf_search= - -# collect the current set of include-directories from compiler flags -cf_header_path_list="" -if test -n "${CFLAGS}${CPPFLAGS}" ; then - for cf_header_path in $CPPFLAGS $CFLAGS - do - case "$cf_header_path" in - (-I*) - cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'` - -test "x$cf_header_path" != "xNONE" && \ -test -d "$cf_header_path" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path" - test -d "$cf_header_path/include" && cf_search="$cf_search $cf_header_path/include" - test -d "$cf_header_path/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root" - test -d "$cf_header_path/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include" - test -d "$cf_header_path/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include" - test -d "$cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - - cf_header_path_list="$cf_header_path_list $cf_search" - ;; - esac - done -fi - -# add the variations for the package we are looking for - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for include-directories under $prefix" - test -d "$prefix/include" && cf_search="$cf_search $prefix/include" - test -d "$prefix/include/$cf_ncuhdr_root" && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root" - test -d "$prefix/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include" - test -d "$prefix/$cf_ncuhdr_root/include" && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include" - test -d "$prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/include" && cf_search="$cf_search $cf_subdir_prefix/include" - test -d "$cf_subdir_prefix/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root" - test -d "$cf_subdir_prefix/include/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include" - test -d "$cf_subdir_prefix/$cf_ncuhdr_root/include" && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include" - test -d "$cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" -} - -done - -test "$includedir" != NONE && \ -test "$includedir" != "/usr/include" && \ -test -d "$includedir" && { - test -d "$includedir" && cf_search="$cf_search $includedir" - test -d "$includedir/$cf_ncuhdr_root" && cf_search="$cf_search $includedir/$cf_ncuhdr_root" -} - -test "$oldincludedir" != NONE && \ -test "$oldincludedir" != "/usr/include" && \ -test -d "$oldincludedir" && { - test -d "$oldincludedir" && cf_search="$cf_search $oldincludedir" - test -d "$oldincludedir/$cf_ncuhdr_root" && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root" -} - -cf_search="$cf_search $cf_header_path_list" - - test -n "$verbose" && echo "search path $cf_search" - cf_save2_CPPFLAGS="$CPPFLAGS" - for cf_incdir in $cf_search - do - -if test -n "$cf_incdir" ; then - for cf_add_incdir in $cf_incdir - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18826 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18838: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18841: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18844: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18847: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:18864: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - - for cf_header in \ - ncurses.h \ - curses.h - do - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18887 "configure" -#include "confdefs.h" - -#include <$cf_header> -int -main (void) -{ - -#ifdef NCURSES_VERSION - -printf("%s\\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\\n"); -#else - make an error -#endif -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18911: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18914: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:18917: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:18920: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_ncurses_h2=$cf_header - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_ncurses_h2=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - - if test "$cf_cv_ncurses_h2" != no ; then - cf_cv_ncurses_h2=$cf_incdir/$cf_header - test -n "$verbose" && echo $ECHO_N " ... found $ECHO_C" 1>&6 - break - fi - test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6 - done - CPPFLAGS="$cf_save2_CPPFLAGS" - test "$cf_cv_ncurses_h2" != no && break - done - test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:18941: error: not found" >&5 -echo "$as_me: error: not found" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:18946: result: $cf_cv_ncurses_h2" >&5 -echo "${ECHO_T}$cf_cv_ncurses_h2" >&6 - - cf_1st_incdir=`echo "$cf_cv_ncurses_h2" | sed -e 's%/[^/]*$%%'` - cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`" - if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then - cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header" - fi - -if test -n "$cf_1st_incdir" ; then - for cf_add_incdir in $cf_1st_incdir - do - while test "$cf_add_incdir" != /usr/include - do - if test -d "$cf_add_incdir" - then - cf_have_incdir=no - if test -n "$CFLAGS$CPPFLAGS" ; then - # a loop is needed to ensure we can add subdirs of existing dirs - for cf_test_incdir in $CFLAGS $CPPFLAGS ; do - if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then - cf_have_incdir=yes; break - fi - done - fi - - if test "$cf_have_incdir" = no ; then - if test "$cf_add_incdir" = /usr/local/include ; then - if test "$GCC" = yes - then - cf_save_CPPFLAGS=$CPPFLAGS - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_add_incdir" - - cat >"conftest.$ac_ext" <<_ACEOF -#line 18982 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:18994: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:18997: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:19000: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19003: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_have_incdir=yes -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi - - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 - -echo "${as_me:-configure}:19020: testing adding $cf_add_incdir to include-path ..." 1>&5 - - CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" - - cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'` - test "$cf_top_incdir" = "$cf_add_incdir" && break - cf_add_incdir="$cf_top_incdir" - else - break - fi - else - break - fi - done - done -fi - -fi - -# Set definitions to allow ifdef'ing for ncurses.h - -case "$cf_cv_ncurses_header" in -(*ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_H 1 -EOF - - ;; -esac - -case "$cf_cv_ncurses_header" in -(ncurses/curses.h|ncurses/ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_NCURSES_H 1 -EOF - - ;; -(ncursesw/curses.h|ncursesw/ncurses.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_NCURSES_H 1 -EOF - - ;; -esac - -echo "$as_me:19068: checking for terminfo header" >&5 -echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -case "${cf_cv_ncurses_header}" in -(*/ncurses.h|*/ncursesw.h) - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -(*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" -do -cat >"conftest.$ac_ext" <<_ACEOF -#line 19086 "configure" -#include "confdefs.h" -#include <stdio.h> -#include <${cf_cv_ncurses_header:-curses.h}> -#include <$cf_test> - -int -main (void) -{ -int x = auto_left_margin; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:19101: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:19104: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:19107: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19110: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_term_header="$cf_test" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cf_cv_term_header=unknown - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - test "$cf_cv_term_header" != unknown && break -done - -fi -echo "$as_me:19126: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -# Set definitions to allow ifdef'ing to accommodate subdirectories - -case "$cf_cv_term_header" in -(*term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -esac - -case "$cf_cv_term_header" in -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - -# some applications need this, but should check for NCURSES_VERSION - -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -echo "$as_me:19164: checking for ncurses version" >&5 -echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6 -if test "${cf_cv_ncurses_version+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_ncurses_version=no - cf_tempfile=out$$ - rm -f "$cf_tempfile" - if test "$cross_compiling" = yes; then - - # This will not work if the preprocessor splits the line after the - # Autoconf token. The 'unproto' program does that. - cat > "conftest.$ac_ext" <<EOF -#include <${cf_cv_ncurses_header:-curses.h}> -#undef Autoconf -#ifdef NCURSES_VERSION -Autoconf NCURSES_VERSION -#else -#ifdef __NCURSES_H -Autoconf "old" -#endif -; -#endif -EOF - cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" - { (eval echo "$as_me:19190: \"$cf_try\"") >&5 - (eval $cf_try) 2>&5 - ac_status=$? - echo "$as_me:19193: \$? = $ac_status" >&5 - (exit "$ac_status"); } - if test -f conftest.out ; then - cf_out=`sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%' conftest.out` - test -n "$cf_out" && cf_cv_ncurses_version="$cf_out" - rm -f conftest.out - fi - -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 19203 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#include <stdio.h> -int main(void) -{ - FILE *fp = fopen("$cf_tempfile", "w"); -#ifdef NCURSES_VERSION -# ifdef NCURSES_VERSION_PATCH - fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); -# else - fprintf(fp, "%s\\n", NCURSES_VERSION); -# endif -#else -# ifdef __NCURSES_H - fprintf(fp, "old\\n"); -# else - make an error -# endif -#endif - ${cf_cv_main_return:-return}(0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:19228: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19231: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:19233: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19236: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - - cf_cv_ncurses_version=`cat $cf_tempfile` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi - rm -f "$cf_tempfile" - -fi -echo "$as_me:19250: result: $cf_cv_ncurses_version" >&5 -echo "${ECHO_T}$cf_cv_ncurses_version" >&6 -test "$cf_cv_ncurses_version" = no || -cat >>confdefs.h <<\EOF -#define NCURSES 1 -EOF - -cf_nculib_root=$cf_cv_screen - # This works, except for the special case where we find gpm, but - # ncurses is in a nonstandard location via $LIBS, and we really want - # to link gpm. -cf_ncurses_LIBS="" -cf_ncurses_SAVE="$LIBS" -echo "$as_me:19263: checking for Gpm_Open in -lgpm" >&5 -echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 19271 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char Gpm_Open (); -int -main (void) -{ -Gpm_Open (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19290: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19293: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19296: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19299: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_gpm_Gpm_Open=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_gpm_Gpm_Open=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:19310: result: $ac_cv_lib_gpm_Gpm_Open" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6 -if test "$ac_cv_lib_gpm_Gpm_Open" = yes; then - echo "$as_me:19313: checking for initscr in -lgpm" >&5 -echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 19321 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (); -int -main (void) -{ -initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19340: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19343: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19346: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19349: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_gpm_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_gpm_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:19360: result: $ac_cv_lib_gpm_initscr" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6 -if test "$ac_cv_lib_gpm_initscr" = yes; then - LIBS="$cf_ncurses_SAVE" -else - cf_ncurses_LIBS="-lgpm" -fi - -fi - -case "$host_os" in -(freebsd*) - # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). - if test "$cf_nculib_root" = ncurses ; then - echo "$as_me:19375: checking for tgoto in -lmytinfo" >&5 -echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 -if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lmytinfo $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 19383 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char tgoto (); -int -main (void) -{ -tgoto (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19402: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19405: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19408: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19411: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_mytinfo_tgoto=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_mytinfo_tgoto=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:19422: result: $ac_cv_lib_mytinfo_tgoto" >&5 -echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6 -if test "$ac_cv_lib_mytinfo_tgoto" = yes; then - cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" -fi - - fi - ;; -esac - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_ncurses_LIBS; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" -then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -l$cf_nculib_root; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -else - - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=no' - cf_libdir="" - echo "$as_me:19471: checking for initscr" >&5 -echo $ECHO_N "checking for initscr... $ECHO_C" >&6 -if test "${ac_cv_func_initscr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 19477 "configure" -#include "confdefs.h" -#define initscr autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef initscr - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_initscr) || defined (__stub___initscr) -#error found stub for initscr -#endif - - return initscr (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19508: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19511: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19514: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19517: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_initscr=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_initscr=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:19527: result: $ac_cv_func_initscr" >&5 -echo "${ECHO_T}$ac_cv_func_initscr" >&6 -if test "$ac_cv_func_initscr" = yes; then - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' -else - - cf_save_LIBS="$LIBS" - echo "$as_me:19534: checking for initscr in -l$cf_nculib_root" >&5 -echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6 - LIBS="-l$cf_nculib_root $LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 19538 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19550: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19553: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19556: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19559: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:19561: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:19568: result: no" >&5 -echo "${ECHO_T}no" >&6 - -cf_search= -cf_library_path_list="" -if test -n "${LDFLAGS}${LIBS}" ; then - for cf_library_path in $LDFLAGS $LIBS - do - case "$cf_library_path" in - (-L*) - cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'` - -test "x$cf_library_path" != "xNONE" && \ -test -d "$cf_library_path" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path" - test -d "$cf_library_path/lib" && cf_search="$cf_search $cf_library_path/lib" - test -d "$cf_library_path/lib/$cf_nculib_root" && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root" - test -d "$cf_library_path/lib/$cf_nculib_root/lib" && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib" - test -d "$cf_library_path/$cf_nculib_root/lib" && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib" - test -d "$cf_library_path/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root" -} - - cf_library_path_list="$cf_library_path_list $cf_search" - ;; - esac - done -fi - -cf_search= - -test "x$prefix" != "xNONE" && \ -test -d "$prefix" && \ - { - test -n "$verbose" && echo " ... testing for lib-directories under $prefix" - test -d "$prefix/lib" && cf_search="$cf_search $prefix/lib" - test -d "$prefix/lib/$cf_nculib_root" && cf_search="$cf_search $prefix/lib/$cf_nculib_root" - test -d "$prefix/lib/$cf_nculib_root/lib" && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib" - test -d "$prefix/$cf_nculib_root/lib" && cf_search="$cf_search $prefix/$cf_nculib_root/lib" - test -d "$prefix/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root" -} - -for cf_subdir_prefix in \ - /usr \ - /usr/local \ - /usr/pkg \ - /opt \ - /opt/local \ - $HOME -do - -test "x$cf_subdir_prefix" != "x$prefix" && \ -test -d "$cf_subdir_prefix" && \ -{ test -z "$prefix" || test "x$prefix" = xNONE || test "x$cf_subdir_prefix" != "x$prefix"; } && { - test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix" - test -d "$cf_subdir_prefix/lib" && cf_search="$cf_search $cf_subdir_prefix/lib" - test -d "$cf_subdir_prefix/lib/$cf_nculib_root" && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root" - test -d "$cf_subdir_prefix/lib/$cf_nculib_root/lib" && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib" - test -d "$cf_subdir_prefix/$cf_nculib_root/lib" && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib" - test -d "$cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root" && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root" -} - -done - -cf_search="$cf_library_path_list $cf_search" - - for cf_libdir in $cf_search - do - echo "$as_me:19636: checking for -l$cf_nculib_root in $cf_libdir" >&5 -echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6 - LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" - cat >"conftest.$ac_ext" <<_ACEOF -#line 19640 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr() - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19652: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19655: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19658: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19661: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:19663: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - eval 'cf_cv_have_lib_'"$cf_nculib_root"'=yes' - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:19670: result: no" >&5 -echo "${ECHO_T}no" >&6 - LIBS="$cf_save_LIBS" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - done - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi - -eval 'cf_found_library="$cf_cv_have_lib_'"$cf_nculib_root"\" - -if test "$cf_found_library" = no ; then - { { echo "$as_me:19685: error: Cannot link $cf_nculib_root library" >&5 -echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;} - { (exit 1); exit 1; }; } -fi - -fi - -if test -n "$cf_ncurses_LIBS" ; then - echo "$as_me:19693: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5 -echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6 - cf_ncurses_SAVE="$LIBS" - for p in $cf_ncurses_LIBS ; do - q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"` - if test "$q" != "$LIBS" ; then - LIBS="$q" - fi - done - cat >"conftest.$ac_ext" <<_ACEOF -#line 19703 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -initscr(); mousemask(0,0); tigetstr((char *)0); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:19715: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:19718: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:19721: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:19724: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - echo "$as_me:19726: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -echo "$as_me:19731: result: no" >&5 -echo "${ECHO_T}no" >&6 - LIBS="$cf_ncurses_SAVE" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - -cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -cat >>confdefs.h <<EOF -#define $cf_nculib_ROOT 1 -EOF - - fi -else - NCURSES_CONFIG=none -fi - - ;; -(pdcurses) - -cf_x_athena=${cf_x_athena:-Xaw} - -echo "$as_me:19754: checking if you want to link with Xaw 3d library" >&5 -echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6 -withval= - -# Check whether --with-Xaw3d or --without-Xaw3d was given. -if test "${with_Xaw3d+set}" = set; then - withval="$with_Xaw3d" - -fi; -if test "$withval" = yes ; then - cf_x_athena=Xaw3d - echo "$as_me:19765: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:19768: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:19772: checking if you want to link with Xaw 3d xft library" >&5 -echo $ECHO_N "checking if you want to link with Xaw 3d xft library... $ECHO_C" >&6 -withval= - -# Check whether --with-Xaw3dxft or --without-Xaw3dxft was given. -if test "${with_Xaw3dxft+set}" = set; then - withval="$with_Xaw3dxft" - -fi; -if test "$withval" = yes ; then - cf_x_athena=Xaw3dxft - echo "$as_me:19783: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:19786: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:19790: checking if you want to link with neXT Athena library" >&5 -echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6 -withval= - -# Check whether --with-neXtaw or --without-neXtaw was given. -if test "${with_neXtaw+set}" = set; then - withval="$with_neXtaw" - -fi; -if test "$withval" = yes ; then - cf_x_athena=neXtaw - echo "$as_me:19801: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:19804: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:19808: checking if you want to link with Athena-Plus library" >&5 -echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6 -withval= - -# Check whether --with-XawPlus or --without-XawPlus was given. -if test "${with_XawPlus+set}" = set; then - withval="$with_XawPlus" - -fi; -if test "$withval" = yes ; then - cf_x_athena=XawPlus - echo "$as_me:19819: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:19822: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -cf_x_athena_lib="" - -if test "$PKG_CONFIG" != none ; then - cf_athena_list= - test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6" - for cf_athena_pkg in \ - $cf_athena_list \ - ${cf_x_athena} \ - ${cf_x_athena}-devel \ - lib${cf_x_athena} \ - lib${cf_x_athena}-devel - do - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$cf_athena_pkg"; then - test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6 - -echo "${as_me:-configure}:19842: testing found package $cf_athena_pkg ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$cf_athena_pkg" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "$cf_athena_pkg" 2>/dev/null`" - test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:19848: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:19852: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - cf_x_athena_lib="$cf_pkgconfig_libs" - -cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <<EOF -#define $cf_x_athena_LIBS 1 -EOF - - for cf_trim_lib in Xmu Xt X11 - do - case "$LIBS" in - (*-l$cf_trim_lib\ *-l$cf_trim_lib*) - LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` - test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6 - -echo "${as_me:-configure}:19983: testing ..trimmed $LIBS ..." 1>&5 - - ;; - esac - done - -echo "$as_me:19989: checking for usable $cf_x_athena/Xmu package" >&5 -echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6 -if test "${cf_cv_xaw_compat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 19996 "configure" -#include "confdefs.h" - -#include <X11/Xmu/CharSet.h> - -int -main (void) -{ - -int check = XmuCompareISOLatin1("big", "small"); -(void)check; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:20013: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:20016: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:20019: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:20022: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xaw_compat=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_xaw_compat=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:20032: result: $cf_cv_xaw_compat" >&5 -echo "${ECHO_T}$cf_cv_xaw_compat" >&6 - - if test "$cf_cv_xaw_compat" = no - then - # workaround for broken ".pc" files... - case "$cf_x_athena_lib" in - (*-lXmu*) - ;; - (*) - test -n "$verbose" && echo " work around broken package" 1>&6 - -echo "${as_me:-configure}:20044: testing work around broken package ..." 1>&5 - - cf_save_xmu="$LIBS" - cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^ *//' -e 's/ .*//'` - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xmu"; then - test -n "$verbose" && echo " found package xmu" 1>&6 - -echo "${as_me:-configure}:20052: testing found package xmu ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xmu" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "xmu" 2>/dev/null`" - test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20058: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20062: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - LIBS="$cf_save_xmu" - -test -n "$verbose" && echo " ...before $LIBS" 1>&6 - -echo "${as_me:-configure}:20182: testing ...before $LIBS ..." 1>&5 - -LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib $cf_pkgconfig_libs %" -e 's% % %g'` -test -n "$verbose" && echo " ...after $LIBS" 1>&6 - -echo "${as_me:-configure}:20187: testing ...after $LIBS ..." 1>&5 - -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - -test -n "$verbose" && echo " ...before $LIBS" 1>&6 - -echo "${as_me:-configure}:20195: testing ...before $LIBS ..." 1>&5 - -LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib -lXmu %" -e 's% % %g'` -test -n "$verbose" && echo " ...after $LIBS" 1>&6 - -echo "${as_me:-configure}:20200: testing ...after $LIBS ..." 1>&5 - -fi - - for cf_trim_lib in Xmu Xt X11 - do - case "$LIBS" in - (*-l$cf_trim_lib\ *-l$cf_trim_lib*) - LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'` - test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6 - -echo "${as_me:-configure}:20211: testing ..trimmed $LIBS ..." 1>&5 - - ;; - esac - done - - ;; - esac - fi - - break -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - : -fi - - done -fi - -if test -z "$cf_x_athena_lib" ; then - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "Xext"; then - test -n "$verbose" && echo " found package Xext" 1>&6 - -echo "${as_me:-configure}:20236: testing found package Xext ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "Xext" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "Xext" 2>/dev/null`" - test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20242: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20246: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - - echo "$as_me:20367: checking for XextCreateExtension in -lXext" >&5 -echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6 -if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXext $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 20375 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XextCreateExtension (); -int -main (void) -{ -XextCreateExtension (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:20394: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:20397: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:20400: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:20403: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_Xext_XextCreateExtension=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_Xext_XextCreateExtension=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:20414: result: $ac_cv_lib_Xext_XextCreateExtension" >&5 -echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6 -if test "$ac_cv_lib_Xext_XextCreateExtension" = yes; then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lXext; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -fi - -# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new) (and -# in some cases has installed dummy files in the former, other cases replaced -# it with a link to the new location). This complicates the configure script. -# Check for that pitfall, and recover using pkg-config -# -# If none of these are set, the configuration is almost certainly broken. -if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}" -then - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "x11"; then - test -n "$verbose" && echo " found package x11" 1>&6 - -echo "${as_me:-configure}:20450: testing found package x11 ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "x11" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "x11" 2>/dev/null`" - test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20456: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20460: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - { echo "$as_me:20580: WARNING: unable to find X11 library" >&5 -echo "$as_me: WARNING: unable to find X11 library" >&2;} -fi - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "ice"; then - test -n "$verbose" && echo " found package ice" 1>&6 - -echo "${as_me:-configure}:20587: testing found package ice ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "ice" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "ice" 2>/dev/null`" - test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20593: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20597: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - { echo "$as_me:20717: WARNING: unable to find ICE library" >&5 -echo "$as_me: WARNING: unable to find ICE library" >&2;} -fi - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "sm"; then - test -n "$verbose" && echo " found package sm" 1>&6 - -echo "${as_me:-configure}:20724: testing found package sm ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "sm" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "sm" 2>/dev/null`" - test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20730: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20734: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - { echo "$as_me:20854: WARNING: unable to find SM library" >&5 -echo "$as_me: WARNING: unable to find SM library" >&2;} -fi - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xt"; then - test -n "$verbose" && echo " found package xt" 1>&6 - -echo "${as_me:-configure}:20861: testing found package xt ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xt" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "xt" 2>/dev/null`" - test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:20867: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:20871: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - { echo "$as_me:20991: WARNING: unable to find Xt library" >&5 -echo "$as_me: WARNING: unable to find Xt library" >&2;} -fi - -else - LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS" -fi - -cf_have_X_LIBS=no - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "xt"; then - test -n "$verbose" && echo " found package xt" 1>&6 - -echo "${as_me:-configure}:21004: testing found package xt ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "xt" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "xt" 2>/dev/null`" - test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:21010: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:21014: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - case "x$LIBS" in - (*-lX11*) - ;; - (*) -# we have an "xt" package, but it may omit Xt's dependency on X11 -echo "$as_me:21135: checking for usable X dependency" >&5 -echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6 -if test "${cf_cv_xt_x11_compat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 21142 "configure" -#include "confdefs.h" - -#include <X11/Xlib.h> - -int -main (void) -{ - - int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0); - int rc2 = XClearWindow((Display*) 0, (Window) 0); - int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0); - int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:21161: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:21164: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:21167: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:21170: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xt_x11_compat=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_xt_x11_compat=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:21180: result: $cf_cv_xt_x11_compat" >&5 -echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6 - if test "$cf_cv_xt_x11_compat" = no - then - test -n "$verbose" && echo " work around broken X11 dependency" 1>&6 - -echo "${as_me:-configure}:21186: testing work around broken X11 dependency ..." 1>&5 - - # 2010/11/19 - good enough until a working Xt on Xcb is delivered. - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "x11"; then - test -n "$verbose" && echo " found package x11" 1>&6 - -echo "${as_me:-configure}:21193: testing found package x11 ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "x11" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "x11" 2>/dev/null`" - test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:21199: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:21203: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - -test -n "$verbose" && echo " ...before $LIBS" 1>&6 - -echo "${as_me:-configure}:21326: testing ...before $LIBS ..." 1>&5 - -LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt -lX11 %" -e 's% % %g'` -test -n "$verbose" && echo " ...after $LIBS" 1>&6 - -echo "${as_me:-configure}:21331: testing ...after $LIBS ..." 1>&5 - -fi - - fi - ;; - esac - -echo "$as_me:21339: checking for usable X Toolkit package" >&5 -echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6 -if test "${cf_cv_xt_ice_compat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 21346 "configure" -#include "confdefs.h" - -#include <X11/Shell.h> - -int -main (void) -{ -int num = IceConnectionNumber(0); (void) num - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:21361: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:21364: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:21367: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:21370: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_xt_ice_compat=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_xt_ice_compat=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:21380: result: $cf_cv_xt_ice_compat" >&5 -echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6 - - if test "$cf_cv_xt_ice_compat" = no - then - # workaround for broken ".pc" files used for X Toolkit. - case "x$X_PRE_LIBS" in - (*-lICE*) - case "x$LIBS" in - (*-lICE*) - ;; - (*) - test -n "$verbose" && echo " work around broken ICE dependency" 1>&6 - -echo "${as_me:-configure}:21394: testing work around broken ICE dependency ..." 1>&5 - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "ice"; then - test -n "$verbose" && echo " found package ice" 1>&6 - -echo "${as_me:-configure}:21399: testing found package ice ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "ice" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "ice" 2>/dev/null`" - test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:21405: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:21409: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "sm"; then - test -n "$verbose" && echo " found package sm" 1>&6 - -echo "${as_me:-configure}:21528: testing found package sm ..." 1>&5 - - cf_pkgconfig_incs="`$PKG_CONFIG --cflags "sm" 2>/dev/null`" - cf_pkgconfig_libs="`$PKG_CONFIG --libs "sm" 2>/dev/null`" - test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6 - -echo "${as_me:-configure}:21534: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5 - - test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6 - -echo "${as_me:-configure}:21538: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5 - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_pkgconfig_incs -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_pkgconfig_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - : -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - : -fi - -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - -test -n "$verbose" && echo " ...before $LIBS" 1>&6 - -echo "${as_me:-configure}:21667: testing ...before $LIBS ..." 1>&5 - -LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt $X_PRE_LIBS %" -e 's% % %g'` -test -n "$verbose" && echo " ...after $LIBS" 1>&6 - -echo "${as_me:-configure}:21672: testing ...after $LIBS ..." 1>&5 - -fi - - ;; - esac - ;; - esac - fi - - cf_have_X_LIBS=yes - -else - cf_pkgconfig_incs= - cf_pkgconfig_libs= - - LDFLAGS="$X_LIBS $LDFLAGS" - -test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 - -echo "${as_me:-configure}:21692: testing checking additions to CFLAGS ..." 1>&5 - -cf_check_cflags="$CFLAGS" -cf_check_cppflags="$CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $X_CFLAGS -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 - -echo "${as_me:-configure}:21777: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 - -echo "${as_me:-configure}:21787: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6 - -echo "${as_me:-configure}:21797: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -if test "x$cf_check_cflags" != "x$CFLAGS" ; then -cat >"conftest.$ac_ext" <<_ACEOF -#line 21806 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello world"); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:21818: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:21821: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:21824: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:21827: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 - -echo "${as_me:-configure}:21835: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5 - - if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then - test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6 - -echo "${as_me:-configure}:21840: testing but keeping change to \$CPPFLAGS ..." 1>&5 - - fi - CFLAGS="$cf_check_cflags" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - - echo "$as_me:21848: checking for XOpenDisplay" >&5 -echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6 -if test "${ac_cv_func_XOpenDisplay+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 21854 "configure" -#include "confdefs.h" -#define XOpenDisplay autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef XOpenDisplay - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XOpenDisplay (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay) -#error found stub for XOpenDisplay -#endif - - return XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:21885: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:21888: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:21891: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:21894: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_XOpenDisplay=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_XOpenDisplay=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:21904: result: $ac_cv_func_XOpenDisplay" >&5 -echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6 -if test "$ac_cv_func_XOpenDisplay" = yes; then - : -else - - echo "$as_me:21910: checking for XOpenDisplay in -lX11" >&5 -echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 -if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lX11 $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 21918 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XOpenDisplay (); -int -main (void) -{ -XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:21937: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:21940: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:21943: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:21946: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_X11_XOpenDisplay=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_X11_XOpenDisplay=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:21957: result: $ac_cv_lib_X11_XOpenDisplay" >&5 -echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 -if test "$ac_cv_lib_X11_XOpenDisplay" = yes; then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lX11; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -fi - - echo "$as_me:21981: checking for XtAppInitialize" >&5 -echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6 -if test "${ac_cv_func_XtAppInitialize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 21987 "configure" -#include "confdefs.h" -#define XtAppInitialize autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef XtAppInitialize - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XtAppInitialize (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize) -#error found stub for XtAppInitialize -#endif - - return XtAppInitialize (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22018: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22021: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22024: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22027: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_XtAppInitialize=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_XtAppInitialize=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:22037: result: $ac_cv_func_XtAppInitialize" >&5 -echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6 -if test "$ac_cv_func_XtAppInitialize" = yes; then - : -else - - echo "$as_me:22043: checking for XtAppInitialize in -lXt" >&5 -echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6 -if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXt $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 22051 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XtAppInitialize (); -int -main (void) -{ -XtAppInitialize (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22070: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22073: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22076: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22079: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_Xt_XtAppInitialize=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_Xt_XtAppInitialize=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:22090: result: $ac_cv_lib_Xt_XtAppInitialize" >&5 -echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6 -if test "$ac_cv_lib_Xt_XtAppInitialize" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_LIBXT 1 -EOF - - cf_have_X_LIBS=Xt - LIBS="-lXt $LIBS" -fi - -fi - -fi - -if test "$cf_have_X_LIBS" = no ; then - { echo "$as_me:22107: WARNING: Unable to successfully link X Toolkit library (-lXt) with -test program. You will have to check and add the proper libraries by hand -to makefile." >&5 -echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with -test program. You will have to check and add the proper libraries by hand -to makefile." >&2;} -fi - -cf_x_athena_root=$cf_x_athena -cf_x_athena_inc="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - if test -z "$cf_x_athena_inc" ; then - -cf_save_LIBS_CF_X_ATHENA_CPPFLAGS="$LIBS" -cf_save_CFLAGS_CF_X_ATHENA_CPPFLAGS="$CFLAGS" -cf_save_CPPFLAGS_CF_X_ATHENA_CPPFLAGS="$CPPFLAGS" -LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}" -for cf_X_CFLAGS in $X_CFLAGS -do - case "x$cf_X_CFLAGS" in - x-[IUD]*) - CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS" - ;; - *) - CFLAGS="$CFLAGS $cf_X_CFLAGS" - ;; - esac -done - - cf_test=X11/$cf_x_athena_root/SimpleMenu.h - if test "$cf_path" != default ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_path/include" - - echo "$as_me:22148: checking for $cf_test in $cf_path" >&5 -echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6 - else - echo "$as_me:22151: checking for $cf_test" >&5 -echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6 - fi - cat >"conftest.$ac_ext" <<_ACEOF -#line 22155 "configure" -#include "confdefs.h" - -#include <X11/Intrinsic.h> -#include <$cf_test> -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:22169: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:22172: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:22175: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22178: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - echo "$as_me:22187: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - -LIBS="$cf_save_LIBS_CF_X_ATHENA_CPPFLAGS" -CFLAGS="$cf_save_CFLAGS_CF_X_ATHENA_CPPFLAGS" -CPPFLAGS="$cf_save_CPPFLAGS_CF_X_ATHENA_CPPFLAGS" - - if test "$cf_result" = yes ; then - test "$cf_path" = default && cf_x_athena_inc=default - test "$cf_path" != default && cf_x_athena_inc="$cf_path/include" - break - fi - fi -done - -if test -z "$cf_x_athena_inc" ; then - { echo "$as_me:22203: WARNING: Unable to find Athena header files" >&5 -echo "$as_me: WARNING: Unable to find Athena header files" >&2;} -elif test "$cf_x_athena_inc" != default ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-I$cf_x_athena_inc" - -fi - -cf_x_athena_root=$cf_x_athena -cf_x_athena_lib="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - for cf_lib in \ - ${cf_x_athena_root} \ - ${cf_x_athena_root}7 \ - ${cf_x_athena_root}6 - do - for cf_libs in \ - "-l$cf_lib -lXmu" \ - "-l$cf_lib -lXpm -lXmu" \ - "-l${cf_lib}_s -lXmu_s" - do - test -n "$cf_x_athena_lib" && break - -cf_save_LIBS_CF_X_ATHENA_LIBS="$LIBS" -cf_save_CFLAGS_CF_X_ATHENA_LIBS="$CFLAGS" -cf_save_CPPFLAGS_CF_X_ATHENA_LIBS="$CPPFLAGS" -LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}" -for cf_X_CFLAGS in $X_CFLAGS -do - case "x$cf_X_CFLAGS" in - x-[IUD]*) - CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS" - ;; - *) - CFLAGS="$CFLAGS $cf_X_CFLAGS" - ;; - esac -done - - cf_test=XawSimpleMenuAddGlobalActions - test "$cf_path" != default && cf_libs="-L$cf_path/lib $cf_libs" - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_libs; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - - echo "$as_me:22268: checking for $cf_test in $cf_libs" >&5 -echo $ECHO_N "checking for $cf_test in $cf_libs... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 22271 "configure" -#include "confdefs.h" - -#include <X11/Intrinsic.h> -#include <X11/$cf_x_athena_root/SimpleMenu.h> - -int -main (void) -{ - -$cf_test((XtAppContext) 0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22287: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22290: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22293: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22296: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - echo "$as_me:22305: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - -LIBS="$cf_save_LIBS_CF_X_ATHENA_LIBS" -CFLAGS="$cf_save_CFLAGS_CF_X_ATHENA_LIBS" -CPPFLAGS="$cf_save_CPPFLAGS_CF_X_ATHENA_LIBS" - - if test "$cf_result" = yes ; then - cf_x_athena_lib="$cf_libs" - break - fi - done # cf_libs - test -n "$cf_x_athena_lib" && break - done # cf_lib -done - -if test -z "$cf_x_athena_lib" ; then - { { echo "$as_me:22322: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5 -echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;} - { (exit 1); exit 1; }; } -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in $cf_x_athena_lib; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -cat >>confdefs.h <<EOF -#define $cf_x_athena_LIBS 1 -EOF - -fi - -if test -n "$ac_tool_prefix"; then - for ac_prog in xcurses-config - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:22356: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_XCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$XCURSES_CONFIG"; then - ac_cv_prog_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_XCURSES_CONFIG="$ac_tool_prefix$ac_prog" -echo "$as_me:22371: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -XCURSES_CONFIG=$ac_cv_prog_XCURSES_CONFIG -if test -n "$XCURSES_CONFIG"; then - echo "$as_me:22379: result: $XCURSES_CONFIG" >&5 -echo "${ECHO_T}$XCURSES_CONFIG" >&6 -else - echo "$as_me:22382: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$XCURSES_CONFIG" && break - done -fi -if test -z "$XCURSES_CONFIG"; then - ac_ct_XCURSES_CONFIG=$XCURSES_CONFIG - for ac_prog in xcurses-config -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:22395: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_XCURSES_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_XCURSES_CONFIG"; then - ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_ct_XCURSES_CONFIG" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_prog" -echo "$as_me:22410: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_XCURSES_CONFIG=$ac_cv_prog_ac_ct_XCURSES_CONFIG -if test -n "$ac_ct_XCURSES_CONFIG"; then - echo "$as_me:22418: result: $ac_ct_XCURSES_CONFIG" >&5 -echo "${ECHO_T}$ac_ct_XCURSES_CONFIG" >&6 -else - echo "$as_me:22421: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_XCURSES_CONFIG" && break -done -test -n "$ac_ct_XCURSES_CONFIG" || ac_ct_XCURSES_CONFIG="none" - - XCURSES_CONFIG=$ac_ct_XCURSES_CONFIG -fi - -if test "$XCURSES_CONFIG" != none ; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in `$XCURSES_CONFIG --cflags` -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in `$XCURSES_CONFIG --libs`; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -cf_cv_lib_XCurses=yes - -else - -LDFLAGS="$LDFLAGS $X_LIBS" - -test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 - -echo "${as_me:-configure}:22556: testing checking additions to CFLAGS ..." 1>&5 - -cf_check_cflags="$CFLAGS" -cf_check_cppflags="$CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $X_CFLAGS -do -case "$cf_fix_cppflags" in -(no) - case "$cf_add_cflags" in - (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) - case "$cf_add_cflags" in - (-D*) - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test "$cf_fix_cppflags" = yes ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - continue - fi - ;; - esac - case "$CPPFLAGS" in - (*$cf_add_cflags) - ;; - (*) - case "$cf_add_cflags" in - (-D*) - cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'` - -CPPFLAGS=`echo "$CPPFLAGS" | \ - sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \ - -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'` - - ;; - esac - - test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags " - cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags" - - ;; - esac - ;; - (*) - - test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags " - cf_new_cflags="${cf_new_cflags}$cf_add_cflags" - - ;; - esac - ;; -(yes) - - test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags " - cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags" - - cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'` - - test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 - -echo "${as_me:-configure}:22641: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$cf_new_cflags" - -fi - -if test -n "$cf_new_cppflags" ; then - test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 - -echo "${as_me:-configure}:22651: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}$cf_new_cppflags" - -fi - -if test -n "$cf_new_extra_cppflags" ; then - test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6 - -echo "${as_me:-configure}:22661: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 - - test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS " - EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags" - -fi - -if test "x$cf_check_cflags" != "x$CFLAGS" ; then -cat >"conftest.$ac_ext" <<_ACEOF -#line 22670 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello world"); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22682: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22685: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22688: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22691: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 - -echo "${as_me:-configure}:22699: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5 - - if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then - test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6 - -echo "${as_me:-configure}:22704: testing but keeping change to \$CPPFLAGS ..." 1>&5 - - fi - CFLAGS="$cf_check_cflags" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - -echo "$as_me:22712: checking for XOpenDisplay in -lX11" >&5 -echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 -if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 22720 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XOpenDisplay (); -int -main (void) -{ -XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22739: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22742: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22745: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22748: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_X11_XOpenDisplay=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_X11_XOpenDisplay=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:22759: result: $ac_cv_lib_X11_XOpenDisplay" >&5 -echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 -if test "$ac_cv_lib_X11_XOpenDisplay" = yes; then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lX11; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -echo "$as_me:22781: checking for XCurses library" >&5 -echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6 -if test "${cf_cv_lib_XCurses+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lXCurses; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 22804 "configure" -#include "confdefs.h" - -#include <xcurses.h> -char *XCursesProgramName = "test"; - -int -main (void) -{ -XCursesExit(); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22819: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22822: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22825: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22828: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_lib_XCurses=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_lib_XCurses=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -echo "$as_me:22839: result: $cf_cv_lib_XCurses" >&5 -echo "${ECHO_T}$cf_cv_lib_XCurses" >&6 - -fi - -if test "$cf_cv_lib_XCurses" = yes ; then - -cat >>confdefs.h <<\EOF -#define UNIX 1 -EOF - -cat >>confdefs.h <<\EOF -#define XCURSES 1 -EOF - - echo "$as_me:22854: checking for xcurses.h" >&5 -echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6 -if test "${ac_cv_header_xcurses_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 22860 "configure" -#include "confdefs.h" -#include <xcurses.h> -_ACEOF -if { (eval echo "$as_me:22864: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:22870: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_xcurses_h=yes -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - ac_cv_header_xcurses_h=no -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:22889: result: $ac_cv_header_xcurses_h" >&5 -echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6 -if test "$ac_cv_header_xcurses_h" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_XCURSES 1 -EOF - -fi - -else - { { echo "$as_me:22900: error: Cannot link with XCurses" >&5 -echo "$as_me: error: Cannot link with XCurses" >&2;} - { (exit 1); exit 1; }; } -fi - - ;; -(*) - { { echo "$as_me:22907: error: unexpected screen-value: $cf_cv_screen" >&5 -echo "$as_me: error: unexpected screen-value: $cf_cv_screen" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -: ${cf_nculib_root:=$cf_cv_screen} -as_ac_Lib=`echo "ac_cv_lib_$cf_nculib_root''__nc_init_pthreads" | $as_tr_sh` -echo "$as_me:22915: checking for _nc_init_pthreads in -l$cf_nculib_root" >&5 -echo $ECHO_N "checking for _nc_init_pthreads in -l$cf_nculib_root... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Lib+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-l$cf_nculib_root $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 22923 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _nc_init_pthreads (); -int -main (void) -{ -_nc_init_pthreads (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:22942: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:22945: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:22948: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:22951: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_Lib=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_Lib=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:22962: result: `eval echo '${'"$as_ac_Lib"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Lib"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Lib"'}'`" = yes; then - cf_cv_ncurses_pthreads=yes -else - cf_cv_ncurses_pthreads=no -fi - -if test "$cf_cv_ncurses_pthreads" = yes -then - -cf_add_libs="$LIBS" -# reverse order -cf_add_0lib= -for cf_add_1lib in -lpthread; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done -# filter duplicates -for cf_add_1lib in $cf_add_0lib; do - for cf_add_2lib in $cf_add_libs; do - if test "x$cf_add_1lib" = "x$cf_add_2lib"; then - cf_add_1lib= - break - fi - done - test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs" -done -LIBS="$cf_add_libs" - -fi - -echo "$as_me:22991: checking if curses supports wide characters" >&5 -echo $ECHO_N "checking if curses supports wide characters... $ECHO_C" >&6 -if test "${cf_cv_widec_curses+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 22998 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ - - wchar_t temp[2]; - wchar_t wch = 'A'; - temp[0] = wch; - waddnwstr(stdscr, temp, 1); - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:23017: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:23020: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:23023: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23026: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_widec_curses=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_widec_curses=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -echo "$as_me:23037: result: $cf_cv_widec_curses" >&5 -echo "${ECHO_T}$cf_cv_widec_curses" >&6 - -if test "$cf_cv_widec_curses" = yes ; then - -cat >>confdefs.h <<\EOF -#define WIDEC_CURSES 1 -EOF - - # This is needed on Tru64 5.0 to declare mbstate_t - echo "$as_me:23047: checking if we must include wchar.h to declare mbstate_t" >&5 -echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6 -if test "${cf_cv_widec_mbstate+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 23054 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -mbstate_t state; (void)state - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23068: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23071: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23074: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23077: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_widec_mbstate=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cat >"conftest.$ac_ext" <<_ACEOF -#line 23084 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <wchar.h> -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -mbstate_t state; (void)state - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23099: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23102: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23105: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23108: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_widec_mbstate=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_widec_mbstate=unknown -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:23120: result: $cf_cv_widec_mbstate" >&5 -echo "${ECHO_T}$cf_cv_widec_mbstate" >&6 - -if test "$cf_cv_widec_mbstate" = yes ; then - -cat >>confdefs.h <<\EOF -#define NEED_WCHAR_H 1 -EOF - -fi - -if test "$cf_cv_widec_mbstate" != unknown ; then - -cat >>confdefs.h <<\EOF -#define HAVE_MBSTATE_T 1 -EOF - -fi - -fi - -cf_all_widgets=yes - -echo "$as_me:23143: checking if you want extra dialogs" >&5 -echo $ECHO_N "checking if you want extra dialogs... $ECHO_C" >&6 - -# Check whether --enable-extras or --disable-extras was given. -if test "${enable_extras+set}" = set; then - enableval="$enable_extras" - -else - enableval=yes -fi; -echo "$as_me:23153: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -cf_all_widgets=yes -else -cf_all_widgets=no -fi - -cf_use_dialogrc=yes - -echo "$as_me:23163: checking if you want config-file support" >&5 -echo $ECHO_N "checking if you want config-file support... $ECHO_C" >&6 - -# Check whether --enable-rc-file or --disable-rc-file was given. -if test "${enable_rc_file+set}" = set; then - enableval="$enable_rc_file" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23173: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS rc\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_RC_FILE 1 -EOF - -else -cf_use_dialogrc=no -fi - -cf_use_dialogrc2=yes -if test "$cf_use_dialogrc" = yes; then - -echo "$as_me:23189: checking if you want extra attributes in config-file" >&5 -echo $ECHO_N "checking if you want extra attributes in config-file... $ECHO_C" >&6 - -# Check whether --enable-rc-file2 or --disable-rc-file2 was given. -if test "${enable_rc_file2+set}" = set; then - enableval="$enable_rc_file2" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23199: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then - -cat >>confdefs.h <<\EOF -#define HAVE_RC_FILE2 1 -EOF - -else -cf_use_dialogrc2=no -fi - -fi - -echo "$as_me:23213: checking if you want Xdialog-style dialogs" >&5 -echo $ECHO_N "checking if you want Xdialog-style dialogs... $ECHO_C" >&6 - -# Check whether --enable-Xdialog or --disable-Xdialog was given. -if test "${enable_Xdialog+set}" = set; then - enableval="$enable_Xdialog" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23223: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS calendar\$o fselect\$o timebox\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_XDIALOG 1 -EOF - -else - : -fi - -echo "$as_me:23236: checking if you want extra Xdialog-style dialogs (1.2)" >&5 -echo $ECHO_N "checking if you want extra Xdialog-style dialogs (1.2)... $ECHO_C" >&6 - -# Check whether --enable-Xdialog2 or --disable-Xdialog2 was given. -if test "${enable_Xdialog2+set}" = set; then - enableval="$enable_Xdialog2" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23246: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS buildlist\$o rangebox\$o treeview\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_XDIALOG2 1 -EOF - -else - : -fi - -echo "$as_me:23259: checking if you want compatibility with whiptail options" >&5 -echo $ECHO_N "checking if you want compatibility with whiptail options... $ECHO_C" >&6 - -# Check whether --enable-whiptail or --disable-whiptail was given. -if test "${enable_whiptail+set}" = set; then - enableval="$enable_whiptail" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23269: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then - -cat >>confdefs.h <<\EOF -#define HAVE_WHIPTAIL 1 -EOF - -else - : -fi - -echo "$as_me:23281: checking if you want the form dialog" >&5 -echo $ECHO_N "checking if you want the form dialog... $ECHO_C" >&6 - -# Check whether --enable-form or --disable-form was given. -if test "${enable_form+set}" = set; then - enableval="$enable_form" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23291: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS formbox\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_DLG_FORMBOX 1 -EOF - -else - : -fi - -echo "$as_me:23304: checking if you want the gauge dialog" >&5 -echo $ECHO_N "checking if you want the gauge dialog... $ECHO_C" >&6 - -# Check whether --enable-gauge or --disable-gauge was given. -if test "${enable_gauge+set}" = set; then - enableval="$enable_gauge" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23314: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS guage\$o pause\$o prgbox\$o progressbox\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_DLG_GAUGE 1 -EOF - -else - : -fi - -echo "$as_me:23327: checking if you want the tailbox dialog" >&5 -echo $ECHO_N "checking if you want the tailbox dialog... $ECHO_C" >&6 - -# Check whether --enable-tailbox or --disable-tailbox was given. -if test "${enable_tailbox+set}" = set; then - enableval="$enable_tailbox" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23337: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS tailbox\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_DLG_TAILBOX 1 -EOF - -else - : -fi - -echo "$as_me:23350: checking if you want the mixedform dialog" >&5 -echo $ECHO_N "checking if you want the mixedform dialog... $ECHO_C" >&6 - -# Check whether --enable-mixedform or --disable-mixedform was given. -if test "${enable_mixedform+set}" = set; then - enableval="$enable_mixedform" - -else - enableval=${enable_form:=$cf_all_widgets} -fi; -echo "$as_me:23360: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS mixedform\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_DLG_MIXEDFORM 1 -EOF - -else - : -fi - -echo "$as_me:23373: checking if you want the mixedgauge dialog" >&5 -echo $ECHO_N "checking if you want the mixedgauge dialog... $ECHO_C" >&6 - -# Check whether --enable-mixedgauge or --disable-mixedgauge was given. -if test "${enable_mixedgauge+set}" = set; then - enableval="$enable_mixedgauge" - -else - enableval=$cf_all_widgets -fi; -echo "$as_me:23383: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then -EXTRAOBJS="$EXTRAOBJS mixedgauge\$o" - -cat >>confdefs.h <<\EOF -#define HAVE_MIXEDGAUGE 1 -EOF - -else - : -fi - -echo "$as_me:23396: checking if you want the wide-curses features" >&5 -echo $ECHO_N "checking if you want the wide-curses features... $ECHO_C" >&6 - -# Check whether --enable-widec or --disable-widec was given. -if test "${enable_widec+set}" = set; then - enableval="$enable_widec" - -else - enableval=$cf_cv_widec_curses -fi; -echo "$as_me:23406: result: $enableval" >&5 -echo "${ECHO_T}$enableval" >&6 -if test "$enableval" != no ; then - -cat >>confdefs.h <<\EOF -#define USE_WIDE_CURSES 1 -EOF - -else - : -fi - -echo "$as_me:23418: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23424 "configure" -#include "confdefs.h" -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -_ACEOF -if { (eval echo "$as_me:23432: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:23438: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err "conftest.$ac_ext" - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >"conftest.$ac_ext" <<_ACEOF -#line 23460 "configure" -#include "confdefs.h" -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -rf conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >"conftest.$ac_ext" <<_ACEOF -#line 23478 "configure" -#include "confdefs.h" -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -rf conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23499 "configure" -#include "confdefs.h" -#include <ctype.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main (void) -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - $ac_main_return(2); - $ac_main_return (0); -} -_ACEOF -rm -f "conftest$ac_exeext" -if { (eval echo "$as_me:23525: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:23528: \$? = $ac_status" >&5 - (exit "$ac_status"); } && { ac_try='"./conftest$ac_exeext"' - { (eval echo "$as_me:23530: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23533: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_header_stdc=no -fi -rm -f core ./core.* ./*.core "conftest$ac_exeext" "conftest.$ac_objext" "conftest.$ac_ext" -fi -fi -fi -echo "$as_me:23546: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -echo "$as_me:23556: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23562 "configure" -#include "confdefs.h" -#include <sys/types.h> -#include <sys/time.h> -#include <time.h> - -int -main (void) -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23578: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23581: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23584: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23587: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_header_time=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:23597: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\EOF -#define TIME_WITH_SYS_TIME 1 -EOF - -fi - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:23610: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23616 "configure" -#include "confdefs.h" -#include <sys/types.h> -#include <$ac_hdr> - -int -main (void) -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23631: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23634: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23637: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23640: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_Header=no" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:23650: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -EOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - echo "$as_me:23663: checking for opendir in -ldir" >&5 -echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6 -if test "${ac_cv_lib_dir_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldir $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 23671 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main (void) -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:23690: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:23693: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:23696: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23699: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_dir_opendir=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_dir_opendir=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:23710: result: $ac_cv_lib_dir_opendir" >&5 -echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6 -if test "$ac_cv_lib_dir_opendir" = yes; then - LIBS="$LIBS -ldir" -fi - -else - echo "$as_me:23717: checking for opendir in -lx" >&5 -echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6 -if test "${ac_cv_lib_x_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lx $LIBS" -cat >"conftest.$ac_ext" <<_ACEOF -#line 23725 "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main (void) -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:23744: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:23747: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:23750: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23753: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_lib_x_opendir=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_lib_x_opendir=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:23764: result: $ac_cv_lib_x_opendir" >&5 -echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6 -if test "$ac_cv_lib_x_opendir" = yes; then - LIBS="$LIBS -lx" -fi - -fi - -for ac_header in search.h stdint.h sys/param.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:23775: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23781 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:23785: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:23791: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:23810: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -echo "$as_me:23820: checking for term.h" >&5 -echo $ECHO_N "checking for term.h... $ECHO_C" >&6 -if test "${cf_cv_term_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look -# for <term.h> if we do not find the variant. - -cf_header_list="term.h ncurses/term.h ncursesw/term.h" - -case "${cf_cv_ncurses_header:-curses.h}" in -(*/*) - cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h - cf_header_list="$cf_header_item $cf_header_list" - ;; -esac - -for cf_header in $cf_header_list -do - cat >"conftest.$ac_ext" <<_ACEOF -#line 23841 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#include <${cf_header}> -int -main (void) -{ -WINDOW *x; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23855: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23858: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23861: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23864: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_term_header=$cf_header - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_term_header=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -case "$cf_cv_term_header" in -(no) - # If curses is ncurses, some packagers still mess it up by trying to make - # us use GNU termcap. This handles the most common case. - for cf_header in ncurses/term.h ncursesw/term.h - do - cat >"conftest.$ac_ext" <<_ACEOF -#line 23883 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#ifdef NCURSES_VERSION -#include <${cf_header}> -#else -make an error -#endif -int -main (void) -{ -WINDOW *x; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23901: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23904: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23907: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23910: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_term_header=$cf_header - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_term_header=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - done - ;; -esac - -fi -echo "$as_me:23925: result: $cf_cv_term_header" >&5 -echo "${ECHO_T}$cf_cv_term_header" >&6 - -case "$cf_cv_term_header" in -(term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -(ncurses/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF - - ;; -(ncursesw/term.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 -EOF - - ;; -esac - -echo "$as_me:23952: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 23958 "configure" -#include "confdefs.h" -#include <sys/types.h> -#include <signal.h> -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main (void) -{ -int i; - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:23980: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:23983: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:23986: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:23989: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_type_signal=int -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:23999: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<EOF -#define RETSIGTYPE $ac_cv_type_signal -EOF - -for ac_func in \ -btowc \ -mblen \ -mbrlen \ -mbrtowc \ -mbtowc \ -strcasecmp \ -strftime \ -tsearch \ -waitpid \ -wcsrtombs \ -wcstombs \ -wctob \ -wctomb \ -mktime \ - -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:24024: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 24030 "configure" -#include "confdefs.h" -#define $ac_func autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef $ac_func - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -#error found stub for $ac_func -#endif - - return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24061: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24064: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24067: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24070: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -eval "$as_ac_var=no" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:24080: result: `eval echo '${'"$as_ac_var"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_var"'}'`" >&6 -if test "`eval echo '${'"$as_ac_var"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -EOF - -fi -done - -echo "$as_me:24090: checking definition to turn on extended curses functions" >&5 -echo $ECHO_N "checking definition to turn on extended curses functions... $ECHO_C" >&6 -if test "${cf_cv_need_xopen_extension+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_need_xopen_extension=unknown -cat >"conftest.$ac_ext" <<_ACEOF -#line 24098 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ - -#if defined(NCURSES_VERSION_PATCH) -#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403) - make an error -#endif -#endif -#ifdef NCURSES_VERSION - cchar_t check; - int check2 = curs_set((int)sizeof(check)); -#endif - long x = winnstr(stdscr, "", 0); - int x1, y1; -#ifdef NCURSES_VERSION - (void)check2; -#endif - getbegyx(stdscr, y1, x1); - (void)x; - (void)y1; - (void)x1; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24131: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24134: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24137: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24140: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_need_xopen_extension=none -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR - do - cat >"conftest.$ac_ext" <<_ACEOF -#line 24150 "configure" -#include "confdefs.h" - -#define $cf_try_xopen_extension 1 -#include <stdlib.h> -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ - -#ifdef NCURSES_VERSION - cchar_t check; - int check2 = curs_set((int)sizeof(check)); -#endif - long x = winnstr(stdscr, "", 0); - int x1, y1; - getbegyx(stdscr, y1, x1); -#ifdef NCURSES_VERSION - (void)check2; -#endif - (void)x; - (void)y1; - (void)x1; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24179: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24182: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24185: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24188: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_need_xopen_extension=$cf_try_xopen_extension; break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - done - -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -fi -echo "$as_me:24202: result: $cf_cv_need_xopen_extension" >&5 -echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6 - -case "$cf_cv_need_xopen_extension" in -(*_*) - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D$cf_cv_need_xopen_extension" - - ;; -esac - -echo "$as_me:24214: checking for unctrl.h" >&5 -echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6 -if test "${cf_cv_unctrl_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look -# for <unctrl.h> if we do not find the variant. - -cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h" - -case "${cf_cv_ncurses_header:-curses.h}" in -(*/*) - cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h - cf_header_list="$cf_header_item $cf_header_list" - ;; -esac - -for cf_header in $cf_header_list -do - cat >"conftest.$ac_ext" <<_ACEOF -#line 24235 "configure" -#include "confdefs.h" - -#include <${cf_cv_ncurses_header:-curses.h}> -#include <${cf_header}> -int -main (void) -{ -WINDOW *x; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:24249: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:24252: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:24255: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24258: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_unctrl_header=$cf_header - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_unctrl_header=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -done - -fi -echo "$as_me:24271: result: $cf_cv_unctrl_header" >&5 -echo "${ECHO_T}$cf_cv_unctrl_header" >&6 - -case "$cf_cv_unctrl_header" in -(no) - { echo "$as_me:24276: WARNING: unctrl.h header not found" >&5 -echo "$as_me: WARNING: unctrl.h header not found" >&2;} - ;; -esac - -case "$cf_cv_unctrl_header" in -(unctrl.h) - -cat >>confdefs.h <<\EOF -#define HAVE_UNCTRL_H 1 -EOF - - ;; -(ncurses/unctrl.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSES_UNCTRL_H 1 -EOF - - ;; -(ncursesw/unctrl.h) - -cat >>confdefs.h <<\EOF -#define HAVE_NCURSESW_UNCTRL_H 1 -EOF - - ;; -esac - -for cf_func in \ -flushinp \ -getattrs \ -getbegx \ -getbegy \ -getbegyx \ -getcurx \ -getcury \ -getmaxx \ -getmaxy \ -getmaxyx \ -getparx \ -getpary \ -getparyx \ -use_default_colors \ -wchgat \ -wcursyncup \ -wget_wch \ -wsyncup \ - -do - -cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - echo "$as_me:24329: checking for ${cf_func}" >&5 -echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 - -echo "${as_me:-configure}:24332: testing ${cf_func} ..." 1>&5 - - if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - eval cf_result='$ac_cv_func_'$cf_func - if test ".$cf_result" != ".no"; then - cat >"conftest.$ac_ext" <<_ACEOF -#line 24341 "configure" -#include "confdefs.h" - -#ifdef HAVE_XCURSES -#include <xcurses.h> -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header:-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include <ncursesw/term.h> -#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include <ncurses/term.h> -#elif defined(HAVE_TERM_H) -#include <term.h> -#endif -#endif - -int -main (void) -{ - -#ifndef ${cf_func} -long foo = (long)(&${cf_func}); -fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo); -if (foo + 1234L > 5678L) - ${cf_cv_main_return:-return}(foo != 0); -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24374: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24377: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24380: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24383: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - eval 'cf_cv_func_'$cf_func'="$cf_result"' - -fi - - # use the computed/retrieved cache-value: - eval 'cf_result=$cf_cv_func_'$cf_func - echo "$as_me:24399: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - if test "$cf_result" != no; then - cat >>confdefs.h <<EOF -#define HAVE_${cf_tr_func} 1 -EOF - - fi -done - -for cf_func in \ -curses_exit \ -_nc_free_and_exit \ - -do - -cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - echo "$as_me:24417: checking for ${cf_func}" >&5 -echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 - -echo "${as_me:-configure}:24420: testing ${cf_func} ..." 1>&5 - - if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - eval cf_result='$ac_cv_func_'$cf_func - if test ".$cf_result" != ".no"; then - cat >"conftest.$ac_ext" <<_ACEOF -#line 24429 "configure" -#include "confdefs.h" - -#ifdef HAVE_XCURSES -#include <xcurses.h> -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header:-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include <ncursesw/term.h> -#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include <ncurses/term.h> -#elif defined(HAVE_TERM_H) -#include <term.h> -#endif -#endif - -int -main (void) -{ - -#ifndef ${cf_func} -long foo = (long)(&${cf_func}); -fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo); -if (foo + 1234L > 5678L) - ${cf_cv_main_return:-return}(foo != 0); -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24462: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24465: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24468: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24471: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - eval 'cf_cv_func_'$cf_func'="$cf_result"' - -fi - - # use the computed/retrieved cache-value: - eval 'cf_result=$cf_cv_func_'$cf_func - echo "$as_me:24487: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - if test "$cf_result" != no; then - cat >>confdefs.h <<EOF -#define HAVE_${cf_tr_func} 1 -EOF - - fi -done - -echo "$as_me:24497: checking for start_color" >&5 -echo $ECHO_N "checking for start_color... $ECHO_C" >&6 -if test "${ac_cv_func_start_color+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 24503 "configure" -#include "confdefs.h" -#define start_color autoconf_temporary -#include <limits.h> /* least-intrusive standard header which defines gcc2 __stub macros */ -#undef start_color - -#ifdef __cplusplus -extern "C" -#endif - -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char start_color (void); - -int -main (void) -{ - -/* The GNU C library defines stubs for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_start_color) || defined (__stub___start_color) -#error found stub for start_color -#endif - - return start_color (); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24534: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24537: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24540: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24543: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - ac_cv_func_start_color=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -ac_cv_func_start_color=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -echo "$as_me:24553: result: $ac_cv_func_start_color" >&5 -echo "${ECHO_T}$ac_cv_func_start_color" >&6 -if test "$ac_cv_func_start_color" = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_COLOR 1 -EOF - -fi - -echo "$as_me:24563: checking for chtype typedef" >&5 -echo $ECHO_N "checking for chtype typedef... $ECHO_C" >&6 -if test "${cf_cv_chtype_decl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 24570 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -chtype foo; (void)foo - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:24582: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:24585: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:24588: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24591: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_chtype_decl=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_chtype_decl=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:24601: result: $cf_cv_chtype_decl" >&5 -echo "${ECHO_T}$cf_cv_chtype_decl" >&6 -if test "$cf_cv_chtype_decl" = yes ; then - -cat >>confdefs.h <<\EOF -#define HAVE_TYPE_CHTYPE 1 -EOF - - echo "$as_me:24609: checking if chtype is scalar or struct" >&5 -echo $ECHO_N "checking if chtype is scalar or struct... $ECHO_C" >&6 -if test "${cf_cv_chtype_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 24616 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -static chtype foo; long x = foo; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:24628: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:24631: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:24634: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24637: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_chtype_type=scalar -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_chtype_type=struct -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:24647: result: $cf_cv_chtype_type" >&5 -echo "${ECHO_T}$cf_cv_chtype_type" >&6 - if test "$cf_cv_chtype_type" = scalar ; then - -cat >>confdefs.h <<\EOF -#define TYPE_CHTYPE_IS_SCALAR 1 -EOF - - fi -fi - -echo "$as_me:24658: checking for wide alternate character set array" >&5 -echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6 -if test "${cf_cv_curses_wacs_map+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_curses_wacs_map=unknown - for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char - do - cat >"conftest.$ac_ext" <<_ACEOF -#line 24668 "configure" -#include "confdefs.h" - -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -void *foo = &(${name}['k']); (void)foo - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24684: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24687: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24690: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24693: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_curses_wacs_map=$name - break -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - done -fi -echo "$as_me:24704: result: $cf_cv_curses_wacs_map" >&5 -echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6 - -test "$cf_cv_curses_wacs_map" != unknown && -cat >>confdefs.h <<EOF -#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map -EOF - -echo "$as_me:24712: checking for wide alternate character constants" >&5 -echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6 -if test "${cf_cv_curses_wacs_symbols+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_curses_wacs_symbols=no -if test "$cf_cv_curses_wacs_map" != unknown -then - cat >"conftest.$ac_ext" <<_ACEOF -#line 24722 "configure" -#include "confdefs.h" - -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -cchar_t *foo = WACS_PLUS; - ${cf_cv_curses_wacs_map}['k'] = *WACS_PLUS; (void)foo - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24739: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24742: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24745: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24748: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_curses_wacs_symbols=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 24758 "configure" -#include "confdefs.h" - -#ifndef _XOPEN_SOURCE_EXTENDED -#define _XOPEN_SOURCE_EXTENDED -#endif -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -cchar_t *foo = WACS_PLUS; (void)foo - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24774: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24777: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24780: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24783: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_curses_wacs_symbols=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - -fi -echo "$as_me:24794: result: $cf_cv_curses_wacs_symbols" >&5 -echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6 - -test "$cf_cv_curses_wacs_symbols" != no && -cat >>confdefs.h <<\EOF -#define CURSES_WACS_SYMBOLS 1 -EOF - -for cf_func in wgetparent -do - -cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - echo "$as_me:24807: checking for ${cf_func}" >&5 -echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6 - -echo "${as_me:-configure}:24810: testing ${cf_func} ..." 1>&5 - - if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - eval cf_result='$ac_cv_func_'$cf_func - if test ".$cf_result" != ".no"; then - cat >"conftest.$ac_ext" <<_ACEOF -#line 24819 "configure" -#include "confdefs.h" - -#ifdef HAVE_XCURSES -#include <xcurses.h> -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header:-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include <ncursesw/term.h> -#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include <ncurses/term.h> -#elif defined(HAVE_TERM_H) -#include <term.h> -#endif -#endif - -int -main (void) -{ - -#ifndef ${cf_func} -long foo = (long)(&${cf_func}); -fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo); -if (foo + 1234L > 5678L) - ${cf_cv_main_return:-return}(foo != 0); -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:24852: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:24855: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:24858: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24861: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_result=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - fi - eval 'cf_cv_func_'$cf_func'="$cf_result"' - -fi - - # use the computed/retrieved cache-value: - eval 'cf_result=$cf_cv_func_'$cf_func - echo "$as_me:24877: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - if test "$cf_result" != no; then - cat >>confdefs.h <<EOF -#define HAVE_${cf_tr_func} 1 -EOF - - fi -done - -if test "x$cf_cv_func_wgetparent" != xyes -then - echo "$as_me:24889: checking if WINDOW has _parent member" >&5 -echo $ECHO_N "checking if WINDOW has _parent member... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 24892 "configure" -#include "confdefs.h" -#include <${cf_cv_ncurses_header:-curses.h}> -int -main (void) -{ -WINDOW *p = stdscr->_parent; (void)p - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:24904: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:24907: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:24910: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:24913: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_window__parent=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_window__parent=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - echo "$as_me:24922: result: $cf_window__parent" >&5 -echo "${ECHO_T}$cf_window__parent" >&6 - if test "$cf_window__parent" = yes - then - -cat >>confdefs.h <<\EOF -#define HAVE_WINDOW__PARENT 1 -EOF - - fi -fi - -for ac_header in sys/wait.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:24937: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 24943 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:24947: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:24953: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:24972: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -cf_wait_headers="#include <sys/types.h> -" -if test "$ac_cv_header_sys_wait_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <sys/wait.h> -" -else - -for ac_header in wait.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:24993: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 24999 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:25003: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:25009: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:25028: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -for ac_header in waitstatus.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:25041: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 25047 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:25051: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:25057: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:25076: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -if test "$ac_cv_header_wait_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <wait.h> -" -fi -if test "$ac_cv_header_waitstatus_h" = yes; then -cf_wait_headers="$cf_wait_headers -#include <waitstatus.h> -" -fi -fi - -echo "$as_me:25098: checking for union wait" >&5 -echo $ECHO_N "checking for union wait... $ECHO_C" >&6 -if test "${cf_cv_type_unionwait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25105 "configure" -#include "confdefs.h" -$cf_wait_headers -int -main (void) -{ -int x; - int y = WEXITSTATUS(x); - int z = WTERMSIG(x); - wait(&x); - (void)x; - (void)y; - (void)z; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:25124: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:25127: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:25130: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25133: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_type_unionwait=no - echo compiles ok w/o union wait 1>&5 - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25143 "configure" -#include "confdefs.h" -$cf_wait_headers -int -main (void) -{ -union wait x; -#ifdef WEXITSTATUS - int y = WEXITSTATUS(x); -#endif -#ifdef WTERMSIG - int z = WTERMSIG(x); -#endif - wait(&x); - (void)x; -#ifdef WEXITSTATUS - (void)y; -#endif -#ifdef WTERMSIG - (void)z; -#endif - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:25170: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:25173: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:25176: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25179: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_type_unionwait=yes - echo compiles ok with union wait and possibly macros too 1>&5 - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_type_unionwait=no -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" -fi - -echo "$as_me:25194: result: $cf_cv_type_unionwait" >&5 -echo "${ECHO_T}$cf_cv_type_unionwait" >&6 -test "$cf_cv_type_unionwait" = yes && -cat >>confdefs.h <<\EOF -#define HAVE_TYPE_UNIONWAIT 1 -EOF - -if test "$cf_cv_type_unionwait" = yes; then - - echo "$as_me:25203: checking if union wait can be used as wait-arg" >&5 -echo $ECHO_N "checking if union wait can be used as wait-arg... $ECHO_C" >&6 - if test "${cf_cv_arg_union_wait+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25210 "configure" -#include "confdefs.h" -$cf_wait_headers -int -main (void) -{ -union wait x; wait(&x) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25222: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25225: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25228: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25231: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_arg_union_wait=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_arg_union_wait=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi - - echo "$as_me:25243: result: $cf_cv_arg_union_wait" >&5 -echo "${ECHO_T}$cf_cv_arg_union_wait" >&6 - test "$cf_cv_arg_union_wait" = yes && -cat >>confdefs.h <<\EOF -#define WAIT_USES_UNION 1 -EOF - - echo "$as_me:25250: checking if union wait can be used as waitpid-arg" >&5 -echo $ECHO_N "checking if union wait can be used as waitpid-arg... $ECHO_C" >&6 - if test "${cf_cv_arg_union_waitpid+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25257 "configure" -#include "confdefs.h" -$cf_wait_headers -int -main (void) -{ -union wait x; waitpid(0, &x, 0) - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25269: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25272: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25275: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25278: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_arg_union_waitpid=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_arg_union_waitpid=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi - - echo "$as_me:25290: result: $cf_cv_arg_union_waitpid" >&5 -echo "${ECHO_T}$cf_cv_arg_union_waitpid" >&6 - test "$cf_cv_arg_union_waitpid" = yes && -cat >>confdefs.h <<\EOF -#define WAITPID_USES_UNION 1 -EOF - -fi - -echo "$as_me:25299: checking if we must include wchar.h to declare mbstate_t" >&5 -echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6 -if test "${cf_cv_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >"conftest.$ac_ext" <<_ACEOF -#line 25306 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <stdio.h> -#ifdef HAVE_LIBUTF8_H -#include <libutf8.h> -#endif -int -main (void) -{ -mbstate_t state; (void)state - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25323: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25326: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25329: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25332: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_mbstate_t=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cat >"conftest.$ac_ext" <<_ACEOF -#line 25339 "configure" -#include "confdefs.h" - -#include <stdlib.h> -#include <stdio.h> -#include <wchar.h> -#ifdef HAVE_LIBUTF8_H -#include <libutf8.h> -#endif -int -main (void) -{ -mbstate_t value; (void)value - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25357: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25360: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25363: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25366: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_mbstate_t=unknown -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" -fi -echo "$as_me:25378: result: $cf_cv_mbstate_t" >&5 -echo "${ECHO_T}$cf_cv_mbstate_t" >&6 - -if test "$cf_cv_mbstate_t" = yes ; then - -cat >>confdefs.h <<\EOF -#define NEED_WCHAR_H 1 -EOF - -fi - -if test "$cf_cv_mbstate_t" != unknown ; then - -cat >>confdefs.h <<\EOF -#define HAVE_MBSTATE_T 1 -EOF - -fi - -for ac_header in \ -termio.h \ -termios.h \ -unistd.h \ -sys/ioctl.h \ -sys/termio.h \ - -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:25406: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >"conftest.$ac_ext" <<_ACEOF -#line 25412 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:25416: \"$ac_cpp "conftest.$ac_ext"\"") >&5 - (eval $ac_cpp "conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - $EGREP -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:25422: \$? = $ac_status" >&5 - (exit "$ac_status"); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat "conftest.$ac_ext" >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err "conftest.$ac_ext" -fi -echo "$as_me:25441: result: `eval echo '${'"$as_ac_Header"'}'`" >&5 -echo "${ECHO_T}`eval echo '${'"$as_ac_Header"'}'`" >&6 -if test "`eval echo '${'"$as_ac_Header"'}'`" = yes; then - cat >>confdefs.h <<EOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -EOF - -fi -done - -if test "$ac_cv_header_termios_h" = yes ; then - case "$CFLAGS $CPPFLAGS" in - (*-D_POSIX_SOURCE*) - termios_bad=dunno ;; - (*) termios_bad=maybe ;; - esac - if test "$termios_bad" = maybe ; then - echo "$as_me:25458: checking whether termios.h needs _POSIX_SOURCE" >&5 -echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6 - cat >"conftest.$ac_ext" <<_ACEOF -#line 25461 "configure" -#include "confdefs.h" -#include <termios.h> -int -main (void) -{ -struct termios foo; int x = foo.c_iflag = 1; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25473: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25476: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25479: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25482: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - termios_bad=no -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25490 "configure" -#include "confdefs.h" - -#define _POSIX_SOURCE -#include <termios.h> -int -main (void) -{ -struct termios foo; int x = foo.c_iflag = 2; (void)x - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25504: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25507: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25510: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25513: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - termios_bad=unknown -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -termios_bad=yes -cat >>confdefs.h <<\EOF -#define _POSIX_SOURCE 1 -EOF - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - echo "$as_me:25529: result: $termios_bad" >&5 -echo "${ECHO_T}$termios_bad" >&6 - fi -fi - -echo "$as_me:25534: checking declaration of size-change" >&5 -echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6 -if test "${cf_cv_sizechange+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_sizechange=unknown - cf_save_CPPFLAGS="$CPPFLAGS" - -for cf_opts in "" "NEED_PTEM_H" -do - - CPPFLAGS="$cf_save_CPPFLAGS" - if test -n "$cf_opts" - then - - test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS " - CPPFLAGS="${CPPFLAGS}-D$cf_opts" - - fi - cat >"conftest.$ac_ext" <<_ACEOF -#line 25555 "configure" -#include "confdefs.h" -#include <sys/types.h> -#ifdef HAVE_TERMIOS_H -#include <termios.h> -#else -#ifdef HAVE_TERMIO_H -#include <termio.h> -#endif -#endif - -#ifdef NEED_PTEM_H -/* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h - */ -#include <sys/stream.h> -#include <sys/ptem.h> -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif - -int -main (void) -{ - -#ifdef TIOCGSIZE - struct ttysize win; /* SunOS 3.0... */ - int y = win.ts_lines = 2; - int x = win.ts_cols = 1; - (void)y; - (void)x; -#else -#ifdef TIOCGWINSZ - struct winsize win; /* everything else */ - int y = win.ws_row = 2; - int x = win.ws_col = 1; - (void)y; - (void)x; -#else - no TIOCGSIZE or TIOCGWINSZ -#endif /* TIOCGWINSZ */ -#endif /* TIOCGSIZE */ - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25605: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25608: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25611: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25614: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_cv_sizechange=yes -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_cv_sizechange=no -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - - CPPFLAGS="$cf_save_CPPFLAGS" - if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&5 - test -n "$cf_opts" && cf_cv_sizechange="$cf_opts" - break - fi -done - -fi -echo "$as_me:25633: result: $cf_cv_sizechange" >&5 -echo "${ECHO_T}$cf_cv_sizechange" >&6 -if test "$cf_cv_sizechange" != no ; then - -cat >>confdefs.h <<\EOF -#define HAVE_SIZECHANGE 1 -EOF - - case "$cf_cv_sizechange" in - (NEED*) - cat >>confdefs.h <<EOF -#define $cf_cv_sizechange 1 -EOF - - ;; - esac -fi - -PACKAGE_PREFIX=DLG -PACKAGE_CONFIG=dlg_config.h - -EXTRA_OUTPUT="$EXTRA_OUTPUT headers-sh:$srcdir/headers-sh.in" - -cat >"conftest.$ac_ext" <<_ACEOF -#line 25657 "configure" -#include "confdefs.h" -#include <locale.h> -int -main (void) -{ -setlocale(LC_ALL, "") - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:25669: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:25672: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:25675: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25678: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - -cat >>confdefs.h <<\EOF -#define HAVE_SETLOCALE 1 -EOF - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - -echo "$as_me:25691: checking if runtime has nl_langinfo support for first weekday" >&5 -echo $ECHO_N "checking if runtime has nl_langinfo support for first weekday... $ECHO_C" >&6 -if test "${cf_nl_langinfo_1stday+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >"conftest.$ac_ext" <<_ACEOF -#line 25698 "configure" -#include "confdefs.h" - -#include <langinfo.h> -#include <locale.h> - -int -main (void) -{ - - int first_weekday = nl_langinfo (_NL_TIME_FIRST_WEEKDAY)[0]; - long week_1stday_l = (long) nl_langinfo (_NL_TIME_WEEK_1STDAY); - (void) first_weekday; - (void) week_1stday_l; - - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" -if { (eval echo "$as_me:25718: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:25721: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest.$ac_objext"' - { (eval echo "$as_me:25724: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25727: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_nl_langinfo_1stday=yes - -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -cf_nl_langinfo_1stday=no - -fi -rm -f "conftest.$ac_objext" "conftest.$ac_ext" - -fi -echo "$as_me:25740: result: $cf_nl_langinfo_1stday" >&5 -echo "${ECHO_T}$cf_nl_langinfo_1stday" >&6 -test "x$cf_nl_langinfo_1stday" = xyes && -cat >>confdefs.h <<\EOF -#define HAVE_NL_LANGINFO_1STDAY 1 -EOF - -if test "$GCC" = yes || test "$GXX" = yes -then - - test -n "$CFLAGS" && CFLAGS="$CFLAGS " - CFLAGS="${CFLAGS}$EXTRA_CFLAGS" - - EXTRA_CFLAGS= -fi - -echo "$as_me:25756: checking if rpath-hack should be disabled" >&5 -echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6 - -# Check whether --enable-rpath-hack or --disable-rpath-hack was given. -if test "${enable_rpath_hack+set}" = set; then - enableval="$enable_rpath_hack" - test "$enableval" != no && enableval=yes - if test "$enableval" != "yes" ; then - enable_rpath_hack=no - else - enable_rpath_hack=yes - fi -else - enableval=yes - enable_rpath_hack=yes - -fi; -if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi -echo "$as_me:25774: result: $cf_disable_rpath_hack" >&5 -echo "${ECHO_T}$cf_disable_rpath_hack" >&6 - -if test "$enable_rpath_hack" = yes ; then - -echo "$as_me:25779: checking for updated LDFLAGS" >&5 -echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6 -if test -n "$LD_RPATH_OPT" ; then - echo "$as_me:25782: result: maybe" >&5 -echo "${ECHO_T}maybe" >&6 - - for ac_prog in ldd -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:25789: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$cf_ldd_prog"; then - ac_cv_prog_cf_ldd_prog="$cf_ldd_prog" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_cf_ldd_prog="$ac_prog" -echo "$as_me:25804: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -cf_ldd_prog=$ac_cv_prog_cf_ldd_prog -if test -n "$cf_ldd_prog"; then - echo "$as_me:25812: result: $cf_ldd_prog" >&5 -echo "${ECHO_T}$cf_ldd_prog" >&6 -else - echo "$as_me:25815: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$cf_ldd_prog" && break -done -test -n "$cf_ldd_prog" || cf_ldd_prog="no" - - cf_rpath_list="/usr/lib /lib" - if test "$cf_ldd_prog" != no - then - cf_rpath_oops= - -cat >"conftest.$ac_ext" <<_ACEOF -#line 25829 "configure" -#include "confdefs.h" -#include <stdio.h> -int -main (void) -{ -printf("Hello"); - ; - return 0; -} -_ACEOF -rm -f "conftest.$ac_objext" "conftest$ac_exeext" -if { (eval echo "$as_me:25841: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:25844: \$? = $ac_status" >&5 - (exit "$ac_status"); } && - { ac_try='test -s "conftest$ac_exeext"' - { (eval echo "$as_me:25847: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:25850: \$? = $ac_status" >&5 - (exit "$ac_status"); }; }; then - cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq` - cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq` -else - echo "$as_me: failed program was:" >&5 -cat "conftest.$ac_ext" >&5 -fi -rm -f "conftest.$ac_objext" "conftest$ac_exeext" "conftest.$ac_ext" - - # If we passed the link-test, but get a "not found" on a given library, - # this could be due to inept reconfiguration of gcc to make it only - # partly honor /usr/local/lib (or whatever). Sometimes this behavior - # is intentional, e.g., installing gcc in /usr/bin and suppressing the - # /usr/local libraries. - if test -n "$cf_rpath_oops" - then - for cf_rpath_src in $cf_rpath_oops - do - for cf_rpath_dir in \ - /usr/local \ - /usr/pkg \ - /opt/sfw - do - if test -f "$cf_rpath_dir/lib/$cf_rpath_src" - then - test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6 - -echo "${as_me:-configure}:25878: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5 - - LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib" - break - fi - done - done - fi - fi - - test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 - -echo "${as_me:-configure}:25890: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 - -test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6 - -echo "${as_me:-configure}:25894: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5 - -cf_rpath_dst= -for cf_rpath_src in $LDFLAGS -do - case "$cf_rpath_src" in - (-L*) - - # check if this refers to a directory which we will ignore - cf_rpath_skip=no - if test -n "$cf_rpath_list" - then - for cf_rpath_item in $cf_rpath_list - do - if test "x$cf_rpath_src" = "x-L$cf_rpath_item" - then - cf_rpath_skip=yes - break - fi - done - fi - - if test "$cf_rpath_skip" = no - then - # transform the option - if test "$LD_RPATH_OPT" = "-R " ; then - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` - else - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` - fi - - # if we have not already added this, add it now - cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` - if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" - then - test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 - -echo "${as_me:-configure}:25931: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 - - EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" - fi - fi - ;; - esac - cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" -done -LDFLAGS=$cf_rpath_dst - -test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6 - -echo "${as_me:-configure}:25944: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5 - -test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6 - -echo "${as_me:-configure}:25948: testing ...checking LIBS $LIBS ..." 1>&5 - -cf_rpath_dst= -for cf_rpath_src in $LIBS -do - case "$cf_rpath_src" in - (-L*) - - # check if this refers to a directory which we will ignore - cf_rpath_skip=no - if test -n "$cf_rpath_list" - then - for cf_rpath_item in $cf_rpath_list - do - if test "x$cf_rpath_src" = "x-L$cf_rpath_item" - then - cf_rpath_skip=yes - break - fi - done - fi - - if test "$cf_rpath_skip" = no - then - # transform the option - if test "$LD_RPATH_OPT" = "-R " ; then - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"` - else - cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"` - fi - - # if we have not already added this, add it now - cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"` - if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS" - then - test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6 - -echo "${as_me:-configure}:25985: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5 - - EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" - fi - fi - ;; - esac - cf_rpath_dst="$cf_rpath_dst $cf_rpath_src" -done -LIBS=$cf_rpath_dst - -test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6 - -echo "${as_me:-configure}:25998: testing ...checked LIBS $LIBS ..." 1>&5 - - test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6 - -echo "${as_me:-configure}:26002: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 - -else - echo "$as_me:26005: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi - -cf_libname=\${LIB_BASENAME} -cf_liblink=$cf_libname -cf_libroot=$cf_libname - -if test "x$cf_cv_do_symlinks" = xyes -then - case "x$cf_cv_shlib_version" in - (xrel) - cf_liblink="\${LIB_ABI_NAME}" - cf_libname="\${LIB_REL_NAME}" - ;; - (xabi) - cf_liblink="\${LIB_REL_NAME}" - cf_libname="\${LIB_ABI_NAME}" - ;; - esac -fi -LIB_TARGET=$cf_libname - -SET_SHLIB_VARS="# begin CF__DEFINE_SHLIB_VARS\\ -LIB_BASENAME = \${LIB_PREFIX}\${LIB_ROOTNAME}\${LIB_SUFFIX}\\ -LIB_REL_NAME = \${LIB_BASENAME}.\${REL_VERSION}\\ -LIB_ABI_NAME = \${LIB_BASENAME}.\${ABI_VERSION}\\ -LIB_TARGET = $LIB_TARGET\\ -RM_SHARED_OPTS = $RM_SHARED_OPTS\\ -# end CF__DEFINE_SHLIB_VARS" - -echo "$as_me:26038: checking for linker search path" >&5 -echo $ECHO_N "checking for linker search path... $ECHO_C" >&6 -if test "${cf_cv_ld_searchpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -if test "$cross_compiling" != yes ; then - -# GNU binutils' ld does not involve permissions which may stop ldconfig. -cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[("=][("=]*,,g' -e 's/"[)];//gp' | sort -u` - -# The -NX options tell newer versions of Linux ldconfig to not attempt to -# update the cache, which makes it run faster. -test -z "$cf_pathlist" && \ - cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[ ]/d' -e 's/:$//' | sort -u` - -test -z "$cf_pathlist" && - cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[ ]/d' -e 's/:$//p' | sort -u` - -# This works with OpenBSD 6.5, which lists only filenames -test -z "$cf_pathlist" && - cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*$,\1,p' | sort -u` - -if test -z "$cf_pathlist" -then - # dyld default path with MacOS - if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin - then - # do this to bypass check - cf_cv_ld_searchpath='$HOME/lib' - cf_pathlist="/usr/local/lib /lib /usr/lib" - fi -fi - -if test -z "$cf_pathlist" -then - # Solaris is hardcoded - if test -d /opt/SUNWspro/lib - then - cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib" - elif test -d /usr/ccs/lib - then - cf_pathlist="/usr/ccs/lib /usr/lib" - fi -fi - -fi - -# If nothing else, assume it is conventional -test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib" - -# Finally, check that this is only directories -for cf_path in $0 $cf_pathlist -do - if test -d "$cf_path"; then - test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} " - cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}" - fi -done - -# Ensure that it is nonempty -test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib - -fi -echo "$as_me:26102: result: $cf_cv_ld_searchpath" >&5 -echo "${ECHO_T}$cf_cv_ld_searchpath" >&6 - -LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'` - -ac_config_files="$ac_config_files dialog-config makefile $EXTRA_OUTPUT $SUB_MAKEFILE" -ac_config_commands="$ac_config_commands default" -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overriden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if cmp -s $cache_file confcache; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -: "${CONFIG_STATUS=./config.status}" -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:26188: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >"$CONFIG_STATUS" <<_ACEOF -#! $SHELL -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -SHELL=\${CONFIG_SHELL-$SHELL} -ac_cs_invocation="\$0 \$@" - -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS -_ACEOF - -cat >>"$CONFIG_STATUS" <<\_ACEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset="unset" -else - as_unset="false" -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -exec 6>&1 - -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>"$CONFIG_STATUS" -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>"$CONFIG_STATUS" -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>"$CONFIG_STATUS" -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>"$CONFIG_STATUS" -fi - -cat >>"$CONFIG_STATUS" <<\EOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to <dickey@invisible-island.net>." -EOF - -cat >>"$CONFIG_STATUS" <<EOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.52.20210105, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 2003-2020,2021 Thomas E. Dickey -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir="$srcdir" -INSTALL="$INSTALL" -EOF - -cat >>"$CONFIG_STATUS" <<\EOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. -EOF -cat >>"$CONFIG_STATUS" <<EOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; -EOF -cat >>"$CONFIG_STATUS" <<\EOF - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:26367: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # This is an error. - -*) { { echo "$as_me:26386: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -exec 5>>config.log -cat >&5 << _ACEOF - -## ----------------------- ## -## Running config.status. ## -## ----------------------- ## - -This file was extended by $as_me 2.52.20210105, executed with - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - > "$ac_cs_invocation" -on `(hostname || uname -n) 2>/dev/null | sed 1q` - -_ACEOF -EOF - -cat >>"$CONFIG_STATUS" <<EOF -# -# INIT-COMMANDS section. -# - -ABI_VERSION="$ABI_VERSION" -REL_VERSION="$REL_VERSION" -LIB_MODEL="$LIB_MODEL" -LIB_PREFIX="$LIB_PREFIX" -LIB_ROOTNAME="$LIB_ROOTNAME" -DFT_DEP_SUFFIX="$DFT_DEP_SUFFIX" -RM_SHARED_OPTS="$RM_SHARED_OPTS" -cf_cv_do_symlinks="$cf_cv_do_symlinks" -cf_cv_shlib_version="$cf_cv_shlib_version" - -EOF - -cat >>"$CONFIG_STATUS" <<\EOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "dialog-config" ) CONFIG_FILES="$CONFIG_FILES dialog-config" ;; - "makefile" ) CONFIG_FILES="$CONFIG_FILES makefile" ;; - "$EXTRA_OUTPUT" ) CONFIG_FILES="$CONFIG_FILES $EXTRA_OUTPUT" ;; - "$SUB_MAKEFILE" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILE" ;; - "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "dlg_config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS dlg_config.h:config.hin" ;; - *) { { echo "$as_me:26445: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if "$ac_need_defaults"; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - -EOF - -cat >>"$CONFIG_STATUS" <<EOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datarootdir@,$datarootdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@runstatedir@,$runstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@DEFS@,$DEFS,;t t -s,@LIBS@,$LIBS,;t t -s,@DESTDIR@,$DESTDIR,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t -s,@CPP@,$CPP,;t t -s,@GREP@,$GREP,;t t -s,@EGREP@,$EGREP,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@LN_S@,$LN_S,;t t -s,@LINT@,$LINT,;t t -s,@LINT_OPTS@,$LINT_OPTS,;t t -s,@GROFF_PATH@,$GROFF_PATH,;t t -s,@NROFF_PATH@,$NROFF_PATH,;t t -s,@TBL_PATH@,$TBL_PATH,;t t -s,@GROFF_NOTE@,$GROFF_NOTE,;t t -s,@NROFF_NOTE@,$NROFF_NOTE,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@ARFLAGS@,$ARFLAGS,;t t -s,@FGREP@,$FGREP,;t t -s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t -s,@CTAGS@,$CTAGS,;t t -s,@ETAGS@,$ETAGS,;t t -s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t -s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t -s,@ECHO_LT@,$ECHO_LT,;t t -s,@ECHO_LD@,$ECHO_LD,;t t -s,@RULE_CC@,$RULE_CC,;t t -s,@SHOW_CC@,$SHOW_CC,;t t -s,@ECHO_CC@,$ECHO_CC,;t t -s,@PROG_EXT@,$PROG_EXT,;t t -s,@LIB_PREFIX@,$LIB_PREFIX,;t t -s,@X_CFLAGS@,$X_CFLAGS,;t t -s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t -s,@X_LIBS@,$X_LIBS,;t t -s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t -s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t -s,@PKG_CONFIG@,$PKG_CONFIG,;t t -s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t -s,@VERSION@,$VERSION,;t t -s,@VERSION_MAJOR@,$VERSION_MAJOR,;t t -s,@VERSION_MINOR@,$VERSION_MINOR,;t t -s,@VERSION_PATCH@,$VERSION_PATCH,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@CFG_ROOTNAME@,$CFG_ROOTNAME,;t t -s,@HDR_ROOTNAME@,$HDR_ROOTNAME,;t t -s,@LIB_ROOTNAME@,$LIB_ROOTNAME,;t t -s,@SUB_INC@,$SUB_INC,;t t -s,@cf_man2html@,$cf_man2html,;t t -s,@MAN2HTML_NOTE@,$MAN2HTML_NOTE,;t t -s,@MAN2HTML_PATH@,$MAN2HTML_PATH,;t t -s,@MAN2HTML_TEMP@,$MAN2HTML_TEMP,;t t -s,@CONFIG_H@,$CONFIG_H,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@GLIBC21@,$GLIBC21,;t t -s,@LIBICONV@,$LIBICONV,;t t -s,@USE_NLS@,$USE_NLS,;t t -s,@MSGFMT@,$MSGFMT,;t t -s,@GMSGFMT@,$GMSGFMT,;t t -s,@XGETTEXT@,$XGETTEXT,;t t -s,@INTLBISON@,$INTLBISON,;t t -s,@BUILD_INCLUDED_LIBINTL@,$BUILD_INCLUDED_LIBINTL,;t t -s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t -s,@CATALOGS@,$CATALOGS,;t t -s,@CATOBJEXT@,$CATOBJEXT,;t t -s,@GMOFILES@,$GMOFILES,;t t -s,@INTLLIBS@,$INTLLIBS,;t t -s,@INTLOBJS@,$INTLOBJS,;t t -s,@POFILES@,$POFILES,;t t -s,@POSUB@,$POSUB,;t t -s,@DATADIRNAME@,$DATADIRNAME,;t t -s,@INSTOBJEXT@,$INSTOBJEXT,;t t -s,@GENCAT@,$GENCAT,;t t -s,@INTL_LIBTOOL_SUFFIX_PREFIX@,$INTL_LIBTOOL_SUFFIX_PREFIX,;t t -s,@NLS_TEXTDOMAIN@,$NLS_TEXTDOMAIN,;t t -s,@MSG_DIR_MAKE@,$MSG_DIR_MAKE,;t t -s,@SUB_MAKEFILE@,$SUB_MAKEFILE,;t t -s,@INTLDIR_MAKE@,$INTLDIR_MAKE,;t t -s,@GT_YES@,$GT_YES,;t t -s,@GT_NO@,$GT_NO,;t t -s,@LINK_PREFIX@,$LINK_PREFIX,;t t -s,@ABI_VERSION@,$ABI_VERSION,;t t -s,@REL_VERSION@,$REL_VERSION,;t t -s,@shlibdir@,$shlibdir,;t t -s,@LIBTOOL_VERSION@,$LIBTOOL_VERSION,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@ac_ct_LIBTOOL@,$ac_ct_LIBTOOL,;t t -s,@LT_UNDEF@,$LT_UNDEF,;t t -s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t -s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t -s,@LIB_CREATE@,$LIB_CREATE,;t t -s,@LIB_OBJECT@,$LIB_OBJECT,;t t -s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t -s,@LIB_PREP@,$LIB_PREP,;t t -s,@LIB_CLEAN@,$LIB_CLEAN,;t t -s,@LIB_COMPILE@,$LIB_COMPILE,;t t -s,@LIB_LINK@,$LIB_LINK,;t t -s,@LIB_INSTALL@,$LIB_INSTALL,;t t -s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t -s,@EXPORT_SYMS@,$EXPORT_SYMS,;t t -s,@MAKE_DLLS@,$MAKE_DLLS,;t t -s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t -s,@LD_RPATH_OPT@,$LD_RPATH_OPT,;t t -s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t -s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t -s,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t -s,@LINK_PROGS@,$LINK_PROGS,;t t -s,@LINK_TESTS@,$LINK_TESTS,;t t -s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t -s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t -s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t -s,@INSTALL_LIB@,$INSTALL_LIB,;t t -s,@RPATH_LIST@,$RPATH_LIST,;t t -s,@RESULTING_SYMS@,$RESULTING_SYMS,;t t -s,@VERSIONED_SYMS@,$VERSIONED_SYMS,;t t -s,@WILDCARD_SYMS@,$WILDCARD_SYMS,;t t -s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t -s,@DFT_LIB_SUFFIX@,$DFT_LIB_SUFFIX,;t t -s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t -s,@LIB_MODEL@,$LIB_MODEL,;t t -s,@LIBTOOL_MAKE@,$LIBTOOL_MAKE,;t t -s,@MAKE_NORMAL@,$MAKE_NORMAL,;t t -s,@MAKE_SHARED@,$MAKE_SHARED,;t t -s,@MAKE_STATIC@,$MAKE_STATIC,;t t -s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t -s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t -s,@XCURSES_CONFIG@,$XCURSES_CONFIG,;t t -s,@ac_ct_XCURSES_CONFIG@,$ac_ct_XCURSES_CONFIG,;t t -s,@EXTRAOBJS@,$EXTRAOBJS,;t t -s,@PACKAGE_PREFIX@,$PACKAGE_PREFIX,;t t -s,@PACKAGE_CONFIG@,$PACKAGE_CONFIG,;t t -s,@cf_ldd_prog@,$cf_ldd_prog,;t t -s,@SET_SHLIB_VARS@,$SET_SHLIB_VARS,;t t -s,@LIB_TARGET@,$LIB_TARGET,;t t -s,@LD_SEARCHPATH@,$LD_SEARCHPATH,;t t -CEOF - -EOF - - cat >>"$CONFIG_STATUS" <<\EOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while "$ac_more_lines"; do - if test "$ac_beg" -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - # It is possible to make a multiline substitution using escaped newlines. - # Ensure that we do not split the substitution between script fragments. - ac_BEG=$ac_end - ac_END=`expr "$ac_end" + "$ac_max_sed_lines"` - sed "1,${ac_BEG}d; ${ac_END}p; q" $tmp/subs.sed >$tmp/subs.next - if test -s $tmp/subs.next; then - grep '^s,@[^@,][^@,]*@,.*\\$' $tmp/subs.next >$tmp/subs.edit - if test ! -s $tmp/subs.edit; then - grep "^s,@[^@,][^@,]*@,.*,;t t$" $tmp/subs.next >$tmp/subs.edit - if test ! -s $tmp/subs.edit; then - if test "$ac_beg" -gt 1; then - ac_end=`expr "$ac_end" - 1` - continue - fi - fi - fi - fi - - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr "$ac_sed_frag" + 1` - ac_beg=$ac_end - ac_end=`expr "$ac_end" + "$ac_max_sed_lines"` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -EOF -cat >>"$CONFIG_STATUS" <<\EOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$srcdir" in - .) ac_srcdir=. - if test -z "$ac_dots"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo "$ac_dots" | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) - ac_srcdir="$srcdir$ac_dir_suffix"; - ac_top_srcdir="$srcdir" ;; - *) # Relative path. - ac_srcdir="$ac_dots$srcdir$ac_dir_suffix" - ac_top_srcdir="$ac_dots$srcdir" ;; - esac - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_dots$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:26814: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated automatically by config.status. */ - configure_input="Generated automatically from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:26832: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:26845: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -EOF -cat >>"$CONFIG_STATUS" <<\EOF - ac_warn_datarootdir=no - if test x"$ac_file" != x-; then - for ac_item in $ac_file_inputs - do - ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' "$ac_item"` - if test -n "$ac_seen"; then - ac_used=`grep '@datarootdir@' "$ac_item"` - if test -z "$ac_used"; then - { echo "$as_me:26861: WARNING: datarootdir was used implicitly but not set: -$ac_seen" >&5 -echo "$as_me: WARNING: datarootdir was used implicitly but not set: -$ac_seen" >&2;} - ac_warn_datarootdir=yes - fi - fi - ac_seen=`grep '${datarootdir}' "$ac_item"` - if test -n "$ac_seen"; then - { echo "$as_me:26870: WARNING: datarootdir was used explicitly but not set: -$ac_seen" >&5 -echo "$as_me: WARNING: datarootdir was used explicitly but not set: -$ac_seen" >&2;} - ac_warn_datarootdir=yes - fi - done - fi - -if test "x$ac_warn_datarootdir" = xyes; then - ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'" -fi - -EOF -cat >>"$CONFIG_STATUS" <<EOF - sed "$ac_vpsub -$extrasub -EOF -cat >>"$CONFIG_STATUS" <<\EOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - cp "$tmp/out" "$ac_file" - - for ac_name in prefix exec_prefix datarootdir - do - ac_seen=`${FGREP-fgrep} -n '${'$ac_name'[:=].*}' "$ac_file"` - if test -n "$ac_seen"; then - ac_init=`${EGREP-egrep} '[ ]*'$ac_name'[ ]*=' "$ac_file"` - if test -z "$ac_init"; then - ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` - { echo "$as_me:26907: WARNING: Variable $ac_name is used but was not set: -$ac_seen" >&5 -echo "$as_me: WARNING: Variable $ac_name is used but was not set: -$ac_seen" >&2;} - fi - fi - done - ${EGREP-egrep} -n '@[a-z_][a-z_0-9]+@' "$ac_file" >$tmp/out - ${EGREP-egrep} -n '@[A-Z_][A-Z_0-9]+@' "$ac_file" >>$tmp/out - if test -s $tmp/out; then - ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` - { echo "$as_me:26918: WARNING: Some variables may not be substituted: -$ac_seen" >&5 -echo "$as_me: WARNING: Some variables may not be substituted: -$ac_seen" >&2;} - fi - else - cat $tmp/out - fi - rm -f $tmp/out - -done -EOF -cat >>"$CONFIG_STATUS" <<\EOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_i turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_iA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_iB='\([ ]\),\1#\2define\3' -ac_iC=' ' -ac_iD='\4,;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:26967: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:26978: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:26991: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -EOF - -# Transform confdefs.h into a list of #define's. We won't use it as a sed -# script, but as data to insert where we see @DEFS@. We expect AC_SAVE_DEFS to -# be either 'cat' or 'sort'. -sort -u confdefs.h | uniq >conftest.vals - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. - -rm -f conftest.tail -echo ' rm -f conftest.frag' >> "$CONFIG_STATUS" -while grep . conftest.vals >/dev/null -do - # Write chunks of a limited-size here document to conftest.frag. - echo ' cat >> conftest.frag <<CEOF' >> "$CONFIG_STATUS" - sed "${ac_max_here_lines}q" conftest.vals | sed -e 's/#ifdef.*/#if 0/' >> "$CONFIG_STATUS" - echo 'CEOF' >> "$CONFIG_STATUS" - sed "1,${ac_max_here_lines}d" conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -# Run sed to substitute the contents of conftest.frag into $tmp/in at the -# marker @DEFS@. -echo ' cat >> conftest.edit <<CEOF -/@DEFS@/r conftest.frag -/@DEFS@/d -CEOF -sed -f conftest.edit $tmp/in > $tmp/out -rm -f $tmp/in -mv $tmp/out $tmp/in -rm -f conftest.edit conftest.frag -' >> "$CONFIG_STATUS" - -cat >>"$CONFIG_STATUS" <<\EOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated automatically by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated automatically by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if cmp -s "$ac_file" "$tmp/config.h" 2>/dev/null; then - { echo "$as_me:27049: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - fi - rm -f "$ac_file" - mv "$tmp/config.h" "$ac_file" - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -EOF -cat >>"$CONFIG_STATUS" <<\EOF -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - case "$ac_dest" in - default-1 ) for ac_file in $CONFIG_FILES; do - - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - (*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - - # PO directories have a Makefile.in generated from Makefile.inn. - case "$ac_file" in - (*/[Mm]akefile.in) - # Adjust a relative srcdir. - ac_dir="`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`" - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots="`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`" - ac_base="`basename $ac_file .in`" - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - - case "$ac_given_srcdir" in - (.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - (/*) top_srcdir="$ac_given_srcdir" ;; - (*) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base" - sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base" - fi - ;; - esac - done ;; - default ) - -cf_libname=\${LIB_BASENAME} -cf_liblink=$cf_libname -cf_libroot=$cf_libname - -if test "x$cf_cv_do_symlinks" = xyes -then - case "x$cf_cv_shlib_version" in - (xrel) - cf_liblink="\${LIB_ABI_NAME}" - cf_libname="\${LIB_REL_NAME}" - ;; - (xabi) - cf_liblink="\${LIB_REL_NAME}" - cf_libname="\${LIB_ABI_NAME}" - ;; - esac -fi -LIB_TARGET=$cf_libname - -case x$LIB_MODEL in -(xlibtool|xshared) - cf_libdeps="\${LIBS} \${LDFLAGS}" - ;; -(x*) - cf_libdeps= - ;; -esac - -cat >>makefile <<CF_EOF - -# generated by CF__ADD_SHLIB_RULES -# libmodel: $LIB_MODEL -# symlinks: $cf_cv_do_symlinks -# shlibver: $cf_cv_shlib_version - -CF_EOF - -cat >>makefile <<CF_EOF -$cf_libname :: \\ -CF_EOF - -cat >>makefile <<CF_EOF - \${LIB_OBJECT} - @echo linking \$@ - \$(LIBTOOL_CREATE) \${LIB_OBJECT} $cf_libdeps -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>makefile <<CF_EOF - \$(LN_S) $cf_libname $cf_liblink - \$(LN_S) $cf_liblink $cf_libroot -CF_EOF -fi - -cat >>makefile <<CF_EOF - -install \\ -install.libs :: \$(DESTDIR)\$(libdir)/$cf_libname - -\$(DESTDIR)\$(libdir)/$cf_libname :: \\ - \$(DESTDIR)\$(libdir) \\ - \${LIB_OBJECT} - @echo linking \$@ - \$(LIBTOOL_CREATE) \${LIB_OBJECT} $cf_libdeps -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>makefile <<CF_EOF - cd \$(DESTDIR)\$(libdir) && (\$(LN_S) $cf_libname $cf_liblink; \$(LN_S) $cf_liblink $cf_libroot; ) -CF_EOF -fi - -if test x$LIB_MODEL = xshared -then -cat >>makefile <<CF_EOF - - \$(SHELL) -c "if test -z "\$(DESTDIR)" ; then /sbin/ldconfig; fi" -CF_EOF -fi - -cat >>makefile <<CF_EOF - -uninstall \\ -uninstall.libs :: - @echo uninstalling \$(DESTDIR)\$(libdir)/$cf_libname -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>makefile <<CF_EOF - -rm -f \$(DESTDIR)\$(libdir)/$cf_libroot - -rm -f \$(DESTDIR)\$(libdir)/$cf_liblink -CF_EOF -fi - -cat >>makefile <<CF_EOF - -rm -f \$(DESTDIR)\$(libdir)/$cf_libname - -clean \\ -clean.libs :: -CF_EOF - -if test "x$cf_cv_do_symlinks" = xyes -then -cat >>makefile <<CF_EOF - -rm -f $cf_libroot - -rm -f $cf_liblink -CF_EOF -fi - -cat >>makefile <<CF_EOF - -rm -f $cf_libname - -mostlyclean:: - -rm -f \${LIB_OBJECT} -# end generated by CF__ADD_SHLIB_RULES -CF_EOF - - ;; - esac -done -EOF - -cat >>"$CONFIG_STATUS" <<\EOF - -{ (exit 0); exit 0; } -EOF -chmod +x "$CONFIG_STATUS" -ac_clean_files=$ac_clean_files_save - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - exec 5>/dev/null - $SHELL "$CONFIG_STATUS" || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - "$ac_cs_success" || { (exit 1); exit 1; } -fi - diff --git a/contrib/dialog/configure.in b/contrib/dialog/configure.in deleted file mode 100644 index f81a47e8e376..000000000000 --- a/contrib/dialog/configure.in +++ /dev/null @@ -1,285 +0,0 @@ -dnl $Id: configure.in,v 1.101 2020/11/26 16:21:27 tom Exp $ -dnl Process this file with autoconf to produce a configure script. -dnl --------------------------------------------------------------------------- -dnl Copyright 1999-2019,2020 -- Thomas E. Dickey -dnl -dnl Permission is hereby granted, free of charge, to any person obtaining a -dnl copy of this software and associated documentation files (the -dnl "Software"), to deal in the Software without restriction, including -dnl without limitation the rights to use, copy, modify, merge, publish, -dnl distribute, distribute with modifications, sublicense, and/or sell -dnl copies of the Software, and to permit persons to whom the Software is -dnl furnished to do so, subject to the following conditions: -dnl -dnl The above copyright notice and this permission notice shall be included -dnl in all copies or portions of the Software. -dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. -dnl -dnl Except as contained in this notice, the name(s) of the above copyright -dnl holders shall not be used in advertising or otherwise to promote the -dnl sale, use or other dealings in this Software without prior written -dnl authorization. -dnl --------------------------------------------------------------------------- -AC_PREREQ(2.52.20200802) -AC_INIT(dialog.h) -AC_CONFIG_HEADER(dlg_config.h:config.hin) - -AC_ARG_PROGRAM - -DESTDIR= -AC_SUBST(DESTDIR) - -dnl -dnl Checks for programs. -dnl -CF_PROG_CC -AC_PROG_CPP -AC_PROG_MAKE_SET -AC_PROG_RANLIB -AC_PROG_INSTALL -CF_PROG_LN_S -CF_PROG_LINT - -CF_PROG_GROFF -test -z "$GROFF_NOTE" && NROFF_NOTE= - -dnl needed for CF_WITH_LIBTOOL -CF_AR_FLAGS - -CF_MAKEFLAGS -CF_MAKE_TAGS -CF_DISABLE_ECHO -CF_PROG_EXT -CF_PATHSEP -CF_LIB_PREFIX -CF_XOPEN_SOURCE -CF_LARGEFILE - -CF_WITH_INSTALL_PREFIX -CF_WITH_SCREEN_PDCURSES -CF_ENABLE_WARNINGS(,yes) -CF_PKG_CONFIG - -dnl -dnl Allow dialog program and library to be renamed. -AC_MSG_CHECKING(for this package's name) -AC_ARG_WITH(package, - [ --with-package=XXX rename dialog to XXX, library to libXXX.a, etc], - [PACKAGE=$withval], - [PACKAGE=dialog]) -AC_MSG_RESULT($PACKAGE) -CF_VERSION_INFO(dialog,$PACKAGE) - -CFG_ROOTNAME=$PACKAGE -HDR_ROOTNAME=$PACKAGE -LIB_ROOTNAME=$PACKAGE - -AC_SUBST(CFG_ROOTNAME) -AC_SUBST(HDR_ROOTNAME) -AC_SUBST(LIB_ROOTNAME) - -dnl -dnl If package is renamed, it is useful to have the dlg_XXX headers in a -dnl subdirectory (using the package name) so that multiple versions of the -dnl headers can coexist. -AC_MSG_CHECKING(if we should install dlg_XXX headers to subdirectory) -AC_ARG_ENABLE(header-subdir, - [ --enable-header-subdir install dlg_XXX headers to subdirectory], - [SUB_INC=$enableval], - [SUB_INC=no]) -AC_MSG_RESULT($SUB_INC) -AC_SUBST(SUB_INC) - -CF_WITH_MAN2HTML - -dnl -dnl Checks for libraries. -dnl -EXTRAOBJS="" -CF_BUNDLED_INTL(makefile,enable) -CF_MATH_LIB(,sqrt(x)) - -CF_WITH_NO_LEAKS - -CF_ARG_MSG_ENABLE([if you want --trace option], - trace, - [ --disable-trace do not support --trace option], - [EXTRAOBJS="$EXTRAOBJS trace\$o" - AC_DEFINE(HAVE_DLG_TRACE,1,[Define to 1 to support --trace option])],,yes) - -CF_ENABLE_RPATH -CF_LD_RPATH_OPT -CF_WITH_SHARED_OR_LIBTOOL(DIALOG,${VERSION_MAJOR}.${VERSION_MINOR},`echo "$VERSION" |sed -e 's/:/./g'`) - -CF_WITH_CURSES_DIR - -CF_WITH_NCURSES_ETC -CF_WIDEC_CURSES - -cf_all_widgets=yes -CF_ARG_MSG_ENABLE([if you want extra dialogs], - extras, - [ --disable-extras do not include extra dialogs], - [cf_all_widgets=yes],[cf_all_widgets=no],yes) - -cf_use_dialogrc=yes -CF_ARG_MSG_ENABLE([if you want config-file support], - rc-file, - [ --disable-rc-file do not include config-file support], - [EXTRAOBJS="$EXTRAOBJS rc\$o" - AC_DEFINE(HAVE_RC_FILE,1,[Define to 1 to include config-file support])],cf_use_dialogrc=no,$cf_all_widgets) - -cf_use_dialogrc2=yes -if test "$cf_use_dialogrc" = yes; then -CF_ARG_MSG_ENABLE([if you want extra attributes in config-file], - rc-file2, - [ --disable-rc-file2 do not use extra attributes in config-file], - [AC_DEFINE(HAVE_RC_FILE2,1,[Define to 1 to use extra attributes in config-file])],cf_use_dialogrc2=no,$cf_all_widgets) -fi - -CF_ARG_MSG_ENABLE([if you want Xdialog-style dialogs], - Xdialog, - [ --disable-Xdialog do not include Xdialog-style dialogs (1.1)], - [EXTRAOBJS="$EXTRAOBJS calendar\$o fselect\$o timebox\$o" - AC_DEFINE(HAVE_XDIALOG,1,[Define to 1 to include Xdialog-style dialogs])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want extra Xdialog-style dialogs (1.2)], - Xdialog2, - [ --disable-Xdialog2 do not include extra Xdialog-style dialogs (1.2)], - [EXTRAOBJS="$EXTRAOBJS buildlist\$o rangebox\$o treeview\$o" - AC_DEFINE(HAVE_XDIALOG2,1,[Define to 1 to include extra Xdialog-style dialogs])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want compatibility with whiptail options], - whiptail, - [ --disable-whiptail do not map extra whiptail options], - [AC_DEFINE(HAVE_WHIPTAIL,1,[Define to 1 to include extra whiptail options])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want the form dialog], - form, - [ --disable-form do not include the form dialog], - [EXTRAOBJS="$EXTRAOBJS formbox\$o" - AC_DEFINE(HAVE_DLG_FORMBOX,1,[Define to 1 to include the form dialog])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want the gauge dialog], - gauge, - [ --disable-gauge do not include the gauge dialogs], - [EXTRAOBJS="$EXTRAOBJS guage\$o pause\$o prgbox\$o progressbox\$o" - AC_DEFINE(HAVE_DLG_GAUGE,1,[Define to 1 to include the gauge dialogs])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want the tailbox dialog], - tailbox, - [ --disable-tailbox do not include the tailbox dialog], - [EXTRAOBJS="$EXTRAOBJS tailbox\$o" - AC_DEFINE(HAVE_DLG_TAILBOX,1,[Define to 1 to include the tailbox dialog])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want the mixedform dialog], - mixedform, - [ --disable-mixedform do not include the mixedform dialog], - [EXTRAOBJS="$EXTRAOBJS mixedform\$o" - AC_DEFINE(HAVE_DLG_MIXEDFORM,1,[Define to 1 to include the mixedform dialog])],,${enable_form:=$cf_all_widgets}) - -CF_ARG_MSG_ENABLE([if you want the mixedgauge dialog], - mixedgauge, - [ --disable-mixedgauge do not include the mixedgauge dialog], - [EXTRAOBJS="$EXTRAOBJS mixedgauge\$o" - AC_DEFINE(HAVE_MIXEDGAUGE,1,[Define to 1 to include the mixedgauge dialog])],,$cf_all_widgets) - -CF_ARG_MSG_ENABLE([if you want the wide-curses features], - widec, - [ --enable-widec enable wide-curses features], - [AC_DEFINE(USE_WIDE_CURSES,1,[Define to 1 to enable wide-curses features])],,$cf_cv_widec_curses) - -AC_SUBST(EXTRAOBJS) - -dnl -dnl Checks for header files. -dnl -AC_HEADER_STDC -AC_HEADER_TIME -AC_HEADER_DIRENT -AC_CHECK_HEADERS(search.h stdint.h sys/param.h unistd.h) -CF_CURSES_TERM_H - -dnl -dnl Checks for library functions. -dnl -AC_TYPE_SIGNAL -AC_CHECK_FUNCS(\ -btowc \ -mblen \ -mbrlen \ -mbrtowc \ -mbtowc \ -strcasecmp \ -strftime \ -tsearch \ -waitpid \ -wcsrtombs \ -wcstombs \ -wctob \ -wctomb \ -mktime \ -) - -CF_CURSES_FUNCS(\ -flushinp \ -getattrs \ -getbegx \ -getbegy \ -getbegyx \ -getcurx \ -getcury \ -getmaxx \ -getmaxy \ -getmaxyx \ -getparx \ -getpary \ -getparyx \ -use_default_colors \ -wchgat \ -wcursyncup \ -wget_wch \ -wsyncup \ -) - -CF_CURSES_EXIT - -AC_CHECK_FUNC(start_color,[AC_DEFINE(HAVE_COLOR,1,[Define to 1 if (n)curses has start_color function])]) -CF_CURSES_CHTYPE -CF_CURSES_WACS_SYMBOLS -CF_CURSES_WGETPARENT -CF_FUNC_WAIT -CF_MBSTATE_T -CF_SIZECHANGE - -CF_HEADERS_SH(DLG,dlg_config.h) - -AC_TRY_LINK([#include <locale.h>],[setlocale(LC_ALL, "")],[AC_DEFINE(HAVE_SETLOCALE,1,[Define to 1 if locale feature can be enabled])]) -CF_NL_LANGINFO_1STDAY - -CF_MERGE_EXTRA_CFLAGS -CF_DISABLE_RPATH_HACK - -CF__DEFINE_SHLIB_VARS -CF_LD_SEARCHPATH - -AC_OUTPUT( - dialog-config - makefile - $EXTRA_OUTPUT - $SUB_MAKEFILE,[ -CF__ADD_SHLIB_RULES( - makefile, - $LIB_MODEL, - [\${LIB_OBJECT}], - [\${LIBS} \${LDFLAGS}]) -],[ -CF__INIT_SHLIB_RULES -],[sort -u]) diff --git a/contrib/dialog/demo.pl b/contrib/dialog/demo.pl deleted file mode 100755 index 8f1a37e7b379..000000000000 --- a/contrib/dialog/demo.pl +++ /dev/null @@ -1,337 +0,0 @@ -#!/usr/bin/env perl -# $Id: demo.pl,v 1.23 2018/06/12 21:39:44 tom Exp $ -################################################################################ -# Copyright 2018 Thomas E. Dickey -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License, version 2.1 -# as published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to -# Free Software Foundation, Inc. -# 51 Franklin St., Fifth Floor -# Boston, MA 02110, USA. -################################################################################ -# This demonstration is provided solely to exercise the sample Perl wrapper for -# dialog which is included in its source-code. See libui-dialog-perl for a -# more comprehensive binding. -# -# TODO: modify dialog.pl to use $DIALOG environment variable, drive from GetOpts here -# TODO: eliminate constant $scr_lines in dialog.pl - -use warnings; -use strict; -use diagnostics; - -use FindBin qw($Bin $Script); -use lib "$Bin"; - -require "dialog.pl"; -dialog->import('@dialog_result'); -our @dialog_result; - -sub tput($$) { - my $name = shift; - my $default = shift; - my $value = `tput "$name"`; - chomp $value; - $value = $default unless ( $value =~ /^[0-9]+$/ ); - return $value; -} - -sub napms($) { - my $msecs = shift; - select( undef, undef, undef, $msecs * 0.001 ); -} - -sub show_results($$) { - my $title = shift; - my $width = shift; - &rhs_msgbox( - $title, - sprintf( - "Resulting text:\\n %s", join( '\\n ', @dialog_result ) - ), - $width - ); -} - -sub doit() { - my $status = 1; - my $RHS_CLEAR = "clear"; - my $RHS_TEXTBOX = "textbox"; - my $RHS_MSGBOX = "msgbox"; - my $RHS_INFOBOX = "infobox"; - my $RHS_YESNO = "yesno"; - my $RHS_GAUGE = "gauge"; - my $RHS_INPUTBOX = "inputbox"; - my $RHS_MENU = "menu"; - my $RHS_MENUL = "menul"; - my $RHS_MENUA = "menua"; - my $RHS_CHECKLIST = "checklist"; - my $RHS_CHECKLISTL = "checklistl"; - my $RHS_CHECKLISTA = "checklista"; - my $RHS_RADIOLIST = "radiolist"; - - my @demo_2col = qw( - This that - is has - a this - 2-column quoted - menu "tag". - ); - my @demo_3col; - my @demo_tags; - my %demo_hash; - - for ( my $s = 0, my $t = 0 ; $s <= $#demo_2col ; $s += 2, $t += 3 ) { - my $d = $s / 2; - my $c1 = $demo_2col[$s]; - my $c2 = $demo_2col[ $s + 1 ]; - $demo_3col[$t] = $c1; - $demo_3col[ $t + 1 ] = $c2; - $demo_3col[ $t + 2 ] = ( $c1 =~ /2/ ) ? 1 : 0; - $demo_tags[$d] = $c1; - $demo_tags[$d] =~ s/2/1/; - $demo_tags[ $d + ( $#demo_2col + 1 ) / 2 ] = $c2; - $demo_hash{ sprintf( "%d %s", $d, $c1 ) } = $c2; - } - - while ( $status > 0 ) { - my $lines = &tput( "lines", 24 ); - my $cols = &tput( "cols", 80 ); - my $maxcols = $cols - 4; - my $mincols = ( $cols > 8 ) ? 8 : $cols; - my $midcols = int( ( $cols * 3 ) / 4 ); - - @dialog_result = (); - $status = &rhs_menu( - "My title", "My message", - 0, 14, - $RHS_CLEAR, "clear and exit", - $RHS_TEXTBOX, "text-box of this script", - $RHS_MSGBOX, "informational-message, OK button", - $RHS_INFOBOX, "informational-message, no button", - $RHS_YESNO, "message with Yes/No buttons", - $RHS_GAUGE, "message with progress-gauge", - $RHS_INPUTBOX, "input-box", - $RHS_MENU, "menu, with tags and description", - $RHS_MENUL, "menu, using only tags", - $RHS_MENUA, "alphabetically sorted menu", - $RHS_CHECKLIST, "check-list with tags and description", - $RHS_CHECKLISTL, "check-list using only tags", - $RHS_CHECKLISTA, "alphabetically sorted check-list", - $RHS_RADIOLIST, "list of radio-buttons" - ); - if ( $status > 0 and $#dialog_result == 0 ) { - - my $testcase = $dialog_result[0]; - if ( $testcase eq $RHS_CLEAR ) { - &rhs_clear; - last; - } - elsif ( $testcase eq $RHS_TEXTBOX ) { - &rhs_textbox( "This script", "$Script", 0, 0 ); - } - elsif ( $testcase eq $RHS_MSGBOX ) { - my $msg = - "This is a demonstration script.\\n" - . "This should be the second line,\\n" - . "and this should be the third line,"; - &rhs_msgbox( "A message", $msg, - int( ( length($msg) + 3 ) / 3 ) + 3 ); - } - elsif ( $testcase eq $RHS_INFOBOX ) { - my $msg = - "This is a fairly long line of text, used to" - . " show how dialog can be used to wrap lines to fit in" - . " screens with different width. The text will start wide," - . " then get narrower, showing a new infobox for each width" - . " before going back up to the full width of the terminal."; - my $wide = $maxcols; - while ( $wide > $mincols ) { - &rhs_infobox( "Info-box", $msg, $wide-- ); - &napms(50); - } - while ( $wide < $maxcols ) { - &rhs_infobox( "Info-box", $msg, ++$wide ); - &napms(50); - } - &rhs_msgbox( "Info-end", $msg, $wide ); - } - elsif ( $testcase eq $RHS_YESNO ) { - if ( - &rhs_yesno( - "Yes/no", - "Should \"dialog --yesno\" return \"1\" on \"yes\"" - . " to simplify (some) shell scripts?", - $cols / 2 - ) - ) - { - &rhs_msgbox( - "Explanation", - "No, a successful program exits with " - . "\"0\" (EXIT_SUCCESS)", - $cols / 2 - ); - } - else { - &rhs_msgbox( - "Explanation", - "Shell scripts assume that \"exit\ 0\" is successful;" - . " Perl is different.", - $cols / 2 - ); - } - } - elsif ( $testcase eq $RHS_GAUGE ) { - my $pct = 0; - my $sec = 10; - &rhs_gauge( - "My gauge", - "Show progress (or lack of it)", - $midcols * 3, $pct - ); - while ( $pct < 100 ) { - $pct++; - &napms($sec); - $sec *= 1.04; - &rhs_update_gauge($pct); - } - $pct = 99; - &rhs_update_gauge_and_message( "This will go faster", $pct ); - while ( $pct > 0 ) { - $pct--; - &napms($sec); - $sec /= 1.05; - &rhs_update_gauge($pct); - } - &napms(1000); - &rhs_stop_gauge; - } - elsif ( $testcase eq $RHS_INPUTBOX ) { - if ( - &rhs_inputbox( - "My inputbox", "This demonstrates the inputbox", - $maxcols, "" - ) - ) - { - &show_results( "My inputbox", $midcols ); - } - } - elsif ( $testcase eq $RHS_MENU ) { - if ( - &rhs_menu( - ( - "A menu", - "This menu uses \"tag\" values and descriptions:", - $midcols, ( $#demo_2col + 1 ) / 2 - ), - @demo_2col - ) - ) - { - &show_results( "My menu", $midcols ); - } - } - elsif ( $testcase eq $RHS_MENUL ) { - if ( - &rhs_menul( - ( - "A menu", "This menu uses only the \"tag\" values:", - $midcols, $#demo_tags + 1 - ), - @demo_tags - ) - ) - { - &show_results( "My long-menu", $midcols ); - } - } - elsif ( $testcase eq $RHS_MENUA ) { - if ( - &rhs_menua( - "A menu", "This menu uses the sorted keys from a hash:", - $midcols, %demo_hash - ) - ) - { - &show_results( "My alpha-menu", $midcols ); - } - } - elsif ( $testcase eq $RHS_CHECKLIST ) { - if ( - &rhs_checklist( - ( - "A checklist", - "This checklist uses \"tag\" values" - . " and descriptions:", - $midcols, - ( $#demo_3col + 1 ) / 3 - ), - @demo_3col - ) - ) - { - &show_results( "My checklist", $midcols ); - } - } - elsif ( $testcase eq $RHS_CHECKLISTL ) { - if ( - &rhs_checklistl( - ( - "A checklist", - "This checklist uses only the \"tag\" values:", - $midcols, $#demo_tags + 1 - ), - @demo_tags - ) - ) - { - &show_results( "My long-checklist", $midcols ); - } - } - elsif ( $testcase eq $RHS_CHECKLISTA ) { - if ( - &rhs_checklista( - "A checklist", - "This checklist uses the sorted keys from a hash:", - $midcols, %demo_hash - ) - ) - { - &show_results( "My alpha-checklist", $midcols ); - } - } - elsif ( $testcase eq $RHS_RADIOLIST ) { - if ( - &rhs_radiolist( - ( - "A radiolist", - "This radiolist uses \"tag\" values" - . " and descriptions:", - $midcols, - ( $#demo_3col + 1 ) / 3 - ), - @demo_3col - ) - ) - { - &show_results( "My radiolist", $midcols ); - } - } - } - } -} - -&doit; - -1; diff --git a/contrib/dialog/dialog-config.in b/contrib/dialog/dialog-config.in deleted file mode 100644 index 8bf1a591b451..000000000000 --- a/contrib/dialog/dialog-config.in +++ /dev/null @@ -1,254 +0,0 @@ -#!@SHELL@ -# $Id: dialog-config.in,v 1.13 2019/09/26 00:50:46 tom Exp $ -############################################################################## -# Copyright (c) 2007-2012,2019 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## - -prefix="@prefix@" -exec_prefix="@exec_prefix@" -datarootdir="@datarootdir@" - -same_prefix=yes -same_exec_prefix=yes - -THIS="@PACKAGE@" - -test $# = 0 && exec @SHELL@ "$0" --error - -while test $# -gt 0; do - - # (re)evaluate symbols that may depend upon $prefix - if [ "x$same_prefix" != "xyes" ] - then - eval exec_prefix='@exec_prefix@' - eval datarootdir='@datarootdir@' - elif [ "x$same_exec_prefix" != "xyes" ] - then - eval datarootdir='@datarootdir@' - fi - - eval bindir='"@bindir@"' - eval includedir='"@includedir@"' - eval libdir='"@libdir@"' - eval datadir='"@datadir@"' - eval mandir='"@mandir@"' - - [ -z "$includedir" ] && includedir="${prefix}/include" - - eval LDFLAGS='"@LDFLAGS@"' - eval LIBS='"@LIBS@"' - LIBS="-l${THIS} $LIBS" - - # If the directory given by --libdir is not in the LDFLAGS+LIBS set, - # prepend it to LDFLAGS to help link this application's library. - found=no - for opt in $LDFLAGS $LIBS - do - if [ "x$-L${libdir}" = "x$opt" ] - then - found=yes - break - fi - done - if [ $found = no ] - then - [ -n "$LFLAGS" ] && LDFLAGS=" $LFDLAGS" - LDFLAGS="-L${libdir}$LDFLAGS" - fi - [ -z "$LDFLAGS" ] && LDFLAGS="-L${exec_prefix}/lib" - - # Ignore -L options which do not correspond to an actual directory, - # or which are standard library directories (i.e., the linker is - # supposed to search those directories). - # - # There is no portable way to find the list of standard library - # directories. Require a POSIX shell anyway, to keep this simple. - lib_flags= - for opt in $LDFLAGS $LIBS - do - case $opt in - -L*) - [ -d ${opt##-L} ] || continue - case ${opt##-L} in - @LD_SEARCHPATH@) # skip standard libdir - continue - ;; - *) - ;; - esac - ;; - esac - lib_flags="$lib_flags $opt" - done - - case "$1" in - -*=*) - ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` - ;; - *) - ARG= - ;; - esac - - case "$1" in - # basic configuration - --prefix=*) - prefix="$ARG" - test -z "$exec_prefix" && exec_prefix="$ARG" - same_prefix=no - ;; - --prefix) - echo "$prefix" - ;; - --exec-prefix=*) - exec_prefix="$ARG" - same_exec_prefix=no - ;; - --exec-prefix) - echo "$exec_prefix" - ;; - # compile/link - --cflags|--cflags-only-I) - INCS= - if test "$includedir" != /usr/include ; then - INCS="-I$includedir" - fi - sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO - $INCS -ENDECHO - ;; - --cflags-only-other) - # no -D/-U options should be needed - echo - ;; - --libs) - OPTS= - for opt in $lib_flags - do - [ -n "$OPTS" ] && OPTS="$OPTS " - OPTS="${OPTS}${opt}" - done - printf "%s\n" "$OPTS" - ;; - --libs-only-L) - OPTS= - for opt in $lib_flags - do - case "x$opt" in - x-L*) - [ -n "$OPTS" ] && OPTS="$OPTS " - OPTS="${OPTS}${opt}" - ;; - esac - done - printf "%s\n" "$OPTS" - ;; - --libs-only-l) - OPTS= - for opt in $lib_flags - do - case "x$opt" in - x-l*) - [ -n "$OPTS" ] && OPTS="$OPTS " - OPTS="${OPTS}${opt}" - ;; - esac - done - printf "%s\n" "$OPTS" - ;; - --libs-only-other) - OPTS= - for opt in $lib_flags - do - case "x$opt" in - x-[lL]*) - ;; - *) - [ -n "$OPTS" ] && OPTS="$OPTS " - OPTS="${OPTS}${opt}" - ;; - esac - done - printf "%s\n" "$OPTS" - ;; - # identification - --version) - echo "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@" - ;; - --abi-version) - echo "@VERSION@" | sed -e 's/:/./g' - ;; - # locations - --bindir) - echo "${bindir}" - ;; - --datadir) - echo "${datadir}" - ;; - --libdir) - echo "${libdir}" - ;; - --mandir) - echo "${mandir}" - ;; - # general info - --help) - cat <<ENDHELP -Usage: ${THIS}-config [options] - -Options: - --prefix echos the package-prefix of ${THIS} - --prefix=ARG sets the package-prefix of ${THIS} - --exec-prefix echos the executable-prefix of ${THIS} - --exec-prefix=ARG sets the executable-prefix of ${THIS} - - --cflags echos the C compiler flags needed to compile with ${THIS} - --libs echos the libraries needed to link with ${THIS} - - --libs-only-L echos -L linker options (search path) for ${THIS} - --libs-only-l echos -l linker options (libraries) for ${THIS} - --libs-only-other echos linker options other than -L/-l - - --version echos the release+patchdate version of ${THIS} - --abi-version echos the ABI version of ${THIS} - - --bindir echos the directory containing ${THIS} programs - --datadir echos the directory containing ${THIS} data - --libdir echos the directory containing ${THIS} libraries - --mandir echos the directory containing ${THIS} manual pages - - --help prints this message -ENDHELP - ;; - --error|*) - @SHELL@ "$0" --help 1>&2 - exit 1 - ;; - esac - shift -done -# vile:shmode diff --git a/contrib/dialog/dialog.1 b/contrib/dialog/dialog.1 deleted file mode 100644 index 6ff9293b8574..000000000000 --- a/contrib/dialog/dialog.1 +++ /dev/null @@ -1,2041 +0,0 @@ -'\" t -.\" $Id: dialog.1,v 1.226 2021/01/17 17:25:01 tom Exp $ -.\" Copyright 2005-2020,2021 Thomas E. Dickey -.\" -.\" This program is free software; you can redistribute it and/or modify -.\" it under the terms of the GNU Lesser General Public License, version 2.1 -.\" as published by the Free Software Foundation. -.\" -.\" This program is distributed in the hope that it will be useful, but -.\" WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -.\" Lesser General Public License for more details. -.\" -.\" You should have received a copy of the GNU Lesser General Public -.\" License along with this program; if not, write to -.\" Free Software Foundation, Inc. -.\" 51 Franklin St., Fifth Floor -.\" Boston, MA 02110, USA. -.\" -.\" definitions for renaming -.ds p dialog -.ds l dialog -.ds L Dialog -.ds D DIALOG -.\" -.de ES -.ne 8 -.IP -.. -.de Ex -.RS +7 -.PP -.nf -.ft CW -.. -.de Ee -.fi -.ft R -.RE -.. -.\" Bulleted paragraph -.de bP -.ie n .IP \(bu 4 -.el .IP \(bu 2 -.. -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' -. -.TH \*D 1 "" "$Date: 2021/01/17 17:25:01 $" -.SH NAME -dialog \- display dialog boxes from shell scripts -.SH SYNOPSIS -\fB\*p \-\-clear\fP -.br -.BI "\*p \-\-create\-rc " file -.br -\fB\*p \-\-print\-maxsize\fP -.br -\fB\*p\fP -\fIcommon-options\fP -\fIbox-options\fP -.SH DESCRIPTION -\fB\*L\fP -is a program that will let you present a variety of questions or -display messages using dialog boxes from a shell script. -These types of dialog boxes are implemented -(though not all are necessarily compiled into \fB\*p\fR): -.RS -.LP -.nh -.na -.BR buildlist ", " -.BR calendar ", " -.BR checklist ", " -.BR dselect ", " -.BR editbox ", " -.BR form ", " -.BR fselect ", " -.BR gauge ", " -.BR infobox ", " -.BR inputbox ", " -.BR inputmenu ", " -.BR menu ", " -.BR mixedform ", " -.BR mixedgauge ", " -.BR msgbox " (message), " -.BR passwordbox ", " -.BR passwordform ", " -.BR pause ", " -.BR prgbox ", " -.BR programbox ", " -.BR progressbox ", " -.BR radiolist ", " -.BR rangebox ", " -.BR tailbox ", " -.BR tailboxbg ", " -.BR textbox ", " -.BR timebox ", " -.BR treeview ", and " -.BR yesno " (yes/no)." -.ad -.RE -.PP -You can put more than one dialog box into a script: -.bP -Use the "\fB\-\-and\-widget\fP" token to force \fB\*p\fP to proceed to the next -dialog unless you have pressed ESC to cancel, or -.bP -Simply add the tokens for the next dialog box, making a chain. -\*L stops chaining when the return code from a dialog is nonzero, -e.g., Cancel or No (see DIAGNOSTICS). -.PP -Some widgets, e.g., checklist, will write text to \fB\*p\fP's output. -Normally that is the standard error, but there are options for -changing this: -\*(``\fB\-\-output\-fd\fP\*('', -\*(``\fB\-\-stderr\fP\*('' and -\*(``\fB\-\-stdout\fP\*(''. -No text is written if the Cancel button (or ESC) is pressed; -\fB\*p\fP exits immediately in that case. -. -.\" ************************************************************************ -.SH OPTIONS -All options begin with \*(``\fB--\fP\*('' -(two ASCII hyphens, -for the benefit of those using systems with deranged locale support). -.PP -A \*(``\fB--\fP\*('' by itself is used as an escape, -i.e., the next token on the command-line is not treated as an option. -.RS -.B \*p --title -- --Not an option -.RE -.PP -When a common (e.g., non-widget) option is repeated, -the last found is the one that is used. -Boolean options are handled specially so they can be cancelled, -by adding (or omitting) a \*(``no\*('' modifier -after the leading \*(``\fB--\fP\*(''. -For instance, \fB\-\-no-shadow\fP is documented here, -but \fB\-\-shadow\fP also is accepted. -.PP -The \*(``\fB\-\-args\fP\*('' option tells \fB\*p\fP to list the command-line -parameters to the standard error. -This is useful when debugging complex scripts using -the \*(``\fB--\fP\*('' and \*(``\fB\-\-file\fP\*('', -since the command-line may be rewritten as these are expanded. -.PP -The \*(``\fB\-\-file\fP\*('' option tells \fB\*p\fP to read parameters from -the file named as its value. -.RS -.B \*p --file \fIparameterfile -.RE -.PP -Blanks not within double-quotes are discarded -(use backslashes to quote single characters). -The result is inserted into the command-line, -replacing \*(``\fB\-\-file\fP\*('' and its option value. -Interpretation of the command-line resumes from that point. -If \fIparameterfile\fP begins with \*(``&\*('', \fB\*p\fP -interprets the following text as a file descriptor number -rather than a filename. -.PP -Most widgets accept \fIheight\fP and \fIwidth\fP parameters, -which can be used to automatically size the widget to accommodate -multi-line message \fIprompt\fP values: -.bP -If the parameter is negative, -\fB\*l\fP uses the screen's size. -.bP -If the parameter is zero, -\fB\*l\fP uses minimum size for the widget to display the \fIprompt\fP -and data. -.bP -Otherwise, \fB\*l\fP uses the given size for the widget. -. -.SS \fBCommon Options\fP -Most of the common options are reset before processing each widget. -. -.IP "\fB--ascii-lines -Rather than draw graphics lines around boxes, -draw ASCII \*(``+\*('' and \*(``-\*('' in the same place. -See also \*(``\fB\-\-no\-lines\fR\*(''. -. -.IP "\fB--aspect \fIratio" -This gives you some control over the box dimensions when using auto -sizing (specifying 0 for height and width). -It represents width / height. -The default is 9, which means 9 characters wide to every 1 line high. -. -.IP "\fB--backtitle \fIbacktitle" -Specifies a -\fIbacktitle\fP -string to be displayed on the backdrop, at the top of the screen. -. -.IP "\fB--begin \fIy x" -Specify the position of the upper left corner of a dialog box on the screen. -. -.IP "\fB--cancel-label \fIstring" -Override the label used for \*(``Cancel\*('' buttons. -. -.IP "\fB--clear" -Clears the widget screen, keeping only the screen_color background. -Use this when you combine widgets -with \*(``\fB\-\-and\-widget\fR\*('' to erase the -contents of a previous widget on the screen, so it won't be seen -under the contents of a following widget. -Understand this as the complement of \*(``\fB\-\-keep\-window\fR\*(''. -To compare the effects, use these: -. -.ES -All three widgets visible, staircase effect, ordered 1,2,3: -.Ex -\*p \e - --begin 2 2 --yesno "" 0 0 \e - --and-widget --begin 4 4 --yesno "" 0 0 \e - --and-widget --begin 6 6 --yesno "" 0 0 -.Ee -. -.ES -Only the last widget is left visible: -.Ex -\*p \e - --clear --begin 2 2 --yesno "" 0 0 \e - --and-widget --clear --begin 4 4 --yesno "" 0 0 \e - --and-widget --begin 6 6 --yesno "" 0 0 -.Ee -. -.ES -All three widgets visible, staircase effect, ordered 3,2,1: -.Ex -\*p \e - --keep-window --begin 2 2 --yesno "" 0 0 \e - --and-widget --keep-window --begin 4 4 --yesno "" 0 0 \e - --and-widget --begin 6 6 --yesno "" 0 0 -.Ee -. -.ES -First and third widget visible, staircase effect, ordered 3,1: -.Ex -\*p \e - --keep-window --begin 2 2 --yesno "" 0 0 \e - --and-widget --clear --begin 4 4 --yesno "" 0 0 \e - --and-widget --begin 6 6 --yesno "" 0 0 -.Ee -.IP -Note, if you want to restore original console colors and send your -cursor home after the dialog program has exited, use the \fBclear\fR\ (1) -command. -Conversely, if you want to clear the screen and send your cursor to -the lower left after the \fB\*p\fP program has exited, use the -\fB\-\-erase\-on\-exit\fR\ option. -. -.IP "\fB--colors" -Interpret embedded \*(``\eZ\*('' sequences in the dialog text -by the following character, -which tells \fB\*p\fP to set colors or video attributes: -.RS -.bP -0 through 7 are the ANSI color numbers used in curses: -black, -red, -green, -yellow, -blue, -magenta, -cyan and -white respectively. -.bP -Bold is set by 'b', reset by 'B'. -.bP -Reverse is set by 'r', reset by 'R'. -.bP -Underline is set by 'u', reset by 'U'. -.bP -The settings are cumulative, e.g., \*(``\eZb\eZ1\*('' makes the following text -bold (perhaps bright) red. -.bP -Restore normal settings with \*(``\eZn\*(''. -.RE -. -.IP "\fB--column-separator \fIstring" -Tell \fB\*p\fP to split data for radio/checkboxes and menus on the -occurrences of the given string, and to align the split data into columns. -. -.IP "\fB--cr-wrap" -Interpret embedded newlines in the dialog text as a newline on the screen. -Otherwise, \fB\*p\fR will only wrap lines -where needed to fit inside the text box. -.IP -Even though you can control line breaks with this, -\fB\*L\fR will still wrap any lines that are too long for the width of the box. -Without cr-wrap, the layout of your text may be formatted to look nice -in the source code of your script without affecting the way it will -look in the dialog. -.IP -The \fIcr\-wrap\fP feature is implemented subject to these conditions: -.RS -.bP -the string contains \*(``\en\*('' and the \fB\-\-no\-nl\-expand\fP option is -not used, or -.bP -the \fB\-\-trim\fP option is used. -.RE -.IP -For more information, see \fBWhitespace Options\fP. -. -.IP "\fB--create-rc \fIfile" -When -\fB\*p\fP -supports run-time configuration, -this can be used to dump a sample configuration file to the file specified -by -.IR file "." -. -.IP "\fB--cursor-off-label" -Place the terminal cursor at the end of a button instead of on the -first character of the button label. -This is useful to reduce visual confusion when the cursor coloration -interacts poorly with the button-label text colors. -. -.IP "\fB--date-format \fIformat" -If the host provides \fBstrftime\fP, -this option allows you to specify the format of the date printed for -the \fB\-\-calendar\fP widget. -The time of day (hour, minute, second) are the current local time. -. -.IP "\fB--defaultno" -Make the default value of the -\fByes/no\fP -box a -.BR No . -Likewise, treat the default button of widgets that provide -\*(``OK\*('' and \*(``Cancel\*('' -as a \fICancel\fP. -If \*(``\fB\-\-no\-cancel\fP\*('' or \*(``\fB\-\-visit\-items\fP\*('' are given -those options overrides this, -making the default button always \*(``Yes\*('' -(internally the same as \*(``OK\*(''). -. -.IP "\fB--default-button \fIstring" -Set the default (preselected) button in a widget. -By preselecting a button, -a script makes it possible for the user to simply press \fIEnter\fP -to proceed through a dialog with minimum interaction. -.IP -The option's value is the name of the button: -.IR ok , -.IR yes , -.IR cancel , -.IR no , -.IR help "\ or" -.IR extra . -.IP -Normally the first button in each widget is the default. -The first button shown is determined by the widget -together with the \*(``\fB\-\-no\-ok\fP\*('' -and \*(``\fB\-\-no\-cancel\fP\*('' options. -If this option is not given, there is no default button assigned. -. -.IP "\fB--default-item \fIstring" -Set the default item in a checklist, form or menu box. -Normally the first item in the box is the default. -. -.IP "\fB--erase-on-exit" -When \fB\*p\fP exits, remove the dialog widget, erasing the entire -screen to its native background color, and place the terminal cursor -at the lower left corner. -. -.IP "\fB--exit-label \fIstring" -Override the label used for \*(``EXIT\*('' buttons. -. -.IP "\fB--extra-button" -Show an extra button, between \*(``OK\*('' and \*(``Cancel\*('' buttons. -. -.IP "\fB--extra-label \fIstring" -Override the label used for \*(``Extra\*('' buttons. -Note: for inputmenu widgets, this defaults to \*(``Rename\*(''. -. -.IP "\fB--help" -Prints the help message to the standard output and exits. -The help message is also printed if no options are given, -or if an unrecognized option is given. -. -.IP "\fB--help-button" -Show a help-button after \*(``OK\*('' and \*(``Cancel\*('' buttons -in boxes which have a list of tagged items -(i.e., checklist, radiolist, menu, and treeview boxes). -.IP -On exit, the return status indicates that the Help button was pressed. -\fB\*L\fP also writes a message to its output -after the token \*(``HELP\*('': -.RS -.bP -If "\fB\-\-item\-help\fR" is also given, the item-help text is written. -.bP -Otherwise, the item's tag (the first field) is written. -.RE -.IP -.IP -You can use the \fB\-\-help\-tags\fP option and/or set the DIALOG_ITEM_HELP -environment variable to modify these messages and exit-status. -.IP -This option can be applied to other widgets, -which have an \*(``OK\*('' button, -whether or not the \*(``Cancel\*('' button is used. -The return status and output are not treated specially for the other widgets; -the help-button is just an extra button. -. -.IP "\fB--help-label \fIstring" -Override the label used for \*(``Help\*('' buttons. -. -.IP "\fB--help-status" -If the help-button is selected, -writes the checklist, radiolist or form information -after the item-help \*(``HELP\*('' information. -This can be used to reconstruct the state of a checklist after processing -the help request. -. -.IP "\fB--help-tags" -Modify the messages written on exit for \fB\-\-help\-button\fP -by making them always just the item's tag. -This does not affect the exit status code. -. -.IP "\fB--hfile \fIfilename" -Display the given file using a textbox when the user presses F1. -. -.IP "\fB--hline \fIstring" -Display the given string centered at the bottom of the widget. -. -.IP "\fB--ignore" -Ignore options that \fB\*p\fP does not recognize. -Some well-known ones such as \*(``\fB\-\-icon\fP\*('' are ignored anyway, -but this is a better choice for compatibility with other implementations. -. -.IP "\fB--input-fd \fIfd" -Read keyboard input from the given file descriptor. -Most \fB\*p\fR scripts read from the standard input, -but the gauge widget reads a pipe (which is always standard input). -Some configurations do not work properly when -\fB\*p\fP tries to reopen the terminal. -Use this option (with appropriate juggling of file-descriptors) -if your script must work in that type of environment. -. -.IP "\fB--insecure" -Makes the password widget friendlier but less secure, -by echoing asterisks for each character. -. -.IP "\fB--iso-week" -Set the starting point for the week-number -shown in the \*(``\fB\-\-calendar\fP\*('' option -according to ISO-8601, which starts numbering -with the first week which includes a Thursday in January. -. -.IP "\fB--item-help" -Interpret the tags data for checklist, radiolist and menu boxes -adding a column which is displayed in the bottom line of the -screen, for the currently selected item. -. -.IP "\fB--keep-tite" -When built with \fBncurses\fP, -\fB\*p\fP normally checks to see if it is running in an \fBxterm\fP, -and in that case tries to suppress the initialization strings that -would make it switch to the alternate screen. -Switching between the normal and alternate screens -is visually distracting in a script which runs \fB\*p\fP -several times. -Use this option to allow \fB\*p\fP to use those initialization strings. -. -.IP "\fB--keep-window" -Normally when \fB\*p\fR performs several \fBtailboxbg\fR widgets -connected by \*(``\fB\-\-and\-widget\fR\*('', -it clears the old widget from the screen by painting over it. -Use this option to suppress that repainting. -.IP -At exit, \fB\*p\fR repaints all of the widgets which have been -marked with \*(``\fB\-\-keep\-window\fR\*('', -even if they are not \fBtailboxbg\fR widgets. -That causes them to be repainted in reverse order. -See the discussion of the \*(``\fB\-\-clear\fR\*('' option for examples. -. -.IP "\fB--last-key" -At exit, report the last key which the user entered. -This is the curses key code rather than a symbol or literal character, -and is only reported for keys which are bound to an action. -It can be used by scripts to distinguish between two keys which are -bound to the same action. -. -.IP "\fB--max-input \fIsize" -Limit input strings to the given size. -If not specified, the limit is 2048. -. -.IP "\fB--no-cancel" -Suppress the \*(``Cancel\*('' button in checklist, inputbox and menu box modes. -A script can still test if the user pressed the ESC key to cancel to quit. -. -.IP "\fB--no-collapse" -Normally \fB\*p\fR converts tabs to spaces and reduces multiple -spaces to a single space for text which is displayed in a message boxes, etc. -Use this option to disable that feature. -Note that \fB\*p\fR will still wrap text, -subject to the \*(``\fB\-\-cr\-wrap\fR\*('' -and \*(``\fB\-\-trim\fR\*('' options. -.IP -The \fIno\-collapse\fP feature is implemented subject to these conditions: -.RS -.bP -the string contains \*(``\en\*('' and the \fB\-\-no\-nl\-expand\fP option is -not used, or -.bP -the \fB\-\-trim\fP option is not used. -.RE -.IP -For more information, see \fBWhitespace Options\fP. -. -.IP "\fB\-\-no\-hot\-list" -Tells -\fB\*p\fP -to suppress the hotkey feature for lists, e.g., the checkbox, menus. -.IP -Normally, the first uppercase character of a list entry will be highlighted, -and typing that character will move the focus to that entry. -This option suppresses both the highlighting and the movement. -.IP -Hotkeys for buttons (\*(``OK\*('' , \*(``Cancel\*('', etc.) are unaffected. -. -.IP "\fB--no-items" -Some widgets (checklist, inputmenu, radiolist, menu) display a list -with two columns (a \*(``tag\*('' and \*(``item\*('', -i.e., \*(``description\*(''). -This option tells \fB\*p\fP to read shorter rows, -omitting the \*(``item\*('' part of the list. -This is occasionally useful, e.g., if the tags provide enough information. -.IP -See also \fB\-\-no\-tags\fP. -If both options are given, this one is ignored. -. -.IP "\fB--no-kill" -Tells -\fB\*p\fP -to put the -\fBtailboxbg\fP -box in the background, -printing its process id to \fB\*p\fP's output. -SIGHUP is disabled for the background process. -. -.IP "\fB--no-label \fIstring" -Override the label used for \*(``No\*('' buttons. -. -.IP "\fB--no-lines -Rather than draw lines around boxes, draw spaces in the same place. -See also \*(``\fB\-\-ascii\-lines\fR\*(''. -. -.IP "\fB--no-mouse -Do not enable the mouse. -. -.IP "\fB--no-nl-expand -Do not convert \*(``\en\*('' substrings of the message/prompt text into -literal newlines. -.IP -The \fIno\-nl\-expand\fP feature is used only if -the string contains \*(``\en\*('' so that there is something to convert. -.IP -For more information, see \fBWhitespace Options\fP. -. -.IP "\fB--no-ok" -Suppress the \*(``OK\*('' button, so that it is not displayed. -A script can still test if the user pressed -the \*(``Enter\*('' key to accept the data: -.RS -.bP -The \*(``Enter\*('' key is always handled as the \*(``OK\*('' button -when the \fB\-\-no\-ok\fP option is used. -That is, by default it is bound to the \fILEAVE\fP virtual key. -.IP -When \fB\-\-no\-ok\fP is not used, -you can use the the \fITab\fP key to move the cursor through the -fields and buttons on the widget. -In that case, the \*(``Enter\*('' key activates the current button -if the cursor is positioned on a button. -.bP -To provide for the case where you want to activate a button -when using \fB\-\-no\-ok\fP, -there is another virtual key \fILEAVE\fP, -which activates the current button. -By default, \fB^D\fP (EOF) is bound to that key. -.RE -. -.IP "\fB--no-shadow" -Suppress shadows that would be drawn to the right and bottom of each dialog box. -. -.IP "\fB--no-tags" -Some widgets (checklist, inputmenu, radiolist, menu) display a list -with two columns (a \*(``tag\*('' and \*(``description\*(''). -The tag is useful for scripting, but may not help the user. -The \fB\-\-no\-tags\fP option (from Xdialog) may be used to suppress the -column of tags from the display. -Unlike the \fB\-\-no\-items\fP option, -this does not affect the data which is read from the script. -.IP -Xdialog does not display the tag column for the analogous buildlist -and treeview widgets; \fB\*p\fP does the same. -.IP -Normally \fB\*p\fP allows you to quickly move to entries on the displayed list, -by matching a single character to the first character of the tag. -When the \fB\-\-no\-tags\fP option is given, \fB\*p\fP matches against -the first character of the description. -In either case, the matchable character is highlighted. -. -.IP "\fB--ok-label \fIstring" -Override the label used for \*(``OK\*('' buttons. -. -.IP "\fB--output-fd \fIfd" -Direct output to the given file descriptor. -Most \fB\*p\fR scripts write to the standard error, -but error messages may also be written there, depending on your script. -. -.IP "\fB--separator \fIstring" -.IP "\fB--output-separator \fIstring" -Specify a string that will separate the output on \fB\*p\fP's output from -checklists, rather than a newline (for \fB\-\-separate\-output\fP) or a space. -This applies to other widgets such as forms and editboxes which normally -use a newline. -. -.IP "\fB--print-maxsize" -Print the maximum size of dialog boxes, i.e., the screen size, -to \fB\*p\fP's output. -This may be used alone, without other options. -. -.IP "\fB--print-size" -Prints the size of each dialog box to \fB\*p\fP's output -when the box is initialized. -. -.IP "\fB--print-text-only \fIstring [ height [ width ] ]" -Prints the string as it would be wrapped in a message box -to \fB\*p\fP's output. -.IP -Because the optional \fIheight\fP and \fIwidth\fP default to zero, -if they are omitted, \fB\*p\fP autosizes according to the screen dimensions. -. -.IP "\fB--print-text-size \fIstring [ height [ width ] ]" -Prints the size of the string as it would be wrapped in a message box, -to \fB\*p\fP's output, -as -.Ex -height width -.Ee -.IP -Because the optional \fIheight\fP and \fIwidth\fP parameters default to zero, -if they are omitted, \fB\*p\fP autosizes according to the screen dimensions. -. -.IP "\fB--print-version" -Prints \fB\*p\fR's version to \fB\*p\fP's output. -This may be used alone, without other options. -It does not cause \fB\*l\fP to exit by itself. -. -.IP "\fB--quoted" -Normally \fB\*p\fP quotes the strings returned by checklist's -as well as the item-help text. -Use this option to quote all string results as needed -(i.e., if the string contains whitespace or a single or double-quote character). -. -.IP "\fB--reorder" -By default, the buildlist widget uses the same order for the output (right) -list as for the input (left). -Use this option to tell \fB\*p\fP to use the order -in which a user adds selections to the output list. -. -.IP "\fB--scrollbar" -For widgets holding a scrollable set of data, -draw a scrollbar on its right-margin. -This does not respond to the mouse. -. -.IP "\fB--separate-output" -For certain widgets (buildlist, checklist, treeview), -output result one line at a time, with no quoting. -This facilitates parsing by another program. -. -.IP "\fB--separate-widget \fIstring" -Specify a string that will separate the output on \fB\*p\fP's output from -each widget. -This is used to simplify parsing the result of a dialog with several widgets. -If this option is not given, -the default separator string is a tab character. -. -.IP "\fB--single-quoted" -Use single-quoting as needed (and no quotes if unneeded) for the -output of checklist's as well as the item-help text. -.IP -If this option is not set, \fB\*p\fP may use double quotes around each item. -In either case, -\fB\*p\fP adds backslashes to make the output useful in shell scripts. -.IP -Single quotes would be needed if -the string contains whitespace or a single or double-quote character. -. -.IP "\fB--size-err" -Check the resulting size of a dialog box before trying to use it, -printing the resulting size if it is larger than the screen. -(This option is obsolete, since all new-window calls are checked). -. -.IP "\fB--sleep \fIsecs" -Sleep (delay) for the given number of seconds after processing a dialog box. -. -.IP "\fB--stderr" -Direct output to the standard error. -This is the default, since curses normally writes screen updates to -the standard output. -. -.IP "\fB--stdout" -Direct output to the standard output. -This option is provided for compatibility with Xdialog, -however using it in portable scripts is not recommended, -since curses normally writes its screen updates to the standard output. -If you use this option, \fB\*p\fR attempts to reopen the terminal -so it can write to the display. -Depending on the platform and your environment, that may fail. -. -.IP "\fB--tab-correct" -Convert each tab character to one or more spaces -(for the \fBtextbox\fP widget; otherwise to a single space). -Otherwise, tabs are rendered according to the curses library's interpretation. -The \fB\-\-no\-collapse\fP option disables tab expansion. -. -.IP "\fB--tab-len \fIn" -Specify the number of spaces that a tab character occupies if the -\*(``\fB\-\-tab\-correct\fP\*('' option is given. -The default is 8. -This option is only effective for the \fBtextbox\fP widget. -. -.IP "\fB--time-format \fIformat" -If the host provides \fBstrftime\fP, -this option allows you to specify the format of the time printed for -the \fB\-\-timebox\fP widget. -The day, month, year values in this case are for the current local time. -. -.IP "\fB--timeout \fIsecs" -Timeout if no user response within the given number of seconds. -A timeout of zero seconds is ignored. -.IP -Normally a timeout causes an ESC character to be entered in the current widget, -cancelling it. -Other widgets may still be on the screen; -these are not cancelled. -Set the \fBDIALOG_TIMEOUT\fP environment variable to tell \fB\*l\fP to -directly exit instead, i.e., cancelling all widgets on the screen. -.IP -This option is ignored by the \*(``\fB\-\-pause\fP\*('' widget. -It is also overridden -if the background \*(``\fB\-\-tailboxbg\fP\*('' option is used -to set up multiple concurrent widgets. -. -.IP "\fB--title \fItitle" -Specifies a -\fItitle\fP -string to be displayed at the top of the dialog box. -. -.IP "\fB--trace \fIfilename" -logs the command-line parameters, -keystrokes and other information to the given file. -If \fB\*l\fP reads a configure file, it is logged as well. -Piped input to the \fIgauge\fP widget is logged. -Use control/T to log a picture of the current dialog window. -.IP -The \fB\*p\fR program handles some command-line parameters specially, -and removes them from the parameter list as they are processed. -For example, if the first option is \fB\-\-trace\fP, -then that is processed (and removed) before \fB\*p\fR initializes the display. -. -.IP "\fB--week-start \fIday" -sets the starting day for the week, -used in the \*(``\fB\-\-calendar\fP\*('' option. -The \fIday\fP parameter can be -.RS -.bP -a number (0 to 6, Sunday through Saturday using POSIX) or -.bP -the special value \*(``locale\*('' (this works with systems using glibc, -providing an extension to the \fBlocale\fP command, -the \fBfirst_weekday\fP value). -.bP -a string matching one of the abbreviations for the day of the week -shown in the \fBcalendar\fP widget, e.g., \*(``Mo\*('' for \*(``Monday\*(''. -.RE -. -.IP "\fB--trim" -eliminate leading blanks, -trim literal newlines and repeated blanks from message text. -.IP -The \fItrim\fP feature is implemented subject to these conditions: -.RS -.bP -the string does not contain \*(``\en\*('' or -.bP -the \fB\-\-no\-nl\-expand\fP option is used. -.RE -.IP -For more information, see \fBWhitespace Options\fP. -. -.IP -See also the \*(``\fB\-\-cr\-wrap\fR\*('' -and \*(``\fB\-\-no\-collapse\fR\*('' options. -. -.IP "\fB--version" -Prints \fB\*p\fR's version to the standard output, and exits. -See also \*(``\fB\-\-print\-version\fP\*(''. -. -.IP "\fB--visit-items" -Modify the tab-traversal of checklist, radiolist, menubox and inputmenu -to include the list of items as one of the states. -This is useful as a visual aid, -i.e., the cursor position helps some users. -.IP -When this option is given, the cursor is initially placed on the list. -Abbreviations (the first letter of the tag) apply to the list items. -If you tab to the button row, abbreviations apply to the buttons. -. -.IP "\fB--yes-label \fIstring" -Override the label used for \*(``Yes\*('' buttons. -. -.\" ************************************************************************ -.SS Box Options -All dialog boxes have at least three parameters: -.TP 7 -\fItext\fP -the caption or contents of the box. -.TP 7 -\fIheight\fP -the height of the dialog box. -.TP 7 -\fIwidth\fP -the width of the dialog box. -.PP -Other parameters depend on the box type. -. -. -.IP "\fB\-\-buildlist \fItext height width list-height \fR[ \fItag item status \fR] \fI..." -A \fBbuildlist\fP dialog displays two lists, side-by-side. -The list on the left shows unselected items. -The list on the right shows selected items. -As items are selected or unselected, they move between the lists. -.IP -Use a carriage return or the \*(``OK\*('' button to accept the current value -in the selected-window and exit. -The results are written using the order displayed in the selected-window. -.IP -The initial on/off state of each entry is specified by -.IR status "." -.IP -The dialog behaves like a \fBmenu\fP, using the \fB\-\-visit\-items\fP -to control whether the cursor is allowed to visit the lists directly. -.RS -.bP -If \fB\-\-visit\-items\fP is not given, -tab-traversal uses two states (OK/Cancel). -.bP -If \fB\-\-visit\-items\fP is given, -tab-traversal uses four states (Left/Right/OK/Cancel). -.RE -.IP -Whether or not \fB\-\-visit\-items\fP is given, -it is possible to move the highlight between the two lists using -the default \*(``^\*('' (left-column) and \*(``$\*('' (right-column) keys. -.IP -On exit, a list of the \fItag\fP -strings of those entries that are turned on -will be printed on \fB\*p\fP's output. -.IP -If the "\fB\-\-separate\-output\fP" option is not given, -the strings will be quoted as needed -to make it simple for scripts to separate them. -By default, this uses double-quotes, as needed. -See the \*(``\fB\-\-single\-quoted\fP\*('' option, -which modifies the quoting behavior. -. -.IP "\fB--calendar \fItext height width day month year" -A \fBcalendar\fP box displays -month, day and year in separately adjustable windows. -If the values for day, month or year are missing or negative, -the current date's corresponding values are used. -You can increment or decrement any of those using the -left-, up-, right-, and down-arrows. -Use vi-style h, j, k and l for moving around the array of days in a month. -Use tab or backtab to move between windows. -If the year is given as zero, the current date is used as an initial value. -.IP -On exit, the date is printed in the form day/month/year. -The format can be overridden using the \fB\-\-date\-format\fP option. -. -.IP "\fB\-\-checklist \fItext height width list-height \fR[ \fItag item status \fR] \fI..." -A \fBchecklist\fP box is similar to a \fBmenu\fP box; -there are multiple entries presented in the form of a menu. -Another difference is -that you can indicate which entry is currently selected, by setting its -.IR status " to " on "." -Instead of choosing -one entry among the entries, each entry can be turned on or off by the user. -The initial on/off state of each entry is specified by -.IR status "." -.IP -On exit, a list of the \fItag\fP -strings of those entries that are turned on -will be printed on \fB\*p\fP's output. -.IP -If the \*(``\fB\-\-separate\-output\fP\*('' option is not given, -the strings will be quoted as needed -to make it simple for scripts to separate them. -By default, this uses double-quotes (as needed). -See the \*(``\fB\-\-single\-quoted\fP\*('' option, -which modifies the quoting behavior. -. -.IP "\fB\-\-dselect \fIfilepath height width\fR" -The directory-selection dialog displays a text-entry window -in which you can type a directory, -and above that a windows with directory names. -.IP -Here -\fBfilepath\fP -can be a filepath in which case the directory window -will display the contents of the path and the text-entry window will contain -the preselected directory. -.IP -Use tab or arrow keys to move between the windows. -Within the directory window, use the up/down arrow keys -to scroll the current selection. -Use the space-bar to copy the current selection into the text-entry -window. -.IP -Typing any printable characters switches focus to the text-entry window, -entering that character as well as scrolling the directory -window to the closest match. -.IP -Use a carriage return or the \*(``OK\*('' button to accept the current value -in the text-entry window and exit. -.IP -On exit, the contents of the text-entry window are written -to \fB\*p\fP's output. -. -.IP "\fB\-\-editbox \fIfilepath height width\fR" -The edit-box dialog displays a copy of the file. -You may edit it using -the \fIbackspace\fP, \fIdelete\fP and cursor keys -to correct typing errors. -It also recognizes pageup/pagedown. -Unlike the \fB\-\-inputbox\fP, -you must tab to the \*(``OK\*('' or \*(``Cancel\*('' buttons -to close the dialog. -Pressing the \*(``Enter\*('' key within the box will split -the corresponding line. -.IP -On exit, the contents of the edit window are written to \fB\*p\fP's output. -. -.nf -.IP "\fB\-\-form \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..." -.fi -The \fBform\fP dialog displays a form consisting of labels and fields, -which are positioned on a scrollable window by coordinates given in the script. -The field length \fIflen\fR and input-length \fIilen\fR tell how long -the field can be. -The former defines the length shown for a selected field, -while the latter defines the permissible length of the data entered in the -field. -.RS -.bP -If \fIflen\fR is zero, the corresponding field cannot be altered. -and the contents of the field determine the displayed-length. -.bP -If \fIflen\fR is negative, the corresponding field cannot be altered, -and the negated value of \fIflen\fR is used as the displayed-length. -.bP -If \fIilen\fR is zero, it is set to \fIflen\fR. -.RE -.IP -Use up/down arrows (or control/N, control/P) to move between fields. -Use tab to move between windows. -.IP -On exit, the contents of the form-fields are written to \fB\*p\fP's output, -each field separated by a newline. -The text used to fill non-editable fields -(\fIflen\fR is zero or negative) -is not written out. -. -. -.IP "\fB\-\-fselect \fIfilepath height width\fR" -The \fBfselect\fP (file-selection) dialog displays a text-entry window -in which you can type a filename (or directory), -and above that two windows with directory names and filenames. -.IP -Here -\fBfilepath\fP -can be a filepath in which case the file and directory windows -will display the contents of the path and the text-entry window will contain -the preselected filename. -.IP -Use tab or arrow keys to move between the windows. -Within the directory or filename windows, use the up/down arrow keys -to scroll the current selection. -Use the space-bar to copy the current selection into the text-entry -window. -.IP -Typing any printable characters switches focus to the text-entry window, -entering that character as well as scrolling the directory and filename -windows to the closest match. -.IP -Typing the space character forces \fB\*p\fP to complete the current -name (up to the point where there may be a match against more than one -entry). -.IP -Use a carriage return or the \*(``OK\*('' button to accept the current value -in the text-entry window and exit. -.IP -On exit, the contents of the text-entry window are written -to \fB\*p\fP's output. -. -. -.IP "\fB\-\-gauge \fItext height width [percent]\fR" -A -\fBgauge\fP -box displays a meter along the bottom of the box. -The meter indicates the percentage. -New percentages are read from -standard input, one integer per line. -The meter is updated -to reflect each new percentage. -If the standard input reads the string \*(``XXX\*('', -then the first line following is taken as an integer percentage, -then subsequent lines up to another \*(``XXX\*('' are used for a new prompt. -The gauge exits when EOF is reached on the standard input. -.IP -The \fIpercent\fR value denotes the initial percentage shown in the meter. -If not specified, it is zero. -.IP -On exit, no text is written to \fB\*p\fP's output. -The widget accepts no input, so the exit status is always OK. -. -. -.IP "\fB--infobox \fItext height width" -An \fBinfo\fP box is basically a \fBmessage\fP box. -However, in this case, \fB\*p\fP -will exit immediately after displaying the message to the user. -The screen is not cleared when \fB\*p\fP -exits, so that the message will remain on the screen until the calling -shell script clears it later. -This is useful when you want to inform -the user that some operations are carrying on that may require some -time to finish. -.IP -On exit, no text is written to \fB\*p\fP's output. -An OK exit status is returned. -. -. -.IP "\fB--inputbox \fItext height width [init]" -An -\fBinput\fP -box is useful when you want to ask questions that -require the user to input a string as the answer. -If init is supplied -it is used to initialize the input string. -When entering the string, -the \fIbackspace\fP, \fIdelete\fP and cursor keys -can be used to correct typing errors. -If the input string is longer than -can fit in the dialog box, the input field will be scrolled. -.IP -On exit, the input string will be printed on \fB\*p\fP's output. -. -. -.IP "\fB\-\-inputmenu \fItext height width menu-height \fR[ \fItag item \fR] \fI..." -An \fBinputmenu\fP box is very similar to an ordinary \fBmenu\fP box. -There are only a few differences between them: -.RS -.TP 4 -1. -The entries are not automatically centered but left adjusted. -.TP -2. -An extra button (called \fIRename\/\fP) is implied to rename -the current item when it is pressed. -.TP -3. -It is possible to rename the current entry by pressing the -\fIRename\fP -button. -Then \fB\*p\fP will write the following on \fB\*p\fP's output. -.IP -RENAMED <tag> <item> -.RE -. -. -.IP "\fB\-\-menu \fItext height width menu-height \fR[ \fItag item \fR] \fI..." -As its name suggests, a -\fBmenu\fP -box is a dialog box that can be used to present a list of choices in -the form of a menu for the user to choose. -Choices are displayed in the order given. -Each menu entry consists of a \fItag\fP string and an \fIitem\fP string. -The \fItag\fP -gives the entry a name to distinguish it from the other entries in the -menu. -The \fIitem\fP is a short description of the option that the entry represents. -The user can move between the menu entries by pressing the -cursor keys, the first letter of the \fItag\fP -as a hot-key, or the number keys \fI1\fP through \fI9\fP. -There are \fImenu-height\fP -entries displayed in the menu at one time, but the menu will be -scrolled if there are more entries than that. -.IP -On exit the \fItag\fP -of the chosen menu entry will be printed on \fB\*p\fP's output. -If the \*(``\fB\-\-help\-button\fR\*('' option is given, the corresponding help -text will be printed if the user selects the help button. -. -.nf -.IP "\fB\-\-mixedform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen itype \fR] \fI..." -.fi -The \fBmixedform\fP dialog displays a form consisting of labels and fields, -much like the \fB\-\-form\fP dialog. -It differs by adding a field-type parameter to each field's description. -Each bit in the type denotes an attribute of the field: -.RS -.TP 5 -1 -hidden, e.g., a password field. -.TP 5 -2 -readonly, e.g., a label. -.RE -. -.IP "\fB\-\-mixedgauge \fItext height width percent \fR[ \fItag1 item1 \fR] \fI..." -A \fBmixedgauge\fP box displays a meter along the bottom of the box. -The meter indicates the percentage. -.IP -It also displays a list of the \fItag\/\fP- and \fIitem\/\fP-values at the -top of the box. -See \*l(3) for the tag values. -.IP -The \fItext\fP is shown as a caption between the list and meter. -The \fIpercent\fR value denotes the initial percentage shown in the meter. -.IP -No provision is made for reading data from the standard input as \fB\-\-gauge\fP -does. -.IP -On exit, no text is written to \fB\*p\fP's output. -The widget accepts no input, so the exit status is always OK. -. -.IP "\fB--msgbox \fItext height width" -A \fBmessage\fP box is very similar to a \fByes/no\fP box. -The only difference between a \fBmessage\fP box and a \fByes/no\fP -box is that a \fBmessage\fP box has only a single \fBOK\fP button. -You can use this dialog box to display any message you like. -After reading the message, the user can press the \fIENTER\fP key so that -\fB\*p\fP will exit and the calling shell script can continue its operation. -.IP -If the message is too large for the space, -\fB\*p\fP may allow you to scroll it, -provided that the underlying curses implementation is capable enough. -In this case, a percentage is shown in the base of the widget. -.IP -On exit, no text is written to \fB\*p\fP's output. -Only an \*(``OK\*('' button is provided for input, -but an ESC exit status may be returned. -. -.IP "\fB\-\-pause \fItext height width seconds\fR" -A -\fBpause\fP -box displays a meter along the bottom of the box. -The meter indicates how many seconds remain until the end of the pause. -The pause exits when timeout is reached -or the user presses the OK button -(status OK) -or the user presses the CANCEL button -or Esc key. -.IP "\fB--passwordbox \fItext height width [init]" -A \fBpassword\fP box is similar to an input box, -except that the text the user enters is not displayed. -This is useful when prompting for passwords or other -sensitive information. -Be aware that if anything is passed in \*(``init\*('', it -will be visible in the system's process table to casual snoopers. -Also, it -is very confusing to the user to provide them with a default password they -cannot see. -For these reasons, using \*(``init\*('' is highly discouraged. -See \*(``\fB\-\-insecure\fP\*('' if you do not care about your password. -.IP -On exit, the input string will be printed on \fB\*p\fP's output. -. -. -.nf -.IP "\fB\-\-passwordform \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..." -.fi -This is identical to \fB\-\-form\fP except that all text fields are -treated as \fBpassword\fP widgets rather than \fBinputbox\fP widgets. -. -. -.IP "\fB--prgbox \fItext command height width" -.IP "\fB--prgbox \fIcommand height width" -A \fBprgbox\fP is very similar to a \fBprogrambox\fP. -.IP -This dialog box is used to display the output of a command that is -specified as an argument to \fBprgbox\fP. -.IP -After the command completes, the user can press the \fIENTER\fP key so that -\fB\*l\fP will exit and the calling shell script can continue its operation. -.IP -If four parameters are given, it displays the text under the title, -delineated from the scrolling file's contents. -If only three parameters are given, this text is omitted. -. -. -.IP "\fB--programbox \fItext height width" -.IP "\fB--programbox \fIheight width" -A \fBprogrambox\fP is very similar to a \fBprogressbox\fP. -The only difference between a \fBprogram\fP box and a \fBprogress\fP -box is that a \fBprogram\fP box displays an \fBOK\fP button -(but only after the command completes). -.IP -This dialog box is used to display the piped output of a command. -After the command completes, the user can press the \fIENTER\fP key so that -\fB\*l\fP will exit and the calling shell script can continue its operation. -.IP -If three parameters are given, it displays the text under the title, -delineated from the scrolling file's contents. -If only two parameters are given, this text is omitted. -. -. -.IP "\fB--progressbox \fItext height width" -.IP "\fB--progressbox \fIheight width" -A \fBprogressbox\fP is similar to an \fBtailbox\fP, -except that -.RS -.TP 3 -a) rather than displaying the contents of a file, -it displays the piped output of a command and -.TP 3 -b) it will exit when it reaches the end of the file -(there is no \*(``OK\*('' button). -.RE -.IP -If three parameters are given, it displays the text under the title, -delineated from the scrolling file's contents. -If only two parameters are given, this text is omitted. -. -. -.IP "\fB\-\-radiolist \fItext height width list-height \fR [ \fItag item status \fR] \fI..." -A \fBradiolist\fP box is similar to a \fBmenu\fP box. -The only difference is -that you can indicate which entry is currently selected, by setting its -.IR status " to " on "." -.IP -On exit, the tag of the selected item is written to \fB\*p\fP's output. -. -. -.nf -.IP "\fB--rangebox \fItext height width min-value max-value default-value" -.fi -Allow the user to select from a range of values, e.g., using a slider. -The dialog shows the current value as a bar (like the gauge dialog). -Tabs or arrow keys move the cursor between the buttons and the value. -When the cursor is on the value, -you can edit it by: -.RS -.TP 5 -left/right cursor movement to select a digit to modify -.TP 5 -+/- -characters to increment/decrement the digit by one -.TP 5 -0 through 9 -to set the digit to the given value -.RE -.IP -Some keys are also recognized in all cursor positions: -.RS -.TP 5 -home/end -set the value to its maximum or minimum -.TP 5 -pageup/pagedown -increment the value so that the slider moves by one column -.RE -. -. -.IP "\fB--tailbox \fIfile height width" -Display text from a file in a dialog box, -as in a \*(``tail -f\*('' command. -Scroll left/right using vi-style 'h' and 'l', or arrow-keys. -A '0' resets the scrolling. -.IP -On exit, no text is written to \fB\*p\fP's output. -Only an \*(``OK\*('' button is provided for input, -but an ESC exit status may be returned. -. -. -.IP "\fB--tailboxbg \fIfile height width" -Display text from a file in a dialog box as a background task, -as in a \*(``tail -f &\*('' command. -Scroll left/right using vi-style 'h' and 'l', or arrow-keys. -A '0' resets the scrolling. -.IP -\*L treats the background task specially if there are other -widgets (\fB\-\-and\-widget\fP) on the screen concurrently. -Until those widgets are closed (e.g., an \*(``OK\*(''), -\fB\*p\fP will perform all of the tailboxbg widgets in the same process, -polling for updates. -You may use a tab to traverse between the widgets on the screen, -and close them individually, e.g., by pressing \fIENTER\fP. -Once the non-tailboxbg widgets are closed, -\fB\*p\fP forks a copy of itself into the background, -and prints its process id if the \*(``\fB\-\-no\-kill\fP\*('' option -is given. -.IP -On exit, no text is written to \fB\*p\fP's output. -Only an \*(``EXIT\*('' button is provided for input, -but an ESC exit status may be returned. -.IP -NOTE: -Older versions of \fB\*p\fP forked immediately and attempted to -update the screen individually. -Besides being bad for performance, -it was unworkable. -Some older scripts may not work properly with the polled scheme. -. -. -.IP "\fB--textbox \fIfile height width" -A -\fBtext\fP -box lets you display the contents of a text file in a dialog box. -It is like a simple text file viewer. -The user can move through the file by using the -cursor, page-up, page-down -and \fIHOME/END\fR keys available on most keyboards. -If the lines are too long to be displayed in the box, -the \fILEFT/RIGHT\fP -keys can be used to scroll the text region horizontally. -You may also use vi-style keys h, j, k, and l in place of the cursor keys, -and B or N in place of the page-up and page-down keys. -Scroll up/down using vi-style 'k' and 'j', or arrow-keys. -Scroll left/right using vi-style 'h' and 'l', or arrow-keys. -A '0' resets the left/right scrolling. -For more convenience, -vi-style forward and backward searching functions are also provided. -.IP -On exit, no text is written to \fB\*p\fP's output. -Only an \*(``EXIT\*('' button is provided for input, -but an ESC exit status may be returned. -. -. -.IP "\fB--timebox \fItext height [width hour minute second]" -A dialog is displayed which allows you to select hour, minute and second. -If the values for hour, minute or second are missing or negative, -the current date's corresponding values are used. -You can increment or decrement any of those using the -left-, up-, right- and down-arrows. -Use tab or backtab to move between windows. -.IP -On exit, the result is printed in the form hour:minute:second. -The format can be overridden using the \fB\-\-time\-format\fP option. -. -. -.IP "\fB\-\-treeview \fItext height width list-height \fR[ \fItag item status depth \fR] \fI..." -Display data organized as a tree. -Each group of data contains a tag, -the text to display for the item, -its status (\*(``on\*('' or \*(``off\*('') -and the depth of the item in the tree. -.IP -Only one item can be selected (like the \fBradiolist\fP). -The tag is not displayed. -.IP -On exit, the tag of the selected item is written to \fB\*p\fP's output. -. -. -.IP "\fB--yesno \fItext height width" -A \fByes/no\fP dialog box of -size \fIheight\fP rows by \fIwidth\fP columns will be displayed. -The string specified by -\fItext\fP -is displayed inside the dialog box. -If this string is too long to fit -in one line, it will be automatically divided into multiple lines at -appropriate places. -The -\fItext\fP -string can also contain the sub-string -.RI """" \en """" -or newline characters -.RI ` \en ' -to control line breaking explicitly. -This dialog box is useful for -asking questions that require the user to answer either yes or no. -The dialog box has a -\fBYes\fP -button and a -\fBNo\fP -button, in which the user can switch between by pressing the -.IR TAB " key." -.IP -On exit, no text is written to \fB\*p\fP's output. -In addition to the \*(``Yes\*('' and \*(``No\*('' exit codes (see DIAGNOSTICS) -an ESC exit status may be returned. -.IP -The codes used for \*(``Yes\*('' and \*(``No\*('' -match those used for \*(``OK\*('' and \*(``Cancel\*('', -internally no distinction is made. -. -.\" ************************************************************************ -.SS "Obsolete Options" -.\" from cdialog 0.9a (Pako) -.IP "\fB--beep" -This was used to tell the original cdialog that it should make a beep -when the separate processes of the tailboxbg widget would repaint the screen. -. -.\" from cdialog 0.9a (Pako) -.IP "\fB--beep-after" -Beep after a user has completed a widget by pressing one of the buttons. -. -.\" ************************************************************************ -.SS "Whitespace Options" -.PP -These options can be used to transform whitespace (space, tab, newline) -as dialog reads the script: -.RS -.BR --cr-wrap , -.BR --no-collapse , -.BR --no-nl-expand ", and" -.B --trim -.RE -.PP -The options are not independent: -.bP -\fB\*L\fP checks if the script contains at least one \*(``\en\*('' -and (unless \fB\-\-no\-nl\-expand\fP is set) will ignore the -\fB\-\-no\-collapse\fP and \fB\-\-trim\fP options. -.bP -After checking for \*(``\en\*('' and the \fB\-\-no\-nl\-expand\fP option, -\fB\*l\fP handles the \fB\-\-trim\fP option. -.IP -If the \fB\-\-trim\fP option takes effect, -then \fB\*l\fP ignores \fB\-\-no\-collapse\fP. -It changes sequences of tabs, spaces -(and newlines unless \fB\-cr\-wrap\fP is set) to a single space. -.bP -If neither the \*(``\en\*('' or \fB\-\-trim\fP cases apply, -\fB\*l\fP checks \fB\-\-no\-collapse\fP to decide whether to reduce -sequences of tabs and spaces to a single space. -.IP -In this case, \fB\*l\fP ignores \fB\-\-cr\-wrap\fP and does not modify newlines. -.PP -Taking those dependencies into account, -here is a table summarizing the behavior -for the various combinations of options. -The table assumes that the script contains at least one \*(``\en\*('' -when the \fB\-\-no\-nl\-expand\fP option is not set. -.na -.RS 5 -.TS -tab(/) ; -lB lB lB lB lB -lB lB lB lB lB -_ _ _ _ _ -lw4 lw4 lw4 lw4 lw29. -cr-/no-/no-/trim/Result -wrap/collapse/nl-expand -no/no/no/no/T{ -Convert tab to space. -Convert newline to space. -Convert \*(``\en\*('' to newline. -T} -no/no/no/yes/T{ -Convert tab to space. -Convert newline to space. -Convert \*(``\en\*('' to newline. -T} -no/no/yes/no/T{ -Convert tab to space. -Do not convert newline to space. -Convert multiple-space to single. -Show \*(``\en\*('' literally. -T} -no/no/yes/yes/T{ -Convert tab to space. -Convert multiple-space to single. -Convert newline to space. -Show \*(``\en\*('' literally. -T} -no/yes/no/no/T{ -Convert newline to space. -Convert \*(``\en\*('' to newline. -T} -no/yes/no/yes/T{ -Convert newline to space. -Convert \*(``\en\*('' to newline. -T} -no/yes/yes/no/T{ -Do not convert newline to space. -Do not reduce multiple blanks. -Show \*(``\en\*('' literally. -T} -no/yes/yes/yes/T{ -Convert multiple-space to single. -Convert newline to space. -Show \*(``\en\*('' literally. -T} -yes/no/no/no/T{ -Convert tab to space. -Wrap on newline. -Convert \*(``\en\*('' to newline. -T} -yes/no/no/yes/T{ -Convert tab to space. -Wrap on newline. -Convert \*(``\en\*('' to newline. -T} -yes/no/yes/no/T{ -Convert tab to space. -Do not convert newline to space. -Convert multiple-space to single. -Show \*(``\en\*('' literally. -T} -yes/no/yes/yes/T{ -Convert tab to space. -Convert multiple-space to single. -Wrap on newline. -Show \*(``\en\*('' literally. -T} -yes/yes/no/no/T{ -Wrap on newline. -Convert \*(``\en\*('' to newline. -T} -yes/yes/no/yes/T{ -Wrap on newline. -Convert \*(``\en\*('' to newline. -T} -yes/yes/yes/no/T{ -Do not convert newline to space. -Do not reduce multiple blanks. -Show \*(``\en\*('' literally. -T} -yes/yes/yes/yes/T{ -Convert multiple-space to single. -Wrap on newline. -Show \*(``\en\*('' literally. -T} -.TE -.RE -.ad -. -.\" ************************************************************************ -.SH "RUN-TIME CONFIGURATION" -.TP 4 -1. -Create a sample configuration file by typing: -.LP -.Ex -\*p \-\-create\-rc \fIfile\fP -.Ee -.TP 4 -2. -At start, -\fB\*p\fP -determines the settings to use as follows: -.RS -.TP 4 -a) -if environment variable -\fBDIALOGRC\fP -is set, its value determines the name of the configuration file. -.TP 4 -b) -if the file in (a) is not found, use the file -\fI$HOME/.dialogrc\fP -as the configuration file. -.TP 4 -c) -if the file in (b) is not found, try using the GLOBALRC file determined at -compile-time, i.e., \fI/etc/dialogrc\fP. -.TP 4 -d) -if the file in (c) is not found, use compiled in defaults. -.RE -.TP 4 -3. -Edit the sample configuration file and copy it to some place that -\fB\*p\fP -can find, as stated in step 2 above. -. -.\" ************************************************************************ -.SH "KEY BINDINGS" -You can override or add to key bindings in \fB\*p\fP -by adding to the configuration file. -\fB\*L\fP's \fBbindkey\fP command maps single keys to its internal coding. -.Ex -bindkey \fIwidget\fP \fIcurses_key\fP \fIdialog_key\fP -.Ee -.PP -The \fIwidget\fP name can be \*(``*\*('' (all widgets), or -specific widgets such as \fBtextbox\fP. -Specific widget bindings override the \*(``*\*('' bindings. -User-defined bindings override the built-in bindings. -.PP -The \fIcurses_key\fP can be expressed in different forms: -.bP -It may be any of the names derived from -\fBcurses.h\fP, e.g., \*(``HELP\*('' from \*(``KEY_HELP\*(''. -.bP -\fB\*L\fP also recognizes ANSI control characters -such as \*(``^A\*('', \*(``^?\*('', -as well as C1-controls such as \*(``~A\*('' and \*(``~?\*(''. -.bP -Finally, \fB\*l\fP allows backslash escapes as in C. -Those can be octal character values such as \*(``\\033\*('' -(the ASCII escape character), -or the characters listed in this table: -.RS 10 -.TS -tab(/) ; -lI lI -_ _ -l l . -Escaped/Actual -\\b/backspace -\\f/form feed -\\n/new line (line feed) -\\r/carriage return -\\s/space -\\t/tab -\\^/\*(``^\*('' (caret) -\\?/\*(``?\*('' (question mark) -\\\\/\*(``\\\*('' (backslash) -_ -.TE -.RE -.PP -\fB\*L\fP's internal keycode names correspond to the -\fBDLG_KEYS_ENUM\fP type in -\fBdlg_keys.h\fP, e.g., \*(``HELP\*('' from \*(``DLGK_HELP\*(''. -.SS Widget Names -.PP -Some widgets (such as the formbox) have an area where fields can be edited. -Those are managed in a subwindow of the widget, and -may have separate keybindings from the main widget -because the subwindows are registered using a different name. -.RS 5 -.TS -tab(/) ; -lI lI lI -_ _ _ -l l l . -Widget/Window name/Subwindow Name -calendar/calendar -checklist/checklist -editbox/editbox/editbox2 -form/formbox/formfield -fselect/fselect/fselect2 -inputbox/inputbox/inputbox2 -menu/menubox/menu -msgbox/msgbox -pause/pause -progressbox/progressbox -radiolist/radiolist -tailbox/tailbox -textbox/textbox/searchbox -timebox/timebox -yesno/yesno -_ -.TE -.RE -.PP -Some widgets are actually other widgets, -using internal settings to modify the behavior. -Those use the same widget name as the actual widget: -.RS 5 -.TS -tab(/) ; -lI lI -_ _ -l l . -Widget/Actual Widget -dselect/fselect -infobox/msgbox -inputmenu/menu -mixedform/form -passwordbox/inputbox -passwordform/form -prgbox/progressbox -programbox/progressbox -tailboxbg/tailbox -_ -.TE -.RE -.SS Built-in Bindings -This manual page does not list the key bindings for each widget, -because that detailed information can be obtained by running \fB\*p\fP. -If you have set the \fB\-\-trace\fP option, -\fB\*p\fP writes the key-binding information for each widget -as it is registered. -.SS Example -Normally \fB\*p\fP uses different keys for navigating between the buttons -and editing part of a dialog versus navigating within the editing part. -That is, tab (and back-tab) traverse buttons -(or between buttons and the editing part), -while arrow keys traverse fields within the editing part. -Tabs are also recognized as a special case for traversing between -widgets, e.g., when using multiple tailboxbg widgets. -.PP -Some users may wish to use the same key for traversing within the -editing part as for traversing between buttons. -The form widget is written to support this sort of redefinition of -the keys, by adding a special group in \fBdlgk_keys.h\fP -for \*(``form\*('' (left/right/next/prev). -Here is an example binding demonstrating how to do this: -.Ex -bindkey formfield TAB form_NEXT -bindkey formbox TAB form_NEXT -bindkey formfield BTAB form_prev -bindkey formbox BTAB form_prev -.Ee -.PP -That type of redefinition would not be useful in other widgets, -e.g., calendar, due to the potentially large number of fields to traverse. -. -.\" ************************************************************************ -.SH ENVIRONMENT -.TP 15 -\fBDIALOGOPTS\fP -Define this variable to apply any of the common options to each widget. -Most of the common options are reset before processing each widget. -If you set the options in this environment variable, -they are applied to \fB\*p\fP's state after the reset. -As in the \*(``\fB\-\-file\fP\*('' option, -double-quotes and backslashes are interpreted. -.IP -The \*(``\fB\-\-file\fP\*('' option is not considered a common option -(so you cannot embed it within this environment variable). -.TP 15 -\fBDIALOGRC\fP -Define this variable if you want to specify the name of the configuration file -to use. -.TP 15 -\fBDIALOG_CANCEL\fP -.TP 15 -\fBDIALOG_ERROR\fP -.TP 15 -\fBDIALOG_ESC\fP -.TP 15 -\fBDIALOG_EXTRA\fP -.TP 15 -\fBDIALOG_HELP\fP -.TP 15 -\fBDIALOG_ITEM_HELP\fP -.TP 15 -\fBDIALOG_TIMEOUT\fP -.TP 15 -\fBDIALOG_OK\fP -Define any of these variables to change the exit code on -.RS -.bP -Cancel (1), -.bP -error (\-1), -.bP -ESC (255), -.bP -Extra (3), -.bP -Help (2), -.bP -Help with \fB\-\-item\-help\fP (2), -.bP -Timeout (5), or -.bP -OK (0). -.RE -.IP -Normally shell scripts cannot distinguish between \-1 and 255. -.TP 15 -\fBDIALOG_TTY\fP -Set this variable to \*(``1\*('' to provide compatibility with older versions -of \fB\*p\fP which assumed that if the script redirects the standard output, -that the \*(``\fB\-\-stdout\fP\*('' option was given. -.SH FILES -.TP 20 -\fI$HOME/.dialogrc\fP -default configuration file -.SH EXAMPLES -The \fB\*p\fP sources contain several samples -of how to use the different box options and how they look. -Just take a look into the directory \fBsamples/\fP of the source. -.SH DIAGNOSTICS -Exit status is subject to being overridden by environment variables. -The default values and corresponding environment variables -that can override them are: -.TP 5 -0 -if the \fBYES\fP or \fBOK\fP button is pressed (DIALOG_OK). -.TP 5 -1 -if the -.BR No " or " Cancel -button is pressed (DIALOG_CANCEL). -.TP 5 -2 -if the -.B Help -button is pressed (DIALOG_HELP), -.br -except as noted below about DIALOG_ITEM_HELP. -.TP 5 -3 -if the -.B Extra -button is pressed (DIALOG_EXTRA). -.TP 5 -4 -if the -.B Help -button is pressed, -.br -and the \fB\-\-item\-help\fP option is set -.br -and the DIALOG_ITEM_HELP environment variable is set to 4. -.IP -While any of the exit-codes can be overridden using environment variables, -this special case was introduced in 2004 to simplify compatibility. -\fB\*L\fP uses DIALOG_ITEM_HELP(4) internally, -but unless the environment variable is also set, -it changes that to DIALOG_HELP(2) on exit. -.TP 5 -5 -if a timeout expires and the \fBDIALOG_TIMEOUT\fP variable is set to 5. -.TP 5 -\-1 -if errors occur inside \fB\*p\fP (DIALOG_ERROR) -or \fB\*p\fP exits because the \fIESC\fP key (DIALOG_ESC) was pressed. -. -.\" ************************************************************************ -.SH PORTABILITY -\fB\*L\fP works with X/Open curses. -However, some implementations have deficiencies: -.RS 3 -.bP -HPUX curses (and perhaps others) do not open the terminal properly for -the \fInewterm\fP function. -This interferes with \fB\*p\fP's \fB\-\-input\-fd\fP option, -by preventing cursor-keys and similar escape sequences from being recognized. -.bP -NetBSD 5.1 curses has incomplete support for wide-characters. -\fB\*p\fP will build, but not all examples display properly. -.RE -.\" ************************************************************************ -.SH COMPATIBILITY -You may want to write scripts which run with -other \fB\*l\fP \*(``clones\*(''. -.SS Original Dialog -First, there is the \*(``original\*('' \fB\*p\fP program to consider -(versions 0.3 to 0.9). -It had some misspelled (or inconsistent) options. -The \fB\*p\fP program maps those deprecated options to the preferred ones. -They include: -.RS -.TS -tab(/) ; -lI lI -_ _ -l l. -Option/Treatment -\fB\-\-beep\-after\fP/ignored -\fB\-\-guage\fP/mapped to \fB\-\-gauge\fP -_ -.TE -.RE -.SS Xdialog -This is an X application, rather than a terminal program. -With some care, it is possible to write useful scripts that work -with both \fBXdialog\fP and \fB\*p\fP. -.PP -The \fB\*p\fP program ignores these options which are recognized -by \fBXdialog\fP: -.RS -.TS -tab(/) ; -lI lI -_ _ -l l. -Option/Treatment -\fB\-\-allow\-close\fP/ignored -\fB\-\-auto\-placement\fP/ignored -\fB\-\-fixed\-font\fP/ignored -\fB\-\-icon\fP/ignored -\fB\-\-keep\-colors\fP/ignored -\fB\-\-no\-close\fP/ignored -\fB\-\-no\-cr\-wrap\fP/ignored -\fB\-\-screen\-center\fP/ignored -\fB\-\-separator\fP/mapped to \fB\-\-separate\-output\fP -\fB\-\-smooth\fP/ignored -\fB\-\-under\-mouse\fP/ignored -\fB\-\-wmclass\fP/ignored -_ -.TE -.RE -.PP -\fBXdialog\fP's manpage has a section discussing its compatibility -with \fB\*p\fP. -There are some differences not shown in the manpage. -For example, the html documentation states -.RS -.PP -Note: former Xdialog releases used the \*(``\en\*('' (line feed) as a -results separator for the checklist widget; -this has been changed to \*(``/\*('' in Xdialog v1.5.0 -to make it compatible with (c)dialog. -In your old scripts using the Xdialog checklist, you -will then have to add the \fB\-\-separate\-output\fP option before the -\fB\-\-checklist\fP one. -.RE -.PP -\fB\*L\fP has not used a different separator; -the difference was likely due to confusion regarding some script. -.SS Whiptail -Then there is \fBwhiptail\fP. -For practical purposes, it is maintained by Debian -(very little work is done by its upstream developers). -Its documentation (README.whiptail) claims -.Ex -whiptail(1) is a lightweight replacement for \*p(1), -to provide dialog boxes for shell scripts. -It is built on the -newt windowing library rather than the ncurses library, allowing -it to be smaller in embedded environments such as installers, -rescue disks, etc. - -whiptail is designed to be drop-in compatible with \*p, but -has less features: some dialog boxes are not implemented, such -as tailbox, timebox, calendarbox, etc. -.Ee -.PP -Comparing actual sizes (Debian testing, 2007/1/10): -The total of sizes for \fBwhiptail\fP, -the newt, popt and slang libraries is 757\ KB. -The comparable number for \fB\*p\fP (counting ncurses) is 520\ KB. -Disregard the first paragraph. -.PP -The second paragraph is misleading, since \fBwhiptail\fP -also does not work for common options of \fB\*p\fP, -such as the gauge box. -\fBwhiptail\fP is less compatible with \fB\*p\fP than the -original mid-1990s dialog 0.4 program. -.PP -\fBwhiptail\fP's manpage borrows features from \fB\*p\fP, e.g., -but oddly cites only \fB\*p\fP versions up to 0.4 (1994) as a source. -That is, its manpage refers to features which -were borrowed from more recent versions of \fB\*p\fP, e.g., -.bP -\fB\-\-gauge\fP (from 0.5) -.bP -\fB\-\-passwordbox\fP (from Debian changes in 1999), -.bP -\fB\-\-default\-item\fP (from \fB\*p\fP 2000/02/22), -.bP -\fB\-\-output\-fd\fP (from \fB\*p\fP 2002/08/14). -.PP -Somewhat humorously, one may note that the \fBpopt\fP feature -(undocumented in its manpage) -of using a \*(``--\*('' as an escape was documented in \fB\*p\fP's manpage about -a year before it was mentioned in \fBwhiptail\fP's manpage. -\fBwhiptail\fP's manpage incorrectly attributes that to \fBgetopt\fP -(and is inaccurate anyway). -.PP -Debian uses \fBwhiptail\fP for the official \fB\*p\fP variation. -.PP -The \fB\*p\fP program ignores or maps these options which are recognized -by \fBwhiptail\fP: -.RS -.TS -tab(/) ; -lI lI -_ _ -l l. -Option/Treatment -\fB\-\-cancel\-button\fP/mapped to \fB\-\-cancel\-label\fP -\fB\-\-fb\fP/ignored -\fB\-\-fullbutton\fP/ignored -\fB\-\-no\-button\fP/mapped to \fB\-\-no\-label\fP -\fB\-\-nocancel\fP/mapped to \fB\-\-no\-cancel\fP -\fB\-\-noitem\fP/mapped to \fB\-\-no\-items\fP -\fB\-\-notags\fP/mapped to \fB\-\-no\-tags\fP -\fB\-\-ok\-button\fP/mapped to \fB\-\-ok\-label\fP -\fB\-\-scrolltext\fP/mapped to \fB\-\-scrollbar\fP -\fB\-\-topleft\fP/mapped to \fB\-\-begin 0 0\fP -\fB\-\-yes\-button\fP/mapped to \fB\-\-yes\-label\fP -_ -.TE -.RE -.LP -There are visual differences which are not addressed by command-line options: -.bP -\fB\*p\fP centers lists within the window. -\fBwhiptail\fP typically puts lists against the left margin. -.bP -\fBwhiptail\fP uses angle brackets (\*(``<\*('' and \*(``>\*('') -for marking buttons. -\fB\*p\fP uses square brackets. -.bP -\fBwhiptail\fP marks the limits of subtitles with vertical bars. -\fB\*p\fP does not mark the limits. -.bP -\fBwhiptail\fP attempts to mark the top/bottom cells of a scrollbar -with up/down arrows. -When it cannot do this, -it fills those cells with the background color -of the scrollbar and confusing the user. -\fB\*p\fP uses the entire scrollbar space, -thereby getting better resolution. -.\" ************************************************************************ -.SH BUGS -Perhaps. -.SH AUTHOR -.LP -Thomas E.\& Dickey (updates for 0.9b and beyond) -.SH CONTRIBUTORS -Kiran Cherupally \(en the mixed form and mixed gauge widgets. -.LP -Tobias C.\& Rittweiler -.LP -Valery Reznic \(en the form and progressbox widgets. -.LP -Yura Kalinichenko adapted the gauge widget as \*(``pause\*(''. -.PP -This is a rewrite (except as needed to provide compatibility) -of the earlier version of \fB\*p 0.9a\fP, -which lists as authors: -.bP -Savio Lam \(en version 0.3, \*(``dialog\*('' -.bP -Stuart Herbert \(en patch for version 0.4 -.bP -Marc Ewing \(en the gauge widget. -.bP -Pasquale De Marco \*(``Pako\*('' \(en version 0.9a, \*(``cdialog\*('' diff --git a/contrib/dialog/dialog.3 b/contrib/dialog/dialog.3 deleted file mode 100644 index efa45d0a9456..000000000000 --- a/contrib/dialog/dialog.3 +++ /dev/null @@ -1,3823 +0,0 @@ -'\" t -.\" $Id: dialog.3,v 1.138 2021/01/17 18:02:44 tom Exp $ -.\" Copyright 2005-2020,2021 Thomas E. Dickey -.\" -.\" This program is free software; you can redistribute it and/or modify -.\" it under the terms of the GNU Lesser General Public License, version 2.1 -.\" as published by the Free Software Foundation. -.\" -.\" This program is distributed in the hope that it will be useful, but -.\" WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -.\" Lesser General Public License for more details. -.\" -.\" You should have received a copy of the GNU Lesser General Public -.\" License along with this program; if not, write to -.\" Free Software Foundation, Inc. -.\" 51 Franklin St., Fifth Floor -.\" Boston, MA 02110, USA. -.\" -.\" definitions for renaming -.ds p dialog -.ds l dialog -.ds L Dialog -.ds D DIALOG -. -.de ES -.ne 8 -.IP -.. -.de Ex -.RS +7 -.PP -.nf -.ft CW -.. -.de Ee -.fi -.ft R -.RE -.. -.\" Bulleted paragraph -.de bP -.ie n .IP \(bu 4 -.el .IP \(bu 2 -.. -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' -.TH \*D 3 "" "$Date: 2021/01/17 18:02:44 $" -.SH NAME -dialog \- widgets and utilities for the \*p program -.SH SYNOPSIS -.B cc [ flag ... ] file ... \-l\*l [ library ... ] -.br -\ \ \ or -.br -.B cc $(\*p\-config \-\-cflags) file ... $(\*p\-config \-\-libs) ] -.sp -.B #include <\*l.h> -.PP -\fB\*L\fP -is a program that will let you present a variety of questions or -display messages using dialog boxes from a shell script. -It is built from the \fB\*l\fP library, -which consists of several widgets -as well as utility functions that are used by the widgets -or the main program. -. -.SH DESCRIPTION -This manpage documents the features from \fI<\*l.h>\fP which -are likely to be important to developers using the widgets directly. -Some hints are also given for developing new widgets. -.PP -Here is a \fB\*l\fP version of \fIHello World\/\fP: -.RS -.nf -int main(void) -{ - int status; - init_dialog(stdin, stdout); - status = dialog_yesno( - "Hello, in dialog\-format", - "Hello World!", - 0, 0); - end_dialog(); - return status; -} -.fi -.RE -. -.\" ************************************************************************ -.SH DEFINITIONS -Exit codes (passed back to the main program for its use) -are defined with a "\fIDLG_EXIT_\fP prefix. -The efined constants can be mapped using environment variables -as described in \fB\*p\fP(1), -e.g., \fIDLG_EXIT_OK\fP corresponds to \fI$DIALOG_OK\fP. -.PP -Useful character constants which correspond to user input -are named with the "\fICHR_\fP" prefix, e.g., -\fICHR_BACKSPACE\fP. -.PP -Colors and video attributes are categorized and associated with -settings in the configuration file -(see the discussion of \fI$DIALOGRC\fP in \fB\*p\/\fP(1)). -The \fIDIALOG_ATR(n)\fP macro is used for defining the references -to the combined color and attribute table \fBdlg_color_table[]\fP. -.PP -The \fB\*p\fP application passes its command-line parameters -to the widget functions. -Some of those parameters are single values, -but some of the widgets accept data as an array of values. -Those include checklist/radiobox, menubox and formbox. -When the \fB\-\-item\-help\fP option is given, an extra column -of data is expected. -The USE_ITEM_HELP(), CHECKBOX_TAGS, MENUBOX_TAGS and FORMBOX_TAGS -macros are used to hide this difference from the calling application. -.PP -Most of the other definitions found in \fI<\*l.h>\fP -are used for convenience in building the library or main program. -These include definitions based on the generated \fI<dlg_config.h>\fP header. -. -.\" ************************************************************************ -.SH DATA STRUCTURES -All of the global data for the \fB\*l\fP library is stored in -a few structures: -\fIDIALOG_STATE\fP, \fIDIALOG_VARS\fP and \fIDIALOG_COLORS\fP. -The corresponding -\fBdialog_state\fP, \fBdialog_vars\fP and \fBdlg_color_table\fP -global variables should be initialized to zeros, -and then populated with the data to use. -A few of these must be nonzero for the corresponding widgets to function. -As as the case with function names, -variables beginning with "\fIdialog_\fP" -are designed for use by the calling application -while variables beginning with "\fIdlg_\fP" -are intended for lower levels, e.g., by the \fB\*l\fP library. -.\" --------------------------------------------------------------------------- -.SH DIALOG_STATE -The \fIstate\fP variables are \fB\*l\fP's working variables. -It initializes those, uses them to manage the widgets. -.\" --------------------------------------------------------------------------- -.SS .all_subwindows -This is a linked list of all subwindows created by the library. -The \fBdlg_del_window\fP function uses this -to free storage for subwindows when deleting a window. -.\" --------------------------------------------------------------------------- -.SS .all_windows -This is a linked list of all windows created by the library. -The \fBdlg_del_window\fP function uses this to locate windows which -may be redrawn after deleting a window. -.\" --------------------------------------------------------------------------- -.SS .aspect_ratio -This corresponds to the command-line option "\fB\-\-aspect\-ratio\fP". -The value gives the application -some control over the box dimensions when using auto -sizing (specifying 0 for height and width). -It represents width / height. -The default is 9, which means 9 characters wide to every 1 line high. -.\" --------------------------------------------------------------------------- -.SS .finish_string -When set to true, this allows calls to \fBdlg_finish_string\fP to discard the -corresponding data which is created to speed up layout computations for the -given string parameter. -The \fBgauge\fP widget uses this feature. -.\" --------------------------------------------------------------------------- -.SS .getc_callbacks -This is set up in \fIui_getc.c\fP to record windows which must be polled -for input, e.g., to handle the background tailbox widget. -One window is designated as the foreground or control window. -.\" --------------------------------------------------------------------------- -.SS .getc_redirect -If the control window for \fIDIALOG_STATE.getc_callbacks\fP is -closed, the list is transferred to this variable. -Closing all windows causes the application to exit. -.\" --------------------------------------------------------------------------- -.SS .had_resize -This is set to TRUE -in \fBdlg_will_resize\fP or \fBdlg_result_key\fP -when \fBKEY_RESIZE\fP is read, -to tell \fB\*p\fP to ignore subsequent \fBERR\fPs. -.\" --------------------------------------------------------------------------- -.SS .no_mouse -This corresponds to the command-line option "\fB\-\-no\-mouse\fP". -If true, \fB\*p\fP will not initialize (and enable) the mouse in -\fIinit_dialog\fP. -.\" --------------------------------------------------------------------------- -.SS .output -This is set in the \fB\*p\fP application to the stream on -which the application and library functions may write text results. -Normally that is the standard error, -since the curses library prefers to write its data to the standard output. -Some scripts, trading portability for convenience, -prefer to write results to the standard output, -e.g., by using the "\fB\-\-stdout\fP" option. -.\" --------------------------------------------------------------------------- -.SS .output_count -This is incremented by \fBdlg_does_output\fP, -which is called by each widget that writes text to the output. -The \fB\*p\fP application uses that to decide if it should -also write a separator, i.e., -\fIDIALOG_STATE.separate_str\fP, -between calls to each widget. -.\" --------------------------------------------------------------------------- -.SS .pipe_input -This is set in \fIinit_dialog\fP to a stream which can be used by the -\fBgauge\fP widget, which must be the application's standard input. -The \fB\*p\fP application calls \fIinit_dialog\fP normally with -\fIinput\fP set to the standard input, but optionally based on the -"\fB\-\-input\-fd\fP" option. -Since the application cannot read from -a pipe (standard input) and at the same time read -the curses input from the standard input, -it must allow for reopening the latter from either -a specific file descriptor, -or directly from the terminal. -The adjusted pipe stream value is stored in this variable. -.\" --------------------------------------------------------------------------- -.SS .screen_height -The text-formatting functions use this for the number of rows used for -formatting a string. -.LP -It is used by \fB\*l\fP for the command-line options -"\fB\-\-print\-text\-size\fP" and -"\fB\-\-print\-text\-only\fP". -.\" --------------------------------------------------------------------------- -.SS .screen_initialized -This is set in \fIinit_dialog\fP and -reset in \fIend_dialog\fP. -It is used to check if curses has been initialized, -and if the \fIendwin\fP function must be called on exit. -.\" --------------------------------------------------------------------------- -.SS .screen_output -This is set in \fIinit_dialog\fP to the output stream used -by the curses library. -Normally that is the standard output, -unless that happens to not be a terminal (and if \fIinit_dialog\fP can -successfully open the terminal directly). -.\" --------------------------------------------------------------------------- -.SS .screen_width -The text-formatting functions use this for the number of columns used for -formatting a string. -.LP -It is used by \fB\*l\fP for the command-line options -"\fB\-\-print\-text\-size\fP" and -"\fB\-\-print\-text\-only\fP". -.\" --------------------------------------------------------------------------- -.SS .separate_str -This corresponds to the command-line option "\fB\-\-separate\-widget\fP". -The given string -specifies a string that will separate the output on \fB\*p\fP's output from -each widget. -This is used to simplify parsing the result of a dialog with several widgets. -If this option is not given, -the default separator string is a tab character. -.\" --------------------------------------------------------------------------- -.SS .tab_len -This corresponds to the command-line option "\fB\-\-tab\-len\fP \fInumber\/\fP". -Specify the number of spaces that a tab character occupies if the -"\fB\-\-tab\-correct\fP" -option is given. -The default is 8. -.\" --------------------------------------------------------------------------- -.SS .text_height -The text-formatting functions set this to the number of lines used for -formatting a string. -.LP -It is used by \fB\*l\fP for the command-line options -"\fB\-\-print\-text\-size\fP" and -"\fB\-\-print\-text\-only\fP". -.\" --------------------------------------------------------------------------- -.SS .text_only -\fB\*L\fP uses this in the command-line option "\fB\-\-print\-text\-only\fP". -.LP -The text-formatting functions -(\fBdlg_print_text\fP, -\fBdlg_print_line\fP, and -\fBdlg_print_autowrap\fP) -check this to decide whether to print the formatted text to -\fB\*p\fP's output or to the curses-display. -.LP -Also, -\fBdlg_auto_size\fP checks the flag, allowing it to be used before -\fBinit_dialog\fP is called. -.\" --------------------------------------------------------------------------- -.SS .text_width -The text-formatting functions set this to the number of columns used for -formatting a string. -.LP -It is used by \fB\*l\fP for the command-line options -"\fB\-\-print\-text\-size\fP" and -"\fB\-\-print\-text\-only\fP". -.\" --------------------------------------------------------------------------- -.SS .trace_output -This corresponds to the command-line option "\fB\-\-trace\fP \fIfile\fP". -It is the file pointer to which trace messages are written. -.\" --------------------------------------------------------------------------- -.SS .use_colors -This is set in \fIinit_dialog\fP if the curses implementation supports color. -.\" --------------------------------------------------------------------------- -.SS .use_scrollbar -This corresponds to the command-line option "\fB\-\-scrollbar\fP". -If true, -draw a scrollbar to make windows holding scrolled data more readable. -.\" --------------------------------------------------------------------------- -.SS .use_shadow -This corresponds to the command-line option "\fB\-\-no\-shadow\fP". -This is set in \fIinit_dialog\fP if the curses implementation supports color. -If true, -suppress shadows that would be drawn to the right and bottom of each dialog box. -.\" --------------------------------------------------------------------------- -.SS .visit_items -This corresponds to the command-line option "\fB\-\-visit\-items\fP". -Modify the tab-traversal of the list-oriented widgets -(buildlist, checklist, radiobox, menubox, inputmenu, and treeview) -to include the list of items as one of the states. -This is useful as a visual aid, -i.e., the cursor position helps some users. -.\" --------------------------------------------------------------------------- -.PP -The \fB\*p\fP application resets the \fBdialog_vars\fP data before -accepting options to invoke each widget. -Most of the \fIDIALOG_VARS\fP members are set directly from \fB\*p\fP's -command-line options: -.\" --------------------------------------------------------------------------- -.SH -DIALOG_VARS -.PP -In contrast to \fBDIALOG_STATE\fP, the members of \fBDIALOG_VARS\fP -are set by command-line options in \fB\*p\fP. -.\" --------------------------------------------------------------------------- -.SS .ascii_lines -This corresponds to the command-line option "\fB\-\-ascii\-lines\fP. -It causes line-drawing to be done with ASCII characters, e.g., "+" and "\-". -See \fIDIALOG_VARS.no_lines\fP. -.\" --------------------------------------------------------------------------- -.SS .backtitle -This corresponds to the command-line option -"\fB\-\-backtitle\fP \fIbacktitle\/\fP". -It specifies a -\fIbacktitle\fP -string to be displayed on the backdrop, at the top of the screen. -.\" --------------------------------------------------------------------------- -.SS .beep_after_signal -This corresponds to the command-line option "\fB\-\-beep\-after\fP". -If true, beep after a user has completed a widget -by pressing one of the buttons. -.\" --------------------------------------------------------------------------- -.SS .beep_signal -This corresponds to the command-line option "\fB\-\-beep\fP". -It is obsolete. -.\" --------------------------------------------------------------------------- -.SS .begin_set -This is true if the command-line option "\fB\-\-begin\fP \fIy x\/\fP" was used. -It specifies the position of the upper left corner -of a dialog box on the screen. -.\" --------------------------------------------------------------------------- -.SS .begin_x -This corresponds to the \fIx\fP value from -the command-line option "\fB\-\-begin\fP \fIy x\/\fP" (second value). -.\" --------------------------------------------------------------------------- -.SS .begin_y -This corresponds to the \fIy\fP value from -the command-line option "\fB\-\-begin\fP \fIy x\/\fP" (first value). -.\" --------------------------------------------------------------------------- -.SS .cancel_label -This corresponds to the command-line option -"\fB--cancel-label\fP \fIstring\/\fP". -The given \fIstring\fP overrides the label used for \*(``Cancel\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .cant_kill -This corresponds to the command-line option "\fB\-\-no\-kill\fP". -If true, this tells -\fB\*p\fP -to put the -\fBtailboxbg\fP -box in the background, -printing its process id to \fB\*p\fP's output. -SIGHUP is disabled for the background process. -.\" --------------------------------------------------------------------------- -.SS .colors -This corresponds to the command-line option "\fB\-\-colors\fP". -If true, interpret embedded "\eZ" sequences in the dialog text -by the following character, -which tells \fB\*p\fP to set colors or video attributes: -0 through 7 are the ANSI codes used in curses: -black, -red, -green, -yellow, -blue, -magenta, -cyan and -white respectively. -Bold is set by 'b', reset by 'B'. -Reverse is set by 'r', reset by 'R'. -Underline is set by 'u', reset by 'U'. -The settings are cumulative, e.g., "\eZb\eZ1" makes the following text -bright red. -Restore normal settings with "\eZn". -.\" --------------------------------------------------------------------------- -.SS .column_separator -This corresponds to the command-line option "\fB\-\-column\-separator\fP". -\fB\*L\fP splits data for radio/checkboxes and menus on the -occurrences of the given string, and aligns the split data into columns. -.\" --------------------------------------------------------------------------- -.SS .cr_wrap -This corresponds to the command-line option "\fB\-\-cr\-wrap\fP". -If true, -interpret embedded newlines in the dialog text as a newline on the screen. -Otherwise, \fB\*p\fR will only wrap lines where needed -to fit inside the text box. -Even though you can control line breaks with this, -\fB\*p\fR will still wrap any lines that are too long for the width of the box. -Without cr-wrap, the layout of your text may be formatted to look nice -in the source code of your script without affecting the way it will -look in the dialog. -.\" --------------------------------------------------------------------------- -.SS .cursor_off_label -This corresponds to the command-line option "\fB\-\-cursor\-off\-label\fP". -If true, place the terminal cursor at the end of a button instead of -on the first character of the button label. -This is useful to reduce visual confusion when the cursor coloration -interacts poorly with the button-label text colors. -.\" --------------------------------------------------------------------------- -.SS .date_format -This corresponds to the command-line option -"\fB\-\-date\-format\fP \fIstring\/\fP". -If the host provides \fBstrftime\fP, and the value is nonnull, -the calendar widget uses this to format its output. -.\" --------------------------------------------------------------------------- -.SS .default_button -This is set by the command-line option "\fB\-\-default\-button\fP. -It is used by \fBdlg_default_button\fP. -.\" --------------------------------------------------------------------------- -.SS .default_item -This corresponds to the command-line option -"\fB\-\-default\-item\fP \fIstring\/\fP". -The given string is used as -the default item in a checklist, form or menu box. -Normally the first item in the box is the default. -.\" --------------------------------------------------------------------------- -.SS .defaultno -This corresponds to the command-line option "\fB\-\-defaultno\fP". -If true, -make the default value of the -\fByes/no\fP -box a -.BR No . -Likewise, treat the default button of widgets that provide -\*(``OK\*('' and \*(``Cancel\*('' -as a \fICancel\fP. -If \fB\-\-no\-cancel\fP was given that option overrides this, -making the default button always \*(``Yes\*('' -(internally the same as \*(``OK\*(''). -.\" --------------------------------------------------------------------------- -.SS .dlg_clear_screen -This corresponds to the command-line option "\fB\-\-clear\fP". -This option is implemented in the main program, not the library. -If true, -the screen will be cleared on exit. -This may be used alone, without other options. -.\" --------------------------------------------------------------------------- -.SS .erase_on_exit -This corresponds to the command-line option "\fB\-\-erase\-on\-exit\fP". -If true, remove the dialog widget on program exit, erasing the entire -screen to its native background color, and place the terminal cursor -at the lower left corner of the screen. -This is useful for making the window contents invisible at the end of -a series of dialog boxes. -But it can also be used at earlier stages of a series of invocations -of \fB\*p\fP, if the series may be aborted before it is fully completed. -.\" --------------------------------------------------------------------------- -.SS .exit_label -This corresponds to the command-line option "\fB\-\-exit\-label string\fP". -The given string overrides the label used for \*(``EXIT\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .extra_button -This corresponds to the command-line option "\fB\-\-extra\-button\fP". -If true, some widgets show an extra button, -between \*(``OK\*('' and \*(``Cancel\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .extra_label -This corresponds to the command-line option -"\fB\-\-extra\-label\fP \fIstring\/\fP". -The given string overrides the label used for \*(``Extra\*('' buttons. -Note: for inputmenu widgets, this defaults to \*(``Rename\*(''. -.\" --------------------------------------------------------------------------- -.SS .formitem_type -This is set by the command-line option "\fB\-\-passwordform\fP" -to tell the form widget that its text fields should be treated like -password widgets. -.\" --------------------------------------------------------------------------- -.SS .help_button -This corresponds to the command-line option "\fB\-\-help\-button\fP". -If true, some widgets show a help-button after -\*(``OK\*('' and \*(``Cancel\*('' buttons, -i.e., in checklist, radiolist and menu boxes. -If \fB\-\-item\-help\fR is also given, on exit -the return status will be the same as for the \*(``OK\*('' button, -and the item-help text will be written to \fB\*p\fP's output -after the token \*(``HELP\*(''. -Otherwise, the return status will indicate that the Help button was pressed, -and no message printed. -.\" --------------------------------------------------------------------------- -.SS .help_file -This corresponds to the command-line option "\fB\-\-hfile\fP \fIstring\/\fP". -The given filename is passed to \fBdialog_helpfile\fP when the user -presses F1. -.\" --------------------------------------------------------------------------- -.SS .help_label -This corresponds to the -command-line option "\fB\-\-help\-label\fP \fIstring\/\fP". -The given string overrides the label used for \*(``Help\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .help_line -This corresponds to the command-line option "\fB\-\-hline\fP \fIstring\/\fP". -The given string is displayed in the bottom of dialog windows, -like a subtitle. -.\" --------------------------------------------------------------------------- -.SS .help_status -This corresponds to the command-line option "\fB\-\-help\-status\fP". -If true, and the the help-button is selected, -writes the checklist or radiolist information -after the item-help \*(``HELP\*('' information. -This can be used to reconstruct the state of a checklist after processing -the help request. -.\" --------------------------------------------------------------------------- -.SS .help_tags -This corresponds to the command-line option "\fB\-\-help\-tags\fP". -If true, -\fBdlg_add_help_formitem\fP and -\fBdlg_add_help_listitem\fP use the item's tag value consistently -rather than using the tag's help-text value -when \fIDIALOG_VARS.item_help\fP is set. -.\" --------------------------------------------------------------------------- -.SS .input_length -This is nonzero if \fIDIALOG_VARS.input_result\fP is allocated, -versus being a pointer to the user's local variables. -.\" --------------------------------------------------------------------------- -.SS .input_menu -This flag is set to denote whether the menubox widget -implements a menu versus a inputmenu widget. -.\" --------------------------------------------------------------------------- -.SS .input_result -This may be either a user-supplied buffer, -or a buffer dynamically allocated by the library, -depending on \fIDIALOG_VARS.input_length\fP: -.bP -If \fIDIALOG_VARS.input_length\fP is zero, -this is a pointer to user buffer (on the stack, or static). -The buffer size is assumed to be \fBMAX_LEN\fP, -which is defined in \fI<\*l.h>\fP. -.bP -When \fIDIALOG_VARS.input_length\fP is nonzero, -this is a dynamically-allocated buffer used by the widgets to return -printable results to the calling application. -.LP -Certain widgets copy a result to this buffer. -If the pointer is NULL, or if the length is insufficient for -the result, then the \fB\*l\fP library allocates a buffer which is large enough, -and sets \fIDIALOG_VARS.input_length\fP. -Callers should check for this case if they have supplied their own buffer. -.\" --------------------------------------------------------------------------- -.SS .insecure -This corresponds to the command-line option "\fB\-\-insecure\fP". -If true, make the password widget friendlier but less secure, -by echoing asterisks for each character. -.\" --------------------------------------------------------------------------- -.SS .in_helpfile -This variable is used to prevent \fBdialog_helpfile\fP from showing -anything, e.g., if F1 were pressed within a help-file display. -.\" --------------------------------------------------------------------------- -.SS .iso_week -This corresponds to the command-line option "\fB\-\-iso\-week\fP". -It is used in the calendar widget to tell how -to compute the starting week for the year: -.bP -by default, the calendar treats January 1 as the first week of the year. -.bP -If this variable is true, the calendar uses ISO 8601's convention. -ISO 8601 numbers weeks starting with the first week in January with -a Thursday in the current year. -January 1 may be in the \fIprevious\fP year. -.\" --------------------------------------------------------------------------- -.SS .item_help -This corresponds to the command-line option "\fB\-\-item\-help\fP". -If true, -interpret the tags data for checklist, radiolist and menu boxes -adding a column whose text is displayed in the bottom line of the -screen, for the currently selected item. -.\" --------------------------------------------------------------------------- -.SS .keep_tite -This is set by the command-line option "\fB\-\-keep\-tite\fP" -to tell \fB\*p\fP to not attempt to cancel the terminal initialization -(termcap \fIti\/\fP/\,\fIte\/\fP) sequences -which correspond to xterm's alternate-screen switching. -Normally \fB\*p\fP does this to avoid flickering when run several times -in a script. -.\" --------------------------------------------------------------------------- -.SS .keep_window -This corresponds to the command-line option "\fB\-\-keep\-window\fP". -If true, do not remove/repaint the window on exit. -This is useful for keeping the window contents visible when several -widgets are run in the same process. -Note that curses will clear the screen when starting a new process. -.\" --------------------------------------------------------------------------- -.SS .last_key -This corresponds to the command-line option "\fB\-\-last\-key\fP". -.\" --------------------------------------------------------------------------- -.SS .max_input -This corresponds to the command-line option "\fB\-\-max\-input\fP \fIsize\/\fP". -Limit input strings to the given size. -If not specified, the limit is 2048. -.\" --------------------------------------------------------------------------- -.SS .no_hot_key -This corresponds to the command-line option "\fB\-\-no\-hot\-list\fP". -.LP -Some widgets -(buildlist, -checklist, -inputmenu, -menu, -radiolist, -treeview) -display a list -for which the leading capital letter in each entry is accepted as a hot-key, -to quickly move the focus to that entry. -.LP -Setting this variable to TRUE disables the feature. -.\" --------------------------------------------------------------------------- -.SS .no_items -This corresponds to the command-line option "\fB\-\-no\-items\fP". -Some widgets (checklist, inputmenu, radiolist, menu) display a list -with two columns (a \*(``tag\*('' and \*(``item\*('', -i.e., \*(``description\*(''). -This tells \fB\*p\fP to read shorter rows from data, -omitting the \*(``list\*(''. -.\" --------------------------------------------------------------------------- -.SS .no_label -This corresponds to the command-line -option "\fB\-\-no\-label\fP \fIstring\/\fP". -The given string overrides the label used for \*(``No\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .no_lines -This corresponds to the command-line option "\fB\-\-no\-lines\fP. -It suppresses line-drawing. -See \fIDIALOG_VARS.ascii_lines\fP. -.\" --------------------------------------------------------------------------- -.SS .no_nl_expand -This corresponds to the command-line option "\fB\-\-no\-nl\-expand\fP". -If false, \fBdlg_trim_string\fP converts literal "\en" substrings -in a message into newlines. -.\" --------------------------------------------------------------------------- -.SS .no_tags -This corresponds to the command-line option "\fB\-\-no\-tags\fP". -Some widgets (checklist, inputmenu, radiolist, menu) display a list -with two columns (a \*(``tag\*('' and \*(``item\*('', -also known as \*(``description\*(''). -The tag is useful for scripting, but may not help the user. -The \fB\-\-no\-tags\fP option (from Xdialog) may be used to suppress the -column of tags from the display. -.LP -Normally \fB\*p\fP allows you to quickly move to entries on the displayed list, -by matching a single character to the first character of the tag. -When the \fB\-\-no\-tags\fP option is given, \fB\*p\fP matches against -the first character of the description. -In either case, the matchable character is highlighted. -.LP -Here is a table showing how the no_tags and no_items values interact: -.TS -tab(/); -l l l l l -l l l n n. -Widget/Fields Shown/Fields Read/.no_items/.no_tags -_ -buildlist/item/tag,item/0/0* -buildlist/item/tag,item/0/1 -buildlist/tag/tag/1/0* -buildlist/tag/tag/1/1 -checklist/tag,item/tag,item/0/0 -checklist/item/tag,item/0/1 -checklist/tag/tag/1/0 -checklist/tag/tag/1/1 -inputmenu/tag,item/tag,item/0/0 -inputmenu/item/tag,item/0/1 -inputmenu/tag/tag/1/0 -inputmenu/tag/tag/1/1 -menu/tag,item/tag,item/0/0 -menu/item/tag,item/0/1 -menu/tag/tag/1/0 -menu/tag/tag/1/1 -radiolist/tag,item/tag,item/0/0 -radiolist/item/tag,item/0/1 -radiolist/tag/tag/1/0 -radiolist/tag/tag/1/1 -treeview/item/tag,item/0/0* -treeview/item/tag,item/0/1 -treeview/tag/tag/1/0* -treeview/tag/tag/1/1 -_ -.TE -.TP 2 -* -Xdialog does not display the tag column for the analogous buildlist -and treeview widgets. -\fB\*L\fP does the same on the command-line. -However the library interface defaults to displaying the tag column. -Your application can enable or disable the tag column as needed for each widget. -.\" --------------------------------------------------------------------------- -.SS .nocancel -This corresponds to the command-line option "\fB\-\-no\-cancel\fP". -If true, -suppress the \*(``Cancel\*('' button in checklist, inputbox and menu box modes. -A script can still test if the user pressed the ESC key to cancel to quit. -.\" --------------------------------------------------------------------------- -.SS .nocollapse -This corresponds to the command-line option "\fB\-\-no\-collapse\fP". -Normally \fB\*p\fR converts tabs to spaces and reduces multiple -spaces to a single space for text which is displayed in a message boxes, etc. -It true, that feature is disabled. -Note that \fB\*p\fR will still wrap text, subject to the \fB\-\-cr\-wrap\fR -option. -.\" --------------------------------------------------------------------------- -.SS .nook -This corresponds to the command-line option "\fB\-\-no\-ok\fP. -\fB\*L\fP will suppress the \*(``ok\*('' (or \*(``yes\*('') button -from the widget. -.\" --------------------------------------------------------------------------- -.SS .ok_label -This corresponds to the command-line -option "\fB\-\-ok\-label\fP \fIstring\/\fP". -The given string overrides the label used for \*(``OK\*('' buttons. -.\" --------------------------------------------------------------------------- -.SS .pause_secs -When set, force \fBdlg_set_timeout\fP to use 10 milliseconds -rather than using the \fIDIALOG_VARS.timeout_secs\fP value. -.\" --------------------------------------------------------------------------- -.SS .print_siz -This corresponds to the command-line option "\fB\-\-print\-size\fP". -If true, -each widget prints its size to \fB\*p\fP's output when it is invoked. -.\" --------------------------------------------------------------------------- -.SS .quoted -This corresponds to the command-line option "\fB\-\-quoted\fP. -Normally \fB\*p\fP quotes the strings returned by checklist's -as well as the item-help text. -If true, \fB\*p\fP will quote all string results. -.\" --------------------------------------------------------------------------- -.SS .reorder -This corresponds to the command-line option "\fB\-\-reorder\fP. -By default, the buildlist widget uses the same order for the output (right) -list as for the input (left). -If true, \fB\*p\fP will use the order in which a user adds selections -to the output list. -.\" --------------------------------------------------------------------------- -.SS .separate_output -This corresponds to the command-line option "\fB\-\-separate\-output\fP". -If true, -checklist widgets output result one line at a time, with no quoting. -This facilitates parsing by another program. -.\" --------------------------------------------------------------------------- -.SS .single_quoted -This corresponds to the command-line option "\fB\-\-single\-quoted\fP". -If true, -use single-quoting as needed (and no quotes if unneeded) for the -output of checklist's as well as the item-help text. -If this option is not set, \fB\*p\fP uses double quotes around each item. -The latter requires occasional use of backslashes to make the output useful in -shell scripts. -.\" --------------------------------------------------------------------------- -.SS .size_err -This corresponds to the command-line option "\fB\-\-size\-err\fP". -If true, -check the resulting size of a dialog box before trying to use it, -printing the resulting size if it is larger than the screen. -(This option is obsolete, since all new-window calls are checked). -.\" --------------------------------------------------------------------------- -.SS .sleep_secs -This corresponds to the command-line option "\fB\-\-sleep\fP \fIsecs\/\fP". -This option is implemented in the main program, not the library. -If nonzero, this is the number of seconds after to delay -after processing a dialog box. -.\" --------------------------------------------------------------------------- -.SS .tab_correct -This corresponds to the command-line option "\fB\-\-tab-correct\fP". -If true, convert each tab character of the text to one or more spaces. -Otherwise, tabs are rendered according to the curses library's interpretation. -.\" --------------------------------------------------------------------------- -.SS .time_format -This corresponds to the command-line option -"\fB\-\-time\-format\fP \fIstring\/\fP". -If the host provides \fBstrftime\fP, and the value is nonnull, -the timebox widget uses this to format its output. -.\" --------------------------------------------------------------------------- -.SS .timeout_secs -This corresponds to the command-line option "\fB\-\-timeout\fP \fIsecs\/\fP". -If nonzero, timeout input requests (exit with error code) -if no user response within the given number of seconds. -.\" --------------------------------------------------------------------------- -.SS .title -This corresponds to the command-line option "\fB\-\-title\fP \fItitle\/\fP". -Specifies a -\fItitle\fP -string to be displayed at the top of the dialog box. -.\" --------------------------------------------------------------------------- -.SS .trim_whitespace -This corresponds to the command-line option "\fB\-\-trim\fP". -If true, eliminate leading blanks, -trim literal newlines and repeated blanks from message text. -.\" --------------------------------------------------------------------------- -.SS .week_start -This corresponds to the command-line option "\fB\-\-week\-start\fP". -It is used in the calendar widget to set the starting day for the week. -The string value can be -.bP -a number (0 to 6, Sunday through Saturday using POSIX) or -.bP -the special value \*(``locale\*('' (this works with systems using glibc, -providing an extension to the \fBlocale\fP command, -the \fBfirst_weekday\fP value). -.bP -a string matching one of the abbreviations for the day of the week -shown in the \fBcalendar\fP widget, e.g., \*(``Mo\*('' for \*(``Monday\*(''. -.\" --------------------------------------------------------------------------- -.SS .yes_label -This corresponds to the command-line -option "\fB\-\-yes\-label\fP \fIstring\/\fP". -The given string overrides the label used for \*(``Yes\*('' buttons. -. -.\" ************************************************************************ -.\" ************************************************************************ -.SH WIDGETS -Functions that implement major functionality for the command-line \fB\*p\fP -program, e.g., widgets, have names beginning "\fIdialog_\fP". -.PP -All dialog boxes have at least three parameters: -.RS 3 -.TP 5 -\fItitle\fP -the caption for the box, shown on its top border. -.TP 5 -\fIheight\fP -the height of the dialog box. -.TP 5 -\fIwidth\fP -the width of the dialog box. -.RE -.PP -Other parameters depend on the box type. -. -.\" ************************************************************************ -.SS dialog_buildlist -implements the "\fB\-\-buildlist\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B char ** \fIitems -is an array of strings which is viewed either as a list of rows -.RS -\fItag item status\fR -.RE -.IP -or -.RS -\fItag item status help\fR -.RE -.IP -depending on whether \fBdialog_vars.item_help\fP is set. -.TP 5 -.B int \fIorder_mode -is reserved for future enhancements -. -.\" ************************************************************************ -.SS dialog_calendar -implements the "\fB\-\-calendar\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIsubtitle -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the height excluding the fixed-height calendar grid. -.TP 5 -.B int \fIwidth -is the overall width of the box, -which is adjusted up to the calendar grid's minimum width if needed. -.TP 5 -.B int \fIday -is the initial day of the week shown, -counting zero as Sunday. -If the value is negative, the current day of the week is used. -.TP 5 -.B int \fImonth -is the initial month of the year shown, -counting one as January. -If the value is negative, the current month of the year is used. -.TP 5 -.B int \fIyear -is the initial year shown. -If the value is negative, the current year is used. -.\" ************************************************************************ -.SS dialog_checklist -implements the "\fB\-\-checklist\fP" and "\fB\-\-radiolist\fP" options -depending on the \fIflag\fP parameter. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B int \fIitems -is an array of strings which is viewed either as a list of rows -.RS -\fItag item status\fR -.RE -.IP -or -.RS -\fItag item status help\fR -.RE -.IP -depending on whether \fBdialog_vars.item_help\fP is set. -.IP flag -is either \fIFLAG_CHECK\fP, for checklists, -or \fIFLAG_RADIO\fP for radiolists. -.\" ************************************************************************ -.SS dialog_dselect -implements the "\fB\-\-dselect\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIpath -is the preselected value to show in the input-box, -which is used also to set the directory- and file-windows. -.TP 5 -.B int \fIheight -is the height excluding the minimum needed to show the dialog box framework. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.\" ************************************************************************ -.SS dialog_editbox -implements the "\fB\-\-editbox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIfile -is the name of the file from which to read. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.\" ************************************************************************ -.SS dialog_form -implements the "\fB\-\-form\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIform_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B int \fIitems -is an array of strings which is viewed either as a list of rows -.RS -\fIName NameY NameX Text TextY TextX FLen ILen\fR -.RE -.IP -or -.RS -\fIName NameY NameX Text TextY TextX FLen ILen Help\fR -.RE -.IP -depending on whether \fBdialog_vars.item_help\fP is set. -.\" ************************************************************************ -.SS dialog_fselect -implements the "\fB\-\-fselect\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIpath -is the preselected value to show in the input-box, -which is used also to set the directory- and file-windows. -.TP 5 -.B int \fIheight -is the height excluding the minimum needed to show the dialog box framework. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.\" ************************************************************************ -.SS dialog_gauge -implements the "\fB\-\-gauge\fP" option. -Alternatively, a simpler or customized gauge widget can be -set up using -\fBdlg_allocate_gauge\fP, -\fBdlg_reallocate_gauge\fP, -\fBdlg_update_gauge\fP and -\fBdlg_free_gauge\fP. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIpercent -is the percentage to show in the progress bar. -.\" ************************************************************************ -.SS dialog_inputbox -implements the "\fB\-\-inputbox\fP" or -"\fB\-\-password\fP" option, depending on the value of \fIpassword\fP. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B const char * \fIinit -is the initial value of the input box, whose length is taken into account -when auto-sizing the width of the dialog box. -.TP 5 -.B int \fIpassword -if true, causes typed input to be echoed as asterisks. -.\" ************************************************************************ -.SS dialog_helpfile -implements the "\fB\-\-hfile\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIfile -is the name of a file containing the text to display. -This function is internally bound to F1 (function key \*(``1\*(''), -passing \fBdialog_vars.help_file\fP as a parameter. -The \fB\*p\fP program sets that variable when the \fB\-\-hfile\fP option -is given. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.\" ************************************************************************ -.SS dialog_menu -implements the "\fB\-\-menu\fP" or "\fB\-\-inputmenu\fP" option -depending on whether \fBdialog_vars.input_menu\fP is set. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fImenu_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B int \fIitems -is an array of strings which is viewed either as a list of rows -.RS -\fItag item\fR -.RE -.IP -or -.RS -\fItag item help\fR -.RE -.IP -depending on whether \fBdialog_vars.item_help\fP is set. -.\" ************************************************************************ -.SS dialog_mixedform -implements the "\fB\-\-mixedform\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIform_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B int \fIitems -is an array of strings which is viewed either as a list of rows -.RS -\fIName NameY NameX Text TextY TextX FLen ILen Ityp\fR -.RE -.IP -or -.RS -\fIName NameY NameX Text TextY TextX FLen ILen Ityp Help\fR -.RE -.IP -depending on whether \fBdialog_vars.item_help\fP is set. -.\" ************************************************************************ -.SS dialog_mixedgauge -implements the "\fB\-\-mixedgauge\fP" option -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the caption text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIpercent -is the percentage to show in the progress bar. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B int \fIitems -is an array of strings which is viewed as a list -of \fItag\fP and \fIitem\fP values. -The \fItag\fP values are listed, -one per row, in the list at the top of the widget. -.IP -The \fIitem\fP values are decoded: -digits 0 through 9 are the following strings -.RS -.IP 0 -Succeeded -.IP 1 -Failed -.IP 2 -Passed -.IP 3 -Completed -.IP 4 -Checked -.IP 5 -Done -.IP 6 -Skipped -.IP 7 -In Progress -.IP 8 -(blank) -.IP 9 -N/A -.RE -.IP -A string with a leading "-" character is centered, marked with "%". -For example, "-75" is displayed as "75%". -Other strings are displayed as is. -.\" ************************************************************************ -.SS dialog_msgbox -implements the "\fB\-\-msgbox\fP" or "\fB\-\-infobox\fP" option -depending on whether \fIpauseopt\fP is set. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIpauseopt -if true, an \*(``OK\*('' button will be shown, -and the dialog will wait for it to complete. -With an \*(``OK\*('' button, it is denoted a \*(``msgbox\*('', -without an \*(``OK\*('' button, it is denoted an \*(``infobox\*(''. -.\" ************************************************************************ -.SS dialog_pause -implements the "\fB\-\-pause\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIseconds -is the timeout to use for the progress bar. -.\" ************************************************************************ -.SS dialog_prgbox -implements the "\fB\-\-prgbox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -If empty or null, no prompt is shown. -.TP 5 -.B const char * \fIcommand -is the name of the command to execute. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIpauseopt -if true, an \*(``OK\*('' button will be shown, -and the dialog will wait for it to complete. -.\" ************************************************************************ -.SS dialog_progressbox -implements the "\fB\-\-progressbox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -If empty or null, no prompt is shown. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.\" ************************************************************************ -.SS dialog_rangebox -implements the "\fB\-\-rangebox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -If empty or null, no prompt is shown. -.TP 5 -.B int \fIheight -is the desired height of the widget. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the widget. -If zero, the height is based on the screen size. -.TP 5 -.B int \fImin_value -is the minimum value to allow. -.TP 5 -.B int \fImax_value -is the maximum value to allow. -.TP 5 -.B int \fIdefault_value -is the default value, if no change is made. -.\" ************************************************************************ -.SS dialog_tailbox -implements the "\fB\-\-tailbox\fP" or "\fB\-\-tailboxbg\fP" option -depending on whether \fIbg_task\fP is set. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIfile -is the name of the file to display in the dialog. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIbg_task -if true, -the window is added to the callback list in \fBdialog_state\fP, -and the application will poll for the window to be updated. -Otherwise an \*(``OK\*('' button is added to the window, -and it will be closed when the button is activated. -.\" ************************************************************************ -.SS dialog_textbox -implements the "\fB\-\-textbox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIfile -is the name of the file to display in the dialog. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.\" ************************************************************************ -.SS dialog_timebox -implements the "\fB\-\-timebox\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIsubtitle -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIhour -is the initial hour shown. -If the value is negative, the current hour is used. -Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 24. -.TP 5 -.B int \fIminute -is the initial minute shown. -If the value is negative, the current minute is used. -Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 60. -.TP 5 -.B int \fIsecond -is the initial second shown. -If the value is negative, the current second is used. -Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 60. -.\" ************************************************************************ -.SS dialog_treeview -implements the "\fB\-\-treeview\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B char ** \fIitems -is the list of items, contain tag, name, and optionally help strings -(if \fBdialog_vars.item_help\fP is set). -The initial selection state for each item is also in this list. -.TP 5 -.B int \fIflag -.IP flag -is either \fIFLAG_CHECK\fP, for checklists (multiple selections), -or \fIFLAG_RADIO\fP for radiolists (a single selection). -.\" ************************************************************************ -.SS dialog_yesno -implements the "\fB\-\-yesno\fP" option. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -. -.\" ************************************************************************ -.SH UTILITY FUNCTIONS -Most functions that implement lower-level -functionality for the command-line \fB\*p\fP -program or widgets, have names beginning "\fIdlg_\fP". -Bowing to longstanding usage, the functions that initialize the -display and end it are named \fIinit_dialog\fP and \fIend_dialog\fP. -.PP -The only non-widget function whose name begins with "\fIdialog_\fP" -is \fBdialog_version\fP, which returns the version number of the -library as a string. -.PP -A few functions are prefixed "\fI_dlg_\fP", -because they are required for internal use, -but not intended as part of the library application programming interface. -. -.PP -Here is a brief summary of the utility functions and their parameters: -.\" --------------------------------------------------------------------------- -.SS dlg_add_callback -Add a callback, used to allow polling input from multiple tailbox -widgets. -.TP 5 -.B DIALOG_CALLBACK *\fIp\fP -contains the callback information. -.\" --------------------------------------------------------------------------- -.SS dlg_add_callback_ref -Like \fBdlg_add_callback\fP, but passes a reference to the \fBDIALOG_CALLBACK\fP -as well as a pointer to a cleanup function which will be called when the -associated input ends. -.TP 5 -.B DIALOG_CALLBACK **\fIp\fP -points to the callback information. -This is a reference to the pointer so that the caller's pointer can be -zeroed when input ends. -.TP 5 -.B DIALOG_FREEBACK \fIfunc\fP -function to call when input ends, e.g., to free caller's additional data. -.\" --------------------------------------------------------------------------- -.SS dlg_add_help_formitem -This is a utility function used enforce consistent behavior for -the \fIDIALOG_VARS.help_tags\fP and \fIDIALOG_VARS.item_help\fP variables. -.TP 5 -.B int *\fIresult\fP -this is updated to DLG_EXIT_ITEM_HELP if \fIDIALOG_VARS.item_help\fP is set. -.TP 5 -.B char **\fItag\fP -the tag- or help-text is stored here. -.TP 5 -.B DIALOG_FORMITEM *\fIitem\fP -contains the list item to use for tag- or help-text. -.\" --------------------------------------------------------------------------- -.SS dlg_add_help_listitem -This is a utility function used enforce consistent behavior for -the \fIDIALOG_VARS.help_tags\fP and \fIDIALOG_VARS.item_help\fP variables. -.TP 5 -.B int *\fIresult\fP -this is updated to DLG_EXIT_ITEM_HELP if \fIDIALOG_VARS.item_help\fP is set. -.TP 5 -.B char **\fItag\fP -the tag- or help-text is stored here. -.TP 5 -.B DIALOG_LISTITEM *\fIitem\fP -contains the list item to use for tag- or help-text. -.\" --------------------------------------------------------------------------- -.SS dlg_add_last_key -Report the last key entered by the user. -This implements the \fB\-\-last\-key\fP command-line option, -using \fBdialog_vars.last_key\fP. -.TP 5 -.B int \fImode -controls the way the last key report is separated from other results: -.RS -.TP 5 --2 -(no separator) -.TP 5 --1 -(separator after the key name) -.TP 5 -0 -(separator is optionally before the key name) -.TP 5 -1 -(same as -1) -.RE -.\" --------------------------------------------------------------------------- -.SS dlg_add_quoted -Add a quoted string to the result buffer (see \fBdlg_add_result\fP). -If no quotes are necessary, none are used. -If \fBdialog_vars.single_quoted\fR is set, single-quotes are used. -Otherwise, double-quotes are used. -.TP 5 -.B char * \fIstring -is the string to add. -.\" --------------------------------------------------------------------------- -.SS dlg_add_result -Add a string to the result buffer \fBdialog_vars.input_result\fP. -.TP 5 -.B char * \fIstring -is the string to add. -.\" --------------------------------------------------------------------------- -.SS dlg_add_separator -Add an output-separator to the result buffer \fBdialog_vars.input_result\fP. -If \fBdialog_vars.output_separator\fP is set, use that. -Otherwise, if \fBdialog_vars.separate_output\fP is set, use newline. -If neither is set, use a space. -.\" --------------------------------------------------------------------------- -.SS dlg_add_string -Add a quoted or unquoted string to the result buffer -(see \fBdlg_add_quoted\fP) and \fBdlg_add_result\fP), -according to whether \fBdialog_vars.quoted\fP is true. -.TP 5 -.B char * \fIstring -is the string to add. -.\" --------------------------------------------------------------------------- -.SS dlg_align_columns -Copy and reformat an array of pointers to strings, aligning according to -the column separator \fBdialog_vars.column_separator\fP. -If no column separator is set, the array will be unmodified; -otherwise it is copied and reformatted. -.IP -Caveat: This function is only implemented for 8-bit characters. -.TP 5 -.B char **\fItarget -This is the array to reformat. -It points to the first string to modify. -.TP 5 -.B int \fIper_row -This is the size of the struct for each row of the array. -.TP 5 -.B int \fInum_rows -This is the number of rows in the array. -.\" --------------------------------------------------------------------------- -.SS dlg_allocate_gauge -Allocates a gauge widget. -Use \fBdlg_update_gauge\fP to display the result. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIpercent -is the percentage to show in the progress bar. -.\" --------------------------------------------------------------------------- -.SS dlg_asciibox -returns its parameter transformed to the -corresponding "+" or "-", etc., -for the line-drawing characters used in \fB\*p\fP. -If the parameter is not a line-drawing or other special character -such as ACS_DARROW, it returns 0. -.TP 5 -.B chtype \fIch -is the parameter, usually one of the \fBACS_\fP\fIxxx\fP constants. -.\" --------------------------------------------------------------------------- -.SS dlg_attr_clear -Set window to the given attribute. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B int \fIheight -is the number of rows to update. -.TP 5 -.B int \fIwidth -is the number of columns to update. -.TP 5 -.B chtype \fIattr -is the attribute, e.g., \fBA_BOLD\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_auto_size -Compute window size based on the size of the formatted \fIprompt\fP and -minimum dimensions for a given widget. -.PP -\fB\*L\fP sets -\fBdialog_state.text_height\fP and -\fBdialog_state.text_width\fP for -the formatted \fIprompt\fP -as a side-effect. -.PP -Normally \fB\*l\fP writes the formatted \fIprompt\fP to the curses -window, -but it will write the formatted \fIprompt\fP to the output stream -if \fBdialog_state.text_only\fP is set. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIprompt -is the message text which will be displayed in the widget, -used here to determine how large the widget should be. -.IP -If the value is \fINULL\fP, -\fB\*l\fP allows the widget to use the whole screen, -i.e., if the values referenced by \fIheight\fP and/or \fIwidth\fP are zero. -.TP 5 -.B int * \fIheight -is the nominal height. -\fB\*L\fP checks the referenced value and may update it: -.RS -.bP -if the value is negative, -\fB\*l\fP updates it to the available height of the screen, -after reserving rows for the window border and shadow, -as well as taking into account -\fBdialog_vars.begin_y\fP and -\fBdialog_vars.begin_set\fP. -.bP -if the value is zero, -\fB\*l\fP updates it to the required height of the window, -taking into account a (possibly) multi-line \fIprompt\fP. -.bP -if the value is greater than zero, -\fB\*l\fP uses it internally, but restores the value on return. -.RE -.TP 5 -.B int * \fIwidth -is the nominal width. -\fB\*L\fP checks the referenced value and may update it: -.RS -.bP -if the value is negative, -\fB\*l\fP updates it to the available width of the screen, -after reserving rows for the window border and shadow, -as well as taking into account -\fBdialog_vars.begin_x\fP and -\fBdialog_vars.begin_set\fP. -.bP -if the value is zero, -\fB\*l\fP updates it to the required width of the window, -taking into account a (possibly) multi-line \fIprompt\fP. -.bP -if the value is greater than zero, -\fB\*l\fP uses it internally, but restores the value on return. -.RE -.TP 5 -.B int \fIboxlines -is the number of lines to reserve in the vertical direction. -.TP 5 -.B int \fImincols -is the minimum number of columns to use. -.\" --------------------------------------------------------------------------- -.SS dlg_auto_sizefile -Like \fBdlg_auto_size\fP, but use a file contents to decide how large -the widget should be. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIfile -is the name of the file. -.TP 5 -.B int * \fIheight -is the nominal height. -.IP -If it is -1, use the screen's height -(after subtracting \fBdialog_vars.begin_y\fP -if \fBdialog_vars.begin_set\fP is true). -.IP -If it is greater than zero, -limit the referenced value to the screen-height -after verifying that the file exists. -.TP 5 -.B int * \fIwidth -is the nominal width. -.IP -If it is -1, use the screen's width (after subtracting \fBdialog_vars.begin_x\fP -if \fBdialog_vars.begin_set\fP is true). -.IP -If it is greater than zero, -limit the referenced value to the screen-width -after verifying that the file exists. -.TP 5 -.B int \fIboxlines -is the number of lines to reserve on the screen for drawing boxes. -.TP 5 -.B int \fImincols -is the number of columns to reserve on the screen for drawing boxes. -.\" --------------------------------------------------------------------------- -.SS dlg_beeping -If \fBdialog_vars.beep_signal\fP is nonzero, -this calls \fBbeep\fP once and sets -\fBdialog_vars.beep_signal\fP to zero. -.\" --------------------------------------------------------------------------- -.SS dlg_boxchar -returns its \fBchtype\fP parameter transformed as follows: -.bP -if neither \fBdialog_vars.ascii_lines\fP nor \fBdialog_vars.no_lines\fP is set. -.bP -if \fBdialog_vars.ascii_lines\fP is set, -returns the corresponding "+" or "-", etc., -for the line-drawing characters used in \fB\*p\fP. -.bP -otherwise, if \fBdialog_vars.no_lines\fP is set, -returns a space for the line-drawing characters. -.bP -if the parameter is not a line-drawing or other special character -such as ACS_DARROW, -it returns the parameter unchanged. -.\" --------------------------------------------------------------------------- -.SS dlg_box_x_ordinate -returns a suitable x-ordinate (column) for a new widget. -If \fBdialog_vars.begin_set\fP is 1, -use \fBdialog_vars.begin_x\fP; -otherwise center the widget on the screen (using the \fIwidth\fP parameter). -.TP 5 -.B int \fIwidth -is the width of the widget. -.\" --------------------------------------------------------------------------- -.SS dlg_box_y_ordinate -returns a suitable y-ordinate (row) for a new widget. -If \fBdialog_vars.begin_set\fP is 1, -use \fBdialog_vars.begin_y\fP; -otherwise center the widget on the screen (using the \fIheight\fP parameter). -.TP 5 -.B int \fIheight -is the height of the widget. -.\" --------------------------------------------------------------------------- -.SS dlg_buildlist -This is an alternate interface to the \fBbuildlist\fP widget -which allows the application to read the list item states back -directly without putting them in the output buffer. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -is the list of items, contain tag, name, and optionally help strings -(if \fBdialog_vars.item_help\fP is set). -The initial selection state for each item is also in this list. -.TP 5 -.B const char * \fIstates -This is a list of characters to display for the given states. -Normally a buildlist provides true (1) and false (0) values, -which the widget displays as "*" and space, respectively. -An application may set this parameter to an arbitrary null-terminated string. -The widget determines the number of states from the length of this string, -and will cycle through the corresponding display characters as the user -presses the space-bar. -.TP 5 -.B int \fIorder_mode -is reserved for future enhancements -.TP 5 -.B int * \fIcurrent_item -The widget sets the referenced location to the index of the current display -item (cursor) when it returns. -.\" --------------------------------------------------------------------------- -.SS dlg_button_count -Count the buttons in the list. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.\" --------------------------------------------------------------------------- -.SS dlg_button_key -If a key was bound to one of the button-codes in \fBdlg_result_key\fP, fake -a button-value and an \*(``Cancel\*('' key -to cause the calling widget to return the corresponding status. -.PP -See \fBdlg_ok_buttoncode\fP, which maps settings for ok/extra/help and button -number into exit-code. -.\" --------------------------------------------------------------------------- -.SS dlg_button_layout -Make sure there is enough space for the buttons by -computing the width required for their labels, -adding margins and limiting based on the screen size. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int * \fIlimit -the function sets the referenced \fIlimit\fP to the width required for -the buttons (limited by the screen size) -if that is wider than the passed-in limit. -.\" --------------------------------------------------------------------------- -.SS dlg_button_sizes -Compute the size of the button array in columns. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int \fIvertical -is true if the buttons are arranged in a column rather than a row. -.TP 5 -.B int * \fIlongest -Return the total number of columns in the referenced location. -.TP 5 -.B int * \fIlength -Return the longest button's columns in the referenced location. -.\" --------------------------------------------------------------------------- -.SS dlg_button_to_char -Find the first uppercase character in the label, which we may use for an -abbreviation. -If the label is empty, return -1. -If no uppercase character is found, return 0. -Otherwise return the uppercase character. -.LP -Normally -.B dlg_draw_buttons -and -.B dlg_char_to_button -use the first uppercase character. -However, they keep track of all of the labels and -if the first has already been used in another label, -they will continue looking for another uppercase character. -This function does not have enough information to make that check. -.TP 5 -.B const char * \fIlabel -is the label to test. -.\" --------------------------------------------------------------------------- -.SS dlg_button_x_step -Compute the step-size needed between elements of the button array. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int \fIlimit -is the maximum number of columns to allow for the buttons. -.TP 5 -.B int * \fIgap -store the nominal gap between buttons in the referenced location. -This is constrained to be at least one. -.TP 5 -.B int * \fImargin -store the left+right total margins (for the list of buttons) in the referenced -location. -.TP 5 -.B int * \fIstep -store the step-size in the referenced location. -.\" --------------------------------------------------------------------------- -.SS dlg_calc_list_width -Calculate the minimum width for the list, -assuming none of the items are truncated. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -contains a \fIname\fP and \fItext\fP field, -e.g., for checklists or radiobox lists. -The function returns the sum of the widest columns -needed for of each of these fields. -.IP -If \fBdialog_vars.no_items\fP is set, -the \fItext\fP fields in the list are ignored. -.\" --------------------------------------------------------------------------- -.SS dlg_calc_listh -Calculate new height and list_height values. -.TP 5 -.B int * \fIheight -on input, is the height without adding the list-height. -On return, this contains the total list-height and is the -actual widget's height. -.TP 5 -.B int * \fIlist_height -on input, is the requested list-height. -On return, this contains the number of rows available for displaying -the list after taking into account the screen size and -the \fBdialog_vars.begin_set\fP and \fBdialog_vars.begin_y\fP variables. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP in the list. -.\" --------------------------------------------------------------------------- -.SS dlg_calc_listw -This function is obsolete, provided for library-compatibility. -It is replaced by \fBdlg_calc_list_width\fP. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP. -.TP 5 -.B char ** \fIitems -is a list of character pointers. -.TP 5 -.B int \fIgroup -is the number of items in each group, e.g., the second array index. -.\" --------------------------------------------------------------------------- -.SS dlg_char_to_button -Given a list of button labels, -and a character which may be the abbreviation for one, find it, if it exists. -An abbreviation will be the first character -which happens to be capitalized in the label. -If the character is found, return its index within the list of \fIlabels\fP. -Otherwise, return \fBDLG_EXIT_UNKNOWN\fP. -.TP 5 -.B int \fIch -is the character to find. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.\" --------------------------------------------------------------------------- -.SS dlg_checklist -This entrypoint provides the \fB\-\-checklist\fP or \fB\-\-radiolist\fP -functionality without the limitations of \fB\*p\fP's command-line syntax -(compare to \fBdialog_checklist\fP). -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -This is a list of the items to display in the checklist. -.TP 5 -.B const char * \fIstates -This is a list of characters to display for the given states. -Normally a checklist provides true (1) and false (0) values, -which the widget displays as "*" and space, respectively. -An application may set this parameter to an arbitrary null-terminated string. -The widget determines the number of states from the length of this string, -and will cycle through the corresponding display characters as the user -presses the space-bar. -.TP 5 -.B int \fIflag -This is should be one of \fBFLAG_CHECK\fP or \fPFLAG_RADIO\fP, -depending on whether the widget should act as a checklist or radiobox. -.TP 5 -.B int * \fIcurrent_item -The widget sets the referenced location to the index of the current display -item (cursor) when it returns. -.\" --------------------------------------------------------------------------- -.SS dlg_check_scrolled -given a function key (or other key that was mapped to a function key), -check if it is one of the up/down scrolling functions: -.sp -.RS -DLGK_PAGE_FIRST, -.br -DLGK_PAGE_LAST, -.br -DLGK_GRID_UP, -.br -DLGK_GRID_DOWN, -.br -DLGK_PAGE_PREV or -.br -DLGK_PAGE_NEXT. -.RE -.fi -.LP -Some widgets use these key bindings for scrolling the prompt-text up and -down, to allow for display in very small windows. -.LP -The function returns 0 (zero) if it finds one of these keys, -and -1 if not. -.TP 5 -.B int \fIkey -is the function-key to check -.TP 5 -.B int \fIlast -is the number of lines -which would be used to display the scrolled prompt in -an arbitrarily tall window. -It is used here to check limits for the \fIoffset\fP value. -.TP 5 -.B int \fIpage -this is the available height for writing scrolled text, -which is smaller than the window if it contains buttons. -.TP 5 -.B bool * \fIshow -on return, holds TRUE if \fBdlg_print_scrolled\fP should be used to redisplay -the prompt text. -.TP 5 -.B int * \fIoffset -on entry, holds the starting line number (counting from zero) -last used for \fBdlg_print_scrolled\fP. -On return, holds the updated starting line number. -.\" --------------------------------------------------------------------------- -.SS dlg_clear -Set window to the default \fB\*p\fP screen attribute. -This is set in the rc-file with \fBscreen_color\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_clr_result -Free storage used for the result buffer (\fBdialog_vars.input_result\fP). -The corresponding pointer is set to NULL. -.\" --------------------------------------------------------------------------- -.SS dlg_color_count -Return the number of colors that can be configured in \fB\*p\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_color_setup -Initialize the color pairs used in \fB\*p\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_count_argv -Count the entries in an argument vector. -.TP 5 -.B argv -Points to the argument vector. -.\" --------------------------------------------------------------------------- -.SS dlg_count_columns -Returns the number of columns used for a string. -This is not necessarily the number of bytes in a string. -.TP 5 -.B const char * \fIstring -is the string to measure. -.\" --------------------------------------------------------------------------- -.SS dlg_count_real_columns -Returns the number of columns used for a string, -accounting for "\eZ" sequences which can be used for -coloring the text if \fBdialog_vars.colors\fP is set. -This is not necessarily the number of bytes in a string. -.TP 5 -.B const char * \fIstring -is the string to measure. -.\" --------------------------------------------------------------------------- -.SS dlg_count_wchars -Returns the number of wide-characters in the string. -.TP 5 -.B const char * \fIstring -is the string to measure. -.\" --------------------------------------------------------------------------- -.SS dlg_create_rc -Create a configuration file, -i.e., write internal tables to a file which can be read back by \fB\*p\fP -as an rc-file. -.TP 5 -.B const char * \fIfilename -is the name of the file to write to. -.\" --------------------------------------------------------------------------- -.SS dlg_ctl_size -If \fBdialog_vars.size_err\fP is true, -check if the given window size is too large to fit on the screen. -If so, exit with an error reporting the size of the window. -.TP 5 -.B int \fIheight -is the window's height -.TP 5 -.B int \fIwidth -is the window's width -.\" --------------------------------------------------------------------------- -.SS dlg_default_button -If \fBdialog_vars.default_button\fP is positive, -return the button-index for that button code, -using \fBdlg_ok_buttoncode\fP to test indices starting with zero. -Otherwise (or if no match was found for the button code), return zero. -.\" --------------------------------------------------------------------------- -.SS dlg_default_formitem -If \fBdialog_vars.default_item\fP is not null, -find that name by matching the \fIname\fP field in the list of form \fIitems\fP. -If found, return the index of that item in the list. -Otherwise, return zero. -.TP 5 -.B DIALOG_FORMITEM * \fIitems -is the list of items to search. -It is terminated by an entry with a null \fIname\fP field. -.\" --------------------------------------------------------------------------- -.SS dlg_default_item -This function is obsolete, provided for library-compatibility. -It is replaced by \fBdlg_default_formitem\fP and \fBdlg_default_listitem\fP. -.TP 5 -.B char ** \fIitems -is the list of items to search. -.TP 5 -.B int \fIllen -is the number of items in each group, e.g., the second array index. -.\" --------------------------------------------------------------------------- -.SS dlg_defaultno_button -If \fBdialog_vars.defaultno\fP is true, and \fBdialog_vars.nocancel\fP is not, -find the button-index for the \*(``Cancel\*('' button. -Otherwise, return the index for \*(``OK\*('' (always zero). -.\" --------------------------------------------------------------------------- -.SS dlg_del_window -Remove a window, repainting everything else. -.TP 5 -.B WINDOW * \fIwin -is the window to remove. -.\" --------------------------------------------------------------------------- -.SS dlg_der_window -create a derived window, e.g., for an input area of a widget -.TP 5 -.B WINDOW * \fIwin -is the parent window -.TP 5 -.B int \fIheight -is the subwindow's height -.TP 5 -.B int \fIwidth -is the subwindow's width -.TP 5 -.B int \fIy -is the subwindow's top-row -.TP 5 -.B int \fIx -is the subwindow's left-column -.\" --------------------------------------------------------------------------- -.SS dlg_does_output -This is called each time a widget is invoked which may do output. -It increments \fBdialog_state.output_count\fP, -so the output function in \fB\*p\fP can test this and add a separator. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_arrows -Draw up/down arrows on a window, e.g., for scrollable lists. -It calls \fBdlg_draw_arrows2\fP using the -\fImenubox_color\fP and \fImenubox_border_color\fP attributes. -.TP 5 -.B WINDOW * \fIdialog -is the window on which to draw an arrow. -.TP 5 -.B int \fItop_arrow -is true if an up-arrow should be drawn at the top of the window. -.TP 5 -.B int \fIbottom_arrow -is true if an down-arrow should be drawn at the bottom of the window. -.TP 5 -.B int \fIx -is the zero-based column within the window on which to draw arrows. -.TP 5 -.B int \fItop -is the zero-based row within the window on which to draw up-arrows -as well as a horizontal line to show the window's top. -.TP 5 -.B int \fIbottom -is the zero-based row within the window on which to draw down-arrows -as well as a horizontal line to show the window's bottom. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_arrows2 -Draw up/down arrows on a window, e.g., for scrollable lists. -.TP 5 -.B WINDOW * \fIdialog -is the window on which to draw an arrow. -.TP 5 -.B int \fItop_arrow -is true if an up-arrow should be drawn at the top of the window. -.TP 5 -.B int \fIbottom_arrow -is true if an down-arrow should be drawn at the bottom of the window. -.TP 5 -.B int \fIx -is the zero-based column within the window on which to draw arrows. -.TP 5 -.B int \fItop -is the zero-based row within the window on which to draw up-arrows -as well as a horizontal line to show the window's top. -.TP 5 -.B int \fIbottom -is the zero-based row within the window on which to draw down-arrows -as well as a horizontal line to show the window's bottom. -.TP 5 -.B chtype \fIattr -is the window's background attribute. -.TP 5 -.B chtype \fIborderattr -is the window's border attribute. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_bottom_box -Draw a partial box at the bottom of a window, -e.g., to surround a row of buttons. -It is designed to merge with an existing box around -the whole window (see \fBdlg_draw_box\fP), -so it uses tee-elements rather than corner-elements -on the top corners of this box. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_bottom_box2 -Draw a partial box at the bottom of a window, -e.g., to surround a row of buttons. -It is designed to merge with an existing box around -the whole window (see \fBdlg_draw_box2\fP), -so it uses tee-elements rather than corner-elements -on the top corners of this box. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B chtype \fIon_left -is used to color the upper/left edges of the box, i.e., the tee-element and -horizontal line -.TP 5 -.B chtype \fIon_right -is used to color the right edge of the box, i.e., the tee-element -.TP 5 -.B chtype \fIon_inside -is used to fill-color the inside of the box -.\" --------------------------------------------------------------------------- -.SS dlg_draw_box -Draw a rectangular box with line drawing characters. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B int \fIy -is the top row of the box. -.TP 5 -.B int \fIx -is the left column of the box. -.TP 5 -.B int \fIheight -is the height of the box. -.TP 5 -.B int \fIwidth -is the width of the box. -.TP 5 -.B chtype \fIboxchar -is used to color the right/lower edges. -It also is fill-color used for the box contents. -.TP 5 -.B chtype \fIborderchar -is used to color the upper/left edges. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_box2 -Draw a rectangular box with line drawing characters. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B int \fIy -is the top row of the box. -.TP 5 -.B int \fIx -is the left column of the box. -.TP 5 -.B int \fIheight -is the height of the box. -.TP 5 -.B int \fIwidth -is the width of the box. -.TP 5 -.B chtype \fIboxchar -is used to fill-color for the box contents. -.TP 5 -.B chtype \fIborderchar -is used to color the upper/left edges. -.TP 5 -.B chtype \fIborderchar2 -is used to color the right/lower edges. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_buttons -Print a list of buttons at the given position. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B int \fIy -is the starting row. -.TP 5 -.B int \fIx -is the starting column. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int \fIselected -is the index within the list of the selected button. -.TP 5 -.B int \fIvertical -is true if the buttons are arranged in a column rather than a row. -.TP 5 -.B int \fIlimit -is the number of columns (or rows if \fIvertical\/\fP) allowed for the display. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_helpline -draw the text in \fBdialog_vars.help_line\fP at the bottom of the given window. -.TP 5 -.B WINDOW * \fIdialog -is the window to modify. -.TP 5 -.B bool \fIdecorations -if true, allow room for the scrolling arrows. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_scrollbar -If \fBdialog_state.use_scrollbar\fP is set, -draw a scrollbar on the right margin of windows holding scrollable data. -Also (whether or not the scrollbar is drawn), -annotate the bottom margin of the window with the percentage of data -by the bottom of that window, -and call \fBdlg_draw_arrows2\fP to put markers on the window showing -when more data is available. -.TP 5 -.B WINDOW * \fIwin -is the window in which the data is scrolled. -Because \fIleft\fP, \fIright\fP, \fItop\fP, \fIbottom\fP -are passed as parameters, this window can contain additional data. -.TP 5 -.B long \fIfirst_data -is the zero-based index to the first row of data in the current window. -.TP 5 -.B long \fIthis_data -is the zero-based index to the current row of data. -.TP 5 -.B long \fInext_data -is the zero-based index to the next data after the current row. -.TP 5 -.B long \fItotal_data -is the total number of rows of data. -.TP 5 -.B int \fIleft -is the zero-based left margin/column of the window. -The up/down arrows are draw inset by 5 columns from this point. -.TP 5 -.B int \fIright -is the zero-based right margin/column of the window. -The scrollbar is drawn flush against this column. -.TP 5 -.B int \fItop -is the zero-based row within the window on which to draw up-arrows -as well as a horizontal line to show the window's top. -.TP 5 -.B int \fIbottom -is the zero-based row within the window on which to draw down-arrows -as well as a horizontal line to show the window's bottom. -.TP 5 -.B chtype \fIattr -is the window's background attribute. -.TP 5 -.B chtype \fIborderattr -is the window's border attribute. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_shadow -Draw shadows along the right and bottom edge of a window to give it -a 3-dimensional look. -(The height, etc., may not be the same as the window's actual values). -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B int \fIheight -is the height of the window. -.TP 5 -.B int \fIwidth -is the width of the window. -.TP 5 -.B int \fIy -is the top row of the window. -.TP 5 -.B int \fIx -is the left column of the window. -.\" --------------------------------------------------------------------------- -.SS dlg_draw_title -Draw a title centered at the top of the window. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.\" --------------------------------------------------------------------------- -.SS dlg_dummy_menutext -This is a utility function which supports the \fB\-\-inputmenu\fP option of -the \fB\*p\fP program. -If \fBdialog_vars.input_menu\fP is set, \fBdialog_menu\fP passes this -pointer to \fBdlg_menu\fP as the \fIrename_menutext\fP parameter. -Otherwise, it passes \fBdlg_dummy_menutext\fP. -.LP -The function should only return \fBDLG_EXIT_ERROR\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -is the list of menu items -.TP 5 -.B int \fIcurrent -is the index of the currently-selected item -.TP 5 -.B char * \fInewtext -is the updated text for the menu item -.\" --------------------------------------------------------------------------- -.SS dlg_dump_keys -Write all user-defined key-bindings to the given stream, -e.g., as part of \fBdlg_create_rc\fP. -.TP 5 -.B FILE * \fIfp -is the stream on which to write the bindings. -.\" --------------------------------------------------------------------------- -.SS dlg_dump_window_keys -Write all user-defined key-bindings to the given stream, -e.g., as part of \fBdlg_create_rc\fP. -.TP 5 -.B FILE * \fIfp -is the stream on which to write the bindings. -.TP 5 -.B WINDOW * \fIwin -is the window for which bindings should be dumped. -If it is null, then only built-in bindings are dumped. -.\" --------------------------------------------------------------------------- -.SS dlg_eat_argv -Remove one or more items from an argument vector. -.TP 5 -.B int * \fIargcp -in/out parameter giving the length of the argument vector. -.B char *** \fIargvp -in/out parameter pointing to the argument vector. -.B int \fIstart -starting index. -.B int \fIcount -number of arguments to remove. -.\" --------------------------------------------------------------------------- -.SS dlg_edit_offset -Given the character-offset in the string, -returns the display-offset where -\fB\*p\fP should position the cursor. -In this context, \*(``characters\*('' may be multicolumn, -since the string can be a multibyte character string. -.TP 5 -.B char * \fIstring -is the string to analyze -.TP 5 -.B int \fIoffset -is the character-offset -.TP 5 -.B int \fIx_last -is a limit on the column positions that can be used, -e.g., the window's size. -.\" --------------------------------------------------------------------------- -.SS dlg_edit_string -Updates the string and character-offset, given various editing characters -or literal characters which are inserted at the character-offset. -Returns true if an editing change was made (and the display should -be updated), and false if the key was something like \fBKEY_ENTER\fP, -which is a non-editing action outside this function. -.TP 5 -.B char * \fIstring -is the (multibyte) string to update -.TP 5 -.B int * \fIoffset -is the character-offset -.TP 5 -.B int \fIkey -is the editing key -.TP 5 -.B int \fIfkey -is true if the editing key is a function-key -.TP 5 -.B bool \fIforce -is used in a special loop case by calling code to force the return -value of this function when a function-key code 0 is passed in. -.\" --------------------------------------------------------------------------- -.SS dlg_exit -Given an internal exit code, -check if the corresponding environment variable is set. -If so, remap the exit code to match the environment variable. -Finally call \fBexit\fP with the resulting exit code. -.TP 5 -.B int \fIcode -is the internal exit code, e.g., \fBDLG_EXIT_OK\fP, -which may be remapped. -.LP -The \fB\*p\fP program uses this function -to allow shell scripts to remap the exit codes so they can distinguish ESC -from ERROR. -.\" --------------------------------------------------------------------------- -.SS dlg_exitcode2s -Returns the name of an exit-code, e.g., -\*(``OK\*('' for \fBDLG_EXIT_OK\fP. -.TP 5 -.B int \fIcode -is an exit-code for \fB\*p\fP as defined in \fB<\*p.h>\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_exitname2n -Returns an exit-code as the reverse of \fBdlg_exitcode2n\fP, e.g., -0 (\fBDLG_EXIT_OK\fP) for the \*(``OK\*('' string. -.TP 5 -.B const char * \fIname -is the name of an exit-code for \fB\*p\fP as defined in \fB<\*p.h>\fP -but omitting the \*(``DLG_EXIT_\*('' prefix. -.\" --------------------------------------------------------------------------- -.SS dlg_exit_buttoncode -Map the given button index for \fBdlg_exit_label\fP into \fB\*p\fP's exit-code. -.TP 5 -.B int \fIbutton -is the button index -.\" --------------------------------------------------------------------------- -.SS dlg_exit_label -Return a list of button labels. -If \fBdialog_vars.extra_button\fP is true, -return the result of \fBdlg_ok_labels\fP. -Otherwise, return a list with the \*(``Exit\*('' label -and (if \fBdialog_vars.help_button\fP is set) -the \*(``Help\*('' button as well. -.\" --------------------------------------------------------------------------- -.SS dlg_exiterr -Quit program killing all \fBtailboxbg\fP widgets. -.TP 5 -.B const char * \fIfmt -is the format of the \fBprintf\fP-like message to write. -.TP 5 -.B ... -.br -are the variables to apply to the \fIfmt\fP format. -.\" --------------------------------------------------------------------------- -.SS dlg_find_index -Given the character-offset to find in the list, return the corresponding -array index. -.TP 5 -.B const int *\fIlist -contains a list of character-offsets, -i.e., indices into a string that denote the beginning of multibyte characters. -.TP 5 -.B int \fIlimit -is the last index into \fBlist\fP to search. -.TP 5 -.B int \fIto_find -is the character-offset to find. -.\" --------------------------------------------------------------------------- -.SS dlg_finish_string -If \fIDIALOG_STATE.finish_string\fP is true, -this function discards data used to speed up layout computations. -.TP 5 -.B const char * \fIstring -is the address of the string whose data should be discarded. -The address rather than contents is used as the unique identifier because -some of the caching is used for editable input-fields. -.\" --------------------------------------------------------------------------- -.SS dlg_flush_getc -Cancel the local data saved by \fBdlg_last_getc\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_editbox -This entrypoint provides the \fB\-\-editbox\fP -functionality without the limitations of \fB\*p\fP's command-line syntax -(compare to \fBdialog_editbox\fP). -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B char *** \fIlist -is a pointer to an array of \fBchar\ *\fP pointers. -The array is allocated by the caller, -and so are the strings to which it points. -The \fBdlg_editbox\fP function may reallocate the -array and the strings. -.TP 5 -.B int * \fIrows -points to the nominal length of \fIlist\fP. -The referenced value is updated if\fIlist\fP is reallocated. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.\" --------------------------------------------------------------------------- -.SS dlg_form -This entrypoint provides the \fB\-\-form\fP -functionality without the limitations of \fB\*p\fP's command-line syntax -(compare to \fBdialog_form\fP). -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIform_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP. -.TP 5 -.B DIALOG_FORMITEM * \fIitems -This is a list of the items to display in the form. -.TP 5 -.B int * \fIcurrent_item -The widget sets the referenced location to the index of the current display -item (cursor) when it returns. -.\" --------------------------------------------------------------------------- -.SS dlg_free_columns -Free data allocated by \fBdlg_align_columns\fP. -.TP 5 -.B char **\fItarget -This is the array which was reformatted. -It points to the first string to free. -.TP 5 -.B int \fIper_row -This is the size of the struct for each row of the array. -.TP 5 -.B int \fInum_rows -This is the number of rows in the array. -.\" --------------------------------------------------------------------------- -.SS dlg_free_formitems -Free memory owned by a list of DIALOG_FORMITEM's. -.TP 5 -.B DIALOG_FORMITEM * \fIitems -is the list to free. -.\" --------------------------------------------------------------------------- -.SS dlg_free_gauge -Remove the gauge widget from the screen and free its associated memory. -.TP 5 -.B void *\fIobjptr -points to the gauge widget. -.\" --------------------------------------------------------------------------- -.SS dlg_getc -Read a character from the given window. -Handle repainting here (to simplify -things in the calling application). -Also, if input-callback(s) are set up, -poll the corresponding files and handle the updates, -e.g., for displaying a tailbox. -Returns the key-code. -.TP 5 -.B WINDOW * \fIwin -is the window within which to read. -.TP 5 -.B int * \fIfkey -as a side-effect, set this to true if the key-code is really a function-key. -.\" --------------------------------------------------------------------------- -.SS dlg_getenv_num -Get a number from the environment: -.bP -If the caller provides a pointer in the second parameter, return -success/failure for the function return, and the actual value via the pointer. -Use this for decoding arbitrary numbers, e.g., negative or zero. -.bP -If the caller does not provide a pointer, return the decoded value for -the function-return. -Use this when only values greater than zero are useful. -.TP 5 -.B char * \fIname -is the name of the environment-variable to retrieve. -.TP 5 -.B int * \fIvalue -is the optional pointer to a return-value. -.\" --------------------------------------------------------------------------- -.SS dlg_getenv_str -Get a string from the environment, rejecting those which are entirely blank. -.TP 5 -.B char * \fIname -is the name of the environment-variable to retrieve. -.\" --------------------------------------------------------------------------- -.SS dlg_get_attrs -extract the video attributes from the given window. -.TP 5 -.B WINDOW * \fIwin -is the window from which to get attributes. -.\" --------------------------------------------------------------------------- -.SS dlg_getc_callbacks -passes the given key-code \fIch\fP to the current window that -has established a callback. -If the callback returns zero, remove it and try the next window. -If no more callbacks remain, return. -If any callbacks were found, return true, otherwise false. -.TP 5 -.B int \fIch -is the key-code -.TP 5 -.B int \fIfkey -is true if the key is a function-key -.TP 5 -.B int * \fIresult -is used to pass an exit-code to the caller, -which should pass that via \fBdlg_exit\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_index_columns -Build a list of the display-columns for the given multibyte string's characters. -.TP 5 -.B const char * \fIstring -is the string to analyze -.\" --------------------------------------------------------------------------- -.SS dlg_index_wchars -Build an index of the wide-characters in the string, -so the caller can easily tell -which byte-offset begins a given wide-character. -.TP 5 -.B const char * \fIstring -is the string to analyze -.\" --------------------------------------------------------------------------- -.SS dlg_item_help -Draw the string for the \fBdialog_vars.item_help\fP feature. -.TP 5 -.B const char * \fItxt -is the help-message -.\" --------------------------------------------------------------------------- -.SS dlg_keep_tite -This performs the check and modifications -for the command-line option "\fB\-\-keep\-tite\fP", -used in \fBinit_dialog\fP as well as for -the command-line option \fB\-\-erase\-on\-exit\fP. -.TP 5 -.B FILE * \fIoutput -is the output stream used for displaying widgets. -It is either \fIstdout\fP or \fIstderr\fP, -depending on the \fB\-\-stdout\fP option. -.\" --------------------------------------------------------------------------- -.SS dlg_killall_bg -If \fB\*p\fP has callbacks active, -purge the list of all that are not marked -to keep in the background. -If any remain, run those in a background process. -.TP 5 -.B int * \fIretval -stores the exit-code to pass back to the caller. -.\" --------------------------------------------------------------------------- -.SS dlg_last_getc -returns the most recent character that was read via \fBdlg_getc\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_limit_columns -Given a column limit, -count the number of wide characters that can fit into that limit. -The offset is used to skip over a leading character -that was already written. -.TP 5 -.B const char * \fIstring -is the string to analyze -.TP 5 -.B int \fIlimit -is the column limit -.TP 5 -.B int \fIoffset -is the starting offset from which analysis should continue -.\" --------------------------------------------------------------------------- -.SS dlg_lookup_key -Check for a key-binding. -If there is no binding associated with the widget, it simply returns -the given curses-key. -Otherwise, it returns the result of the binding -.TP 5 -.B WINDOW * \fIwin -is the window on which the binding is checked -.TP 5 -.B int \fIcurses_key -is the curses key-code -.TP 5 -.B int * \fIdialog_key -is the corresponding \fB\*p\fP internal code -(see \fBDLG_KEYS_ENUM\fP in dlg_key.h). -.\" --------------------------------------------------------------------------- -.SS dlg_max_input -Limit the parameter according to \fBdialog_vars.max_input\fP -.TP 5 -.B int \fImax_len -is the value to limit -.\" --------------------------------------------------------------------------- -.SS dlg_match_char -Match a given character against the beginning of the string, -ignoring case of the given character. -The matching string must begin with an uppercase character. -.TP 5 -.B int \fIch -is the character to check -.TP 5 -.B const char * \fIstring -is the string to search -.\" --------------------------------------------------------------------------- -.SS dlg_menu -This entrypoint provides the \fB\-\-menu\fP -functionality without the limitations of \fB\*p\fP's command-line syntax -(compare to \fBdialog_menu\fP). -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fImenu_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of \fIitems\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -This is a list of the items to display in the form. -.TP 5 -.B int * \fIcurrent_item -The widget sets the referenced location to the index of the current display -item (cursor) when it returns. -.TP 5 -.B DIALOG_INPUTMENU \fIrename_menutext -If this is not \fBdlg_dummy_menutext\fP, -the widget acts like an \fIinputmenu\fP widget, -providing an extra \*(``Rename\*('' button, -which activates an edit feature on the selected menu item. -.\" --------------------------------------------------------------------------- -.SS dlg_move_window -Moves/resizes the given window to the given position and size. -.TP 5 -.B WINDOW *\fIwin -is the window to move/resize. -.TP 5 -.B WINDOW *\fIheight -is the height of the resized window. -.TP 5 -.B WINDOW *\fIwidth -is the width of the resized window. -.TP 5 -.B WINDOW *\fIy -y-ordinate to use for the repositioned window. -.TP 5 -.B WINDOW *\fIx -x-ordinate to use for the repositioned window. -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_bigregion -Retrieve the big-region under the pointer. -.TP 5 -.B int \fIy -is the row on which the mouse click occurred -.TP 5 -.B int \fIx -is the column on which the mouse click occurred -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_free_regions -Free the memory associated with mouse regions. -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_mkbigregion -Creates a region on which the mouse-clicks will return a specified code. -.TP 5 -.B int \fIy -is the top-row of the region. -.TP 5 -.B int \fIx -is the left-column of the region. -.TP 5 -.B int \fIheight -is the height of the region. -.TP 5 -.B int \fIwidth -is the width of the region. -.TP 5 -.B int \fIcode -is a code used to make the region unique within a widget -.TP 5 -.B int \fIstep_x -is used in modes 2 (columns) and 3 (cells) to determine the width -of a column/cell. -.TP 5 -.B int \fIstep_y -is currently unused -.TP 5 -.B int \fImode -is used to determine how the mouse position is translated into -a code (like a function-key): -.RS 5 -.TP 3 -1 -index by lines -.TP -2 -index by columns -.TP -3 -index by cells -.RE -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_mkregion -.TP 5 -.B int \fIy -is the top-row of the region. -.TP 5 -.B int \fIx -is the left-column of the region. -.TP 5 -.B int \fIheight -is the height of the region. -.TP 5 -.B int \fIwidth -is the width of the region. -.TP 5 -.B int \fIcode -is a code used to make the region unique within a widget -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_region -Retrieve the frame under the mouse pointer -.TP 5 -.B int \fIy -is the row of the mouse-click -.TP 5 -.B int \fIx -is the column of the mouse-click -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_setbase -Sets a base for subsequent calls to \fBdlg_mouse_mkregion\fP, -so they can make regions relative to the start of a given window. -.TP 5 -.B int \fIx -is the left-column for the base -.TP 5 -.B int \fIy -is the top-row for the base -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_setcode -Sets a value used internally by \fBdlg_mouse_mkregion\fP -which is added to the \fIcode\fP parameter. -By providing different values, -e.g., multiples of \fBKEY_MAX\fP, -it is possible to support multiple \*(``big\*('' regions in a widget. -The \fIbuildlist\fP widget uses this feature to recognize mouse-clicks -in the left/right panes. -.TP 5 -.B int \fIcode -is the value to add to \fBdlg_mouse_mkregion\fP's \fIcode\fP parameter. -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_wgetch -is a wrapper for \fBdlg_getc\fP which additionally maps mouse-clicks -(if the curses library supports those) into extended function-keys -which encode the position according to the \fImode\fP in -\fBdlg_mouse_mkbigregion\fP. -Returns the corresponding key-code. -.TP 5 -.B WINDOW * \fIwin -is the window on which to perform the input -.TP 5 -.B int * \fIfkey -the referenced location is set to true if the key-code is an actual -or extended (mouse) function-key. -.\" --------------------------------------------------------------------------- -.SS dlg_mouse_wgetch_nowait -This is a non-blocking variant of \fBdlg_mouse_wgetch\fP. -.TP 5 -.B WINDOW * \fIwin -is the window on which to perform the input -.TP 5 -.B int * \fIfkey -the referenced location is set to true if the key-code is an actual -or extended (mouse) function-key. -.\" --------------------------------------------------------------------------- -.SS dlg_need_separator -Check if an output-separator is needed. -If \fBdialog_vars.output_separator\fP is set, return true. -Otherwise, if \fBdialog_vars.input_result\fP is nonempty, return true. -If neither, return false. -.\" --------------------------------------------------------------------------- -.SS dlg_new_modal_window -Create a modal window, optionally with a shadow. -The shadow is created if \fBdialog_state.use_shadow\fP is true. -.TP 5 -.B WINDOW * \fIparent -is the parent window (usually the top-level window of a widget) -.TP 5 -.B int \fIheight -is the window's height -.TP 5 -.B int \fIwidth -is the window's width -.TP 5 -.B int \fIy -is the window's top-row -.TP 5 -.B int \fIx -is the window's left-column -.\" --------------------------------------------------------------------------- -.SS dlg_new_window -Create a window, optionally with a shadow. -The shadow is created if \fBdialog_state.use_shadow\fP is true. -.TP 5 -.B int \fIheight -is the window's height -.TP 5 -.B int \fIwidth -is the window's width -.TP 5 -.B int \fIy -is the window's top-row -.TP 5 -.B int \fIx -is the window's left-column -.\" --------------------------------------------------------------------------- -.SS dlg_next_button -Return the next index in the list of labels. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int \fIbutton -is the current button-index. -.\" --------------------------------------------------------------------------- -.SS dlg_next_ok_buttonindex -Assuming that the caller is using \fBdlg_ok_labels\fP to list buttons, -find the next index in the list of buttons. -.TP 5 -.B int \fIcurrent -is the current index in the list of buttons -.TP 5 -.B int \fIextra -if negative, provides a way to enumerate extra active areas on the widget. -.\" --------------------------------------------------------------------------- -.SS dlg_ok_buttoncode -Map the given button index for \fBdlg_ok_labels\fP -into \fB\*p\fP's exit-code. -.TP 5 -.B int \fIbutton -is the button-index (which is not necessarily the same as the index -in the list of labels). -.\" --------------------------------------------------------------------------- -.SS dlg_ok_button_key -Calls \fBdlg_button_key\fP with the \*(``Cancel\*('' button disabled, -e.g., for the textbox widget. -.\" --------------------------------------------------------------------------- -.SS dlg_ok_label -Returns a list with the \*(``Ok\*('' label, -and if \fBdialog_vars.help_button\fP is true, the \*(``Help\*('' label as well. -.\" --------------------------------------------------------------------------- -.SS dlg_ok_labels -Return a list of button labels for the OK/Cancel group of widgets. -.\" --------------------------------------------------------------------------- -.SS dlg_ordinate -Decode the string as an integer, decrement if greater than zero to make -a curses-ordinate from a dialog-ordinate. -.\" --------------------------------------------------------------------------- -.SS dlg_parse_bindkey -Parse the parameters of the \*(``bindkeys\*('' configuration-file entry. -This expects widget name which may be "*", followed by curses key definition and -then \fB\*p\fP key definition. -.TP 5 -.B char * \fIparams -is the parameter string to parse. -.\" --------------------------------------------------------------------------- -.SS dlg_parse_rc -Parse the configuration file and set up variables. -.\" --------------------------------------------------------------------------- -.SS dlg_popen -Open a pipe which ties the standard error and output together. -The \fBpopen\fP function captures only the standard output of a command. -.TP 5 -.B const char *\fIcommand -The shell command to run. -.TP 5 -.B const char *\fItype -Like \fBpopen\fP, "r" is used to read, and "w" is used to write. -.\" --------------------------------------------------------------------------- -.SS dlg_prev_button -Return the previous index in the list of labels. -.TP 5 -.B const char ** \fIlabels -is a list of (pointers to) button labels terminated by a null pointer. -.TP 5 -.B int \fIbutton -is the current button index -.\" --------------------------------------------------------------------------- -.SS dlg_print_listitem -This is a helper function used for the various \*(``list\*('' widgets, -e.g., checklist, menu, buildlist, treeview. -Each list-widget has \*(``tag\*('' and \*(``description\*('' values -for each item which can be displayed. -If \fBdialog_vars.no_tags\fP is true, -the \*(``tag\*('' value is not shown. -The first character of the first value shown (tag or description) -is highlighted to indicate that the widget will match it for quick navigation. -.TP 5 -.B WINDOW *\fIwin -the window in which to display the text -.TP 5 -.B const char *\fItext -the value to display -.TP 5 -.B int \fIclimit -the number of columns available for printing the text -.TP 5 -.B bool \fIfirst -true if this is the first call (for \*(``tag\*('' and \*(``description\*(''), -and the first character of the value should be highlighted. -.TP 5 -.B int \fIselected -nonzero if the text should be displayed using the \*(``selected\*('' colors -.\" --------------------------------------------------------------------------- -.SS dlg_print_scrolled -This is a wrapper for \fBdlg_print_autowrap\fP which allows the user -to scroll too-long prompt text up/down. -.LP -See \fBdlg_check_scrolled\fP for a function which updates the \fIoffset\fP -variable used as a parameter here. -It complements this function; you need both. -If \fIpauseopt\fP is set, this function returns an updated \fIlast\fP -parameter, needed for \fBdlg_check_scrolled\fP calls. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B const char * \fIprompt -is the string to print -.TP 5 -.B int \fIoffset -is the starting line-number to write wrapped text. -.TP 5 -.B int \fIheight -is the available height for writing the wrapped text -.TP 5 -.B int \fIwidth -is the width that the wrapping should occur in -.TP 5 -.B int \fIpauseopt -is true if the extra functionality for scrolling should be enabled. -If false, this calls \fBdlg_print_autowrap\fP without doing any scrolling. -.\" --------------------------------------------------------------------------- -.SS dlg_print_line -Print one line of the prompt in the window within the limits of the -specified right margin. -The line will end on a word boundary and a pointer -to the start of the next line is returned, or a NULL pointer if the end of -*prompt is reached. -.TP 5 -.B WINDOW *\fIwin -is the window to update. -.TP 5 -.B chtype *\fIattr -holds the starting attributes, and is updated to reflect the final attributes -applied to the string. -.TP 5 -.B const char *\fIprompt -is the string to print -.TP 5 -.B int \fIlm -is the left margin. -.TP 5 -.B int \fIrm -is the right margin -.TP 5 -.B int *\fIx -returns the ending x-ordinate. -.\" --------------------------------------------------------------------------- -.SS dlg_prev_ok_buttonindex -Find the previous button index in the list from \fBdlg_ok_labels\fP. -.TP 5 -.B int \fIcurrent -is the current index -.TP 5 -.B int \fIextra -if negative provides a way to enumerate extra active areas on the widget. -.\" --------------------------------------------------------------------------- -.SS dlg_print_autowrap -Print a string of text in a window, automatically wrap around to the next -line if the string is too long to fit on one line. -Note that the string may contain embedded newlines. -The text is written starting at the top of the window. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B const char * \fIprompt -is the string to print -.TP 5 -.B int \fIheight -is the nominal height the wrapped string is limited to -.TP 5 -.B int \fIwidth -is the width that the wrapping should occur in -.\" --------------------------------------------------------------------------- -.SS dlg_print_size -If \fBdialog_vars.print_siz\fP is true, -print the given height/width (from a widget) -to \fBdialog_state.output\fP, e.g., -\fBSize: height, width\fP. -.TP 5 -.B int \fIheight -is the window's height -.TP 5 -.B int \fIwidth -is the window's width -.\" --------------------------------------------------------------------------- -.SS dlg_print_text -Print up to \fIcols\fP columns from \fBtext\fP, -optionally rendering \fB\*p\fP's escape sequences for attributes and color. -.TP 5 -.B WINDOW * \fIwin -is the window to update. -.TP 5 -.B const char * \fItxt -is the string to print -.TP 5 -.B int \fIcol -is the column limit -.TP 5 -.B chtype * \fIattr -holds the starting attributes, and is updated to reflect the final attributes -applied to the string. -.\" --------------------------------------------------------------------------- -.SS dlg_progressbox -implements the "\fB\-\-prgbox\fP" and "\fB\-\-progressbox\fP" options. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -If empty or null, no prompt is shown. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIpauseopt -if true, an \*(``OK\*('' button will be shown, -and the dialog will wait for it to complete. -With an \*(``OK\*('' button, it is denoted a \*(``programbox\*('', -without an \*(``OK\*('' button, it is denoted a \*(``progressbox\*(''. -.TP 5 -.B FILE * \fIfp -is the file pointer, which may be a pipe or a regular file. -.\" --------------------------------------------------------------------------- -.SS dlg_put_backtitle -Display the background title if \fBdialog_vars.backtitle\fP is non-null. -The background title is shown at the top of the screen. -.\" --------------------------------------------------------------------------- -.SS dlg_reallocate_gauge -Allocates or reallocates a gauge widget (see \fBdlg_allocate_gauge\fP). -Use \fBdlg_update_gauge\fP to display the result. -.TP 5 -.B void ** \fIobjptr -If the pointer referenced by this parameter is null, the function creates -a new gauge widget using \fBdlg_allocate_gauge\fP. -Otherwise, it updates the title and cprompt values, reusing the window -from the previous call on this function. -As a side-effect, the function stores the updated object-pointer via -the \fIobjptr\fP parameter. -.TP 5 -.B const char * \fItitle -is the title string to display at the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is adjusted to use the available screen size. -.TP 5 -.B int \fIpercent -is the percentage to show in the progress bar. -.\" --------------------------------------------------------------------------- -.SS dlg_register_buttons -The widget developer should call this function after \fBdlg_register_window\fP, -for the list of button labels associated with the widget. -One may bind a key to a button, e.g., \*(``OK\*('' for \fBDLGK_OK\fP, -.TP 5 -.B WINDOW * \fIwin -is the window with which to associate the buttons -.TP 5 -.B const char * \fIname -is the widget's binding name (usually the name of the widget). -.TP 5 -.B const char ** \fIbuttons -is the list of buttons -.\" --------------------------------------------------------------------------- -.SS dlg_register_window -For a given named widget's window, associate a binding table. -.TP 5 -.B WINDOW * \fIwin -is the window with which to associate the buttons -.TP 5 -.B const char * \fIname -is the widget's binding name (usually the name of the widget). -.TP 5 -.B DLG_KEYS_BINDING * \fIbinding -is the binding table -.\" --------------------------------------------------------------------------- -.SS dlg_remove_callback -Remove a callback. -.TP 5 -.B DIALOG_CALLBACK * \fIp -contains the callback information. -.\" --------------------------------------------------------------------------- -.SS dlg_renamed_menutext -This is a utility function which supports the \fB\-\-inputmenu\fP option of -the \fB\*p\fP program. -If \fBdialog_vars.input_menu\fP is set, \fBdialog_menu\fP passes this -pointer to \fBdlg_menu\fP as the \fIrename_menutext\fP parameter. -Otherwise, it passes \fBdlg_dummy_menutext\fP. -.LP -The function should add \*(``RENAMED\*('' to \fBdialog_vars.input_result\fP , -followed by the menu item's name and the \fInewtext\fP value -(with a space separating the three items), -and return \fBDLG_EXIT_EXTRA\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -is the list of menu items -.TP 5 -.B int \fIcurrent -is the index of the currently-selected item -.TP 5 -.B char * \fInewtext -is the updated text for the menu item -.\" --------------------------------------------------------------------------- -.SS dlg_reset_timeout -Calls \fBwtimeout\fP with the value saved for a window in the -last call to \fBdlg_set_timeout\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_restore_vars -Restore \fB\*p\fP's variables from the given variable -(see \fBdialog_save_vars\fP). -.TP 5 -.B DIALOG_VARS * \fIsave -is the variable from which to restore. -.LP -The -\fIDIALOG_VARS.input_length\fP and -\fIDIALOG_VARS.input_result\fP members are treated specially, -since these are used by a widget to pass data to the caller. -They are not modified by this function. -.\" --------------------------------------------------------------------------- -.SS dlg_result_key -Test a \fB\*p\fP internal keycode to see if it corresponds to one of the push -buttons on the widget such as \*(``OK\*(''. -This is only useful if there are user-defined key bindings, since there are -no built-in bindings that map directly to \fBDLGK_OK\fP, etc. -Return true if a mapping was done. -.TP 5 -.B int \fIdialog_key -is the \fB\*p\fP key to test -.TP 5 -.B int \fIfkey -is true if this is a function key -.TP 5 -.B int * \fIresultp -store the result of the mapping in the referenced location. -.\" --------------------------------------------------------------------------- -.SS dlg_save_vars -Save \fB\*p\fP's variables into the given variable (see \fBdlg_restore_vars\fP). -.TP 5 -.B DIALOG_VARS * \fIsave -is the variable into which to save. -.\" --------------------------------------------------------------------------- -.SS dlg_set_focus -Set focus on the given window, -making it display above other windows on the screen. -.TP 5 -.B WINDOW * \fIparent -is the parent window (usually the top-level window of a widget) -.TP 5 -.B WINDOW * \fIwin -is the window on which to place focus (usually a subwindow of a widget) -.\" --------------------------------------------------------------------------- -.SS dlg_set_result -Setup a fixed-buffer for the result in \fBdialog_vars.input_result\fP -.TP 5 -.B const char * \fIstring -is the new contents for the result -.\" --------------------------------------------------------------------------- -.SS dlg_set_timeout -Calls \fBwtimeout\fP to establish a preferred timeout for nonblocking -reads, e.g., to allow the gauge widget to handle window-resizing events. -The \fBdlg_may_resize\fP function temporarily overrides this value, -to allow it to skip over the error codes returned while the ncurses -library processes window-resizing events. -It restores the value established in this call -by calling \fBdlg_restore_timeout\fP. -.TP 5 -.B WINDOW * \fIwin -is the window whose input-timeout should be set -.TP 5 -.B bool \fIwill_getc -is true if the widget is expected to read keyboard characters. -Some (such as the gauge widget) do not. -.\" --------------------------------------------------------------------------- -.SS dlg_show_string -Displays the string, shifted as necessary, to fit within the box and show -the current character-offset. -.TP 5 -.B WINDOW * \fIwin -is the window within which to display -.TP 5 -.B const char * \fIstring -is the string to display -.TP 5 -.B int \fIoffset -is the starting (character, not bytes) offset -.TP 5 -.B chtype \fIattr -is the window attribute to use for the string -.TP 5 -.B int \fIy_base -beginning row on screen -.TP 5 -.B int \fIx_base -beginning column on screen -.TP 5 -.B int \fIx_last -number of columns on screen -.TP 5 -.B bool \fIhidden -if true, do not echo input -.TP 5 -.B bool \fIforce -if true, force repaint -.\" --------------------------------------------------------------------------- -.SS dlg_strclone -duplicate the string, like \fBstrdup\fP. -.TP 5 -.B const char * \fIcprompt -is the string to duplicate -.\" --------------------------------------------------------------------------- -.SS dlg_strcmp -compare two strings, ignoring case. -.TP 5 -.B const char * \fIa -is one string -.TP 5 -.B const char * \fIb -is the other string -.\" --------------------------------------------------------------------------- -.SS dlg_string_to_argv -Convert a string to an argument vector -returning an index (which must be freed by the caller). -The string is modified: -.bP -Blanks between arguments are replaced by nulls. -.bP -Normally arguments are separated by blanks; -however you can double-quote an argument to enclose blanks. -The surrounding double-quotes are removed from the string. -.bP -A backslash preceding a double-quote within double-quotes is removed. -.bP -A backslash preceding a newline outside double-quotes is removed. -.bP -Except for special cases, backslashes are preserved in the strings, -since other \fB\*l\fP functions interpret backslashes, e.g., for colors. -.TP 5 -.B char *\fIblob -is the string to convert. -.\" --------------------------------------------------------------------------- -.SS dlg_sub_window -create a subwindow, e.g., for an input area of a widget -.TP 5 -.B WINDOW * \fIwin -is the parent window -.TP 5 -.B int \fIheight -is the subwindow's height -.TP 5 -.B int \fIwidth -is the subwindow's width -.TP 5 -.B int \fIy -is the subwindow's top-row -.TP 5 -.B int \fIx -is the subwindow's left-column -.\" --------------------------------------------------------------------------- -.SS dlg_tab_correct_str -If the \fBdialog_vars.tab_correct\fP is true, convert tabs to single spaces. -Return the converted result. -The caller is responsible for freeing the string. -.TP 5 -.B char * \fIprompt -is the string to convert -.\" --------------------------------------------------------------------------- -.SS dlg_trace -If the parameter is non-null, opens a trace file with that -name and stores the file pointer in \fBdialog_state.trace\fP. -.\" --------------------------------------------------------------------------- -.SS dlg_trace_2n -logs a numeric value as a comment. -.TP 5 -.B char * \fIname -is the name to log in the comment. -.TP 5 -.B int \fIvalue -is the value to log in the comment. -.\" --------------------------------------------------------------------------- -.SS dlg_trace_2s -logs a string value as a comment. -If the value contains embedded newlines, -the comment is continued with \*(``#+\*('' markers. -.TP 5 -.B char * \fIname -is the name to log in the comment. -.TP 5 -.B int \fIvalue -is the value to log in the comment. -.\" --------------------------------------------------------------------------- -.SS dlg_trace_chr -If \fBdialog_state.trace\fP is set, -translate the parameters into a printable representation, -log it on a \*(``chr\*('' line. -.TP 5 -.B int \fIch -is the nominal keycode value. -.TP 5 -.B int \fIfkey -is nonzero if the value is really a function key. -Some of these may be values declared in the DLG_KEYS_ENUM. -.\" --------------------------------------------------------------------------- -.SS dlg_trace_msg -Write a formatted message to the trace file. -.TP 5 -.B const char * \fIfmt -is the format of the \fBprintf\fP-like message to write. -.TP 5 -.B ... -.br -are the variables to apply to the \fIfmt\fP format. -.LP -Use the DLG_TRACE macro for portability, in case the trace -feature is not compiled into the library. -It uses an extra level of parentheses to work with a variable number of -parameters, e.g., -.Ex -DLG_TRACE(("this is dialog version %s\en", dialog_version())); -.Ee -.\" --------------------------------------------------------------------------- -.SS dlg_trace_va_msg -Write a formatted message to the trace file. -.TP 5 -.B const char *\fIfmt -is the format of the \fBprintf\fP-like message to write. -.TP 5 -.B va_list \fIap -are the variables to apply to the \fIfmt\fP format. -.LP -This is used in \fBdlg_exiterr\fP to capture error messages in the trace file: -.Ex -va_start(ap, fmt); -dlg_trace_msg("## Error: "); -dlg_trace_va_msg(fmt, ap); -va_end(ap); -.Ee -.LP -Unlike \fBdlg_trace_msg\fP, an extra macro is not needed. -.\" --------------------------------------------------------------------------- -.SS dlg_ttysize -Returns the screensize without using curses. -That allows the function to be used before initializing the screen. -.\" --------------------------------------------------------------------------- -.SS dlg_trace_win -If \fBdialog_state.trace\fP is set, -log a printable picture of the given window. -.\" --------------------------------------------------------------------------- -.SS dlg_treeview -This is an alternate interface to 'treeview' which allows the application -to read the list item states back directly without putting them in the -output buffer. -.TP 5 -.B const char * \fItitle -is the title on the top of the widget. -.TP 5 -.B const char * \fIcprompt -is the prompt text shown within the widget. -.TP 5 -.B int \fIheight -is the desired height of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIwidth -is the desired width of the box. -If zero, the height is based on the screen size. -.TP 5 -.B int \fIlist_height -is the minimum height to reserve for displaying the list. -If zero, it is computed based on the given \fIheight\fP and \fIwidth\fP. -.TP 5 -.B int \fIitem_no -is the number of rows in \fIitems\fP. -.TP 5 -.B DIALOG_LISTITEM * \fIitems -is the list of items, contain tag, name, and optionally help strings -(if \fBdialog_vars.item_help\fP is set). -The initial selection state for each item is also in this list. -.TP 5 -.B const char * \fIstates -This is a list of characters to display for the given states. -Normally a buildlist provides true (1) and false (0) values, -which the widget displays as "*" and space, respectively. -An application may set this parameter to an arbitrary null-terminated string. -The widget determines the number of states from the length of this string, -and will cycle through the corresponding display characters as the user -presses the space-bar. -.TP 5 -.B int * \fIdepths -This is a list of depths of each item in the tree. -It is a separate parameter from \fIitems\fP to allow reuse of -the existing functions. -.TP 5 -.B int \fIflag -is either \fIFLAG_CHECK\fP, for checklists (multiple selections), -or \fIFLAG_RADIO\fP for radiolists (a single selection). -.TP 5 -.B int * \fIcurrent_item -The widget sets the referenced location to the index of the current display -item (cursor) when it returns. -.\" --------------------------------------------------------------------------- -.SS dlg_trim_string -The \fB\*p\fP program uses this in each widget to adjust the -message string, -which may contain the newline character (referred to as '\en') -and/or the special substring "\en" -(which can be translated into a newline character). -.LP -There are several optional features: -.bP -Unless \fBdialog_vars.nocollapse\fP is set, -each tab is converted to a space before other processing. -.bP -If \fBdialog_vars.no_nl_expand\fP is not set, -and the string has "\en" substrings: -.RS -.bP -The function changes embedded "\en" substrings to '\en' characters. -.IP -The function preserves extra spaces after these substitutions. -For instance, spaces following a newline (substring or character) -are preserved to use as an indentation. -.bP -If \fBdialog_vars.cr_wrap\fP is set, -the function preserves '\en' newline characters. -Otherwise, each '\en' newline character is converted to a space. -.RE -.bP -Otherwise, if \fBdialog_vars.trim_whitespace\fP is set: -.RS -.bP -This function strips all extra spaces to simplify justification. -.bP -If \fBdialog_vars.cr_wrap\fP is set, -the function preserves '\en' newline characters. -Otherwise, each '\en' newline character is converted to a space. -.RE -.bP -Finally -(if \fBdialog_vars.no_nl_expand\fP is set, -or the string does not contain "\en" substrings, -and \fBdialog_vars.trim_whitespace\fP is not set): -.RS -.bP -Unless \fBdialog_vars.nocollapse\fP is set, -sequences of spaces are reduced to a single space. -.RE -.TP 5 -.B char * \fIsrc -is the string to trim -.\" --------------------------------------------------------------------------- -.SS dlg_unregister_window -Remove the bindings for a given window. -.TP 5 -.B WINDOW * \fIwin -is the window from which to remove bindings -.\" --------------------------------------------------------------------------- -.SS dlg_update_gauge -Update a gauge widget to show a different percentage value. -.TP 5 -.B void *\fIobjptr -points to the gauge object to update. -.TP 5 -.B int \fIpercent -is the new percentage value to display. -.\" --------------------------------------------------------------------------- -.SS dlg_will_resize -This filters out bursts of \fBKEY_RESIZE\fP values. -Call this after \fBdlg_getc\fP returns \fBKEY_RESIZE\fP, -to improve performance. -.\" --------------------------------------------------------------------------- -.SS dlg_yes_buttoncode -Map the given button index for \fBdlg_yes_labels\fP into \fB\*p\fP's exit-code. -.TP 5 -.B int \fIbutton -is the button index -.\" --------------------------------------------------------------------------- -.SS dlg_yes_labels -Return a list of buttons for Yes/No labels. -.\" --------------------------------------------------------------------------- -.SS end_dialog -End use of \fB\*p\fP functions. -.\" --------------------------------------------------------------------------- -.SS init_dialog -Do some initialization for \fB\*p\fP. -.TP 5 -.B FILE *\fIinput -is the real tty input of \fB\*p\fP. -Usually it is the standard input, but if -\fB\-\-input\-fd\fP option is used, it may be anything. -.TP 5 -.B FILE *\fIoutput -is where \fB\*p\fP will send its result. -Usually it is the standard error, but -if \fB\-\-stdout\fP or \fB\-\-output\-fd\fP is used, it may be anything. -. -.\" ************************************************************************ -.SH SEE ALSO -\fB\*p\fP (1). -. -.\" ************************************************************************ -.SH AUTHOR -Thomas E.\& Dickey diff --git a/contrib/dialog/dialog.c b/contrib/dialog/dialog.c deleted file mode 100644 index f59c9dc03c13..000000000000 --- a/contrib/dialog/dialog.c +++ /dev/null @@ -1,2144 +0,0 @@ -/* - * $Id: dialog.c,v 1.281 2021/01/17 16:52:18 tom Exp $ - * - * cdialog - Display simple dialog boxes from shell scripts - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> - -#include <stddef.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> - -#ifdef HAVE_SETLOCALE -#include <locale.h> -#endif - -#include <dlg_internals.h> - -#define PASSARGS t, av, offset_add -#define CALLARGS const char *t, char *av[], int *offset_add -typedef int (callerFn) (CALLARGS); - -typedef enum { - o_unknown = 0 - ,o_allow_close - ,o_and_widget - ,o_ascii_lines - ,o_aspect_ratio - ,o_auto_placement - ,o_backtitle - ,o_beep_signal - ,o_beep_after_signal - ,o_begin_set - ,o_cancel_label - ,o_checklist - ,o_dlg_clear_screen - ,o_colors - ,o_column_separator - ,o_cr_wrap - ,o_create_rc - ,o_cursor_off_label - ,o_date_format - ,o_default_button - ,o_default_item - ,o_defaultno - ,o_erase_on_exit - ,o_exit_label - ,o_extra_button - ,o_extra_label - ,o_fixed_font - ,o_form - ,o_gauge - ,o_help - ,o_help_button - ,o_help_file - ,o_help_label - ,o_help_line - ,o_help_status - ,o_help_tags - ,o_icon - ,o_ignore - ,o_infobox - ,o_input_fd - ,o_inputbox - ,o_inputmenu - ,o_insecure - ,o_item_help - ,o_keep_colors - ,o_keep_tite - ,o_keep_window - ,o_last_key - ,o_max_input - ,o_menu - ,o_mixedform - ,o_mixedgauge - ,o_msgbox - ,o_no_close - ,o_nocollapse - ,o_no_cr_wrap - ,o_cant_kill - ,o_no_hot_list - ,o_no_label - ,o_no_lines - ,o_no_mouse - ,o_no_nl_expand - ,o_use_shadow - ,o_nocancel - ,o_nook - ,o_ok_label - ,o_output_fd - ,o_output_separator - ,o_passwordbox - ,o_passwordform - ,o_pause - ,o_prgbox - ,o_print_maxsize - ,o_print_siz - ,o_text_only - ,o_print_text_size - ,o_print_version - ,o_programbox - ,o_progressbox - ,o_quoted - ,o_radiolist - ,o_screen_center - ,o_use_scrollbar - ,o_separate_output - ,o_separate_str - ,o_single_quoted - ,o_size_err - ,o_sleep_secs - ,o_smooth - ,o_output_stderr - ,o_output_stdout - ,o_tab_correct - ,o_tab_len - ,o_tailbox - ,o_tailboxbg - ,o_textbox - ,o_time_format - ,o_timeout_secs - ,o_title - ,o_trim_whitespace - ,o_under_mouse - ,o_version - ,o_visit_items - ,o_wmclass - ,o_yes_label - ,o_yesno -#ifdef HAVE_WHIPTAIL - ,o_fullbutton - ,o_topleft -#endif -#ifdef HAVE_XDIALOG - ,o_calendar - ,o_dselect - ,o_editbox - ,o_fselect - ,o_timebox - ,o_week_start -#endif -#ifdef HAVE_XDIALOG2 - ,o_buildlist - ,o_rangebox - ,o_reorder - ,o_treeview -#endif -#if defined(HAVE_XDIALOG2) || defined(HAVE_WHIPTAIL) - ,o_no_items - ,o_no_tags -#endif -#ifdef HAVE_DLG_TRACE - ,o_trace -#endif - ,o_iso_week -} eOptions; - -typedef enum { - tUnknown - ,tFalse - ,tTrue - ,tNumber - ,tString -} tOptions; - -/* - * The bits in 'pass' are used to decide which options are applicable at - * different stages in the program: - * 1 flags before widgets - * 2 widgets - * 4 non-widget options - */ -typedef struct { - const char *name; - eOptions code; - int vars; /* 0=none, 1=state, 2=vars */ - tOptions type; /* type for bool(true/false), number, string */ - unsigned offset; - int pass; /* 1,2,4 or combination */ - const char *help; /* NULL to suppress, non-empty to display params */ -} Options; - -typedef struct { - eOptions code; - int argmin, argmax; - callerFn *jumper; -} Mode; - -/* use these macros for simple options in DIALOG_STATE */ -#define ssF(name) o_##name, 1, tFalse, offsetof(DIALOG_STATE,name) -#define ssT(name) o_##name, 1, tTrue, offsetof(DIALOG_STATE,name) -#define ssN(name) o_##name, 1, tNumber, offsetof(DIALOG_STATE,name) -#define ssS(name) o_##name, 1, tString, offsetof(DIALOG_STATE,name) - -/* use these macros for simple options in DIALOG_VARS */ -#define svF(name) o_##name, 2, tFalse, offsetof(DIALOG_VARS,name) -#define svT(name) o_##name, 2, tTrue, offsetof(DIALOG_VARS,name) -#define svN(name) o_##name, 2, tNumber, offsetof(DIALOG_VARS,name) -#define svS(name) o_##name, 2, tString, offsetof(DIALOG_VARS,name) - -/* use these macros for ignored options */ -#define xxF(name) o_##name, 0, tFalse, 0 -#define xxT(name) o_##name, 0, tTrue, 0 -#define xxN(name) o_##name, 0, tNumber, 0 -#define xxS(name) o_##name, 0, tString, 0 - -/* use this macro for widget options */ -#define opW(name) o_##name, 0, 0, 0 - -/* use this macro for other options */ -#define opO(name) o_##name, 0, 0, 0 - -static int known_opts = 0; -static const char **dialog_opts; -static char **dialog_argv; - -static char **special_argv = 0; -static int special_argc = 0; - -static bool ignore_unknown = FALSE; - -static const char *program = "dialog"; - -#ifdef NO_LEAKS -typedef struct _all_blobs { - struct _all_blobs *next; - void *blob; -} AllBlobs; - -static AllBlobs *all_blobs; -#endif - -/* - * The options[] table is organized this way to make it simple to maintain - * a sorted list of options for the help-message. - * - * Because Boolean options correspond to "true", --shadow is listed here while - * --no-shadow is not. The findOption and optionBool functions handle the - * cases where "no" is added or removed from the option name to derive an - * opposite setting. - */ -/* *INDENT-OFF* */ -static const Options options[] = { - { "allow-close", xxT(allow_close), 1, NULL }, - { "and-widget", opO(and_widget), 4, NULL }, - { "ascii-lines", svT(ascii_lines), 1, "" }, - { "aspect", ssN(aspect_ratio), 1, "<ratio>" }, - { "auto-placement", xxT(auto_placement), 1, NULL }, - { "backtitle", svS(backtitle), 1, "<backtitle>" }, - { "beep", svT(beep_signal), 1, "" }, - { "beep-after", svT(beep_after_signal), 1, "" }, - { "begin", svT(begin_set), 1, "<y> <x>" }, - { "cancel-label", svS(cancel_label), 1, "<str>" }, - { "checklist", opW(checklist), 2, "<text> <height> <width> <list height> <tag1> <item1> <status1>..." }, - { "clear", svT(dlg_clear_screen), 1, "" }, - { "colors", svT(colors), 1, "" }, - { "column-separator",svS(column_separator), 1, "<str>" }, - { "cr-wrap", svT(cr_wrap), 1, "" }, - { "create-rc", opO(create_rc), 1, NULL }, - { "cursor-off-label",svT(cursor_off_label), 1, "" }, - { "date-format", svS(date_format), 1, "<str>" }, - { "default-button", xxS(default_button), 1, "<str>" }, - { "default-item", svS(default_item), 1, "<str>" }, - { "defaultno", svT(defaultno), 1, "" }, - { "erase-on-exit", svT(erase_on_exit), 1, "" }, - { "exit-label", svS(exit_label), 1, "<str>" }, - { "extra-button", svT(extra_button), 1, "" }, - { "extra-label", svS(extra_label), 1, "<str>" }, - { "fixed-font", xxT(fixed_font), 1, NULL }, - { "form", opW(form), 2, "<text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>..." }, - { "gauge", opW(gauge), 2, "<text> <height> <width> [<percent>]" }, - { "guage", opW(gauge), 2, NULL }, - { "help", opO(help), 4, "" }, - { "help-button", svT(help_button), 1, "" }, - { "help-label", svS(help_label), 1, "<str>" }, - { "help-status", svT(help_status), 1, "" }, - { "help-tags", svT(help_tags), 1, "" }, - { "hfile", svS(help_file), 1, "<str>" }, - { "hline", svS(help_line), 1, "<str>" }, - { "icon", xxS(icon), 1, NULL }, - { "ignore", opO(ignore), 1, "" }, - { "infobox", opW(infobox), 2, "<text> <height> <width>" }, - { "input-fd", opO(input_fd), 1, "<fd>" }, - { "inputbox", opW(inputbox), 2, "<text> <height> <width> [<init>]" }, - { "inputmenu", opW(inputmenu), 2, "<text> <height> <width> <menu height> <tag1> <item1>..." }, - { "insecure", svT(insecure), 1, "" }, - { "item-help", svT(item_help), 1, "" }, - { "keep-colors", xxT(keep_colors), 1, NULL }, - { "keep-tite", svT(keep_tite), 1, "" }, - { "keep-window", svT(keep_window), 1, "" }, - { "last-key", svT(last_key), 1, "" }, - { "max-input", svN(max_input), 1, "<n>" }, - { "menu", opW(menu), 2, "<text> <height> <width> <menu height> <tag1> <item1>..." }, - { "mixedform", opW(mixedform), 2, "<text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>..." }, - { "mixedgauge", opW(mixedgauge), 2, "<text> <height> <width> <percent> <tag1> <item1>..." }, - { "msgbox", opW(msgbox), 2, "<text> <height> <width>" }, - { "no-cancel", svT(nocancel), 1, "" }, - { "no-close", xxT(no_close), 1, NULL }, - { "no-collapse", svT(nocollapse), 1, "" }, - { "no-hot-list", svT(no_hot_list), 1, "" }, - { "no-kill", svT(cant_kill), 1, "" }, - { "no-label", svS(no_label), 1, "<str>" }, - { "no-lines", svT(no_lines), 1, "" }, - { "no-mouse", ssT(no_mouse), 1, "" }, - { "no-nl-expand", svT(no_nl_expand), 1, "" }, - { "no-ok", svT(nook), 1, "" }, - { "no-shadow", ssF(use_shadow), 1, "" }, - { "ok-label", svS(ok_label), 1, "<str>" }, - { "output-fd", opO(output_fd), 1, "<fd>" }, - { "output-separator",svS(output_separator), 1, "<str>" }, - { "passwordbox", opW(passwordbox), 2, "<text> <height> <width> [<init>]" }, - { "passwordform", opW(passwordform), 2, "<text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>..." }, - { "pause", opW(pause), 2, "<text> <height> <width> <seconds>" }, - { "prgbox", opW(prgbox), 2, "<text> <command> <height> <width>" }, - { "print-maxsize", opO(print_maxsize), 1, "" }, - { "print-size", svT(print_siz), 1, "" }, - { "print-text-only",ssT(text_only), 5, "<text> <height> <width>" }, - { "print-text-size",opO(print_text_size), 5, "<text> <height> <width>" }, - { "print-version", opO(print_version), 5, "" }, - { "programbox", opW(programbox), 2, "<text> <height> <width>" }, - { "progressbox", opW(progressbox), 2, "<text> <height> <width>" }, - { "quoted", svT(quoted), 1, "" }, - { "radiolist", opW(radiolist), 2, "<text> <height> <width> <list height> <tag1> <item1> <status1>..." }, - { "screen-center", xxT(screen_center), 1, NULL }, - { "scrollbar", ssT(use_scrollbar), 1, "" }, - { "separate-output",svT(separate_output), 1, "" }, - { "separate-widget",ssS(separate_str), 1, "<str>" }, - { "separator", svS(output_separator), 1, NULL }, - { "single-quoted", svT(single_quoted), 1, "" }, - { "size-err", svT(size_err), 1, "" }, - { "sleep", svN(sleep_secs), 1, "<secs>" }, - { "smooth", xxT(smooth), 1, NULL }, - { "stderr", opO(output_stderr), 1, "" }, - { "stdout", opO(output_stdout), 1, "" }, - { "tab-correct", svT(tab_correct), 1, "" }, - { "tab-len", ssN(tab_len), 1, "<n>" }, - { "tailbox", opW(tailbox), 2, "<file> <height> <width>" }, - { "tailboxbg", opW(tailboxbg), 2, "<file> <height> <width>" }, - { "textbox", opW(textbox), 2, "<file> <height> <width>" }, - { "time-format", svS(time_format), 1, "<str>" }, - { "timeout", svN(timeout_secs), 1, "<secs>" }, - { "title", svS(title), 1, "<title>" }, - { "trim", svT(trim_whitespace), 1, "" }, - { "under-mouse", xxT(under_mouse), 1, NULL }, - { "version", opO(version), 5, "" }, - { "visit-items", ssT(visit_items), 1, "" }, - { "wmclass", xxS(wmclass), 1, NULL }, - { "yes-label", svS(yes_label), 1, "<str>" }, - { "yesno", opW(yesno), 2, "<text> <height> <width>" }, -#ifdef HAVE_WHIPTAIL - { "cancel-button", svS(cancel_label), 1, NULL }, - { "fb", xxT(fullbutton), 1, NULL }, - { "fullbutton", xxT(fullbutton), 1, NULL }, - { "no-button", svS(no_label), 1, NULL }, - { "ok-button", svS(ok_label), 1, NULL }, - { "scrolltext", ssT(use_scrollbar), 1, NULL }, - { "topleft", svT(begin_set), 1, NULL }, - { "yes-button", svS(yes_label), 1, NULL }, -#endif -#ifdef HAVE_XDIALOG - { "calendar", opW(calendar), 2, "<text> <height> <width> <day> <month> <year>" }, - { "dselect", opW(dselect), 2, "<directory> <height> <width>" }, - { "editbox", opW(editbox), 2, "<file> <height> <width>" }, - { "fselect", opW(fselect), 2, "<filepath> <height> <width>" }, - { "timebox", opW(timebox), 2, "<text> <height> <width> <hour> <minute> <second>" }, - { "week-start", svS(week_start), 1, "<str>" }, - { "iso-week", svT(iso_week), 1, NULL }, -#endif -#ifdef HAVE_XDIALOG2 - { "buildlist", opW(buildlist), 2, "<text> <height> <width> <list-height> <tag1> <item1> <status1>..." }, - { "no-items", svT(no_items), 1, "" }, - { "no-tags", svT(no_tags), 1, "" }, - { "rangebox", opW(rangebox), 2, "<text> <height> <width> <min-value> <max-value> <default-value>" }, - { "reorder", svT(reorder), 1, "" }, - { "treeview", opW(treeview), 2, "<text> <height> <width> <list-height> <tag1> <item1> <status1> <depth1>..." }, -#endif -#if defined(HAVE_XDIALOG2) || defined(HAVE_WHIPTAIL) - { "noitem", svT(no_items), 1, NULL }, - { "notags", svT(no_tags), 1, NULL }, -#endif -#ifdef HAVE_DLG_TRACE - { "trace", opO(trace), 1, "<file>" }, -#endif -}; -/* *INDENT-ON* */ - -#ifdef NO_LEAKS -static void -ignore_leak(void *value) -{ - AllBlobs *next = dlg_calloc(AllBlobs, (size_t) 1); - if (next != 0) { - next->blob = value; - next->next = all_blobs; - all_blobs = next; - } -} - -static void -handle_leaks(void) -{ - while (all_blobs != 0) { - char *blob = all_blobs->blob; - AllBlobs *next = all_blobs->next; - free(blob); - free(all_blobs); - all_blobs = next; - } - free(dialog_opts); - if (special_argv != 0) { - free(special_argv[0]); - free(special_argv); - special_argv = 0; - special_argc = 0; - } -} -#else -#define handle_leaks() /* nothing */ -#define ignore_leak(n) /* nothing */ -#endif - -#define OptionChars "\ -0123456789\ --\ -abcdefghijklmnopqrstuvwxyz\ -" - -/* - * Check if the given string from main's argv is an option. - */ -static bool -isOption(const char *arg) -{ - bool result = FALSE; - - if (arg != 0) { - if (dialog_opts != 0) { - int n; - for (n = 0; dialog_opts[n] != 0; ++n) { - if (dialog_opts[n] == arg) { - result = TRUE; - break; - } - } - } else if (!strncmp(arg, "--", (size_t) 2) && isalpha(UCH(arg[2]))) { - if (strlen(arg) == (strspn) (arg, OptionChars)) { - result = TRUE; - } else { - handle_leaks(); - dlg_exiterr("Invalid option \"%s\"", arg); - } - } - } - return result; -} - -/* - * Make an array showing which argv[] entries are options. Use "--" as a - * special token to escape the next argument, allowing it to begin with "--". - * When we find a "--" argument, also remove it from argv[] and adjust argc. - * That appears to be an undocumented feature of the popt library. - * - * Also, if we see a "--file", expand it into the parameter list by reading the - * text from the given file and stripping quotes, treating whitespace outside - * quotes as a parameter delimiter. - * - * Finally, if we see a "--args", dump the current list of arguments to the - * standard error. This is used for debugging complex --file combinations. - */ -static void -unescape_argv(int *argcp, char ***argvp) -{ - int j, k; - int limit_includes = 20 + *argcp; - int count_includes = 0; - bool doalloc = FALSE; - char *filename; - const char **my_argv = 0; - int my_argc; - - DLG_TRACE(("# unescape_argv\n")); - for (k = 0; k < 2; ++k) { - - my_argc = 0; - if (special_argv != 0) { - for (j = 0; special_argv[j] != 0; ++j) { - if (!strcmp(special_argv[j], "--")) { - break; - } else if (isOption(special_argv[j])) { - if (k != 0) - my_argv[my_argc] = special_argv[j]; - my_argc++; - } - } - } - - if (k == 0) { - my_argc += (*argcp + 1); - my_argv = dlg_calloc(const char *, (size_t) my_argc); - assert_ptr(my_argv, "unescape_argv"); - } - } - - for (j = 1; j < *argcp; j++) { - bool escaped = FALSE; - if (!strcmp((*argvp)[j], "--")) { - escaped = TRUE; - dlg_eat_argv(argcp, argvp, j, 1); - } else if (!strcmp((*argvp)[j], "--args")) { - fprintf(stderr, "Showing arguments at arg%d\n", j); - for (k = 0; k < *argcp; ++k) { - fprintf(stderr, " arg%d:%s\n", k, (*argvp)[k]); - } - dlg_eat_argv(argcp, argvp, j, 1); - --j; - } else if (!strcmp((*argvp)[j], "--file")) { - if (++count_includes > limit_includes) { - handle_leaks(); - dlg_exiterr("Too many --file options"); - } - - if ((filename = (*argvp)[j + 1]) != 0) { - FILE *fp; - char **list; - - if (*filename == '&') { - fp = fdopen(atoi(filename + sizeof(char)), "r"); - } else { - fp = fopen(filename, "r"); - } - - if (fp) { - char *blob; - int added; - size_t bytes_read; - size_t length; - int n; - - DLG_TRACE(("# opened --file %s ..\n", filename)); - blob = NULL; - length = 0; - do { - blob = dlg_realloc(char, length + BUFSIZ + 1, blob); - assert_ptr(blob, "unescape_argv"); - bytes_read = fread(blob + length, - sizeof(char), - (size_t) BUFSIZ, - fp); - length += bytes_read; - if (ferror(fp)) { - handle_leaks(); - dlg_exiterr("error on filehandle in unescape_argv"); - } - } while (bytes_read == BUFSIZ); - fclose(fp); - - blob[length] = '\0'; - ignore_leak(blob); - - list = dlg_string_to_argv(blob); - added = dlg_count_argv(list); - if (added > 2) { - /* *argcp arguments before the expansion of --file - - 2 for the removal of '--file <filepath>' - + added for the arguments contained in <filepath> - + 1 for the terminating NULL pointer */ - size_t need = (size_t) (*argcp + added - 1); - if (doalloc) { - *argvp = dlg_realloc(char *, need, *argvp); - assert_ptr(*argvp, "unescape_argv"); - } else { - char **newp = dlg_malloc(char *, need); - ignore_leak(newp); - assert_ptr(newp, "unescape_argv"); - for (n = 0; n < *argcp; ++n) { - newp[n] = (*argvp)[n]; - } - /* The new array is not NULL-terminated yet. */ - *argvp = newp; - doalloc = TRUE; - } - my_argv = dlg_realloc(const char *, need, my_argv); - assert_ptr(my_argv, "unescape_argv"); - - /* Shift the arguments after '--file <filepath>' - right by (added - 2) positions */ - for (n = *argcp - 1; n >= j + 2; --n) { - (*argvp)[n + added - 2] = (*argvp)[n]; - } - } else if (added < 2) { - /* 0 or 1 argument read from the included file - -> shift the arguments after '--file <filepath>' - left by (2 - added) positions */ - for (n = j + added; n + 2 - added < *argcp; ++n) { - (*argvp)[n] = (*argvp)[n + 2 - added]; - } - } - /* Copy the inserted arguments to *argvp */ - for (n = 0; n < added; ++n) { - (*argvp)[n + j] = list[n]; - } - *argcp += added - 2; - (*argvp)[*argcp] = 0; /* Write the NULL terminator */ - free(list); /* No-op if 'list' is NULL */ - /* Force rescan starting from the first inserted argument */ - --j; - DLG_TRACE(("# finished --file\n")); - continue; - } else { - handle_leaks(); - dlg_exiterr("Cannot open --file %s", filename); - } - } else { - handle_leaks(); - dlg_exiterr("No value given for --file"); - } - } - if (!escaped - && (*argvp)[j] != 0 - && !strncmp((*argvp)[j], "--", (size_t) 2) - && isalpha(UCH((*argvp)[j][2]))) { - my_argv[my_argc++] = (*argvp)[j]; - DLG_TRACE(("#\toption argv[%d]=%s\n", j, (*argvp)[j])); - } - } - - my_argv[my_argc] = 0; - - known_opts = my_argc; - dialog_opts = my_argv; - - DLG_TRACE(("#\t%d options vs %d arguments\n", known_opts, *argcp)); - dialog_argv = (*argvp); -} - -static const Options * -findOption(const char *name, int pass, bool recur) -{ - const Options *result = NULL; - - if (!strncmp(name, "--", 2) && isalpha(UCH(name[2]))) { - unsigned n; - - name += 2; /* skip the "--" */ - for (n = 0; n < TableSize(options); n++) { - if ((pass & options[n].pass) != 0 - && !strcmp(name, options[n].name)) { - result = &options[n]; - break; - } - } - if (result == NULL && !recur) { - char *temp = malloc(8 + strlen(name)); - if (temp != NULL) { - if (!strncmp(name, "no", 2)) { - int skip = !strncmp(name, "no-", 3) ? 3 : 2; - sprintf(temp, "--no-%s", name + skip); - result = findOption(temp, pass, TRUE); - if (result == NULL) { - sprintf(temp, "--%s", name + skip); - result = findOption(temp, pass, TRUE); - } - } - if (result == NULL && strncmp(name, "no", 2)) { - sprintf(temp, "--no-%s", name); - result = findOption(temp, pass, TRUE); - } - free(temp); - } - } - } - return result; -} - -static eOptions -lookupOption(const char *name, int pass) -{ - eOptions result = o_unknown; - const Options *data = findOption(name, pass, FALSE); - if (data != NULL) { - result = data->code; - } - return result; -} - -static void -Usage(const char *msg) -{ - handle_leaks(); - dlg_exiterr("%s.\nUse --help to list options.\n\n", msg); -} - -/* - * Count arguments, stopping at the end of the argument list, or on any of our - * "--" tokens. - */ -static int -arg_rest(char *argv[]) -{ - int i = 1; /* argv[0] points to a "--" token */ - - while (argv[i] != 0 - && (!isOption(argv[i]) || lookupOption(argv[i], 7) == o_unknown)) - i++; - return i; -} - -/* - * In MultiWidget this function is needed to count how many tags - * a widget (menu, checklist, radiolist) has - */ -static int -howmany_tags(char *argv[], int group) -{ - int result = 0; - char temp[80]; - - while (argv[0] != 0) { - int have; - - if (isOption(argv[0])) - break; - if ((have = arg_rest(argv)) < group) { - const char *format = _("Expected %d arguments, found only %d"); - sprintf(temp, format, group, have); - Usage(temp); - } else if ((have % group) != 0) { - const char *format = _("Expected %d arguments, found extra %d"); - sprintf(temp, format, group, (have % group)); - Usage(temp); - } - - argv += have; - result += (have / group); - } - - return result; -} - -static int -numeric_arg(char **av, int n) -{ - int result = 0; - - if (n < dlg_count_argv(av)) { - char *last = 0; - result = (int) strtol(av[n], &last, 10); - - if (last == 0 || *last != 0) { - char msg[80]; - - sprintf(msg, "Expected a number for token %d of %.20s", n, av[0]); - Usage(msg); - } - } - return result; -} - -static char * -optional_str(char **av, int n, char *dft) -{ - char *ret = dft; - if (arg_rest(av) > n) - ret = av[n]; - return ret; -} - -#if defined(HAVE_DLG_GAUGE) || defined(HAVE_XDIALOG) -static int -optional_num(char **av, int n, int dft) -{ - int ret = dft; - if (arg_rest(av) > n) - ret = numeric_arg(av, n); - return ret; -} -#endif - -/* - * On AIX 4.x, we have to flush the output right away since there is a bug in - * the curses package which discards stdout even when we've used newterm to - * redirect output to /dev/tty. - */ -static int -show_result(int ret) -{ - bool either = FALSE; - - switch (ret) { - case DLG_EXIT_OK: - case DLG_EXIT_EXTRA: - case DLG_EXIT_HELP: - case DLG_EXIT_ITEM_HELP: - if ((dialog_state.output_count > 1) && !dialog_vars.separate_output) { - fputs((dialog_state.separate_str - ? dialog_state.separate_str - : DEFAULT_SEPARATE_STR), - dialog_state.output); - either = TRUE; - } - if (dialog_vars.input_result != 0 - && dialog_vars.input_result[0] != '\0') { - fputs(dialog_vars.input_result, dialog_state.output); - DLG_TRACE(("# input_result:\n%s\n", dialog_vars.input_result)); - either = TRUE; - } - if (either) { - fflush(dialog_state.output); - } - break; - } - return ret; -} - -/* - * These are the widget callers. - */ - -static int -call_yesno(CALLARGS) -{ - *offset_add = 4; - return dialog_yesno(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)); -} - -static int -call_msgbox(CALLARGS) -{ - *offset_add = 4; - return dialog_msgbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), 1); -} - -static int -call_infobox(CALLARGS) -{ - *offset_add = 4; - return dialog_msgbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), 0); -} - -static int -call_textbox(CALLARGS) -{ - *offset_add = 4; - return dialog_textbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)); -} - -static int -call_menu(CALLARGS) -{ - int tags = howmany_tags(av + 5, MENUBOX_TAGS); - *offset_add = 5 + tags * MENUBOX_TAGS; - - return dialog_menu(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5); -} - -static int -call_inputmenu(CALLARGS) -{ - int tags = howmany_tags(av + 5, MENUBOX_TAGS); - bool free_extra_label = FALSE; - int result; - - dialog_vars.input_menu = TRUE; - - if (dialog_vars.max_input == 0) - dialog_vars.max_input = MAX_LEN / 2; - - if (dialog_vars.extra_label == 0) { - free_extra_label = TRUE; - dialog_vars.extra_label = dlg_strclone(_("Rename")); - } - - dialog_vars.extra_button = TRUE; - - *offset_add = 5 + tags * MENUBOX_TAGS; - result = dialog_menu(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5); - if (free_extra_label) { - free(dialog_vars.extra_label); - dialog_vars.extra_label = 0; - } - return result; -} - -static int -call_checklist(CALLARGS) -{ - int tags = howmany_tags(av + 5, CHECKBOX_TAGS); - int code; - - *offset_add = 5 + tags * CHECKBOX_TAGS; - code = dialog_checklist(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5, FLAG_CHECK); - return code; -} - -static int -call_radiolist(CALLARGS) -{ - int tags = howmany_tags(av + 5, CHECKBOX_TAGS); - *offset_add = 5 + tags * CHECKBOX_TAGS; - return dialog_checklist(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5, FLAG_RADIO); -} - -static int -call_inputbox(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_inputbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - optional_str(av, 4, 0), 0); -} - -static int -call_passwordbox(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_inputbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - optional_str(av, 4, 0), 1); -} - -#ifdef HAVE_XDIALOG -static int -call_calendar(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_calendar(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - optional_num(av, 4, -1), - optional_num(av, 5, -1), - optional_num(av, 6, -1)); -} - -static int -call_dselect(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_dselect(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)); -} - -static int -call_editbox(CALLARGS) -{ - *offset_add = 4; - return dialog_editbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)); -} - -static int -call_fselect(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_fselect(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)); -} - -static int -call_timebox(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_timebox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - optional_num(av, 4, -1), - optional_num(av, 5, -1), - optional_num(av, 6, -1)); -} -#endif /* HAVE_XDIALOG */ - -/* dialog 1.2 widgets */ -#ifdef HAVE_XDIALOG2 - -#define DisableNoTags() \ - bool save_no_tags = dialog_vars.no_tags; \ - bool save_no_items = dialog_vars.no_items; \ - dialog_vars.no_tags = TRUE; \ - dialog_vars.no_items = FALSE - -#define RestoreNoTags() \ - dialog_vars.no_tags = save_no_tags; \ - dialog_vars.no_items = save_no_items - -static int -call_buildlist(CALLARGS) -{ - int tags = howmany_tags(av + 5, CHECKBOX_TAGS); - int result; - - DisableNoTags(); - - *offset_add = 5 + tags * CHECKBOX_TAGS; - result = dialog_buildlist(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5, - dialog_vars.reorder); - RestoreNoTags(); - return result; -} - -static int -call_rangebox(CALLARGS) -{ - int min_value; - - *offset_add = arg_rest(av); - min_value = numeric_arg(av, 4); - return dialog_rangebox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - min_value, - numeric_arg(av, 5), - (*offset_add > 6) ? numeric_arg(av, 6) : min_value); -} - -static int -call_treeview(CALLARGS) -{ - int tags = howmany_tags(av + 5, TREEVIEW_TAGS); - int result; - - DisableNoTags(); - - *offset_add = arg_rest(av); - result = dialog_treeview(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5, FLAG_RADIO); - RestoreNoTags(); - return result; -} -#endif /* HAVE_XDIALOG */ - -#ifdef HAVE_DLG_FORMBOX -static int -call_form(CALLARGS) -{ - int group = FORMBOX_TAGS; - int tags = howmany_tags(av + 5, group); - *offset_add = 5 + tags * group; - - return dialog_form(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5); -} - -static int -call_password_form(CALLARGS) -{ - unsigned save = dialog_vars.formitem_type; - int result; - - dialog_vars.formitem_type = 1; - result = call_form(PASSARGS); - dialog_vars.formitem_type = save; - - return result; -} -#endif /* HAVE_DLG_FORMBOX */ - -#ifdef HAVE_DLG_MIXEDFORM -static int -call_mixed_form(CALLARGS) -{ - int group = MIXEDFORM_TAGS; - int tags = howmany_tags(av + 5, group); - *offset_add = 5 + tags * group; - - return dialog_mixedform(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + 5); -} -#endif /* HAVE_DLG_MIXEDFORM */ - -#ifdef HAVE_DLG_GAUGE -static int -call_gauge(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_gauge(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - optional_num(av, 4, 0)); -} - -static int -call_pause(CALLARGS) -{ - *offset_add = arg_rest(av); - return dialog_pause(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4)); -} -#endif - -#ifdef HAVE_MIXEDGAUGE -static int -call_mixed_gauge(CALLARGS) -{ -#define MIXEDGAUGE_BASE 5 - int tags = howmany_tags(av + MIXEDGAUGE_BASE, MIXEDGAUGE_TAGS); - *offset_add = MIXEDGAUGE_BASE + tags * MIXEDGAUGE_TAGS; - return dialog_mixedgauge(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - numeric_arg(av, 4), - tags, av + MIXEDGAUGE_BASE); -} -#endif - -#ifdef HAVE_DLG_GAUGE -static int -call_prgbox(CALLARGS) -{ - *offset_add = arg_rest(av); - /* the original version does not accept a prompt string, but for - * consistency we allow it. - */ - return ((*offset_add == 5) - ? dialog_prgbox(t, - av[1], - av[2], - numeric_arg(av, 3), - numeric_arg(av, 4), TRUE) - : dialog_prgbox(t, - "", - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), TRUE)); -} -#endif - -#ifdef HAVE_DLG_GAUGE -static int -call_programbox(CALLARGS) -{ - int result; - - *offset_add = arg_rest(av); - /* this function is a compromise between --prgbox and --progressbox. - */ - result = ((*offset_add == 4) - ? dlg_progressbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - TRUE, - dialog_state.pipe_input) - : dlg_progressbox(t, - "", - numeric_arg(av, 1), - numeric_arg(av, 2), - TRUE, - dialog_state.pipe_input)); - dialog_state.pipe_input = 0; - return result; -} -#endif - -#ifdef HAVE_DLG_GAUGE -static int -call_progressbox(CALLARGS) -{ - *offset_add = arg_rest(av); - /* the original version does not accept a prompt string, but for - * consistency we allow it. - */ - return ((*offset_add == 4) - ? dialog_progressbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3)) - : dialog_progressbox(t, - "", - numeric_arg(av, 1), - numeric_arg(av, 2))); -} -#endif - -#ifdef HAVE_DLG_TAILBOX -static int -call_tailbox(CALLARGS) -{ - *offset_add = 4; - return dialog_tailbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - FALSE); -} - -static int -call_tailboxbg(CALLARGS) -{ - *offset_add = 4; - return dialog_tailbox(t, - av[1], - numeric_arg(av, 2), - numeric_arg(av, 3), - TRUE); -} -#endif -/* *INDENT-OFF* */ -static const Mode modes[] = -{ - {o_yesno, 4, 4, call_yesno}, - {o_msgbox, 4, 4, call_msgbox}, - {o_infobox, 4, 4, call_infobox}, - {o_textbox, 4, 4, call_textbox}, - {o_menu, 6, 0, call_menu}, - {o_inputmenu, 6, 0, call_inputmenu}, - {o_checklist, 7, 0, call_checklist}, - {o_radiolist, 7, 0, call_radiolist}, - {o_inputbox, 4, 5, call_inputbox}, - {o_passwordbox, 4, 5, call_passwordbox}, -#ifdef HAVE_DLG_GAUGE - {o_gauge, 4, 5, call_gauge}, - {o_pause, 5, 5, call_pause}, - {o_prgbox, 4, 5, call_prgbox}, - {o_programbox, 3, 4, call_programbox}, - {o_progressbox, 3, 4, call_progressbox}, -#endif -#ifdef HAVE_DLG_FORMBOX - {o_passwordform, 13, 0, call_password_form}, - {o_form, 13, 0, call_form}, -#endif -#ifdef HAVE_MIXEDGAUGE - {o_mixedgauge, MIXEDGAUGE_BASE, 0, call_mixed_gauge}, -#endif -#ifdef HAVE_DLG_MIXEDFORM - {o_mixedform, 13, 0, call_mixed_form}, -#endif -#ifdef HAVE_DLG_TAILBOX - {o_tailbox, 4, 4, call_tailbox}, - {o_tailboxbg, 4, 4, call_tailboxbg}, -#endif -#ifdef HAVE_XDIALOG - {o_calendar, 4, 7, call_calendar}, - {o_dselect, 4, 5, call_dselect}, - {o_editbox, 4, 4, call_editbox}, - {o_fselect, 4, 5, call_fselect}, - {o_timebox, 4, 7, call_timebox}, -#endif -#ifdef HAVE_XDIALOG2 - {o_buildlist, 4, 0, call_buildlist}, - {o_rangebox, 5, 7, call_rangebox}, - {o_treeview, 4, 0, call_treeview}, -#endif -}; -/* *INDENT-ON* */ - -static char * -optionString(char **argv, int *num) -{ - int next = *num + 1; - char *result = argv[next]; - if (result == 0) { - char temp[80]; - sprintf(temp, "Expected a string-parameter for %.20s", argv[*num]); - Usage(temp); - } - *num = next; - return result; -} - -static int -optionValue(char **argv, int *num) -{ - int next = *num + 1; - char *src = argv[next]; - char *tmp = 0; - int result = 0; - - if (src != 0) { - result = (int) strtol(src, &tmp, 0); - if (tmp == 0 || *tmp != 0) - src = 0; - } - - if (src == 0) { - char temp[80]; - sprintf(temp, "Expected a numeric-parameter for %.20s", argv[*num]); - Usage(temp); - } - *num = next; - return result; -} - -/* - * In findOption, we made provision for adding/removing a "no" prefix from - * any boolean option. This function determines the actual true/false result. - */ -static bool -optionBool(const char *actual, const Options * data) -{ - bool normal = (data->type == tTrue) ? TRUE : FALSE; - bool result = !strcmp(actual + 2, data->name) ? normal : !normal; - if (result != normal) { - int want_no = (strncmp(actual + 2, "no", 2) == 0); - int have_no = (strncmp(data->name, "no", 2) == 0); - if (have_no == want_no) - result = normal; - } - return result; -} - -/* Return exit-code for a named button */ -static int -button_code(const char *name) -{ - /* *INDENT-OFF* */ - static struct { - const char *name; - int code; - } table[] = { - { "ok", DLG_EXIT_OK }, - { "yes", DLG_EXIT_OK }, - { "cancel", DLG_EXIT_CANCEL }, - { "no", DLG_EXIT_CANCEL }, - { "help", DLG_EXIT_HELP }, - { "extra", DLG_EXIT_EXTRA }, - }; - /* *INDENT-ON* */ - - int code = DLG_EXIT_ERROR; - size_t i; - - for (i = 0; i < TableSize(table); i++) { - if (!dlg_strcmp(name, table[i].name)) { - code = table[i].code; - break; - } - } - - if (code == DLG_EXIT_ERROR) { - char temp[80]; - sprintf(temp, "Button name \"%.20s\" unknown", name); - Usage(temp); - } - - return code; -} - -/* - * If this is the last option, we do not want any error messages - just our - * output. Calling end_dialog() cancels the refresh() at the end of the - * program as well. - */ -static void -IgnoreNonScreen(char **argv, int offset) -{ - if (argv[offset + 1] == 0) { - ignore_unknown = TRUE; - end_dialog(); - } -} - -static void -PrintTextOnly(char **argv, int *offset, eOptions code) -{ - /* TODO - handle two optional numeric params */ - char *text; - int height = 0; - int width = 0; - int height2 = 0; - int width2 = 0; - int next = arg_rest(argv + *offset); - - if (LINES <= 0 && COLS <= 0) { - dlg_ttysize(fileno(dialog_state.input), - &dialog_state.screen_height, - &dialog_state.screen_width); - } - - text = strdup(optionString(argv, offset)); - IgnoreNonScreen(argv, *offset); - - if (next >= 1) { - next = MIN(next, 3); - height = numeric_arg(argv, *offset + 1); - if (next >= 2) - width = numeric_arg(argv, *offset + 2); - *offset += next - 1; - } - - dlg_trim_string(text); - dlg_auto_size(NULL, text, &height2, &width2, height, width); - - switch (code) { - case o_text_only: - dialog_state.text_only = TRUE; - dlg_print_autowrap(stdscr, text, height2, width2); - dialog_state.text_only = FALSE; - break; - case o_print_text_size: - fprintf(dialog_state.output, "%d %d\n", - dialog_state.text_height, - dialog_state.text_width); - break; - default: - break; - } -} - -/* - * Print parts of a message - */ -static void -PrintList(const char *const *list) -{ - const char *leaf = strrchr(program, '/'); - unsigned n = 0; - - if (leaf != 0) - leaf++; - else - leaf = program; - - while (*list != 0) { - fprintf(dialog_state.output, *list, n ? leaf : dialog_version()); - (void) fputc('\n', dialog_state.output); - n = 1; - list++; - } -} - -static const Mode * -lookupMode(eOptions code) -{ - const Mode *modePtr = 0; - unsigned n; - - for (n = 0; n < TableSize(modes); n++) { - if (modes[n].code == code) { - modePtr = &modes[n]; - break; - } - } - return modePtr; -} - -static int -compare_opts(const void *a, const void *b) -{ - Options *const *p = (Options * const *) a; - Options *const *q = (Options * const *) b; - return strcmp((*p)->name, (*q)->name); -} - -/* - * Print program's version. - */ -static void -PrintVersion(FILE *fp) -{ - fprintf(fp, "Version: %s\n", dialog_version()); -} - -/* - * Print program help-message - */ -static void -Help(void) -{ - static const char *const tbl_1[] = - { - "cdialog (ComeOn Dialog!) version %s", - "Copyright 2000-2020,2021 Thomas E. Dickey", - "This is free software; see the source for copying conditions. There is NO", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.", - "", - "* Display dialog boxes from shell scripts *", - "", - "Usage: %s <options> { --and-widget <options> }", - "where options are \"common\" options, followed by \"box\" options", - "", -#ifdef HAVE_RC_FILE - "Special options:", - " [--create-rc \"file\"]", -#endif - 0 - }, *const tbl_3[] = - { - "", - "Auto-size with height and width = 0. Maximize with height and width = -1.", - "Global-auto-size if also menu_height/list_height = 0.", - 0 - }; - size_t limit = TableSize(options); - size_t j, k; - const Options **opts; - - end_dialog(); - dialog_state.output = stdout; - - opts = dlg_calloc(const Options *, limit); - assert_ptr(opts, "Help"); - for (j = 0; j < limit; ++j) { - opts[j] = &(options[j]); - } - qsort(opts, limit, sizeof(Options *), compare_opts); - - PrintList(tbl_1); - fprintf(dialog_state.output, "Common options:\n "); - for (j = k = 0; j < limit; j++) { - if ((opts[j]->pass & 1) - && opts[j]->help != 0) { - size_t len = 6 + strlen(opts[j]->name) + strlen(opts[j]->help); - k += len; - if (k > 75) { - fprintf(dialog_state.output, "\n "); - k = len; - } - fprintf(dialog_state.output, " [--%s%s%s]", opts[j]->name, - *(opts[j]->help) ? " " : "", opts[j]->help); - } - } - fprintf(dialog_state.output, "\nBox options:\n"); - for (j = 0; j < limit; j++) { - if ((opts[j]->pass & 2) != 0 - && opts[j]->help != 0 - && lookupMode(opts[j]->code)) { - fprintf(dialog_state.output, " --%-12s %s\n", opts[j]->name, - opts[j]->help); - } - } - PrintList(tbl_3); - - free(opts); - handle_leaks(); - dlg_exit(DLG_EXIT_OK); -} - -#ifdef HAVE_DLG_TRACE -/* - * Only the first call to dlg_trace will open a trace file. But each time - * --trace is parsed, we show the whole parameter list as it is at that moment, - * counting discarded parameters. The only way to capture the whole parameter - * list is if --trace is the first option. - */ -static void -process_trace_option(char **argv, int *offset) -{ - int j; - - if (dialog_state.trace_output == 0) { - dlg_trace(optionString(argv, offset)); - } else { - DLG_TRACE(("# ignore extra --trace option\n")); - *offset += 1; - } - - DLG_TRACE(("# Parameters:\n")); - for (j = 0; argv[j] != 0; ++j) { - DLG_TRACE(("#\targv[%d] = %s\n", j, argv[j])); - } -} -#endif - -/* - * "Common" options apply to all widgets more/less. Most of the common options - * set values in dialog_vars, a few set dialog_state and a couple write to the - * output stream. - */ -static int -process_common_options(int argc, char **argv, int offset, int output) -{ - const Options *data = NULL; - bool done = FALSE; - - DLG_TRACE(("# process_common_options, offset %d:%d\n", offset, argc)); - - while (!done && offset < argc) { - static char empty[] = ""; - eOptions code = o_unknown; - char *sval = empty; - bool bval; - int nval; - char *target; - - DLG_TRACE(("#\targv[%d] = %s\n", offset, argv[offset])); - if ((data = findOption(argv[offset], 1, FALSE)) == NULL) { - done = TRUE; - continue; - } - - switch (data->vars) { - default: - target = NULL; - break; - case 1: - target = (char *) &dialog_state; - break; - case 2: - target = (char *) &dialog_vars; - break; - } - -#define TraceTarget \ - ((target == (char *) &dialog_state) \ - ? "dialog_state" \ - : "dialog_vars") -#define TraceBVal (bval ? "TRUE" : "FALSE") -#define TraceDone(fmt,value) \ - DLG_TRACE(("#\t.. set %s.%s = %"fmt"\n", TraceTarget, data->name, value)) -#define TraceLate(fmt,value) \ - DLG_TRACE(("#\t.. defer setting %s = %"fmt"\n", data->name, value)) - - code = data->code; - switch (data->type) { - default: - break; - case tFalse: - case tTrue: - bval = optionBool(argv[offset], data); - if (target != NULL) { - *(bool *) (target + data->offset) = bval; - TraceDone("s", TraceBVal); - } else { - TraceLate("s", TraceBVal); - } - break; - case tNumber: - nval = optionValue(argv, &offset); - if (target != NULL) { - *(int *) (void *) (target + data->offset) = nval; - TraceDone("d", nval); - } else { - TraceLate("d", nval); - } - break; - case tString: - sval = optionString(argv, &offset); - if (target != NULL) { - *(char **) (void *) (target + data->offset) = sval; - TraceDone("s", sval); - } else { - TraceLate("s", sval); - } - break; - } - - switch (code) { - case o_defaultno: - dialog_vars.default_button = DLG_EXIT_CANCEL; - break; - case o_default_button: - dialog_vars.default_button = button_code(sval); - dialog_vars.defaultno = dialog_vars.default_button == DLG_EXIT_CANCEL; - break; - case o_text_only: - case o_print_text_size: - PrintTextOnly(argv, &offset, code); - break; - case o_print_maxsize: - if (output) { - IgnoreNonScreen(argv, offset); - fflush(dialog_state.output); - fprintf(dialog_state.output, "MaxSize: %d, %d\n", SLINES, SCOLS); - } - break; - case o_print_version: - if (output) { - PrintVersion(dialog_state.output); - } - break; - case o_visit_items: - dialog_state.visit_cols = 1; - break; - case o_begin_set: -#ifdef HAVE_WHIPTAIL - if (!strcmp(argv[offset], "--topleft")) { - dialog_vars.begin_y = 0; - dialog_vars.begin_x = 0; - } else -#endif - { - dialog_vars.begin_y = optionValue(argv, &offset); - dialog_vars.begin_x = optionValue(argv, &offset); - } - break; - case o_ascii_lines: - dialog_vars.no_lines = FALSE; - break; - case o_no_lines: - dialog_vars.ascii_lines = FALSE; - break; - case o_no_mouse: - mouse_close(); - break; - case o_unknown: - done = !ignore_unknown; - default: - break; -#ifdef HAVE_DLG_TRACE - case o_trace: - process_trace_option(argv, &offset); - break; -#endif - case o_iso_week: - if (dialog_vars.week_start == 0) { /* Monday is implied */ - static char default_1st[] = "1"; - dialog_vars.week_start = default_1st; - } - break; - } - if (!done) - offset++; - } - - if (dialog_state.aspect_ratio == 0) - dialog_state.aspect_ratio = DEFAULT_ASPECT_RATIO; - - return offset; -} - -/* - * Initialize options at the start of a series of common options culminating - * in a widget. - */ -static void -init_result(char *buffer) -{ - static bool first = TRUE; - - DLG_TRACE(("# init_result\n")); - - /* clear everything we do not save for the next widget */ - memset(&dialog_vars, 0, sizeof(dialog_vars)); - - dialog_vars.input_result = buffer; - dialog_vars.input_result[0] = '\0'; - - dialog_vars.default_button = -1; - - /* - * The first time this is called, check for common options given by an - * environment variable. - */ - if (first) { - char *env = dlg_getenv_str("DIALOGOPTS"); - if (env != 0) - env = dlg_strclone(env); - if (env != 0) { - special_argv = dlg_string_to_argv(env); - special_argc = dlg_count_argv(special_argv); - } - first = FALSE; - } - - if (special_argv != 0) { - process_common_options(special_argc, special_argv, 0, FALSE); - } -} - -int -main(int argc, char *argv[]) -{ - char temp[256]; - bool esc_pressed = FALSE; - bool keep_tite = FALSE; - int initial = 1; - int offset = 1; - int offset_add = 0; - int retval = DLG_EXIT_OK; - int j; - eOptions code; - char my_buffer[MAX_LEN + 1]; - - memset(&dialog_state, 0, sizeof(dialog_state)); - memset(&dialog_vars, 0, sizeof(dialog_vars)); - -#if defined(ENABLE_NLS) - /* initialize locale support */ - setlocale(LC_ALL, ""); - bindtextdomain(NLS_TEXTDOMAIN, LOCALEDIR); - textdomain(NLS_TEXTDOMAIN); -#elif defined(HAVE_SETLOCALE) - (void) setlocale(LC_ALL, ""); -#endif - - init_result(my_buffer); /* honor $DIALOGOPTS */ - unescape_argv(&argc, &argv); - program = argv[0]; - dialog_state.output = stderr; - dialog_state.input = stdin; - - /* - * Look for the last --stdout, --stderr or --output-fd option, and use - * that. We can only write to one of them. If --stdout is used, that - * can interfere with initializing the curses library, so we want to - * know explicitly if it is used. - * - * Also, look for any --version or --help message, processing those - * immediately. - */ - while (offset < argc) { - int base = offset; - switch (lookupOption(argv[offset], 7)) { - case o_output_stdout: - dialog_state.output = stdout; - break; - case o_output_stderr: - dialog_state.output = stderr; - break; - case o_input_fd: - if ((j = optionValue(argv, &offset)) < 0 - || (dialog_state.input = fdopen(j, "r")) == 0) { - handle_leaks(); - dlg_exiterr("Cannot open input-fd\n"); - } - break; - case o_output_fd: - if ((j = optionValue(argv, &offset)) < 0 - || (dialog_state.output = fdopen(j, "w")) == 0) { - handle_leaks(); - dlg_exiterr("Cannot open output-fd\n"); - } - break; - case o_keep_tite: - keep_tite = TRUE; - break; - case o_version: - dialog_state.output = stdout; - PrintVersion(dialog_state.output); - dlg_exit(DLG_EXIT_OK); - break; - case o_help: - Help(); - break; -#ifdef HAVE_DLG_TRACE - case o_trace: - /* - * Process/remove the --trace option if it is the first option. - * Otherwise, process it in more/less expected order as a - * "common" option. - */ - if (base == 1) { - process_trace_option(argv, &offset); - break; - } else { - ++offset; - continue; - } -#endif - default: - ++offset; - continue; - } - DLG_TRACE(("# discarding %d parameters starting with argv[%d] (%s)\n", - 1 + offset - base, base, - argv[base])); - for (j = base; j < argc; ++j) { - dialog_argv[j] = dialog_argv[j + 1 + (offset - base)]; - } - argc -= (1 + offset - base); - offset = base; - } - offset = 1; - init_result(my_buffer); - dialog_vars.keep_tite |= keep_tite; /* init_result() cleared global */ - - /* - * Dialog's output may be redirected (see above). Handle the special - * case of options that only report information without interaction. - */ - if (argc == 2) { - switch (code = lookupOption(argv[1], 7)) { - case o_print_maxsize: - (void) initscr(); - endwin(); - fflush(dialog_state.output); - fprintf(dialog_state.output, "MaxSize: %d, %d\n", SLINES, SCOLS); - break; - case o_print_version: - PrintVersion(dialog_state.output); - break; - case o_dlg_clear_screen: - initscr(); - refresh(); - dlg_keep_tite((dialog_state.output == stdout) ? stderr : stdout); - endwin(); - break; - case o_ignore: - break; - default: - Help(); - break; - } - dlg_exit(DLG_EXIT_OK); - } else if (argc < 2) { - Help(); - } -#ifdef HAVE_RC_FILE - else if (lookupOption(argv[1], 7) == o_create_rc) { - if (argc != 3) { - sprintf(temp, "Expected a filename for %.50s", argv[1]); - Usage(temp); - } - if (dlg_parse_rc() == -1) { /* Read the configuration file */ - handle_leaks(); - dlg_exiterr("dialog: dlg_parse_rc"); - } - dlg_create_rc(argv[2]); - dlg_exit(DLG_EXIT_OK); - } -#endif - else { - /* - * Handle combinations of common options including --print-text-only - * which can be done before involving curses, in case we can exit - * without initializing curses (and writing to the terminal). - */ - initial = process_common_options(argc, argv, offset, TRUE); - if (initial >= argc) - dlg_exit(DLG_EXIT_OK); - } - - init_dialog(dialog_state.input, dialog_state.output); - - while (offset < argc && !esc_pressed) { - int have; - const Mode *modePtr; - - init_result(my_buffer); - offset = process_common_options(argc, argv, offset, offset > initial); - - if (argv[offset] == NULL) { - if (ignore_unknown) - break; - Usage("Expected a box option"); - } - - if (dialog_vars.separate_output) { - switch (lookupOption(argv[offset], 2)) { -#ifdef HAVE_XDIALOG2 - case o_buildlist: - case o_treeview: -#endif - case o_checklist: - break; - default: - sprintf(temp, - "Unexpected widget with --separate-output %.20s", - argv[offset]); - Usage(temp); - } - } - - dlg_put_backtitle(); - - /* use a table to look for the requested mode, to avoid code duplication */ - - modePtr = 0; - if ((code = lookupOption(argv[offset], 2)) != o_unknown) - modePtr = lookupMode(code); - if (modePtr == 0) { - sprintf(temp, "%s option %.20s", - lookupOption(argv[offset], 7) != o_unknown - ? "Unexpected" - : "Unknown", - argv[offset]); - Usage(temp); - } - - have = arg_rest(&argv[offset]); - if (have < modePtr->argmin) { - sprintf(temp, "Expected at least %d tokens for %.20s, have %d", - modePtr->argmin - 1, argv[offset], - have - 1); - Usage(temp); - } - if (modePtr->argmax && have > modePtr->argmax) { - sprintf(temp, - "Expected no more than %d tokens for %.20s, have %d", - modePtr->argmax - 1, argv[offset], - have - 1); - Usage(temp); - } - - /* - * Trim whitespace from non-title option values, e.g., the ones that - * will be used as captions or prompts. Do that only for the widget - * we are about to process, since the "--trim" option is reset before - * accumulating options for each widget. - */ - for (j = offset + 1; j <= offset + have; j++) { - switch (lookupOption(argv[j - 1], 7)) { - case o_unknown: - case o_title: - case o_backtitle: - case o_help_line: - case o_help_file: - break; - default: - if (argv[j] != 0) { - char *argv_j = strdup(argv[j]); - if (argv_j != 0) { - dlg_trim_string(argv_j); - argv[j] = argv_j; - } else { - argv[j] = strdup("?"); - } - ignore_leak(argv[j]); - } - break; - } - } - - DLG_TRACE(("# execute %s\n", argv[offset])); - retval = show_result((*(modePtr->jumper)) (dialog_vars.title, - argv + offset, - &offset_add)); - DLG_TRACE(("# widget returns %d\n", retval)); - offset += offset_add; - - if (dialog_vars.input_result != my_buffer) { - free(dialog_vars.input_result); - dialog_vars.input_result = 0; - } - - if (retval == DLG_EXIT_ESC) { - esc_pressed = TRUE; - } else { - - if (dialog_vars.beep_after_signal) - (void) beep(); - - if (dialog_vars.sleep_secs) - (void) napms(dialog_vars.sleep_secs * 1000); - - if (offset < argc) { - switch (lookupOption(argv[offset], 7)) { - case o_and_widget: - offset++; - break; - case o_unknown: - sprintf(temp, "Expected --and-widget, not %.20s", - argv[offset]); - Usage(temp); - break; - default: - /* if we got a cancel, etc., stop chaining */ - if (retval != DLG_EXIT_OK) - esc_pressed = TRUE; - else - dialog_vars.dlg_clear_screen = TRUE; - break; - } - } - if (dialog_vars.dlg_clear_screen) - dlg_clear(); - } - } - - dlg_killall_bg(&retval); - if (dialog_state.screen_initialized) { - (void) refresh(); - end_dialog(); - } - handle_leaks(); - dlg_exit(retval); -} diff --git a/contrib/dialog/dialog.h b/contrib/dialog/dialog.h deleted file mode 100644 index 4ac3a4248ce5..000000000000 --- a/contrib/dialog/dialog.h +++ /dev/null @@ -1,1002 +0,0 @@ -/* - * $Id: dialog.h,v 1.304 2021/01/17 16:58:22 tom Exp $ - * - * dialog.h -- common declarations for all dialog modules - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#ifndef DIALOG_H_included -#define DIALOG_H_included 1 -/* *INDENT-OFF* */ - -#include <dlg_config.h> - -#ifdef __hpux -#define __HP_CURSES_COMPAT /* workaround for getattrs, etc. */ -#endif - -#include <sys/types.h> -#include <fcntl.h> -#include <unistd.h> -#include <ctype.h> -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <signal.h> /* fork() etc. */ -#include <math.h> /* sqrt() */ - -/* header conflict with Solaris xpg4 versus <sys/regset.h> */ -#if defined(ERR) && (ERR == 13) -#undef ERR -#endif - -#if defined(HAVE_NCURSESW_NCURSES_H) -#include <ncursesw/ncurses.h> -#elif defined(HAVE_NCURSES_NCURSES_H) -#include <ncurses/ncurses.h> -#elif defined(HAVE_NCURSES_CURSES_H) -#include <ncurses/curses.h> -#elif defined(HAVE_NCURSES_H) -#include <ncurses.h> -#else -#include <curses.h> -#if defined(HAVE_UNCTRL_H) -#include <unctrl.h> /* most curses.h headers include this, some do not */ -#endif -#endif - -/* Solaris xpg4 renames these */ -#ifndef KEY_MAX -#ifdef __KEY_MAX -#define KEY_MAX __KEY_MAX -#endif -#endif - -#ifndef KEY_MIN -#ifdef __KEY_MIN -#define KEY_MIN __KEY_MIN -#endif -#endif - -/* possible conflicts with <term.h> which may be included in <curses.h> */ -#ifdef color_names -#undef color_names -#endif - -#ifdef buttons -#undef buttons -#endif - -#ifdef ENABLE_NLS -#include <libintl.h> -#include <langinfo.h> -#define _(s) dgettext(PACKAGE, s) -#else -#undef _ -#define _(s) s -#endif - -#ifndef GCC_PRINTFLIKE -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /*nothing*/ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /*nothing*/ -#endif - -#ifndef HAVE_WGET_WCH -#undef USE_WIDE_CURSES -#endif - -/* - * FIXME: a configure check would be useful - */ -#ifdef __hpux -#undef ACS_UARROW -#undef ACS_DARROW -#undef ACS_BLOCK -#endif - -/* - * Change these if you want - */ -#define USE_SHADOW TRUE -#define USE_COLORS TRUE - -/* - * These allow using the print-formatting code before curses is initialized. - */ -#define DLG_COLS (COLS ? COLS : dialog_state.screen_width) -#define DLG_LINES (LINES ? LINES : dialog_state.screen_height) - -/* - * Define the usable size of a window, discounting the area needed for shadow. - */ -#ifdef HAVE_COLOR -#define SCOLS (DLG_COLS - (dialog_state.use_shadow ? SHADOW_COLS : 0)) -#define SLINES (DLG_LINES - (dialog_state.use_shadow ? SHADOW_ROWS : 0)) -#else -#define SCOLS COLS -#define SLINES LINES -#endif - -/* - * These are the default values for exit-codes, which can be overridden by - * environment variables, e.g., $DIALOG_CANCEL for DLG_EXIT_CANCEL. - */ -#define DLG_EXIT_ESC 255 -#define DLG_EXIT_UNKNOWN -2 /* never return this (internal use) */ -#define DLG_EXIT_ERROR -1 /* the shell sees this as 255 */ -#define DLG_EXIT_OK 0 -#define DLG_EXIT_CANCEL 1 -#define DLG_EXIT_HELP 2 -#define DLG_EXIT_EXTRA 3 -#define DLG_EXIT_ITEM_HELP 4 /* actually DLG_EXIT_HELP */ -#define DLG_EXIT_TIMEOUT 5 - -#define DLG_CTRL(n) ((n) & 0x1f) /* CTRL is preferred, but conflicts */ - -#define CHR_LEAVE DLG_CTRL('D') -#define CHR_HELP DLG_CTRL('E') -#define CHR_BACKSPACE DLG_CTRL('H') -#define CHR_REPAINT DLG_CTRL('L') -#define CHR_NEXT DLG_CTRL('N') -#define CHR_PREVIOUS DLG_CTRL('P') -#define CHR_KILL DLG_CTRL('U') -#define CHR_TRACE DLG_CTRL('T') -#define CHR_LITERAL DLG_CTRL('V') -#define CHR_SPACE ' ' -#define CHR_DELETE 127 - -#define ESC 27 -#define TAB DLG_CTRL('I') - -#define MARGIN 1 /* width of the line drawn around each box */ -#define GUTTER 2 /* minimum columns between name/description in menu */ -#define SHADOW_ROWS 1 /* rows to reserve for window's shadow */ -#define SHADOW_COLS 2 /* columns to reserve for window's shadow */ -#define ARROWS_COL 5 /* distance from left margin to up/down arrows */ - -#define MAX_LEN 2048 -#define BUF_SIZE (10L*1024) - -#undef MIN -#define MIN(x,y) ((x) < (y) ? (x) : (y)) - -#undef MAX -#define MAX(x,y) ((x) > (y) ? (x) : (y)) - -#define DEFAULT_SEPARATE_STR "\t" -#define DEFAULT_ASPECT_RATIO 9 -/* how many spaces is a tab long (default)? */ -#define TAB_LEN 8 -#define WTIMEOUT_VAL 10 /* minimum amount of time needed for curses */ -#define WTIMEOUT_OFF -1 /* value to disable timeout */ - -#ifndef A_CHARTEXT -#define A_CHARTEXT 0xff -#endif - -#define CharOf(ch) ((ch) & 0xff) - -#ifndef ACS_ULCORNER -#define ACS_ULCORNER '+' -#endif -#ifndef ACS_LLCORNER -#define ACS_LLCORNER '+' -#endif -#ifndef ACS_URCORNER -#define ACS_URCORNER '+' -#endif -#ifndef ACS_LRCORNER -#define ACS_LRCORNER '+' -#endif -#ifndef ACS_HLINE -#define ACS_HLINE '-' -#endif -#ifndef ACS_VLINE -#define ACS_VLINE '|' -#endif -#ifndef ACS_LTEE -#define ACS_LTEE '+' -#endif -#ifndef ACS_RTEE -#define ACS_RTEE '+' -#endif -#ifndef ACS_UARROW -#define ACS_UARROW '^' -#endif -#ifndef ACS_DARROW -#define ACS_DARROW 'v' -#endif -#ifndef ACS_BLOCK -#define ACS_BLOCK '#' -#endif - -/* these definitions may work for antique versions of curses */ -#ifndef HAVE_GETBEGYX -#undef getbegyx -#define getbegyx(win,y,x) (y = (win)?(win)->_begy:ERR, x = (win)?(win)->_begx:ERR) -#endif - -#ifndef HAVE_GETMAXYX -#undef getmaxyx -#define getmaxyx(win,y,x) (y = (win)?(win)->_maxy:ERR, x = (win)?(win)->_maxx:ERR) -#endif - -#ifndef HAVE_GETPARYX -#undef getparyx -#define getparyx(win,y,x) (y = (win)?(win)->_pary:ERR, x = (win)?(win)->_parx:ERR) -#endif - -#if !defined(HAVE_WGETPARENT) && defined(HAVE_WINDOW__PARENT) -#undef wgetparent -#define wgetparent(win) ((win) ? (win)->_parent : 0) -#endif - -#if !defined(HAVE_WSYNCUP) -#undef wsyncup -#define wsyncup(win) /* nothing */ -#endif - -#if !defined(HAVE_WCURSYNCUP) -#undef wcursyncup -#define wcursyncup(win) /* nothing */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* these definitions may be needed for bleeding-edge curses implementations */ -#if !(defined(HAVE_GETBEGX) && defined(HAVE_GETBEGY)) -#undef getbegx -#undef getbegy -#define getbegx(win) dlg_getbegx(win) -#define getbegy(win) dlg_getbegy(win) -extern int dlg_getbegx(WINDOW * /*win*/); -extern int dlg_getbegy(WINDOW * /*win*/); -#endif - -#if !(defined(HAVE_GETCURX) && defined(HAVE_GETCURY)) -#undef getcurx -#undef getcury -#define getcurx(win) dlg_getcurx(win) -#define getcury(win) dlg_getcury(win) -extern int dlg_getcurx(WINDOW * /*win*/); -extern int dlg_getcury(WINDOW * /*win*/); -#endif - -#if !(defined(HAVE_GETMAXX) && defined(HAVE_GETMAXY)) -#undef getmaxx -#undef getmaxy -#define getmaxx(win) dlg_getmaxx(win) -#define getmaxy(win) dlg_getmaxy(win) -extern int dlg_getmaxx(WINDOW * /*win*/); -extern int dlg_getmaxy(WINDOW * /*win*/); -#endif - -#if !(defined(HAVE_GETPARX) && defined(HAVE_GETPARY)) -#undef getparx -#undef getpary -#define getparx(win) dlg_getparx(win) -#define getpary(win) dlg_getpary(win) -extern int dlg_getparx(WINDOW * /*win*/); -extern int dlg_getpary(WINDOW * /*win*/); -#endif - -#if !(defined(HAVE_WGETPARENT) && defined(HAVE_WINDOW__PARENT)) -#undef wgetparent -#define wgetparent(win) dlg_wgetparent(win) -extern WINDOW * dlg_wgetparent(WINDOW * /*win*/); -#endif - -/* - * This is a list of "old" names, which should be helpful in updating - * applications that use libdialog. Starting with 2003/11/26, all exported - * symbols from libdialog have "dlg_" prefix, or "dialog_" prefix or "_dialog" - * suffix (or suffix "_dialog", e.g., init_dialog). - */ -#ifdef __DIALOG_OLD_NAMES__ -#define color_table dlg_color_table -#define attr_clear(win,h,w,a) dlg_attr_clear(win,h,w,a) -#define auto_size(t,s,h,w,xl,mc) dlg_auto_size(t,s,h,w,xl,mc) -#define auto_sizefile(t,f,h,w,xl,mc) dlg_auto_sizefile(t,f,h,w,xl,mc) -#define beeping() dlg_beeping() -#define box_x_ordinate(w) dlg_box_x_ordinate(w) -#define box_y_ordinate(h) dlg_box_y_ordinate(h) -#define calc_listh(h,lh,in) dlg_calc_listh(h,lh,in) -#define calc_listw(in,items,group) dlg_calc_listw(in,items,group) -#define color_setup() dlg_color_setup() -#define create_rc(f) dlg_create_rc(f) -#define ctl_size(h,w) dlg_ctl_size(h,w) -#define del_window(win) dlg_del_window(win) -#define dialog_clear() dlg_clear() -#define draw_bottom_box(win) dlg_draw_bottom_box(win) -#define draw_box(win,y,x,h,w,xc,bc) dlg_draw_box(win,y,x,h,w,xc,bc) -#define draw_shadow(win,h,w,y,x) dlg_draw_shadow(win,h,w,y,x) -#define draw_title(win,t) dlg_draw_title(win,t) -#define exiterr dlg_exiterr -#define killall_bg(n) dlg_killall_bg(n) -#define mouse_bigregion(y,x) dlg_mouse_bigregion(y,x) -#define mouse_free_regions() dlg_mouse_free_regions() -#define mouse_mkbigregion(y,x,h,w,n,ix,iy,m) dlg_mouse_mkbigregion(y,x,h,w,n,ix,iy,m) -#define mouse_mkregion(y,x,h,w,n) dlg_mouse_mkregion(y,x,h,w,n) -#define mouse_region(y,x) dlg_mouse_region(y,x) -#define mouse_setbase(x,y) dlg_mouse_setbase(x,y) -#define mouse_setcode(c) dlg_mouse_setcode(c) -#define mouse_wgetch(w,c) dlg_mouse_wgetch(w,c) -#define new_window(h,w,y,x) dlg_new_window(h,w,y,x) -#define parse_rc() dlg_parse_rc() -#define print_autowrap(win,s,h,w) dlg_print_autowrap(win,s,h,w) -#define print_size(h,w) dlg_print_size(h,w) -#define put_backtitle() dlg_put_backtitle() -#define strclone(cprompt) dlg_strclone(cprompt) -#define sub_window(win,h,w,y,x) dlg_sub_window(win,h,w,y,x) -#define tab_correct_str(s) dlg_tab_correct_str(s) -#endif - -/* - * Attribute names - */ -#define DIALOG_ATR(n) dlg_color_table[n].atr - -#define screen_attr DIALOG_ATR(0) -#define shadow_attr DIALOG_ATR(1) -#define dialog_attr DIALOG_ATR(2) -#define title_attr DIALOG_ATR(3) -#define border_attr DIALOG_ATR(4) -#define button_active_attr DIALOG_ATR(5) -#define button_inactive_attr DIALOG_ATR(6) -#define button_key_active_attr DIALOG_ATR(7) -#define button_key_inactive_attr DIALOG_ATR(8) -#define button_label_active_attr DIALOG_ATR(9) -#define button_label_inactive_attr DIALOG_ATR(10) -#define inputbox_attr DIALOG_ATR(11) -#define inputbox_border_attr DIALOG_ATR(12) -#define searchbox_attr DIALOG_ATR(13) -#define searchbox_title_attr DIALOG_ATR(14) -#define searchbox_border_attr DIALOG_ATR(15) -#define position_indicator_attr DIALOG_ATR(16) -#define menubox_attr DIALOG_ATR(17) -#define menubox_border_attr DIALOG_ATR(18) -#define item_attr DIALOG_ATR(19) -#define item_selected_attr DIALOG_ATR(20) -#define tag_attr DIALOG_ATR(21) -#define tag_selected_attr DIALOG_ATR(22) -#define tag_key_attr DIALOG_ATR(23) -#define tag_key_selected_attr DIALOG_ATR(24) -#define check_attr DIALOG_ATR(25) -#define check_selected_attr DIALOG_ATR(26) -#define uarrow_attr DIALOG_ATR(27) -#define darrow_attr DIALOG_ATR(28) -#define itemhelp_attr DIALOG_ATR(29) -#define form_active_text_attr DIALOG_ATR(30) -#define form_text_attr DIALOG_ATR(31) -#define form_item_readonly_attr DIALOG_ATR(32) -#define gauge_attr DIALOG_ATR(33) -#define border2_attr DIALOG_ATR(34) -#define inputbox_border2_attr DIALOG_ATR(35) -#define searchbox_border2_attr DIALOG_ATR(36) -#define menubox_border2_attr DIALOG_ATR(37) - -#define DLGK_max (KEY_MAX + 256) - -/* - * Use attributes. - */ -#ifdef PDCURSES -#define dlg_attrset(w,a) (void) wattrset((w), (a)) -#define dlg_attron(w,a) (void) wattron((w), (a)) -#define dlg_attroff(w,a) (void) wattroff((w), (a)) -#else -#define dlg_attrset(w,a) (void) wattrset((w), (int)(a)) -#define dlg_attron(w,a) (void) wattron((w), (int)(a)) -#define dlg_attroff(w,a) (void) wattroff((w), (int)(a)) -#endif - -/* - * Callbacks are used to implement the "background" tailbox. - */ -struct _dlg_callback; - -typedef void (*DIALOG_FREEBACK) (struct _dlg_callback * /* p */); - -typedef struct _dlg_callback { - struct _dlg_callback *next; - FILE *input; - WINDOW *win; - bool keep_bg; /* keep in background, on exit */ - bool bg_task; /* true if this is background task */ - bool (*handle_getc)(struct _dlg_callback *p, int ch, int fkey, int *result); - bool keep_win; /* true to not erase window on exit */ - /* data for dlg_add_callback_ref */ - struct _dlg_callback **caller; - DIALOG_FREEBACK freeback; - /* 1.1-20110107 */ - bool (*handle_input)(struct _dlg_callback *p); - bool input_ready; -} DIALOG_CALLBACK; - -typedef struct _dlg_windows { - struct _dlg_windows *next; - WINDOW *normal; - WINDOW *shadow; - int getc_timeout; -} DIALOG_WINDOWS; - -/* - * Global variables, which are initialized as needed - */ -typedef struct { - DIALOG_CALLBACK *getc_callbacks; - DIALOG_CALLBACK *getc_redirect; - DIALOG_WINDOWS *all_windows; - DIALOG_WINDOWS *all_subwindows; - FILE *output; /* option "--output-fd fd" */ - FILE *pipe_input; /* used for gauge widget */ - FILE *screen_output; /* newterm(), etc. */ - bool screen_initialized; - bool use_colors; /* use colors by default? */ - bool use_scrollbar; /* option "--scrollbar" */ - bool use_shadow; /* shadow dialog boxes by default? */ - bool visit_items; /* option "--visit-items" */ - char *separate_str; /* option "--separate-widget string" */ - int aspect_ratio; /* option "--aspect ratio" */ - int output_count; /* # of widgets that may have done output */ - int tab_len; /* option "--tab-len n" */ - /* 1.0-20070227 */ - FILE *input; /* option "--input-fd fd" */ -#ifdef HAVE_DLG_TRACE - FILE *trace_output; /* option "--trace file" */ -#endif - /* 1.1-20110106 */ - bool no_mouse; /* option "--no-mouse" */ - int visit_cols; /* option "--visit-items" */ - /* 1.2-20130922 */ - bool finish_string; /* caching optimization for gauge */ - /* 1.2-20150125 */ - bool plain_buttons; /* true to suppress button-label highlight */ - /* 1.3-20180610 */ - bool text_only; /* option "--print-text-only", etc. */ - int text_height; - int text_width; - /* 1.3-20190211 */ - int screen_height; - int screen_width; -#ifdef KEY_RESIZE - /* 1.3-20190724 */ - bool had_resize; /* ERR may follow KEY_RESIZE when polling */ -#endif -} DIALOG_STATE; - -extern DIALOG_STATE dialog_state; - -/* - * Global variables, which dialog resets before each widget - */ -typedef struct { - bool beep_after_signal; /* option "--beep-after" */ - bool beep_signal; /* option "--beep" */ - bool begin_set; /* option "--begin y x" was used */ - bool cant_kill; /* option "--no-kill" */ - bool colors; /* option "--colors" */ - bool cr_wrap; /* option "--cr-wrap" */ - bool defaultno; /* option "--defaultno" */ - bool dlg_clear_screen; /* option "--clear" */ - bool extra_button; /* option "--extra-button" */ - bool help_button; /* option "--help-button" */ - bool help_status; /* option "--help-status" */ - bool input_menu; /* menu vs inputmenu widget */ - bool insecure; /* option "--insecure" */ - bool item_help; /* option "--item-help" */ - bool keep_window; /* option "--keep-window" */ - bool nocancel; /* option "--no-cancel" */ - bool nocollapse; /* option "--no-collapse" */ - bool print_siz; /* option "--print-size" */ - bool separate_output; /* option "--separate-output" */ - bool single_quoted; /* option "--single-quoted" */ - bool size_err; /* option "--size-err" */ - bool tab_correct; /* option "--tab-correct" */ - bool trim_whitespace; /* option "--trim" */ - char *backtitle; /* option "--backtitle backtitle" */ - char *cancel_label; /* option "--cancel-label string" */ - char *default_item; /* option "--default-item string" */ - char *exit_label; /* option "--exit-label string" */ - char *extra_label; /* option "--extra-label string" */ - char *help_label; /* option "--help-label string" */ - char *input_result; - char *no_label; /* option "--no-label string" */ - char *ok_label; /* option "--ok-label string" */ - char *title; /* option "--title title" */ - char *yes_label; /* option "--yes-label string" */ - int begin_x; /* option "--begin y x" (second value) */ - int begin_y; /* option "--begin y x" (first value) */ - int max_input; /* option "--max-input size" */ - int scale_factor; /* RESERVED */ - int sleep_secs; /* option "--sleep secs" */ - int timeout_secs; /* option "--timeout secs" */ - unsigned input_length; /* nonzero if input_result is allocated */ - /* 1.0-20051207 */ - unsigned formitem_type; /* DIALOG_FORMITEM.type in dialog_form() */ - /* 1.1-20070227 */ - bool keep_tite; /* option "--keep-tite" */ - bool ascii_lines; /* option "--ascii-lines" */ - bool no_lines; /* option "--no-lines" */ - /* 1.1-20070930 */ - bool nook; /* option "--no-ok" */ - /* 1.1-20080727 */ - bool quoted; /* option "--quoted" */ - char *column_header; /* RESERVED "--column-header" */ - char *column_separator; /* option "--column-separator" */ - char *output_separator; /* option "--output-separator" */ - /* 1.1-20100118 */ - char *date_format; /* option "--date-format" */ - char *time_format; /* option "--time-format" */ - /* 1.1-20110629 */ - char *help_line; /* option "--hline" */ - char *help_file; /* option "--hfile" */ - bool in_helpfile; /* flag to prevent recursion in --hfile */ - bool no_nl_expand; /* option "--no-nl-expand" */ - /* 1.1-20120701 */ - int default_button; /* option "--default-button" (exit code) */ - /* 1.1-20121218 */ - bool no_tags; /* option "--no-tags" */ - bool no_items; /* option "--no-items" */ - /* 1.2-20130315 */ - bool last_key; /* option "--last-key" */ - /* 1.2-20130902 */ - bool help_tags; /* option "--help-tags" */ - /* 1.3-20160126 */ - char *week_start; /* option "--week-start" */ - /* 1.3-20160206 */ - bool iso_week; /* option "--iso-week" */ - /* 1.3-20170131 */ - bool reorder; /* option "--reorder" */ - /* 1.3-20201117 */ - int pause_secs; /* used by pause widget */ - /* 1.3-20201126 */ - bool erase_on_exit; /* option "--erase-on-exit" */ - bool cursor_off_label; /* option "--cursor-off-label" */ - /* 1.3-20210117 */ - bool no_hot_list; /* option "--no-hot-list" */ -} DIALOG_VARS; - -#define USE_ITEM_HELP(s) (dialog_vars.item_help && (s) != 0) - -/* - * Some settings change the number of data items per row which dialog reads - * from a script. - */ -#define DLG__NO_ITEMS (dialog_vars.no_items ? 0 : 1) -#define DLG__ITEM_HELP (dialog_vars.item_help ? 1 : 0) - -/* - * These are the total number of data items per row used for each widget type. - */ -#define CHECKBOX_TAGS (2 + DLG__ITEM_HELP + DLG__NO_ITEMS) -#define MENUBOX_TAGS (1 + DLG__ITEM_HELP + DLG__NO_ITEMS) -#define FORMBOX_TAGS (8 + DLG__ITEM_HELP) -#define MIXEDFORM_TAGS (1 + FORMBOX_TAGS) -#define MIXEDGAUGE_TAGS 2 -#define TREEVIEW_TAGS (3 + DLG__ITEM_HELP + DLG__NO_ITEMS) - -extern DIALOG_VARS dialog_vars; - -#ifndef HAVE_TYPE_CHTYPE -#define chtype long -#endif - -#ifndef isblank -#define isblank(c) ((c) == ' ' || (c) == TAB) -#endif - -#define UCH(ch) ((unsigned char)(ch)) - -#define assert_ptr(ptr,msg) if ((ptr) == 0) dlg_exiterr("cannot allocate memory in " msg) - -#define dlg_malloc(t,n) (t *) malloc((size_t)(n) * sizeof(t)) -#define dlg_calloc(t,n) (t *) calloc((size_t)(n), sizeof(t)) -#define dlg_realloc(t,n,p) (t *) realloc((p), (n) * sizeof(t)) - -/* - * Table for attribute- and color-values. - */ -typedef struct { - chtype atr; /* attribute corresponding to fg, bg, etc */ -#ifdef HAVE_COLOR - int fg; /* foreground color-number */ - int bg; /* background color-number */ - int hilite; /* true if bold */ -#ifdef HAVE_RC_FILE2 - int ul; /* true if underline */ - int rv; /* true if reverse */ -#endif /* HAVE_RC_FILE2 */ -#endif /* HAVE_COLOR */ -#ifdef HAVE_RC_FILE - const char *name; - const char *comment; -#endif -} DIALOG_COLORS; - -extern DIALOG_COLORS dlg_color_table[]; - -/* - * Function prototypes - */ -extern const char *dialog_version(void); - -/* widgets, each in separate files */ -extern int dialog_buildlist(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, char ** /*items*/, int /*order_mode*/); -extern int dialog_calendar(const char * /*title*/, const char * /*subtitle*/, int /*height*/, int /*width*/, int /*day*/, int /*month*/, int /*year*/); -extern int dialog_checklist(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, char ** /*items*/, int /*flag*/); -extern int dialog_dselect(const char * /*title*/, const char * /*path*/, int /*height*/, int /*width*/); -extern int dialog_editbox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/); -extern int dialog_form(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*form_height*/, int /*item_no*/, char ** /*items*/); -extern int dialog_fselect(const char * /*title*/, const char * /*path*/, int /*height*/, int /*width*/); -extern int dialog_gauge(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*percent*/); -extern int dialog_helpfile(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/); -extern int dialog_inputbox(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, const char * /*init*/, const int /*password*/); -extern int dialog_menu(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*menu_height*/, int /*item_no*/, char ** /*items*/); -extern int dialog_mixedform(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*form_height*/, int /*item_no*/, char ** /*items*/); -extern int dialog_mixedgauge(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*percent*/, int /*item_no*/, char ** /*items*/); -extern int dialog_msgbox(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*pauseopt*/); -extern int dialog_pause(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*seconds*/); -extern int dialog_prgbox(const char * /*title*/, const char * /*cprompt*/, const char * /*command*/, int /*height*/, int /*width*/, int /*pauseopt*/); -extern int dialog_progressbox(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/); -extern int dialog_rangebox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/, int /*min_value*/, int /*max_value*/, int /*default_value*/); -extern int dialog_tailbox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/, int /*bg_task*/); -extern int dialog_textbox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/); -extern int dialog_timebox(const char * /*title*/, const char * /*subtitle*/, int /*height*/, int /*width*/, int /*hour*/, int /*minute*/, int /*second*/); -extern int dialog_treeview(const char * /*title*/, const char * /*subtitle*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, char ** /*items*/, int /*flag*/); -extern int dialog_yesno(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/); - -/* some widgets have alternate entrypoints, to allow list manipulation */ -typedef struct { - char *name; - char *text; - char *help; - int state; -} DIALOG_LISTITEM; - -typedef struct { - unsigned type; /* the field type (0=input, 1=password) */ - char *name; /* the field label */ - int name_len; /* ...its length */ - int name_y; /* ...its y-ordinate */ - int name_x; /* ...its x-ordinate */ - bool name_free; /* ...true if .name can be freed */ - char *text; /* the field contents */ - int text_len; /* ...its length on the screen */ - int text_y; /* ...its y-ordinate */ - int text_x; /* ...its x-ordinate */ - int text_flen; /* ...its length on screen, or 0 if no input allowed */ - int text_ilen; /* ...its limit on amount to be entered */ - bool text_free; /* ...true if .text can be freed */ - char *help; /* help-message, if any */ - bool help_free; /* ...true if .help can be freed */ -} DIALOG_FORMITEM; - -typedef int (DIALOG_INPUTMENU) (DIALOG_LISTITEM * /*items*/, int /*current*/, char * /*newtext*/); - -extern int dlg_checklist(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, DIALOG_LISTITEM * /*items*/, const char * /*states*/, int /*flag*/, int * /*current_item*/); -extern int dlg_form(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*form_height*/, int /*item_no*/, DIALOG_FORMITEM * /*items*/, int * /*current_item*/); -extern int dlg_menu(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*menu_height*/, int /*item_no*/, DIALOG_LISTITEM * /*items*/, int * /*current_item*/, DIALOG_INPUTMENU /*rename_menu*/); -extern int dlg_progressbox(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*pauseopt*/, FILE * /* fp */); - -/* argv.c */ -extern char ** dlg_string_to_argv(char * /* blob */); -extern int dlg_count_argv(char ** /* argv */); -extern int dlg_eat_argv(int * /* argcp */, char *** /* argvp */, int /* start */, int /* count */); - -/* arrows.c */ -extern void dlg_draw_arrows(WINDOW * /*dialog*/, int /*top_arrow*/, int /*bottom_arrow*/, int /*x*/, int /*top*/, int /*bottom*/); -extern void dlg_draw_arrows2(WINDOW * /*dialog*/, int /*top_arrow*/, int /*bottom_arrow*/, int /*x*/, int /*top*/, int /*bottom*/, chtype /*attr*/, chtype /*borderattr*/); -extern void dlg_draw_helpline(WINDOW * /*dialog*/, bool /*decorations*/); -extern void dlg_draw_scrollbar(WINDOW * /*dialog*/, long /* first_data */, long /* this_data */, long /* next_data */, long /* total_data */, int /* left */, int /* right */, int /*top*/, int /*bottom*/, chtype /*attr*/, chtype /*borderattr*/); - -/* buildlist.c */ -extern int dlg_buildlist(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, DIALOG_LISTITEM * /*items*/, const char * /*states*/, int /*order_mode*/, int * /*current_item*/); - -/* buttons.c */ -extern const char ** dlg_exit_label(void); -extern const char ** dlg_ok_label(void); -extern const char ** dlg_ok_labels(void); -extern const char ** dlg_yes_labels(void); -extern int dlg_button_count(const char ** /*labels*/); -extern int dlg_button_to_char(const char * /*label*/); -extern int dlg_button_x_step(const char ** /*labels*/, int /*limit*/, int * /*gap*/, int * /*margin*/, int * /*step*/); -extern int dlg_char_to_button(int /*ch*/, const char ** /*labels*/); -extern int dlg_exit_buttoncode(int /*button*/); -extern int dlg_match_char(int /*ch*/, const char * /*string*/); -extern int dlg_next_button(const char ** /*labels*/, int /*button*/); -extern int dlg_next_ok_buttonindex(int /*current*/, int /*extra*/); -extern int dlg_ok_buttoncode(int /*button*/); -extern int dlg_prev_button(const char ** /*labels*/, int /*button*/); -extern int dlg_prev_ok_buttonindex(int /*current*/, int /*extra*/); -extern int dlg_yes_buttoncode(int /*button*/); -extern void dlg_button_layout(const char ** /*labels*/, int * /*limit*/); -extern void dlg_button_sizes(const char ** /*labels*/, int /*vertical*/, int * /*longest*/, int * /*length*/); -extern void dlg_draw_buttons(WINDOW * /*win*/, int /*y*/, int /*x*/, const char ** /*labels*/, int /*selected*/, int /*vertical*/, int /*limit*/); - -/* columns.c */ -extern void dlg_align_columns(char ** /* target */, int /* per_row */, int /* num_rows */); -extern void dlg_free_columns(char ** /* target */, int /* per_row */, int /* num_rows */); - -/* editbox.c */ -extern int dlg_editbox(const char * /*title*/, char *** /*list*/, int * /*rows*/, int /*height*/, int /*width*/); - -/* formbox.c */ -extern int dlg_default_formitem(DIALOG_FORMITEM * /*items*/); -extern int dlg_ordinate(const char * /*s*/); -extern void dlg_free_formitems(DIALOG_FORMITEM * /*items*/); - -/* guage.c */ -extern void * dlg_allocate_gauge(const char * /* title */, const char * /* cprompt */, int /* height */, int /* width */, int /* percent */); -extern void * dlg_reallocate_gauge(void * /* objptr */, const char * /* title */, const char * /* cprompt */, int /* height */, int /* width */, int /* percent */); -extern void dlg_free_gauge(void * /* objptr */); -extern void dlg_update_gauge(void * /* objptr */, int /* percent */); - -/* inputstr.c */ -extern bool dlg_edit_string(char * /*string*/, int * /*offset*/, int /*key*/, int /*fkey*/, bool /*force*/); -extern const int * dlg_index_columns(const char * /*string*/); -extern const int * dlg_index_wchars(const char * /*string*/); -extern int dlg_count_columns(const char * /*string*/); -extern int dlg_count_wchars(const char * /*string*/); -extern int dlg_edit_offset(char * /*string*/, int /*offset*/, int /*x_last*/); -extern int dlg_find_index(const int * /*list*/, int /*limit*/, int /*to_find*/); -extern int dlg_limit_columns(const char * /*string*/, int /*limit*/, int /*offset*/); -extern void dlg_finish_string(const char * /* string */); -extern void dlg_show_string(WINDOW * /*win*/, const char * /*string*/, int /*offset*/, chtype /*attr*/, int /*y_base*/, int /*x_base*/, int /*x_last*/, bool /*hidden*/, bool /*force*/); - -/* menubox.c */ -extern int dlg_dummy_menutext(DIALOG_LISTITEM * /*items*/, int /*current*/, char * /*newtext*/); -extern int dlg_renamed_menutext(DIALOG_LISTITEM * /*items*/, int /*current*/, char * /*newtext*/); - -/* prgbox.c */ -extern FILE * dlg_popen(const char * /*command */, const char * /*type */); - -/* rc.c */ -#ifdef HAVE_RC_FILE -extern int dlg_parse_rc(void); -extern void dlg_create_rc(const char * /*filename*/); -#endif - -/* treeview.c */ -extern int dlg_treeview(const char * /*title*/, const char * /*cprompt*/, int /*height*/, int /*width*/, int /*list_height*/, int /*item_no*/, DIALOG_LISTITEM * /*items*/, const char * /*states*/, int * /*depths*/, int /*flag*/, int * /*current_item*/); - -/* ttysize.c */ -extern int dlg_ttysize(int /* fd */, int * /* height */, int * /* width */); - -/* ui_getc.c */ -extern int dlg_getc(WINDOW * /*win*/, int * /*fkey*/); -extern int dlg_getc_callbacks(int /*ch*/, int /*fkey*/, int * /*result*/); -extern int dlg_last_getc(void); -extern void dlg_add_last_key(int /*mode*/); -extern void dlg_add_callback(DIALOG_CALLBACK * /*p*/); -extern void dlg_add_callback_ref(DIALOG_CALLBACK ** /*p*/, DIALOG_FREEBACK /* cleanup */); -extern void dlg_flush_getc(void); -extern void dlg_remove_callback(DIALOG_CALLBACK * /*p*/); -extern void dlg_killall_bg(int *retval); - -/* util.c */ -extern DIALOG_WINDOWS * _dlg_find_window(WINDOW * /* win */); -extern WINDOW * dlg_der_window(WINDOW * /*win*/, int /*height*/, int /*width*/, int /*y*/, int /*x*/); -extern WINDOW * dlg_new_modal_window(WINDOW * /*parent*/, int /*height*/, int /*width*/, int /*y*/, int /*x*/); -extern WINDOW * dlg_new_window(int /*height*/, int /*width*/, int /*y*/, int /*x*/); -extern WINDOW * dlg_sub_window(WINDOW * /*win*/, int /*height*/, int /*width*/, int /*y*/, int /*x*/); -extern bool dlg_need_separator(void); -extern char * dlg_getenv_str(const char * /*name*/); -extern char * dlg_set_result(const char * /*string*/); -extern char * dlg_strclone(const char * /*cprompt*/); -extern char * dlg_strempty(void); -extern chtype dlg_asciibox(chtype /*ch*/); -extern chtype dlg_boxchar(chtype /*ch*/); -extern chtype dlg_get_attrs(WINDOW * /*win*/); -extern const char * dlg_exitcode2s(int /*code*/); -extern const char * dlg_print_line(WINDOW * /*win*/, chtype * /*attr*/, const char * /*prompt*/, int /*lm*/, int /*rm*/, int * /*x*/); -extern int dlg_box_x_ordinate(int /*width*/); -extern int dlg_box_y_ordinate(int /*height*/); -extern int dlg_calc_list_width(int /*item_no*/, DIALOG_LISTITEM * /*items*/); -extern int dlg_calc_listw(int /*item_no*/, char ** /*items*/, int /*group*/); -extern int dlg_check_scrolled(int /* key */, int /* last */, int /* page */, bool * /* show */, int * /* offset */); -extern int dlg_count_real_columns(const char * /*text*/); -extern int dlg_default_item(char ** /*items*/, int /*llen*/); -extern int dlg_default_listitem(DIALOG_LISTITEM * /*items*/); -extern int dlg_defaultno_button(void); -extern int dlg_default_button(void); -extern int dlg_exitname2n(const char * /*name*/); -extern int dlg_getenv_num(const char * /*name*/, int * /* value */); -extern int dlg_max_input(int /*max_len*/); -extern int dlg_print_scrolled(WINDOW * /* win */, const char * /* prompt */, int /* offset */, int /* height */, int /* width */, int /* pauseopt */); -extern int dlg_set_timeout(WINDOW * /* win */, bool /* will_getc */); -extern void dlg_add_help_formitem(int * /* result */, char ** /* tag */, DIALOG_FORMITEM * /* item */); -extern void dlg_add_help_listitem(int * /* result */, char ** /* tag */, DIALOG_LISTITEM * /* item */); -extern void dlg_add_quoted(char * /*string*/); -extern void dlg_add_result(const char * /*string*/); -extern void dlg_add_separator(void); -extern void dlg_add_string(char * /*string*/); -extern void dlg_attr_clear(WINDOW * /*win*/, int /*height*/, int /*width*/, chtype /*attr*/); -extern void dlg_auto_size(const char * /*title*/, const char * /*prompt*/, int * /*height*/, int * /*width*/, int /*boxlines*/, int /*mincols*/); -extern void dlg_auto_sizefile(const char * /*title*/, const char * /*file*/, int * /*height*/, int * /*width*/, int /*boxlines*/, int /*mincols*/); -extern void dlg_beeping(void); -extern void dlg_calc_listh(int * /*height*/, int * /*list_height*/, int /*item_no*/); -extern void dlg_clear(void); -extern void dlg_clr_result(void); -extern void dlg_ctl_size(int /*height*/, int /*width*/); -extern void dlg_del_window(WINDOW * /*win*/); -extern void dlg_does_output(void); -extern void dlg_draw_bottom_box(WINDOW * /*win*/); -extern void dlg_draw_bottom_box2(WINDOW * /*win*/, chtype /*on_left*/, chtype /*on_right*/, chtype /*on_inside*/); -extern void dlg_draw_box(WINDOW * /*win*/, int /*y*/, int /*x*/, int /*height*/, int /*width*/, chtype /*boxchar*/, chtype /*borderchar*/); -extern void dlg_draw_box2(WINDOW * /*win*/, int /*y*/, int /*x*/, int /*height*/, int /*width*/, chtype /*boxchar*/, chtype /*borderchar*/, chtype /*borderchar2*/); -extern void dlg_draw_title(WINDOW *win, const char *title); -extern void dlg_exit(int /*code*/) GCC_NORETURN; -extern void dlg_item_help(const char * /*txt*/); -extern void dlg_keep_tite(FILE * /*output */); -extern void dlg_print_autowrap(WINDOW * /*win*/, const char * /*prompt*/, int /*height*/, int /*width*/); -extern void dlg_print_listitem(WINDOW * /*win*/, const char * /*text*/, int /*climit*/, bool /*first*/, int /*selected*/); -extern void dlg_print_size(int /*height*/, int /*width*/); -extern void dlg_print_text(WINDOW * /*win*/, const char * /*txt*/, int /*len*/, chtype * /*attr*/); -extern void dlg_put_backtitle(void); -extern void dlg_reset_timeout(WINDOW * /* win */); -extern void dlg_restore_vars(DIALOG_VARS * /* save */); -extern void dlg_save_vars(DIALOG_VARS * /* save */); -extern void dlg_set_focus(WINDOW * /*parent*/, WINDOW * /*win*/); -extern void dlg_tab_correct_str(char * /*prompt*/); -extern void dlg_trim_string(char * /*src*/); -extern void end_dialog(void); -extern void init_dialog(FILE * /*input*/, FILE * /*output*/); - -extern void dlg_exiterr(const char *, ...) GCC_NORETURN GCC_PRINTFLIKE(1,2); - -#ifdef HAVE_COLOR -extern chtype dlg_color_pair(int /*foreground*/, int /*background*/); -extern int dlg_color_count(void); -extern void dlg_color_setup(void); -extern void dlg_draw_shadow(WINDOW * /*win*/, int /*height*/, int /*width*/, int /*y*/, int /*x*/); -#endif - -#ifdef HAVE_STRCASECMP -#define dlg_strcmp(a,b) strcasecmp(a,b) -#else -extern int dlg_strcmp(const char * /*a*/, const char * /*b*/); -#endif - -#ifdef HAVE_DLG_TRACE -#define DLG_TRACE(params) dlg_trace_msg params -extern void dlg_trace_msg(const char *fmt, ...) GCC_PRINTFLIKE(1,2); -extern void dlg_trace_va_msg(const char *fmt, va_list ap); -#define DLG_TRACE2S(name,value) dlg_trace_2s (name,value) -#define DLG_TRACE2N(name,value) dlg_trace_2n (name,value) -extern void dlg_trace_2s(const char * /*name*/, const char * /*value*/); -extern void dlg_trace_2n(const char * /*name*/, int /*value*/); -extern void dlg_trace_win(WINDOW * /*win*/); -extern void dlg_trace_chr(int /*ch*/, int /*fkey*/); -extern void dlg_trace(const char * /*fname*/); -#else -#define DLG_TRACE(params) /* nothing */ -#define DLG_TRACE2S(name,value) /* nothing */ -#define DLG_TRACE2N(name,value) /* nothing */ -#define dlg_trace_va_msg(fmt, ap) /* nothing */ -#define dlg_trace_win(win) /* nothing */ -#define dlg_trace_chr(ch,fkey) /* nothing */ -#define dlg_trace(fname) /* nothing */ -#endif - -#ifdef KEY_RESIZE -extern void _dlg_resize_cleanup(WINDOW * /*win*/); -extern void dlg_move_window(WINDOW * /*win*/, int /*height*/, int /*width*/, int /*y*/, int /*x*/); -extern void dlg_will_resize(WINDOW * /*win*/); -#endif - -/* - * Normally "enter" means "ok". Use this macro to handle the explicit - * check for DLGK_ENTER: - */ -#define dlg_enter_buttoncode(code) (dialog_vars.nook ? DLG_EXIT_OK : dlg_ok_buttoncode(code)) - -/* - * The following stuff is needed for mouse support - */ -typedef struct mseRegion { - int x, y, X, Y, code; - int mode, step_x, step_y; - struct mseRegion *next; -} mseRegion; - -#if defined(NCURSES_MOUSE_VERSION) - -#define mouse_open() mousemask(BUTTON1_PRESSED, (mmask_t *) 0) -#define mouse_close() mousemask(0, (mmask_t *) 0) - -extern mseRegion * dlg_mouse_mkregion (int /*y*/, int /*x*/, int /*height*/, int /*width*/, int /*code*/); -extern void dlg_mouse_free_regions (void); -extern void dlg_mouse_mkbigregion (int /*y*/, int /*x*/, int /*height*/, int /*width*/, int /*code*/, int /*step_x*/, int /*step_y*/, int /*mode*/); -extern void dlg_mouse_setbase (int /*x*/, int /*y*/); -extern void dlg_mouse_setcode (int /*code*/); - -#define USE_MOUSE 1 - -#else - -#define mouse_open() /*nothing*/ -#define mouse_close() /*nothing*/ -#define dlg_mouse_free_regions() /* nothing */ -#define dlg_mouse_mkregion(y, x, height, width, code) /*nothing*/ -#define dlg_mouse_mkbigregion(y, x, height, width, code, step_x, step_y, mode) /*nothing*/ -#define dlg_mouse_setbase(x, y) /*nothing*/ -#define dlg_mouse_setcode(c) /*nothing*/ - -#define USE_MOUSE 0 - -#endif - -extern mseRegion *dlg_mouse_region (int /*y*/, int /*x*/); -extern mseRegion *dlg_mouse_bigregion (int /*y*/, int /*x*/); -extern int dlg_mouse_wgetch (WINDOW * /*win*/, int * /*fkey*/); -extern int dlg_mouse_wgetch_nowait (WINDOW * /*win*/, int * /*fkey*/); - -#define mouse_mkbutton(y,x,len,code) dlg_mouse_mkregion(y,x,1,len,code); - -/* - * This is the base for fictitious keys, which activate - * the buttons. - * - * Mouse-generated keys are the following: - * -- the first 32 are used as numbers, in addition to '0'-'9' - * -- uppercase chars are used to invoke the button (M_EVENT + 'O') - */ -#define M_EVENT (DLGK_max + 1) - -/* - * The `flag' parameter in checklist is used to select between - * radiolist and checklist - */ -#define FLAG_CHECK 1 -#define FLAG_RADIO 0 - -/* - * This is used only for debugging (FIXME: should have a separate header). - */ -#ifdef NO_LEAKS -extern void _dlg_inputstr_leaks(void); -#if defined(NCURSES_VERSION) -#if defined(HAVE_CURSES_EXIT) -/* just use curses_exit() */ -#elif defined(HAVE__NC_FREE_AND_EXIT) -extern void _nc_free_and_exit(int); /* nc_alloc.h normally not installed */ -#define curses_exit(code) _nc_free_and_exit(code) -#endif -#endif /* NCURSES_VERSION */ -#endif /* NO_LEAKS */ - -#ifdef __cplusplus -} -#endif -/* *INDENT-ON* */ - -#endif /* DIALOG_H_included */ diff --git a/contrib/dialog/dialog.lsm b/contrib/dialog/dialog.lsm deleted file mode 100644 index be527abbdf90..000000000000 --- a/contrib/dialog/dialog.lsm +++ /dev/null @@ -1,23 +0,0 @@ -Begin3 -Title: dialog - Display dialog boxes in scripts -Version: 1.0-20060221 -Entered-date: 21FEB06 -Description: Dialog is a program that will let you present a variety - of questions or display messages in nice looking color - non-graphical dialog boxes from a shell or perl script. - Various dialog boxes can be presented such as yes/no, menu, - input, message, checklist, radiolist, and more. - - This program is based on the no longer maintained cdialog, but - contains bug fixes and more features. -Keywords: dialog, cdialog, shell, script, window -Author: Originally Savio Lam for the ancient version -Maintained-by: Thomas E. Dickey <dickey@invisible-island.net> - Vila, Santiago <sanvila@debian.org> -Primary-site: http://invisible-island.net/dialog/ - http://packages.debian.org/ -Alternate-site: ftp://ftp.us.debian.org/debian/pool/main/d/dialog/ -Original-site: ftp://sunsite.unc.edu/pub/Linux/utils/shell -Platforms: Linux *nix, OS/2 EMX -Copying-policy: LGPL -End diff --git a/contrib/dialog/dialog.pl b/contrib/dialog/dialog.pl deleted file mode 100644 index da0e6444ab9b..000000000000 --- a/contrib/dialog/dialog.pl +++ /dev/null @@ -1,600 +0,0 @@ -# Functions that handle calling dialog(1) -*-perl-*- -# $Id: dialog.pl,v 1.18 2018/06/12 21:01:58 tom Exp $ -################################################################################ -# Copyright 2018 Thomas E. Dickey -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License, version 2.1 -# as published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this program; if not, write to -# Free Software Foundation, Inc. -# 51 Franklin St., Fifth Floor -# Boston, MA 02110, USA. -################################################################################ -# The "rhs_" functions, as well as return_output originally came from Redhat -# 4.0, e.g., -# http://www.ibiblio.org/pub/historic-linux/distributions/redhat-4.0/i386/live/usr/bin/Xconfigurator.pl -# The other functions were added to make this more useful for demonstrations. - -# These comments are from the original file: -#------------------------------------------------------------------------------ -# Return values are 1 for success and 0 for failure (or cancel) -# Resultant text (if any) is in dialog_result - -# Unfortunately, the gauge requires use of /bin/sh to get going. -# I didn't bother to make the others shell-free, although it -# would be simple to do. - -# Note that dialog generally returns 0 for success, so I invert the -# sense of the return code for more readable boolean expressions. -#------------------------------------------------------------------------------ - -use warnings; -use strict; -use diagnostics; - -our $DIALOG = "dialog"; -our $GAUGE; -our $gauge_width; -our $scr_lines = 24; -our $scr_cols = 80; -our @dialog_result; -our $trace = 0; - -require "flush.pl"; - -sub trace { - if ($trace) { - if ( open TRACE, ">>dialog.log" ) { - printf TRACE $_[0], @_[ 1 .. $#_ ]; - close TRACE; - } - } -} - -sub quoted($) { - my $text = shift; - $text =~ s/[\r\n]+/\n/g; - $text =~ s/[^\n\t -~]/?/g; - $text =~ s/([\\"])/\\$1/g; - return sprintf "\"%s\"", $text; -} - -sub screensize() { - my $params = `$DIALOG --stdout --print-maxsize`; - $params =~ s/\s+$//; - $params =~ s/^[^:]*:\s+//; - my @params = split /,\s+/, $params; - if ( $#params == 1 ) { - $scr_lines = $params[0]; - $scr_cols = $params[1]; - } - else { - $scr_lines = 24; - $scr_cols = 80; - } -} - -sub height_of($$) { - my $width = shift; - my $message = shift; - my $command = - "$DIALOG --stdout --print-text-size " - . "ed($message) - . " $scr_lines $width 2>&1"; - my $params = `$command`; - my @params = split( /\s/, $params ); - return $params[0]; -} - -sub rhs_clear { - return system("$DIALOG --clear"); -} - -sub rhs_textbox { - my ( $title, $file, $width, $height ) = @_; - - $width = int($width); - $height = int($height); - system( "$DIALOG --title " - . "ed($title) - . " --textbox $file $height $width" ); - - return 1; -} - -sub rhs_msgbox { - my ( $title, $message, $width ) = @_; - my ( $tmp, $height ); - - $width = int($width); - $message = &rhs_wordwrap( $message, $width ); - $height = 5 + &height_of( $width, $message ); - - $tmp = - system( "$DIALOG --title " - . "ed($title) - . " --msgbox " - . "ed($message) - . " $height $width" ); - if ($tmp) { - return 0; - } - else { - return 1; - } -} - -sub rhs_infobox { - my ( $title, $message, $width ) = @_; - my ( $tmp, $height ); - - $width = int($width); - $message = &rhs_wordwrap( $message, $width ); - $height = 2 + &height_of( $width, $message ); - - return - system( "$DIALOG --title " - . "ed($title) - . " --infobox " - . "ed($message) - . " $height $width" ); -} - -sub rhs_yesno { - my ( $title, $message, $width ) = @_; - my ( $tmp, $height ); - - $width = int($width); - $message = &rhs_wordwrap( $message, $width ); - $height = 4 + &height_of( $width, $message ); - - $tmp = - system( "$DIALOG --title " - . "ed($title) - . " --yesno " - . "ed($message) - . " $height $width" ); - - # Dumb: dialog returns 0 for "yes" and 1 for "no" - if ( !$tmp ) { - return 1; - } - else { - return 0; - } -} - -sub rhs_gauge { - my ( $title, $message, $width, $percent ) = @_; - my ( $tmp, $height ); - - $width = int($width); - $gauge_width = $width; - - $message = &rhs_wordwrap( $message, $width ); - $height = 5 + &height_of( $width, $message ); - - open( $GAUGE, - "|$DIALOG --title " - . "ed($title) - . " --gauge " - . "ed($message) - . " $height $width $percent" ); -} - -sub rhs_update_gauge { - my ($percent) = @_; - - &printflush( $GAUGE, "$percent\n" ); -} - -sub rhs_update_gauge_and_message { - my ( $message, $percent ) = @_; - - $message = &rhs_wordwrap( $message, $gauge_width ); - $message =~ s/\n/\\n/g; - &printflush( $GAUGE, "XXX\n$percent\n$message\nXXX\n" ); -} - -sub rhs_stop_gauge { - close $GAUGE; -} - -sub rhs_inputbox { - my ( $title, $message, $width, $instr ) = @_; - my ( $tmp, $height ); - - $width = int($width); - $message = &rhs_wordwrap( $message, $width ); - $height = 7 + &height_of( $width, $message ); - - return &return_output( 0, - "$DIALOG --title " - . "ed($title) - . " --inputbox " - . "ed($message) - . " $height $width " - . "ed($instr) ); -} - -sub rhs_menu { - my ( $title, $message, $width, $numitems ) = @_; - my ( $i, $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - $numitems = int($numitems); - - shift; - shift; - shift; - shift; - - @list = (); - for ( $i = 0 ; $i < $numitems ; $i++ ) { - $ent = shift; - $list[@list] = "ed($ent); - $ent = shift; - $list[@list] = "ed($ent); - } - - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( 0, - "$DIALOG --title " - . "ed($title) - . " --menu " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_menul { - my ( $title, $message, $width, $numitems ) = @_; - my ( $i, $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - $numitems = int($numitems); - - shift; - shift; - shift; - shift; - - @list = (); - for ( $i = 0 ; $i < $numitems ; $i++ ) { - $ent = shift; - $list[@list] = "ed($ent); - $list[@list] = "ed(""); - } - - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( 0, - "$DIALOG --title " - . "ed($title) - . " --menu " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_menua { - my ( $title, $message, $width, %items ) = @_; - my ( $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - @list = (); - foreach $ent ( sort keys(%items) ) { - $list[@list] = "ed($ent); - $list[@list] = "ed( $items{$ent} ); - } - - my $numitems = keys(%items); - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( 0, - "$DIALOG --title " - . "ed($title) - . " --menu " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_checklist { - my ( $title, $message, $width, $numitems ) = @_; - my ( $i, $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - $numitems = int($numitems); - - shift; - shift; - shift; - shift; - - @list = (); - for ( $i = 0 ; $i < $numitems ; $i++ ) { - $ent = shift; - $list[@list] = "ed($ent); - $ent = shift; - $list[@list] = "ed($ent); - $ent = shift; - if ($ent) { - $list[@list] = "ON"; - } - else { - $list[@list] = "OFF"; - } - } - - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( "list", - "$DIALOG --title " - . "ed($title) - . " --separate-output --checklist " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_checklistl { - my ( $title, $message, $width, $numitems ) = @_; - my ( $i, $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - $numitems = int($numitems); - - shift; - shift; - shift; - shift; - - @list = (); - for ( $i = 0 ; $i < $numitems ; $i++ ) { - $ent = shift; - $list[@list] = "ed($ent); - $list[@list] = "ed(""); - $list[@list] = "OFF"; - } - - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - return &return_output( "list", - "$DIALOG --title " - . "ed($title) - . " --separate-output --checklist " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_checklista { - my ( $title, $message, $width, %items ) = @_; - my ( $tmp, $ent, $height, $listheight, $menuheight, @list ); - - shift; - shift; - shift; - shift; - - @list = (); - foreach $ent ( sort keys(%items) ) { - $list[@list] = "ed($ent); - $list[@list] = "ed( $items{$ent} ); - $list[@list] = "OFF"; - } - - my $numitems = keys(%items); - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( "list", - "$DIALOG --title " - . "ed($title) - . " --separate-output --checklist " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub rhs_radiolist { - my ( $title, $message, $width, $numitems ) = @_; - my ( $i, $tmp, $ent, $height, $listheight, $menuheight, @list ); - - $width = int($width); - $numitems = int($numitems); - - shift; - shift; - shift; - shift; - - @list = (); - for ( $i = 0 ; $i < $numitems ; $i++ ) { - $ent = shift; - $list[@list] = "ed($ent); - $ent = shift; - $list[@list] = "ed($ent); - $ent = shift; - if ($ent) { - $list[@list] = "ON"; - } - else { - $list[@list] = "OFF"; - } - } - - $message = &rhs_wordwrap( $message, $width ); - $listheight = &height_of( $width, $message ); - $height = 6 + $listheight + $numitems; - - if ( $height <= $scr_lines ) { - $menuheight = $numitems; - } - else { - $height = $scr_lines; - $menuheight = $scr_lines - $listheight - 6; - } - - return &return_output( 0, - "$DIALOG --title " - . "ed($title) - . " --radiolist " - . "ed($message) - . " $height $width $menuheight @list" ); -} - -sub return_output { - my ( $listp, $command ) = @_; - my ($res) = 1; - - pipe( PARENT_READER, CHILD_WRITER ); - - # We have to fork (as opposed to using "system") so that the parent - # process can read from the pipe to avoid deadlock. - my ($pid) = fork; - if ( $pid == 0 ) { # child - close(PARENT_READER); - open( STDERR, ">&CHILD_WRITER" ); - exec($command); - die("no exec"); - } - if ( $pid > 0 ) { # parent - close(CHILD_WRITER); - if ($listp) { - @dialog_result = (); - while (<PARENT_READER>) { - chop; - $dialog_result[@dialog_result] = $_; - } - } - else { - @dialog_result = <PARENT_READER>; - } - close(PARENT_READER); - waitpid( $pid, 0 ); - $res = $?; - } - - # Again, dialog returns results backwards - if ( !$res ) { - return 1; - } - else { - return 0; - } -} - -sub rhs_wordwrap { - my ( $intext, $width ) = @_; - my ( $outtext, $i, $j, @lines, $wrap, @words, $pos, $pad ); - - &trace( "rhs_wordwrap\n\tintext:%s\n\twidth:%d\n", $intext, $width ); - &screensize; - $width = int($width); - $outtext = ""; - $pad = 3; # leave 3 spaces around each line - $pos = $pad; # current insert position - $wrap = 0; # 1 if we have been auto wrapping - my $insert_nl = 0; # 1 if we just did an absolute - # and we should preface any new text - # with a new line - @lines = split( /\n/, $intext ); - - for ( $i = 0 ; $i <= $#lines ; $i++ ) { - - if ( $lines[$i] =~ /^>/ ) { - $outtext .= "\n" if ($insert_nl); - $outtext .= "\n" if ($wrap); - $lines[$i] =~ /^>(.*)$/; - $outtext .= $1; - $insert_nl = 1; - $wrap = 0; - $pos = $pad; - } - else { - $wrap = 1; - @words = split( /\s+/, $lines[$i] ); - for ( $j = 0 ; $j <= $#words ; $j++ ) { - if ($insert_nl) { - $outtext .= "\n"; - $insert_nl = 0; - } - if ( ( length( $words[$j] ) + $pos ) > $width - $pad ) { - $outtext .= "\n"; - $pos = $pad; - } - $outtext .= $words[$j] . " "; - $pos += length( $words[$j] ) + 1; - } - } - } - - &trace( "\touttext:%s\n", $outtext ); - return $outtext; -} - -############ -1; diff --git a/contrib/dialog/dlg_colors.h b/contrib/dialog/dlg_colors.h deleted file mode 100644 index de91627afaa5..000000000000 --- a/contrib/dialog/dlg_colors.h +++ /dev/null @@ -1,280 +0,0 @@ -/* - * $Id: dlg_colors.h,v 1.18 2019/09/23 09:14:30 tom Exp $ - * - * colors.h -- color attribute definitions - * - * Copyright 2000-2011,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#ifndef COLORS_H_included -#define COLORS_H_included 1 - -#include <dialog.h> - -/* - * Default color definitions (DLGC means "Dialog Color") - * - * DLGC_FG_xxx = foreground for "xxx" - * DLGC_BG_xxx = background for "xxx" - * DLGC_HL_xxx = highlight for "xxx" - * DLGC_UL_xxx = underline for "xxx" - * DLGC_RV_xxx = reverse for "xxx" - */ -#define DLGC_FG_SCREEN COLOR_CYAN -#define DLGC_BG_SCREEN COLOR_BLUE -#define DLGC_HL_SCREEN TRUE -#define DLGC_UL_SCREEN FALSE -#define DLGC_RV_SCREEN FALSE - -#define DLGC_FG_SHADOW COLOR_BLACK -#define DLGC_BG_SHADOW COLOR_BLACK -#define DLGC_HL_SHADOW TRUE -#define DLGC_UL_SHADOW FALSE -#define DLGC_RV_SHADOW FALSE - -#define DLGC_FG_DIALOG COLOR_BLACK -#define DLGC_BG_DIALOG COLOR_WHITE -#define DLGC_HL_DIALOG FALSE -#define DLGC_UL_DIALOG FALSE -#define DLGC_RV_DIALOG FALSE - -#define DLGC_FG_TITLE COLOR_BLUE -#define DLGC_BG_TITLE COLOR_WHITE -#define DLGC_HL_TITLE TRUE -#define DLGC_UL_TITLE FALSE -#define DLGC_RV_TITLE FALSE - -#define DLGC_FG_BORDER COLOR_WHITE -#define DLGC_BG_BORDER COLOR_WHITE -#define DLGC_HL_BORDER TRUE -#define DLGC_UL_BORDER FALSE -#define DLGC_RV_BORDER FALSE - -#define DLGC_FG_BORDER2 DLGC_FG_DIALOG -#define DLGC_BG_BORDER2 DLGC_BG_DIALOG -#define DLGC_HL_BORDER2 DLGC_HL_DIALOG -#define DLGC_UL_BORDER2 FALSE -#define DLGC_RV_BORDER2 FALSE - -#define DLGC_FG_BUTTON_ACTIVE COLOR_WHITE -#define DLGC_BG_BUTTON_ACTIVE COLOR_BLUE -#define DLGC_HL_BUTTON_ACTIVE TRUE -#define DLGC_UL_BUTTON_ACTIVE FALSE -#define DLGC_RV_BUTTON_ACTIVE FALSE - -#define DLGC_FG_BUTTON_INACTIVE COLOR_BLACK -#define DLGC_BG_BUTTON_INACTIVE COLOR_WHITE -#define DLGC_HL_BUTTON_INACTIVE FALSE -#define DLGC_UL_BUTTON_INACTIVE FALSE -#define DLGC_RV_BUTTON_INACTIVE FALSE - -#define DLGC_FG_BUTTON_KEY_ACTIVE COLOR_WHITE -#define DLGC_BG_BUTTON_KEY_ACTIVE COLOR_BLUE -#define DLGC_HL_BUTTON_KEY_ACTIVE TRUE -#define DLGC_UL_BUTTON_KEY_ACTIVE FALSE -#define DLGC_RV_BUTTON_KEY_ACTIVE FALSE - -#define DLGC_FG_BUTTON_KEY_INACTIVE COLOR_RED -#define DLGC_BG_BUTTON_KEY_INACTIVE COLOR_WHITE -#define DLGC_HL_BUTTON_KEY_INACTIVE FALSE -#define DLGC_UL_BUTTON_KEY_INACTIVE FALSE -#define DLGC_RV_BUTTON_KEY_INACTIVE FALSE - -#define DLGC_FG_BUTTON_LABEL_ACTIVE COLOR_YELLOW -#define DLGC_BG_BUTTON_LABEL_ACTIVE COLOR_BLUE -#define DLGC_HL_BUTTON_LABEL_ACTIVE TRUE -#define DLGC_UL_BUTTON_LABEL_ACTIVE FALSE -#define DLGC_RV_BUTTON_LABEL_ACTIVE FALSE - -#define DLGC_FG_BUTTON_LABEL_INACTIVE COLOR_BLACK -#define DLGC_BG_BUTTON_LABEL_INACTIVE COLOR_WHITE -#define DLGC_HL_BUTTON_LABEL_INACTIVE TRUE -#define DLGC_UL_BUTTON_LABEL_INACTIVE FALSE -#define DLGC_RV_BUTTON_LABEL_INACTIVE FALSE - -#define DLGC_FG_FORM_ITEM_READONLY COLOR_CYAN -#define DLGC_BG_FORM_ITEM_READONLY COLOR_WHITE -#define DLGC_HL_FORM_ITEM_READONLY TRUE -#define DLGC_UL_FORM_ITEM_READONLY FALSE -#define DLGC_RV_FORM_ITEM_READONLY FALSE - -#define DLGC_FG_INPUTBOX COLOR_BLACK -#define DLGC_BG_INPUTBOX COLOR_WHITE -#define DLGC_HL_INPUTBOX FALSE -#define DLGC_UL_INPUTBOX FALSE -#define DLGC_RV_INPUTBOX FALSE - -#define DLGC_FG_INPUTBOX_BORDER COLOR_BLACK -#define DLGC_BG_INPUTBOX_BORDER COLOR_WHITE -#define DLGC_HL_INPUTBOX_BORDER FALSE -#define DLGC_UL_INPUTBOX_BORDER FALSE -#define DLGC_RV_INPUTBOX_BORDER FALSE - -#define DLGC_FG_INPUTBOX_BORDER2 DLGC_FG_INPUTBOX -#define DLGC_BG_INPUTBOX_BORDER2 DLGC_BG_INPUTBOX -#define DLGC_HL_INPUTBOX_BORDER2 DLGC_HL_INPUTBOX -#define DLGC_UL_INPUTBOX_BORDER2 FALSE -#define DLGC_RV_INPUTBOX_BORDER2 FALSE - -#define DLGC_FG_SEARCHBOX COLOR_BLACK -#define DLGC_BG_SEARCHBOX COLOR_WHITE -#define DLGC_HL_SEARCHBOX FALSE -#define DLGC_UL_SEARCHBOX FALSE -#define DLGC_RV_SEARCHBOX FALSE - -#define DLGC_FG_SEARCHBOX_TITLE COLOR_BLUE -#define DLGC_BG_SEARCHBOX_TITLE COLOR_WHITE -#define DLGC_HL_SEARCHBOX_TITLE TRUE -#define DLGC_UL_SEARCHBOX_TITLE FALSE -#define DLGC_RV_SEARCHBOX_TITLE FALSE - -#define DLGC_FG_SEARCHBOX_BORDER COLOR_WHITE -#define DLGC_BG_SEARCHBOX_BORDER COLOR_WHITE -#define DLGC_HL_SEARCHBOX_BORDER TRUE -#define DLGC_UL_SEARCHBOX_BORDER FALSE -#define DLGC_RV_SEARCHBOX_BORDER FALSE - -#define DLGC_FG_SEARCHBOX_BORDER2 DLGC_FG_SEARCHBOX -#define DLGC_BG_SEARCHBOX_BORDER2 DLGC_BG_SEARCHBOX -#define DLGC_HL_SEARCHBOX_BORDER2 DLGC_HL_SEARCHBOX -#define DLGC_UL_SEARCHBOX_BORDER2 FALSE -#define DLGC_RV_SEARCHBOX_BORDER2 FALSE - -#define DLGC_FG_POSITION_INDICATOR COLOR_BLUE -#define DLGC_BG_POSITION_INDICATOR COLOR_WHITE -#define DLGC_HL_POSITION_INDICATOR TRUE -#define DLGC_UL_POSITION_INDICATOR FALSE -#define DLGC_RV_POSITION_INDICATOR FALSE - -#define DLGC_FG_MENUBOX COLOR_BLACK -#define DLGC_BG_MENUBOX COLOR_WHITE -#define DLGC_HL_MENUBOX FALSE -#define DLGC_UL_MENUBOX FALSE -#define DLGC_RV_MENUBOX FALSE - -#define DLGC_FG_MENUBOX_BORDER COLOR_WHITE -#define DLGC_BG_MENUBOX_BORDER COLOR_WHITE -#define DLGC_HL_MENUBOX_BORDER TRUE -#define DLGC_UL_MENUBOX_BORDER FALSE -#define DLGC_RV_MENUBOX_BORDER FALSE - -#define DLGC_FG_MENUBOX_BORDER2 DLGC_FG_MENUBOX -#define DLGC_BG_MENUBOX_BORDER2 DLGC_BG_MENUBOX -#define DLGC_HL_MENUBOX_BORDER2 DLGC_HL_MENUBOX -#define DLGC_UL_MENUBOX_BORDER2 FALSE -#define DLGC_RV_MENUBOX_BORDER2 FALSE - -#define DLGC_FG_ITEM COLOR_BLACK -#define DLGC_BG_ITEM COLOR_WHITE -#define DLGC_HL_ITEM FALSE -#define DLGC_UL_ITEM FALSE -#define DLGC_RV_ITEM FALSE - -#define DLGC_FG_ITEM_SELECTED COLOR_WHITE -#define DLGC_BG_ITEM_SELECTED COLOR_BLUE -#define DLGC_HL_ITEM_SELECTED TRUE -#define DLGC_UL_ITEM_SELECTED FALSE -#define DLGC_RV_ITEM_SELECTED FALSE - -#define DLGC_FG_TAG COLOR_BLUE -#define DLGC_BG_TAG COLOR_WHITE -#define DLGC_HL_TAG TRUE -#define DLGC_UL_TAG FALSE -#define DLGC_RV_TAG FALSE - -#define DLGC_FG_TAG_SELECTED COLOR_YELLOW -#define DLGC_BG_TAG_SELECTED COLOR_BLUE -#define DLGC_HL_TAG_SELECTED TRUE -#define DLGC_UL_TAG_SELECTED FALSE -#define DLGC_RV_TAG_SELECTED FALSE - -#define DLGC_FG_TAG_KEY COLOR_RED -#define DLGC_BG_TAG_KEY COLOR_WHITE -#define DLGC_HL_TAG_KEY FALSE -#define DLGC_UL_TAG_KEY FALSE -#define DLGC_RV_TAG_KEY FALSE - -#define DLGC_FG_TAG_KEY_SELECTED COLOR_RED -#define DLGC_BG_TAG_KEY_SELECTED COLOR_BLUE -#define DLGC_HL_TAG_KEY_SELECTED TRUE -#define DLGC_UL_TAG_KEY_SELECTED FALSE -#define DLGC_RV_TAG_KEY_SELECTED FALSE - -#define DLGC_FG_CHECK COLOR_BLACK -#define DLGC_BG_CHECK COLOR_WHITE -#define DLGC_HL_CHECK FALSE -#define DLGC_UL_CHECK FALSE -#define DLGC_RV_CHECK FALSE - -#define DLGC_FG_CHECK_SELECTED COLOR_WHITE -#define DLGC_BG_CHECK_SELECTED COLOR_BLUE -#define DLGC_HL_CHECK_SELECTED TRUE -#define DLGC_UL_CHECK_SELECTED FALSE -#define DLGC_RV_CHECK_SELECTED FALSE - -#define DLGC_FG_UARROW COLOR_GREEN -#define DLGC_BG_UARROW COLOR_WHITE -#define DLGC_HL_UARROW TRUE -#define DLGC_UL_UARROW FALSE -#define DLGC_RV_UARROW FALSE - -#define DLGC_FG_DARROW COLOR_GREEN -#define DLGC_BG_DARROW COLOR_WHITE -#define DLGC_HL_DARROW TRUE -#define DLGC_UL_DARROW FALSE -#define DLGC_RV_DARROW FALSE - -#define DLGC_FG_ITEMHELP COLOR_WHITE -#define DLGC_BG_ITEMHELP COLOR_BLACK -#define DLGC_HL_ITEMHELP FALSE -#define DLGC_UL_ITEMHELP FALSE -#define DLGC_RV_ITEMHELP FALSE - -#define DLGC_FG_FORM_ACTIVE_TEXT COLOR_WHITE -#define DLGC_BG_FORM_ACTIVE_TEXT COLOR_BLUE -#define DLGC_HL_FORM_ACTIVE_TEXT TRUE -#define DLGC_UL_FORM_ACTIVE_TEXT FALSE -#define DLGC_RV_FORM_ACTIVE_TEXT FALSE - -#define DLGC_FG_FORM_TEXT COLOR_WHITE -#define DLGC_BG_FORM_TEXT COLOR_CYAN -#define DLGC_HL_FORM_TEXT TRUE -#define DLGC_UL_FORM_TEXT FALSE -#define DLGC_RV_FORM_TEXT FALSE - -#define DLGC_FG_GAUGE COLOR_BLUE -#define DLGC_BG_GAUGE COLOR_WHITE -#define DLGC_HL_GAUGE TRUE -#define DLGC_UL_GAUGE FALSE -#define DLGC_RV_GAUGE FALSE - -/* End of default color definitions */ - -/* - * Global variables - */ - -typedef struct { - const char *name; - int value; -} color_names_st; - -#endif /* COLORS_H_included */ diff --git a/contrib/dialog/dlg_internals.h b/contrib/dialog/dlg_internals.h deleted file mode 100644 index 4c6fb9e09615..000000000000 --- a/contrib/dialog/dlg_internals.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: dlg_internals.h,v 1.3 2019/08/08 21:29:41 tom Exp $ - * - * dlg_internals.h -- runtime binding support for dialog - * - * Copyright 2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#ifndef DLG_INTERNALS_H_included -#define DLG_INTERNALS_H_included 1 - -#include <dialog.h> - -#define TableSize(name) (sizeof(name)/sizeof((name)[0])) - -/* *INDENT-OFF* */ -#define resizeit(name, NAME) \ - name = ((NAME >= old_##NAME) \ - ? (NAME - (old_##NAME - old_##name)) \ - : old_##name) - -#define AddLastKey() \ - if (dialog_vars.last_key) { \ - if (dlg_need_separator()) \ - dlg_add_separator(); \ - dlg_add_last_key(-1); \ - } - - -/* *INDENT-ON* */ - -#endif /* DLG_INTERNALS_H_included */ diff --git a/contrib/dialog/dlg_keys.c b/contrib/dialog/dlg_keys.c deleted file mode 100644 index e2706568fc61..000000000000 --- a/contrib/dialog/dlg_keys.c +++ /dev/null @@ -1,973 +0,0 @@ -/* - * $Id: dlg_keys.c,v 1.58 2020/11/26 17:11:56 Glenn.Herteg Exp $ - * - * dlg_keys.c -- runtime binding support for dialog - * - * Copyright 2006-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> -#include <dlg_internals.h> - -#define LIST_BINDINGS struct _list_bindings - -#define CHR_BACKSLASH '\\' -#define IsOctal(ch) ((ch) >= '0' && (ch) <= '7') - -LIST_BINDINGS { - LIST_BINDINGS *link; - WINDOW *win; /* window on which widget gets input */ - const char *name; /* widget name */ - bool buttons; /* true only for dlg_register_buttons() */ - DLG_KEYS_BINDING *binding; /* list of bindings */ -}; - -#define WILDNAME "*" -static LIST_BINDINGS *all_bindings; -static const DLG_KEYS_BINDING end_keys_binding = END_KEYS_BINDING; - -/* - * For a given named widget's window, associate a binding table. - */ -void -dlg_register_window(WINDOW *win, const char *name, DLG_KEYS_BINDING * binding) -{ - LIST_BINDINGS *p, *q; - - for (p = all_bindings, q = 0; p != 0; q = p, p = p->link) { - if (p->win == win && !strcmp(p->name, name)) { - p->binding = binding; - return; - } - } - /* add built-in bindings at the end of the list (see compare_bindings). */ - if ((p = dlg_calloc(LIST_BINDINGS, 1)) != 0) { - p->win = win; - p->name = name; - p->binding = binding; - if (q != 0) { - q->link = p; - } else { - all_bindings = p; - } - } -#if defined(HAVE_DLG_TRACE) && defined(HAVE_RC_FILE) - /* - * Trace the binding information assigned to this window. For most widgets - * there is only one binding table. forms have two, so the trace will be - * longer. Since compiled-in bindings are only visible when the widget is - * registered, there is no other way to see what bindings are available, - * than by running dialog and tracing it. - */ - DLG_TRACE(("# dlg_register_window %s\n", name)); - dlg_dump_keys(dialog_state.trace_output); - dlg_dump_window_keys(dialog_state.trace_output, win); - DLG_TRACE(("# ...done dlg_register_window %s\n", name)); -#endif -} - -/* - * Unlike dlg_lookup_key(), this looks for either widget-builtin or rc-file - * definitions, depending on whether 'win' is null. - */ -static int -key_is_bound(WINDOW *win, const char *name, int curses_key, int function_key) -{ - LIST_BINDINGS *p; - - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == win && !dlg_strcmp(p->name, name)) { - int n; - for (n = 0; p->binding[n].is_function_key >= 0; ++n) { - if (p->binding[n].curses_key == curses_key - && p->binding[n].is_function_key == function_key) { - return TRUE; - } - } - } - } - return FALSE; -} - -/* - * Call this function after dlg_register_window(), for the list of button - * labels associated with the widget. - * - * Ensure that dlg_lookup_key() will not accidentally translate a key that - * we would like to use for a button abbreviation to some other key, e.g., - * h/j/k/l for navigation into a cursor key. Do this by binding the key - * to itself. - * - * See dlg_char_to_button(). - */ -void -dlg_register_buttons(WINDOW *win, const char *name, const char **buttons) -{ - int n; - LIST_BINDINGS *p; - DLG_KEYS_BINDING *q; - - if (buttons == 0) - return; - - for (n = 0; buttons[n] != 0; ++n) { - int curses_key = dlg_button_to_char(buttons[n]); - - /* ignore binding if there is no key to bind */ - if (curses_key < 0) - continue; - - /* ignore multibyte characters */ - if (curses_key >= KEY_MIN) - continue; - - /* if it is not bound in the widget, skip it (no conflicts) */ - if (!key_is_bound(win, name, curses_key, FALSE)) - continue; - -#ifdef HAVE_RC_FILE - /* if it is bound in the rc-file, skip it */ - if (key_is_bound(0, name, curses_key, FALSE)) - continue; -#endif - - if ((p = dlg_calloc(LIST_BINDINGS, 1)) != 0) { - if ((q = dlg_calloc(DLG_KEYS_BINDING, 2)) != 0) { - q[0].is_function_key = 0; - q[0].curses_key = curses_key; - q[0].dialog_key = curses_key; - q[1] = end_keys_binding; - - p->win = win; - p->name = name; - p->buttons = TRUE; - p->binding = q; - - /* put these at the beginning, to override the widget's table */ - p->link = all_bindings; - all_bindings = p; - } else { - free(p); - } - } - } -} - -/* - * Remove the bindings for a given window. - */ -void -dlg_unregister_window(WINDOW *win) -{ - LIST_BINDINGS *p, *q; - - for (p = all_bindings, q = 0; p != 0; p = p->link) { - if (p->win == win) { - if (q != 0) { - q->link = p->link; - } else { - all_bindings = p->link; - } - /* the user-defined and buttons-bindings all are length=1 */ - if (p->binding[1].is_function_key < 0) - free(p->binding); - free(p); - dlg_unregister_window(win); - break; - } - q = p; - } -} - -/* - * Call this after wgetch(), using the same window pointer and passing - * the curses-key. - * - * If there is no binding associated with the widget, it simply returns - * the given curses-key. - * - * Parameters: - * win is the window on which the wgetch() was done. - * curses_key is the value returned by wgetch(). - * fkey in/out (on input, it is nonzero if curses_key is a function key, - * and on output, it is nonzero if the result is a function key). - */ -int -dlg_lookup_key(WINDOW *win, int curses_key, int *fkey) -{ - LIST_BINDINGS *p; - DLG_KEYS_BINDING *q; - - /* - * Ignore mouse clicks, since they are already encoded properly. - */ -#ifdef KEY_MOUSE - if (*fkey != 0 && curses_key == KEY_MOUSE) { - ; - } else -#endif - /* - * Ignore resize events, since they are already encoded properly. - */ -#ifdef KEY_RESIZE - if (*fkey != 0 && curses_key == KEY_RESIZE) { - ; - } else -#endif - if (*fkey == 0 || curses_key < KEY_MAX) { - const char *name = WILDNAME; - if (win != 0) { - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == win) { - name = p->name; - break; - } - } - } - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == win || - (p->win == 0 && - (!strcmp(p->name, name) || !strcmp(p->name, WILDNAME)))) { - int function_key = (*fkey != 0); - for (q = p->binding; q->is_function_key >= 0; ++q) { - if (p->buttons - && !function_key - && q->curses_key == (int) dlg_toupper(curses_key)) { - *fkey = 0; - return q->dialog_key; - } - if (q->curses_key == curses_key - && q->is_function_key == function_key) { - *fkey = q->dialog_key; - return *fkey; - } - } - } - } - } - return curses_key; -} - -/* - * Test a dialog internal keycode to see if it corresponds to one of the push - * buttons on the widget such as "OK". - * - * This is only useful if there are user-defined key bindings, since there are - * no built-in bindings that map directly to DLGK_OK, etc. - * - * See also dlg_ok_buttoncode(). - */ -int -dlg_result_key(int dialog_key, int fkey GCC_UNUSED, int *resultp) -{ - int done = FALSE; - - DLG_TRACE(("# dlg_result_key(dialog_key=%d, fkey=%d)\n", dialog_key, fkey)); -#ifdef KEY_RESIZE - if (dialog_state.had_resize) { - if (dialog_key == ERR) { - dialog_key = 0; - } else { - dialog_state.had_resize = FALSE; - } - } else if (fkey && dialog_key == KEY_RESIZE) { - dialog_state.had_resize = TRUE; - } -#endif -#ifdef HAVE_RC_FILE - if (fkey) { - switch ((DLG_KEYS_ENUM) dialog_key) { - case DLGK_OK: - if (!dialog_vars.nook) { - *resultp = DLG_EXIT_OK; - done = TRUE; - } - break; - case DLGK_CANCEL: - if (!dialog_vars.nocancel) { - *resultp = DLG_EXIT_CANCEL; - done = TRUE; - } - break; - case DLGK_EXTRA: - if (dialog_vars.extra_button) { - *resultp = DLG_EXIT_EXTRA; - done = TRUE; - } - break; - case DLGK_HELP: - if (dialog_vars.help_button) { - *resultp = DLG_EXIT_HELP; - done = TRUE; - } - break; - case DLGK_ESC: - *resultp = DLG_EXIT_ESC; - done = TRUE; - break; - default: - break; - } - } else -#endif - if (dialog_key == ESC) { - *resultp = DLG_EXIT_ESC; - done = TRUE; - } else if (dialog_key == ERR) { - *resultp = DLG_EXIT_ERROR; - done = TRUE; - } - - return done; -} - -/* - * If a key was bound to one of the button-codes in dlg_result_key(), fake - * a button-value and an "Enter" key to cause the calling widget to return - * the corresponding status. - * - * See dlg_ok_buttoncode(), which maps settings for ok/extra/help and button - * number into exit-code. - */ -int -dlg_button_key(int exit_code, int *button, int *dialog_key, int *fkey) -{ - int changed = FALSE; - switch (exit_code) { - case DLG_EXIT_OK: - if (!dialog_vars.nook) { - *button = 0; - changed = TRUE; - } - break; - case DLG_EXIT_EXTRA: - if (dialog_vars.extra_button) { - *button = dialog_vars.nook ? 0 : 1; - changed = TRUE; - } - break; - case DLG_EXIT_CANCEL: - if (!dialog_vars.nocancel) { - *button = dialog_vars.nook ? 1 : 2; - changed = TRUE; - } - break; - case DLG_EXIT_HELP: - if (dialog_vars.help_button) { - int cancel = dialog_vars.nocancel ? 0 : 1; - int extra = dialog_vars.extra_button ? 1 : 0; - int okay = dialog_vars.nook ? 0 : 1; - *button = okay + extra + cancel; - changed = TRUE; - } - break; - } - if (changed) { - DLG_TRACE(("# dlg_button_key(%d:%s) button %d\n", - exit_code, dlg_exitcode2s(exit_code), *button)); - *dialog_key = *fkey = DLGK_ENTER; - } - return changed; -} - -int -dlg_ok_button_key(int exit_code, int *button, int *dialog_key, int *fkey) -{ - int result; - DIALOG_VARS save; - - dlg_save_vars(&save); - dialog_vars.nocancel = TRUE; - - result = dlg_button_key(exit_code, button, dialog_key, fkey); - - dlg_restore_vars(&save); - return result; -} - -#ifdef HAVE_RC_FILE -typedef struct { - const char *name; - int code; -} CODENAME; - -#define ASCII_NAME(name,code) { #name, code } -#define CURSES_NAME(upper) { #upper, KEY_ ## upper } -#define COUNT_CURSES TableSize(curses_names) -static const CODENAME curses_names[] = -{ - ASCII_NAME(ESC, '\033'), - ASCII_NAME(CR, '\r'), - ASCII_NAME(LF, '\n'), - ASCII_NAME(FF, '\f'), - ASCII_NAME(TAB, '\t'), - ASCII_NAME(DEL, '\177'), - - CURSES_NAME(DOWN), - CURSES_NAME(UP), - CURSES_NAME(LEFT), - CURSES_NAME(RIGHT), - CURSES_NAME(HOME), - CURSES_NAME(BACKSPACE), - CURSES_NAME(F0), - CURSES_NAME(DL), - CURSES_NAME(IL), - CURSES_NAME(DC), - CURSES_NAME(IC), - CURSES_NAME(EIC), - CURSES_NAME(CLEAR), - CURSES_NAME(EOS), - CURSES_NAME(EOL), - CURSES_NAME(SF), - CURSES_NAME(SR), - CURSES_NAME(NPAGE), - CURSES_NAME(PPAGE), - CURSES_NAME(STAB), - CURSES_NAME(CTAB), - CURSES_NAME(CATAB), - CURSES_NAME(ENTER), - CURSES_NAME(PRINT), - CURSES_NAME(LL), - CURSES_NAME(A1), - CURSES_NAME(A3), - CURSES_NAME(B2), - CURSES_NAME(C1), - CURSES_NAME(C3), - CURSES_NAME(BTAB), - CURSES_NAME(BEG), - CURSES_NAME(CANCEL), - CURSES_NAME(CLOSE), - CURSES_NAME(COMMAND), - CURSES_NAME(COPY), - CURSES_NAME(CREATE), - CURSES_NAME(END), - CURSES_NAME(EXIT), - CURSES_NAME(FIND), - CURSES_NAME(HELP), - CURSES_NAME(MARK), - CURSES_NAME(MESSAGE), - CURSES_NAME(MOVE), - CURSES_NAME(NEXT), - CURSES_NAME(OPEN), - CURSES_NAME(OPTIONS), - CURSES_NAME(PREVIOUS), - CURSES_NAME(REDO), - CURSES_NAME(REFERENCE), - CURSES_NAME(REFRESH), - CURSES_NAME(REPLACE), - CURSES_NAME(RESTART), - CURSES_NAME(RESUME), - CURSES_NAME(SAVE), - CURSES_NAME(SBEG), - CURSES_NAME(SCANCEL), - CURSES_NAME(SCOMMAND), - CURSES_NAME(SCOPY), - CURSES_NAME(SCREATE), - CURSES_NAME(SDC), - CURSES_NAME(SDL), - CURSES_NAME(SELECT), - CURSES_NAME(SEND), - CURSES_NAME(SEOL), - CURSES_NAME(SEXIT), - CURSES_NAME(SFIND), - CURSES_NAME(SHELP), - CURSES_NAME(SHOME), - CURSES_NAME(SIC), - CURSES_NAME(SLEFT), - CURSES_NAME(SMESSAGE), - CURSES_NAME(SMOVE), - CURSES_NAME(SNEXT), - CURSES_NAME(SOPTIONS), - CURSES_NAME(SPREVIOUS), - CURSES_NAME(SPRINT), - CURSES_NAME(SREDO), - CURSES_NAME(SREPLACE), - CURSES_NAME(SRIGHT), - CURSES_NAME(SRSUME), - CURSES_NAME(SSAVE), - CURSES_NAME(SSUSPEND), - CURSES_NAME(SUNDO), - CURSES_NAME(SUSPEND), - CURSES_NAME(UNDO), -}; - -#define DIALOG_NAME(upper) { #upper, DLGK_ ## upper } -#define COUNT_DIALOG TableSize(dialog_names) -static const CODENAME dialog_names[] = -{ - DIALOG_NAME(OK), - DIALOG_NAME(CANCEL), - DIALOG_NAME(EXTRA), - DIALOG_NAME(HELP), - DIALOG_NAME(ESC), - DIALOG_NAME(PAGE_FIRST), - DIALOG_NAME(PAGE_LAST), - DIALOG_NAME(PAGE_NEXT), - DIALOG_NAME(PAGE_PREV), - DIALOG_NAME(ITEM_FIRST), - DIALOG_NAME(ITEM_LAST), - DIALOG_NAME(ITEM_NEXT), - DIALOG_NAME(ITEM_PREV), - DIALOG_NAME(FIELD_FIRST), - DIALOG_NAME(FIELD_LAST), - DIALOG_NAME(FIELD_NEXT), - DIALOG_NAME(FIELD_PREV), - DIALOG_NAME(FORM_FIRST), - DIALOG_NAME(FORM_LAST), - DIALOG_NAME(FORM_NEXT), - DIALOG_NAME(FORM_PREV), - DIALOG_NAME(GRID_UP), - DIALOG_NAME(GRID_DOWN), - DIALOG_NAME(GRID_LEFT), - DIALOG_NAME(GRID_RIGHT), - DIALOG_NAME(DELETE_LEFT), - DIALOG_NAME(DELETE_RIGHT), - DIALOG_NAME(DELETE_ALL), - DIALOG_NAME(ENTER), - DIALOG_NAME(BEGIN), - DIALOG_NAME(FINAL), - DIALOG_NAME(SELECT), - DIALOG_NAME(HELPFILE), - DIALOG_NAME(TRACE), - DIALOG_NAME(TOGGLE), - DIALOG_NAME(LEAVE) -}; - -#define MAP2(letter,actual) { letter, actual } - -static const struct { - int letter; - int actual; -} escaped_letters[] = { - - MAP2('a', DLG_CTRL('G')), - MAP2('b', DLG_CTRL('H')), - MAP2('f', DLG_CTRL('L')), - MAP2('n', DLG_CTRL('J')), - MAP2('r', DLG_CTRL('M')), - MAP2('s', CHR_SPACE), - MAP2('t', DLG_CTRL('I')), - MAP2('\\', '\\'), -}; - -#undef MAP2 - -static char * -skip_white(char *s) -{ - while (*s != '\0' && isspace(UCH(*s))) - ++s; - return s; -} - -static char * -skip_black(char *s) -{ - while (*s != '\0' && !isspace(UCH(*s))) - ++s; - return s; -} - -/* - * Find a user-defined binding, given the curses key code. - */ -static DLG_KEYS_BINDING * -find_binding(char *widget, int curses_key) -{ - LIST_BINDINGS *p; - DLG_KEYS_BINDING *result = 0; - - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == 0 - && !dlg_strcmp(p->name, widget) - && p->binding->curses_key == curses_key) { - result = p->binding; - break; - } - } - return result; -} - -/* - * Built-in bindings have a nonzero "win" member, and the associated binding - * table can have more than one entry. We keep those last, since lookups will - * find the user-defined bindings first and use those. - * - * Sort "*" (all-widgets) entries past named widgets, since those are less - * specific. - */ -static int -compare_bindings(LIST_BINDINGS * a, LIST_BINDINGS * b) -{ - int result = 0; - if (a->win == b->win) { - if (!strcmp(a->name, b->name)) { - result = a->binding[0].curses_key - b->binding[0].curses_key; - } else if (!strcmp(b->name, WILDNAME)) { - result = -1; - } else if (!strcmp(a->name, WILDNAME)) { - result = 1; - } else { - result = dlg_strcmp(a->name, b->name); - } - } else if (b->win) { - result = -1; - } else { - result = 1; - } - return result; -} - -/* - * Find a user-defined binding, given the curses key code. If it does not - * exist, create a new one, inserting it into the linked list, keeping it - * sorted to simplify lookups for user-defined bindings that can override - * the built-in bindings. - */ -static DLG_KEYS_BINDING * -make_binding(char *widget, int curses_key, int is_function, int dialog_key) -{ - LIST_BINDINGS *entry = 0; - DLG_KEYS_BINDING *data = 0; - char *name; - DLG_KEYS_BINDING *result = find_binding(widget, curses_key); - - if (result == 0 - && (entry = dlg_calloc(LIST_BINDINGS, 1)) != 0 - && (data = dlg_calloc(DLG_KEYS_BINDING, 2)) != 0 - && (name = dlg_strclone(widget)) != 0) { - LIST_BINDINGS *p, *q; - - entry->name = name; - entry->binding = data; - - data[0].is_function_key = is_function; - data[0].curses_key = curses_key; - data[0].dialog_key = dialog_key; - - data[1] = end_keys_binding; - - for (p = all_bindings, q = 0; p != 0; q = p, p = p->link) { - if (compare_bindings(entry, p) < 0) { - break; - } - } - if (q != 0) { - q->link = entry; - } else { - all_bindings = entry; - } - if (p != 0) { - entry->link = p; - } - result = data; - } else if (entry != 0) { - free(entry); - if (data) - free(data); - } - - return result; -} - -static int -decode_escaped(char **string) -{ - int result = 0; - - if (IsOctal(**string)) { - int limit = 3; - while (limit-- > 0 && IsOctal(**string)) { - int ch = (**string); - *string += 1; - result = (result << 3) | (ch - '0'); - } - } else { - unsigned n; - - for (n = 0; n < TableSize(escaped_letters); ++n) { - if (**string == escaped_letters[n].letter) { - *string += 1; - result = escaped_letters[n].actual; - break; - } - } - } - return result; -} - -static char * -encode_escaped(int value) -{ - static char result[80]; - unsigned n; - bool found = FALSE; - for (n = 0; n < TableSize(escaped_letters); ++n) { - if (value == escaped_letters[n].actual) { - found = TRUE; - sprintf(result, "%c", escaped_letters[n].letter); - break; - } - } - if (!found) { - sprintf(result, "%03o", value & 0xff); - } - return result; -} - -/* - * Parse the parameters of the "bindkey" configuration-file entry. This - * expects widget name which may be "*", followed by curses key definition and - * then dialog key definition. - * - * The curses key "should" be one of the names (ignoring case) from - * curses_names[], but may also be a single control character (prefix "^" or - * "~" depending on whether it is C0 or C1), or an escaped single character. - * Binding a printable character with dialog is possible but not useful. - * - * The dialog key must be one of the names from dialog_names[]. - */ -int -dlg_parse_bindkey(char *params) -{ - char *p = skip_white(params); - int result = FALSE; - char *widget; - int curses_key; - int dialog_key; - - curses_key = -1; - dialog_key = -1; - widget = p; - - p = skip_black(p); - if (p != widget && *p != '\0') { - char *q; - unsigned xx; - bool escaped = FALSE; - int modified = 0; - int is_function = FALSE; - - *p++ = '\0'; - p = skip_white(p); - q = p; - while (*p != '\0' && curses_key < 0) { - if (escaped) { - escaped = FALSE; - curses_key = decode_escaped(&p); - } else if (*p == CHR_BACKSLASH) { - escaped = TRUE; - } else if (modified) { - if (*p == '?') { - curses_key = ((modified == '^') - ? 127 - : 255); - } else { - curses_key = ((modified == '^') - ? (*p & 0x1f) - : ((*p & 0x1f) | 0x80)); - } - } else if (*p == '^') { - modified = *p; - } else if (*p == '~') { - modified = *p; - } else if (isspace(UCH(*p))) { - break; - } - ++p; - } - if (!isspace(UCH(*p))) { - ; - } else { - *p++ = '\0'; - if (curses_key < 0) { - char fprefix[2]; - char check[2]; - int keynumber; - if (sscanf(q, "%1[Ff]%d%c", fprefix, &keynumber, check) == 2) { - curses_key = KEY_F(keynumber); - is_function = TRUE; - } else { - for (xx = 0; xx < COUNT_CURSES; ++xx) { - if (!dlg_strcmp(curses_names[xx].name, q)) { - curses_key = curses_names[xx].code; - is_function = (curses_key >= KEY_MIN); - break; - } - } - } - } - } - q = skip_white(p); - p = skip_black(q); - if (p != q) { - for (xx = 0; xx < COUNT_DIALOG; ++xx) { - if (!dlg_strcmp(dialog_names[xx].name, q)) { - dialog_key = dialog_names[xx].code; - break; - } - } - } - if (*widget != '\0' - && curses_key >= 0 - && dialog_key >= 0 - && make_binding(widget, curses_key, is_function, dialog_key) != 0) { - result = TRUE; - } - } - return result; -} - -static void -dump_curses_key(FILE *fp, int curses_key) -{ - if (curses_key > KEY_MIN) { - unsigned n; - bool found = FALSE; - for (n = 0; n < COUNT_CURSES; ++n) { - if (curses_names[n].code == curses_key) { - fprintf(fp, "%s", curses_names[n].name); - found = TRUE; - break; - } - } - if (!found) { -#ifdef KEY_MOUSE - if (is_DLGK_MOUSE(curses_key)) { - fprintf(fp, "MOUSE-"); - dump_curses_key(fp, curses_key - M_EVENT); - } else -#endif - if (curses_key >= KEY_F(0)) { - fprintf(fp, "F%d", curses_key - KEY_F(0)); - } else { - fprintf(fp, "curses%d", curses_key); - } - } - } else if (curses_key >= 0 && curses_key < 32) { - fprintf(fp, "^%c", curses_key + 64); - } else if (curses_key == 127) { - fprintf(fp, "^?"); - } else if (curses_key >= 128 && curses_key < 160) { - fprintf(fp, "~%c", curses_key - 64); - } else if (curses_key == 255) { - fprintf(fp, "~?"); - } else if (curses_key > 32 && - curses_key < 127 && - curses_key != CHR_BACKSLASH) { - fprintf(fp, "%c", curses_key); - } else { - fprintf(fp, "%c%s", CHR_BACKSLASH, encode_escaped(curses_key)); - } -} - -static void -dump_dialog_key(FILE *fp, int dialog_key) -{ - unsigned n; - bool found = FALSE; - for (n = 0; n < COUNT_DIALOG; ++n) { - if (dialog_names[n].code == dialog_key) { - fputs(dialog_names[n].name, fp); - found = TRUE; - break; - } - } - if (!found) { - fprintf(fp, "dialog%d", dialog_key); - } -} - -static void -dump_one_binding(FILE *fp, - WINDOW *win, - const char *widget, - DLG_KEYS_BINDING * binding) -{ - int actual; - int fkey = (binding->curses_key > 255); - - fprintf(fp, "bindkey %s ", widget); - dump_curses_key(fp, binding->curses_key); - fputc(' ', fp); - dump_dialog_key(fp, binding->dialog_key); - actual = dlg_lookup_key(win, binding->curses_key, &fkey); -#ifdef KEY_MOUSE - if (is_DLGK_MOUSE(binding->curses_key) && is_DLGK_MOUSE(actual)) { - ; /* EMPTY */ - } else -#endif - if (actual != binding->dialog_key) { - fprintf(fp, "\t# overridden by "); - dump_dialog_key(fp, actual); - } - fputc('\n', fp); -} - -/* - * Dump bindings for the given window. If it is a null, then this dumps the - * initial bindings which were loaded from the rc-file that are used as - * overall defaults. - */ -void -dlg_dump_window_keys(FILE *fp, WINDOW *win) -{ - if (fp != 0) { - LIST_BINDINGS *p; - DLG_KEYS_BINDING *q; - const char *last = ""; - - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == win) { - if (dlg_strcmp(last, p->name)) { - fprintf(fp, "# key bindings for %s widgets%s\n", - !strcmp(p->name, WILDNAME) ? "all" : p->name, - win == 0 ? " (user-defined)" : ""); - last = p->name; - } - for (q = p->binding; q->is_function_key >= 0; ++q) { - dump_one_binding(fp, win, p->name, q); - } - } - } - } -} - -/* - * Dump all of the bindings which are not specific to a given widget, i.e., - * the "win" member is null. - */ -void -dlg_dump_keys(FILE *fp) -{ - if (fp != 0) { - LIST_BINDINGS *p; - unsigned count = 0; - - for (p = all_bindings; p != 0; p = p->link) { - if (p->win == 0) { - ++count; - } - } - if (count != 0) { - dlg_dump_window_keys(fp, 0); - } - } -} -#endif /* HAVE_RC_FILE */ diff --git a/contrib/dialog/dlg_keys.h b/contrib/dialog/dlg_keys.h deleted file mode 100644 index 1179b0e99ecc..000000000000 --- a/contrib/dialog/dlg_keys.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * $Id: dlg_keys.h,v 1.39 2020/11/22 23:19:24 tom Exp $ - * - * dlg_keys.h -- runtime binding support for dialog - * - * Copyright 2005-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#ifndef DLG_KEYS_H_included -#define DLG_KEYS_H_included 1 -/* *INDENT-OFF* */ - -#include <dialog.h> - -#ifdef USE_WIDE_CURSES -#include <wctype.h> -#define dlg_toupper(ch) towupper((wint_t)ch) -#define dlg_isupper(ch) iswupper((wint_t)ch) -#else -#define dlg_toupper(ch) (((ch) > 0 && (ch) <= 255) ? toupper(ch) : (ch)) -#define dlg_isupper(ch) (isalpha(ch) && isupper(ch)) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - int is_function_key; - int curses_key; - int dialog_key; -} DLG_KEYS_BINDING; - -#define DLG_KEYS_DATA(dialog, curses) { (curses) >= KEY_MIN, curses, dialog } - -#define END_KEYS_BINDING { -1, 0, 0 } - -/* - * Define dialog's internal function-keys past the range used by curses. - */ -typedef enum { - DLGK_MIN = KEY_MAX + 1, - /* predefined buttons */ - DLGK_OK, - DLGK_CANCEL, - DLGK_EXTRA, - DLGK_HELP, - DLGK_ESC, - /* moving from screen to screen (pages) */ - DLGK_PAGE_FIRST, - DLGK_PAGE_LAST, - DLGK_PAGE_NEXT, - DLGK_PAGE_PREV, - /* moving within a list */ - DLGK_ITEM_FIRST, - DLGK_ITEM_LAST, - DLGK_ITEM_NEXT, - DLGK_ITEM_PREV, - /* moving from field to field (or buttons) */ - DLGK_FIELD_FIRST, - DLGK_FIELD_LAST, - DLGK_FIELD_NEXT, - DLGK_FIELD_PREV, - /* moving from form-field to form-field (or buttons) */ - DLGK_FORM_FIRST, - DLGK_FORM_LAST, - DLGK_FORM_NEXT, - DLGK_FORM_PREV, - /* moving within a grid */ - DLGK_GRID_UP, - DLGK_GRID_DOWN, - DLGK_GRID_LEFT, - DLGK_GRID_RIGHT, - /* delete */ - DLGK_DELETE_LEFT, - DLGK_DELETE_RIGHT, - DLGK_DELETE_ALL, - /* special */ - DLGK_ENTER, - DLGK_BEGIN, - DLGK_FINAL, - DLGK_SELECT, - DLGK_HELPFILE, - DLGK_TRACE, - DLGK_TOGGLE, - DLGK_LEAVE -} DLG_KEYS_ENUM; - -#define is_DLGK_MOUSE(code) ((code) >= M_EVENT) -#define DLGK_MOUSE(code) ((code) + M_EVENT) - -#define HELPKEY_BINDINGS \ - DLG_KEYS_DATA( DLGK_HELPFILE, CHR_HELP ), \ - DLG_KEYS_DATA( DLGK_HELPFILE, KEY_F(1) ), \ - DLG_KEYS_DATA( DLGK_HELPFILE, KEY_HELP ) - -#define ENTERKEY_BINDINGS \ - DLG_KEYS_DATA( DLGK_ENTER, '\n' ), \ - DLG_KEYS_DATA( DLGK_ENTER, '\r' ), \ - DLG_KEYS_DATA( DLGK_ENTER, KEY_ENTER ), \ - DLG_KEYS_DATA( DLGK_LEAVE, CHR_LEAVE ) - -/* ^U == 21 */ -#define INPUTSTR_BINDINGS \ - DLG_KEYS_DATA( DLGK_BEGIN, KEY_HOME ), \ - DLG_KEYS_DATA( DLGK_DELETE_ALL, CHR_KILL ), \ - DLG_KEYS_DATA( DLGK_DELETE_LEFT, CHR_BACKSPACE ), \ - DLG_KEYS_DATA( DLGK_DELETE_LEFT, KEY_BACKSPACE ), \ - DLG_KEYS_DATA( DLGK_DELETE_RIGHT, CHR_DELETE ), \ - DLG_KEYS_DATA( DLGK_DELETE_RIGHT, KEY_DC ), \ - DLG_KEYS_DATA( DLGK_FINAL, KEY_END ), \ - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFT ), \ - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHT ) - -#define SCROLL_FKEY_BINDINGS \ - DLG_KEYS_DATA( DLGK_GRID_DOWN, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_UP ), \ - DLG_KEYS_DATA( DLGK_PAGE_FIRST, KEY_HOME ), \ - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_END ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ) - -#define SCROLLKEY_BINDINGS \ - SCROLL_FKEY_BINDINGS, \ - DLG_KEYS_DATA( DLGK_GRID_DOWN, 'J' ), \ - DLG_KEYS_DATA( DLGK_GRID_DOWN, 'j' ), \ - DLG_KEYS_DATA( DLGK_GRID_UP, 'K' ), \ - DLG_KEYS_DATA( DLGK_GRID_UP, 'k' ), \ - DLG_KEYS_DATA( DLGK_PAGE_FIRST, 'g' ), \ - DLG_KEYS_DATA( DLGK_PAGE_LAST, 'G' ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, 'F' ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, 'f' ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, 'B' ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, 'b' ) - -#define TRAVERSE_BINDINGS \ - DLG_KEYS_DATA( DLGK_ENTER, CHR_SPACE ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_UP ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ) - -#define TOGGLEKEY_BINDINGS \ - DLG_KEYS_DATA( DLGK_TOGGLE, CHR_SPACE ) - -extern int dlg_button_key(int /*exit_code*/, int * /*button*/, int * /*dialog_key*/, int * /*fkey*/); -extern int dlg_lookup_key(WINDOW * /*win*/, int /*curses_key*/, int * /*dialog_key*/); -extern int dlg_ok_button_key(int /*exit_code*/, int * /*button*/, int * /*dialog_key*/, int * /*fkey*/); -extern int dlg_result_key(int /*dialog_key*/, int /*fkey*/, int * /*resultp*/); -extern void dlg_register_buttons(WINDOW * /*win*/, const char * /*name*/, const char ** /*buttons*/); -extern void dlg_register_window(WINDOW * /*win*/, const char * /*name*/, DLG_KEYS_BINDING * /*binding*/); -extern void dlg_unregister_window(WINDOW * /*win*/); - -#ifdef HAVE_RC_FILE -extern int dlg_parse_bindkey(char * /*params*/); -extern void dlg_dump_keys(FILE * /*fp*/); -extern void dlg_dump_window_keys(FILE * /*fp*/, WINDOW * /*win*/); -#endif - -#ifdef __cplusplus -} -#endif -/* *INDENT-ON* */ - -#endif /* DLG_KEYS_H_included */ diff --git a/contrib/dialog/editbox.c b/contrib/dialog/editbox.c deleted file mode 100644 index 1ea80dd6384a..000000000000 --- a/contrib/dialog/editbox.c +++ /dev/null @@ -1,771 +0,0 @@ -/* - * $Id: editbox.c,v 1.80 2020/11/23 00:27:21 tom Exp $ - * - * editbox.c -- implements the edit box - * - * Copyright 2007-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#include <sys/stat.h> - -#define sTEXT -1 - -static void -fail_list(void) -{ - dlg_exiterr("File too large"); -} - -static void -grow_list(char ***list, int *have, int want) -{ - if (want > *have) { - size_t last = (size_t) *have; - size_t need = (size_t) (want | 31) + 3; - *have = (int) need; - (*list) = dlg_realloc(char *, need, *list); - if ((*list) == 0) { - fail_list(); - } else { - while (++last < need) { - (*list)[last] = 0; - } - } - } -} - -static void -load_list(const char *file, char ***list, int *rows) -{ - char *blob = 0; - struct stat sb; - size_t size; - - *list = 0; - *rows = 0; - - if (stat(file, &sb) < 0 || - (sb.st_mode & S_IFMT) != S_IFREG) - dlg_exiterr("Not a file: %s", file); - - size = (size_t) sb.st_size; - if ((blob = dlg_malloc(char, size + 2)) == 0) { - fail_list(); - } else { - FILE *fp; - unsigned n, pass; - - blob[size] = '\0'; - - if ((fp = fopen(file, "r")) == 0) - dlg_exiterr("Cannot open: %s", file); - size = fread(blob, sizeof(char), size, fp); - fclose(fp); - - /* - * If the file is not empty, ensure that it ends with a newline. - */ - if (size != 0 && blob[size - 1] != '\n') { - blob[++size - 1] = '\n'; - blob[size] = '\0'; - } - - for (pass = 0; pass < 2; ++pass) { - int first = TRUE; - unsigned need = 0; - - for (n = 0; n < size; ++n) { - if (first && pass) { - (*list)[need] = blob + n; - first = FALSE; - } - if (blob[n] == '\n') { - first = TRUE; - ++need; - if (pass) - blob[n] = '\0'; - } - } - if (pass) { - if (need == 0) { - (*list)[0] = dlg_strclone(""); - (*list)[1] = 0; - } else { - for (n = 0; n < need; ++n) { - (*list)[n] = dlg_strclone((*list)[n]); - } - (*list)[need] = 0; - } - } else { - grow_list(list, rows, (int) need + 1); - } - } - free(blob); - } -} - -static void -free_list(char ***list, int *rows) -{ - if (*list != 0) { - int n; - for (n = 0; n < (*rows); ++n) { - if ((*list)[n] != 0) - free((*list)[n]); - } - free(*list); - *list = 0; - } - *rows = 0; -} - -/* - * Display a single row in the editing window: - * thisrow is the actual row number that's being displayed. - * show_row is the row number that's highlighted for edit. - * base_row is the first row number in the window - */ -static bool -display_one(WINDOW *win, - char *text, - int thisrow, - int show_row, - int base_row, - int chr_offset) -{ - bool result; - - if (text != 0) { - dlg_show_string(win, - text, - chr_offset, - ((thisrow == show_row) - ? form_active_text_attr - : form_text_attr), - thisrow - base_row, - 0, - getmaxx(win), - FALSE, - FALSE); - result = TRUE; - } else { - result = FALSE; - } - return result; -} - -static void -display_all(WINDOW *win, - char **list, - int show_row, - int firstrow, - int lastrow, - int chr_offset) -{ - int limit = getmaxy(win); - int row; - - dlg_attr_clear(win, getmaxy(win), getmaxx(win), dialog_attr); - if (lastrow - firstrow >= limit) - lastrow = firstrow + limit; - for (row = firstrow; row < lastrow; ++row) { - if (!display_one(win, list[row], - row, show_row, firstrow, - (row == show_row) ? chr_offset : 0)) - break; - } -} - -static int -size_list(char **list) -{ - int result = 0; - - if (list != 0) { - while (*list++ != 0) { - ++result; - } - } - return result; -} - -static bool -scroll_to(int pagesize, int rows, int *base_row, int *this_row, int target) -{ - bool result = FALSE; - - if (target < *base_row) { - if (target < 0) { - if (*base_row == 0 && *this_row == 0) { - beep(); - } else { - *this_row = 0; - *base_row = 0; - result = TRUE; - } - } else { - *this_row = target; - *base_row = target; - result = TRUE; - } - } else if (target >= rows) { - if (*this_row < rows - 1) { - *this_row = rows - 1; - *base_row = rows - 1; - result = TRUE; - } else { - beep(); - } - } else if (target >= *base_row + pagesize) { - *this_row = target; - *base_row = target; - result = TRUE; - } else { - *this_row = target; - result = FALSE; - } - if (pagesize < rows) { - if (*base_row + pagesize >= rows) { - *base_row = rows - pagesize; - } - } else { - *base_row = 0; - } - return result; -} - -static int -col_to_chr_offset(const char *text, int col) -{ - const int *cols = dlg_index_columns(text); - const int *indx = dlg_index_wchars(text); - bool found = FALSE; - int result = 0; - unsigned n; - unsigned len = (unsigned) dlg_count_wchars(text); - - for (n = 0; n < len; ++n) { - if (cols[n] <= col && cols[n + 1] > col) { - result = indx[n]; - found = TRUE; - break; - } - } - if (!found && len && cols[len] == col) { - result = indx[len]; - } - return result; -} - -#define Scroll_To(target) scroll_to(pagesize, listsize, &base_row, &thisrow, target) -#define SCROLL_TO(target) show_all = Scroll_To(target) - -#define PREV_ROW (*list)[thisrow - 1] -#define THIS_ROW (*list)[thisrow] -#define NEXT_ROW (*list)[thisrow + 1] - -#define UPDATE_COL(input) col_offset = dlg_edit_offset(input, chr_offset, box_width) - -static int -widest_line(char **list) -{ - int result = MAX_LEN; - - if (list != 0) { - char *value; - - while ((value = *list++) != 0) { - int check = (int) strlen(value); - if (check > result) - result = check; - } - } - return result; -} - -#define NAVIGATE_BINDINGS \ - DLG_KEYS_DATA( DLGK_GRID_DOWN, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHT ), \ - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFT ), \ - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_UP ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \ - DLG_KEYS_DATA( DLGK_PAGE_FIRST, KEY_HOME ), \ - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_END ), \ - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_LL ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ) -/* - * Display a dialog box for editing a copy of a file - */ -int -dlg_editbox(const char *title, - char ***list, - int *rows, - int height, - int width) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - static DLG_KEYS_BINDING binding2[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - /* no TOGGLEKEY_BINDINGS, since that includes space... */ - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - int x, y, box_y, box_x, box_height, box_width; - int show_buttons; - int thisrow, base_row, lastrow; - int goal_col = -1; - int col_offset = 0; - int chr_offset = 0; - int key, fkey, code; - int pagesize; - int listsize = size_list(*list); - int result = DLG_EXIT_UNKNOWN; - int state; - size_t max_len = (size_t) dlg_max_input(widest_line(*list)); - char *buffer; - bool show_all, show_one; - bool first_trace = TRUE; - WINDOW *dialog; - WINDOW *editing; - DIALOG_VARS save_vars; - const char **buttons = dlg_ok_labels(); - int mincols = (3 * COLS / 4); - - DLG_TRACE(("# editbox args:\n")); - DLG_TRACE2S("title", title); - /* FIXME dump the rows & list */ - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - - dlg_save_vars(&save_vars); - dialog_vars.separate_output = TRUE; - - dlg_does_output(); - - buffer = dlg_malloc(char, max_len + 1); - assert_ptr(buffer, "dlg_editbox"); - - thisrow = base_row = lastrow = 0; - -#ifdef KEY_RESIZE - retry: -#endif - show_buttons = TRUE; - state = dialog_vars.default_button >= 0 ? dlg_default_button() : sTEXT; - fkey = 0; - - dlg_button_layout(buttons, &mincols); - dlg_auto_size(title, "", &height, &width, 3 * LINES / 4, mincols); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "editbox", binding); - dlg_register_buttons(dialog, "editbox", buttons); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - - /* Draw the editing field in a box */ - box_y = MARGIN + 0; - box_x = MARGIN + 1; - box_width = width - 2 - (2 * MARGIN); - box_height = height - (4 * MARGIN); - - dlg_draw_box(dialog, - box_y, - box_x, - box_height, - box_width, - border_attr, border2_attr); - dlg_mouse_mkbigregion(box_y + MARGIN, - box_x + MARGIN, - box_height - (2 * MARGIN), - box_width - (2 * MARGIN), - KEY_MAX, 1, 1, 3); - editing = dlg_sub_window(dialog, - box_height - (2 * MARGIN), - box_width - (2 * MARGIN), - getbegy(dialog) + box_y + 1, - getbegx(dialog) + box_x + 1); - dlg_register_window(editing, "editbox2", binding2); - - show_all = TRUE; - show_one = FALSE; - pagesize = getmaxy(editing); - - while (result == DLG_EXIT_UNKNOWN) { - bool was_mouse; - char *input; - - if (show_all) { - display_all(editing, *list, thisrow, base_row, listsize, chr_offset); - display_one(editing, THIS_ROW, - thisrow, thisrow, base_row, chr_offset); - show_all = FALSE; - show_one = TRUE; - } else { - if (thisrow != lastrow) { - display_one(editing, (*list)[lastrow], - lastrow, thisrow, base_row, 0); - show_one = TRUE; - } - } - if (show_one) { - display_one(editing, THIS_ROW, - thisrow, thisrow, base_row, chr_offset); - getyx(editing, y, x); - dlg_draw_scrollbar(dialog, - base_row, - base_row, - base_row + pagesize, - listsize, - box_x, - box_x + getmaxx(editing), - box_y + 0, - box_y + getmaxy(editing) + 1, - border2_attr, - border_attr); - wmove(editing, y, x); - show_one = FALSE; - } - lastrow = thisrow; - input = THIS_ROW; - - /* - * The last field drawn determines where the cursor is shown: - */ - if (show_buttons) { - show_buttons = FALSE; - UPDATE_COL(input); - if (state != sTEXT) { - display_one(editing, input, thisrow, - -1, base_row, 0); - wrefresh(editing); - } - dlg_draw_buttons(dialog, - height - 2, - 0, - buttons, - (state != sTEXT) ? state : 99, - FALSE, - width); - if (state == sTEXT) { - display_one(editing, input, thisrow, - thisrow, base_row, chr_offset); - } - } - - if (first_trace) { - first_trace = FALSE; - dlg_trace_win(dialog); - } - - key = dlg_mouse_wgetch((state == sTEXT) ? editing : dialog, &fkey); - if (key == ERR) { - result = DLG_EXIT_ERROR; - break; - } else if (key == ESC) { - result = DLG_EXIT_ESC; - break; - } - if (state != sTEXT) { - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &code, &key, &fkey)) - break; - } - } - - was_mouse = (fkey && is_DLGK_MOUSE(key)); - if (was_mouse) - key -= M_EVENT; - - /* - * Handle mouse clicks first, since we want to know if this is a - * button, or something that dlg_edit_string() should handle. - */ - if (fkey - && was_mouse - && (code = dlg_ok_buttoncode(key)) >= 0) { - result = code; - continue; - } - - if (was_mouse - && (key >= KEY_MAX)) { - int wide = getmaxx(editing); - int cell = key - KEY_MAX; - int check = (cell / wide) + base_row; - if (check < listsize) { - thisrow = check; - col_offset = (cell % wide); - chr_offset = col_to_chr_offset(THIS_ROW, col_offset); - show_one = TRUE; - if (state != sTEXT) { - state = sTEXT; - show_buttons = TRUE; - } - } else { - beep(); - } - continue; - } else if (was_mouse && key >= KEY_MIN) { - key = dlg_lookup_key(dialog, key, &fkey); - } - - if (state == sTEXT) { /* editing box selected */ - int edit = 0; - - /* - * Intercept scrolling keys that dlg_edit_string() does not - * understand. - */ - if (fkey) { - bool moved = TRUE; - - switch (key) { - case DLGK_GRID_UP: - SCROLL_TO(thisrow - 1); - break; - case DLGK_GRID_DOWN: - SCROLL_TO(thisrow + 1); - break; - case DLGK_PAGE_FIRST: - SCROLL_TO(0); - break; - case DLGK_PAGE_LAST: - SCROLL_TO(listsize); - break; - case DLGK_PAGE_NEXT: - SCROLL_TO(base_row + pagesize); - break; - case DLGK_PAGE_PREV: - if (thisrow > base_row) { - SCROLL_TO(base_row); - } else { - SCROLL_TO(base_row - pagesize); - } - break; - case DLGK_DELETE_LEFT: - if (chr_offset == 0) { - if (thisrow == 0) { - beep(); - } else { - size_t len = (strlen(THIS_ROW) + - strlen(PREV_ROW) + 1); - char *tmp = dlg_malloc(char, len); - - assert_ptr(tmp, "dlg_editbox"); - - chr_offset = dlg_count_wchars(PREV_ROW); - UPDATE_COL(PREV_ROW); - goal_col = col_offset; - - sprintf(tmp, "%s%s", PREV_ROW, THIS_ROW); - if (len > max_len) - tmp[max_len] = '\0'; - - free(PREV_ROW); - PREV_ROW = tmp; - for (y = thisrow; y < listsize; ++y) { - (*list)[y] = (*list)[y + 1]; - } - --listsize; - --thisrow; - (void) Scroll_To(thisrow); - - show_all = TRUE; - } - } else { - /* dlg_edit_string() can handle this case */ - moved = FALSE; - } - break; - default: - moved = FALSE; - break; - } - if (moved) { - if (thisrow != lastrow) { - if (goal_col < 0) - goal_col = col_offset; - chr_offset = col_to_chr_offset(THIS_ROW, goal_col); - } else { - UPDATE_COL(THIS_ROW); - } - continue; - } - } - strncpy(buffer, input, max_len - 1)[max_len - 1] = '\0'; - edit = dlg_edit_string(buffer, &chr_offset, key, fkey, FALSE); - - if (edit) { - goal_col = UPDATE_COL(input); - if (strcmp(input, buffer)) { - free(input); - THIS_ROW = dlg_strclone(buffer); - input = THIS_ROW; - } - display_one(editing, input, thisrow, - thisrow, base_row, chr_offset); - continue; - } - } - - /* handle non-functionkeys */ - if (!fkey && (code = dlg_char_to_button(key, buttons)) >= 0) { - dlg_del_window(dialog); - result = dlg_ok_buttoncode(code); - continue; - } - - /* handle functionkeys */ - if (fkey) { - switch (key) { - case DLGK_GRID_UP: - case DLGK_GRID_LEFT: - case DLGK_FIELD_PREV: - show_buttons = TRUE; - state = dlg_prev_ok_buttonindex(state, sTEXT); - break; - case DLGK_GRID_RIGHT: - case DLGK_GRID_DOWN: - case DLGK_FIELD_NEXT: - show_buttons = TRUE; - state = dlg_next_ok_buttonindex(state, sTEXT); - break; - case DLGK_ENTER: - if (state == sTEXT) { - const int *indx = dlg_index_wchars(THIS_ROW); - int split = indx[chr_offset]; - char *tmp = dlg_strclone(THIS_ROW + split); - - assert_ptr(tmp, "dlg_editbox"); - grow_list(list, rows, listsize + 1); - ++listsize; - for (y = listsize; y > thisrow; --y) { - (*list)[y] = (*list)[y - 1]; - } - THIS_ROW[split] = '\0'; - ++thisrow; - chr_offset = 0; - col_offset = 0; - THIS_ROW = tmp; - (void) Scroll_To(thisrow); - show_all = TRUE; - } else { - result = dlg_enter_buttoncode(state); - } - break; - case DLGK_LEAVE: - if (state >= 0) - result = dlg_ok_buttoncode(state); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - /* repaint */ - dlg_del_window(editing); - dlg_unregister_window(editing); - _dlg_resize_cleanup(dialog); - goto retry; -#endif - case DLGK_TOGGLE: - if (state != sTEXT) { - result = dlg_ok_buttoncode(state); - } else { - beep(); - } - break; - default: - beep(); - break; - } - } else if (key > 0) { - beep(); - } - } - - dlg_unregister_window(editing); - dlg_del_window(editing); - dlg_del_window(dialog); - dlg_mouse_free_regions(); - - /* - * The caller's copy of the (*list)[] array has been updated, but for - * consistency with the other widgets, we put the "real" result in - * the output buffer. - */ - if (result == DLG_EXIT_OK) { - int n; - for (n = 0; n < listsize; ++n) { - dlg_add_result((*list)[n]); - dlg_add_separator(); - } - dlg_add_last_key(-1); - } - free(buffer); - dlg_restore_vars(&save_vars); - return result; -} - -int -dialog_editbox(const char *title, const char *file, int height, int width) -{ - int result; - char **list; - int rows; - - load_list(file, &list, &rows); - result = dlg_editbox(title, &list, &rows, height, width); - free_list(&list, &rows); - return result; -} diff --git a/contrib/dialog/formbox.c b/contrib/dialog/formbox.c deleted file mode 100644 index 1a4faae06625..000000000000 --- a/contrib/dialog/formbox.c +++ /dev/null @@ -1,1002 +0,0 @@ -/* - * $Id: formbox.c,v 1.103 2021/01/17 22:19:05 tom Exp $ - * - * formbox.c -- implements the form (i.e., some pairs label/editbox) - * - * Copyright 2003-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * This is adapted from source contributed by - * Valery Reznic (valery_reznic@users.sourceforge.net) - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#define LLEN(n) ((n) * FORMBOX_TAGS) - -#define ItemName(i) items[LLEN(i) + 0] -#define ItemNameY(i) items[LLEN(i) + 1] -#define ItemNameX(i) items[LLEN(i) + 2] -#define ItemText(i) items[LLEN(i) + 3] -#define ItemTextY(i) items[LLEN(i) + 4] -#define ItemTextX(i) items[LLEN(i) + 5] -#define ItemTextFLen(i) items[LLEN(i) + 6] -#define ItemTextILen(i) items[LLEN(i) + 7] -#define ItemHelp(i) (dialog_vars.item_help ? items[LLEN(i) + 8] : dlg_strempty()) - -static bool -is_readonly(DIALOG_FORMITEM * item) -{ - return ((item->type & 2) != 0) || (item->text_flen <= 0); -} - -static bool -is_hidden(DIALOG_FORMITEM * item) -{ - return ((item->type & 1) != 0); -} - -static bool -in_window(WINDOW *win, int scrollamt, int y) -{ - return (y >= scrollamt && y - scrollamt < getmaxy(win)); -} - -static bool -ok_move(WINDOW *win, int scrollamt, int y, int x) -{ - return in_window(win, scrollamt, y) - && (wmove(win, y - scrollamt, x) != ERR); -} - -static void -move_past(WINDOW *win, int y, int x) -{ - if (wmove(win, y, x) == ERR) - wmove(win, y, getmaxx(win) - 1); -} - -/* - * Print form item - */ -static int -print_item(WINDOW *win, DIALOG_FORMITEM * item, int scrollamt, bool choice) -{ - int count = 0; - int len; - - if (ok_move(win, scrollamt, item->name_y, item->name_x)) { - len = item->name_len; - len = MIN(len, getmaxx(win) - item->name_x); - if (len > 0) { - dlg_show_string(win, - item->name, - 0, - menubox_attr, - item->name_y - scrollamt, - item->name_x, - len, - FALSE, - FALSE); - move_past(win, item->name_y - scrollamt, item->name_x + len); - count = 1; - } - } - if (item->text_len && ok_move(win, scrollamt, item->text_y, item->text_x)) { - chtype this_item_attribute; - - len = item->text_len; - len = MIN(len, getmaxx(win) - item->text_x); - - if (!is_readonly(item)) { - this_item_attribute = choice - ? form_active_text_attr - : form_text_attr; - } else { - this_item_attribute = form_item_readonly_attr; - } - - if (len > 0) { - dlg_show_string(win, - item->text, - 0, - this_item_attribute, - item->text_y - scrollamt, - item->text_x, - len, - is_hidden(item), - FALSE); - move_past(win, item->text_y - scrollamt, item->text_x + len); - count = 1; - } - } - return count; -} - -/* - * Print the entire form. - */ -static void -print_form(WINDOW *win, DIALOG_FORMITEM * item, int total, int scrollamt, int choice) -{ - int n; - int count = 0; - - for (n = 0; n < total; ++n) { - count += print_item(win, item + n, scrollamt, n == choice); - } - if (count) { - wbkgdset(win, menubox_attr | ' '); - wclrtobot(win); - (void) wnoutrefresh(win); - } -} - -static int -set_choice(DIALOG_FORMITEM item[], int choice, int item_no, bool * noneditable) -{ - int result = -1; - - *noneditable = FALSE; - if (!is_readonly(&item[choice])) { - result = choice; - } else { - int i; - - for (i = 0; i < item_no; i++) { - if (!is_readonly(&(item[i]))) { - result = i; - break; - } - } - if (result < 0) { - *noneditable = TRUE; - result = 0; - } - } - return result; -} - -/* - * Find the last y-value in the form. - */ -static int -form_limit(DIALOG_FORMITEM item[]) -{ - int n; - int limit = 0; - for (n = 0; item[n].name != 0; ++n) { - if (limit < item[n].name_y) - limit = item[n].name_y; - if (limit < item[n].text_y) - limit = item[n].text_y; - } - return limit; -} - -static int -is_first_field(DIALOG_FORMITEM item[], int choice) -{ - int count = 0; - while (choice >= 0) { - if (item[choice].text_flen > 0) { - ++count; - } - --choice; - } - - return (count == 1); -} - -static int -is_last_field(DIALOG_FORMITEM item[], int choice, int item_no) -{ - int count = 0; - while (choice < item_no) { - if (item[choice].text_flen > 0) { - ++count; - } - ++choice; - } - - return (count == 1); -} - -/* - * Tab to the next field. - */ -static bool -tab_next(WINDOW *win, - DIALOG_FORMITEM item[], - int item_no, - int stepsize, - int *choice, - int *scrollamt) -{ - int old_choice = *choice; - int old_scroll = *scrollamt; - bool wrapped = FALSE; - - do { - do { - *choice += stepsize; - if (*choice < 0) { - *choice = item_no - 1; - wrapped = TRUE; - } else if (*choice >= item_no) { - *choice = 0; - wrapped = TRUE; - } - } while ((*choice != old_choice) && is_readonly(&(item[*choice]))); - - if (item[*choice].text_flen > 0) { - int lo = MIN(item[*choice].name_y, item[*choice].text_y); - int hi = MAX(item[*choice].name_y, item[*choice].text_y); - - if (old_choice == *choice) - break; - print_item(win, item + old_choice, *scrollamt, FALSE); - - if (*scrollamt < lo + 1 - getmaxy(win)) - *scrollamt = lo + 1 - getmaxy(win); - if (*scrollamt > hi) - *scrollamt = hi; - /* - * If we have to scroll to show a wrap-around, it does get - * confusing. Just give up rather than scroll. Tab'ing to the - * next field in a multi-column form is a different matter. Scroll - * for that. - */ - if (*scrollamt != old_scroll) { - if (wrapped) { - beep(); - *scrollamt = old_scroll; - *choice = old_choice; - } else { - scrollok(win, TRUE); - wscrl(win, *scrollamt - old_scroll); - scrollok(win, FALSE); - } - } - break; - } - } while (*choice != old_choice); - - return (old_choice != *choice) || (old_scroll != *scrollamt); -} - -/* - * Scroll to the next page, putting the choice at the first editable field - * in that page. Note that fields are not necessarily in top-to-bottom order, - * nor is there necessarily a field on each row of the window. - */ -static bool -scroll_next(WINDOW *win, DIALOG_FORMITEM item[], int stepsize, int *choice, int *scrollamt) -{ - bool result = TRUE; - int old_choice = *choice; - int old_scroll = *scrollamt; - int old_row = MIN(item[old_choice].text_y, item[old_choice].name_y); - int target = old_scroll + stepsize; - - if (stepsize < 0) { - if (old_row != old_scroll) - target = old_scroll; - else - target = old_scroll + stepsize; - if (target < 0) { - result = FALSE; - } - } else { - if (target > form_limit(item)) { - result = FALSE; - } - } - - if (result) { - int n; - - for (n = 0; item[n].name != 0; ++n) { - if (item[n].text_flen > 0) { - int new_row = MIN(item[n].text_y, item[n].name_y); - if (abs(new_row - target) < abs(old_row - target)) { - old_row = new_row; - *choice = n; - } - } - } - - if (old_choice != *choice) - print_item(win, item + old_choice, *scrollamt, FALSE); - - *scrollamt = *choice; - if (*scrollamt != old_scroll) { - scrollok(win, TRUE); - wscrl(win, *scrollamt - old_scroll); - scrollok(win, FALSE); - } - result = (old_choice != *choice) || (old_scroll != *scrollamt); - } - if (!result) - beep(); - return result; -} - -/* - * Do a sanity check on the field length, and return the "right" value. - */ -static int -real_length(DIALOG_FORMITEM * item) -{ - return (item->text_flen > 0 - ? item->text_flen - : (item->text_flen < 0 - ? -item->text_flen - : item->text_len)); -} - -/* - * Compute the form size, setup field buffers. - */ -static void -make_FORM_ELTs(DIALOG_FORMITEM * item, - int item_no, - int *min_height, - int *min_width) -{ - int i; - int min_w = 0; - int min_h = 0; - - for (i = 0; i < item_no; ++i) { - int real_len = real_length(item + i); - - /* - * Special value '0' for text_flen: no input allowed - * Special value '0' for text_ilen: 'be the same as text_flen' - */ - if (item[i].text_ilen == 0) - item[i].text_ilen = real_len; - - min_h = MAX(min_h, item[i].name_y + 1); - min_h = MAX(min_h, item[i].text_y + 1); - min_w = MAX(min_w, item[i].name_x + 1 + item[i].name_len); - min_w = MAX(min_w, item[i].text_x + 1 + real_len); - - item[i].text_len = real_length(item + i); - - /* - * We do not know the actual length of .text, so we allocate it here - * to ensure it is big enough. - */ - if (item[i].text_flen > 0) { - int max_len = dlg_max_input(MAX(item[i].text_ilen + 1, MAX_LEN)); - char *old_text = item[i].text; - - item[i].text = dlg_malloc(char, (size_t) max_len + 1); - assert_ptr(item[i].text, "make_FORM_ELTs"); - - sprintf(item[i].text, "%.*s", item[i].text_ilen, old_text); - - if (item[i].text_free) { - free(old_text); - } - item[i].text_free = TRUE; - } - } - - *min_height = min_h; - *min_width = min_w; -} - -int -dlg_default_formitem(DIALOG_FORMITEM * items) -{ - int result = 0; - - if (dialog_vars.default_item != 0) { - int count = 0; - while (items->name != 0) { - if (!strcmp(dialog_vars.default_item, items->name)) { - result = count; - break; - } - ++items; - count++; - } - } - return result; -} - -#define sTEXT -1 - -static int -next_valid_buttonindex(int state, int extra, bool non_editable) -{ - state = dlg_next_ok_buttonindex(state, extra); - while (non_editable && state == sTEXT) - state = dlg_next_ok_buttonindex(state, sTEXT); - return state; -} - -static int -prev_valid_buttonindex(int state, int extra, bool non_editable) -{ - state = dlg_prev_ok_buttonindex(state, extra); - while (non_editable && state == sTEXT) - state = dlg_prev_ok_buttonindex(state, sTEXT); - return state; -} - -#define NAVIGATE_BINDINGS \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_RIGHT ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_NEXT ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_PREVIOUS ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_LEFT ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ) -/* - * Display a form for entering a number of fields - */ -int -dlg_form(const char *title, - const char *cprompt, - int height, - int width, - int form_height, - int item_no, - DIALOG_FORMITEM * items, - int *current_item) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - static DLG_KEYS_BINDING binding2[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - /* no TOGGLEKEY_BINDINGS, since that includes space... */ - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - - int form_width; - bool first = TRUE; - bool first_trace = TRUE; - int chr_offset = 0; - int state = (dialog_vars.default_button >= 0 - ? dlg_default_button() - : sTEXT); - int x, y, cur_x, cur_y, box_x, box_y; - int code; - int fkey; - int choice = dlg_default_formitem(items); - int new_choice, new_scroll; - int scrollamt = 0; - int result = DLG_EXIT_UNKNOWN; - int min_width = 0, min_height = 0; - bool was_autosize = (height == 0 || width == 0); - bool show_buttons = FALSE; - bool scroll_changed = FALSE; - bool field_changed = FALSE; - bool non_editable = FALSE; - WINDOW *dialog, *form; - char *prompt; - const char **buttons = dlg_ok_labels(); - DIALOG_FORMITEM *current; - - DLG_TRACE(("# %sform args:\n", (dialog_vars.formitem_type - ? "password" - : ""))); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("lheight", form_height); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - DLG_TRACE2N("current", *current_item); - - make_FORM_ELTs(items, item_no, &min_height, &min_width); - dlg_button_layout(buttons, &min_width); - dlg_does_output(); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - dlg_auto_size(title, prompt, &height, &width, - 1 + 3 * MARGIN, - MAX(26, 2 + min_width)); - - if (form_height == 0) - form_height = min_height; - - if (was_autosize) { - form_height = MIN(SLINES - height, form_height); - height += form_height; - } else { - int thigh = 0; - int twide = 0; - dlg_auto_size(title, prompt, &thigh, &twide, 0, width); - thigh = SLINES - (height - (thigh + 1 + 3 * MARGIN)); - form_height = MIN(thigh, form_height); - } - - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "formbox", binding); - dlg_register_buttons(dialog, "formbox", buttons); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - form_width = width - 6; - getyx(dialog, cur_y, cur_x); - (void) cur_x; - box_y = cur_y + 1; - box_x = (width - form_width) / 2 - 1; - - /* create new window for the form */ - form = dlg_sub_window(dialog, form_height, form_width, y + box_y + 1, - x + box_x + 1); - dlg_register_window(form, "formfield", binding2); - - /* draw a box around the form items */ - dlg_draw_box(dialog, box_y, box_x, form_height + 2, form_width + 2, - menubox_border_attr, menubox_border2_attr); - - /* register the new window, along with its borders */ - dlg_mouse_mkbigregion(getbegy(form) - getbegy(dialog), - getbegx(form) - getbegx(dialog), - getmaxy(form), - getmaxx(form), - KEY_MAX, 1, 1, 3 /* by cells */ ); - - show_buttons = TRUE; - scroll_changed = TRUE; - - choice = set_choice(items, choice, item_no, &non_editable); - current = &items[choice]; - if (non_editable) - state = next_valid_buttonindex(state, sTEXT, non_editable); - - while (result == DLG_EXIT_UNKNOWN) { - int edit = FALSE; - int key; - - if (scroll_changed) { - print_form(form, items, item_no, scrollamt, choice); - dlg_draw_scrollbar(dialog, - scrollamt, - scrollamt, - scrollamt + form_height + 1, - min_height, - box_x + 1, - box_x + form_width, - box_y, - box_y + form_height + 1, - menubox_border2_attr, - menubox_border_attr); - scroll_changed = FALSE; - } - - if (show_buttons) { - dlg_item_help(""); - dlg_draw_buttons(dialog, height - 2, 0, buttons, - ((state < 0) - ? 1000 /* no such button, not highlighted */ - : state), - FALSE, width); - show_buttons = FALSE; - } - - if (first_trace) { - first_trace = FALSE; - dlg_trace_win(dialog); - } - - if (field_changed || state == sTEXT) { - if (field_changed) - chr_offset = 0; - current = &items[choice]; - dialog_vars.max_input = current->text_ilen; - dlg_item_help(current->help); - dlg_show_string(form, current->text, chr_offset, - form_active_text_attr, - current->text_y - scrollamt, - current->text_x, - current->text_len, - is_hidden(current), first); - wsyncup(form); - wcursyncup(form); - field_changed = FALSE; - } - - key = dlg_mouse_wgetch((state == sTEXT) ? form : dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - break; - } - - /* handle non-functionkeys */ - if (!fkey) { - if (state != sTEXT) { - code = dlg_char_to_button(key, buttons); - if (code >= 0) { - dlg_del_window(dialog); - result = dlg_ok_buttoncode(code); - continue; - } - } - } - - /* handle functionkeys */ - if (fkey) { - bool do_scroll = FALSE; - bool do_tab = FALSE; - int move_by = 0; - - switch (key) { - case DLGK_MOUSE(KEY_PPAGE): - case DLGK_PAGE_PREV: - do_scroll = TRUE; - move_by = -form_height; - break; - - case DLGK_MOUSE(KEY_NPAGE): - case DLGK_PAGE_NEXT: - do_scroll = TRUE; - move_by = form_height; - break; - - case DLGK_TOGGLE: - case DLGK_ENTER: - dlg_del_window(dialog); - result = (state >= 0) ? dlg_enter_buttoncode(state) : DLG_EXIT_OK; - continue; - case DLGK_LEAVE: - if (state >= 0) - result = dlg_ok_buttoncode(state); - break; - - case DLGK_GRID_LEFT: - if (state == sTEXT) - break; - /* FALLTHRU */ - case DLGK_ITEM_PREV: - if (state == sTEXT) { - do_tab = TRUE; - move_by = -1; - break; - } else { - state = prev_valid_buttonindex(state, 0, non_editable); - show_buttons = TRUE; - continue; - } - - case DLGK_FORM_PREV: - if (state == sTEXT && !is_first_field(items, choice)) { - do_tab = TRUE; - move_by = -1; - break; - } else { - int old_state = state; - state = prev_valid_buttonindex(state, sTEXT, non_editable); - show_buttons = TRUE; - if (old_state >= 0 && state == sTEXT) { - new_choice = item_no - 1; - if (choice != new_choice) { - print_item(form, items + choice, scrollamt, FALSE); - choice = new_choice; - } - } - continue; - } - - case DLGK_FIELD_PREV: - state = prev_valid_buttonindex(state, sTEXT, non_editable); - show_buttons = TRUE; - continue; - - case DLGK_FIELD_NEXT: - state = next_valid_buttonindex(state, sTEXT, non_editable); - show_buttons = TRUE; - continue; - - case DLGK_GRID_RIGHT: - if (state == sTEXT) - break; - /* FALLTHRU */ - - case DLGK_ITEM_NEXT: - if (state == sTEXT) { - do_tab = TRUE; - move_by = 1; - break; - } else { - state = next_valid_buttonindex(state, 0, non_editable); - show_buttons = TRUE; - continue; - } - - case DLGK_FORM_NEXT: - if (state == sTEXT && !is_last_field(items, choice, item_no)) { - do_tab = TRUE; - move_by = 1; - break; - } else { - state = next_valid_buttonindex(state, sTEXT, non_editable); - show_buttons = TRUE; - if (state == sTEXT && choice) { - print_item(form, items + choice, scrollamt, FALSE); - choice = 0; - } - continue; - } - -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - free(prompt); - _dlg_resize_cleanup(dialog); - dlg_unregister_window(form); - /* repaint */ - goto retry; -#endif - default: -#if USE_MOUSE - if (is_DLGK_MOUSE(key)) { - if (key >= DLGK_MOUSE(KEY_MAX)) { - int cell = key - DLGK_MOUSE(KEY_MAX); - int row = (cell / getmaxx(form)) + scrollamt; - int col = (cell % getmaxx(form)); - int n; - - for (n = 0; n < item_no; ++n) { - if (items[n].name_y == row - && items[n].name_x <= col - && (items[n].name_x + items[n].name_len > col - || (items[n].name_y == items[n].text_y - && items[n].text_x > col))) { - if (!is_readonly(&(items[n]))) { - field_changed = TRUE; - break; - } - } - if (items[n].text_y == row - && items[n].text_x <= col - && items[n].text_x + items[n].text_ilen > col) { - if (!is_readonly(&(items[n]))) { - field_changed = TRUE; - break; - } - } - } - if (field_changed) { - print_item(form, items + choice, scrollamt, FALSE); - choice = n; - continue; - } - beep(); - } else if ((code = dlg_ok_buttoncode(key - M_EVENT)) >= 0) { - result = code; - } - continue; - } -#endif - break; - } - - new_scroll = scrollamt; - new_choice = choice; - if (do_scroll) { - if (scroll_next(form, items, move_by, &new_choice, &new_scroll)) { - if (choice != new_choice) { - choice = new_choice; - field_changed = TRUE; - } - if (scrollamt != new_scroll) { - scrollamt = new_scroll; - scroll_changed = TRUE; - } - } - continue; - } - if (do_tab) { - if (tab_next(form, items, item_no, move_by, &new_choice, &new_scroll)) { - if (choice != new_choice) { - choice = new_choice; - field_changed = TRUE; - } - if (scrollamt != new_scroll) { - scrollamt = new_scroll; - scroll_changed = TRUE; - } - } - continue; - } - } - - if (state == sTEXT) { /* Input box selected */ - if (!is_readonly(current)) - edit = dlg_edit_string(current->text, &chr_offset, key, - fkey, first); - if (edit) { - dlg_show_string(form, current->text, chr_offset, - form_active_text_attr, - current->text_y - scrollamt, - current->text_x, - current->text_len, - is_hidden(current), first); - continue; - } - } - - } - - dlg_mouse_free_regions(); - dlg_unregister_window(form); - dlg_del_window(dialog); - free(prompt); - - *current_item = choice; - return result; -} - -/* - * Free memory owned by a list of DIALOG_FORMITEM's. - */ -void -dlg_free_formitems(DIALOG_FORMITEM * items) -{ - int n; - for (n = 0; items[n].name != 0; ++n) { - if (items[n].name_free) - free(items[n].name); - if (items[n].text_free) - free(items[n].text); - if (items[n].help_free && items[n].help != dlg_strempty()) - free(items[n].help); - } - free(items); -} - -/* - * The script accepts values beginning at 1, while curses starts at 0. - */ -int -dlg_ordinate(const char *s) -{ - int result = atoi(s); - if (result > 0) - --result; - else - result = 0; - return result; -} - -int -dialog_form(const char *title, - const char *cprompt, - int height, - int width, - int form_height, - int item_no, - char **items) -{ - int result; - int choice = 0; - int i; - DIALOG_FORMITEM *listitems; - DIALOG_VARS save_vars; - bool show_status = FALSE; - char *help_result; - - dlg_save_vars(&save_vars); - dialog_vars.separate_output = TRUE; - - listitems = dlg_calloc(DIALOG_FORMITEM, (size_t) item_no + 1); - assert_ptr(listitems, "dialog_form"); - - for (i = 0; i < item_no; ++i) { - listitems[i].type = dialog_vars.formitem_type; - listitems[i].name = ItemName(i); - listitems[i].name_len = (int) strlen(ItemName(i)); - listitems[i].name_y = dlg_ordinate(ItemNameY(i)); - listitems[i].name_x = dlg_ordinate(ItemNameX(i)); - listitems[i].text = ItemText(i); - listitems[i].text_len = (int) strlen(ItemText(i)); - listitems[i].text_y = dlg_ordinate(ItemTextY(i)); - listitems[i].text_x = dlg_ordinate(ItemTextX(i)); - listitems[i].text_flen = atoi(ItemTextFLen(i)); - listitems[i].text_ilen = atoi(ItemTextILen(i)); - listitems[i].help = ((dialog_vars.item_help) - ? ItemHelp(i) - : dlg_strempty()); - } - - result = dlg_form(title, - cprompt, - height, - width, - form_height, - item_no, - listitems, - &choice); - - switch (result) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - show_status = TRUE; - break; - case DLG_EXIT_HELP: - dlg_add_help_formitem(&result, &help_result, &listitems[choice]); - show_status = dialog_vars.help_status; - dlg_add_string(help_result); - if (show_status) - dlg_add_separator(); - break; - } - if (show_status) { - for (i = 0; i < item_no; i++) { - if (listitems[i].text_flen > 0) { - dlg_add_string(listitems[i].text); - dlg_add_separator(); - } - } - dlg_add_last_key(-1); - } - - dlg_free_formitems(listitems); - dlg_restore_vars(&save_vars); - - return result; -} diff --git a/contrib/dialog/fselect.c b/contrib/dialog/fselect.c deleted file mode 100644 index 753805b27286..000000000000 --- a/contrib/dialog/fselect.c +++ /dev/null @@ -1,962 +0,0 @@ -/* - * $Id: fselect.c,v 1.115 2021/01/16 17:19:15 tom Exp $ - * - * fselect.c -- implements the file-selector box - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#include <sys/types.h> -#include <sys/stat.h> - -#if HAVE_DIRENT_H -# include <dirent.h> -# define NAMLEN(dirent) strlen((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) (dirent)->d_namlen -# if HAVE_SYS_NDIR_H -# include <sys/ndir.h> -# endif -# if HAVE_SYS_DIR_H -# include <sys/dir.h> -# endif -# if HAVE_NDIR_H -# include <ndir.h> -# endif -#endif - -# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64) -# if !defined(_LP64) && (_FILE_OFFSET_BITS == 64) -# define DIRENT struct dirent64 -# else -# define DIRENT struct dirent -# endif -# else -# define DIRENT struct dirent -# endif - -#define EXT_WIDE 1 -#define HDR_HIGH 1 -#define BTN_HIGH (1 + 2 * MARGIN) /* Ok/Cancel, also input-box */ -#define MIN_HIGH (HDR_HIGH - MARGIN + (BTN_HIGH * 2) + 4 * MARGIN) -#define MIN_WIDE (2 * MAX(dlg_count_columns(d_label), dlg_count_columns(f_label)) + 6 * MARGIN + 2 * EXT_WIDE) - -#define MOUSE_D (KEY_MAX + 0) -#define MOUSE_F (KEY_MAX + 10000) -#define MOUSE_T (KEY_MAX + 20000) - -typedef enum { - sDIRS = -3 - ,sFILES = -2 - ,sTEXT = -1 -} STATES; - -typedef struct { - WINDOW *par; /* parent window */ - WINDOW *win; /* this window */ - int length; /* length of the data[] array */ - int offset; /* index of first item on screen */ - int choice; /* index of the selection */ - int mousex; /* base of mouse-code return-values */ - unsigned allocd; - char **data; -} LIST; - -typedef struct { - int length; - char **data; -} MATCH; - -static void -init_list(LIST * list, WINDOW *par, WINDOW *win, int mousex) -{ - list->par = par; - list->win = win; - list->length = 0; - list->offset = 0; - list->choice = 0; - list->mousex = mousex; - list->allocd = 0; - list->data = 0; - dlg_mouse_mkbigregion(getbegy(win), getbegx(win), - getmaxy(win), getmaxx(win), - mousex, 1, 1, 1 /* by lines */ ); -} - -static char * -leaf_of(char *path) -{ - char *leaf = strrchr(path, '/'); - if (leaf != 0) - leaf++; - else - leaf = path; - return leaf; -} - -static char * -data_of(LIST * list) -{ - if (list != 0 - && list->data != 0) - return list->data[list->choice]; - return 0; -} - -static void -free_list(LIST * list, int reinit) -{ - if (list->data != 0) { - int n; - - for (n = 0; list->data[n] != 0; n++) - free(list->data[n]); - free(list->data); - list->data = 0; - } - if (reinit) - init_list(list, list->par, list->win, list->mousex); -} - -static void -add_to_list(LIST * list, char *text) -{ - unsigned need; - - need = (unsigned) (list->length + 1); - if (need + 1 > list->allocd) { - list->allocd = 2 * (need + 1); - if (list->data == 0) { - list->data = dlg_malloc(char *, list->allocd); - } else { - list->data = dlg_realloc(char *, list->allocd, list->data); - } - assert_ptr(list->data, "add_to_list"); - } - list->data[list->length++] = dlg_strclone(text); - list->data[list->length] = 0; -} - -static void -keep_visible(LIST * list) -{ - int high = getmaxy(list->win); - - if (list->choice < list->offset) { - list->offset = list->choice; - } - if (list->choice - list->offset >= high) - list->offset = list->choice - high + 1; -} - -#define Value(c) (int)((c) & 0xff) - -static int -find_choice(char *target, LIST * list) -{ - int choice = list->choice; - - if (*target == 0) { - list->choice = 0; - } else { - int n; - int len_1, cmp_1; - - /* find the match with the longest length. If more than one has the - * same length, choose the one with the closest match of the final - * character. - */ - len_1 = 0; - cmp_1 = 256; - for (n = 0; n < list->length; n++) { - char *a = target; - char *b = list->data[n]; - int len_2, cmp_2; - - len_2 = 0; - while ((*a != 0) && (*b != 0) && (*a == *b)) { - a++; - b++; - len_2++; - } - cmp_2 = Value(*a) - Value(*b); - if (cmp_2 < 0) - cmp_2 = -cmp_2; - if ((len_2 > len_1) - || (len_1 == len_2 && cmp_2 < cmp_1)) { - len_1 = len_2; - cmp_1 = cmp_2; - list->choice = n; - } - } - } - if (choice != list->choice) { - keep_visible(list); - } - return (choice != list->choice); -} - -static void -display_list(LIST * list) -{ - if (list->win != 0) { - int n; - int x; - int y; - int top; - int bottom; - - dlg_attr_clear(list->win, getmaxy(list->win), getmaxx(list->win), item_attr); - for (n = list->offset; n < list->length && list->data[n]; n++) { - y = n - list->offset; - if (y >= getmaxy(list->win)) - break; - (void) wmove(list->win, y, 0); - if (n == list->choice) - dlg_attrset(list->win, item_selected_attr); - (void) waddstr(list->win, list->data[n]); - dlg_attrset(list->win, item_attr); - } - dlg_attrset(list->win, item_attr); - - getparyx(list->win, y, x); - - top = y - 1; - bottom = y + getmaxy(list->win); - dlg_draw_scrollbar(list->par, - (long) list->offset, - (long) list->offset, - (long) (list->offset + getmaxy(list->win)), - (long) (list->length), - x + 1, - x + getmaxx(list->win), - top, - bottom, - menubox_border2_attr, - menubox_border_attr); - - (void) wmove(list->win, list->choice - list->offset, 0); - (void) wnoutrefresh(list->win); - } -} - -/* FIXME: see arrows.c - * This workaround is used to allow two lists to have scroll-tabs at the same - * time, by reassigning their return-values to be different. Just for - * readability, we use the names of keys with similar connotations, though all - * that is really required is that they're distinct, so we can put them in a - * switch statement. - */ -#if USE_MOUSE -static void -fix_arrows(LIST * list) -{ - if (list->win != 0) { - int x; - int y; - int top; - int right; - int bottom; - - getparyx(list->win, y, x); - top = y - 1; - right = getmaxx(list->win); - bottom = y + getmaxy(list->win); - - mouse_mkbutton(top, x, right, - ((list->mousex == MOUSE_D) - ? KEY_PREVIOUS - : KEY_PPAGE)); - mouse_mkbutton(bottom, x, right, - ((list->mousex == MOUSE_D) - ? KEY_NEXT - : KEY_NPAGE)); - } -} - -#else -#define fix_arrows(list) /* nothing */ -#endif - -static bool -show_list(char *target, LIST * list, bool keep) -{ - bool changed = keep || find_choice(target, list); - display_list(list); - return changed; -} - -/* - * Highlight the closest match to 'target' in the given list, setting offset - * to match. - */ -static bool -show_both_lists(char *input, LIST * d_list, LIST * f_list, bool keep) -{ - char *leaf = leaf_of(input); - - return show_list(leaf, d_list, keep) || show_list(leaf, f_list, keep); -} - -/* - * Move up/down in the given list - */ -static bool -change_list(int choice, LIST * list) -{ - if (data_of(list) != 0) { - int last = list->length - 1; - - choice += list->choice; - if (choice < 0) - choice = 0; - if (choice > last) - choice = last; - list->choice = choice; - keep_visible(list); - display_list(list); - return TRUE; - } - return FALSE; -} - -static void -scroll_list(int direction, LIST * list) -{ - if (data_of(list) != 0) { - int length = getmaxy(list->win); - if (change_list(direction * length, list)) - return; - } - beep(); -} - -static int -compar(const void *a, const void *b) -{ - return strcmp(*(const char *const *) a, *(const char *const *) b); -} - -static void -match(char *name, LIST * d_list, LIST * f_list, MATCH * match_list) -{ - char *test = leaf_of(name); - size_t test_len = strlen(test); - char **matches = dlg_malloc(char *, (size_t) (d_list->length + f_list->length)); - size_t data_len = 0; - - if (matches != 0) { - int i; - char **new_ptr; - - for (i = 2; i < d_list->length; i++) { - if (strncmp(test, d_list->data[i], test_len) == 0) { - matches[data_len++] = d_list->data[i]; - } - } - for (i = 0; i < f_list->length; i++) { - if (strncmp(test, f_list->data[i], test_len) == 0) { - matches[data_len++] = f_list->data[i]; - } - } - if ((new_ptr = dlg_realloc(char *, data_len + 1, matches)) != 0) { - matches = new_ptr; - } else { - free(matches); - matches = 0; - data_len = 0; - } - } - match_list->data = matches; - match_list->length = (int) data_len; -} - -static void -free_match(MATCH * match_list) -{ - free(match_list->data); - match_list->length = 0; -} - -static int -complete(char *name, LIST * d_list, LIST * f_list, char **buff_ptr) -{ - MATCH match_list; - char *test; - size_t test_len; - size_t i; - char *buff; - - match(name, d_list, f_list, &match_list); - if (match_list.length == 0) { - free(match_list.data); - *buff_ptr = NULL; - return 0; - } - - test = match_list.data[0]; - test_len = strlen(test); - buff = dlg_malloc(char, test_len + 2); - if (match_list.length == 1) { - strcpy(buff, test); - i = test_len; - if (test == data_of(d_list)) { - buff[test_len] = '/'; - i++; - } - } else { - int j; - - for (i = 0; i < test_len; i++) { - char test_char = test[i]; - if (test_char == '\0') - break; - for (j = 0; j < match_list.length; j++) { - if (match_list.data[j][i] != test_char) { - break; - } - } - if (j == match_list.length) { - (buff)[i] = test_char; - } else - break; - } - buff = dlg_realloc(char, i + 1, buff); - } - free_match(&match_list); - buff[i] = '\0'; - *buff_ptr = buff; - return (i != 0); -} - -static bool -fill_lists(char *current, char *input, LIST * d_list, LIST * f_list, bool keep) -{ - bool result = TRUE; - bool rescan = FALSE; - struct stat sb; - int n; - char path[MAX_LEN + 1]; - - /* check if we've updated the lists */ - for (n = 0; current[n] && input[n]; n++) { - if (current[n] != input[n]) - break; - } - - if (current[n] == input[n]) { - result = FALSE; - rescan = (n == 0 && d_list->length == 0); - } else if (strchr(current + n, '/') == 0 - && strchr(input + n, '/') == 0) { - result = show_both_lists(input, d_list, f_list, keep); - } else { - rescan = TRUE; - } - - if (rescan) { - DIR *dp; - size_t have = strlen(input); - char *leaf; - - if (have > MAX_LEN) - have = MAX_LEN; - memcpy(current, input, have); - current[have] = '\0'; - - /* refill the lists */ - free_list(d_list, TRUE); - free_list(f_list, TRUE); - memcpy(path, current, have); - path[have] = '\0'; - if ((leaf = strrchr(path, '/')) != 0) { - *++leaf = 0; - } else { - strcpy(path, "./"); - leaf = path + strlen(path); - } - DLG_TRACE(("opendir '%s'\n", path)); - if ((dp = opendir(path)) != 0) { - DIRENT *de; - - while ((de = readdir(dp)) != 0) { - size_t len = NAMLEN(de); - if (len == 0 || (len + have + 2) >= MAX_LEN) - continue; - memcpy(leaf, de->d_name, len); - leaf[len] = '\0'; - if (stat(path, &sb) == 0) { - if ((sb.st_mode & S_IFMT) == S_IFDIR) - add_to_list(d_list, leaf); - else if (f_list->win) - add_to_list(f_list, leaf); - } - } - (void) closedir(dp); - /* sort the lists */ - if (d_list->data != 0 && d_list->length > 1) { - qsort(d_list->data, - (size_t) d_list->length, - sizeof(d_list->data[0]), - compar); - } - if (f_list->data != 0 && f_list->length > 1) { - qsort(f_list->data, - (size_t) f_list->length, - sizeof(f_list->data[0]), - compar); - } - } - - (void) show_both_lists(input, d_list, f_list, FALSE); - d_list->offset = d_list->choice; - f_list->offset = f_list->choice; - result = TRUE; - } - return result; -} - -static bool -usable_state(int state, LIST * dirs, LIST * files) -{ - bool result; - - switch (state) { - case sDIRS: - result = (dirs->win != 0) && (data_of(dirs) != 0); - break; - case sFILES: - result = (files->win != 0) && (data_of(files) != 0); - break; - default: - result = TRUE; - break; - } - return result; -} - -#define which_list() ((state == sFILES) \ - ? &f_list \ - : ((state == sDIRS) \ - ? &d_list \ - : 0)) -#define NAVIGATE_BINDINGS \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), \ - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_NEXT ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), \ - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), \ - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), \ - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ) - -/* - * Display a dialog box for entering a filename - */ -static int -dlg_fselect(const char *title, const char *path, int height, int width, int dselect) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - static DLG_KEYS_BINDING binding2[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; - bool resized = FALSE; -#endif - int tbox_y, tbox_x, tbox_width, tbox_height; - int dbox_y, dbox_x, dbox_width, dbox_height; - int fbox_y, fbox_x, fbox_width, fbox_height; - int show_buttons = TRUE; - int offset = 0; - int key = 0; - int fkey = FALSE; - int code; - int result = DLG_EXIT_UNKNOWN; - int state = dialog_vars.default_button >= 0 ? dlg_default_button() : sTEXT; - int button; - bool first = (state == sTEXT); - bool first_trace = TRUE; - char *input; - char *completed; - char current[MAX_LEN + 1]; - WINDOW *dialog = 0; - WINDOW *w_text = 0; - WINDOW *w_work = 0; - const char **buttons = dlg_ok_labels(); - const char *d_label = _("Directories"); - const char *f_label = _("Files"); - char *partial = 0; - int min_wide = MIN_WIDE; - int min_items = height ? 0 : 4; - LIST d_list, f_list; - - DLG_TRACE(("# %s args:\n", dselect ? "dselect" : "fselect")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("path", path); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - - dlg_does_output(); - - /* Set up the initial value */ - input = dlg_set_result(path); - offset = (int) strlen(input); - *current = 0; - - dlg_button_layout(buttons, &min_wide); - -#ifdef KEY_RESIZE - retry: -#endif - dlg_auto_size(title, "", &height, &width, MIN_HIGH + min_items, min_wide); - - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - dialog = dlg_new_window(height, width, - dlg_box_y_ordinate(height), - dlg_box_x_ordinate(width)); - dlg_register_window(dialog, "fselect", binding); - dlg_register_buttons(dialog, "fselect", buttons); - - dlg_mouse_setbase(0, 0); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - - /* Draw the input field box */ - tbox_height = 1; - tbox_width = width - (4 * MARGIN + 2); - tbox_y = height - (BTN_HIGH * 2) + MARGIN; - tbox_x = (width - tbox_width) / 2; - - w_text = dlg_der_window(dialog, tbox_height, tbox_width, tbox_y, tbox_x); - if (w_text == 0) { - result = DLG_EXIT_ERROR; - goto finish; - } - - dlg_draw_box(dialog, tbox_y - MARGIN, tbox_x - MARGIN, - (2 * MARGIN + 1), tbox_width + (MARGIN + EXT_WIDE), - menubox_border_attr, menubox_border2_attr); - dlg_mouse_mkbigregion(getbegy(dialog) + tbox_y - MARGIN, - getbegx(dialog) + tbox_x - MARGIN, - 1 + (2 * MARGIN), - tbox_width + (MARGIN + EXT_WIDE), - MOUSE_T, 1, 1, 3 /* doesn't matter */ ); - - dlg_register_window(w_text, "fselect2", binding2); - - /* Draw the directory listing box */ - if (dselect) - dbox_width = (width - (6 * MARGIN)); - else - dbox_width = (width - (6 * MARGIN + 2 * EXT_WIDE)) / 2; - dbox_height = height - MIN_HIGH; - dbox_y = (2 * MARGIN + 1); - dbox_x = tbox_x; - - w_work = dlg_der_window(dialog, dbox_height, dbox_width, dbox_y, dbox_x); - if (w_work == 0) { - result = DLG_EXIT_ERROR; - goto finish; - } - - (void) mvwaddstr(dialog, dbox_y - (MARGIN + 1), dbox_x - MARGIN, d_label); - dlg_draw_box(dialog, - dbox_y - MARGIN, dbox_x - MARGIN, - dbox_height + (MARGIN + 1), dbox_width + (MARGIN + 1), - menubox_border_attr, menubox_border2_attr); - init_list(&d_list, dialog, w_work, MOUSE_D); - - if (!dselect) { - /* Draw the filename listing box */ - fbox_height = dbox_height; - fbox_width = dbox_width; - fbox_y = dbox_y; - fbox_x = tbox_x + dbox_width + (2 * MARGIN); - - w_work = dlg_der_window(dialog, fbox_height, fbox_width, fbox_y, fbox_x); - if (w_work == 0) { - result = DLG_EXIT_ERROR; - goto finish; - } - - (void) mvwaddstr(dialog, fbox_y - (MARGIN + 1), fbox_x - MARGIN, f_label); - dlg_draw_box(dialog, - fbox_y - MARGIN, fbox_x - MARGIN, - fbox_height + (MARGIN + 1), fbox_width + (MARGIN + 1), - menubox_border_attr, menubox_border2_attr); - init_list(&f_list, dialog, w_work, MOUSE_F); - } else { - memset(&f_list, 0, sizeof(f_list)); - } - - while (result == DLG_EXIT_UNKNOWN) { - - if (fill_lists(current, input, &d_list, &f_list, state < sTEXT)) - show_buttons = TRUE; - -#ifdef KEY_RESIZE - if (resized) { - resized = FALSE; - dlg_show_string(w_text, input, offset, inputbox_attr, - 0, 0, tbox_width, FALSE, first); - } -#endif - - /* - * The last field drawn determines where the cursor is shown: - */ - if (show_buttons) { - show_buttons = FALSE; - button = (state < 0) ? 0 : state; - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - } - - if (first_trace) { - first_trace = FALSE; - dlg_trace_win(dialog); - } - - if (state < 0) { - switch (state) { - case sTEXT: - dlg_set_focus(dialog, w_text); - break; - case sFILES: - dlg_set_focus(dialog, f_list.win); - break; - case sDIRS: - dlg_set_focus(dialog, d_list.win); - break; - } - } - - if (first) { - (void) wrefresh(dialog); - } else { - fix_arrows(&d_list); - fix_arrows(&f_list); - key = dlg_mouse_wgetch((state == sTEXT) ? w_text : dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - } - - if (key == DLGK_TOGGLE) { - key = DLGK_SELECT; - fkey = TRUE; - } - - if (fkey) { - switch (key) { - case DLGK_MOUSE(KEY_PREVIOUS): - state = sDIRS; - scroll_list(-1, which_list()); - continue; - case DLGK_MOUSE(KEY_NEXT): - state = sDIRS; - scroll_list(1, which_list()); - continue; - case DLGK_MOUSE(KEY_PPAGE): - state = sFILES; - scroll_list(-1, which_list()); - continue; - case DLGK_MOUSE(KEY_NPAGE): - state = sFILES; - scroll_list(1, which_list()); - continue; - case DLGK_PAGE_PREV: - scroll_list(-1, which_list()); - continue; - case DLGK_PAGE_NEXT: - scroll_list(1, which_list()); - continue; - case DLGK_ITEM_PREV: - if (change_list(-1, which_list())) - continue; - /* FALLTHRU */ - case DLGK_FIELD_PREV: - show_buttons = TRUE; - do { - state = dlg_prev_ok_buttonindex(state, sDIRS); - } while (!usable_state(state, &d_list, &f_list)); - continue; - case DLGK_ITEM_NEXT: - if (change_list(1, which_list())) - continue; - /* FALLTHRU */ - case DLGK_FIELD_NEXT: - show_buttons = TRUE; - do { - state = dlg_next_ok_buttonindex(state, sDIRS); - } while (!usable_state(state, &d_list, &f_list)); - continue; - case DLGK_SELECT: - completed = 0; - if (partial != 0) { - free(partial); - partial = 0; - } - if (state == sFILES && !dselect) { - completed = data_of(&f_list); - } else if (state == sDIRS) { - completed = data_of(&d_list); - } else { - if (complete(input, &d_list, &f_list, &partial)) { - completed = partial; - } - } - if (completed != 0) { - state = sTEXT; - show_buttons = TRUE; - strcpy(leaf_of(input), completed); - offset = (int) strlen(input); - dlg_show_string(w_text, input, offset, inputbox_attr, - 0, 0, tbox_width, 0, first); - if (partial != NULL) { - free(partial); - partial = 0; - } - continue; - } else { /* if (state < sTEXT) */ - (void) beep(); - continue; - } - /* FALLTHRU */ - case DLGK_ENTER: - result = (state > 0) ? dlg_enter_buttoncode(state) : DLG_EXIT_OK; - continue; - case DLGK_LEAVE: - if (state >= 0) - result = dlg_ok_buttoncode(state); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - show_buttons = TRUE; - *current = 0; - resized = TRUE; - /* repaint */ - free_list(&d_list, FALSE); - free_list(&f_list, FALSE); - _dlg_resize_cleanup(dialog); - goto retry; -#endif - default: - if (key >= DLGK_MOUSE(MOUSE_T)) { - state = sTEXT; - continue; - } else if (key >= DLGK_MOUSE(MOUSE_F)) { - if (f_list.win != 0) { - state = sFILES; - f_list.choice = (key - DLGK_MOUSE(MOUSE_F)) + f_list.offset; - display_list(&f_list); - } - continue; - } else if (key >= DLGK_MOUSE(MOUSE_D)) { - if (d_list.win != 0) { - state = sDIRS; - d_list.choice = (key - DLGK_MOUSE(MOUSE_D)) + d_list.offset; - display_list(&d_list); - } - continue; - } else if (is_DLGK_MOUSE(key) - && (code = dlg_ok_buttoncode(key - M_EVENT)) >= 0) { - result = code; - continue; - } - break; - } - } - - if (state < 0) { /* Input box selected if we're editing */ - int edit = dlg_edit_string(input, &offset, key, fkey, first); - - if (edit) { - dlg_show_string(w_text, input, offset, inputbox_attr, - 0, 0, tbox_width, 0, first); - first = FALSE; - state = sTEXT; - } - } else if ((code = dlg_char_to_button(key, buttons)) >= 0) { - result = dlg_ok_buttoncode(code); - break; - } - } - AddLastKey(); - - dlg_unregister_window(w_text); - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free_list(&d_list, FALSE); - free_list(&f_list, FALSE); - - finish: - if (partial != 0) - free(partial); - return result; -} - -/* - * Display a dialog box for entering a filename - */ -int -dialog_fselect(const char *title, const char *path, int height, int width) -{ - return dlg_fselect(title, path, height, width, FALSE); -} - -/* - * Display a dialog box for entering a directory - */ -int -dialog_dselect(const char *title, const char *path, int height, int width) -{ - return dlg_fselect(title, path, height, width, TRUE); -} diff --git a/contrib/dialog/guage.c b/contrib/dialog/guage.c deleted file mode 100644 index 5895330c6d56..000000000000 --- a/contrib/dialog/guage.c +++ /dev/null @@ -1,456 +0,0 @@ -/* - * $Id: guage.c,v 1.83 2020/03/27 20:54:43 tom Exp $ - * - * guage.c -- implements the gauge dialog - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Marc Ewing, Red Hat Software - */ - -#include <dialog.h> - -#include <errno.h> - -#define MY_LEN (MAX_LEN)/2 - -#define MIN_HIGH (4) -#define MIN_WIDE (10 + 2 * (2 + MARGIN)) - -#define isMarker(buf) !strncmp(buf, "XXX", (size_t) 3) - -typedef struct _my_obj { - DIALOG_CALLBACK obj; /* has to be first in struct */ - struct _my_obj *next; - WINDOW *text; - char *title; - char *prompt; - char prompt_buf[MY_LEN]; - int percent; - int height; - int width; - char line[MAX_LEN + 1]; -} MY_OBJ; - -static MY_OBJ *all_objects; - -static int -valid(MY_OBJ * obj) -{ - MY_OBJ *list = all_objects; - int result = 0; - - while (list != 0) { - if (list == obj) { - result = 1; - break; - } - list = list->next; - } - return result; -} - -static void -delink(MY_OBJ * obj) -{ - MY_OBJ *p = all_objects; - MY_OBJ *q = 0; - while (p != 0) { - if (p == obj) { - if (q != 0) { - q->next = p->next; - } else { - all_objects = p->next; - } - break; - } - q = p; - p = p->next; - } -} - -static int -read_data(char *buffer, FILE *fp) -{ - int result; - - if (feof(fp)) { - result = 0; - } else if (fgets(buffer, MY_LEN, fp) != 0) { - DLG_TRACE(("read_data:%s", buffer)); - buffer[MY_LEN] = '\0'; - dlg_trim_string(buffer); - result = 1; - } else { - result = -1; - } - return result; -} - -static int -decode_percent(char *buffer) -{ - char *tmp = 0; - long value = strtol(buffer, &tmp, 10); - - if (tmp != 0 && (*tmp == 0 || isspace(UCH(*tmp))) && value >= 0) { - return TRUE; - } - return FALSE; -} - -static void -repaint_text(MY_OBJ * obj) -{ - WINDOW *dialog = obj->obj.win; - - if (dialog != 0) { - int i, x; - - (void) werase(dialog); - dlg_draw_box2(dialog, 0, 0, obj->height, obj->width, dialog_attr, - border_attr, border2_attr); - - dlg_draw_title(dialog, obj->title); - - dlg_attrset(dialog, dialog_attr); - dlg_draw_helpline(dialog, FALSE); - dlg_print_autowrap(dialog, obj->prompt, obj->height, obj->width); - - dlg_draw_box2(dialog, - obj->height - 4, 2 + MARGIN, - 2 + MARGIN, obj->width - 2 * (2 + MARGIN), - dialog_attr, - border_attr, - border2_attr); - - /* - * Clear the area for the progress bar by filling it with spaces - * in the gauge-attribute, and write the percentage with that - * attribute. - */ - (void) wmove(dialog, obj->height - 3, 4); - dlg_attrset(dialog, gauge_attr); - - for (i = 0; i < (obj->width - 2 * (3 + MARGIN)); i++) - (void) waddch(dialog, ' '); - - (void) wmove(dialog, obj->height - 3, (obj->width / 2) - 2); - (void) wprintw(dialog, "%3d%%", obj->percent); - - /* - * Now draw a bar in reverse, relative to the background. - * The window attribute was useful for painting the background, - * but requires some tweaks to reverse it. - */ - x = (obj->percent * (obj->width - 2 * (3 + MARGIN))) / 100; - if ((gauge_attr & A_REVERSE) != 0) { - dlg_attroff(dialog, A_REVERSE); - } else { - dlg_attrset(dialog, A_REVERSE); - } - (void) wmove(dialog, obj->height - 3, 4); - for (i = 0; i < x; i++) { - chtype ch2 = winch(dialog); - if (gauge_attr & A_REVERSE) { - ch2 &= ~A_REVERSE; - } - (void) waddch(dialog, ch2); - } - - (void) wrefresh(dialog); - } -} - -static bool -handle_input(DIALOG_CALLBACK * cb) -{ - MY_OBJ *obj = (MY_OBJ *) cb; - bool result; - bool cleanup = FALSE; - int status; - char buf[MY_LEN + 1]; - - if (dialog_state.pipe_input == 0) { - status = -1; - cleanup = TRUE; - } else if ((status = read_data(buf, dialog_state.pipe_input)) > 0) { - - if (isMarker(buf)) { - /* - * Historically, next line should be percentage, but one of the - * worse-written clones of 'dialog' assumes the number is missing. - * (Gresham's Law applied to software). - */ - if ((status = read_data(buf, dialog_state.pipe_input)) > 0) { - - obj->prompt_buf[0] = '\0'; - if (decode_percent(buf)) - obj->percent = atoi(buf); - else - strcpy(obj->prompt_buf, buf); - - /* Rest is message text */ - while ((status = read_data(buf, dialog_state.pipe_input)) > 0 - && !isMarker(buf)) { - if (strlen(obj->prompt_buf) + strlen(buf) < - sizeof(obj->prompt_buf) - 1) { - strcat(obj->prompt_buf, buf); - } - } - - if (obj->prompt != obj->prompt_buf) - free(obj->prompt); - obj->prompt = obj->prompt_buf; - } - } else if (decode_percent(buf)) { - obj->percent = atoi(buf); - } - } else { - if (feof(dialog_state.pipe_input) || - (ferror(dialog_state.pipe_input) && errno != EINTR)) { - cleanup = TRUE; - } - } - - repaint_text(obj); - if (status > 0) { - result = TRUE; - } else { - result = FALSE; - if (cleanup) { - dlg_remove_callback(cb); - delink(obj); - } - } - - return result; -} - -static bool -handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result) -{ - bool status = TRUE; - - *result = DLG_EXIT_OK; - if (cb != 0) { - if (!fkey && (ch == ERR)) { - (void) handle_input(cb); - /* cb might be freed in handle_input */ - status = (valid((MY_OBJ *) cb) && (cb->input != 0)); - } - } else { - status = FALSE; - } - return status; -} - -static void -my_cleanup(DIALOG_CALLBACK * cb) -{ - MY_OBJ *obj = (MY_OBJ *) cb; - - if (valid(obj)) { - if (obj->prompt != obj->prompt_buf) { - free(obj->prompt); - obj->prompt = obj->prompt_buf; - } - free(obj->title); - dlg_del_window(obj->obj.win); - delink(obj); - } -} - -void -dlg_update_gauge(void *objptr, int percent) -{ - MY_OBJ *obj = (MY_OBJ *) objptr; - bool save_finish_string = dialog_state.finish_string; - - dialog_state.finish_string = TRUE; - curs_set(0); - obj->percent = percent; - repaint_text(obj); - dialog_state.finish_string = save_finish_string; -} - -/* - * (Re)Allocates an object and fills it as per the arguments - */ -void * -dlg_reallocate_gauge(void *objptr, - const char *title, - const char *cprompt, - int height, - int width, - int percent) -{ - char *prompt = dlg_strclone(cprompt); - MY_OBJ *obj; - bool save_finish_string = dialog_state.finish_string; - - dialog_state.finish_string = TRUE; - dlg_tab_correct_str(prompt); - - if (objptr == 0) { - /* create a new object */ - obj = dlg_calloc(MY_OBJ, 1); - assert_ptr(obj, "dialog_gauge"); - - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - } else { - /* reuse an existing object */ - obj = objptr; - height = obj->height; - width = obj->width; - } - - if (obj->obj.win == 0) { - /* center dialog box on screen */ - int x = dlg_box_x_ordinate(width); - int y = dlg_box_y_ordinate(height); - WINDOW *dialog = dlg_new_window(height, width, y, x); - obj->obj.win = dialog; - } - - obj->obj.input = dialog_state.pipe_input; - obj->obj.keep_win = TRUE; - obj->obj.bg_task = TRUE; - obj->obj.handle_getc = handle_my_getc; - obj->obj.handle_input = handle_input; - - if (obj->title == 0 || strcmp(obj->title, title)) { - dlg_finish_string(obj->title); - free(obj->title); - obj->title = dlg_strclone(title); - } - - dlg_finish_string(obj->prompt); - free(obj->prompt); - - obj->prompt = prompt; - obj->percent = percent; - obj->height = height; - obj->width = width; - - /* if this was a new object, link it into the list */ - if (objptr == 0) { - obj->next = all_objects; - all_objects = obj; - } - - dialog_state.finish_string = save_finish_string; - return (void *) obj; -} - -void * -dlg_allocate_gauge(const char *title, - const char *cprompt, - int height, - int width, - int percent) -{ - return dlg_reallocate_gauge(NULL, title, cprompt, height, width, percent); -} - -void -dlg_free_gauge(void *objptr) -{ - MY_OBJ *obj = (MY_OBJ *) objptr; - - if (valid(obj)) { - if (obj->title) - free(obj->title); - if (obj->prompt) - free(obj->prompt); - obj->obj.keep_win = FALSE; - dlg_remove_callback(&(obj->obj)); - delink(obj); - } - curs_set(1); -} - -/* - * Display a gauge, or progress meter. Starts at percent% and reads stdin. If - * stdin is not XXX, then it is interpreted as a percentage, and the display is - * updated accordingly. Otherwise the next line is the percentage, and - * subsequent lines up to another XXX are used for the new prompt. Note that - * the size of the window never changes, so the prompt can not get any larger - * than the height and width specified. - */ -int -dialog_gauge(const char *title, - const char *cprompt, - int height, - int width, - int percent) -{ - int fkey; - int ch, result; - void *objptr = dlg_allocate_gauge(title, cprompt, height, width, percent); - MY_OBJ *obj = (MY_OBJ *) objptr; - - DLG_TRACE(("# gauge args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("percent", percent); - - dlg_add_callback_ref((DIALOG_CALLBACK **) & obj, my_cleanup); - dlg_update_gauge(obj, percent); - - dlg_trace_win(obj->obj.win); - do { - ch = dlg_getc(obj->obj.win, &fkey); -#ifdef KEY_RESIZE - if (fkey && ch == KEY_RESIZE) { - MY_OBJ *oldobj = obj; - - dlg_will_resize(obj->obj.win); - - obj = dlg_allocate_gauge(title, - cprompt, - height, - width, - oldobj->percent); - - /* avoid breaking new window in dlg_remove_callback */ - oldobj->obj.caller = 0; - oldobj->obj.input = 0; - oldobj->obj.keep_win = FALSE; - - /* remove the old version of the gauge */ - _dlg_resize_cleanup(oldobj->obj.win); - dlg_remove_callback(&(oldobj->obj)); - - dlg_add_callback_ref((DIALOG_CALLBACK **) & obj, my_cleanup); - dlg_update_gauge(obj, obj->percent); - } -#endif - } - while (valid(obj) && handle_my_getc(&(obj->obj), ch, fkey, &result)); - - dlg_free_gauge(obj); - - return (DLG_EXIT_OK); -} diff --git a/contrib/dialog/headers-sh.in b/contrib/dialog/headers-sh.in deleted file mode 100755 index 9bad19fbd25f..000000000000 --- a/contrib/dialog/headers-sh.in +++ /dev/null @@ -1,199 +0,0 @@ -#! /bin/sh -# $Id: headers-sh.in,v 1.11 2011/10/18 23:49:13 tom Exp $ -############################################################################## -# Copyright (c) 2004-2007,2011 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Adjust includes for header files that reside in a subdirectory of -# /usr/include, etc. -# -# Parameters (the first case creates the sed script): -# $1 is the target directory -# $2 is the source directory -# or (the second case does the install, using the sed script): -# $1 is the script to use for installing -# $2 is the target directory -# $3 is the source directory -# $4 is the file to install, editing source/target/etc. - -PACKAGE=@PACKAGE@ -PKGNAME=@PACKAGE_PREFIX@ -CONFIGH=@PACKAGE_CONFIG@ -SUB_INC=@SUB_INC@ - -: ${TMPDIR:=/tmp} - -TMPSED=headers.sed - -DIGIT=0123456789 -alpha=abcdefghijklmnopqrstuvwxyz -ALPHA=ABCDEFGHIJKLMNOPQRSTUVWXYZ - -alnum=_${DIGIT}${alpha} -ALNUM=_${DIGIT}${ALPHA} -MIXED=_${DIGIT}${ALPHA}${alpha} - -pkgname=`echo "$PKGNAME" | tr "$ALPHA" "$alpha"` - -if test $# = 2 ; then - rm -f $TMPSED - DST=$1 - REF=$2 - LEAF=`basename $DST` - - # map the include-directory, if needed, to the subdirectory - case $DST in - /*/include/$LEAF) - END=`basename $DST` - for i in $REF/*.h - do - NAME=`basename $i` - echo "s/<$NAME>/<$END\/$NAME>/g" >> $TMPSED - done - ;; - *) - touch $TMPSED - ;; - esac - - # cannot do _this_ in -e options: - cat >headers.tmp <<EOF -s/^#[^ ][^ ]*// -s/[^'$MIXED']/ /g -s/[ ][ ]*/ /g -s/^ // -s/ $// -:split - h - s/ .*// - p - t next - b done -:next - x - s/^[^ ][^ ]* // - t split -:done -EOF - # pick up autoconf-style symbols used in the application's headers - for name in $REF/*.h - do - sed -e 's/^[ ][ ]*#[ ][ ]*/#/' $name \ - | egrep '^#(if|ifdef|ifndef|elif)' \ - | sed -f headers.tmp \ - | sort -u \ - | egrep '^(HAVE_|NEED_|NO_|ENABLE_|DISABLE_)' \ - | sed -e 's%^\(.*\)%s/\\<\1\\>/'${PKGNAME}'_\1/g%' >>$TMPSED - done - rm -f headers.tmp - - # pick up autoconf-defined symbols in the config.h file - for name in ` - egrep '^#define[ ][ ]*['$ALNUM']' $REF/$CONFIGH \ - | sed \ - -e 's/^#define[ ][ ]*//' \ - -e 's/[ ].*//' \ - | egrep -v "^${PACKAGE}_" \ - | sort -u` - do - echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED - done - - if test "$SUB_INC" = yes - then - echo "s,#include <${pkgname}_,#include <${PACKAGE}/${pkgname}_," >>$TMPSED - fi - - echo '/_FILE_OFFSET_BITS/d' >>$TMPSED - - # reduce the count if possible, since some old sed's limit is 100 lines - sort -u $TMPSED >headers.tmp - mv headers.tmp $TMPSED -else - PRG="" - while test $# != 3 - do - PRG="$PRG $1"; shift - done - - DST=$1 - REF=$2 - SRC=$3 - - SHOW=`basename $SRC` - TMPSRC=$TMPDIR/${SHOW}-text$$ - TMPEDT=$TMPDIR/${SHOW}-edit$$ - TMPTMP=$TMPDIR/${SHOW}-temp$$ - - echo " ... $SHOW" - test -f $REF/$SRC && SRC="$REF/$SRC" - - rm -f $TMPSRC - cat $SRC >$TMPSRC - - tmp1=1 - while true - do - tmp2=`expr $tmp1 + 49` - if test $tmp1 = 1 - then - sed "${tmp2}q" $TMPSED >$TMPEDT - else - sed "1,${tmp1}d; ${tmp2}q" $TMPSED >$TMPEDT - fi - test -s $TMPEDT || break - sed -f $TMPEDT $TMPSRC > $TMPTMP - mv $TMPTMP $TMPSRC - tmp1=$tmp2 - done - - NAME=`basename $SRC` - - # Just in case someone gzip'd manpages, remove the conflicting copy. - test -f $DST/$NAME.gz && rm -f $DST/$NAME.gz - - if test "$SUB_INC" = yes - then - case $NAME in #(vi - ${pkgname}_*) #(vi - case "$PRG" in #(vi - *install*) - test -d $DST/$PACKAGE || mkdir -p $DST/$PACKAGE - ;; - esac - NAME=$PACKAGE/$NAME - ;; - *) - NAME=$PACKAGE.h - ;; - esac - fi - - eval $PRG $TMPSRC $DST/$NAME - rm -f $TMPEDT $TMPTMP $TMPSRC -fi -# vile:ts=4 sw=4 diff --git a/contrib/dialog/help.c b/contrib/dialog/help.c deleted file mode 100644 index ea0fade3cd92..000000000000 --- a/contrib/dialog/help.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * $Id: help.c,v 1.3 2012/12/04 02:01:10 tom Exp $ - * - * help.c -- implements the help dialog - * - * Copyright 2011,2012 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> - -/* - * Display a help-file as a textbox widget. - */ -int -dialog_helpfile(const char *title, - const char *file, - int height, - int width) -{ - int result = DLG_EXIT_ERROR; - DIALOG_VARS save; - - if (!dialog_vars.in_helpfile && file != 0 && *file != '\0') { - dlg_save_vars(&save); - - dialog_vars.no_label = NULL; - dialog_vars.ok_label = NULL; - dialog_vars.help_button = FALSE; - dialog_vars.extra_button = FALSE; - dialog_vars.nook = FALSE; - - dialog_vars.in_helpfile = TRUE; - - result = dialog_textbox(title, file, height, width); - - dlg_restore_vars(&save); - } - return (result); -} diff --git a/contrib/dialog/inputbox.c b/contrib/dialog/inputbox.c deleted file mode 100644 index 1199a5c8be7f..000000000000 --- a/contrib/dialog/inputbox.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - * $Id: inputbox.c,v 1.93 2021/01/17 16:36:37 tom Exp $ - * - * inputbox.c -- implements the input box - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors: - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#define sTEXT -1 - -#define NAVIGATE_BINDINGS \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_DOWN ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), \ - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), \ - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_UP ) - -#define BTN_HIGH 1 -#define HDR_HIGH 1 -#define MIN_HIGH (HDR_HIGH + (MARGIN * 2 + 1) + (BTN_HIGH + MARGIN * 2)) -#define MIN_WIDE 26 - -/* - * Display a dialog box for entering a string - */ -int -dialog_inputbox(const char *title, const char *cprompt, int height, int width, - const char *init, const int password) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - static DLG_KEYS_BINDING binding2[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - NAVIGATE_BINDINGS, - /* no TOGGLEKEY_BINDINGS, since that includes space... */ - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - int xorg, yorg; - int x, y, box_y, box_x, box_width; - int show_buttons; - int col_offset = 0; - int chr_offset = 0; - int key, fkey, code; - int result = DLG_EXIT_UNKNOWN; - int state; - bool first; - bool edited; - char *input; - WINDOW *dialog; - WINDOW *editor; - char *prompt = dlg_strclone(cprompt); - const char **buttons = dlg_ok_labels(); - - dlg_does_output(); - - DLG_TRACE(("# inputbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2S("init", init); - DLG_TRACE2N("password", password); - - dlg_tab_correct_str(prompt); - - /* Set up the initial value */ - input = dlg_set_result(init); - edited = FALSE; - -#ifdef KEY_RESIZE - retry: -#endif - show_buttons = TRUE; - state = dialog_vars.default_button >= 0 ? dlg_default_button() : sTEXT; - first = (state == sTEXT); - key = fkey = 0; - - if (init != NULL) { - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, - MIN(MAX(dlg_count_columns(init) + 7, MIN_WIDE), - SCOLS - (dialog_vars.begin_set ? - dialog_vars.begin_x : 0))); - chr_offset = (int) strlen(init); - } else { - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE); - } - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - xorg = dlg_box_x_ordinate(width); - yorg = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, yorg, xorg); - dlg_register_window(dialog, "inputbox", binding); - dlg_register_buttons(dialog, "inputbox", buttons); - - dlg_mouse_setbase(xorg, yorg); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_draw_helpline(dialog, FALSE); - dlg_print_autowrap(dialog, prompt, height, width); - - /* Draw the input field box */ - box_width = width - 6; - getyx(dialog, y, x); - (void) x; - box_y = y + 2; - box_x = (width - box_width) / 2; - dlg_mouse_mkregion(y + 1, box_x - 1, 3, box_width + 2, 'i'); - dlg_draw_box(dialog, y + 1, box_x - 1, 3, box_width + 2, - border_attr, border2_attr); - - /* Make a window for the input-field, to associate bindings */ - editor = dlg_sub_window(dialog, 1, box_width, yorg + box_y, xorg + box_x); - dlg_register_window(editor, "inputbox2", binding2); - - if (*input != '\0') { - dlg_show_string(editor, input, chr_offset, inputbox_attr, - 0, 0, box_width, (bool) (password != 0), first); - wsyncup(editor); - wcursyncup(editor); - } - - while (result == DLG_EXIT_UNKNOWN) { - /* - * The last field drawn determines where the cursor is shown: - */ - if (show_buttons) { - show_buttons = FALSE; - col_offset = dlg_edit_offset(input, chr_offset, box_width); - (void) wmove(dialog, box_y, box_x + col_offset); - dlg_draw_buttons(dialog, height - 2, 0, buttons, state, FALSE, width); - } - - if (!first) { - if (*input != '\0' && !edited) { - dlg_show_string(editor, input, chr_offset, inputbox_attr, - 0, 0, box_width, (bool) (password != 0), first); - wmove(editor, 0, chr_offset); - wsyncup(editor); - wcursyncup(editor); - } - key = dlg_mouse_wgetch((state == sTEXT) ? editor : dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &code, &key, &fkey)) - break; - } - } - - /* - * Handle mouse clicks first, since we want to know if this is a button, - * or something that dlg_edit_string() should handle. - */ - if (fkey - && is_DLGK_MOUSE(key) - && (code = dlg_ok_buttoncode(key - M_EVENT)) >= 0) { - result = code; - continue; - } - - if (state == sTEXT) { /* Input box selected */ - int edit = dlg_edit_string(input, &chr_offset, key, fkey, first); - - if (edit) { - dlg_show_string(editor, input, chr_offset, inputbox_attr, - 0, 0, box_width, (bool) (password != 0), first); - wsyncup(editor); - wcursyncup(editor); - first = FALSE; - edited = TRUE; - continue; - } else if (first) { - first = FALSE; - continue; - } - } - - /* handle non-functionkeys */ - if (!fkey && (code = dlg_char_to_button(key, buttons)) >= 0) { - dlg_del_window(dialog); - result = dlg_ok_buttoncode(code); - continue; - } - - /* handle functionkeys */ - if (fkey) { - switch (key) { - case DLGK_MOUSE('i'): /* mouse enter events */ - state = 0; - /* FALLTHRU */ - case DLGK_FIELD_PREV: - show_buttons = TRUE; - state = dlg_prev_ok_buttonindex(state, sTEXT); - break; - case DLGK_FIELD_NEXT: - show_buttons = TRUE; - state = dlg_next_ok_buttonindex(state, sTEXT); - break; - case DLGK_TOGGLE: - case DLGK_ENTER: - dlg_del_window(dialog); - result = (state >= 0) ? dlg_enter_buttoncode(state) : DLG_EXIT_OK; - break; - case DLGK_LEAVE: - if (state >= 0) - result = dlg_ok_buttoncode(state); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - /* repaint */ - _dlg_resize_cleanup(dialog); - goto retry; -#endif - default: - beep(); - break; - } - } else if (key > 0) { - beep(); - } - } - AddLastKey(); - - dlg_unregister_window(editor); - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - return result; -} diff --git a/contrib/dialog/inputstr.c b/contrib/dialog/inputstr.c deleted file mode 100644 index 2c7bb7d0f4db..000000000000 --- a/contrib/dialog/inputstr.c +++ /dev/null @@ -1,808 +0,0 @@ -/* - * $Id: inputstr.c,v 1.91 2021/01/17 22:19:05 tom Exp $ - * - * inputstr.c -- functions for input/display of a string - * - * Copyright 2000-2019,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#include <errno.h> - -#ifdef HAVE_SETLOCALE -#include <locale.h> -#endif - -#if defined(HAVE_SEARCH_H) && defined(HAVE_TSEARCH) -#include <search.h> -#else -#undef HAVE_TSEARCH -#endif - -#ifdef NEED_WCHAR_H -#include <wchar.h> -#endif - -#if defined(USE_WIDE_CURSES) -#define USE_CACHING 1 -#elif defined(HAVE_XDIALOG) -#define USE_CACHING 1 /* editbox really needs caching! */ -#else -#define USE_CACHING 0 -#endif - -typedef struct _cache { - struct _cache *next; -#if USE_CACHING - int cache_num; /* tells what type of data is in list[] */ - const char *string_at; /* unique: associate caches by char* */ -#endif - size_t s_len; /* strlen(string) - we add 1 for EOS */ - size_t i_len; /* length(list) - we add 1 for EOS */ - char *string; /* a copy of the last-processed string */ - int *list; /* indices into the string */ -} CACHE; - -#if USE_CACHING -#define SAME_CACHE(c,s,l) (c->string != 0 && memcmp(c->string,s,l) == 0) - -static CACHE *cache_list; - -typedef enum { - cInxCols - ,cCntWideBytes - ,cCntWideChars - ,cInxWideChars - ,cMAX -} CACHE_USED; - -#ifdef HAVE_TSEARCH -static void *sorted_cache; -#endif - -#ifdef USE_WIDE_CURSES -static int -have_locale(void) -{ - static int result = -1; - if (result < 0) { - char *test = setlocale(LC_ALL, 0); - if (test == 0 || *test == 0) { - result = FALSE; - } else if (strcmp(test, "C") && strcmp(test, "POSIX")) { - result = TRUE; - } else { - result = FALSE; - } - } - return result; -} -#endif - -#ifdef HAVE_TSEARCH - -#if 0 -static void -show_tsearch(const void *nodep, const VISIT which, const int depth) -{ - const CACHE *p = *(CACHE * const *) nodep; - (void) depth; - if (which == postorder || which == leaf) { - DLG_TRACE(("# cache %p %p:%s\n", p, p->string, p->string)); - } -} - -static void -trace_cache(const char *fn, int ln) -{ - DLG_TRACE(("# trace_cache %s@%d\n", fn, ln)); - twalk(sorted_cache, show_tsearch); -} - -#else -#define trace_cache(fn, ln) /* nothing */ -#endif - -#define CMP(a,b) (((a) > (b)) ? 1 : (((a) < (b)) ? -1 : 0)) - -static int -compare_cache(const void *a, const void *b) -{ - const CACHE *p = (const CACHE *) a; - const CACHE *q = (const CACHE *) b; - int result = CMP(p->cache_num, q->cache_num); - if (result == 0) - result = CMP(p->string_at, q->string_at); - return result; -} -#endif - -static CACHE * -find_cache(int cache_num, const char *string) -{ - CACHE *p; - -#ifdef HAVE_TSEARCH - void *pp; - CACHE find; - - memset(&find, 0, sizeof(find)); - find.cache_num = cache_num; - find.string_at = string; - - if ((pp = tfind(&find, &sorted_cache, compare_cache)) != 0) { - p = *(CACHE **) pp; - } else { - p = 0; - } -#else - for (p = cache_list; p != 0; p = p->next) { - if (p->string_at == string) { - break; - } - } -#endif - return p; -} - -static CACHE * -make_cache(int cache_num, const char *string) -{ - CACHE *p; - - p = dlg_calloc(CACHE, 1); - assert_ptr(p, "load_cache"); - p->next = cache_list; - cache_list = p; - - p->cache_num = cache_num; - p->string_at = string; - -#ifdef HAVE_TSEARCH - (void) tsearch(p, &sorted_cache, compare_cache); -#endif - return p; -} - -static CACHE * -load_cache(int cache_num, const char *string) -{ - CACHE *p; - - if ((p = find_cache(cache_num, string)) == 0) { - p = make_cache(cache_num, string); - } - return p; -} -#else -static CACHE my_cache; -#define SAME_CACHE(c,s,l) (c->string != 0) -#define load_cache(cache, string) &my_cache -#endif /* USE_CACHING */ - -/* - * If the given string has not changed, we do not need to update the index. - * If we need to update the index, allocate enough memory for it. - */ -static bool -same_cache2(CACHE * cache, const char *string, unsigned i_len) -{ - size_t s_len = strlen(string); - bool result = TRUE; - - if (cache->s_len == 0 - || cache->s_len < s_len - || cache->list == 0 - || !SAME_CACHE(cache, string, (size_t) s_len)) { - unsigned need = (i_len + 1); - - if (cache->list == 0) { - cache->list = dlg_malloc(int, need); - } else if (cache->i_len < i_len) { - cache->list = dlg_realloc(int, need, cache->list); - } - assert_ptr(cache->list, "load_cache"); - cache->i_len = i_len; - - if (cache->s_len >= s_len && cache->string != 0) { - strcpy(cache->string, string); - } else { - if (cache->string != 0) - free(cache->string); - cache->string = dlg_strclone(string); - } - cache->s_len = s_len; - - result = FALSE; - } - return result; -} - -#ifdef USE_WIDE_CURSES -/* - * Like same_cache2(), but we are only concerned about caching a copy of the - * string and its associated length. - */ -static bool -same_cache1(CACHE * cache, const char *string, size_t i_len) -{ - size_t s_len = strlen(string); - bool result = TRUE; - - if (cache->s_len != s_len - || !SAME_CACHE(cache, string, (size_t) s_len)) { - - if (cache->s_len >= s_len && cache->string != 0) { - strcpy(cache->string, string); - } else { - if (cache->string != 0) - free(cache->string); - cache->string = dlg_strclone(string); - } - cache->s_len = s_len; - cache->i_len = i_len; - - result = FALSE; - } - return result; -} -#endif /* USE_CACHING */ - -/* - * Counts the number of bytes that make up complete wide-characters, up to byte - * 'len'. If there is no locale set, simply return the original length. - */ -#ifdef USE_WIDE_CURSES -static int -dlg_count_wcbytes(const char *string, size_t len) -{ - int result; - - if (have_locale()) { - CACHE *cache = load_cache(cCntWideBytes, string); - if (!same_cache1(cache, string, len)) { - while (len != 0) { - size_t code = 0; - const char *src = cache->string; - mbstate_t state; - char save = cache->string[len]; - - cache->string[len] = '\0'; - memset(&state, 0, sizeof(state)); - code = mbsrtowcs((wchar_t *) 0, &src, len, &state); - cache->string[len] = save; - if ((int) code >= 0) { - break; - } - --len; - } - cache->i_len = len; - } - result = (int) cache->i_len; - } else { - result = (int) len; - } - return result; -} -#endif /* USE_WIDE_CURSES */ - -/* - * Counts the number of wide-characters in the string. - */ -int -dlg_count_wchars(const char *string) -{ - int result; -#ifdef USE_WIDE_CURSES - - if (have_locale()) { - size_t len = strlen(string); - CACHE *cache = load_cache(cCntWideChars, string); - - if (!same_cache1(cache, string, len)) { - const char *src = cache->string; - mbstate_t state; - int part = dlg_count_wcbytes(cache->string, len); - char save = cache->string[part]; - wchar_t *temp = dlg_calloc(wchar_t, len + 1); - - if (temp != 0) { - size_t code; - - cache->string[part] = '\0'; - memset(&state, 0, sizeof(state)); - code = mbsrtowcs(temp, &src, (size_t) part, &state); - cache->i_len = ((int) code >= 0) ? wcslen(temp) : 0; - cache->string[part] = save; - free(temp); - } else { - cache->i_len = 0; - } - } - result = (int) cache->i_len; - } else -#endif /* USE_WIDE_CURSES */ - { - result = (int) strlen(string); - } - return result; -} - -/* - * Build an index of the wide-characters in the string, so we can easily tell - * which byte-offset begins a given wide-character. - */ -const int * -dlg_index_wchars(const char *string) -{ - unsigned len = (unsigned) dlg_count_wchars(string); - CACHE *cache = load_cache(cInxWideChars, string); - - if (!same_cache2(cache, string, len)) { - const char *current = string; - unsigned inx; - - cache->list[0] = 0; - for (inx = 1; inx <= len; ++inx) { -#ifdef USE_WIDE_CURSES - if (have_locale()) { - mbstate_t state; - int width; - memset(&state, 0, sizeof(state)); - width = (int) mbrlen(current, strlen(current), &state); - if (width <= 0) - width = 1; /* FIXME: what if we have a control-char? */ - current += width; - cache->list[inx] = cache->list[inx - 1] + width; - } else -#endif /* USE_WIDE_CURSES */ - { - (void) current; - cache->list[inx] = (int) inx; - } - } - } - return cache->list; -} - -/* - * Given the character-offset to find in the list, return the corresponding - * array index. - */ -int -dlg_find_index(const int *list, int limit, int to_find) -{ - int result; - for (result = 0; result <= limit; ++result) { - if (to_find == list[result] - || result == limit - || ((result < limit) && (to_find < list[result + 1]))) { - break; - } - } - return result; -} - -/* - * Build a list of the display-columns for the given string's characters. - */ -const int * -dlg_index_columns(const char *string) -{ - unsigned len = (unsigned) dlg_count_wchars(string); - CACHE *cache = load_cache(cInxCols, string); - - if (!same_cache2(cache, string, len)) { - - cache->list[0] = 0; -#ifdef USE_WIDE_CURSES - if (have_locale()) { - unsigned inx; - size_t num_bytes = strlen(string); - const int *inx_wchars = dlg_index_wchars(string); - mbstate_t state; - - for (inx = 0; inx < len; ++inx) { - int result; - - if (string[inx_wchars[inx]] == TAB) { - result = ((cache->list[inx] | 7) + 1) - cache->list[inx]; - } else { - wchar_t temp[2]; - size_t check; - - memset(&state, 0, sizeof(state)); - memset(temp, 0, sizeof(temp)); - check = mbrtowc(temp, - string + inx_wchars[inx], - num_bytes - (size_t) inx_wchars[inx], - &state); - if ((int) check <= 0) { - result = 1; - } else { - result = wcwidth(temp[0]); - } - if (result < 0) { - const wchar_t *printable; - cchar_t temp2, *temp2p = &temp2; - setcchar(temp2p, temp, 0, 0, 0); - printable = wunctrl(temp2p); - result = printable ? (int) wcslen(printable) : 1; - } - } - cache->list[inx + 1] = result; - if (inx != 0) - cache->list[inx + 1] += cache->list[inx]; - } - } else -#endif /* USE_WIDE_CURSES */ - { - unsigned inx; - - for (inx = 0; inx < len; ++inx) { - chtype ch = UCH(string[inx]); - - if (ch == TAB) - cache->list[inx + 1] = - ((cache->list[inx] | 7) + 1) - cache->list[inx]; - else if (isprint(UCH(ch))) - cache->list[inx + 1] = 1; - else { - const char *printable; - printable = unctrl(ch); - cache->list[inx + 1] = (printable - ? (int) strlen(printable) - : 1); - } - if (inx != 0) - cache->list[inx + 1] += cache->list[inx]; - } - } - } - return cache->list; -} - -/* - * Returns the number of columns used for a string. That happens to be the - * end-value of the cols[] array. - */ -int -dlg_count_columns(const char *string) -{ - int result = 0; - int limit = dlg_count_wchars(string); - if (limit > 0) { - const int *cols = dlg_index_columns(string); - result = cols[limit]; - } else { - result = (int) strlen(string); - } - dlg_finish_string(string); - return result; -} - -/* - * Given a column limit, count the number of wide characters that can fit - * into that limit. The offset is used to skip over a leading character - * that was already written. - */ -int -dlg_limit_columns(const char *string, int limit, int offset) -{ - const int *cols = dlg_index_columns(string); - int result = dlg_count_wchars(string); - - while (result > 0 && (cols[result] - cols[offset]) > limit) - --result; - return result; -} - -/* - * Updates the string and character-offset, given various editing characters - * or literal characters which are inserted at the character-offset. - */ -bool -dlg_edit_string(char *string, int *chr_offset, int key, int fkey, bool force) -{ - int i; - int len = (int) strlen(string); - int limit = dlg_count_wchars(string); - const int *indx = dlg_index_wchars(string); - int offset = dlg_find_index(indx, limit, *chr_offset); - int max_len = dlg_max_input(MAX_LEN); - bool edit = TRUE; - - /* transform editing characters into equivalent function-keys */ - if (!fkey) { - fkey = TRUE; /* assume we transform */ - switch (key) { - case 0: - break; - case ESC: - case TAB: - fkey = FALSE; /* this is used for navigation */ - break; - default: - fkey = FALSE; /* ...no, we did not transform */ - break; - } - } - - if (fkey) { - switch (key) { - case 0: /* special case for loop entry */ - edit = force; - break; - case DLGK_GRID_LEFT: - if (*chr_offset && offset > 0) - *chr_offset = indx[offset - 1]; - break; - case DLGK_GRID_RIGHT: - if (offset < limit) - *chr_offset = indx[offset + 1]; - break; - case DLGK_BEGIN: - if (*chr_offset) - *chr_offset = 0; - break; - case DLGK_FINAL: - if (offset < limit) - *chr_offset = indx[limit]; - break; - case DLGK_DELETE_LEFT: - if (offset) { - int gap = indx[offset] - indx[offset - 1]; - *chr_offset = indx[offset - 1]; - if (gap > 0) { - for (i = *chr_offset; - (string[i] = string[i + gap]) != '\0'; - i++) { - ; - } - } - } - break; - case DLGK_DELETE_RIGHT: - if (limit) { - if (--limit == 0) { - string[*chr_offset = 0] = '\0'; - } else { - int gap = ((offset <= limit) - ? (indx[offset + 1] - indx[offset]) - : 0); - if (gap > 0) { - for (i = indx[offset]; - (string[i] = string[i + gap]) != '\0'; - i++) { - ; - } - } else if (offset > 0) { - string[indx[offset - 1]] = '\0'; - } - if (*chr_offset > indx[limit]) - *chr_offset = indx[limit]; - } - } - break; - case DLGK_DELETE_ALL: - string[*chr_offset = 0] = '\0'; - break; - case DLGK_ENTER: - edit = 0; - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - edit = 0; - break; -#endif - case DLGK_GRID_UP: - case DLGK_GRID_DOWN: - case DLGK_FIELD_NEXT: - case DLGK_FIELD_PREV: - edit = 0; - break; - case ERR: - edit = 0; - break; - default: - beep(); - break; - } - } else { - if (key == ESC || key == ERR) { - edit = 0; - } else { - if (len < max_len) { - for (i = ++len; i > *chr_offset; i--) - string[i] = string[i - 1]; - string[*chr_offset] = (char) key; - *chr_offset += 1; - } else { - (void) beep(); - } - } - } - return edit; -} - -static void -compute_edit_offset(const char *string, - int chr_offset, - int x_last, - int *p_dpy_column, - int *p_scroll_amt) -{ - const int *cols = dlg_index_columns(string); - const int *indx = dlg_index_wchars(string); - int limit = dlg_count_wchars(string); - int offset = dlg_find_index(indx, limit, chr_offset); - int offset2; - int dpy_column; - int n; - - for (n = offset2 = 0; n <= offset; ++n) { - if ((cols[offset] - cols[n]) < x_last - && (offset == limit || (cols[offset + 1] - cols[n]) < x_last)) { - offset2 = n; - break; - } - } - - dpy_column = cols[offset] - cols[offset2]; - - if (p_dpy_column != 0) - *p_dpy_column = dpy_column; - if (p_scroll_amt != 0) - *p_scroll_amt = offset2; -} - -/* - * Given the character-offset in the string, returns the display-offset where - * we will position the cursor. - */ -int -dlg_edit_offset(char *string, int chr_offset, int x_last) -{ - int result; - - compute_edit_offset(string, chr_offset, x_last, &result, 0); - - return result; -} - -/* - * Displays the string, shifted as necessary, to fit within the box and show - * the current character-offset. - */ -void -dlg_show_string(WINDOW *win, - const char *string, /* string to display (may be multibyte) */ - int chr_offset, /* character (not bytes) offset */ - chtype attr, /* window-attributes */ - int y_base, /* beginning row on screen */ - int x_base, /* beginning column on screen */ - int x_last, /* number of columns on screen */ - bool hidden, /* if true, do not echo */ - bool force) /* if true, force repaint */ -{ - x_last = MIN(x_last + x_base, getmaxx(win)) - x_base; - - if (hidden && !dialog_vars.insecure) { - if (force) { - (void) wmove(win, y_base, x_base); - wrefresh(win); - } - } else { - const int *cols = dlg_index_columns(string); - const int *indx = dlg_index_wchars(string); - int limit = dlg_count_wchars(string); - - int i, j, k; - int input_x; - int scrollamt; - - compute_edit_offset(string, chr_offset, x_last, &input_x, &scrollamt); - - dlg_attrset(win, attr); - (void) wmove(win, y_base, x_base); - for (i = scrollamt, k = 0; i < limit && k < x_last; ++i) { - int check = cols[i + 1] - cols[scrollamt]; - if (check <= x_last) { - for (j = indx[i]; j < indx[i + 1]; ++j) { - chtype ch = UCH(string[j]); - if (hidden && dialog_vars.insecure) { - waddch(win, '*'); - } else if (ch == TAB) { - int count = cols[i + 1] - cols[i]; - while (--count >= 0) - waddch(win, ' '); - } else { - waddch(win, ch); - } - } - k = check; - } else { - break; - } - } - while (k++ < x_last) - waddch(win, ' '); - (void) wmove(win, y_base, x_base + input_x); - wrefresh(win); - } -} - -/* - * Discard cached data for the given string. - */ -void -dlg_finish_string(const char *string) -{ -#if USE_CACHING - if ((string != 0) && dialog_state.finish_string) { - CACHE *p = cache_list; - CACHE *q = 0; - CACHE *r; - - while (p != 0) { - if (p->string_at == string) { -#ifdef HAVE_TSEARCH - if (tdelete(p, &sorted_cache, compare_cache) == 0) { - continue; - } - trace_cache(__FILE__, __LINE__); -#endif - if (p->string != 0) - free(p->string); - if (p->list != 0) - free(p->list); - if (p == cache_list) { - cache_list = p->next; - r = cache_list; - } else { - q->next = p->next; - r = q; - } - free(p); - p = r; - } else { - q = p; - p = p->next; - } - } - } -#else - (void) string; -#endif -} - -#ifdef NO_LEAKS -void -_dlg_inputstr_leaks(void) -{ -#if USE_CACHING - dialog_state.finish_string = TRUE; - trace_cache(__FILE__, __LINE__); - while (cache_list != 0) { - dlg_finish_string(cache_list->string_at); - } -#endif /* USE_CACHING */ -} -#endif /* NO_LEAKS */ diff --git a/contrib/dialog/install-sh b/contrib/dialog/install-sh deleted file mode 100755 index 462fa9c3d57b..000000000000 --- a/contrib/dialog/install-sh +++ /dev/null @@ -1,294 +0,0 @@ -#! /bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 - shift - - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi - - pathcomp=$pathcomp/ -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` - else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` - else - : - fi - -# Make a couple of temp file names in the proper directory. - - dsttmp=$dstdir/#inst.$$# - rmtmp=$dstdir/#rm.$$# - -# Trap to clean up temp files at exit. - - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - -# Move or copy the file name to the temp name - - $doit $instcmd "$src" "$dsttmp" && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && - -# Now remove or move aside any old file at destination location. We try this -# two ways since rm can't unlink itself on some systems and the destination -# file might be busy for other reasons. In this case, the final cleanup -# might fail but the new file should still install successfully. - -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} diff --git a/contrib/dialog/makefile.in b/contrib/dialog/makefile.in deleted file mode 100644 index f87ff176dfa9..000000000000 --- a/contrib/dialog/makefile.in +++ /dev/null @@ -1,363 +0,0 @@ -# $Id: makefile.in,v 1.103 2021/01/11 09:03:36 tom Exp $ -# template makefile for DIALOG -############################################################################## -# Copyright (c) 1999-2020,2021 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -SHELL = /bin/sh - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ - -top_builddir = . - -x = @EXEEXT@ -o = .@OBJEXT@ - -DESTDIR = @DESTDIR@ - -THIS = dialog - -CFG_ROOTNAME = @CFG_ROOTNAME@ -HDR_ROOTNAME = @HDR_ROOTNAME@ -LIB_ROOTNAME = @LIB_ROOTNAME@ -LIB_PREFIX = @LIB_PREFIX@ -LIB_SUFFIX = @LIB_SUFFIX@ - -VERSION_MAJOR = @VERSION_MAJOR@ -VERSION_MINOR = @VERSION_MINOR@ -VERSION = $(VERSION_MAJOR).$(VERSION_MINOR) -REL_VERSION = @REL_VERSION@ -ABI_VERSION = @ABI_VERSION@ -LIB_ROOTNAME = @LIB_ROOTNAME@ - -RESULTING_SYMS = @RESULTING_SYMS@ -VERSIONED_SYMS = @VERSIONED_SYMS@ - -@SET_SHLIB_VARS@ - -bindir = @bindir@ -includedir = @includedir@ -libdir = @libdir@ -mandir = @mandir@ -manext = 1 -libext = 3 - -BINDIR = $(DESTDIR)$(bindir) -INCLUDEDIR = $(DESTDIR)$(includedir) -LIBDIR = $(DESTDIR)$(libdir) -MANDIR = $(DESTDIR)$(mandir) - -MAN1DIR = $(MANDIR)/man1 -MAN3DIR = $(MANDIR)/man3 - -# see po/makefile -localedir = $(prefix)/@DATADIRNAME@/locale - -CFLAGS = @CFLAGS@ -CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLOCALEDIR=\"$(localedir)\" -EXTRA_CFLAGS = @EXTRA_CFLAGS@ -CC = @CC@ -CPP = @CPP@ -AR = @AR@ -ARFLAGS = @ARFLAGS@ -LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@ -LIBS = @LIBS@ @INTLLIBS@ -RANLIB = @LIB_PREP@ - -RM = rm -f -LN_S = @LN_S@ -LINT = @LINT@ -LINT_OPTS = @LINT_OPTS@ - -CTAGS = @CTAGS@ -ETAGS = @ETAGS@ - -RPATH_LIST = @RPATH_LIST@ -LIBTOOL = @LIBTOOL@ @ECHO_LT@ -LIBTOOL_OPTS = @LIBTOOL_OPTS@ -LIBTOOL_CLEAN = @LIB_CLEAN@ -LIBTOOL_COMPILE = @LIB_COMPILE@ -LIBTOOL_CREATE = @LIB_CREATE@ -LIBTOOL_LINK = @LIB_LINK@ -LIBTOOL_INSTALL = @LIB_INSTALL@ -LIBTOOL_UNINSTALL = @LIB_UNINSTALL@ -LIBTOOL_VERSION = @LIBTOOL_VERSION@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = $(LIBTOOL_INSTALL) @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_DATA = @INSTALL_DATA@ - -LINK = $(LIBTOOL_LINK) - -# The library is always named for the package, but the program can be further -# renamed at install time, starting with the package name. -PACKAGE = @PACKAGE@ -ACTUAL_PROG = `echo $(PACKAGE) |sed @program_transform_name@` -LIB_CONFIG = $(CFG_ROOTNAME)-config - -# The library name $(LIB) is set at configure/make time, since it is used as a -# makefile target. Ditto for $(PROG). -LIB = @LIB_TARGET@ -PROG = @PACKAGE@$x -# -# Standard .c to .o compile line. -# -.SUFFIXES: .c .i $o .1 .man .txt @MAN2HTML_NOTE@ .html @GROFF_NOTE@ .ps .pdf -.c.i : - @RULE_CC@ - @ECHO_CC@$(CPP) $(CPPFLAGS) -c $< >$@ -.c$o : - @RULE_CC@ - @ECHO_CC@$(LIBTOOL_COMPILE) $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c $< - -@NROFF_NOTE@.1.txt : -@NROFF_NOTE@ GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | nroff -rHY=0 -Tascii -man | col -bx" >$@ - -@MAN2HTML_NOTE@.1.html : -@MAN2HTML_NOTE@ ./@MAN2HTML_TEMP@ $* 1 man >$@ -@MAN2HTML_NOTE@ -@GROFF_NOTE@.1.ps : -@GROFF_NOTE@ $(SHELL) -c "tbl $< | groff -man" >$@ -@GROFF_NOTE@ -@GROFF_NOTE@.ps.pdf : -@GROFF_NOTE@ ps2pdf $*.ps - -EXTRAOBJS = @EXTRAOBJS@ -OBJECTS = $(EXTRAOBJS) \ - argv$o \ - arrows$o \ - buttons$o \ - checklist$o \ - columns$o \ - dlg_keys$o \ - editbox$o \ - help$o \ - inputbox$o \ - inputstr$o \ - menubox$o \ - mouse$o \ - mousewget$o \ - msgbox$o \ - textbox$o \ - ttysize$o \ - ui_getc$o \ - util$o \ - version$o \ - yesno$o - -LIB_OBJECT = @LIB_OBJECT@ - -SRCS = $(OBJECTS:$o=.c) -HDRS = \ - dialog.h \ - dlg_colors.h \ - dlg_config.h \ - dlg_keys.h - -ALL = $(LIB) $(PROG) - -BIN_DIRS = $(BINDIR) $(MAN1DIR) -LIB_DIRS = $(LIBDIR) $(INCLUDEDIR) - -PO_DIR = $(srcdir)/po - -all :: $(ALL) - -@LIBTOOL_MAKE@install :: install-lib -@LIBTOOL_MAKE@uninstall :: uninstall-lib - -@INTLDIR_MAKE@@INTLLIBS@ : -@INTLDIR_MAKE@ @echo "Building GNU gettext library..." -@INTLDIR_MAKE@ @cd intl && $(MAKE) @cf_cv_makeflags@ - -dialog$o \ -$(OBJECTS) : $(srcdir)/dialog.h $(srcdir)/dlg_keys.h dlg_config.h VERSION - -$(PROG) : $(LIB) dialog$o @INTLDIR_MAKE@ @INTLLIBS@ - $(LINK) -o $@ dialog$o -L. -l@PACKAGE@ $(CFLAGS) $(LDFLAGS) $(LIBS) - -clean \ -distclean \ -install \ -install-full \ -install-strip \ -uninstall :: - @echo making $@ -@INTLDIR_MAKE@ @-test -f intl/makefile && cd intl && $(MAKE) @cf_cv_makeflags@ $@ -@MSG_DIR_MAKE@ @-test -f po/makefile && cd po && $(MAKE) @cf_cv_makeflags@ $@ - -clean :: - @- $(RM) -r autom4te.cache - - $(RM) *.*cov *.da *.bb *.bbg - - $(LIBTOOL_CLEAN) $(RM) *.i *$o $(ALL) - - $(RM) headers.sed - - $(RM) *.html *.pdf *.png *.ps *.txt dialog_lib.1 - - $(RM) core *~ tags TAGS - -distclean :: clean - $(RM) intl/libintl.h intl/po2tbl.sed - $(RM) makefile dlg_config.h config.cache config.log config.status - $(RM) samples/install/makefile - $(RM) headers-sh - $(RM) man2html.* - $(RM) dialog-config - -check : - @echo "Verify that create-rc works" - $(SHELL) -c "DIALOG=./$(PROG) ./run_test.sh $(srcdir)/samples" - -install :: install-bin install-man - @echo "made $@" - -install-full :: install-lib install-bin install-man - @echo "made $@" - -install-strip :: $(PROG) $(BINDIR) - $(INSTALL_PROGRAM) -s $(PROG) $(BINDIR) - -uninstall :: uninstall-bin uninstall-man - @echo "made $@" - -uninstall-full :: uninstall-bin uninstall-man uninstall-lib - @echo "made $@" - -install-bin : $(PROG) $(BINDIR) - $(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(ACTUAL_PROG)$x - -uninstall-bin : - $(RM) $(BINDIR)/$(ACTUAL_PROG)$x - -install-man :: $(MAN1DIR) - @ echo "** installing $(ACTUAL_PROG).$(manext)" - @ $(SHELL) $(srcdir)/rename.sh \ - $(srcdir)/dialog.1 \ - $(MAN1DIR)/$(ACTUAL_PROG).$(manext) \ - $(ACTUAL_PROG) \ - @PACKAGE@ \ - $(INSTALL_DATA) - -uninstall-man :: - $(RM) $(MAN1DIR)/$(ACTUAL_PROG).$(manext) - -# most users do not want/need the library, so the install rules are distinct. -install-lib :: $(BINDIR) dialog-config - @ echo "** installing config script in $(BINDIR)" - @ $(INSTALL_SCRIPT) dialog-config $(BINDIR)/$(LIB_CONFIG) - -install-lib :: $(LIB_DIRS) $(LIB) headers.sed - @ echo "** installing library in $(LIBDIR)" - @ $(LIBTOOL_INSTALL) $(INSTALL_DATA) $(LIB) $(LIBDIR) - @ echo "** installing headers in $(INCLUDEDIR)" - @ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dialog.h - @ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dlg_colors.h - @ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dlg_keys.h - @ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) . dlg_config.h - -uninstall-lib :: $(BINDIR) - $(RM) $(BINDIR)/$(LIB_CONFIG) - -uninstall-lib :: $(LIB_DIRS) - - $(LIBTOOL_UNINSTALL) $(RM) $(LIBDIR)/$(LIB) - @ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dialog.h - @ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_colors.h - @ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_keys.h - @ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) . dlg_config.h - -install-lib :: $(MAN3DIR) - @ echo "** installing @PACKAGE@.$(libext)" - @ $(SHELL) $(srcdir)/rename.sh \ - $(srcdir)/dialog.3 \ - $(MAN3DIR)/@PACKAGE@.$(libext) \ - $(ACTUAL_PROG) \ - @PACKAGE@ \ - $(INSTALL_DATA) - -uninstall-lib :: - $(RM) $(MAN3DIR)/@PACKAGE@.$(libext) - -headers.sed : headers-sh - $(SHELL) headers-sh $(INCLUDEDIR) $(srcdir) - -################################################################################ -TOP_DOCS = \ -@NROFF_NOTE@ dialog.txt \ -@MAN2HTML_NOTE@ dialog.html \ -@GROFF_NOTE@ dialog.pdf \ -@GROFF_NOTE@ dialog.ps - -dialog.html : dialog.1 -dialog.pdf : dialog.ps -dialog.ps : dialog.1 -dialog.txt : dialog.1 -################################################################################ -# rename, to use suffix-rules -dialog_lib.1 : dialog.3 - -$(RM) $@ - cp dialog.3 $@ - -LIB_DOCS = \ - dialog_lib.1 \ -@NROFF_NOTE@ dialog_lib.txt \ -@MAN2HTML_NOTE@ dialog_lib.html \ -@GROFF_NOTE@ dialog_lib.pdf \ -@GROFF_NOTE@ dialog_lib.ps - -dialog_lib.html : dialog_lib.1 -dialog_lib.pdf : dialog_lib.ps -dialog_lib.ps : dialog_lib.1 -dialog_lib.txt : dialog_lib.1 -################################################################################ -docs: $(TOP_DOCS) $(LIB_DOCS) -clean-docs: - -$(RM) $(TOP_DOCS) $(LIB_DOCS) -################################################################################ - -$(MAN1DIR) \ -$(MAN3DIR) \ -$(BINDIR) \ -$(INCLUDEDIR) \ -$(LIBDIR) : ; mkdir -p $@ - -@MAKE_LOWER_TAGS@tags : -@MAKE_LOWER_TAGS@ $(CTAGS) $(SRCS) $(HDRS) - -@MAKE_LOWER_TAGS@TAGS : -@MAKE_LOWER_TAGS@ $(ETAGS) $(SRCS) $(HDRS) - -update-po: - rsync -Lrtvz translationproject.org::tp/latest/dialog/ $(PO_DIR) - test -f $(PO_DIR)/makefile && cd $(PO_DIR) && $(MAKE) $@ - -lint: - $(LINT) $(LINT_OPTS) $(CPPFLAGS) *.c diff --git a/contrib/dialog/menubox.c b/contrib/dialog/menubox.c deleted file mode 100644 index c2fda7694cc3..000000000000 --- a/contrib/dialog/menubox.c +++ /dev/null @@ -1,814 +0,0 @@ -/* - * $Id: menubox.c,v 1.171 2020/11/23 21:03:11 tom Exp $ - * - * menubox.c -- implements the menu box - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public Licens, version 2.1e - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -typedef enum { - Unselected = 0, - Selected, - Editing -} Mode; - -typedef struct { - /* the outer-window */ - WINDOW *dialog; - int box_y; - int box_x; - int tag_x; - int item_x; - int menu_height; - int menu_width; - /* the inner-window */ - WINDOW *menu; - DIALOG_LISTITEM *items; - int item_no; -} ALL_DATA; - -#define MIN_HIGH (1 + (5 * MARGIN)) - -#define INPUT_ROWS 3 /* rows per inputmenu entry */ - -#define RowHeight(i) (is_inputmenu ? ((i) * INPUT_ROWS) : ((i) * 1)) -#define ItemToRow(i) (is_inputmenu ? ((i) * INPUT_ROWS + 1) : (i)) -#define RowToItem(i) (is_inputmenu ? ((i) / INPUT_ROWS + 0) : (i)) - -/* - * Print menu item - */ -static void -print_item(ALL_DATA * data, - WINDOW *win, - DIALOG_LISTITEM * item, - int choice, - Mode selected, - bool is_inputmenu) -{ - chtype save = dlg_get_attrs(win); - int climit = (data->item_x - data->tag_x - GUTTER); - int my_width = data->menu_width; - int my_x = data->item_x; - int my_y = ItemToRow(choice); - bool both = (!dialog_vars.no_tags && !dialog_vars.no_items); - bool first = TRUE; - chtype bordchar; - const char *show = (dialog_vars.no_items - ? item->name - : item->text); - - switch (selected) { - default: - case Unselected: - bordchar = item_attr; - break; - case Selected: - bordchar = item_selected_attr; - break; - case Editing: - bordchar = dialog_attr; - break; - } - - /* Clear 'residue' of last item and mark current current item */ - if (is_inputmenu) { - int n; - - dlg_attrset(win, (selected != Unselected) ? item_selected_attr : item_attr); - for (n = my_y - 1; n < my_y + INPUT_ROWS - 1; n++) { - wmove(win, n, 0); - wprintw(win, "%*s", my_width, " "); - } - } else { - dlg_attrset(win, menubox_attr); - wmove(win, my_y, 0); - wprintw(win, "%*s", my_width, " "); - } - - /* highlight first char of the tag to be special */ - if (both) { - (void) wmove(win, my_y, data->tag_x); - dlg_print_listitem(win, item->name, climit, first, selected); - first = FALSE; - } - - /* Draw the input field box (only for inputmenu) */ - (void) wmove(win, my_y, my_x); - if (is_inputmenu) { - my_width -= 1; - dlg_draw_box(win, my_y - 1, my_x, INPUT_ROWS, my_width - my_x - data->tag_x, - bordchar, - bordchar); - my_width -= 1; - ++my_x; - } - - /* print actual item */ - wmove(win, my_y, my_x); - dlg_print_listitem(win, show, my_width - my_x, first, selected); - - if (selected) { - dlg_item_help(item->help); - } - dlg_attrset(win, save); -} - -/* - * Allow the user to edit the text of a menu entry. - */ -static int -input_menu_edit(ALL_DATA * data, - DIALOG_LISTITEM * items, - int choice, - char **resultp) -{ - chtype save = dlg_get_attrs(data->menu); - char *result; - int offset = 0; - int key = 0, fkey = 0; - bool first = TRUE; - /* see above */ - bool is_inputmenu = TRUE; - int y = ItemToRow(choice); - int code = TRUE; - int max_len = dlg_max_input(MAX((int) strlen(items->text) + 1, MAX_LEN)); - - result = dlg_malloc(char, (size_t) max_len); - assert_ptr(result, "input_menu_edit"); - - /* original item is used to initialize the input string. */ - result[0] = '\0'; - strcpy(result, items->text); - - print_item(data, data->menu, items, choice, Editing, TRUE); - - /* taken out of inputbox.c - but somewhat modified */ - for (;;) { - if (!first) { - int check = DLG_EXIT_UNKNOWN; - key = dlg_mouse_wgetch(data->menu, &fkey); - if (dlg_result_key(key, fkey, &check)) { - if (check == DLG_EXIT_CANCEL) { - code = FALSE; - break; - } else { - flash(); - } - } - } - if (dlg_edit_string(result, &offset, key, fkey, first)) { - dlg_show_string(data->menu, result, offset, inputbox_attr, - y, - data->item_x + 1, - data->menu_width - data->item_x - 3, - FALSE, first); - first = FALSE; - } else if (key == ESC || key == TAB) { - code = FALSE; - break; - } else { - break; - } - } - print_item(data, data->menu, items, choice, Selected, TRUE); - dlg_attrset(data->menu, save); - - *resultp = result; - return code; -} - -static int -handle_button(int code, DIALOG_LISTITEM * items, int choice) -{ - char *help_result; - - switch (code) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - dlg_add_string(items[choice].name); - break; - case DLG_EXIT_HELP: - dlg_add_help_listitem(&code, &help_result, &items[choice]); - dlg_add_string(help_result); - break; - } - AddLastKey(); - return code; -} - -int -dlg_renamed_menutext(DIALOG_LISTITEM * items, int current, char *newtext) -{ - if (dialog_vars.input_result) - dialog_vars.input_result[0] = '\0'; - dlg_add_result("RENAMED "); - dlg_add_string(items[current].name); - dlg_add_result(" "); - dlg_add_string(newtext); - AddLastKey(); - return DLG_EXIT_EXTRA; -} - -int -dlg_dummy_menutext(DIALOG_LISTITEM * items, int current, char *newtext) -{ - (void) items; - (void) current; - (void) newtext; - return DLG_EXIT_ERROR; -} - -static void -print_menu(ALL_DATA * data, int choice, int scrollamt, int max_choice, bool is_inputmenu) -{ - int i; - - for (i = 0; i < max_choice; i++) { - print_item(data, - data->menu, - &data->items[i + scrollamt], - i, - (i == choice) ? Selected : Unselected, - is_inputmenu); - } - - /* Clean bottom lines */ - if (is_inputmenu) { - int spare_lines, x_count; - spare_lines = data->menu_height % INPUT_ROWS; - dlg_attrset(data->menu, menubox_attr); - for (; spare_lines; spare_lines--) { - wmove(data->menu, data->menu_height - spare_lines, 0); - for (x_count = 0; x_count < data->menu_width; - x_count++) { - waddch(data->menu, ' '); - } - } - } - - (void) wnoutrefresh(data->menu); - - dlg_draw_scrollbar(data->dialog, - scrollamt, - scrollamt, - scrollamt + max_choice, - data->item_no, - data->box_x, - data->box_x + data->menu_width, - data->box_y, - data->box_y + data->menu_height + 1, - menubox_border2_attr, - menubox_border_attr); -} - -static bool -check_hotkey(DIALOG_LISTITEM * items, int choice) -{ - bool result = FALSE; - - if (dlg_match_char(dlg_last_getc(), - (dialog_vars.no_tags - ? items[choice].text - : items[choice].name))) { - result = TRUE; - } - return result; -} - -/* - * This is an alternate interface to 'menu' which allows the application - * to read the list item states back directly without putting them in the - * output buffer. - */ -int -dlg_menu(const char *title, - const char *cprompt, - int height, - int width, - int menu_height, - int item_no, - DIALOG_LISTITEM * items, - int *current_item, - DIALOG_INPUTMENU rename_menutext) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TOGGLEKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_PAGE_FIRST, KEY_HOME ), - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - END_KEYS_BINDING - }; - static DLG_KEYS_BINDING binding2[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_LINES = LINES; - int old_COLS = COLS; - int old_height = height; - int old_width = width; -#endif - ALL_DATA all; - int i, j, x, y, cur_x, cur_y; - int fkey; - int button = dialog_state.visit_items ? -1 : dlg_default_button(); - int choice = dlg_default_listitem(items); - int result = DLG_EXIT_UNKNOWN; - int scrollamt = 0; - int max_choice; - int use_width, name_width, text_width, list_width; - WINDOW *dialog, *menu; - char *prompt = 0; - const char **buttons = dlg_ok_labels(); - bool is_inputmenu = ((rename_menutext != 0) - && (rename_menutext != dlg_dummy_menutext)); - - DLG_TRACE(("# menubox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("lheight", menu_height); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - DLG_TRACE2N("rename", rename_menutext != 0); - - dialog_state.plain_buttons = TRUE; - - all.items = items; - all.item_no = item_no; - - dlg_does_output(); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - - all.menu_height = menu_height; - use_width = dlg_calc_list_width(item_no, items) + 10; - use_width = MAX(26, use_width); - if (all.menu_height == 0) { - /* calculate height without items (4) */ - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width); - dlg_calc_listh(&height, &all.menu_height, item_no); - } else { - dlg_auto_size(title, prompt, - &height, &width, - MIN_HIGH + all.menu_height, use_width); - } - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - all.dialog = dialog; - - dlg_register_window(dialog, "menubox", binding); - dlg_register_buttons(dialog, "menubox", buttons); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - all.menu_width = width - 6; - getyx(dialog, cur_y, cur_x); - all.box_y = cur_y + 1; - all.box_x = (width - all.menu_width) / 2 - 1; - - /* - * After displaying the prompt, we know how much space we really have. - * Limit the list to avoid overwriting the ok-button. - */ - all.menu_height = height - MIN_HIGH - cur_y; - if (all.menu_height <= 0) - all.menu_height = 1; - - /* Find out maximal number of displayable items at once. */ - max_choice = MIN(all.menu_height, - RowHeight(item_no)); - if (is_inputmenu) - max_choice /= INPUT_ROWS; - - /* create new window for the menu */ - menu = dlg_sub_window(dialog, all.menu_height, all.menu_width, - y + all.box_y + 1, - x + all.box_x + 1); - all.menu = menu; - - dlg_register_window(menu, "menu", binding2); - dlg_register_buttons(menu, "menu", buttons); - - /* draw a box around the menu items */ - dlg_draw_box(dialog, - all.box_y, all.box_x, - all.menu_height + 2, all.menu_width + 2, - menubox_border_attr, menubox_border2_attr); - - name_width = 0; - text_width = 0; - - /* Find length of longest item to center menu * - * only if --menu was given, using --inputmenu * - * won't be centered. */ - for (i = 0; i < item_no; i++) { - name_width = MAX(name_width, dlg_count_columns(items[i].name)); - text_width = MAX(text_width, dlg_count_columns(items[i].text)); - } - - /* If the name+text is wider than the list is allowed, then truncate - * one or both of them. If the name is no wider than 30% of the list, - * leave it intact. - * - * FIXME: the gutter width and name/list ratio should be configurable. - */ - use_width = (all.menu_width - GUTTER); - if (dialog_vars.no_tags) { - list_width = MIN(use_width, text_width); - } else if (dialog_vars.no_items) { - list_width = MIN(use_width, name_width); - } else { - if (text_width >= 0 - && name_width >= 0 - && use_width > 0 - && text_width + name_width > use_width) { - int need = (int) (0.30 * use_width); - if (name_width > need) { - int want = (int) (use_width - * ((double) name_width) - / (text_width + name_width)); - name_width = (want > need) ? want : need; - } - text_width = use_width - name_width; - } - list_width = (text_width + name_width); - } - - all.tag_x = (is_inputmenu - ? 0 - : (use_width - list_width) / 2); - all.item_x = ((dialog_vars.no_tags - ? 0 - : (dialog_vars.no_items - ? 0 - : (GUTTER + name_width))) - + all.tag_x); - - if (choice - scrollamt >= max_choice) { - scrollamt = choice - (max_choice - 1); - choice = max_choice - 1; - } - - print_menu(&all, choice, scrollamt, max_choice, is_inputmenu); - - /* register the new window, along with its borders */ - dlg_mouse_mkbigregion(all.box_y + 1, all.box_x, - all.menu_height + 2, all.menu_width + 2, - KEY_MAX, 1, 1, 1 /* by lines */ ); - - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - - dlg_trace_win(dialog); - - while (result == DLG_EXIT_UNKNOWN) { - int key, found; - - if (button < 0) /* --visit-items */ - wmove(dialog, - all.box_y + ItemToRow(choice) + 1, - all.box_x + all.tag_x + 1); - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - found = FALSE; - if (fkey) { - /* - * Allow a mouse-click on a box to switch selection to that box. - * Handling a button click is a little more complicated, since we - * push a KEY_ENTER back onto the input stream so we'll put the - * cursor at the right place before handling the "keypress". - */ - if (key >= DLGK_MOUSE(KEY_MAX)) { - key -= DLGK_MOUSE(KEY_MAX); - i = RowToItem(key); - if (i < max_choice) { - found = TRUE; - } else { - beep(); - continue; - } - } else if (is_DLGK_MOUSE(key) - && dlg_ok_buttoncode(key - M_EVENT) >= 0) { - button = (key - M_EVENT); - ungetch('\n'); - continue; - } - } else { - /* - * Check if key pressed matches first character of any item tag in - * list. If there is more than one match, we will cycle through - * each one as the same key is pressed repeatedly. - */ - if (button < 0 || !dialog_state.visit_items) { - for (j = scrollamt + choice + 1; j < item_no; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - if (!found) { - for (j = 0; j <= scrollamt + choice; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - } - if (found) - dlg_flush_getc(); - } else if ((j = dlg_char_to_button(key, buttons)) >= 0) { - button = j; - ungetch('\n'); - continue; - } - - /* - * A single digit (1-9) positions the selection to that line in the - * current screen. - */ - if (!found - && (key <= '9') - && (key > '0') - && (key - '1' < max_choice)) { - found = TRUE; - i = key - '1'; - } - } - - if (!found && fkey) { - found = TRUE; - switch (key) { - case DLGK_PAGE_FIRST: - i = -scrollamt; - break; - case DLGK_PAGE_LAST: - i = item_no - 1 - scrollamt; - break; - case DLGK_MOUSE(KEY_PPAGE): - case DLGK_PAGE_PREV: - if (choice) - i = 0; - else if (scrollamt != 0) - i = -MIN(scrollamt, max_choice); - else - continue; - break; - case DLGK_MOUSE(KEY_NPAGE): - case DLGK_PAGE_NEXT: - i = MIN(choice + max_choice, item_no - scrollamt - 1); - break; - case DLGK_ITEM_PREV: - i = choice - 1; - if (choice == 0 && scrollamt == 0) - continue; - break; - case DLGK_ITEM_NEXT: - i = choice + 1; - if (scrollamt + choice >= item_no - 1) - continue; - break; - default: - found = FALSE; - break; - } - } - - if (found) { - if (i != choice) { - getyx(dialog, cur_y, cur_x); - if (i < 0 || i >= max_choice) { - if (i < 0) { - scrollamt += i; - choice = 0; - } else { - choice = max_choice - 1; - scrollamt += (i - max_choice + 1); - } - print_menu(&all, choice, scrollamt, max_choice, is_inputmenu); - } else { - choice = i; - print_menu(&all, choice, scrollamt, max_choice, is_inputmenu); - (void) wmove(dialog, cur_y, cur_x); - wrefresh(dialog); - } - } - continue; /* wait for another key press */ - } - - if (fkey) { - switch (key) { - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; - - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; - - case DLGK_TOGGLE: - case DLGK_ENTER: - case DLGK_LEAVE: - result = ((key == DLGK_LEAVE) - ? dlg_ok_buttoncode(button) - : dlg_enter_buttoncode(button)); - - /* - * If dlg_menu() is called from dialog_menu(), we want to - * capture the results into dialog_vars.input_result. - */ - if (result == DLG_EXIT_ERROR) { - result = DLG_EXIT_UNKNOWN; - } else if (is_inputmenu - || rename_menutext == dlg_dummy_menutext) { - result = handle_button(result, - items, - scrollamt + choice); - } - - /* - * If we have a rename_menutext function, interpret the Extra - * button as a request to rename the menu's text. If that - * function doesn't return "Unknown", we will exit from this - * function. Usually that is done for dialog_menu(), so the - * shell script can use the updated value. If it does return - * "Unknown", update the list item only. A direct caller of - * dlg_menu() can free the renamed value - we cannot. - */ - if (is_inputmenu && result == DLG_EXIT_EXTRA) { - char *tmp; - - if (input_menu_edit(&all, - &items[scrollamt + choice], - choice, - &tmp)) { - result = rename_menutext(items, scrollamt + choice, tmp); - if (result == DLG_EXIT_UNKNOWN) { - items[scrollamt + choice].text = tmp; - } else { - free(tmp); - } - } else { - result = DLG_EXIT_UNKNOWN; - print_item(&all, - menu, - &items[scrollamt + choice], - choice, - Selected, - is_inputmenu); - (void) wnoutrefresh(menu); - free(tmp); - } - - if (result == DLG_EXIT_UNKNOWN) { - dlg_draw_buttons(dialog, height - 2, 0, - buttons, button, FALSE, width); - } - } - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - resizeit(height, LINES); - resizeit(width, COLS); - free(prompt); - _dlg_resize_cleanup(dialog); - /* repaint */ - goto retry; -#endif - default: - flash(); - break; - } - } - } - - dlg_mouse_free_regions(); - dlg_unregister_window(menu); - dlg_del_window(dialog); - free(prompt); - - *current_item = scrollamt + choice; - - DLG_TRACE2N("current", *current_item); - return result; -} - -/* - * Display a menu for choosing among a number of options - */ -int -dialog_menu(const char *title, - const char *cprompt, - int height, - int width, - int menu_height, - int item_no, - char **items) -{ - int result; - int choice; - int i, j; - DIALOG_LISTITEM *listitems; - - listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1); - assert_ptr(listitems, "dialog_menu"); - - for (i = j = 0; i < item_no; ++i) { - listitems[i].name = items[j++]; - listitems[i].text = (dialog_vars.no_items - ? dlg_strempty() - : items[j++]); - listitems[i].help = ((dialog_vars.item_help) - ? items[j++] - : dlg_strempty()); - } - dlg_align_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no); - - result = dlg_menu(title, - cprompt, - height, - width, - menu_height, - item_no, - listitems, - &choice, - (dialog_vars.input_menu - ? dlg_renamed_menutext - : dlg_dummy_menutext)); - - dlg_free_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no); - free(listitems); - return result; -} diff --git a/contrib/dialog/mixedform.c b/contrib/dialog/mixedform.c deleted file mode 100644 index 963d25f71343..000000000000 --- a/contrib/dialog/mixedform.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * $Id: mixedform.c,v 1.13 2018/06/15 01:23:33 tom Exp $ - * - * mixedform.c -- implements the mixed form (i.e, typed pairs label/editbox) - * - * Copyright 2007-2013,2018 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * This is inspired by a patch from Kiran Cherupally - * (but different interface design). - */ - -#include <dialog.h> - -#define LLEN(n) ((n) * MIXEDFORM_TAGS) - -#define ItemName(i) items[LLEN(i) + 0] -#define ItemNameY(i) items[LLEN(i) + 1] -#define ItemNameX(i) items[LLEN(i) + 2] -#define ItemText(i) items[LLEN(i) + 3] -#define ItemTextY(i) items[LLEN(i) + 4] -#define ItemTextX(i) items[LLEN(i) + 5] -#define ItemTextFLen(i) items[LLEN(i) + 6] -#define ItemTextILen(i) items[LLEN(i) + 7] -#define ItemTypep(i) items[LLEN(i) + 8] -#define ItemHelp(i) (dialog_vars.item_help ? items[LLEN(i) + 9] : dlg_strempty()) - -int -dialog_mixedform(const char *title, - const char *cprompt, - int height, - int width, - int form_height, - int item_no, - char **items) -{ - int result; - int choice = 0; - int i; - DIALOG_FORMITEM *listitems; - DIALOG_VARS save_vars; - bool show_status = FALSE; - char *help_result; - - dlg_save_vars(&save_vars); - dialog_vars.separate_output = TRUE; - - listitems = dlg_calloc(DIALOG_FORMITEM, (size_t) item_no + 1); - assert_ptr(listitems, "dialog_mixedform"); - - for (i = 0; i < item_no; ++i) { - listitems[i].type = dialog_vars.formitem_type; - listitems[i].name = ItemName(i); - listitems[i].name_len = (int) strlen(ItemName(i)); - listitems[i].name_y = dlg_ordinate(ItemNameY(i)); - listitems[i].name_x = dlg_ordinate(ItemNameX(i)); - listitems[i].text = ItemText(i); - listitems[i].text_len = (int) strlen(ItemText(i)); - listitems[i].text_y = dlg_ordinate(ItemTextY(i)); - listitems[i].text_x = dlg_ordinate(ItemTextX(i)); - listitems[i].text_flen = atoi(ItemTextFLen(i)); - listitems[i].text_ilen = atoi(ItemTextILen(i)); - listitems[i].help = (dialog_vars.item_help ? ItemHelp(i) : - dlg_strempty()); - listitems[i].type = (unsigned) atoi(ItemTypep(i)); - } - - result = dlg_form(title, - cprompt, - height, - width, - form_height, - item_no, - listitems, - &choice); - - switch (result) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - show_status = TRUE; - break; - case DLG_EXIT_HELP: - dlg_add_help_formitem(&result, &help_result, &listitems[choice]); - show_status = dialog_vars.help_status; - dlg_add_string(help_result); - if (show_status) - dlg_add_separator(); - break; - } - if (show_status) { - for (i = 0; i < item_no; i++) { - if (listitems[i].text_flen > 0) { - dlg_add_string(listitems[i].text); - dlg_add_separator(); - } - } - dlg_add_last_key(-1); - } - - dlg_free_formitems(listitems); - dlg_restore_vars(&save_vars); - - return result; -} diff --git a/contrib/dialog/mixedgauge.c b/contrib/dialog/mixedgauge.c deleted file mode 100644 index a08659fe2989..000000000000 --- a/contrib/dialog/mixedgauge.c +++ /dev/null @@ -1,408 +0,0 @@ -/* - * $Id: mixedgauge.c,v 1.37 2021/01/16 17:19:15 tom Exp $ - * - * mixedgauge.c -- implements the mixedgauge dialog - * - * Copyright 2007-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * This is inspired by a patch from Kiran Cherupally - * (but different interface design). - */ - -#include <dialog.h> - -#define LLEN(n) ((n) * MIXEDGAUGE_TAGS) -#define ItemData(i) &items[LLEN(i)] -#define ItemName(i) items[LLEN(i)] -#define ItemText(i) items[LLEN(i) + 1] - -#define MIN_HIGH (4) -#define MIN_WIDE (10 + 2 * (2 + MARGIN)) - -typedef struct { - WINDOW *dialog; - WINDOW *caption; - const char *title; - char *prompt; - int height, old_height, min_height; - int width, old_width, min_width; - int len_name, len_text; - int item_no; - DIALOG_LISTITEM *list; -} DIALOG_MIXEDGAUGE; - -static const char * -status_string(char *given, char **freeMe) -{ - const char *result; - - *freeMe = 0; - if (isdigit(UCH(*given))) { - switch (*given) { - case '0': - result = _("Succeeded"); - break; - case '1': - result = _("Failed"); - break; - case '2': - result = _("Passed"); - break; - case '3': - result = _("Completed"); - break; - case '4': - result = _("Checked"); - break; - case '5': - result = _("Done"); - break; - case '6': - result = _("Skipped"); - break; - case '7': - result = _("In Progress"); - break; - case '8': - result = ""; - break; - case '9': - result = _("N/A"); - break; - default: - result = "?"; - break; - } - } else if (*given == '-') { - size_t need = strlen(++given) + 4; - char *temp = dlg_malloc(char, need); - *freeMe = temp; - sprintf(temp, "%3s%%", given); - result = temp; - } else if (!isspace(UCH(*given))) { - result = given; - } else { - result = 0; - } - return result; -} - -/* This function displays status messages */ -static void -myprint_status(DIALOG_MIXEDGAUGE * dlg) -{ - WINDOW *win = dlg->dialog; - int limit_y = dlg->height; - int limit_x = dlg->width; - - int item; - int cells = dlg->len_text - 2; - int lm = limit_x - dlg->len_text - 1; - int bm = limit_y; /* bottom margin */ - int last_y = 0, last_x = 0; - int j, xxx; - float percent; - char *freeMe = 0; - - bm -= (2 * MARGIN); - getyx(win, last_y, last_x); - for (item = 0; item < dlg->item_no; ++item) { - const char *status = ""; - chtype attr = A_NORMAL; - int y = item + MARGIN + 1; - - if (y > bm) - break; - - status = status_string(dlg->list[item].text, &freeMe); - if (status == 0 || *status == 0) { - free(freeMe); - continue; - } - - (void) wmove(win, y, 2 * MARGIN); - dlg_attrset(win, dialog_attr); - dlg_print_text(win, dlg->list[item].name, lm, &attr); - - (void) wmove(win, y, lm); - (void) waddch(win, '['); - (void) wmove(win, y, lm + (cells - (int) strlen(status)) / 2); - if (freeMe) { - (void) wmove(win, y, lm + 1); - dlg_attrset(win, title_attr); - for (j = 0; j < cells; j++) - (void) waddch(win, ' '); - - (void) wmove(win, y, lm + (cells - (int) strlen(status)) / 2); - (void) waddstr(win, status); - - if ((title_attr & A_REVERSE) != 0) { - dlg_attroff(win, A_REVERSE); - } else { - dlg_attrset(win, A_REVERSE); - } - (void) wmove(win, y, lm + 1); - - if (sscanf(status, "%f%%", &percent) != 1) - percent = 0.0; - xxx = (int) ((cells * (percent + 0.5)) / 100.0); - for (j = 0; j < xxx; j++) { - chtype ch1 = winch(win); - if (title_attr & A_REVERSE) { - ch1 &= ~A_REVERSE; - } - (void) waddch(win, ch1); - } - free(freeMe); - - } else { - (void) wmove(win, y, lm + (cells - (int) strlen(status)) / 2); - (void) waddstr(win, status); - } - (void) wmove(win, y, limit_x - 3); - dlg_attrset(win, dialog_attr); - (void) waddch(win, ']'); - (void) wnoutrefresh(win); - } - if (win != 0) - wmove(win, last_y, last_x); -} - -static void -mydraw_mixed_box(WINDOW *win, int y, int x, int height, int width, - chtype boxchar, chtype borderchar) -{ - dlg_draw_box(win, y, x, height, width, boxchar, borderchar); - { - chtype attr = A_NORMAL; - const char *message = _("Overall Progress"); - chtype save2 = dlg_get_attrs(win); - dlg_attrset(win, title_attr); - (void) wmove(win, y, x + 2); - dlg_print_text(win, message, width, &attr); - dlg_attrset(win, save2); - } -} - -static char * -clean_copy(const char *string) -{ - char *result = dlg_strclone(string); - - dlg_trim_string(result); - dlg_tab_correct_str(result); - return result; -} - -/* - * Update mixed-gauge dialog (may be from pipe, may be via direct calls). - */ -static void -dlg_update_mixedgauge(DIALOG_MIXEDGAUGE * dlg, int percent) -{ - int i, x; - - /* - * Clear the area for the progress bar by filling it with spaces - * in the title-attribute, and write the percentage with that - * attribute. - */ - (void) wmove(dlg->dialog, dlg->height - 3, 4); - dlg_attrset(dlg->dialog, gauge_attr); - - for (i = 0; i < (dlg->width - 2 * (3 + MARGIN)); i++) - (void) waddch(dlg->dialog, ' '); - - (void) wmove(dlg->dialog, dlg->height - 3, (dlg->width / 2) - 2); - (void) wprintw(dlg->dialog, "%3d%%", percent); - - /* - * Now draw a bar in reverse, relative to the background. - * The window attribute was useful for painting the background, - * but requires some tweaks to reverse it. - */ - x = (percent * (dlg->width - 2 * (3 + MARGIN))) / 100; - if ((title_attr & A_REVERSE) != 0) { - dlg_attroff(dlg->dialog, A_REVERSE); - } else { - dlg_attrset(dlg->dialog, A_REVERSE); - } - (void) wmove(dlg->dialog, dlg->height - 3, 4); - for (i = 0; i < x; i++) { - chtype ch = winch(dlg->dialog); - if (title_attr & A_REVERSE) { - ch &= ~A_REVERSE; - } - (void) waddch(dlg->dialog, ch); - } - myprint_status(dlg); - dlg_trace_win(dlg->dialog); -} - -/* - * Setup dialog. - */ -static void -dlg_begin_mixedgauge(DIALOG_MIXEDGAUGE * dlg, - int *began, - const char *aTitle, - const char *aPrompt, - int aHeight, - int aWidth, - int aItemNo, - char **items) -{ - int y, x; - - if (!*began) { - int n; - - curs_set(0); - - memset(dlg, 0, sizeof(*dlg)); - dlg->title = aTitle; - dlg->prompt = clean_copy(aPrompt); - dlg->height = dlg->old_height = aHeight; - dlg->width = dlg->old_width = aWidth; - dlg->item_no = aItemNo; - - dlg->list = dlg_calloc(DIALOG_LISTITEM, (size_t) aItemNo); - assert_ptr(dlg->list, "dialog_mixedgauge"); - - dlg->len_name = 0; - dlg->len_text = 15; - - for (n = 0; n < aItemNo; ++n) { - int thisWidth = (int) strlen(ItemName(n)); - if (dlg->len_name < thisWidth) - dlg->len_name = thisWidth; - dlg->list[n].name = ItemName(n); - dlg->list[n].text = ItemText(n); - } - - dlg->min_height = MIN_HIGH + aItemNo; - dlg->min_width = MIN_WIDE + dlg->len_name + GUTTER + dlg->len_text; - - if (dlg->prompt != 0 && *(dlg->prompt) != 0) - dlg->min_height += (2 * MARGIN); -#ifdef KEY_RESIZE - nodelay(stdscr, TRUE); -#endif - } -#ifdef KEY_RESIZE - else { - dlg_del_window(dlg->dialog); - dlg->height = dlg->old_height; - dlg->width = dlg->old_width; - } -#endif - - dlg_auto_size(dlg->title, dlg->prompt, - &(dlg->height), - &(dlg->width), - dlg->min_height, - dlg->min_width); - dlg_print_size(dlg->height, dlg->width); - dlg_ctl_size(dlg->height, dlg->width); - - /* center dialog box on screen */ - x = dlg_box_x_ordinate(dlg->width); - y = dlg_box_y_ordinate(dlg->height); - - dlg->dialog = dlg_new_window(dlg->height, dlg->width, y, x); - - (void) werase(dlg->dialog); - dlg_draw_box2(dlg->dialog, - 0, 0, - dlg->height, - dlg->width, - dialog_attr, border_attr, border2_attr); - - dlg_draw_title(dlg->dialog, dlg->title); - dlg_draw_helpline(dlg->dialog, FALSE); - - if ((dlg->prompt != 0 && *(dlg->prompt) != 0) - && wmove(dlg->dialog, dlg->item_no, 0) != ERR) { - dlg->caption = dlg_sub_window(dlg->dialog, - dlg->height - dlg->item_no - (2 * MARGIN), - dlg->width, - y + dlg->item_no + (2 * MARGIN), - x); - dlg_attrset(dlg->caption, dialog_attr); - dlg_print_autowrap(dlg->caption, dlg->prompt, dlg->height, dlg->width); - } - - mydraw_mixed_box(dlg->dialog, - dlg->height - 4, - 2 + MARGIN, - 2 + MARGIN, - dlg->width - 2 * (2 + MARGIN), - dialog_attr, - border_attr); - - *began += 1; -} - -/* - * Discard the mixed-gauge dialog. - */ -static int -dlg_finish_mixedgauge(DIALOG_MIXEDGAUGE * dlg, int status) -{ - (void) wrefresh(dlg->dialog); -#ifdef KEY_RESIZE - nodelay(stdscr, FALSE); -#endif - curs_set(1); - dlg_del_window(dlg->dialog); - free(dlg->prompt); - free(dlg->list); - return status; -} - -/* - * Setup dialog, read mixed-gauge data from pipe. - */ -int -dialog_mixedgauge(const char *title, - const char *cprompt, - int height, - int width, - int percent, - int item_no, - char **items) -{ - DIALOG_MIXEDGAUGE dlg; - int began = 0; - - DLG_TRACE(("# mixedgauge args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("percent", percent); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - - dlg_begin_mixedgauge(&dlg, &began, title, cprompt, height, - width, item_no, items); - - dlg_update_mixedgauge(&dlg, percent); - - return dlg_finish_mixedgauge(&dlg, DLG_EXIT_OK); -} diff --git a/contrib/dialog/mouse.c b/contrib/dialog/mouse.c deleted file mode 100644 index eab4bc91a557..000000000000 --- a/contrib/dialog/mouse.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $Id: mouse.c,v 1.24 2017/01/31 00:27:21 tom Exp $ - * - * mouse.c -- mouse support for dialog - * - * Copyright 2002-2016,2017 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#if USE_MOUSE - -static int basex, basey, basecode; - -static mseRegion *regionList = NULL; - -/*=========== region related functions =============*/ - -static mseRegion * -find_region_by_code(int code) -{ - mseRegion *butPtr; - - for (butPtr = regionList; butPtr; butPtr = butPtr->next) { - if (code == butPtr->code) - break; - } - return butPtr; -} - -void -dlg_mouse_setbase(int x, int y) -{ - basex = x; - basey = y; -} - -void -dlg_mouse_setcode(int code) -{ - basecode = code; - DLG_TRACE(("# mouse_setcode %d\n", code)); -} - -void -dlg_mouse_mkbigregion(int y, int x, - int height, int width, - int code, - int step_y, int step_x, - int mode) -{ - mseRegion *butPtr = dlg_mouse_mkregion(y, x, height, width, -DLGK_MOUSE(code)); - butPtr->mode = mode; - butPtr->step_x = MAX(1, step_x); - butPtr->step_y = MAX(1, step_y); -} - -void -dlg_mouse_free_regions(void) -{ - while (regionList != 0) { - mseRegion *butPtr = regionList->next; - free(regionList); - regionList = butPtr; - } -} - -mseRegion * -dlg_mouse_mkregion(int y, int x, int height, int width, int code) -{ - mseRegion *butPtr; - - if ((butPtr = find_region_by_code(basecode + code)) == 0) { - butPtr = dlg_calloc(mseRegion, 1); - assert_ptr(butPtr, "dlg_mouse_mkregion"); - butPtr->next = regionList; - regionList = butPtr; - } - - if ((butPtr->mode != -1) || - (butPtr->step_x != 0) || - (butPtr->step_y != 0) || - (butPtr->y != (basey + y)) || - (butPtr->Y != (basey + y + height)) || - (butPtr->x != (basex + x)) || - (butPtr->X != (basex + x + width)) || - (butPtr->code != basecode + code)) { - DLG_TRACE(("# mouse_mkregion %d,%d %dx%d %d (%d)\n", - y, x, height, width, - butPtr->code, code)); - } - - butPtr->mode = -1; - butPtr->step_x = 0; - butPtr->step_y = 0; - butPtr->y = basey + y; - butPtr->Y = basey + y + height; - butPtr->x = basex + x; - butPtr->X = basex + x + width; - butPtr->code = basecode + code; - - return butPtr; -} - -/* retrieve the frame under the pointer */ -static mseRegion * -any_mouse_region(int y, int x, int small) -{ - mseRegion *butPtr; - - for (butPtr = regionList; butPtr; butPtr = butPtr->next) { - if (small ^ (butPtr->code >= 0)) { - continue; - } - if (y < butPtr->y || y >= butPtr->Y) { - continue; - } - if (x < butPtr->x || x >= butPtr->X) { - continue; - } - break; /* found */ - } - return butPtr; -} - -/* retrieve the frame under the pointer */ -mseRegion * -dlg_mouse_region(int y, int x) -{ - return any_mouse_region(y, x, TRUE); -} - -/* retrieve the bigframe under the pointer */ -mseRegion * -dlg_mouse_bigregion(int y, int x) -{ - return any_mouse_region(y, x, FALSE); -} - -#else -void mouse_dummy(void); -void -mouse_dummy(void) -{ -} -#endif /* USE_MOUSE */ diff --git a/contrib/dialog/mousewget.c b/contrib/dialog/mousewget.c deleted file mode 100644 index fc85a7106237..000000000000 --- a/contrib/dialog/mousewget.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * $Id: mousewget.c,v 1.25 2019/07/25 00:06:38 tom Exp $ - * - * mousewget.c -- mouse/wgetch support for dialog - * - * Copyright 2000-2017,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -static int -mouse_wgetch(WINDOW *win, int *fkey, bool ignore_errs) -{ - int mouse_err = FALSE; - int key; - - do { - - key = dlg_getc(win, fkey); - -#if USE_MOUSE - - mouse_err = FALSE; - if (key == KEY_MOUSE) { - MEVENT event; - - if (getmouse(&event) != ERR) { - mseRegion *p; - - DLG_TRACE(("# mouse-click abs %d,%d (rel %d,%d)\n", - event.y, event.x, - event.y - getbegy(win), - event.x - getbegx(win))); - if ((p = dlg_mouse_region(event.y, event.x)) != 0) { - key = DLGK_MOUSE(p->code); - } else if ((p = dlg_mouse_bigregion(event.y, event.x)) != 0) { - int x = event.x - p->x; - int y = event.y - p->y; - int row = (p->X - p->x) / p->step_x; - - key = -(p->code); - switch (p->mode) { - case 1: /* index by lines */ - key += y; - break; - case 2: /* index by columns */ - key += (x / p->step_x); - break; - default: - case 3: /* index by cells */ - key += (x / p->step_x) + (y * row); - break; - } - } else { - (void) beep(); - mouse_err = TRUE; - } - } else { - (void) beep(); - mouse_err = TRUE; - } - } -#endif - - } while (ignore_errs && mouse_err); - - return key; -} - -int -dlg_mouse_wgetch(WINDOW *win, int *fkey) -{ - return mouse_wgetch(win, fkey, TRUE); -} - -int -dlg_mouse_wgetch_nowait(WINDOW *win, int *fkey) -{ - return mouse_wgetch(win, fkey, FALSE); -} diff --git a/contrib/dialog/msgbox.c b/contrib/dialog/msgbox.c deleted file mode 100644 index 5264368b67dc..000000000000 --- a/contrib/dialog/msgbox.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - * $Id: msgbox.c,v 1.89 2020/11/23 00:32:02 tom Exp $ - * - * msgbox.c -- implements the message box and info box - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors: - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> -#include <dlg_keys.h> - -/* - * Display a message box. Program will pause and display an "OK" button - * if the parameter 'pauseopt' is non-zero. - */ -int -dialog_msgbox(const char *title, const char *cprompt, int height, int width, - int pauseopt) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - SCROLLKEY_BINDINGS, - TRAVERSE_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - - int x, y, page; - int button; - int key, fkey; - int result = DLG_EXIT_UNKNOWN; - WINDOW *dialog = 0; - char *prompt; - const char **buttons = dlg_ok_label(); - int offset = 0; - bool show = TRUE; - int min_width = (pauseopt == 1 ? 12 : 0); - bool save_nocancel = dialog_vars.nocancel; -#ifdef KEY_RESIZE - int req_high; - int req_wide; -#endif - - DLG_TRACE(("# msgbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("pauseopt", pauseopt); - - dialog_vars.nocancel = TRUE; - button = dlg_default_button(); - -#ifdef KEY_RESIZE - req_high = height; - req_wide = width; - restart: -#endif - - dlg_button_layout(buttons, &min_width); - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - dlg_auto_size(title, prompt, &height, &width, - (pauseopt == 1 ? 2 : 0), - min_width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "msgbox", binding); - dlg_register_buttons(dialog, "msgbox", buttons); - - page = height - (1 + 3 * MARGIN); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - - if (pauseopt) { - int last = 0; - - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - mouse_mkbutton(height - 2, width / 2 - 4, 6, '\n'); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - dlg_draw_helpline(dialog, FALSE); - - while (result == DLG_EXIT_UNKNOWN) { - int check; - - if (show) { - last = dlg_print_scrolled(dialog, prompt, offset, - page, width, pauseopt); - dlg_trace_win(dialog); - show = FALSE; - } - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - if (!fkey && (check = dlg_char_to_button(key, buttons)) >= 0) { - result = dlg_ok_buttoncode(check); - break; - } - - if (fkey) { - switch (key) { -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - free(prompt); - height = req_high; - width = req_wide; - show = TRUE; - _dlg_resize_cleanup(dialog); - goto restart; -#endif - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_ok_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } else if (dlg_check_scrolled(key, - last, - page, - &show, - &offset) == 0) { - } else { - beep(); - } - break; - } - } else if (key > 0) { - beep(); - } - } - } else { - dlg_print_scrolled(dialog, prompt, offset, page, width, pauseopt); - dlg_draw_helpline(dialog, FALSE); - wrefresh(dialog); - dlg_trace_win(dialog); - result = DLG_EXIT_OK; - } - dlg_add_last_key(-1); - - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - - dialog_vars.nocancel = save_nocancel; - - return result; -} diff --git a/contrib/dialog/package/debian/changelog b/contrib/dialog/package/debian/changelog deleted file mode 100644 index 2bef7f287f2c..000000000000 --- a/contrib/dialog/package/debian/changelog +++ /dev/null @@ -1,337 +0,0 @@ -cdialog (20210117) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 13 Jan 2021 19:58:21 -0500 - -cdialog (20210112) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 11 Jan 2021 03:53:05 -0500 - -cdialog (20201126) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 26 Jul 2020 11:17:16 -0400 - -cdialog (20200327) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 19 Mar 2020 05:02:12 -0400 - -cdialog (20200228) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 28 Feb 2020 20:31:15 -0500 - -cdialog (20191231) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 31 Dec 2019 15:37:41 -0500 - -cdialog (20191210) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 10 Dec 2019 17:19:19 -0500 - -cdialog (20191209) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 09 Dec 2019 04:14:47 -0500 - -cdialog (20191110) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 10 Nov 2019 17:48:23 -0500 - -cdialog (20190926) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 25 Sep 2019 04:37:53 -0400 - -cdialog (20190924) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 23 Sep 2019 05:13:54 -0400 - -cdialog (20190808) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 08 Aug 2019 16:54:08 -0400 - -cdialog (20190806) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 01 Aug 2019 20:16:04 -0400 - -cdialog (20190728) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 28 Jul 2019 18:04:47 -0400 - -cdialog (20190724) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 22 Jul 2019 19:20:18 -0400 - -cdialog (20190211) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 11 Feb 2019 15:47:42 -0500 - -cdialog (20181107) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 07 Nov 2018 20:38:14 -0500 - -cdialog (20181022) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 28 Oct 2018 10:53:29 -0400 - -cdialog (20180621) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 15 Feb 2018 05:02:43 -0500 - -cdialog (20171209) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 09 Dec 2017 10:52:09 -0500 - -cdialog (20170509) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 09 May 2017 19:08:48 -0400 - -cdialog (20170131) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 23 Jan 2017 17:41:21 -0500 - -cdialog (20161120) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 20 Nov 2016 06:47:59 -0500 - -cdialog (20160828) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 26 Aug 2016 17:41:17 -0400 - -cdialog (20160424) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 19 Apr 2016 06:33:50 -0400 - -cdialog (20160209) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 01 Feb 2016 05:18:04 -0500 - -cdialog (20160126) unstable; urgency=low - - * maintenance updates, add --week-start option - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 25 Jan 2016 13:13:51 -0500 - -cdialog (20150920) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 20 Sep 2015 18:08:36 -0400 - -cdialog (20150528) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 28 May 2015 19:42:32 -0400 - -cdialog (20150513) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 13 May 2015 10:46:07 -0400 - -cdialog (20150512) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 10 May 2015 19:31:46 -0400 - -cdialog (20150225) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 25 Feb 2015 05:10:57 -0500 - -cdialog (20150224) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Tue, 24 Feb 2015 07:10:45 -0500 - -cdialog (20150125) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 25 Jan 2015 16:30:54 -0500 - -cdialog (20140911) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 11 Sep 2014 03:56:17 -0400 - -cdialog (20140910) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 10 Sep 2014 04:23:13 -0400 - -cdialog (20140908) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 08 Sep 2014 05:10:11 -0400 - -cdialog (20140901) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 01 Sep 2014 12:15:40 -0400 - -cdialog (20140219) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 19 Feb 2014 04:13:36 -0500 - -cdialog (20140112) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 12 Jan 2014 13:22:17 -0500 - -cdialog (20130928) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Sep 2013 21:27:37 -0400 - -cdialog (20130923) unstable; urgency=low - - * improved memory-caching for gauge widget - - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Sep 2013 09:18:26 -0400 - -cdialog (20130902) unstable; urgency=low - - * maintenance updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 01 Sep 2013 19:08:31 -0400 - -cdialog (20130523) unstable; urgency=low - - * minor fixes - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 23 May 2013 19:25:01 -0400 - -cdialog (20130315) unstable; urgency=low - - * minor fixes - - -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 15 Mar 2013 04:41:20 -0400 - -cdialog (20121230) unstable; urgency=low - - * new widgets - * coverity fixes - * configure-script updates - - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Oct 2012 09:19:29 -0400 - -cdialog (20120706) unstable; urgency=high - - * fix regression in msgbox (ArchLinux #30574) - - -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 06 Jul 2012 12:52:46 -0400 - -cdialog (20120703) unstable; urgency=low - - * minor fixes - * add --default-button - - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 30 Jun 2012 10:41:05 -0400 - -cdialog (20120215) unstable; urgency=low - - * minor fixes - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 15 Feb 2012 19:40:32 -0500 - -cdialog (20111020) unstable; urgency=high - - * fix regression in menubox.c logic for inputmenu vs menu. - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 19 Oct 2011 19:17:40 -0400 - -cdialog (20111018) unstable; urgency=high - - * improve color configurability - * misc bug-fixes. - * various improvements to tracing. - * remove an incorrect free() call in dlg_free_gauge() - * fix missing trailing null from dlg_align_columns - - -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 07 Sep 2011 20:04:04 -0400 - -cdialog (20110707) unstable; urgency=high - - * fix a regression in dlg_getc() from 20110630 changes. - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 07 Jul 2011 18:10:47 -0400 - -cdialog (20110630) unstable; urgency=high - - * various bug-fixes reported in FreeBSD. - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 13 Jun 2011 05:44:17 -0400 - -cdialog (20110302) unstable; urgency=high - - * Add --prgbox and --progressbox - * Bug-fix for --timeout. - - -- Thomas E. Dickey <dickey@invisible-island.net> Mon, 28 Feb 2011 18:42:17 -0500 - -cdialog (20110118) unstable; urgency=high - - * Initial package release - - -- Thomas E. Dickey <dickey@invisible-island.net> Thu, 30 Dec 2010 09:23:24 -0500 diff --git a/contrib/dialog/package/debian/compat b/contrib/dialog/package/debian/compat deleted file mode 100644 index f599e28b8ab0..000000000000 --- a/contrib/dialog/package/debian/compat +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/contrib/dialog/package/debian/control b/contrib/dialog/package/debian/control deleted file mode 100644 index 8df5923fe94c..000000000000 --- a/contrib/dialog/package/debian/control +++ /dev/null @@ -1,33 +0,0 @@ -Source: cdialog -Maintainer: Thomas E. Dickey <dickey@invisible-island.net> -Section: misc -Priority: optional -Standards-Version: 3.8.4 -Build-Depends: debhelper (>= 5), libc6 (>= 2.11), libncursesw5-dev (>= 5.3), groff-base -Homepage: http://invisible-island.net/dialog/ - -Package: cdialog -Architecture: any -Depends: libc6 (>= 2.11), libncursesw5 (>= 5.3) -Description: dialog - display dialog boxes from shell scripts - Dialog is a program that will let you present a variety of questions or - display messages using dialog boxes from a shell script. These types - of dialog boxes are implemented (though not all are necessarily - compiled into dialog): - . - buildlist, calendar, checklist, dselect, editbox, form, fselect, - gauge, infobox, inputbox, inputmenu, menu, mixedform, - mixedgauge, msgbox (message), passwordbox, passwordform, pause, - prgbox, programbox, progressbox, radiolist, rangebox, tailbox, - tailboxbg, textbox, timebox, treeview, and yesno (yes/no). - . - This package installs as "cdialog" to avoid conflict with other packages. - -Package: cdialog-dev -Architecture: any -Depends: libc6 (>= 2.11), libncursesw5 (>= 5.3) -Description: dialog - display dialog boxes from shell scripts - Dialog is a program that will let you present a variety of questions or - display messages using dialog boxes from a shell script. These types - This package provides headers and documentation for the library used - by "cdialog". diff --git a/contrib/dialog/package/debian/copyright b/contrib/dialog/package/debian/copyright deleted file mode 100644 index e9614740c905..000000000000 --- a/contrib/dialog/package/debian/copyright +++ /dev/null @@ -1,111 +0,0 @@ -Upstream source http://invisible-island.net/dialog/dialog.html - -Current dialog upstream maintainer: Thomas Dickey <dickey@invisible-island.net> - -------------------------------------------------------------------------------- -Files: *.c *.h - Copyright 2000-2020,2021 Thomas E. Dickey - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License, version 2.1 - as published by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, write to - Free Software Foundation, Inc. - 51 Franklin St., Fifth Floor - Boston, MA 02110, USA. - - An earlier version of this program lists as authors - Savio Lam (lam836@cs.cuhk.hk) -------------------------------------------------------------------------------- - -Files: aclocal.m4 -Licence: other-BSD -Copyright: 1999-2020,2021 by Thomas E. Dickey - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, distribute with modifications, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR - THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name(s) of the above copyright - holders shall not be used in advertising or otherwise to promote the - sale, use or other dealings in this Software without prior written - authorization. - -Files: install-sh -Copyright: 1994 X Consortium -Licence: other-BSD - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- - TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of the X Consortium shall not - be used in advertising or otherwise to promote the sale, use or other deal- - ings in this Software without prior written authorization from the X Consor- - tium. - - FSF changes to this file are in the public domain. - - Calling this script install-sh is preferred over install.sh, to prevent - `make' implicit rules from creating a file called install from it - when there is no Makefile. - - This script is compatible with the BSD install script, but was written - from scratch. It can only install one file at a time, a restriction - shared with many OS's install programs. - -Files: debian/* -Copyright: 2010-2020,2021 Thomas E. Dickey -Licence: other-BSD - Permission to use, copy, modify, and distribute this software and its - documentation for any purpose and without fee is hereby granted, - provided that the above copyright notice appear in all copies and that - both that copyright notice and this permission notice appear in - supporting documentation, and that the name of the above listed - copyright holder(s) not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. - - THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD - TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE - LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -On Debian systems, the complete text of the GNU General -Public License can be found in '/usr/share/common-licenses/GPL-2' diff --git a/contrib/dialog/package/debian/docs b/contrib/dialog/package/debian/docs deleted file mode 100644 index e845566c06f9..000000000000 --- a/contrib/dialog/package/debian/docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/contrib/dialog/package/debian/postinst b/contrib/dialog/package/debian/postinst deleted file mode 100755 index 9977c68681c4..000000000000 --- a/contrib/dialog/package/debian/postinst +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/sh - -set -e - -if [ "$1" = "configure" ]; then - ldconfig -fi diff --git a/contrib/dialog/package/debian/rules b/contrib/dialog/package/debian/rules deleted file mode 100755 index 4f03a22819bf..000000000000 --- a/contrib/dialog/package/debian/rules +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/make -f -# $Id: rules,v 1.11 2019/07/24 00:53:35 tom Exp $ -# Made with the aid of dh_make, by Craig Small -# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. -# Some lines taken from debmake, by Cristoph Lameter. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - -CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) -CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) - -TMP = $(CURDIR)/debian/tmp - -ACTUAL_PROG = cdialog -DEV_PACKAGE = $(ACTUAL_PROG)-dev - -BINDIR = /usr/bin -LIBDIR = /usr/lib -LOCALE = /usr/share/locale -MANDIR = /usr/share/man -HEADER = /usr/include - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) - INSTALL_PROGRAM += -s -endif - - -configure: configure-stamp -configure-stamp: - dh_testdir - - cp -v package/dialog.map package/${ACTUAL_PROG}.map - - CPPFLAGS="$(CPPFLAGS)" \ - CFLAGS="$(CFLAGS)" \ - LDFLAGS="$(LDFLAGS)" \ - ./configure \ - --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr \ - --mandir=\$${prefix}/share/man \ - --enable-nls \ - --enable-header-subdir \ - --enable-widec \ - --with-shared \ - --with-screen=ncursesw6 \ - --with-package=${ACTUAL_PROG} \ - --with-versioned-syms \ - --disable-rpath-hack - - touch configure-stamp - -build: build-stamp -build-stamp: configure-stamp - dh_testdir - - $(MAKE) - - touch build-stamp - -clean: - dh_testdir - dh_testroot - - [ ! -f makefile ] || $(MAKE) distclean - - rm -f configure-stamp build-stamp install-stamp - - dh_clean - -install: install-stamp -install-stamp: build-stamp - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - $(MAKE) install-full DESTDIR=$(TMP) - - dh_install -p${ACTUAL_PROG} $(BINDIR)/$(ACTUAL_PROG) - dh_install -p${ACTUAL_PROG} $(LIBDIR) - dh_install -p${ACTUAL_PROG} $(LOCALE) - dh_install -p${ACTUAL_PROG} $(MANDIR)/man1 - dh_install -p${DEV_PACKAGE} $(BINDIR)/$(ACTUAL_PROG)-config - dh_install -p${DEV_PACKAGE} $(MANDIR)/man3 - dh_install -p${DEV_PACKAGE} $(HEADER) - - echo FIXME - for P in lib${ACTUAL_PROG}.so*; \ - do \ - [ -L "$$P" ] || continue; \ - case "$$P" in \ - *.so) \ - echo "DEV: $$P"; \ - dh_link -p${DEV_PACKAGE} $(LIBDIR)/`readlink $$P` $(LIBDIR)/$$P ; \ - ;; \ - *) \ - echo "BIN: $$P"; \ - dh_link -p${ACTUAL_PROG} $(LIBDIR)/`readlink $$P` $(LIBDIR)/$$P ; \ - ;; \ - esac; \ - done - - touch install-stamp - -# Build architecture-independent files here. -binary-indep: build install -# No binary-indep target. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installdocs - dh_installexamples - dh_installchangelogs CHANGES - dh_strip - dh_compress - dh_fixperms - dh_installdeb - dh_makeshlibs - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install install-stamp diff --git a/contrib/dialog/package/debian/source/format b/contrib/dialog/package/debian/source/format deleted file mode 100644 index 89ae9db8f88b..000000000000 --- a/contrib/dialog/package/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/contrib/dialog/package/debian/watch b/contrib/dialog/package/debian/watch deleted file mode 100644 index a72bfbb4e50e..000000000000 --- a/contrib/dialog/package/debian/watch +++ /dev/null @@ -1,4 +0,0 @@ -version=3 - -opts=passive ftp://ftp.invisible-island.net/dialog/dialog-([\d.]+)\.tgz \ - debian uupdate diff --git a/contrib/dialog/package/dialog.map b/contrib/dialog/package/dialog.map deleted file mode 100644 index cb3aff61c217..000000000000 --- a/contrib/dialog/package/dialog.map +++ /dev/null @@ -1,263 +0,0 @@ -# $Id: dialog.map,v 1.13 2020/11/26 18:09:52 tom Exp $ -# script for shared library symbol-versioning using ld -# -# This file was generated by ncu-mapsyms -# Configure options (1.0.20040721) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.1.20070227) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.2.20121230) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20160126) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20180620) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20190806) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20191209) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20200326) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20201126) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec - -DIALOG_1.0.20040721 { - global: - dialog_calendar; - dialog_checklist; - dialog_form; - dialog_fselect; - dialog_gauge; - dialog_inputbox; - dialog_menu; - dialog_msgbox; - dialog_state; - dialog_tailbox; - dialog_textbox; - dialog_timebox; - dialog_vars; - dialog_version; - dialog_yesno; - dlg_add_callback; - dlg_add_quoted; - dlg_add_result; - dlg_attr_clear; - dlg_auto_size; - dlg_auto_sizefile; - dlg_beeping; - dlg_box_x_ordinate; - dlg_box_y_ordinate; - dlg_button_count; - dlg_button_layout; - dlg_button_sizes; - dlg_button_x_step; - dlg_calc_listh; - dlg_calc_listw; - dlg_char_to_button; - dlg_clear; - dlg_color_count; - dlg_color_setup; - dlg_color_table; - dlg_count_columns; - dlg_count_wchars; - dlg_create_rc; - dlg_ctl_size; - dlg_default_item; - dlg_defaultno_button; - dlg_del_window; - dlg_does_output; - dlg_draw_arrows; - dlg_draw_bottom_box; - dlg_draw_box; - dlg_draw_buttons; - dlg_draw_shadow; - dlg_draw_title; - dlg_edit_offset; - dlg_edit_string; - dlg_exit; - dlg_exit_label; - dlg_exiterr; - dlg_flush_getc; - dlg_getc; - dlg_getc_callbacks; - dlg_index_columns; - dlg_index_wchars; - dlg_item_help; - dlg_killall_bg; - dlg_last_getc; - dlg_limit_columns; - dlg_match_char; - dlg_mouse_bigregion; - dlg_mouse_free_regions; - dlg_mouse_mkbigregion; - dlg_mouse_mkregion; - dlg_mouse_region; - dlg_mouse_setbase; - dlg_mouse_wgetch; - dlg_new_window; - dlg_next_button; - dlg_next_ok_buttonindex; - dlg_ok_buttoncode; - dlg_ok_label; - dlg_ok_labels; - dlg_parse_rc; - dlg_prev_button; - dlg_prev_ok_buttonindex; - dlg_print_autowrap; - dlg_print_size; - dlg_print_text; - dlg_put_backtitle; - dlg_remove_callback; - dlg_set_focus; - dlg_show_string; - dlg_strclone; - dlg_sub_window; - dlg_tab_correct_str; - dlg_trim_string; - dlg_yes_labels; - end_dialog; - init_dialog; -}; - -DIALOG_1.1.20070227 { - global: - dialog_dselect; - dialog_editbox; - dialog_mixedform; - dialog_mixedgauge; - dialog_pause; - dialog_progressbox; - dlg_asciibox; - dlg_boxchar; - dlg_button_to_char; - dlg_calc_list_width; - dlg_checklist; - dlg_clr_result; - dlg_color_pair; - dlg_default_formitem; - dlg_default_listitem; - dlg_draw_arrows2; - dlg_dump_keys; - dlg_editbox; - dlg_exit_buttoncode; - dlg_find_index; - dlg_form; - dlg_free_formitems; - dlg_lookup_key; - dlg_max_input; - dlg_menu; - dlg_mouse_wgetch_nowait; - dlg_move_window; - dlg_ordinate; - dlg_parse_bindkey; - dlg_print_line; - dlg_register_buttons; - dlg_register_window; - dlg_result_key; - dlg_set_result; - dlg_strempty; - dlg_trace; - dlg_trace_chr; - dlg_trace_win; - dlg_unregister_window; - dlg_yes_buttoncode; -} DIALOG_1.0.20040721; - -DIALOG_1.2.20121230 { - global: - dialog_buildlist; - dialog_helpfile; - dialog_prgbox; - dialog_rangebox; - dialog_treeview; - dlg_add_callback_ref; - dlg_add_separator; - dlg_add_string; - dlg_align_columns; - dlg_allocate_gauge; - dlg_buildlist; - dlg_check_scrolled; - dlg_count_argv; - dlg_count_real_columns; - dlg_default_button; - dlg_draw_bottom_box2; - dlg_draw_box2; - dlg_draw_helpline; - dlg_draw_scrollbar; - dlg_dummy_menutext; - dlg_dump_window_keys; - dlg_eat_argv; - dlg_free_columns; - dlg_free_gauge; - dlg_get_attrs; - dlg_mouse_setcode; - dlg_need_separator; - dlg_new_modal_window; - dlg_print_listitem; - dlg_print_scrolled; - dlg_progressbox; - dlg_renamed_menutext; - dlg_restore_vars; - dlg_save_vars; - dlg_string_to_argv; - dlg_trace_msg; - dlg_treeview; - dlg_update_gauge; - dlg_wgetparent; -} DIALOG_1.1.20070227; - -DIALOG_1.3.20160126 { - global: - dlg_add_help_formitem; - dlg_add_help_listitem; - dlg_add_last_key; - dlg_finish_string; - dlg_popen; - dlg_reallocate_gauge; -} DIALOG_1.2.20121230; - -DIALOG_1.3.20180620 { - global: - dlg_trace_2n; - dlg_trace_2s; - dlg_ttysize; - dlg_will_resize; -} DIALOG_1.3.20160126; - -DIALOG_1.3.20190806 { - global: - dlg_button_key; - dlg_exitcode2s; - dlg_exitname2n; - dlg_ok_button_key; -} DIALOG_1.3.20180620; - -DIALOG_1.3.20191209 { - global: - dlg_trace_va_msg; -} DIALOG_1.3.20190806; - -DIALOG_1.3.20200326 { - global: - dlg_reset_timeout; - dlg_set_timeout; -} DIALOG_1.3.20191209; - -DIALOG_1.3.20201126 { - global: - dlg_der_window; - dlg_getenv_num; - dlg_getenv_str; - dlg_keep_tite; - local: - _*; -} DIALOG_1.3.20200326; diff --git a/contrib/dialog/package/dialog.spec b/contrib/dialog/package/dialog.spec deleted file mode 100644 index 2a000011a880..000000000000 --- a/contrib/dialog/package/dialog.spec +++ /dev/null @@ -1,110 +0,0 @@ -Summary: dialog - display dialog boxes from shell scripts -%define AppProgram dialog -%define AppVersion 1.3 -%define AppRelease 20210117 -%define ActualProg c%{AppProgram} -# $XTermId: dialog.spec,v 1.146 2021/01/16 16:21:23 tom Exp $ -Name: %{ActualProg} -Version: %{AppVersion} -Release: %{AppRelease} -License: LGPL -Group: Applications/System -URL: ftp://ftp.invisible-island.net/%{AppProgram} -Source0: %{AppProgram}-%{AppVersion}-%{AppRelease}.tgz -Packager: Thomas Dickey <dickey@invisible-island.net> - -%package devel -Summary: Development headers/library for the dialog package. -Requires: %{ActualProg}, ncurses-devel - -%description -Dialog is a program that will let you present a variety of questions or -display messages using dialog boxes from a shell script. These types -of dialog boxes are implemented (though not all are necessarily compiled -into dialog): - - buildlist, calendar, checklist, dselect, editbox, form, fselect, - gauge, infobox, inputbox, inputmenu, menu, mixedform, - mixedgauge, msgbox (message), passwordbox, passwordform, pause, - prgbox, programbox, progressbox, radiolist, rangebox, tailbox, - tailboxbg, textbox, timebox, treeview, and yesno (yes/no). - -This package installs as "cdialog" to avoid conflict with other packages. - -%description devel -This is the development package "cdialog", which includes the header files, -the linkage information and library documentation. -%prep - -%define debug_package %{nil} - -%setup -q -n %{AppProgram}-%{AppVersion}-%{AppRelease} - -%build - -cp -v package/dialog.map package/%{ActualProg}.map - -INSTALL_PROGRAM='${INSTALL}' \ -%configure \ - --target %{_target_platform} \ - --prefix=%{_prefix} \ - --bindir=%{_bindir} \ - --libdir=%{_libdir} \ - --mandir=%{_mandir} \ - --with-package=%{ActualProg} \ - --enable-header-subdir \ - --enable-nls \ - --enable-widec \ - --with-shared \ - --with-ncursesw \ - --with-versioned-syms \ - --disable-rpath-hack - -make - -%install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - -make install DESTDIR=$RPM_BUILD_ROOT -make install-full DESTDIR=$RPM_BUILD_ROOT - -strip $RPM_BUILD_ROOT%{_bindir}/%{ActualProg} -chmod 755 $RPM_BUILD_ROOT%{_libdir}/lib%{ActualProg}.so.* - -%clean -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -%{_bindir}/%{ActualProg} -%{_mandir}/man1/%{ActualProg}.* -%{_libdir}/lib%{ActualProg}.so.* -%{_datadir}/locale/*/LC_MESSAGES/%{ActualProg}.mo - -%files devel -%defattr(-,root,root) -%{_bindir}/%{ActualProg}-config -%{_includedir}/%{ActualProg}.h -%{_includedir}/%{ActualProg}/dlg_colors.h -%{_includedir}/%{ActualProg}/dlg_config.h -%{_includedir}/%{ActualProg}/dlg_keys.h -%{_libdir}/lib%{ActualProg}.so -%{_mandir}/man3/%{ActualProg}.* - -%changelog -# each patch should add its ChangeLog entries here - -* Wed Jul 24 2019 Thomas Dickey -- split-out "-devel" package - -* Sat Dec 09 2017 Thomas Dickey -- update ftp url - -* Thu Apr 21 2016 Thomas Dickey -- remove stray call to libtool - -* Tue Oct 18 2011 Thomas Dickey -- add executable permissions for shared libraries, discard ".la" file. - -* Thu Dec 30 2010 Thomas Dickey -- initial version diff --git a/contrib/dialog/package/dialog.sym b/contrib/dialog/package/dialog.sym deleted file mode 100644 index 99bc2e1ecacb..000000000000 --- a/contrib/dialog/package/dialog.sym +++ /dev/null @@ -1,225 +0,0 @@ -# $Id: dialog.sym,v 1.12 2020/11/26 18:08:18 tom Exp $ -# script for shared library symbol-visibility using libtool -# -# This file was generated by ncu-mapsyms -# Configure options (1.0.20040721) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.1.20070227) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.2.20121230) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20160126) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20180620) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20190806) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20191209) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20200326) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -# Configure options (1.3.20201126) -# --disable-leaks --enable-trace -# --disable-leaks --enable-trace --enable-widec -dialog_buildlist -dialog_calendar -dialog_checklist -dialog_dselect -dialog_editbox -dialog_form -dialog_fselect -dialog_gauge -dialog_helpfile -dialog_inputbox -dialog_menu -dialog_mixedform -dialog_mixedgauge -dialog_msgbox -dialog_pause -dialog_prgbox -dialog_progressbox -dialog_rangebox -dialog_state -dialog_tailbox -dialog_textbox -dialog_timebox -dialog_treeview -dialog_vars -dialog_version -dialog_yesno -dlg_add_callback -dlg_add_callback_ref -dlg_add_help_formitem -dlg_add_help_listitem -dlg_add_last_key -dlg_add_quoted -dlg_add_result -dlg_add_separator -dlg_add_string -dlg_align_columns -dlg_allocate_gauge -dlg_asciibox -dlg_attr_clear -dlg_auto_size -dlg_auto_sizefile -dlg_beeping -dlg_box_x_ordinate -dlg_box_y_ordinate -dlg_boxchar -dlg_buildlist -dlg_button_count -dlg_button_key -dlg_button_layout -dlg_button_sizes -dlg_button_to_char -dlg_button_x_step -dlg_calc_list_width -dlg_calc_listh -dlg_calc_listw -dlg_char_to_button -dlg_check_scrolled -dlg_checklist -dlg_clear -dlg_clr_result -dlg_color_count -dlg_color_pair -dlg_color_setup -dlg_color_table -dlg_count_argv -dlg_count_columns -dlg_count_real_columns -dlg_count_wchars -dlg_create_rc -dlg_ctl_size -dlg_default_button -dlg_default_formitem -dlg_default_item -dlg_default_listitem -dlg_defaultno_button -dlg_del_window -dlg_der_window -dlg_does_output -dlg_draw_arrows -dlg_draw_arrows2 -dlg_draw_bottom_box -dlg_draw_bottom_box2 -dlg_draw_box -dlg_draw_box2 -dlg_draw_buttons -dlg_draw_helpline -dlg_draw_scrollbar -dlg_draw_shadow -dlg_draw_title -dlg_dummy_menutext -dlg_dump_keys -dlg_dump_window_keys -dlg_eat_argv -dlg_edit_offset -dlg_edit_string -dlg_editbox -dlg_exit -dlg_exit_buttoncode -dlg_exit_label -dlg_exitcode2s -dlg_exiterr -dlg_exitname2n -dlg_find_index -dlg_finish_string -dlg_flush_getc -dlg_form -dlg_free_columns -dlg_free_formitems -dlg_free_gauge -dlg_get_attrs -dlg_getc -dlg_getc_callbacks -dlg_getenv_num -dlg_getenv_str -dlg_index_columns -dlg_index_wchars -dlg_item_help -dlg_keep_tite -dlg_killall_bg -dlg_last_getc -dlg_limit_columns -dlg_lookup_key -dlg_match_char -dlg_max_input -dlg_menu -dlg_mouse_bigregion -dlg_mouse_free_regions -dlg_mouse_mkbigregion -dlg_mouse_mkregion -dlg_mouse_region -dlg_mouse_setbase -dlg_mouse_setcode -dlg_mouse_wgetch -dlg_mouse_wgetch_nowait -dlg_move_window -dlg_need_separator -dlg_new_modal_window -dlg_new_window -dlg_next_button -dlg_next_ok_buttonindex -dlg_ok_button_key -dlg_ok_buttoncode -dlg_ok_label -dlg_ok_labels -dlg_ordinate -dlg_parse_bindkey -dlg_parse_rc -dlg_popen -dlg_prev_button -dlg_prev_ok_buttonindex -dlg_print_autowrap -dlg_print_line -dlg_print_listitem -dlg_print_scrolled -dlg_print_size -dlg_print_text -dlg_progressbox -dlg_put_backtitle -dlg_reallocate_gauge -dlg_register_buttons -dlg_register_window -dlg_remove_callback -dlg_renamed_menutext -dlg_reset_timeout -dlg_restore_vars -dlg_result_key -dlg_save_vars -dlg_set_focus -dlg_set_result -dlg_set_timeout -dlg_show_string -dlg_strclone -dlg_strempty -dlg_string_to_argv -dlg_sub_window -dlg_tab_correct_str -dlg_trace -dlg_trace_2n -dlg_trace_2s -dlg_trace_chr -dlg_trace_msg -dlg_trace_va_msg -dlg_trace_win -dlg_treeview -dlg_trim_string -dlg_ttysize -dlg_unregister_window -dlg_update_gauge -dlg_wgetparent -dlg_will_resize -dlg_yes_buttoncode -dlg_yes_labels -end_dialog -init_dialog diff --git a/contrib/dialog/package/freebsd/Makefile b/contrib/dialog/package/freebsd/Makefile deleted file mode 100644 index 88a6a5d48194..000000000000 --- a/contrib/dialog/package/freebsd/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# New ports collection makefile for: ncdialog -# Date created: 2003-01-11 -# Whom: AlanE <alane@freebsd.org> -# -# $Carpetsmoker: ports/cdialog/Makefile,v 1.4 2007/04/22 11:30:53 carpetsmoker Exp $ -# $FreeBSD$ -# - -PORTNAME= cdialog -PORTVERSION= 1.3.20210117 -PORTEPOCH= 1 -CATEGORIES= devel -MASTER_SITES= ftp://ftp.invisible-island.net/${PORTNAME:S|^c||}/ -DISTNAME= ${PORTNAME:S|^c||}-${PORTVERSION:R}-${PORTVERSION:E} -EXTRACT_SUFX= .tgz - -MAINTAINER= sylvio@FreeBSD.org -COMMENT= An enhanced version of 'dialog' to work with ncurses - -LICENSE= LGPL21 - -USE_AUTOTOOLS= libtool -GNU_CONFIGURE= yes -USE_LDCONFIG= yes -CONFIGURE_ARGS= --enable-widec \ - --includedir=${PREFIX}/include/${PORTNAME} \ - --with-libtool \ - --with-ncursesw \ - --with-package=${PORTNAME} -MAKEFILE= makefile - -MAN1= cdialog.1 -MAN3= cdialog.3 -MANCOMPRESSED= no - -INSTALL_TARGET= install-strip install-man install-lib - -.if !defined(NOPORTEXAMPLES) -post-patch: - @${FIND} ${WRKSRC}/samples/ -type f -exec ${REINPLACE_CMD} -i "" "s|dialog|cdialog|g" {} \; - -post-install: - @${MKDIR} ${EXAMPLESDIR} - cd ${WRKSRC}/samples && ${FIND} . | \ - ${CPIO} -pdm -L -R ${SHAREOWN}:${SHAREGRP} ${EXAMPLESDIR} -.endif - -.include <bsd.port.mk> diff --git a/contrib/dialog/package/freebsd/distinfo b/contrib/dialog/package/freebsd/distinfo deleted file mode 100644 index b9531eac64b3..000000000000 --- a/contrib/dialog/package/freebsd/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (dialog-1.1-20120215.tgz) = 883c58498663d939b18f3aea56976b64268b736d1579ac850512e5d5a4a2eafc -SIZE (dialog-1.1-20120215.tgz) = 441234 diff --git a/contrib/dialog/package/freebsd/pkg-descr b/contrib/dialog/package/freebsd/pkg-descr deleted file mode 100644 index a23bfbafa772..000000000000 --- a/contrib/dialog/package/freebsd/pkg-descr +++ /dev/null @@ -1,9 +0,0 @@ -This is an enhanced version of the 'dialog' command. Quoting Thomas Dickey, -the ncurses developer, "DIALOG was written by Savio Lam <lam836@cs.cuhk.hk> -and modified by several people. - -"Initially, I made fixes and reviewed the code to ensure that problems -reported were not related to ncurses. After that, I resumed development, -adding new widget types. See the changelog for details." - -WWW: http://invisible-island.net/dialog/ diff --git a/contrib/dialog/package/freebsd/pkg-plist b/contrib/dialog/package/freebsd/pkg-plist deleted file mode 100644 index 097d58b19f91..000000000000 --- a/contrib/dialog/package/freebsd/pkg-plist +++ /dev/null @@ -1,203 +0,0 @@ -bin/cdialog -bin/cdialog-config -include/cdialog/dialog.h -include/cdialog/dlg_colors.h -include/cdialog/dlg_config.h -include/cdialog/dlg_keys.h -lib/libcdialog.a -lib/libcdialog.la -lib/libcdialog.so -lib/libcdialog.so.10 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar2-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calendar3-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist-8bit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist10 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist11 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist7 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist9 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/checklist9.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/admin.funcs -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/common.funcs -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.funcs -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifman1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifman2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifmcfg2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifmcfg4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifmcfg5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifpoll1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifpoll2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifreq1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.ifreq2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.rcnews -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.sendifm1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.sendifm2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.trnrc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/copi.wheel -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copifuncs/ifpatch -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copismall -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/debian.rc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dialog.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/editbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/editbox-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/editbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/editbox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/editbox4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form1-both -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form1-extra -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form1-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form1-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/form6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect0 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect1-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fselect2-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gauge -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gauge0 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gauge0-input-fd -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/gauge2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/infobox6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox-both -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox-extra -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox6-8bit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox6-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputbox7 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/inputmenu4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install/FDISK.TEST -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install/makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install/makefile.in -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install/setup.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/install/setup.help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/killall -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/listing -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox-8bit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox10 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox7 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/menubox9 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mixedform -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mixedform2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/mixedgauge -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox4-8bit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox4-eucjp -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox4-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/msgbox6a -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/password -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/password1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/password2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/passwordform1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/passwordform1-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pause -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pause-both -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pause-extra -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pause-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/prgbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/prgbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/programbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/programbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/progress -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/progress2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist10 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/radiolist4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/report-button -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/report-edit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/report-string -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/report-tempfile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/report-yesno -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/rotated-data -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/setup-edit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/setup-tempfile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/setup-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/setup-vars -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortlist -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/slackware.rc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sourcemage.rc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/suse.rc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tailbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tailboxbg -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tailboxbg1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tailboxbg2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testdata-8bit -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox-both -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/textbox3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timebox -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timebox-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timebox2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/timebox2-stdout -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/wheel -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/whiptail.rc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno-both -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno-extra -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno-help -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno-utf8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/yesno4 -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/install -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/copifuncs -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% -@dirrm include/cdialog diff --git a/contrib/dialog/pause.c b/contrib/dialog/pause.c deleted file mode 100644 index eafb28f1e140..000000000000 --- a/contrib/dialog/pause.c +++ /dev/null @@ -1,259 +0,0 @@ -/* - * $Id: pause.c,v 1.48 2020/11/23 00:38:19 tom Exp $ - * - * pause.c -- implements the pause dialog - * - * Copyright 2004-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * This is adapted from source contributed by - * Yura Kalinichenko - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#define MY_TIMEOUT 50 - -#define MIN_HIGH (4) -#define MIN_WIDE (10 + 2 * (2 + MARGIN)) -#define BTN_HIGH (1 + 2 * MARGIN) - -/* - * This is like gauge, but can be interrupted. - * - * A pause box displays a meter along the bottom of the box. The meter - * indicates how many seconds remain until the end of the pause. The pause - * exits when timeout is reached (status OK) or the user presses: - * OK button (status OK) - * CANCEL button (status CANCEL) - * Esc key (status ESC) - * - */ -int -dialog_pause(const char *title, - const char *cprompt, - int height, - int width, - int seconds) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TRAVERSE_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - - int i, x, y, step; - int button = dlg_default_button(); - int seconds_orig; - WINDOW *dialog; - const char **buttons = dlg_ok_labels(); - bool have_buttons = (dlg_button_count(buttons) != 0); - bool first; - int key, fkey; - int result = DLG_EXIT_UNKNOWN; - int button_high = (have_buttons ? BTN_HIGH : MARGIN); - int gauge_y; - char *prompt; - int save_timeout = dialog_vars.timeout_secs; - - DLG_TRACE(("# pause args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("seconds", seconds); - - curs_set(0); - - seconds_orig = (seconds > 0) ? seconds : 1; - dialog_vars.pause_secs = seconds_orig; - dialog_vars.timeout_secs = 0; - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - - if (have_buttons) { - dlg_auto_size(title, prompt, &height, &width, - MIN_HIGH, - MIN_WIDE); - dlg_button_layout(buttons, &width); - } else { - dlg_auto_size(title, prompt, &height, &width, - MIN_HIGH + MARGIN - BTN_HIGH, - MIN_WIDE); - } - gauge_y = height - button_high - (1 + 2 * MARGIN); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - /* center dialog box on screen */ - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "pause", binding); - dlg_register_buttons(dialog, "pause", buttons); - - dlg_mouse_setbase(x, y); - nodelay(dialog, TRUE); - - first = TRUE; - do { - (void) werase(dialog); - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - - dlg_draw_title(dialog, title); - dlg_draw_helpline(dialog, FALSE); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - dlg_draw_box2(dialog, - gauge_y, 2 + MARGIN, - 2 + MARGIN, width - 2 * (2 + MARGIN), - dialog_attr, - border_attr, - border2_attr); - - /* - * Clear the area for the progress bar by filling it with spaces - * in the title-attribute, and write the percentage with that - * attribute. - */ - (void) wmove(dialog, gauge_y + MARGIN, 4); - dlg_attrset(dialog, title_attr); - - for (i = 0; i < (width - 2 * (3 + MARGIN)); i++) - (void) waddch(dialog, ' '); - - (void) wmove(dialog, gauge_y + MARGIN, (width / 2) - 2); - (void) wprintw(dialog, "%3d", seconds); - - /* - * Now draw a bar in reverse, relative to the background. - * The window attribute was useful for painting the background, - * but requires some tweaks to reverse it. - */ - x = (seconds * (width - 2 * (3 + MARGIN))) / seconds_orig; - if ((title_attr & A_REVERSE) != 0) { - dlg_attroff(dialog, A_REVERSE); - } else { - dlg_attrset(dialog, A_REVERSE); - } - (void) wmove(dialog, gauge_y + MARGIN, 4); - for (i = 0; i < x; i++) { - chtype ch = winch(dialog); - if (title_attr & A_REVERSE) { - ch &= ~A_REVERSE; - } - (void) waddch(dialog, ch); - } - - mouse_mkbutton(height - 2, width / 2 - 4, 6, '\n'); - if (have_buttons) { - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - } - if (first) { - (void) wrefresh(dialog); - dlg_trace_win(dialog); - first = FALSE; - } - - for (step = 0; - (result == DLG_EXIT_UNKNOWN) && (step < 1000); - step += MY_TIMEOUT) { - - napms(MY_TIMEOUT); - key = dlg_mouse_wgetch_nowait(dialog, &fkey); - if (key == ERR) { - ; /* ignore errors in nodelay mode */ - } else if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - switch (key) { -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - height = old_height; - width = old_width; - free(prompt); - _dlg_resize_cleanup(dialog); - goto retry; -#endif - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case ERR: - break; - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_ok_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } - break; - } - } - } while ((result == DLG_EXIT_UNKNOWN) && (seconds-- > 0)); - dlg_add_last_key(-1); - - curs_set(1); - dlg_mouse_free_regions(); - dlg_del_window(dialog); - free(prompt); - - dialog_vars.timeout_secs = save_timeout; - - return ((result == DLG_EXIT_UNKNOWN) ? DLG_EXIT_OK : result); -} diff --git a/contrib/dialog/po/POTFILES.in b/contrib/dialog/po/POTFILES.in deleted file mode 100644 index 48ea956a00b0..000000000000 --- a/contrib/dialog/po/POTFILES.in +++ /dev/null @@ -1,32 +0,0 @@ -arrows.c -buttons.c -calendar.c -checklist.c -dialog.c -dialog.h -dlg_colors.h -dlg_keys.c -dlg_keys.h -editbox.c -formbox.c -fselect.c -guage.c -inputbox.c -inputstr.c -menubox.c -mixedform.c -mixedgauge.c -mouse.c -mousewget.c -msgbox.c -pause.c -progressbox.c -rc.c -tailbox.c -textbox.c -timebox.c -trace.c -ui_getc.c -util.c -version.c -yesno.c diff --git a/contrib/dialog/po/an.po b/contrib/dialog/po/an.po deleted file mode 100644 index 494dabe62ebc..000000000000 --- a/contrib/dialog/po/an.po +++ /dev/null @@ -1,111 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Daniel Martinez <entaltoaragon@gmail.com>, 2013. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2013-02-19 17:50+0100\n" -"Last-Translator: Daniel Martinez <entaltoaragon@gmail.com>\n" -"Language-Team: Aragonese <softaragones@googlegroups.com>\n" -"Language: an\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Sí" - -#: buttons.c:393 -msgid "No" -msgstr "No" - -#: buttons.c:401 -msgid "OK" -msgstr "Acceptar" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Cancelar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Salir" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Aduya" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mes" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Anyo" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renombrar" - -#: fselect.c:550 -msgid "Directories" -msgstr "Directorios" - -#: fselect.c:551 -msgid "Files" -msgstr "Fichers" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Finalizau con exito" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falló" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Pasau" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completau" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Comprebau" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Feito" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Blincau" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En progreso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progreso total" - -#: textbox.c:489 -msgid "Search" -msgstr "Buscar" diff --git a/contrib/dialog/po/ar.po b/contrib/dialog/po/ar.po deleted file mode 100644 index 4f18ccb55391..000000000000 --- a/contrib/dialog/po/ar.po +++ /dev/null @@ -1,112 +0,0 @@ -# Arabic translation of Dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2005 Thomas Dickey. -# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004. -# -msgid "" -msgstr "" -"Project-Id-Version: Dialog 1.0-20050116\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2004-07-21 00:22+0300\n" -"Last-Translator: Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>\n" -"Language-Team: Arabic <support@arabeyes.org>\n" -"Language: ar\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.3\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "نعم" - -#: buttons.c:395 -msgid "No" -msgstr "لا" - -#: buttons.c:403 -msgid "OK" -msgstr "موافق" - -#: buttons.c:411 -msgid "Cancel" -msgstr "إلغاء" - -#: buttons.c:419 -msgid "EXIT" -msgstr "" - -#: buttons.c:427 -msgid "Extra" -msgstr "" - -#: buttons.c:435 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "" - -#: dialog.c:756 -msgid "Rename" -msgstr "" - -#: fselect.c:571 -msgid "Directories" -msgstr "" - -#: fselect.c:572 -msgid "Files" -msgstr "" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:468 -msgid "Search" -msgstr "" diff --git a/contrib/dialog/po/ast.po b/contrib/dialog/po/ast.po deleted file mode 100644 index 29f8d3440297..000000000000 --- a/contrib/dialog/po/ast.po +++ /dev/null @@ -1,115 +0,0 @@ -# Asturian translation for dialog -# Dialog -# This file is distributed under the same license as the dialog package. -# Copyright 2003-2007,2008 # Thomas Dickey -# -# enolp <enolp@softastur.org>, 2018. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2018-07-16 01:09+0100\n" -"Last-Translator: enolp <enolp@softastur.org>\n" -"Language-Team: Asturian <ubuntu-l10n-ast@lists.ubuntu.com>\n" -"Language: ast\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 2.0\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Sí" - -#: buttons.c:393 -msgid "No" -msgstr "Non" - -#: buttons.c:401 -msgid "OK" -msgstr "Aceutar" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Encaboxar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "COLAR" - -#: buttons.c:425 -msgid "Extra" -msgstr "Adicional" - -#: buttons.c:433 -msgid "Help" -msgstr "Ayuda" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mes" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Añu" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renomar" - -#: fselect.c:550 -msgid "Directories" -msgstr "Direutorios" - -#: fselect.c:551 -msgid "Files" -msgstr "Ficheros" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Tuvo ésitu" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falló" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Posóse" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completóse" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Conseñóse" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fecho" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Saltóse" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En cursu" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/D" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progresu xeneral" - -#: textbox.c:489 -msgid "Search" -msgstr "Guetar" diff --git a/contrib/dialog/po/be@latin.po b/contrib/dialog/po/be@latin.po deleted file mode 100644 index 6a45d8d85338..000000000000 --- a/contrib/dialog/po/be@latin.po +++ /dev/null @@ -1,109 +0,0 @@ -# Dialog -# Copyright 2003-2006,2007 # Thomas Dickey -# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2007-12-03 01:13+0200\n" -"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n" -"Language-Team: Belarusian (Latin script) <translation-team-be-latin@lists.sourceforge.net>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Tak" - -#: buttons.c:393 -msgid "No" -msgstr "Nie" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Anuluj" - -#: buttons.c:417 -msgid "EXIT" -msgstr "VYCHAD" - -#: buttons.c:425 -msgid "Extra" -msgstr "Dadatkova" - -#: buttons.c:433 -msgid "Help" -msgstr "Dapamoha" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Miesiac" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Hod" - -#: dialog.c:741 -msgid "Rename" -msgstr "Źmiani nazvu" - -#: fselect.c:550 -msgid "Directories" -msgstr "Katalohi" - -#: fselect.c:551 -msgid "Files" -msgstr "Fajły" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Paśpiachova" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Niaŭdała" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Projdziena" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Skončana" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Pravierana" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Zroblena" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Abminuta" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Dziejničaje" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Niama" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Ahulny prahres" - -#: textbox.c:489 -msgid "Search" -msgstr "Šukaj" diff --git a/contrib/dialog/po/bg.po b/contrib/dialog/po/bg.po deleted file mode 100644 index f11617f378e7..000000000000 --- a/contrib/dialog/po/bg.po +++ /dev/null @@ -1,112 +0,0 @@ -# Bulgarian translation of Dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2005 Thomas Dickey. -# Ognyan Kulev <ogi@fmi.uni-sofia.bg>, 2004. -# -# -msgid "" -msgstr "" -"Project-Id-Version: Dialog 1.0-20050116\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2004-09-13 09:02+0300\n" -"Last-Translator: Ognyan Kulev <ogi@fmi.uni-sofia.bg>\n" -"Language-Team: Bulgarian <dict@linux.zonebg.com>\n" -"Language: bg\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Да" - -#: buttons.c:395 -msgid "No" -msgstr "Не" - -#: buttons.c:403 -msgid "OK" -msgstr "" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Отказ" - -#: buttons.c:419 -msgid "EXIT" -msgstr "" - -#: buttons.c:427 -msgid "Extra" -msgstr "" - -#: buttons.c:435 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "" - -#: dialog.c:756 -msgid "Rename" -msgstr "" - -#: fselect.c:571 -msgid "Directories" -msgstr "" - -#: fselect.c:572 -msgid "Files" -msgstr "" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:468 -msgid "Search" -msgstr "" diff --git a/contrib/dialog/po/ca.po b/contrib/dialog/po/ca.po deleted file mode 100644 index 65f79a7e5795..000000000000 --- a/contrib/dialog/po/ca.po +++ /dev/null @@ -1,111 +0,0 @@ -# Catalan translation of Dialog. -# Copyright © 2004, 2005, 2008 Free Software Foundation, Inc. -# This file is distributed under the same licence as the dialog package. -# Jordi Mallach <jordi@debian.org>, 2004, 2005, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-06-10 00:50+0200\n" -"Last-Translator: Jordi Mallach <jordi@gnu.org>\n" -"Language-Team: Catalan <ca@dodds.net>\n" -"Language: ca\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Sí" - -#: buttons.c:395 -msgid "No" -msgstr "No" - -#: buttons.c:403 -msgid "OK" -msgstr "D'acord" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Cancel·la" - -#: buttons.c:419 -msgid "EXIT" -msgstr "SURT" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Ajuda" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mes" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Any" - -#: dialog.c:756 -msgid "Rename" -msgstr "Canvia el nom" - -#: fselect.c:571 -msgid "Directories" -msgstr "Directoris" - -#: fselect.c:572 -msgid "Files" -msgstr "Fitxers" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Ha tingut èxit" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Ha fallat" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Ha passat" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "S'ha completat" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Activat" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fet" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Omès" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En progrés" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/D" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progrés general" - -#: textbox.c:468 -msgid "Search" -msgstr "Cerca" diff --git a/contrib/dialog/po/cs.po b/contrib/dialog/po/cs.po deleted file mode 100644 index 79868916ccc0..000000000000 --- a/contrib/dialog/po/cs.po +++ /dev/null @@ -1,114 +0,0 @@ -# Czech translations for dialog package. -# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the dialog package. -# -# Martin Povolny <martin@solnet.cz> -# Marek Černocký <marek@manet.cz>, 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2011-11-25 13:18+0100\n" -"Last-Translator: Marek Černocký <marek@manet.cz>\n" -"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" -"Language: cs\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Ano" - -#: buttons.c:393 -msgid "No" -msgstr "Ne" - -#: buttons.c:401 -msgid "OK" -msgstr "Budiž" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Storno" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Konec" - -#: buttons.c:425 -msgid "Extra" -msgstr "Další" - -#: buttons.c:433 -msgid "Help" -msgstr "Nápověda" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Měsíc" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Rok" - -#: dialog.c:741 -msgid "Rename" -msgstr "Přejmenovat" - -#: fselect.c:550 -msgid "Directories" -msgstr "Složky" - -#: fselect.c:551 -msgid "Files" -msgstr "Soubory" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Úspěšné" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Selhalo" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Pozastaveno" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Dokončeno" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Zkontrolováno" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Hotovo" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Přeskočeno" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Probíhá" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Není známo" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Celkový průběh" - -#: textbox.c:489 -msgid "Search" -msgstr "Hledat" diff --git a/contrib/dialog/po/cy.po b/contrib/dialog/po/cy.po deleted file mode 100644 index e3f28272c65b..000000000000 --- a/contrib/dialog/po/cy.po +++ /dev/null @@ -1,111 +0,0 @@ -# Dialog -# Copyright 2003,2004 # Thomas Dickey -# -msgid "" -msgstr "" -"Project-Id-Version: Dialog\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2004-03-30 23:00+0100\n" -"Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n" -"Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n" -"Language: cy\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ie" - -#: buttons.c:395 -msgid "No" -msgstr "Na" - -#: buttons.c:403 -msgid "OK" -msgstr "Iawn" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Diddymu" - -#: buttons.c:419 -msgid "EXIT" -msgstr "GADAEL" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ychwanegol" - -#: buttons.c:435 -msgid "Help" -msgstr "Cymorth" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mis" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Blwyddyn" - -#: dialog.c:756 -msgid "Rename" -msgstr "Ailenwy" - -#: fselect.c:571 -msgid "Directories" -msgstr "Cyfeiriaduron" - -#: fselect.c:572 -msgid "Files" -msgstr "Ffeiliau" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -#, fuzzy -msgid "Failed" -msgstr "Ffeiliau" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:468 -#, fuzzy -msgid "Search" -msgstr "Search" diff --git a/contrib/dialog/po/da.po b/contrib/dialog/po/da.po deleted file mode 100644 index 531ba297858a..000000000000 --- a/contrib/dialog/po/da.po +++ /dev/null @@ -1,112 +0,0 @@ -# Danish translation of Dialog. -# Copyright (C) 2001-2007 Thomas Dickey. -# This file is distributed under the same license as the Dialog package. -# Morten Brix Pedersen <morten@wtf.dk>, 2001-2004. -# Joe Hansen <joedalton2@yahoo.dk>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-08-20 22:53+0200\n" -"Last-Translator: Keld Jørn Simonsen <keld@dkuug.dk>\n" -"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ja" - -#: buttons.c:395 -msgid "No" -msgstr "Nej" - -#: buttons.c:403 -msgid "OK" -msgstr "O.K." - -#: buttons.c:411 -msgid "Cancel" -msgstr "Anullér" - -#: buttons.c:419 -msgid "EXIT" -msgstr "AFSLUT" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:435 -msgid "Help" -msgstr "Hjælp" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Måned" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "År" - -#: dialog.c:756 -msgid "Rename" -msgstr "Omdøb" - -#: fselect.c:571 -msgid "Directories" -msgstr "Kataloger" - -#: fselect.c:572 -msgid "Files" -msgstr "Filer" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Lykkedes" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Mislykkedes" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Bestod" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Færdig" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Kontrolleret" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Færdig" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Sprunget over" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "I gang" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Samlet status" - -#: textbox.c:468 -msgid "Search" -msgstr "Søg" diff --git a/contrib/dialog/po/de.po b/contrib/dialog/po/de.po deleted file mode 100644 index 92605bc167fd..000000000000 --- a/contrib/dialog/po/de.po +++ /dev/null @@ -1,115 +0,0 @@ -# Dialog -# Copyright 2001, # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# -# Michael Piefel <piefel@informatik.hu-berlin.de>, 2002. -# Roland Illig <roland.illig@gmx.de>, 2009-2014. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2014-09-01 12:39+0100\n" -"Last-Translator: Roland Illig <roland.illig@gmx.de>\n" -"Language-Team: German <translation-team-de@lists.sourceforge.net>\n" -"Language: de\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.6.9\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Ja" - -#: buttons.c:393 -msgid "No" -msgstr "Nein" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Abbrechen" - -#: buttons.c:417 -msgid "EXIT" -msgstr "VERLASSEN" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Hilfe" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Monat" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Jahr" - -#: dialog.c:741 -msgid "Rename" -msgstr "Umbenennen" - -#: fselect.c:550 -msgid "Directories" -msgstr "Verzeichnisse" - -#: fselect.c:551 -msgid "Files" -msgstr "Dateien" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Erfolgreich" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Fehlgeschlagen" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Bestanden" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Abgeschlossen" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Geprüft" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Erledigt" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Übersprungen" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "In Bearbeitung" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Gesamtfortschritt" - -#: textbox.c:489 -msgid "Search" -msgstr "Suche" diff --git a/contrib/dialog/po/dialog.pot b/contrib/dialog/po/dialog.pot deleted file mode 100644 index 5d981f870062..000000000000 --- a/contrib/dialog/po/dialog.pot +++ /dev/null @@ -1,120 +0,0 @@ -# Dialog -# Copyright 2003-2020,2021 # Thomas Dickey -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.3.20210117\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-17 15:18-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:500 -msgid "Yes" -msgstr "" - -#: buttons.c:508 -msgid "No" -msgstr "" - -#: buttons.c:516 -msgid "OK" -msgstr "" - -#: buttons.c:524 -msgid "Cancel" -msgstr "" - -#: buttons.c:532 -msgid "EXIT" -msgstr "" - -#: buttons.c:540 -msgid "Extra" -msgstr "" - -#: buttons.c:548 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:463 -msgid "Month" -msgstr "" - -#. Headline "Year" -#: calendar.c:485 -msgid "Year" -msgstr "" - -#: dialog.c:744 -#, c-format -msgid "Expected %d arguments, found only %d" -msgstr "" - -#: dialog.c:748 -#, c-format -msgid "Expected %d arguments, found extra %d" -msgstr "" - -#: dialog.c:907 -msgid "Rename" -msgstr "" - -#: fselect.c:623 -msgid "Directories" -msgstr "" - -#: fselect.c:624 -msgid "Files" -msgstr "" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:515 -msgid "Search" -msgstr "" diff --git a/contrib/dialog/po/el.po b/contrib/dialog/po/el.po deleted file mode 100644 index 2fadd9bcd880..000000000000 --- a/contrib/dialog/po/el.po +++ /dev/null @@ -1,111 +0,0 @@ -# Greek translation for dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2008 Free Software Foundation, Inc. -# Savvas Radevic <vicedar@gmail.com>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2012-03-18 00:54+0100\n" -"Last-Translator: Savvas Radevic <vicedar@gmail.com>\n" -"Language-Team: Greek <team@lists.gnome.gr>\n" -"Language: el\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Ναι" - -#: buttons.c:393 -msgid "No" -msgstr "Όχι" - -#: buttons.c:401 -msgid "OK" -msgstr "Εντάξει" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Άκυρο" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Έξοδος" - -#: buttons.c:425 -msgid "Extra" -msgstr "Πρόσθετα" - -#: buttons.c:433 -msgid "Help" -msgstr "Βοήθεια" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Μήνας" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Έτος" - -#: dialog.c:741 -msgid "Rename" -msgstr "Μετονομασία" - -#: fselect.c:550 -msgid "Directories" -msgstr "Φάκελοι" - -#: fselect.c:551 -msgid "Files" -msgstr "Αρχεία" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Επιτυχία" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Αποτυχία" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Πέρασε" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Ολοκλήρωση" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Έλεγχος" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Τέλος" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Παράλειψη" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Σε εξέλιξη" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Μη Διαθέσιμο" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Συνολική πρόοδος" - -#: textbox.c:489 -msgid "Search" -msgstr "Αναζήτηση" diff --git a/contrib/dialog/po/eo.po b/contrib/dialog/po/eo.po deleted file mode 100644 index 99e482d025d5..000000000000 --- a/contrib/dialog/po/eo.po +++ /dev/null @@ -1,110 +0,0 @@ -# Esperanto translation of Dialog -# Copyright (C) 2008 Felipe Castro -# This file is distributed under the same license as the dialog package. -# Felipe Castro <fefcas@gmail.com>, 2008 -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-08-03 15:50-0300\n" -"Last-Translator: Felipe Castro <fefcas@gmail.com>\n" -"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" -"Language: eo\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Jes" - -#: buttons.c:395 -msgid "No" -msgstr "Ne" - -#: buttons.c:403 -msgid "OK" -msgstr "Certe" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Rezigni" - -#: buttons.c:419 -msgid "EXIT" -msgstr "ELIRI" - -#: buttons.c:427 -msgid "Extra" -msgstr "Krome" - -#: buttons.c:435 -msgid "Help" -msgstr "Helpo" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Monato" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Jaro" - -#: dialog.c:756 -msgid "Rename" -msgstr "Renomigi" - -#: fselect.c:571 -msgid "Directories" -msgstr "Dosierujoj" - -#: fselect.c:572 -msgid "Files" -msgstr "Dosieroj" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Sukcesis" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Malsukcesis" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Pasite" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Kompletite" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Kontrolite" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Farite" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Preterpasite" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Evoluado" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Tuta Evoluo" - -#: textbox.c:468 -msgid "Search" -msgstr "Serĉi" diff --git a/contrib/dialog/po/es.po b/contrib/dialog/po/es.po deleted file mode 100644 index ccb4b019a579..000000000000 --- a/contrib/dialog/po/es.po +++ /dev/null @@ -1,112 +0,0 @@ -# Mensajes en español para dialog. -# Copyright (C) 2001, 2003, 2004 Thomas Dickey. -# This file is distributed under the same license as the dialog package. -# Santiago Vila Doncel <sanvila@unex.es>, 2001, 2003, 2004, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2010-02-14 14:26+0100\n" -"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n" -"Language-Team: Spanish <es@tp.org.es>\n" -"Language: es\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Sí" - -#: buttons.c:393 -msgid "No" -msgstr "No" - -#: buttons.c:401 -msgid "OK" -msgstr "Aceptar" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Cancelar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Salir" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Ayuda" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mes" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Año" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renombrar" - -#: fselect.c:550 -msgid "Directories" -msgstr "Directorios" - -#: fselect.c:551 -msgid "Files" -msgstr "Ficheros" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Finalizado con éxito" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falló" - -# Esta no me convence mucho. Se admiten sugerencias -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Pasado" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completado" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Comprobado" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Hecho" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Saltado" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En progreso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progreso total" - -#: textbox.c:489 -msgid "Search" -msgstr "Buscar" diff --git a/contrib/dialog/po/et.po b/contrib/dialog/po/et.po deleted file mode 100644 index d8757d9f3d18..000000000000 --- a/contrib/dialog/po/et.po +++ /dev/null @@ -1,110 +0,0 @@ -# Dialog -# Copyright 2001, Thomas Dickey -# Copyright 2001, Ivar Smolin -msgid "" -msgstr "" -"Project-Id-Version: Dialog\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2001-09-08 00:05+0200\n" -"Last-Translator: Ivar Smolin <okul@linux.ee>\n" -"Language-Team: Estonian <et@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Jah" - -#: buttons.c:393 -msgid "No" -msgstr "Ei" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Tühista" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Lõpeta" - -#: buttons.c:425 -msgid "Extra" -msgstr "" - -#: buttons.c:433 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Kuu" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Aasta" - -#: dialog.c:741 -msgid "Rename" -msgstr "" - -#: fselect.c:550 -msgid "Directories" -msgstr "Kataloogid" - -#: fselect.c:551 -msgid "Files" -msgstr "Failid" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -#, fuzzy -msgid "Failed" -msgstr "Failid" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -#, fuzzy -msgid "Search" -msgstr "Otsingu" diff --git a/contrib/dialog/po/eu.po b/contrib/dialog/po/eu.po deleted file mode 100644 index 76bfd3084d27..000000000000 --- a/contrib/dialog/po/eu.po +++ /dev/null @@ -1,112 +0,0 @@ -# translation of dialog-1.1.20070704.po to Euskara -# Dialog -# Copyright 2003,2004 # Thomas Dickey -# -# Piarres Beobide Egaña <pi@beobide.net>, 2004, 2007. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-09-20 00:01+0200\n" -"Last-Translator: Piarres Beobide <pi@beobide.net>\n" -"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" -"Language: eu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Bai" - -#: buttons.c:395 -msgid "No" -msgstr "Ez" - -#: buttons.c:403 -msgid "OK" -msgstr "Ados" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Utzi" - -#: buttons.c:419 -msgid "EXIT" -msgstr "IRTEN" - -#: buttons.c:427 -msgid "Extra" -msgstr "Gehigarria" - -#: buttons.c:435 -msgid "Help" -msgstr "Laguntza" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Hilabetea" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Urtea" - -#: dialog.c:756 -msgid "Rename" -msgstr "Berizendatu" - -#: fselect.c:571 -msgid "Directories" -msgstr "Direktorioak" - -#: fselect.c:572 -msgid "Files" -msgstr "Fitxategiak" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Lortua" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Huts eginda" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Pasata" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Osatua" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Egiaztatua" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Eginda" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Salto eginda" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Aurrerakuntza" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "E/G" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Aurrerapen nagusia" - -#: textbox.c:468 -msgid "Search" -msgstr "Bilaketa" diff --git a/contrib/dialog/po/fa.po b/contrib/dialog/po/fa.po deleted file mode 100644 index 9be8d8b91ab9..000000000000 --- a/contrib/dialog/po/fa.po +++ /dev/null @@ -1,113 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# -# Seyed Ali Akbar Najafian <s.ali.najafian@chmail.ir>, 2012. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2013-08-03 17:04+0330\n" -"Last-Translator: سید‌علی‌اکبر نجفیان <s.ali.najafian@chmail.ir>\n" -"Language-Team: Persian <translation-team-fa@lists.sourceforge.net>\n" -"Language: persian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.4\n" - -#: buttons.c:385 -#, fuzzy -msgid "Yes" -msgstr "بله" - -#: buttons.c:393 -msgid "No" -msgstr "خیر" - -#: buttons.c:401 -msgid "OK" -msgstr "باشه" - -#: buttons.c:409 -msgid "Cancel" -msgstr "لغو" - -#: buttons.c:417 -msgid "EXIT" -msgstr "خروج" - -#: buttons.c:425 -msgid "Extra" -msgstr "اضافس" - -#: buttons.c:433 -msgid "Help" -msgstr "راهنما" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "ماه" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "سال" - -#: dialog.c:741 -msgid "Rename" -msgstr "تغییر نام" - -#: fselect.c:550 -msgid "Directories" -msgstr "مسیرها" - -#: fselect.c:551 -msgid "Files" -msgstr "پرونده‌ها" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "موفقیت آمیز" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "شکست خورد" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "متوقف شد" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "کامل شد" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "بررسی شد" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "انجام شد" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "رها شد" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "در حال پیشرفت" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "پیشرفت جاری" - -#: textbox.c:489 -msgid "Search" -msgstr "جستجو" diff --git a/contrib/dialog/po/fi.po b/contrib/dialog/po/fi.po deleted file mode 100644 index e39897ce0404..000000000000 --- a/contrib/dialog/po/fi.po +++ /dev/null @@ -1,114 +0,0 @@ -# Finnish translation for dialog. -# Copyright © 2010 Free Software Foundation, Inc. -# Copyright © 2005 Lauri Nurmi <lanurmi@iki.fi> -# This file is distributed under the same license as the dialog package. -# Lauri Nurmi <lanurmi@iki.fi>, 2005. -# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2010-09-06 21:24+0200\n" -"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n" -"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" -"Language: fi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Kyllä" - -#: buttons.c:395 -msgid "No" -msgstr "Ei" - -#: buttons.c:403 -msgid "OK" -msgstr "Valmis" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Peru" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Poistu" - -#: buttons.c:427 -msgid "Extra" -msgstr "Painike" - -#: buttons.c:435 -msgid "Help" -msgstr "Opaste" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Kuukausi" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Vuosi" - -#: dialog.c:756 -msgid "Rename" -msgstr "Nimeä" - -#: fselect.c:571 -msgid "Directories" -msgstr "Kansiot" - -#: fselect.c:572 -msgid "Files" -msgstr "Tiedostot" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Onnistui" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Epäonnistui" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Hyväksytty" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Valmis" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Valittu" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Valmis" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Ohitettiin" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Edistyminen" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Kokonaisedistyminen" - -#: textbox.c:468 -msgid "Search" -msgstr "Etsi" diff --git a/contrib/dialog/po/fr.po b/contrib/dialog/po/fr.po deleted file mode 100644 index 1edb08bd9568..000000000000 --- a/contrib/dialog/po/fr.po +++ /dev/null @@ -1,111 +0,0 @@ -# French translation of Dialog. -# Copyright (C) 2001 Thomas Dickey. -# Frédéric L. W. Meunier <0 @ pervalidus.net>, 2001. -# François-Xavier Coudert <fxcoudert@gmail.com>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-03-28 23:14+0000\n" -"Last-Translator: François-Xavier Coudert <fxcoudert@gmail.com>\n" -"Language-Team: French <traduc@traduc.org>\n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Oui" - -#: buttons.c:395 -msgid "No" -msgstr "Non" - -#: buttons.c:403 -msgid "OK" -msgstr "Accepter" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Annuler" - -#: buttons.c:419 -msgid "EXIT" -msgstr "SORTIR" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Aide" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mois" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Année" - -#: dialog.c:756 -msgid "Rename" -msgstr "Renommer" - -#: fselect.c:571 -msgid "Directories" -msgstr "Répertoires" - -#: fselect.c:572 -msgid "Files" -msgstr "Fichiers" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Succès" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Échec" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Passé" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Terminé" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Vérifié" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fini" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Ignoré" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En cours" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Avancement général" - -#: textbox.c:468 -msgid "Search" -msgstr "Rechercher" diff --git a/contrib/dialog/po/fur.po b/contrib/dialog/po/fur.po deleted file mode 100644 index c863351ef7eb..000000000000 --- a/contrib/dialog/po/fur.po +++ /dev/null @@ -1,113 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Fabio Tomat <f.t.public@gmail.com>, 2016. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2016-11-20 07:14+0100\n" -"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" -"Language-Team: Friulian <f.t.public@gmail.com>\n" -"Language: fur\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.8\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Sì" - -#: buttons.c:393 -msgid "No" -msgstr "No" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Anule" - -#: buttons.c:417 -msgid "EXIT" -msgstr "JES" - -#: buttons.c:425 -msgid "Extra" -msgstr "Adizionâl" - -#: buttons.c:433 -msgid "Help" -msgstr "Jutori" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mês" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "An" - -#: dialog.c:741 -msgid "Rename" -msgstr "Cambie non" - -#: fselect.c:550 -msgid "Directories" -msgstr "Cartelis" - -#: fselect.c:551 -msgid "Files" -msgstr "File" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Riessût" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falît" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Superât" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completât" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Controlât" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fat" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Saltât" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "In cors" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/D" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progrès gjenerâl" - -#: textbox.c:489 -msgid "Search" -msgstr "Cîr" diff --git a/contrib/dialog/po/ga.po b/contrib/dialog/po/ga.po deleted file mode 100644 index c2d7bfc93f97..000000000000 --- a/contrib/dialog/po/ga.po +++ /dev/null @@ -1,109 +0,0 @@ -# Dialog -# Copyright 2003,2004 # Thomas Dickey -# Kevin Patrick Scannell <scannell@SLU.EDU>, 2005, 2007. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-07-20 11:57-0500\n" -"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" -"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" -"Language: ga\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Tá" - -#: buttons.c:395 -msgid "No" -msgstr "Níl" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Cealaigh" - -#: buttons.c:419 -msgid "EXIT" -msgstr "SCOIR" - -#: buttons.c:427 -msgid "Extra" -msgstr "Breise" - -#: buttons.c:435 -msgid "Help" -msgstr "Cabhair" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mí" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Bliain" - -#: dialog.c:756 -msgid "Rename" -msgstr "Athainmnigh" - -#: fselect.c:571 -msgid "Directories" -msgstr "Comhadlanna" - -#: fselect.c:572 -msgid "Files" -msgstr "Comhaid" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "D'éirigh leis" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Teipthe" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Ceadaithe" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Críochnaithe" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Deimhnithe" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Déanta" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Scipeáilte" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Faoi Shiúl" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A/F" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Dul Chun Cinn Iomlán" - -#: textbox.c:468 -msgid "Search" -msgstr "Cuardaigh" diff --git a/contrib/dialog/po/gd.po b/contrib/dialog/po/gd.po deleted file mode 100644 index 9bcaa605066a..000000000000 --- a/contrib/dialog/po/gd.po +++ /dev/null @@ -1,111 +0,0 @@ -# Scottish Gaelic translation of Dialog. -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# GunChleoc <fios@foramnagaidhlig.net>, 2014. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2014-02-11 11:19-0000\n" -"Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n" -"Language-Team: Scottish Gaelic <fios@foramnagaidhlig.net>\n" -"Language: gd\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Tha" - -#: buttons.c:393 -msgid "No" -msgstr "Chan eil" - -#: buttons.c:401 -msgid "OK" -msgstr "Ceart ma-thà" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Sguir dheth" - -#: buttons.c:417 -msgid "EXIT" -msgstr "FÀG AN-SEO" - -#: buttons.c:425 -msgid "Extra" -msgstr "Barrachd" - -#: buttons.c:433 -msgid "Help" -msgstr "Cobhair" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mìos" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Bliadhna" - -#: dialog.c:741 -msgid "Rename" -msgstr "Cuir ainm ùr air" - -#: fselect.c:550 -msgid "Directories" -msgstr "Pasganan" - -#: fselect.c:551 -msgid "Files" -msgstr "Faidhlichean" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Soirbheachail" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Dh'fhàillig leis" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Soirbheachail" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Coileanta" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Air a dhearbhadh" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Dèanta" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Air a leigeil seachad" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "A' dol air adhart" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Chan eil seo iomchaidh" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Adhartas san fharsaingeachd" - -#: textbox.c:489 -msgid "Search" -msgstr "Lorg" diff --git a/contrib/dialog/po/gl.po b/contrib/dialog/po/gl.po deleted file mode 100644 index 6068e868bf59..000000000000 --- a/contrib/dialog/po/gl.po +++ /dev/null @@ -1,119 +0,0 @@ -# Galician translation of dialog -# This file is distributed under the same license as the dialog package. -# Copyright 2003-2006, 2007 Thomas Dickey -# Copyright 2012 Leandro Regueiro -# -# Diego Pérez Montes <kabute@gulo.org>, 2008 -# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. -# -# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas -# colaborar connosco, podes atopar máis información en <http://www.trasno.net> -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2012-11-10 13:53+0200\n" -"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n" -"Language-Team: Galician <proxecto@trasno.net>\n" -"Language: gl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Virtaal 0.7.0\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Si" - -#: buttons.c:393 -msgid "No" -msgstr "Non" - -#: buttons.c:401 -msgid "OK" -msgstr "Aceptar" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Cancelar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "SAÍR" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Axuda" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mes" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Ano" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renomear" - -#: fselect.c:550 -msgid "Directories" -msgstr "Directorios" - -#: fselect.c:551 -msgid "Files" -msgstr "Ficheiros" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Conseguido" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Fallou" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Correcto" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completado" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Seleccionado" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Feito" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Omitido" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En progreso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Non dispoñíbel" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progreso total" - -#: textbox.c:489 -msgid "Search" -msgstr "Buscar" diff --git a/contrib/dialog/po/hi.po b/contrib/dialog/po/hi.po deleted file mode 100644 index 482feb2fc26f..000000000000 --- a/contrib/dialog/po/hi.po +++ /dev/null @@ -1,113 +0,0 @@ -# Hindi translation of Dialog. -# This file is distributed under the same license as the dialog package. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2007-07-18 11:06+0200\n" -"Last-Translator: Deepika Mangla <deepika.mangla@gmail.com>\n" -"Language-Team: <elinks@knopper.net>\n" -"Language: hi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: 2\n" -"X-Poedit-Language: Hindi\n" -"X-Poedit-Country: INDIA\n" -"X-Generator: KBabel 1.11.4\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "हाँ" - -#: buttons.c:393 -msgid "No" -msgstr "नहीं" - -#: buttons.c:401 -msgid "OK" -msgstr "ठीक" - -#: buttons.c:409 -msgid "Cancel" -msgstr "रद्द करें" - -#: buttons.c:417 -msgid "EXIT" -msgstr "निर्गम" - -#: buttons.c:425 -msgid "Extra" -msgstr "अतिरिक्त" - -#: buttons.c:433 -msgid "Help" -msgstr "मदद" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "महीना" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "वर्ष" - -#: dialog.c:741 -msgid "Rename" -msgstr "पुनःनामकरण" - -#: fselect.c:550 -msgid "Directories" -msgstr "निर्देशिका" - -#: fselect.c:551 -msgid "Files" -msgstr "संचिका" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "सफल" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "सफल" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "पास" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "सम्पूरित" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "अवरुद्ध" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "सफल " - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "छोड़ दिया" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "प्रगति में है" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "लागू नहीं" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "समग्र प्रगति" - -#: textbox.c:489 -msgid "Search" -msgstr "अनुसन्धान" diff --git a/contrib/dialog/po/hr.po b/contrib/dialog/po/hr.po deleted file mode 100644 index 6b36cd623873..000000000000 --- a/contrib/dialog/po/hr.po +++ /dev/null @@ -1,114 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2017-03-26 15:31+0200\n" -"Last-Translator: gogo <trebelnik2@gmail.com>\n" -"Language-Team: Croatian <lokalizacija@linux.hr>\n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 1.8.7.1\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Da" - -#: buttons.c:393 -msgid "No" -msgstr "Ne" - -#: buttons.c:401 -msgid "OK" -msgstr "U redu" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Odustani" - -#: buttons.c:417 -msgid "EXIT" -msgstr "IZLAZ" - -#: buttons.c:425 -msgid "Extra" -msgstr "Dodatno" - -#: buttons.c:433 -msgid "Help" -msgstr "Pomoć" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mjesec" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Godina" - -#: dialog.c:741 -msgid "Rename" -msgstr "Preimenuj" - -#: fselect.c:550 -msgid "Directories" -msgstr "Direktoriji" - -#: fselect.c:551 -msgid "Files" -msgstr "Datoteke" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Uspjeh" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Neuspjeh" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Prošlo" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Završeno" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Provjereno" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Gotovo" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Preskočeno" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "U tijeku" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Nedostupno" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Ukupni napredak" - -#: textbox.c:489 -msgid "Search" -msgstr "Pretraga" diff --git a/contrib/dialog/po/hu.po b/contrib/dialog/po/hu.po deleted file mode 100644 index 0236dd85eaca..000000000000 --- a/contrib/dialog/po/hu.po +++ /dev/null @@ -1,114 +0,0 @@ -# Hungarian translation of dialog -# Copyright (C) 2003, 2014 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# -# Árpad Biró <biro_arpad@yahoo.com>, 2003. -# Balázs Úr <urbalazs@gmail.com>, 2014. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2014-03-20 23:07+0100\n" -"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" -"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" -"Language: hu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Igen" - -#: buttons.c:393 -msgid "No" -msgstr "Nem" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Mégse" - -#: buttons.c:417 -msgid "EXIT" -msgstr "KILÉPÉS" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Súgó" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Hónap" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Év" - -#: dialog.c:741 -msgid "Rename" -msgstr "Átnevezés" - -#: fselect.c:550 -msgid "Directories" -msgstr "Könyvtárak" - -#: fselect.c:551 -msgid "Files" -msgstr "Fájlok" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Sikerült" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Meghiúsult" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Teljesült" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Befejezve" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Bejelölve" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Kész" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Kihagyva" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Folyamatban" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Teljes folyamat" - -#: textbox.c:489 -msgid "Search" -msgstr "Keresés" diff --git a/contrib/dialog/po/ia.po b/contrib/dialog/po/ia.po deleted file mode 100644 index dfee2ff17b70..000000000000 --- a/contrib/dialog/po/ia.po +++ /dev/null @@ -1,111 +0,0 @@ -# Interlingua translation of Dialog -# Copyright (C) 2012 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Nik Kalach <nik.kalach@inbox.ru>, 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2012-12-04 00:56+0400\n" -"Last-Translator: Nik Kalach <nik.kalach@inbox.ru>\n" -"Language-Team: Interlingua <translation-team-ia@lists.sourceforge.net>\n" -"Language: ia\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Si" - -#: buttons.c:393 -msgid "No" -msgstr "No" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Annullar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "SORTIR" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Adjuta" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mense" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Anno" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renominar" - -#: fselect.c:550 -msgid "Directories" -msgstr "Directorios" - -#: fselect.c:551 -msgid "Files" -msgstr "Files" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Succedite" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Fallite" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Passate" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completate" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Controlate" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Facite" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Saltate" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "In curso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progresso general" - -#: textbox.c:489 -msgid "Search" -msgstr "Cerca" diff --git a/contrib/dialog/po/id.po b/contrib/dialog/po/id.po deleted file mode 100644 index 8db832947a9b..000000000000 --- a/contrib/dialog/po/id.po +++ /dev/null @@ -1,111 +0,0 @@ -# Indonesian translations for dialog package. -# Copyright 2003-2006,2007 # Thomas Dickey. -# This file is distributed under the same license as the dialog package. -# Andhika Padmawan <andhika.padmawan@gmail.com>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-07-21 13:40+0700\n" -"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n" -"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" -"Language: id\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ya" - -#: buttons.c:395 -msgid "No" -msgstr "Tidak" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Batal" - -#: buttons.c:419 -msgid "EXIT" -msgstr "KELUAR" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:435 -msgid "Help" -msgstr "Bantuan" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Bulan" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Tahun" - -#: dialog.c:756 -msgid "Rename" -msgstr "Ganti Nama" - -#: fselect.c:571 -msgid "Directories" -msgstr "Kamus" - -#: fselect.c:572 -msgid "Files" -msgstr "Berkas" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Sukses" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Gagal" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Lulus" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Selesai" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Diperiksa" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Selesai" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Dilewati" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Dalam Proses" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Tak Tersedia" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Keseluruhan Proses" - -#: textbox.c:468 -msgid "Search" -msgstr "Telusur" diff --git a/contrib/dialog/po/is.po b/contrib/dialog/po/is.po deleted file mode 100644 index aaeb8508be0c..000000000000 --- a/contrib/dialog/po/is.po +++ /dev/null @@ -1,112 +0,0 @@ -# translation of dialog-1.1.20080819.po to Icelandic -# This file is distributed under the same license as the dialog package. -# Copyright 2003-2007,2008 Thomas Dickey -# -# Sveinn í Felli <sveinki@nett.is>, 2009. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2009-09-03 17:02+0000\n" -"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n" -"Language-Team: Icelandic <(nothing)>\n" -"Language: is\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Já" - -#: buttons.c:395 -msgid "No" -msgstr "Nei" - -#: buttons.c:403 -msgid "OK" -msgstr "Í lagi" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Hætta við" - -#: buttons.c:419 -msgid "EXIT" -msgstr "LOKA" - -#: buttons.c:427 -msgid "Extra" -msgstr "Auka" - -#: buttons.c:435 -msgid "Help" -msgstr "Hjálp" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mánuður" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Ár" - -#: dialog.c:756 -msgid "Rename" -msgstr "Endurnefna" - -#: fselect.c:571 -msgid "Directories" -msgstr "Möppur" - -#: fselect.c:572 -msgid "Files" -msgstr "Skrár" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Tókst" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Mistókst" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Stóðst prófun" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Fullgert" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Athugað" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Lokið" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Sleppt" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Í vinnslu" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Ekki tiltækt" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Heildarframvinda" - -#: textbox.c:468 -msgid "Search" -msgstr "Leita" diff --git a/contrib/dialog/po/it.po b/contrib/dialog/po/it.po deleted file mode 100644 index c9ad1944fb0d..000000000000 --- a/contrib/dialog/po/it.po +++ /dev/null @@ -1,112 +0,0 @@ -# Italian messages for dialog. -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Marco Colombo <m.colombo@ed.ac.uk>, 2005, 2007. -# Marco Mariani <marcom@sferacarta.com>, 2004. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-08-06 15:47+0100\n" -"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n" -"Language-Team: Italian <tp@lists.linux.it>\n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Sì" - -#: buttons.c:395 -msgid "No" -msgstr "No" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Annulla" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Esci" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Aiuto" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mese" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Anno" - -#: dialog.c:756 -msgid "Rename" -msgstr "Rinomina" - -#: fselect.c:571 -msgid "Directories" -msgstr "Cartelle" - -#: fselect.c:572 -msgid "Files" -msgstr "File" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Riuscito" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Fallito" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Superato" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completato" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Controllato" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fatto" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Saltato" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "In corso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progresso complessivo" - -#: textbox.c:468 -msgid "Search" -msgstr "Ricerca" diff --git a/contrib/dialog/po/ja.po b/contrib/dialog/po/ja.po deleted file mode 100644 index a69174addaec..000000000000 --- a/contrib/dialog/po/ja.po +++ /dev/null @@ -1,112 +0,0 @@ -# dialog Japanese po file. -# Copyright 2000, Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Hirofumi Takeda <takepin@turbolinux.co.jp>, 2000. -# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2008. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-07-24 00:12+0900\n" -"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n" -"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" -"Language: ja\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "はい" - -#: buttons.c:395 -msgid "No" -msgstr "いいえ" - -#: buttons.c:403 -msgid "OK" -msgstr "了解" - -#: buttons.c:411 -msgid "Cancel" -msgstr "取消" - -#: buttons.c:419 -msgid "EXIT" -msgstr "終了" - -#: buttons.c:427 -msgid "Extra" -msgstr "拡張" - -#: buttons.c:435 -msgid "Help" -msgstr "ヘルプ" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "月" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "年" - -#: dialog.c:756 -msgid "Rename" -msgstr "名前変更" - -#: fselect.c:571 -msgid "Directories" -msgstr "ディレクトリ" - -#: fselect.c:572 -msgid "Files" -msgstr "ファイル" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "成功" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "失敗" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "パス" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "完了" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "確認終了" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "終了" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "スキップ" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "処理中" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "無効" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "全体の進行状況" - -#: textbox.c:468 -msgid "Search" -msgstr "調査" diff --git a/contrib/dialog/po/ku.po b/contrib/dialog/po/ku.po deleted file mode 100644 index e8352e1da3b1..000000000000 --- a/contrib/dialog/po/ku.po +++ /dev/null @@ -1,113 +0,0 @@ -# Dialog -# Copyright 2003-2006,2007 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# -# Erdal Ronahi <erdal.ronahi@gmail.com>, 2008. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2008-04-25 16:51+0200\n" -"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" -"Language-Team: Kurdish <translation-team-ku@ferheng.org>\n" -"Language: ku\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KAider 0.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Erê" - -#: buttons.c:395 -msgid "No" -msgstr "Na" - -#: buttons.c:403 -msgid "OK" -msgstr "TEMAM" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Betal" - -#: buttons.c:419 -msgid "EXIT" -msgstr "DERKETIN" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:435 -msgid "Help" -msgstr "Alîkarî" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Meh" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Sal" - -#: dialog.c:756 -msgid "Rename" -msgstr "Nav guherandin" - -#: fselect.c:571 -msgid "Directories" -msgstr "Peldank" - -#: fselect.c:572 -msgid "Files" -msgstr "Pel" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Biserket" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Biserneket" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Derbas bû" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Temamkirî" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Kontrolkirî" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Xelas" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Derbaskirî" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Didome" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Tune" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Pêşketina Giştî" - -#: textbox.c:468 -msgid "Search" -msgstr "Lêgerîn" diff --git a/contrib/dialog/po/lt.po b/contrib/dialog/po/lt.po deleted file mode 100644 index c98299a6ca74..000000000000 --- a/contrib/dialog/po/lt.po +++ /dev/null @@ -1,112 +0,0 @@ -# translation of dialog to Lithuanian -# This file is distributed under the same license as the dialog package. -# Gintautas Miliauskas <gintas@akl.lt>, 2008. -# Rimas Kudelis <rq@akl.lt>, 2013. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2013-06-28 18:38+0300\n" -"Last-Translator: Rimas Kudelis <rq@akl.lt>\n" -"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" -"Language: lt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Virtaal 0.7.1\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Taip" - -#: buttons.c:393 -msgid "No" -msgstr "Ne" - -#: buttons.c:401 -msgid "OK" -msgstr "Gerai" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Atsisakyti" - -#: buttons.c:417 -msgid "EXIT" -msgstr "IŠEITI" - -#: buttons.c:425 -msgid "Extra" -msgstr "Kita" - -#: buttons.c:433 -msgid "Help" -msgstr "Žinynas" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mėnuo" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Metai" - -#: dialog.c:741 -msgid "Rename" -msgstr "Pervadinti" - -#: fselect.c:550 -msgid "Directories" -msgstr "Aplankai" - -#: fselect.c:551 -msgid "Files" -msgstr "Failai" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Pavyko" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Nepavyko" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Praėjo" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Užbaigta" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Patikrinta" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Atlikta" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Praleista" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Vykdoma" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Nepasiekiama" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Bendras progresas" - -#: textbox.c:489 -msgid "Search" -msgstr "Ieškoti" diff --git a/contrib/dialog/po/lv.po b/contrib/dialog/po/lv.po deleted file mode 100644 index 83be9decdc4d..000000000000 --- a/contrib/dialog/po/lv.po +++ /dev/null @@ -1,115 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# -# This file is distributed under the same license as the dialog package. -# -# Rihards Prieditis <RPrieditis@inbox.lv>, 2009. -# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2014-04-20 14:12+0300\n" -"Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n" -"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n" -"Language: lv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Jā" - -#: buttons.c:393 -msgid "No" -msgstr "Nē" - -#: buttons.c:401 -msgid "OK" -msgstr "Labi" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Atcelt" - -#: buttons.c:417 -msgid "EXIT" -msgstr "IZIET" - -#: buttons.c:425 -msgid "Extra" -msgstr "Papildus" - -#: buttons.c:433 -msgid "Help" -msgstr "Palīdzība" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mēnesis" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Gads" - -#: dialog.c:741 -msgid "Rename" -msgstr "Pārdēvēt" - -#: fselect.c:550 -msgid "Directories" -msgstr "Direktorijas" - -#: fselect.c:551 -msgid "Files" -msgstr "Datnes" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Izdevies" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Neizdevies" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Iziets" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Pabeigts" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Pārbaudīts" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Pabeigts" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Izlaists" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Tiek apstrādāts" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "n/z" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Vispārējais progress" - -#: textbox.c:489 -msgid "Search" -msgstr "Meklēt" diff --git a/contrib/dialog/po/makefile.inn b/contrib/dialog/po/makefile.inn deleted file mode 100644 index c246198c7297..000000000000 --- a/contrib/dialog/po/makefile.inn +++ /dev/null @@ -1,249 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu> -# -# This file may be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ -NLS_TEXTDOMAIN = @NLS_TEXTDOMAIN@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = $(prefix)/@DATADIRNAME@ -localedir = $(datadir)/locale -gnulocaledir = $(prefix)/share/locale -gettextsrcdir = $(prefix)/share/gettext/po -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -DESTDIR = @DESTDIR@ - -CC = @CC@ -GENCAT = @GENCAT@ -GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ -MSGMERGE = PATH=../src:$$PATH msgmerge - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. -I$(top_srcdir)/intl - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -SOURCES = @INTLDIR_MAKE@ cat-id-tbl.c -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = ChangeLog makefile.inn POTFILES.in $(PACKAGE).pot \ -stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) - -POTFILES = \ - -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && $(GENCAT) $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(SOURCES) $(CATALOGS) -all-no: - -$(srcdir)/$(PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(NLS_TEXTDOMAIN) --directory=$(top_srcdir) \ - --add-comments --keyword=_ --keyword=N_ \ - --files-from=$(srcdir)/POTFILES.in \ - && test ! -f $(PACKAGE).po \ - || ( rm -f $(srcdir)/$(PACKAGE).pot \ - && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) - -$(srcdir)/cat-id-tbl.c: stamp-cat-id; @: -$(srcdir)/stamp-cat-id: $(PACKAGE).pot - rm -f cat-id-tbl.tmp - sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ - | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp - if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ - rm cat-id-tbl.tmp; \ - else \ - echo cat-id-tbl.c changed; \ - rm -f $(srcdir)/cat-id-tbl.c; \ - mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ - fi - cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id - - -install install-full: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - @mkdir -p $(DESTDIR)$(datadir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ - mkdir -p $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - if test "$(NLS_TEXTDOMAIN)" = "gettext"; then \ - mkdir -p $(DESTDIR)$(gettextsrcdir); \ - $(INSTALL_DATA) $(srcdir)/makefile.inn \ - $(DESTDIR)$(gettextsrcdir)/makefile.inn; \ - else \ - : ; \ - fi - -# Define this as empty until I find a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m; \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \ - rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m; \ - done - rm -f $(gettextsrcdir)/po-makefile.inn - -check: all - -cat-id-tbl.o: ../intl/libgettext.h - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f cat-id-tbl.c stamp-cat-id *.gmo - rm -f makefile makefile.in POTFILES *.mo *.msg *.cat *.cat.m - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f $(GMOFILES) - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: update-po $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -# GNU msgfmt -C option can also check for X/Open compat. -check-po: - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - echo "$$lang:"; \ - $(MSGFMT) -f -c -v $$lang.po; \ - done - -update-po: makefile - $(MAKE) $(PACKAGE).pot - PATH=`pwd`/../src:$$PATH; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ - mv $$lang.po $$lang.old.po; \ - echo "$$lang:"; \ - if $(MSGMERGE) -w 132 $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ - rm -f $$lang.old.po; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.po; \ - mv $$lang.old.po $$lang.po; \ - fi; \ - done - -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - rm -f $@-t $@ \ - && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ - | sed -e '$$s/\\$$//') > $@-t \ - && chmod a-w $@-t \ - && mv $@-t $@ ) - -makefile: makefile.inn ../config.status POTFILES - cd .. \ - && CONFIG_FILES=$(subdir)/$@.in:$(subdir)/$@.inn CONFIG_HEADERS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/contrib/dialog/po/mg.po b/contrib/dialog/po/mg.po deleted file mode 100644 index 558754a4421a..000000000000 --- a/contrib/dialog/po/mg.po +++ /dev/null @@ -1,110 +0,0 @@ -# Malagasy translation of Dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2005 Thomas Dickey. -# -msgid "" -msgstr "" -"Project-Id-Version: Dialog 1.0-20050116\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2004-11-21 17:33+0100\n" -"Last-Translator: Jaonary Rabarisoa <jaonary@ifrance.fr>\n" -"Language-Team: <en@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Eny" - -#: buttons.c:393 -msgid "No" -msgstr "Tsia" - -#: buttons.c:401 -msgid "OK" -msgstr "Ekena" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Ajanony" - -#: buttons.c:417 -msgid "EXIT" -msgstr "" - -#: buttons.c:425 -msgid "Extra" -msgstr "" - -#: buttons.c:433 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "" - -#: dialog.c:741 -msgid "Rename" -msgstr "" - -#: fselect.c:550 -msgid "Directories" -msgstr "" - -#: fselect.c:551 -msgid "Files" -msgstr "" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -msgid "Search" -msgstr "" diff --git a/contrib/dialog/po/mk.po b/contrib/dialog/po/mk.po deleted file mode 100644 index 898e76e282d0..000000000000 --- a/contrib/dialog/po/mk.po +++ /dev/null @@ -1,111 +0,0 @@ -# Macedonian translation of Dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2005 Thomas Dickey. -# Georgi Stanojevski <glisha@gmail.com>, 2004. -# -msgid "" -msgstr "" -"Project-Id-Version: Dialog 1.0-20050116\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2004-10-10 00:18+0200\n" -"Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n" -"Language-Team: <ossm-members@hedona.on.net.mk>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.3.1\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Да" - -#: buttons.c:393 -msgid "No" -msgstr "Не" - -#: buttons.c:401 -msgid "OK" -msgstr "Во ред" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Откажи" - -#: buttons.c:417 -msgid "EXIT" -msgstr "" - -#: buttons.c:425 -msgid "Extra" -msgstr "" - -#: buttons.c:433 -msgid "Help" -msgstr "" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "" - -#: dialog.c:741 -msgid "Rename" -msgstr "" - -#: fselect.c:550 -msgid "Directories" -msgstr "" - -#: fselect.c:551 -msgid "Files" -msgstr "" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -msgid "Search" -msgstr "" diff --git a/contrib/dialog/po/ms.po b/contrib/dialog/po/ms.po deleted file mode 100644 index 6f3ee01530b9..000000000000 --- a/contrib/dialog/po/ms.po +++ /dev/null @@ -1,110 +0,0 @@ -# Dialog Bahasa Melayu (Malay) (ms) -# Copyright 2003,2004 # Thomas Dickey -# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2005, 2006, 2007 -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-08-14 01:22+0800\n" -"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n" -"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" -"Language: ms\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ya" - -#: buttons.c:395 -msgid "No" -msgstr "Tidak" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Batal" - -#: buttons.c:419 -msgid "EXIT" -msgstr "KELUAR" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:435 -msgid "Help" -msgstr "Bantuan" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Bulan" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Tahun" - -#: dialog.c:756 -msgid "Rename" -msgstr "Tukar nama" - -#: fselect.c:571 -msgid "Directories" -msgstr "Direktori" - -#: fselect.c:572 -msgid "Files" -msgstr "Fail" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Berjaya" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Gagal" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Lulus" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Selesai" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Diperiksa" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Selesai" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Dilangkau" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Sedang Dilaksanakan" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Tiada" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Kemajuan Keseluruhan" - -#: textbox.c:468 -msgid "Search" -msgstr "Cari" diff --git a/contrib/dialog/po/nb.po b/contrib/dialog/po/nb.po deleted file mode 100644 index 2781d9992f0f..000000000000 --- a/contrib/dialog/po/nb.po +++ /dev/null @@ -1,108 +0,0 @@ -# Dialog -# Copyright 2003-2006,2007 # Thomas Dickey -# Roy Hvaara <roy.hvaara@gmail.com>, 2008. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2008-03-24 14:00+0100\n" -"Last-Translator: Roy Hvaara <roy.hvaara@gmail.com>\n" -"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Ja" - -#: buttons.c:393 -msgid "No" -msgstr "Nei" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Avbryt" - -#: buttons.c:417 -msgid "EXIT" -msgstr "AVSLUTT" - -#: buttons.c:425 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:433 -msgid "Help" -msgstr "Hjelp" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Måned" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "År" - -#: dialog.c:741 -msgid "Rename" -msgstr "Endre navn" - -#: fselect.c:550 -msgid "Directories" -msgstr "Mapper" - -#: fselect.c:551 -msgid "Files" -msgstr "Filer" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Vellykktes" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Feilet" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Bestått" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Fullført" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Kontrollert" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Ferdig" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Ignorert" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "I gang" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "-" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Total fremdrift" - -#: textbox.c:489 -msgid "Search" -msgstr "Søk" diff --git a/contrib/dialog/po/nl.po b/contrib/dialog/po/nl.po deleted file mode 100644 index b686d5c55fd3..000000000000 --- a/contrib/dialog/po/nl.po +++ /dev/null @@ -1,113 +0,0 @@ -# Translation of dialog-1.1.20070704 to Dutch. -# Copyright 2003-2006,2007 # Thomas Dickey -# -# Jacques Weewer <j.weewer_at_chello.nl>, 2004. -# Luk Claes <luk.claes@ugent.be>, 2005. -# Benno Schulenberg <benno@vertaalt.nl>, 2007. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-10-08 12:42+0200\n" -"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n" -"Language-Team: Dutch <vertaling@vrijschrift.org>\n" -"Language: nl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ja" - -#: buttons.c:395 -msgid "No" -msgstr "Nee" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Annuleren" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Afsluiten" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Help" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Maand" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Jaar" - -#: dialog.c:756 -msgid "Rename" -msgstr "Hernoemen" - -#: fselect.c:571 -msgid "Directories" -msgstr "Mappen" - -#: fselect.c:572 -msgid "Files" -msgstr "Bestanden" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Gelukt" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Mislukt" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Geslaagd" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Voltooid" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Gecontroleerd" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Klaar" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Overgeslagen" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Bezig" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Onbeschikbaar" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Voortgang" - -#: textbox.c:468 -msgid "Search" -msgstr "Zoeken" diff --git a/contrib/dialog/po/pl.po b/contrib/dialog/po/pl.po deleted file mode 100644 index c4fdfc50fb3e..000000000000 --- a/contrib/dialog/po/pl.po +++ /dev/null @@ -1,113 +0,0 @@ -# translation of dialog.po to Polish -# This file is distributed under the same license as the dialog package. -# Jaroslaw Swierczynski <swiergot@intersec.pl>, 2003 -# Michał Trzebiatowski <hippie_1968@hotmail.com>, 2009 -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2009-03-11 10:32+0100\n" -"Last-Translator: Michał Trzebiatowski <hippie_1968@hotmail.com>\n" -"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" -"Language: pl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Polish\n" -"X-Poedit-Country: POLAND\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Tak" - -#: buttons.c:395 -msgid "No" -msgstr "Nie" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Anuluj" - -#: buttons.c:419 -msgid "EXIT" -msgstr "WYJDŹ" - -#: buttons.c:427 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:435 -msgid "Help" -msgstr "Pomoc" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Miesiąc" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Rok" - -#: dialog.c:756 -msgid "Rename" -msgstr "Zmień nazwę" - -#: fselect.c:571 -msgid "Directories" -msgstr "Katalogi" - -#: fselect.c:572 -msgid "Files" -msgstr "Pliki" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Udane" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Niepowodzone" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Przeszłe" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Zakończone" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Sprawdzone" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Gotowe" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Pominięte" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "W toku" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Brak" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Ogólny postęp" - -#: textbox.c:468 -msgid "Search" -msgstr "Szukaj" diff --git a/contrib/dialog/po/pt.po b/contrib/dialog/po/pt.po deleted file mode 100644 index 8e599c0ff0cc..000000000000 --- a/contrib/dialog/po/pt.po +++ /dev/null @@ -1,114 +0,0 @@ -# Portuguese (Portugal) Translation for the dialog Package -# This file is distributed under the same license as the dialog package. -# Copyright 2003-2007,2008 Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Pedro Albuquerque <palbuquerque73@gmail.com>, 2019. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2019-09-25 07:33+0100\n" -"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n" -"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n" -"Language: pt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Sim" - -#: buttons.c:393 -msgid "No" -msgstr "Não" - -#: buttons.c:401 -msgid "OK" -msgstr "Aceitar" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Cancelar" - -#: buttons.c:417 -msgid "EXIT" -msgstr "SAIR" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Ajuda" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mês" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Ano" - -#: dialog.c:741 -msgid "Rename" -msgstr "Renomear" - -#: fselect.c:550 -msgid "Directories" -msgstr "Pastas" - -#: fselect.c:551 -msgid "Files" -msgstr "Ficheiros" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Sucesso" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falha" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Passou" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Concluído" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Verificado" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Feito" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Ignorado" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Em Curso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/D" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progresso geral" - -#: textbox.c:489 -msgid "Search" -msgstr "Procurar" diff --git a/contrib/dialog/po/pt_BR.po b/contrib/dialog/po/pt_BR.po deleted file mode 100644 index bff648d21610..000000000000 --- a/contrib/dialog/po/pt_BR.po +++ /dev/null @@ -1,113 +0,0 @@ -# Brazilian Portuguese translation of Dialog. -# Copyright (C) 2001 Thomas Dickey. -# This file is distributed under the same license as the dialog package. -# Frédéric L. W. Meunier <0@pervalidus.net>, 2001. -# Flamarion Jorge <flamarilinux@yahoo.com.br>, 2009. -# -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2009-01-06 23:48-0200\n" -"Last-Translator: Flamarion Jorge <flamarilinux@yahoo.com.br>\n" -"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Sim" - -#: buttons.c:395 -msgid "No" -msgstr "Não" - -#: buttons.c:403 -msgid "OK" -msgstr "Aceitar" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Cancelar" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Sair" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Ajuda" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mês" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Ano" - -#: dialog.c:756 -msgid "Rename" -msgstr "Renomear" - -#: fselect.c:571 -msgid "Directories" -msgstr "Diretórios" - -#: fselect.c:572 -msgid "Files" -msgstr "Arquivos" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Sucesso" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Falhou" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Passou" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Completo" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Checado" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Feito" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Pulado" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Em Progresso" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progresso Global" - -#: textbox.c:468 -msgid "Search" -msgstr "Pesquisa" diff --git a/contrib/dialog/po/rm.po b/contrib/dialog/po/rm.po deleted file mode 100644 index d4d81977e47b..000000000000 --- a/contrib/dialog/po/rm.po +++ /dev/null @@ -1,113 +0,0 @@ -# Rumantsch (Rhaeto-Romance) [rm] translation of Dialog. -# This file is distributed under the same license as the dialog package. -# Copyright (C) 2003-2004,2005 Thomas Dickey. -# Florian Verdet _goto <fvgoto@linuxbourg.ch>, 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.0-rel20041222\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2005-02-06 13:22+0100\n" -"Last-Translator: Florian Verdet _goto <fvgoto@linuxbourg.ch>\n" -"Language-Team: Rhaeto-Romance <gnu-rumantsch@guglielmtux.ch>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.2\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Schi" - -#: buttons.c:393 -msgid "No" -msgstr "Na" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Laschar star" - -#: buttons.c:417 -msgid "EXIT" -msgstr "SORTIR" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Agüd" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mais" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "On" - -#: dialog.c:741 -msgid "Rename" -msgstr "Müdar nom" - -#: fselect.c:550 -#, fuzzy -msgid "Directories" -msgstr "Registers" - -#: fselect.c:551 -msgid "Files" -msgstr "Datotecas" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -#, fuzzy -msgid "Failed" -msgstr "Datotecas" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -msgid "Search" -msgstr "Tscherchar" diff --git a/contrib/dialog/po/ro.po b/contrib/dialog/po/ro.po deleted file mode 100644 index ba2250dc53df..000000000000 --- a/contrib/dialog/po/ro.po +++ /dev/null @@ -1,115 +0,0 @@ -# Translation of dialog messages in Romanian. -# Copyright (C) 2015 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Laurentiu Buzdugan <lbuz@rolix.org>, 2005. -# Mihai Cristescu <mihai.cristescu@archlinux.info>, 2015. -# -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2015-03-13 19:50+0200\n" -"Last-Translator: Mihai Cristescu <mihai.cristescu@archlinux.info>\n" -"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" -"Language: ro\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -"X-Generator: Poedit 1.7.4\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Da" - -#: buttons.c:393 -msgid "No" -msgstr "Nu" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Renunță" - -#: buttons.c:417 -msgid "EXIT" -msgstr "TERMINĂ" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Ajutor" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Lună" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "An" - -#: dialog.c:741 -msgid "Rename" -msgstr "Redenumește" - -#: fselect.c:550 -msgid "Directories" -msgstr "Directoare" - -#: fselect.c:551 -msgid "Files" -msgstr "Fișiere" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "A reușit" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "A eșuat" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "A trecut" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Complet" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Verificat" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Gata" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Omis" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "În curs" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Progres pe ansamblu" - -#: textbox.c:489 -msgid "Search" -msgstr "Căutare" diff --git a/contrib/dialog/po/ru.po b/contrib/dialog/po/ru.po deleted file mode 100644 index d78c6807dc27..000000000000 --- a/contrib/dialog/po/ru.po +++ /dev/null @@ -1,115 +0,0 @@ -# translation of dialog-1.1.20070704.ru.po to Russian -# Dialog -# Copyright 2003, # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# -# Leonid Kanter <leon@asplinux.ru>, 2004. -# Yuri Kozlov <yuray@komyakino.ru>, 2009. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2009-01-24 23:09+0300\n" -"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" -"Language-Team: Russian <gnu@mx.ru>\n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Да" - -#: buttons.c:395 -msgid "No" -msgstr "Нет" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Отмена" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Выход" - -#: buttons.c:427 -msgid "Extra" -msgstr "Дополнительно" - -#: buttons.c:435 -msgid "Help" -msgstr "Справка" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Месяц" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Год" - -#: dialog.c:756 -msgid "Rename" -msgstr "Переименовать" - -#: fselect.c:571 -msgid "Directories" -msgstr "Каталоги" - -#: fselect.c:572 -msgid "Files" -msgstr "Файлы" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Успешно" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Неудачно" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Пройдено" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Завершено" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Проверено" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Выполнено" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Пропущено" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Выполняется" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Н/Д" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Всего выполнено" - -#: textbox.c:468 -msgid "Search" -msgstr "Поиск" diff --git a/contrib/dialog/po/rw.po b/contrib/dialog/po/rw.po deleted file mode 100644 index 0aad78f1bea9..000000000000 --- a/contrib/dialog/po/rw.po +++ /dev/null @@ -1,126 +0,0 @@ -# translation of dialog to Kinyarwanda. -# Copyright (C) 2005 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Steve Murphy <murf@e-tools.com>, 2005. -# Steve performed initial rough translation from compendium built from translations provided by the following translators: -# Philibert Ndandali <ndandali@yahoo.fr>, 2005. -# Viateur MUGENZI <muvia1@yahoo.fr>, 2005. -# Noëlla Mupole <s24211045@tuks.co.za>, 2005. -# Carole Karema <karemacarole@hotmail.com>, 2005. -# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005. -# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005. -# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005. -# Antoine Bigirimana <antoine@e-tools.com>, 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.0-rel20041222\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2005-04-04 10:55-0700\n" -"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n" -"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Yego" - -#: buttons.c:393 -msgid "No" -msgstr "Oya" - -#: buttons.c:401 -msgid "OK" -msgstr "OKE" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Kureka" - -# #-#-#-#-# setup2.pot (PACKAGE VERSION) #-#-#-#-# -# setup2/source\ui\app.src:STR_RESTART_BTN_NO.text -# #-#-#-#-# setup2.pot (PACKAGE VERSION) #-#-#-#-# -# setup2/source\ui\pages\phavefun.src:RESID_PAGE_PAGEHAVEFUN.STR_LOGOUT_BTN_NO.text -#: buttons.c:417 -#, fuzzy -msgid "EXIT" -msgstr "Gusohoka" - -#: buttons.c:425 -#, fuzzy -msgid "Extra" -msgstr "Birenga" - -#: buttons.c:433 -msgid "Help" -msgstr "Gufasha" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Ukwezi" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Umwaka" - -#: dialog.c:741 -msgid "Rename" -msgstr "Guhindura izina" - -#: fselect.c:550 -msgid "Directories" -msgstr "ububiko bw'amaderese" - -#: fselect.c:551 -msgid "Files" -msgstr "amadosiye" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -#, fuzzy -msgid "Failed" -msgstr "amadosiye" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -msgid "Search" -msgstr "Gushaka" diff --git a/contrib/dialog/po/sk.po b/contrib/dialog/po/sk.po deleted file mode 100644 index e87991ca7232..000000000000 --- a/contrib/dialog/po/sk.po +++ /dev/null @@ -1,111 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Marián Čavojský <preklad@cavo.sk>, 2011 -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2011-03-09 09:50+0100\n" -"Last-Translator: Marián Čavojský <preklad@cavo.sk>\n" -"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" -"Language: sk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Áno" - -#: buttons.c:393 -msgid "No" -msgstr "Nie" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Zrušiť" - -#: buttons.c:417 -msgid "EXIT" -msgstr "VÝCHOD" - -#: buttons.c:425 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:433 -msgid "Help" -msgstr "Pomoc" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mesiac" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Rok" - -#: dialog.c:741 -msgid "Rename" -msgstr "Premenovať" - -#: fselect.c:550 -msgid "Directories" -msgstr "Adresáre" - -#: fselect.c:551 -msgid "Files" -msgstr "Súbory" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Vporiadku" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "S chybou" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Prešlo" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Skompletované" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Skontrolované" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Dokončené" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Preskočené" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Spracováva" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Celkový pokrok" - -#: textbox.c:489 -msgid "Search" -msgstr "Vyhľadať" diff --git a/contrib/dialog/po/sl.po b/contrib/dialog/po/sl.po deleted file mode 100644 index c20e42f75c12..000000000000 --- a/contrib/dialog/po/sl.po +++ /dev/null @@ -1,112 +0,0 @@ -# Slovenian translation for dialog. -# Copyright (C) 2003-2007, 2008 Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Klemen Košir <klemen.kosir@gmx.com>, 2011. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2011-02-12 20:17+0100\n" -"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n" -"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" -"Language: sl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Slovenian\n" -"X-Poedit-Country: SLOVENIA\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Da" - -#: buttons.c:393 -msgid "No" -msgstr "Ne" - -#: buttons.c:401 -msgid "OK" -msgstr "V redu" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Prekliči" - -#: buttons.c:417 -msgid "EXIT" -msgstr "IZHOD" - -#: buttons.c:425 -msgid "Extra" -msgstr "Dodatno" - -#: buttons.c:433 -msgid "Help" -msgstr "Pomoč" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Mesec" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Leto" - -#: dialog.c:741 -msgid "Rename" -msgstr "Preimenuj" - -#: fselect.c:550 -msgid "Directories" -msgstr "Imeniki" - -#: fselect.c:551 -msgid "Files" -msgstr "Datoteke" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Uspelo" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Spodletelo" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Prestalo" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Končano" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Preverjeno" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Opravljeno" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Preskočeno" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "V teku" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Skupni napredek" - -#: textbox.c:489 -msgid "Search" -msgstr "Iskanje" diff --git a/contrib/dialog/po/sq.po b/contrib/dialog/po/sq.po deleted file mode 100644 index 1d5022131ec9..000000000000 --- a/contrib/dialog/po/sq.po +++ /dev/null @@ -1,113 +0,0 @@ -# Translation of dialog to Albanian -# This file is distributed under the same license as the dialog package. -# Copyright 2003-2007,2008 # Thomas Dickey -# Besnik Bleta <besnik@programeshqip.org>, 2004,2008,2015, 2019, 2020. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2020-04-01 15:04+0300\n" -"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n" -"Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n" -"Language: sq\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Po" - -#: buttons.c:393 -msgid "No" -msgstr "Jo" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Anuloje" - -#: buttons.c:417 -msgid "EXIT" -msgstr "DALJE" - -#: buttons.c:425 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:433 -msgid "Help" -msgstr "Ndihmë" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Muaj" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Vit" - -#: dialog.c:741 -msgid "Rename" -msgstr "Riemërtoje" - -#: fselect.c:550 -msgid "Directories" -msgstr "Drejtori" - -#: fselect.c:551 -msgid "Files" -msgstr "Kartela" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Doli me sukses" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Dështoi" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Kaloi" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "U plotësua" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "U kontrollua" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "U bë" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "U anashkalua" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Në ecuri e sipër" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Ecuri Gjithsej" - -#: textbox.c:489 -msgid "Search" -msgstr "Kērko" diff --git a/contrib/dialog/po/sr.po b/contrib/dialog/po/sr.po deleted file mode 100644 index 46b049dd31a1..000000000000 --- a/contrib/dialog/po/sr.po +++ /dev/null @@ -1,112 +0,0 @@ -# Serbian translation of dialog. -# Copyright (C) 2005 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Aleksandar Jelenak <jelenak@verizon.net>, 2005. -# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011. -msgid "" -msgstr "" -"Project-Id-Version: dialog-1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2011-12-24 21:29+0200\n" -"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" -"Language-Team: Serbian <gnu@prevod.org>\n" -"Language: sr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Да" - -#: buttons.c:393 -msgid "No" -msgstr "Не" - -#: buttons.c:401 -msgid "OK" -msgstr "У реду" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Поништи" - -#: buttons.c:417 -msgid "EXIT" -msgstr "ИЗЛАЗ" - -#: buttons.c:425 -msgid "Extra" -msgstr "Додатно" - -#: buttons.c:433 -msgid "Help" -msgstr "Помоћ" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Месец" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Година" - -#: dialog.c:741 -msgid "Rename" -msgstr "Преименуј" - -#: fselect.c:550 -msgid "Directories" -msgstr "Директоријуми" - -#: fselect.c:551 -msgid "Files" -msgstr "Датотеке" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Успешно" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Неуспешно" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Прошло" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Завршено" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Проверено" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Урађено" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Прескочено" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "У току" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Н/Д" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Укупно напредовање" - -#: textbox.c:489 -msgid "Search" -msgstr "Претрага" diff --git a/contrib/dialog/po/sv.po b/contrib/dialog/po/sv.po deleted file mode 100644 index 5c392b8a8a2f..000000000000 --- a/contrib/dialog/po/sv.po +++ /dev/null @@ -1,110 +0,0 @@ -# Swedish translation of dialog. -# Copyright 2003,2004,2005, 2007 # Thomas Dickey -# Daniel Nylander <po@danielnylander.se>, 2005, 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-07-23 00:02+0100\n" -"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" -"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ja" - -#: buttons.c:395 -msgid "No" -msgstr "Nej" - -#: buttons.c:403 -msgid "OK" -msgstr "OK" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Avbryt" - -#: buttons.c:419 -msgid "EXIT" -msgstr "AVSLUTA" - -#: buttons.c:427 -msgid "Extra" -msgstr "Extra" - -#: buttons.c:435 -msgid "Help" -msgstr "Hjälp" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Månad" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "År" - -#: dialog.c:756 -msgid "Rename" -msgstr "Byt namn" - -#: fselect.c:571 -msgid "Directories" -msgstr "Kataloger" - -#: fselect.c:572 -msgid "Files" -msgstr "Filer" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Lyckades" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Misslyckades" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Klarades" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Färdig" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Kontrollerad" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Klar" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Hoppades över" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Pågår" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Inte tillgänglig" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Totalt förlopp" - -#: textbox.c:468 -msgid "Search" -msgstr "Sök" diff --git a/contrib/dialog/po/sw.po b/contrib/dialog/po/sw.po deleted file mode 100644 index a8419fecd511..000000000000 --- a/contrib/dialog/po/sw.po +++ /dev/null @@ -1,111 +0,0 @@ -# Dialog -# Copyright 2003-2007,2008 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Emanuel Feruzi <emanuel.feruzi@trilabs.co.tz>, 2009 -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2009-05-01 03:07+0300\n" -"Last-Translator: Emanuel Feruzi <emanuel.feruzi@trilabs.co.tz>\n" -"Language-Team: Swahili <translation-team-sw@lists.sourceforge.net>\n" -"Language: sw\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "Ndio" - -#: buttons.c:395 -msgid "No" -msgstr "Hapana" - -#: buttons.c:403 -msgid "OK" -msgstr "Sawa" - -#: buttons.c:411 -msgid "Cancel" -msgstr "Ghahiri" - -#: buttons.c:419 -msgid "EXIT" -msgstr "Funga" - -#: buttons.c:427 -msgid "Extra" -msgstr "Nyongeza" - -#: buttons.c:435 -msgid "Help" -msgstr "Msaada" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "Mwezi" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "Mwaka" - -#: dialog.c:756 -msgid "Rename" -msgstr "Badili jina" - -#: fselect.c:571 -msgid "Directories" -msgstr "Masaraka" - -#: fselect.c:572 -msgid "Files" -msgstr "Mafaili" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Inefanikiwa" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Imeshindwa" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Imepita" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Imekamilika" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Imetikiwa" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Imemaliza" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Imerukwa" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Inaendelea" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Haitumiki" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Maendeleo kwa ujumla" - -#: textbox.c:468 -msgid "Search" -msgstr "Tafuta" diff --git a/contrib/dialog/po/th.po b/contrib/dialog/po/th.po deleted file mode 100644 index bdc54dc1e032..000000000000 --- a/contrib/dialog/po/th.po +++ /dev/null @@ -1,112 +0,0 @@ -# Dialog -# Copyright 2003-2006,2007 # Thomas Dickey -# Seksan Poltree <seksan.poltree@gmail.com>, 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-11-22 19:23+0700\n" -"Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n" -"Language-Team: Thai <seksan.poltree@gmail.com>\n" -"Language: th\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Thai\n" -"X-Poedit-Country: THAILAND\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "ใช่" - -#: buttons.c:395 -msgid "No" -msgstr "ไม่" - -#: buttons.c:403 -msgid "OK" -msgstr "ตกลง" - -#: buttons.c:411 -msgid "Cancel" -msgstr "ยกเลิก" - -#: buttons.c:419 -msgid "EXIT" -msgstr "ออก" - -#: buttons.c:427 -msgid "Extra" -msgstr "เพิ่มเติม" - -#: buttons.c:435 -msgid "Help" -msgstr "ช่วยเหลือ" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "เดือน" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "ปี" - -#: dialog.c:756 -msgid "Rename" -msgstr "เปลี่ยนชื่อ" - -#: fselect.c:571 -msgid "Directories" -msgstr "ไดเร็กทอรี่" - -#: fselect.c:572 -msgid "Files" -msgstr "ไฟล์" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "สำเร็จ" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "ล้มเหลว" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "ผ่าน" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "เสร็จสิ้น" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "กาเครื่องหมาย" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "เรียบร้อย" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "ข้าม" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "กำลังดำเนินการ" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "ไม่มีอยู่" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "ความก้าวหน้าทั้งสิ้น" - -#: textbox.c:468 -msgid "Search" -msgstr "ค้นหา" diff --git a/contrib/dialog/po/tr.po b/contrib/dialog/po/tr.po deleted file mode 100644 index 112b042425c5..000000000000 --- a/contrib/dialog/po/tr.po +++ /dev/null @@ -1,115 +0,0 @@ -# Turkish translation of dialog. -# Copyright (C) 2005 dialog GNU GPL: -# This file is distributed under the same license as the dialog package. -# -# Abdullah Ulas <potkal@bioinformatics.org>, 2005. -# Volkan Gezer <volkangezer@gmail.com>, 2017. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2017-05-05 12:35+0100\n" -"Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n" -"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" -"Language: tr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Lokalize 2.0\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Evet" - -#: buttons.c:393 -msgid "No" -msgstr "Hayır" - -#: buttons.c:401 -msgid "OK" -msgstr "Tamam" - -#: buttons.c:409 -msgid "Cancel" -msgstr "İptal" - -#: buttons.c:417 -msgid "EXIT" -msgstr "ÇIKIŞ" - -#: buttons.c:425 -msgid "Extra" -msgstr "Ekstra" - -#: buttons.c:433 -msgid "Help" -msgstr "Yardım" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Ay" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Yıl" - -#: dialog.c:741 -msgid "Rename" -msgstr "Yeniden adlandır" - -#: fselect.c:550 -msgid "Directories" -msgstr "Dizinler" - -#: fselect.c:551 -msgid "Files" -msgstr "Dosyalar" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Başarılı" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Başarısız" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Geçti" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Tamamlandı" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Denetlendi" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Bitti" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Atlandı" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Devam Etmekte" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Genel İlerleme" - -#: textbox.c:489 -msgid "Search" -msgstr "Arama" diff --git a/contrib/dialog/po/uk.po b/contrib/dialog/po/uk.po deleted file mode 100644 index 47269fe8030e..000000000000 --- a/contrib/dialog/po/uk.po +++ /dev/null @@ -1,113 +0,0 @@ -# translation of uk.po to Ukrainian -# Dialog -# Copyright 2003, # Thomas Dickey -# Eugeniy Meshcheryakov <eugen@univ.kiev.ua>, 2004. -# -msgid "" -msgstr "" -"Project-Id-Version: uk\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2004-02-12 20:17+0200\n" -"Last-Translator: Eugeniy Meshcheryakov <eugen@univ.kiev.ua>\n" -"Language-Team: Ukrainian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0.2\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Так" - -#: buttons.c:393 -msgid "No" -msgstr "Ні" - -#: buttons.c:401 -msgid "OK" -msgstr "Гаразд" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Скасувати" - -#: buttons.c:417 -msgid "EXIT" -msgstr "ВИЙТИ" - -#: buttons.c:425 -msgid "Extra" -msgstr "Додатково" - -#: buttons.c:433 -msgid "Help" -msgstr "Допомога" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Місяць" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Рік" - -#: dialog.c:741 -msgid "Rename" -msgstr "Перейменувати" - -#: fselect.c:550 -msgid "Directories" -msgstr "Каталоги" - -#: fselect.c:551 -msgid "Files" -msgstr "Файли" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "" - -#: mixedgauge.c:61 -#, fuzzy -msgid "Failed" -msgstr "Файли" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "" - -#: textbox.c:489 -#, fuzzy -msgid "Search" -msgstr "Search" diff --git a/contrib/dialog/po/vi.po b/contrib/dialog/po/vi.po deleted file mode 100644 index 5af66005efbc..000000000000 --- a/contrib/dialog/po/vi.po +++ /dev/null @@ -1,113 +0,0 @@ -# Vietnamese Translation for Dialog. -# Copyright 2003,2004,2005 Thomas Dickey (msgid) -# Copyright © 2009 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Clytie Siddall <clytie@riverland.net.au>, 2005-2009. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2009-09-24 22:36+0930\n" -"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" -"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: LocFactoryEditor 1.8\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Có" - -#: buttons.c:393 -msgid "No" -msgstr "Không" - -#: buttons.c:401 -msgid "OK" -msgstr "OK" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Thôi" - -#: buttons.c:417 -msgid "EXIT" -msgstr "THOÁT" - -#: buttons.c:425 -msgid "Extra" -msgstr "Thêm" - -#: buttons.c:433 -msgid "Help" -msgstr "Trợ giúp" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Tháng" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Năm" - -#: dialog.c:741 -msgid "Rename" -msgstr "Thay tên" - -#: fselect.c:550 -msgid "Directories" -msgstr "Thư mục" - -#: fselect.c:551 -msgid "Files" -msgstr "Tập tin" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Thành công" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Trượt" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Đỗ" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Hoàn toàn" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Đã kiểm tra" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Hoàn tất" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Bị bỏ qua" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "Đang chạy" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "Không có" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Toàn tiến hành" - -#: textbox.c:489 -msgid "Search" -msgstr "Tìm kiếm" diff --git a/contrib/dialog/po/wa.po b/contrib/dialog/po/wa.po deleted file mode 100644 index ac2a6f525646..000000000000 --- a/contrib/dialog/po/wa.po +++ /dev/null @@ -1,110 +0,0 @@ -# Translation of Dialog into the walloon language. -# Copyright 2003-2006,2007 # Thomas Dickey -# -# Pablo Saratxaga <pablo@walon.org>, 2007. -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2007-08-29 18:24+0200\n" -"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n" -"Language-Team: Walloon <linux-wa@walon.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0.2\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "Oyi" - -#: buttons.c:393 -msgid "No" -msgstr "Neni" - -#: buttons.c:401 -msgid "OK" -msgstr "'l est bon" - -#: buttons.c:409 -msgid "Cancel" -msgstr "Rinoncî" - -#: buttons.c:417 -msgid "EXIT" -msgstr "Moussî foû" - -#: buttons.c:425 -msgid "Extra" -msgstr "Rawete" - -#: buttons.c:433 -msgid "Help" -msgstr "Aidance" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "Moes" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "Anêye" - -#: dialog.c:741 -msgid "Rename" -msgstr "Rilomer" - -#: fselect.c:550 -msgid "Directories" -msgstr "Ridants" - -#: fselect.c:551 -msgid "Files" -msgstr "Fitchîs" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "Succès" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "Berwete" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "Passé" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "Tot fwait" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "Verifyî" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "Fwait" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "Passé houte" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "En alaedje" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/D" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "Avançmint" - -#: textbox.c:489 -msgid "Search" -msgstr "Cweri" diff --git a/contrib/dialog/po/zh_CN.po b/contrib/dialog/po/zh_CN.po deleted file mode 100644 index 4b597804bb4f..000000000000 --- a/contrib/dialog/po/zh_CN.po +++ /dev/null @@ -1,112 +0,0 @@ -# Simplified Chinese translation for dialog. -# Copyright 2003,2004 # Thomas Dickey -# This file is distributed under the same license as the dialog package. -# Meng Jie <zuxyhere@eastday.com>, 2005. -# LI Daobing <lidaobing@gmail.com>, 2007. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20070704\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-16 17:57-0500\n" -"PO-Revision-Date: 2007-08-20 07:25+0800\n" -"Last-Translator: Meng Jie <zuxy.meng@gmail.com>\n" -"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: buttons.c:387 -msgid "Yes" -msgstr "是" - -#: buttons.c:395 -msgid "No" -msgstr "否" - -#: buttons.c:403 -msgid "OK" -msgstr "确认" - -#: buttons.c:411 -msgid "Cancel" -msgstr "取消" - -#: buttons.c:419 -msgid "EXIT" -msgstr "退出" - -#: buttons.c:427 -msgid "Extra" -msgstr "附加" - -#: buttons.c:435 -msgid "Help" -msgstr "帮助" - -#. Headline "Month" -#: calendar.c:298 -msgid "Month" -msgstr "月" - -#. Headline "Year" -#: calendar.c:318 -msgid "Year" -msgstr "年" - -#: dialog.c:756 -msgid "Rename" -msgstr "重命名" - -#: fselect.c:571 -msgid "Directories" -msgstr "目录" - -#: fselect.c:572 -msgid "Files" -msgstr "文件" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "成功" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "失败" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "已跳过" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "已完成" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "已检查" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "完成" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "跳过" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "进行中" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "N/A" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "整体进度" - -#: textbox.c:468 -msgid "Search" -msgstr "搜索" diff --git a/contrib/dialog/po/zh_TW.po b/contrib/dialog/po/zh_TW.po deleted file mode 100644 index f96b50a06b7b..000000000000 --- a/contrib/dialog/po/zh_TW.po +++ /dev/null @@ -1,112 +0,0 @@ -# Traditional Chinese Messages for dialog. -# Copyright (C) 2005 Free Software Foundation, Inc. -# This file is distributed under the same license as the dialog package. -# Wei-Lun Chao <bluebat@member.fsf.org>, 2005, 2007, 2013. -# -msgid "" -msgstr "" -"Project-Id-Version: dialog 1.1.20080819\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-18 18:26-0400\n" -"PO-Revision-Date: 2013-02-12 23:39+0800\n" -"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n" -"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" -"Language: zh_TW\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: buttons.c:385 -msgid "Yes" -msgstr "是" - -#: buttons.c:393 -msgid "No" -msgstr "否" - -#: buttons.c:401 -msgid "OK" -msgstr "確定" - -#: buttons.c:409 -msgid "Cancel" -msgstr "取消" - -#: buttons.c:417 -msgid "EXIT" -msgstr "離開" - -#: buttons.c:425 -msgid "Extra" -msgstr "其他" - -#: buttons.c:433 -msgid "Help" -msgstr "求助" - -#. Headline "Month" -#: calendar.c:273 -msgid "Month" -msgstr "月" - -#. Headline "Year" -#: calendar.c:293 -msgid "Year" -msgstr "年" - -#: dialog.c:741 -msgid "Rename" -msgstr "更名" - -#: fselect.c:550 -msgid "Directories" -msgstr "目錄" - -#: fselect.c:551 -msgid "Files" -msgstr "檔案" - -#: mixedgauge.c:58 -msgid "Succeeded" -msgstr "已成功" - -#: mixedgauge.c:61 -msgid "Failed" -msgstr "已失敗" - -#: mixedgauge.c:64 -msgid "Passed" -msgstr "已傳遞" - -#: mixedgauge.c:67 -msgid "Completed" -msgstr "已完成" - -#: mixedgauge.c:70 -msgid "Checked" -msgstr "已勾選" - -#: mixedgauge.c:73 -msgid "Done" -msgstr "已完成" - -#: mixedgauge.c:76 -msgid "Skipped" -msgstr "已略過" - -#: mixedgauge.c:79 -msgid "In Progress" -msgstr "正在進行" - -#: mixedgauge.c:85 -msgid "N/A" -msgstr "不明" - -#: mixedgauge.c:193 -msgid "Overall Progress" -msgstr "整體進度" - -#: textbox.c:489 -msgid "Search" -msgstr "搜尋" diff --git a/contrib/dialog/prgbox.c b/contrib/dialog/prgbox.c deleted file mode 100644 index 089cb552628d..000000000000 --- a/contrib/dialog/prgbox.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * $Id: prgbox.c,v 1.14 2019/07/25 00:07:15 tom Exp $ - * - * prgbox.c -- implements the prg box - * - * Copyright 2011-2016,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> - -static void -reapchild(int sig) -{ - (void) sig; -} - -/* - * Open a pipe which ties stderr and stdout together. - */ -FILE * -dlg_popen(const char *command, const char *type) -{ - FILE *result = 0; - int fd[2]; - - if ((*type == 'r' || *type == 'w') && pipe(fd) == 0) { - char *blob; - - switch (fork()) { - case -1: /* Error. */ - (void) close(fd[0]); - (void) close(fd[1]); - break; - case 0: /* child. */ - if (*type == 'r') { - if (fd[1] != STDOUT_FILENO) { - (void) dup2(fd[1], STDOUT_FILENO); - (void) close(fd[1]); - } - (void) dup2(STDOUT_FILENO, STDERR_FILENO); - (void) close(fd[0]); - } else { - if (fd[0] != STDIN_FILENO) { - (void) dup2(fd[0], STDIN_FILENO); - (void) close(fd[0]); - } - (void) close(fd[1]); - (void) close(STDERR_FILENO); - } - /* - * Bourne shell needs "-c" option to force it to use only the - * given command. Also, it needs the command to be parsed into - * tokens. - */ - if ((blob = malloc(10 + strlen(command))) != 0) { - char **argv; - sprintf(blob, "sh -c \"%s\"", command); - argv = dlg_string_to_argv(blob); - execvp("sh", argv); - } - _exit(127); - /* NOTREACHED */ - default: /* parent */ - if (*type == 'r') { - result = fdopen(fd[0], type); - (void) close(fd[1]); - } else { - result = fdopen(fd[1], type); - (void) close(fd[0]); - } - break; - } - } - - return result; -} - -/* - * Display text from a pipe in a scrolling window. - */ -int -dialog_prgbox(const char *title, - const char *cprompt, - const char *command, - int height, - int width, - int pauseopt) -{ - int code; - FILE *fp; - void (*oldreaper) (int) = signal(SIGCHLD, reapchild); - - fp = dlg_popen(command, "r"); - if (fp == NULL) - dlg_exiterr("pipe open failed: %s", command); - - code = dlg_progressbox(title, cprompt, height, width, pauseopt, fp); - - pclose(fp); - signal(SIGCHLD, oldreaper); - - return code; -} diff --git a/contrib/dialog/progressbox.c b/contrib/dialog/progressbox.c deleted file mode 100644 index 9ad731b09100..000000000000 --- a/contrib/dialog/progressbox.c +++ /dev/null @@ -1,488 +0,0 @@ -/* - * $Id: progressbox.c,v 1.54 2020/11/22 15:48:27 tom Exp $ - * - * progressbox.c -- implements the progress box - * - * Copyright 2006-2019,2020 Thomas E. Dickey - * Copyright 2005 Valery Reznic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#ifdef KEY_RESIZE -#include <errno.h> -#endif - -#define MIN_HIGH (4) -#define MIN_WIDE (10 + 2 * (2 + MARGIN)) - -#ifdef KEY_RESIZE -typedef struct _wrote { - struct _wrote *link; - char *text; -} WROTE; -#endif - -typedef struct { - DIALOG_CALLBACK obj; - WINDOW *text; - char *prompt; - int high, wide; - int old_high, old_wide; - char line[MAX_LEN + 1]; - int is_eof; -#ifdef KEY_RESIZE - WROTE *wrote; -#endif -} MY_OBJ; - -static void -free_obj(MY_OBJ * obj) -{ - dlg_del_window(obj->obj.win); - free(obj->prompt); -#ifdef KEY_RESIZE - while (obj->wrote) { - WROTE *wrote = obj->wrote; - obj->wrote = wrote->link; - free(wrote->text); - free(wrote); - } -#endif - free(obj); -} - -#ifdef KEY_RESIZE -static void -restart_obj(MY_OBJ * obj) -{ - free(obj->prompt); - obj->high = obj->old_high; - obj->wide = obj->old_wide; - dlg_clear(); - dlg_del_window(obj->obj.win); -} -#endif - -static void -start_obj(MY_OBJ * obj, const char *title, const char *cprompt) -{ - int y, x, thigh; - - obj->prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(obj->prompt); - dlg_auto_size(title, obj->prompt, &obj->high, &obj->wide, MIN_HIGH, MIN_WIDE); - - dlg_print_size(obj->high, obj->wide); - dlg_ctl_size(obj->high, obj->wide); - - x = dlg_box_x_ordinate(obj->wide); - y = dlg_box_y_ordinate(obj->high); - thigh = obj->high - (2 * MARGIN); - - obj->obj.win = dlg_new_window(obj->high, obj->wide, y, x); - - dlg_draw_box2(obj->obj.win, - 0, 0, - obj->high, obj->wide, - dialog_attr, - border_attr, - border2_attr); - dlg_draw_title(obj->obj.win, title); - dlg_draw_helpline(obj->obj.win, FALSE); - - if (obj->prompt[0] != '\0') { - int i; - int y2, x2; - - dlg_attrset(obj->obj.win, dialog_attr); - dlg_print_autowrap(obj->obj.win, obj->prompt, obj->high, obj->wide); - getyx(obj->obj.win, y2, x2); - (void) x2; - ++y2; - wmove(obj->obj.win, y2, MARGIN); - for (i = 0; i < getmaxx(obj->obj.win) - 2 * MARGIN; i++) - (void) waddch(obj->obj.win, dlg_boxchar(ACS_HLINE)); - y += y2; - thigh -= y2; - } - - /* Create window for text region, used for scrolling text */ - obj->text = dlg_sub_window(obj->obj.win, - thigh, - obj->wide - (2 * MARGIN), - y + MARGIN, - x + MARGIN); - - (void) wrefresh(obj->obj.win); - - (void) wmove(obj->obj.win, getmaxy(obj->text), (MARGIN + 1)); - (void) wnoutrefresh(obj->obj.win); - - dlg_attr_clear(obj->text, getmaxy(obj->text), getmaxx(obj->text), dialog_attr); -} - -/* - * Return current line of text. - */ -static char * -get_line(MY_OBJ * obj, int *restart) -{ - FILE *fp = obj->obj.input; - int col = 0; - int j, tmpint; - char *result = obj->line; - - *restart = 0; - for (;;) { - int ch = getc(fp); -#ifdef KEY_RESIZE - /* SIGWINCH may have interrupted this - try to ignore if resizable */ - if (ferror(fp)) { - switch (errno) { - case EINTR: - clearerr(fp); - continue; - default: - break; - } - } -#endif - if (feof(fp) || ferror(fp)) { - obj->is_eof = 1; - if (!col) { - result = NULL; - } - break; - } - if (ch == '\n') - break; - if (ch == '\r') - break; - if (col >= MAX_LEN) - continue; - if ((ch == TAB) && (dialog_vars.tab_correct)) { - tmpint = dialog_state.tab_len - - (col % dialog_state.tab_len); - for (j = 0; j < tmpint; j++) { - if (col < MAX_LEN) { - obj->line[col] = ' '; - ++col; - } else { - break; - } - } - } else { - obj->line[col] = (char) ch; - ++col; - } - } - - obj->line[col] = '\0'; - -#ifdef KEY_RESIZE - if (result != NULL) { - WINDOW *win = obj->text; - WROTE *wrote = dlg_calloc(WROTE, 1); - - if (wrote != 0) { - wrote->text = dlg_strclone(obj->line); - wrote->link = obj->wrote; - obj->wrote = wrote; - } - - nodelay(win, TRUE); - if (wgetch(win) == KEY_RESIZE) { - *restart = 1; - } - nodelay(win, FALSE); - } -#endif - return result; -} - -/* - * Print a new line of text. - */ -static void -print_line(MY_OBJ * obj, const char *line, int row) -{ - int width = obj->wide - (2 * MARGIN); - int limit = MIN((int) strlen(line), width - 2); - - (void) wmove(obj->text, row, 0); /* move cursor to correct line */ - wprintw(obj->text, " %.*s", limit, line); - while (++limit < width) { - waddch(obj->text, ' '); - } -} - -#ifdef KEY_RESIZE -static int -wrote_size(MY_OBJ * obj, int want) -{ - int result = 0; - WROTE *wrote = obj->wrote; - while (wrote != NULL && want > 0) { - wrote = wrote->link; - want--; - result++; - } - return result; -} - -static const char * -wrote_data(MY_OBJ * obj, int want) -{ - const char *result = NULL; - WROTE *wrote = obj->wrote; - while (wrote != NULL && want > 0) { - result = wrote->text; - wrote = wrote->link; - want--; - } - return result; -} - -static int -reprint_lines(MY_OBJ * obj, int buttons) -{ - int want = getmaxy(obj->text) - (buttons ? 2 : 0); - int have = wrote_size(obj, want); - int n; - for (n = 0; n < have; ++n) { - print_line(obj, wrote_data(obj, have - n), n); - } - (void) wrefresh(obj->text); - return have; -} -#endif - -static int -pause_for_ok(MY_OBJ * obj, const char *title, const char *cprompt) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TRAVERSE_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - - int button; - int key, fkey; - int result = DLG_EXIT_UNKNOWN; - const char **buttons = dlg_ok_label(); - bool save_nocancel = dialog_vars.nocancel; - bool redraw = TRUE; - - (void) title; - (void) cprompt; - - dialog_vars.nocancel = TRUE; - button = dlg_default_button(); - -#ifdef KEY_RESIZE - restart: -#endif - - dlg_register_window(obj->obj.win, "progressbox", binding); - dlg_register_buttons(obj->obj.win, "progressbox", buttons); - - dlg_draw_bottom_box2(obj->obj.win, border_attr, border2_attr, dialog_attr); - - while (result == DLG_EXIT_UNKNOWN) { - int check; - - if (redraw) { - redraw = FALSE; - if (button < 0) - button = 0; - dlg_draw_buttons(obj->obj.win, - obj->high - 2, 0, - buttons, button, - FALSE, obj->wide); - } - - key = dlg_mouse_wgetch(obj->obj.win, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - if (!fkey && (check = dlg_char_to_button(key, buttons)) >= 0) { - result = dlg_ok_buttoncode(check); - break; - } - - if (fkey) { - switch (key) { - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - redraw = TRUE; - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - redraw = TRUE; - break; - case DLGK_ENTER: - result = dlg_ok_buttoncode(button); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(obj->obj.win); - restart_obj(obj); - start_obj(obj, title, cprompt); - reprint_lines(obj, TRUE); - redraw = TRUE; - goto restart; -#endif - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_ok_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } else { - beep(); - } - break; - } - - } else if (key > 0) { - beep(); - } - } - dlg_add_last_key(-1); - - dlg_mouse_free_regions(); - dlg_unregister_window(obj->obj.win); - - dialog_vars.nocancel = save_nocancel; - return result; -} - -int -dlg_progressbox(const char *title, - const char *cprompt, - int height, - int width, - int pauseopt, - FILE *fp) -{ - int i; - MY_OBJ *obj; - int again = 0; - int toprow = 0; - int result; - - DLG_TRACE(("# progressbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("pause", pauseopt); - DLG_TRACE2N("fp", fp ? fileno(fp) : -1); - - obj = dlg_calloc(MY_OBJ, 1); - assert_ptr(obj, "dlg_progressbox"); - obj->obj.input = fp; - - obj->high = height; - obj->wide = width; - -#ifdef KEY_RESIZE - obj->old_high = height; - obj->old_wide = width; - - curs_set(0); - restart: -#endif - - start_obj(obj, title, cprompt); -#ifdef KEY_RESIZE - if (again) { - toprow = reprint_lines(obj, FALSE); - } -#endif - - for (i = toprow; get_line(obj, &again); i++) { -#ifdef KEY_RESIZE - if (again) { - dlg_will_resize(obj->obj.win); - restart_obj(obj); - goto restart; - } -#endif - if (i < getmaxy(obj->text)) { - print_line(obj, obj->line, i); - } else { - scrollok(obj->text, TRUE); - scroll(obj->text); - scrollok(obj->text, FALSE); - print_line(obj, obj->line, getmaxy(obj->text) - 1); - } - (void) wrefresh(obj->text); - if (obj->is_eof) - break; - } - - dlg_trace_win(obj->obj.win); - curs_set(1); - - if (pauseopt) { - int need = 1 + MARGIN; - int base = getmaxy(obj->text) - need; - if (i >= base) { - i -= base; - if (i > need) - i = need; - if (i > 0) { - scrollok(obj->text, TRUE); - } - wscrl(obj->text, i); - } - (void) wrefresh(obj->text); - result = pause_for_ok(obj, title, cprompt); - } else { - wrefresh(obj->obj.win); - result = DLG_EXIT_OK; - } - - free_obj(obj); - - return result; -} - -/* - * Display text from a stdin in a scrolling window. - */ -int -dialog_progressbox(const char *title, const char *cprompt, int height, int width) -{ - int result; - result = dlg_progressbox(title, - cprompt, - height, - width, - FALSE, - dialog_state.pipe_input); - dialog_state.pipe_input = 0; - return result; -} diff --git a/contrib/dialog/rangebox.c b/contrib/dialog/rangebox.c deleted file mode 100644 index bc99d4a72cd8..000000000000 --- a/contrib/dialog/rangebox.c +++ /dev/null @@ -1,421 +0,0 @@ -/* - * $Id: rangebox.c,v 1.32 2020/11/22 23:25:09 tom Exp $ - * - * rangebox.c -- implements the rangebox dialog - * - * Copyright 2012-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#define ONE_HIGH 1 - -#define MIN_HIGH (ONE_HIGH + 1 + (4 * MARGIN)) -#define MIN_WIDE (10 + 2 + (2 * MARGIN)) - -typedef struct { - /* window in which the value and slider are drawn */ - WINDOW *window; - int min_value; - int max_value; - /* position and width of the numeric field */ - int value_x; - int value_len; - int value_col; - /* position and width of the slider field */ - int slide_x; - int slide_y; - int slide_len; - /* current value drawn */ - int current; - /* value to add to make slider move by one cell */ - int slide_inc; -} VALUE; - -static int -digits_of(int value) -{ - char temp[80]; - sprintf(temp, "%d", value); - return (int) strlen(temp); -} - -static int -digit_of(VALUE * data) -{ - int col = data->value_col; - int result = 1; - - while (++col < data->value_len) { - result *= 10; - } - return result; -} - -static bool -set_digit(VALUE * data, int chr) -{ - bool result = FALSE; - char buffer[80]; - long check; - char *next = 0; - - sprintf(buffer, "%*d", data->value_len, data->current); - buffer[data->value_col] = (char) chr; - check = strtol(buffer, &next, 10); - if (next == 0 || *next == '\0') { - if ((check <= (long) data->max_value) && - (check >= (long) data->min_value)) { - result = TRUE; - data->current = (int) check; - } - } - - return result; -} - -/* - * This is similar to the gauge code, but differs in the way the number - * is displayed, etc. - */ -static void -draw_value(VALUE * data, int value) -{ - if (value != data->current) { - WINDOW *win = data->window; - int y, x; - int n; - int ranges = (data->max_value + 1 - data->min_value); - int offset = (value - data->min_value); - int scaled; - - getyx(win, y, x); - - if (ranges > data->slide_len) { - scaled = (offset + data->slide_inc) / data->slide_inc; - } else if (ranges < data->slide_len) { - scaled = (offset + 1) * data->slide_inc; - } else { - scaled = offset; - } - - dlg_attrset(win, gauge_attr); - wmove(win, data->slide_y, data->slide_x); - for (n = 0; n < data->slide_len; ++n) { - (void) waddch(win, ' '); - } - wmove(win, data->slide_y, data->value_x); - wprintw(win, "%*d", data->value_len, value); - if ((gauge_attr & A_REVERSE) != 0) { - dlg_attroff(win, A_REVERSE); - } else { - dlg_attrset(win, A_REVERSE); - } - wmove(win, data->slide_y, data->slide_x); - for (n = 0; n < scaled; ++n) { - chtype ch2 = winch(win); - if (gauge_attr & A_REVERSE) { - ch2 &= ~A_REVERSE; - } - (void) waddch(win, ch2); - } - dlg_attrset(win, dialog_attr); - - wmove(win, y, x); - data->current = value; - - DLG_TRACE(("# drew %d offset %d scaled %d limit %d inc %d\n", - value, - offset, - scaled, - data->slide_len, - data->slide_inc)); - - dlg_trace_win(win); - } -} - -/* - * Allow the user to select from a range of values, e.g., using a slider. - */ -int -dialog_rangebox(const char *title, - const char *cprompt, - int height, - int width, - int min_value, - int max_value, - int default_value) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - DLG_KEYS_DATA( DLGK_DELETE_RIGHT,KEY_DC ), - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TOGGLEKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, CHR_BACKSPACE ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+'), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NEXT), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PREVIOUS ), - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - VALUE data; - int key, fkey; - int button; - int result = DLG_EXIT_UNKNOWN; - WINDOW *dialog; - int state = dlg_default_button(); - const char **buttons = dlg_ok_labels(); - char *prompt; - char buffer[MAX_LEN]; - int cur_value = default_value; - int usable; - int ranges; - int yorg, xorg; - - DLG_TRACE(("# tailbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("minval", min_value); - DLG_TRACE2N("maxval", max_value); - DLG_TRACE2N("default", default_value); - - if (max_value < min_value) - max_value = min_value; - if (cur_value > max_value) - cur_value = max_value; - if (cur_value < min_value) - cur_value = min_value; - - dlg_does_output(); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(cprompt); - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE); - - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - dialog = dlg_new_window(height, width, - yorg = dlg_box_y_ordinate(height), - xorg = dlg_box_x_ordinate(width)); - - data.window = dialog; - - data.min_value = min_value; - data.max_value = max_value; - - usable = (width - 2 - 4 * MARGIN); - ranges = max_value - min_value + 1; - - /* - * Center the number after allowing for its maximum number of digits. - */ - data.value_len = digits_of(max_value); - if (digits_of(min_value) > data.value_len) - data.value_len = digits_of(min_value); - data.value_x = (usable - data.value_len) / 2 + MARGIN; - data.value_col = data.value_len - 1; - - /* - * The slider is scaled, to try to use the width of the dialog. - */ - if (ranges > usable) { - data.slide_inc = (ranges + usable - 1) / usable; - data.slide_len = 1 + ranges / data.slide_inc; - } else if (ranges < usable) { - data.slide_inc = usable / ranges; - data.slide_len = ranges * data.slide_inc; - } else { - data.slide_inc = 1; - data.slide_len = usable; - } - data.slide_x = (usable - data.slide_len) / 2 + MARGIN + 2; - data.slide_y = height - 5; - - data.current = cur_value - 1; - - dlg_register_window(dialog, "rangebox", binding); - dlg_register_buttons(dialog, "rangebox", buttons); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_mouse_setbase(xorg, yorg); - dlg_mouse_mkregion(data.slide_y - 1, data.slide_x - 1, 3, usable + 2, 'i'); - dlg_draw_box2(dialog, - height - 6, data.slide_x - MARGIN, - 2 + MARGIN, data.slide_len + 2 * MARGIN, - dialog_attr, - border_attr, - border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - dlg_draw_helpline(dialog, FALSE); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - dlg_trace_win(dialog); - - while (result == DLG_EXIT_UNKNOWN) { - int key2; - - draw_value(&data, cur_value); - button = (state < 0) ? 0 : state; - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - if (state < 0) { - data.value_col = data.value_len + state; - wmove(dialog, data.slide_y, data.value_x + data.value_col); - } - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - if ((key2 = dlg_char_to_button(key, buttons)) >= 0) { - result = key2; - } else { - /* handle function-keys */ - if (fkey) { - switch (key) { - case DLGK_TOGGLE: - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_FIELD_PREV: - if (state < 0 && state > -data.value_len) { - --state; - } else { - state = dlg_prev_ok_buttonindex(state, -data.value_len); - } - break; - case DLGK_FIELD_NEXT: - if (state < 0) { - ++state; - } else { - state = dlg_next_ok_buttonindex(state, -data.value_len); - } - break; - case DLGK_ITEM_FIRST: - cur_value = min_value; - break; - case DLGK_ITEM_LAST: - cur_value = max_value; - break; - case DLGK_ITEM_PREV: - if (state < 0) { - cur_value -= digit_of(&data); - } else { - cur_value -= 1; - } - if (cur_value < min_value) - cur_value = min_value; - break; - case DLGK_ITEM_NEXT: - if (state < 0) { - cur_value += digit_of(&data); - } else { - cur_value += 1; - } - if (cur_value > max_value) - cur_value = max_value; - break; - case DLGK_PAGE_PREV: - cur_value -= data.slide_inc; - if (cur_value < min_value) - cur_value = min_value; - break; - case DLGK_PAGE_NEXT: - cur_value += data.slide_inc; - if (cur_value > max_value) - cur_value = max_value; - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - /* repaint */ - free(prompt); - _dlg_resize_cleanup(dialog); - goto retry; -#endif - case DLGK_MOUSE('i'): - state = -data.value_len; - break; - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_ok_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } - break; - } - } else if (isdigit(key) && state < 0) { - if (set_digit(&data, key)) { - cur_value = data.current; - data.current--; - } - } else { - beep(); - } - } - } - - sprintf(buffer, "%d", cur_value); - dlg_add_result(buffer); - AddLastKey(); - - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - - return result; -} diff --git a/contrib/dialog/rc.c b/contrib/dialog/rc.c deleted file mode 100644 index 84d7f63495e9..000000000000 --- a/contrib/dialog/rc.c +++ /dev/null @@ -1,665 +0,0 @@ -/* - * $Id: rc.c,v 1.60 2020/11/25 00:06:40 tom Exp $ - * - * rc.c -- routines for processing the configuration file - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> - -#include <dlg_keys.h> - -#ifdef HAVE_COLOR -#include <dlg_colors.h> -#include <dlg_internals.h> - -#define L_PAREN '(' -#define R_PAREN ')' - -#define MIN_TOKEN 3 -#ifdef HAVE_RC_FILE2 -#define MAX_TOKEN 5 -#else -#define MAX_TOKEN MIN_TOKEN -#endif - -#define UNKNOWN_COLOR -2 - -/* - * For matching color names with color values - */ -static const color_names_st color_names[] = -{ -#ifdef HAVE_USE_DEFAULT_COLORS - {"DEFAULT", -1}, -#endif - {"BLACK", COLOR_BLACK}, - {"RED", COLOR_RED}, - {"GREEN", COLOR_GREEN}, - {"YELLOW", COLOR_YELLOW}, - {"BLUE", COLOR_BLUE}, - {"MAGENTA", COLOR_MAGENTA}, - {"CYAN", COLOR_CYAN}, - {"WHITE", COLOR_WHITE}, -}; /* color names */ -#define COLOR_COUNT TableSize(color_names) -#endif /* HAVE_COLOR */ - -#define GLOBALRC "/etc/dialogrc" -#define DIALOGRC ".dialogrc" - -/* Types of values */ -#define VAL_INT 0 -#define VAL_STR 1 -#define VAL_BOOL 2 - -/* Type of line in configuration file */ -typedef enum { - LINE_ERROR = -1, - LINE_EQUALS, - LINE_EMPTY -} PARSE_LINE; - -/* number of configuration variables */ -#define VAR_COUNT TableSize(vars) - -/* check if character is string quoting characters */ -#define isquote(c) ((c) == '"' || (c) == '\'') - -/* get last character of string */ -#define lastch(str) str[strlen(str)-1] - -/* - * Configuration variables - */ -typedef struct { - const char *name; /* name of configuration variable as in DIALOGRC */ - void *var; /* address of actual variable to change */ - int type; /* type of value */ - const char *comment; /* comment to put in "rc" file */ -} vars_st; - -/* - * This table should contain only references to dialog_state, since dialog_vars - * is reset specially in dialog.c before each widget. - */ -static const vars_st vars[] = -{ - {"aspect", - &dialog_state.aspect_ratio, - VAL_INT, - "Set aspect-ration."}, - - {"separate_widget", - &dialog_state.separate_str, - VAL_STR, - "Set separator (for multiple widgets output)."}, - - {"tab_len", - &dialog_state.tab_len, - VAL_INT, - "Set tab-length (for textbox tab-conversion)."}, - - {"visit_items", - &dialog_state.visit_items, - VAL_BOOL, - "Make tab-traversal for checklist, etc., include the list."}, - -#ifdef HAVE_COLOR - {"use_shadow", - &dialog_state.use_shadow, - VAL_BOOL, - "Shadow dialog boxes? This also turns on color."}, - - {"use_colors", - &dialog_state.use_colors, - VAL_BOOL, - "Turn color support ON or OFF"}, -#endif /* HAVE_COLOR */ -}; /* vars */ - -static int -skip_whitespace(char *str, int n) -{ - while (isblank(UCH(str[n])) && str[n] != '\0') - n++; - return n; -} - -static int -skip_keyword(char *str, int n) -{ - while (isalnum(UCH(str[n])) && str[n] != '\0') - n++; - return n; -} - -static void -trim_token(char **tok) -{ - char *tmp = *tok + skip_whitespace(*tok, 0); - - *tok = tmp; - - while (*tmp != '\0' && !isblank(UCH(*tmp))) - tmp++; - - *tmp = '\0'; -} - -static int -from_boolean(const char *str) -{ - int code = -1; - - if (str != NULL && *str != '\0') { - if (!dlg_strcmp(str, "ON")) { - code = 1; - } else if (!dlg_strcmp(str, "OFF")) { - code = 0; - } - } - return code; -} - -static int -from_color_name(const char *str) -{ - int code = UNKNOWN_COLOR; - - if (str != NULL && *str != '\0') { - size_t i; - - for (i = 0; i < COLOR_COUNT; ++i) { - if (!dlg_strcmp(str, color_names[i].name)) { - code = color_names[i].value; - break; - } - } - } - return code; -} - -static int -find_vars(char *name) -{ - int result = -1; - unsigned i; - - for (i = 0; i < VAR_COUNT; i++) { - if (dlg_strcmp(vars[i].name, name) == 0) { - result = (int) i; - break; - } - } - return result; -} - -#ifdef HAVE_COLOR -static int -find_color(char *name) -{ - int result = -1; - int i; - int limit = dlg_color_count(); - - for (i = 0; i < limit; i++) { - if (dlg_strcmp(dlg_color_table[i].name, name) == 0) { - result = i; - break; - } - } - return result; -} - -static const char * -to_color_name(int code) -{ - const char *result = "?"; - size_t n; - for (n = 0; n < TableSize(color_names); ++n) { - if (code == color_names[n].value) { - result = color_names[n].name; - break; - } - } - return result; -} - -static const char * -to_boolean(int code) -{ - return code ? "ON" : "OFF"; -} - -/* - * Extract the foreground, background and highlight values from an attribute - * represented as a string in one of these forms: - * - * "(foreground,background,highlight,underline,reverse)" - * "(foreground,background,highlight,underline)" - * "(foreground,background,highlight)" - * "xxxx_color" - */ -static int -str_to_attr(char *str, DIALOG_COLORS * result) -{ - char *tokens[MAX_TOKEN + 1]; - char tempstr[MAX_LEN + 1]; - size_t have; - size_t i = 0; - size_t tok_count = 0; - - memset(result, 0, sizeof(*result)); - result->fg = -1; - result->bg = -1; - result->hilite = -1; - - if (str[0] != L_PAREN || lastch(str) != R_PAREN) { - int ret; - - if ((ret = find_color(str)) >= 0) { - *result = dlg_color_table[ret]; - return 0; - } - /* invalid representation */ - return -1; - } - - /* remove the parenthesis */ - have = strlen(str); - if (have > MAX_LEN) { - have = MAX_LEN - 1; - } else { - have -= 2; - } - memcpy(tempstr, str + 1, have); - tempstr[have] = '\0'; - - /* parse comma-separated tokens, allow up to - * one more than max tokens to detect extras */ - while (tok_count < TableSize(tokens)) { - - tokens[tok_count++] = &tempstr[i]; - - while (tempstr[i] != '\0' && tempstr[i] != ',') - i++; - - if (tempstr[i] == '\0') - break; - - tempstr[i++] = '\0'; - } - - if (tok_count < MIN_TOKEN || tok_count > MAX_TOKEN) { - /* invalid representation */ - return -1; - } - - for (i = 0; i < tok_count; ++i) - trim_token(&tokens[i]); - - /* validate */ - if (UNKNOWN_COLOR == (result->fg = from_color_name(tokens[0])) - || UNKNOWN_COLOR == (result->bg = from_color_name(tokens[1])) - || UNKNOWN_COLOR == (result->hilite = from_boolean(tokens[2])) -#ifdef HAVE_RC_FILE2 - || (tok_count >= 4 && (result->ul = from_boolean(tokens[3])) == -1) - || (tok_count >= 5 && (result->rv = from_boolean(tokens[4])) == -1) -#endif /* HAVE_RC_FILE2 */ - ) { - /* invalid representation */ - return -1; - } - - return 0; -} -#endif /* HAVE_COLOR */ - -/* - * Check if the line begins with a special keyword; if so, return true while - * pointing params to its parameters. - */ -static int -begins_with(char *line, const char *keyword, char **params) -{ - int i = skip_whitespace(line, 0); - int j = skip_keyword(line, i); - - if ((j - i) == (int) strlen(keyword)) { - char save = line[j]; - line[j] = 0; - if (!dlg_strcmp(keyword, line + i)) { - *params = line + skip_whitespace(line, j + 1); - return 1; - } - line[j] = save; - } - - return 0; -} - -/* - * Parse a line in the configuration file - * - * Each line is of the form: "variable = value". On exit, 'var' will contain - * the variable name, and 'value' will contain the value string. - * - * Return values: - * - * LINE_EMPTY - line is blank or comment - * LINE_EQUALS - line contains "variable = value" - * LINE_ERROR - syntax error in line - */ -static PARSE_LINE -parse_line(char *line, char **var, char **value) -{ - int i = 0; - - /* ignore white space at beginning of line */ - i = skip_whitespace(line, i); - - if (line[i] == '\0') /* line is blank */ - return LINE_EMPTY; - else if (line[i] == '#') /* line is comment */ - return LINE_EMPTY; - else if (line[i] == '=') /* variable names cannot start with a '=' */ - return LINE_ERROR; - - /* set 'var' to variable name */ - *var = line + i++; /* skip to next character */ - - /* find end of variable name */ - while (!isblank(UCH(line[i])) && line[i] != '=' && line[i] != '\0') - i++; - - if (line[i] == '\0') /* syntax error */ - return LINE_ERROR; - else if (line[i] == '=') - line[i++] = '\0'; - else { - line[i++] = '\0'; - - /* skip white space before '=' */ - i = skip_whitespace(line, i); - - if (line[i] != '=') /* syntax error */ - return LINE_ERROR; - else - i++; /* skip the '=' */ - } - - /* skip white space after '=' */ - i = skip_whitespace(line, i); - - if (line[i] == '\0') - return LINE_ERROR; - else - *value = line + i; /* set 'value' to value string */ - - /* trim trailing white space from 'value' */ - i = (int) strlen(*value) - 1; - while (isblank(UCH((*value)[i])) && i > 0) - i--; - (*value)[i + 1] = '\0'; - - return LINE_EQUALS; /* no syntax error in line */ -} - -/* - * Create the configuration file - */ -void -dlg_create_rc(const char *filename) -{ - unsigned i; - FILE *rc_file; - - if ((rc_file = fopen(filename, "wt")) == NULL) - dlg_exiterr("Error opening file for writing in dlg_create_rc()."); - - fprintf(rc_file, "#\n\ -# Run-time configuration file for dialog\n\ -#\n\ -# Automatically generated by \"dialog --create-rc <file>\"\n\ -#\n\ -#\n\ -# Types of values:\n\ -#\n\ -# Number - <number>\n\ -# String - \"string\"\n\ -# Boolean - <ON|OFF>\n" -#ifdef HAVE_COLOR -#ifdef HAVE_RC_FILE2 - "\ -# Attribute - (foreground,background,highlight?,underline?,reverse?)\n" -#else /* HAVE_RC_FILE2 */ - "\ -# Attribute - (foreground,background,highlight?)\n" -#endif /* HAVE_RC_FILE2 */ -#endif /* HAVE_COLOR */ - ); - - /* Print an entry for each configuration variable */ - for (i = 0; i < VAR_COUNT; i++) { - fprintf(rc_file, "\n# %s\n", vars[i].comment); - switch (vars[i].type) { - case VAL_INT: - fprintf(rc_file, "%s = %d\n", vars[i].name, - *((int *) vars[i].var)); - break; - case VAL_STR: - fprintf(rc_file, "%s = \"%s\"\n", vars[i].name, - (char *) vars[i].var); - break; - case VAL_BOOL: - fprintf(rc_file, "%s = %s\n", vars[i].name, - *((bool *) vars[i].var) ? "ON" : "OFF"); - break; - } - } -#ifdef HAVE_COLOR - for (i = 0; i < (unsigned) dlg_color_count(); ++i) { - unsigned j; - bool repeat = FALSE; - - fprintf(rc_file, "\n# %s\n", dlg_color_table[i].comment); - for (j = 0; j != i; ++j) { - if (dlg_color_table[i].fg == dlg_color_table[j].fg - && dlg_color_table[i].bg == dlg_color_table[j].bg - && dlg_color_table[i].hilite == dlg_color_table[j].hilite) { - fprintf(rc_file, "%s = %s\n", - dlg_color_table[i].name, - dlg_color_table[j].name); - repeat = TRUE; - break; - } - } - - if (!repeat) { - fprintf(rc_file, "%s = %c", dlg_color_table[i].name, L_PAREN); - fprintf(rc_file, "%s", to_color_name(dlg_color_table[i].fg)); - fprintf(rc_file, ",%s", to_color_name(dlg_color_table[i].bg)); - fprintf(rc_file, ",%s", to_boolean(dlg_color_table[i].hilite)); -#ifdef HAVE_RC_FILE2 - if (dlg_color_table[i].ul || dlg_color_table[i].rv) - fprintf(rc_file, ",%s", to_boolean(dlg_color_table[i].ul)); - if (dlg_color_table[i].rv) - fprintf(rc_file, ",%s", to_boolean(dlg_color_table[i].rv)); -#endif /* HAVE_RC_FILE2 */ - fprintf(rc_file, "%c\n", R_PAREN); - } - } -#endif /* HAVE_COLOR */ - dlg_dump_keys(rc_file); - - (void) fclose(rc_file); -} - -static void -report_error(const char *filename, int line_no, const char *msg) -{ - fprintf(stderr, "%s:%d: %s\n", filename, line_no, msg); - dlg_trace_msg("%s:%d: %s\n", filename, line_no, msg); -} - -/* - * Parse the configuration file and set up variables - */ -int -dlg_parse_rc(void) -{ - int i; - int l = 1; - PARSE_LINE parse; - char str[MAX_LEN + 1]; - char *var; - char *value; - char *filename; - int result = 0; - FILE *rc_file = 0; - char *params; - - /* - * At startup, dialog determines the settings to use as follows: - * - * a) if the environment variable $DIALOGRC is set, its value determines - * the name of the configuration file. - * - * b) if the file in (a) can't be found, use the file $HOME/.dialogrc - * as the configuration file. - * - * c) if the file in (b) can't be found, try using the GLOBALRC file. - * Usually this will be /etc/dialogrc. - * - * d) if the file in (c) cannot be found, use the compiled-in defaults. - */ - - /* try step (a) */ - if ((filename = dlg_getenv_str("DIALOGRC")) != NULL) - rc_file = fopen(filename, "rt"); - - if (rc_file == NULL) { /* step (a) failed? */ - /* try step (b) */ - if ((filename = dlg_getenv_str("HOME")) != NULL - && strlen(filename) < MAX_LEN - (sizeof(DIALOGRC) + 3)) { - if (filename[0] == '\0' || lastch(filename) == '/') - sprintf(str, "%s%s", filename, DIALOGRC); - else - sprintf(str, "%s/%s", filename, DIALOGRC); - rc_file = fopen(filename = str, "rt"); - } - } - - if (rc_file == NULL) { /* step (b) failed? */ - /* try step (c) */ - strcpy(str, GLOBALRC); - if ((rc_file = fopen(filename = str, "rt")) == NULL) - return 0; /* step (c) failed, use default values */ - } - - DLG_TRACE(("# opened rc file \"%s\"\n", filename)); - /* Scan each line and set variables */ - while ((result == 0) && (fgets(str, MAX_LEN, rc_file) != NULL)) { - DLG_TRACE(("#\t%s", str)); - if (*str == '\0' || lastch(str) != '\n') { - /* ignore rest of file if line too long */ - report_error(filename, l, "line too long"); - result = -1; /* parse aborted */ - break; - } - - lastch(str) = '\0'; - if (begins_with(str, "bindkey", ¶ms)) { - if (!dlg_parse_bindkey(params)) { - report_error(filename, l, "invalid bindkey"); - result = -1; - } - continue; - } - parse = parse_line(str, &var, &value); /* parse current line */ - - switch (parse) { - case LINE_EMPTY: /* ignore blank lines and comments */ - break; - case LINE_EQUALS: - /* search table for matching config variable name */ - if ((i = find_vars(var)) >= 0) { - switch (vars[i].type) { - case VAL_INT: - *((int *) vars[i].var) = atoi(value); - break; - case VAL_STR: - if (!isquote(value[0]) || !isquote(lastch(value)) - || strlen(value) < 2) { - report_error(filename, l, "expected string value"); - result = -1; /* parse aborted */ - } else { - /* remove the (") quotes */ - value++; - lastch(value) = '\0'; - strcpy((char *) vars[i].var, value); - } - break; - case VAL_BOOL: - if (!dlg_strcmp(value, "ON")) - *((bool *) vars[i].var) = TRUE; - else if (!dlg_strcmp(value, "OFF")) - *((bool *) vars[i].var) = FALSE; - else { - report_error(filename, l, "expected boolean value"); - result = -1; /* parse aborted */ - } - break; - } -#ifdef HAVE_COLOR - } else if ((i = find_color(var)) >= 0) { - DIALOG_COLORS temp; - if (str_to_attr(value, &temp) == -1) { - report_error(filename, l, "expected attribute value"); - result = -1; /* parse aborted */ - } else { - dlg_color_table[i].fg = temp.fg; - dlg_color_table[i].bg = temp.bg; - dlg_color_table[i].hilite = temp.hilite; -#ifdef HAVE_RC_FILE2 - dlg_color_table[i].ul = temp.ul; - dlg_color_table[i].rv = temp.rv; -#endif /* HAVE_RC_FILE2 */ - } - } else { -#endif /* HAVE_COLOR */ - report_error(filename, l, "unknown variable"); - result = -1; /* parse aborted */ - } - break; - case LINE_ERROR: - report_error(filename, l, "syntax error"); - result = -1; /* parse aborted */ - break; - } - l++; /* next line */ - } - - (void) fclose(rc_file); - return result; -} diff --git a/contrib/dialog/rename.sh b/contrib/dialog/rename.sh deleted file mode 100755 index 0151541c9b5a..000000000000 --- a/contrib/dialog/rename.sh +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/sh -# $Id: rename.sh,v 1.4 2012/12/19 10:17:36 tom Exp $ -############################################################################## -# Copyright (c) 2011,2012 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# install-helper for dialog's manpages, e.g., as "cdialog". -# -# $1 = input file -# $2 = output file -# $3 = actual program name that dialog is installed as -# $4 = actual name that header/library are installed as -# $5+ = install program and possible options - -LANG=C; export LANG -LC_ALL=C; export LC_ALL -LC_CTYPE=C; export LC_CTYPE -LANGUAGE=C; export LANGUAGE - -SOURCE=$1; shift -TARGET=$1; shift -BINARY=$1; shift -PACKAGE=$1; shift - -CHR_LEAD=`echo "$BINARY" | sed -e 's/^\(.\).*/\1/'` -CHR_TAIL=`echo "$BINARY" | sed -e 's/^.//'` -ONE_CAPS=`echo $CHR_LEAD | tr '[a-z]' '[A-Z]'`$CHR_TAIL -ALL_CAPS=`echo "$BINARY" | tr '[a-z]' '[A-Z]'` - -sed -e "s,^\.ds p dialog\>,.ds p $BINARY," \ - -e "s,^\.ds l dialog\>,.ds l $PACKAGE," \ - -e "s,^\.ds L Dialog\>,.ds L $ONE_CAPS," \ - -e "s,^\.ds D DIALOG\>,.ds D $ALL_CAPS," \ - -e 's,^dialog \\- ,'"$PACKAGE"' \\- ,' \ - <$SOURCE >source.tmp -"$@" source.tmp $TARGET -rm -f source.tmp diff --git a/contrib/dialog/run_test.sh b/contrib/dialog/run_test.sh deleted file mode 100755 index 036b44dddfe4..000000000000 --- a/contrib/dialog/run_test.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -# $Id: run_test.sh,v 1.1 2020/03/20 12:08:00 tom Exp $ -############################################################################## -# Copyright (c) 2020 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## - -failed() { - echo "? $*" >&2 - exit 1 -} - -: ${DIALOG=./dialog} -CONFIG=samples -INPUTS=inputs.rc -OUTPUT=output.rc - -[ $# != 0 ] && CONFIG="$1" - -[ -f "$DIALOG" ] || failed "no such file: $DIALOG" -[ -d "$CONFIG" ] || failed "no such directory: $CONFIG" - -for rcfile in $CONFIG/*.rc -do - echo "** $rcfile" - DIALOGRC="$rcfile" $DIALOG --create-rc $OUTPUT - sed -e '/^#/d' "$OUTPUT" >"$INPUTS" - mv -f $INPUTS $OUTPUT - sed -e '/^#/d' "$rcfile" >"$INPUTS" - diff -u $INPUTS $OUTPUT | \ - sed -e "s,$INPUTS,$rcfile," \ - -e "s,$OUTPUT,$rcfile-test," -done - -rm -f $INPUTS $OUTPUT diff --git a/contrib/dialog/samples/README b/contrib/dialog/samples/README deleted file mode 100644 index 604197c3dd8b..000000000000 --- a/contrib/dialog/samples/README +++ /dev/null @@ -1,7 +0,0 @@ --- $Id: README,v 1.4 2012/12/02 18:52:52 tom Exp $ - -You can set the environment-variable DIALOG to whatever program you -want to check. Default is "dialog". - -Use "export DIALOG=/usr/bin/dialog" for sh or "setenv DIALOG ../dialog" for csh -to test the /usr/bin/dialog program. diff --git a/contrib/dialog/samples/buildlist b/contrib/dialog/samples/buildlist deleted file mode 100755 index 8e4a70b0c846..000000000000 --- a/contrib/dialog/samples/buildlist +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: buildlist,v 1.3 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "BUILDLIST DEMO" --backtitle "A user-built list" \ - --separator "|" \ - --buildlist "hello, this is a --buildlist..." 0 0 0 \ - "1" "Item number 1" "on" \ - "2" "Item number 2" "off" \ - "3" "Item number 3" "on" \ - "4" "Item number 4" "on" \ - "5" "Item number 5" "off" \ - "6" "Item number 6" "on" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/buildlist2 b/contrib/dialog/samples/buildlist2 deleted file mode 100755 index 1b4dd335060a..000000000000 --- a/contrib/dialog/samples/buildlist2 +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# $Id: buildlist2,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-edit - -count=0 -ls -1 | while true -do - read filename - test -z "$filename" && break - case $filename in - *.*) - state=off - ;; - *-*) - state=on - ;; - *) - continue - ;; - esac - case "x$DIALOGOPTS" in - *--no-items*|*--noitem*) - echo "$filename $state" >>$input - ;; - *) - echo "$count $filename $state" >>$input - ;; - esac - count=`expr $count + 1` -done - -$DIALOG --title "BUILDLIST DEMO" --backtitle "A user-built list" \ - --visit-items --scrollbar --separator "|" \ - --buildlist "hello, this is a --buildlist..." 0 0 10 `cat "$input"` 2> $output - -returncode=$? - -tempfile=$output -. ./report-tempfile diff --git a/contrib/dialog/samples/buildlist4 b/contrib/dialog/samples/buildlist4 deleted file mode 100755 index 6bfa98708017..000000000000 --- a/contrib/dialog/samples/buildlist4 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: buildlist4,v 1.2 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "BUILDLIST DEMO" --backtitle "A user-built list" \ - --separator "|" \ - --help-button \ - --item-help \ - --buildlist "hello, this is a --buildlist..." 0 0 0 \ - "1" "Item number 1" "on" first \ - "2" "Item number 2" "off" second \ - "3" "Item number 3" "on" third \ - "4" "Item number 4" "on" fourth \ - "5" "Item number 5" "off" fifth \ - "6" "Item number 6" "on" sixth 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/calendar b/contrib/dialog/samples/calendar deleted file mode 100755 index f9eb602fe0d9..000000000000 --- a/contrib/dialog/samples/calendar +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: calendar,v 1.11 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0 7 7 1981 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/calendar-stdout b/contrib/dialog/samples/calendar-stdout deleted file mode 100755 index 107a8e365161..000000000000 --- a/contrib/dialog/samples/calendar-stdout +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: calendar-stdout,v 1.8 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0 7 7 1981` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/calendar2 b/contrib/dialog/samples/calendar2 deleted file mode 100755 index 70aba16349df..000000000000 --- a/contrib/dialog/samples/calendar2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: calendar2,v 1.10 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/calendar2-stdout b/contrib/dialog/samples/calendar2-stdout deleted file mode 100755 index 34b370f7ee0e..000000000000 --- a/contrib/dialog/samples/calendar2-stdout +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: calendar2-stdout,v 1.8 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/calendar3 b/contrib/dialog/samples/calendar3 deleted file mode 100755 index a6efd575eb53..000000000000 --- a/contrib/dialog/samples/calendar3 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: calendar3,v 1.11 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --extra-button --extra-label "Hold" --help-button --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0 7 7 1981 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/calendar3-stdout b/contrib/dialog/samples/calendar3-stdout deleted file mode 100755 index 7e15920400e4..000000000000 --- a/contrib/dialog/samples/calendar3-stdout +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: calendar3-stdout,v 1.8 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --extra-button --extra-label "Hold" --help-button --stdout --title "CALENDAR" "$@" --calendar "Please choose a date..." 0 0 7 7 1981` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/checklist b/contrib/dialog/samples/checklist deleted file mode 100755 index 2e687d613e16..000000000000 --- a/contrib/dialog/samples/checklist +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: checklist,v 1.15 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off \ - "Dog" "No, that's not my dog." ON \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "Normally not a pet." off \ - "Cat" "No, never put a dog and a cat together!" oN \ - "Fish" "Cats like fish." On \ - "Lemon" "You know how it tastes." on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist-8bit b/contrib/dialog/samples/checklist-8bit deleted file mode 100755 index 756bf5b6b9c3..000000000000 --- a/contrib/dialog/samples/checklist-8bit +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: checklist-8bit,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./testdata-8bit - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "`./rotated-data 0 "$SAMPLE"`" "It's an `./rotated-data 0 "$SAMPLE"`." off \ - "`./rotated-data 1 "$SAMPLE"`" "No, that's not my `./rotated-data 1 "$SAMPLE"`." ON \ - "`./rotated-data 2 "$SAMPLE"`" "Yeah, that's `./rotated-data 2 "$SAMPLE"`." off \ - "`./rotated-data 3 "$SAMPLE"`" "Normally not a `./rotated-data 3 "$SAMPLE"`." off \ - "`./rotated-data 4 "$SAMPLE"`" "No, never put a `./rotated-data 4 "$SAMPLE"` there!" oN \ - "`./rotated-data 5 "$SAMPLE"`" "Cats like `./rotated-data 5 "$SAMPLE"`." On \ - "`./rotated-data 6 "$SAMPLE"`" "You `./rotated-data 6 "$SAMPLE"` how it is." on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist-utf8 b/contrib/dialog/samples/checklist-utf8 deleted file mode 100755 index b3f24ad2db7a..000000000000 --- a/contrib/dialog/samples/checklist-utf8 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: checklist-utf8,v 1.13 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./setup-utf8 - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "APPLE" "It's an APPLE." off \ - "DOG" "No, that's not my DOG." ON \ - "ORANGE" "Yeah, that's JUICY." off \ - "CHICKEN" "Normally not a PET." off \ - "CAT" "No, never put a DOG and a CAT together!" oN \ - "FISH" "Cats like FISH." On \ - "LEMON" "You KNOW how it TASTES." on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist1 b/contrib/dialog/samples/checklist1 deleted file mode 100755 index 3c08feae8dc2..000000000000 --- a/contrib/dialog/samples/checklist1 +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: checklist1,v 1.11 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "" "It's an apple." off \ - "Dog" "No, that's not my dog." ON \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "" off \ - "Cat" "No, never put a dog and a cat together!" oN \ - "Fish" "Cats like fish." On \ - "Lemon" "You know how it tastes." on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist10 b/contrib/dialog/samples/checklist10 deleted file mode 100755 index 82fdf77b3efe..000000000000 --- a/contrib/dialog/samples/checklist10 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: checklist10,v 1.10 2020/11/26 00:03:58 tom Exp $ -# zero-width column - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG \ - --backtitle "No such organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - Dialog "" on \ - Readline "" off \ - Gnome "" off \ - Kde "" off \ - Editor "" off \ - Noninteractive "" on \ - 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist11 b/contrib/dialog/samples/checklist11 deleted file mode 100755 index 3e8620e5b418..000000000000 --- a/contrib/dialog/samples/checklist11 +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# $Id: checklist11,v 1.2 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "" "It's an apple." off \ - "Dog" "No1, that's not my dog." ON \ - "Dog2" "No2, that's not my dog." OFF \ - "Dog3" "No3, that's not my dog." OFF \ - "Dog4" "No4, that's not my dog." OFF \ - "Dog5" "No5, that's not my dog." OFF \ - "Dog6" "No6, that's not my dog." OFF \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "" off \ - "Cat" "No, never put a dog and a cat together!" oN \ - "Fish" "Cats like fish." On \ - "Lemon" "You know how it tastes." on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist12 b/contrib/dialog/samples/checklist12 deleted file mode 100755 index 68c70ae1b9b3..000000000000 --- a/contrib/dialog/samples/checklist12 +++ /dev/null @@ -1,44 +0,0 @@ -#! /bin/sh -# $Id: checklist12,v 1.5 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-edit - -case "x$DIALOGOPTS" in -*--no-items*|*--noitem*) - CUT="cut -d: -f1,3" - ;; -*) - CUT="cat" - ;; -esac - -$CUT >$input <<-EOF - Apple:It's an apple.:off - Dog:No, that's not my dog.:ON - Orange:Yeah, that's juicy.:off - Chicken:Normally not a pet.:off - Cat:No, never put a dog and a cat together!:oN - Fish:Cats like fish.:On - Lemon:You know how it tastes.:on -EOF -sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' <$input >$output -cat $output >$input - -$DIALOG --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - --file $input 2> $output - -returncode=$? - -tempfile=$output -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist2 b/contrib/dialog/samples/checklist2 deleted file mode 100755 index e0d41d86a1e1..000000000000 --- a/contrib/dialog/samples/checklist2 +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: checklist2,v 1.12 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --item-help --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off "fruit" \ - "Dog" "No, that's not my dog." ON "not a fruit" \ - "Orange" "Yeah, that's juicy." off "fruit" \ - "Chicken" "Normally not a pet." off "not a fruit" \ - "Cat" "No, never put a dog and a cat together!" oN "not a fruit" \ - "Fish" "Cats like fish." On "not a fruit" \ - "Lemon" "You know how it tastes." on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist3 b/contrib/dialog/samples/checklist3 deleted file mode 100755 index 34471e628cd6..000000000000 --- a/contrib/dialog/samples/checklist3 +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: checklist3,v 1.12 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --item-help --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON "not a fruit" \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not a fruit" \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN "not a fruit" \ - "Fish" "Cats like fish. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On "not a fruit" \ - "Lemon" "You know how it tastes. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist4 b/contrib/dialog/samples/checklist4 deleted file mode 100755 index eb6eac6d02e6..000000000000 --- a/contrib/dialog/samples/checklist4 +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: checklist4,v 1.13 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button --item-help --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON "not a fruit" \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not a fruit" \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN "not a fruit" \ - "Fish" "Cats like fish. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On "not a fruit" \ - "Lemon" "You know how it tastes. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist5 b/contrib/dialog/samples/checklist5 deleted file mode 100755 index a4ccbbc810f7..000000000000 --- a/contrib/dialog/samples/checklist5 +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/sh -# $Id: checklist5,v 1.12 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button --item-help --backtitle "No Such Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON "not a fruit" \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not a fruit" \ - "" "No such pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not anything" \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN "not a fruit" \ - "Fish" "Cats like fish. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On "not a fruit" \ - "Lemon" "You know how it tastes. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist6 b/contrib/dialog/samples/checklist6 deleted file mode 100755 index 6e75856eb6c2..000000000000 --- a/contrib/dialog/samples/checklist6 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: checklist6,v 1.12 2020/11/26 00:03:58 tom Exp $ -# example showing the --colors option - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button --item-help --colors --backtitle "\Z1No Such\Zn Organization" \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -\Z4UP/DOWN\Zn arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press \Zb\ZrSPACE\Zn to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an \Z1apple\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON "not a fruit" \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not a fruit" \ - "" "No such pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not anything" \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN "not a fruit" \ - "Fish" "Cats like \Z4fish\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On "not a fruit" \ - "Lemon" "You know how it \Zr\Zb\Z3tastes\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist7 b/contrib/dialog/samples/checklist7 deleted file mode 100755 index 6ff9f7be4c7c..000000000000 --- a/contrib/dialog/samples/checklist7 +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/sh -# $Id: checklist7,v 1.12 2020/11/26 00:03:58 tom Exp $ -# "checklist6" with --separate-output - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button \ - --item-help \ - --colors \ - --backtitle "\Z1No Such\Zn Organization" \ - --separate-output \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -\Z4UP/DOWN\Zn arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press \Zb\ZrSPACE\Zn to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an \Z1apple\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON "not a fruit" \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "fruit" \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not a fruit" \ - "" "No such pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off "not anything" \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN "not a fruit" \ - "Fish" "Cats like \Z4fish\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On "not a fruit" \ - "Lemon" "You know how it \Zr\Zb\Z3tastes\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on "the only one you wouldn't eat" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist8 b/contrib/dialog/samples/checklist8 deleted file mode 100755 index d87b35fe42ea..000000000000 --- a/contrib/dialog/samples/checklist8 +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# $Id: checklist8,v 1.11 2020/11/26 00:03:58 tom Exp $ -# "checklist7" without --item-help - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button \ - --colors \ - --backtitle "\Z1No Such\Zn Organization" \ - --separate-output \ - --title "CHECKLIST BOX" "$@" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -\Z4UP/DOWN\Zn arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press \Zb\ZrSPACE\Zn to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an \Z1apple\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "" "No such pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN \ - "Fish" "Cats like \Z4fish\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On \ - "Lemon" "You know how it \Zr\Zb\Z3tastes\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist9 b/contrib/dialog/samples/checklist9 deleted file mode 100755 index 9e980706d855..000000000000 --- a/contrib/dialog/samples/checklist9 +++ /dev/null @@ -1,13 +0,0 @@ -#! /bin/sh -# $Id: checklist9,v 1.9 2020/11/26 00:03:58 tom Exp $ -# "checklist8" using --file - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG "$@" --file checklist9.txt 2>$tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/checklist9.txt b/contrib/dialog/samples/checklist9.txt deleted file mode 100644 index cdb26522170e..000000000000 --- a/contrib/dialog/samples/checklist9.txt +++ /dev/null @@ -1,21 +0,0 @@ ---help-button \ - --colors \ - --backtitle "\Z1No Such\Zn Organization" \ - --separate-output \ - --title "CHECKLIST BOX" \ - --checklist "Hi, this is a checklist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -\Z4UP/DOWN\Zn arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press \Zb\ZrSPACE\Zn to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an \Z1apple\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Dog" "No, that's not my dog. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ON \ - "Orange" "Yeah, that's juicy. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Chicken" "Normally not a pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "" "No such pet. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" off \ - "Cat" "No, never put a dog and a cat together! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" oN \ - "Fish" "Cats like \Z4fish\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" On \ - "Lemon" "You know how it \Zr\Zb\Z3tastes\Zn. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" on diff --git a/contrib/dialog/samples/copifuncs/copi.ifman1 b/contrib/dialog/samples/copifuncs/copi.ifman1 deleted file mode 100755 index 3e271a532e29..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifman1 +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/perl -# -# This is a utility script to manipulate Fidonet-related issues -# using Eugene Crosser's ifmail package -# -# Version 0.1 -# -# (C) Michael Bravo and The Communication Tube, 1994 -# -# You can do whatever you want with this script. I take no responsibility -# whatsoever in anything related to this script. If you make some useful -# additions to this, please think of sending them to me so I could partake -# of your wisdom. -# -# This script was written to help attaching and requesting files from the -# commandline, much like you do with Squish under DOS or OS/2. It is certainly -# not perfect - I used it as an exercise in Perl. It also probably lacks -# some other useful features, like ability to specify trunc/sent or kill/sent -# attributes etc etc. If you really want this or some other features -# implemented, write me at mbravo@tctube.spb.su or mbravo@octopus.spb.su -# and I will try to do what I can. -# -# Note - files don't get copied to any spool dir, so if you move attached -# files somewhere, they won't get sent. -# -# This script is supposed to read ifmail's config to determine where outbound -# directory and logfile are. The only two parameters to modify in most cases -# are below. - diff --git a/contrib/dialog/samples/copifuncs/copi.ifmcfg2 b/contrib/dialog/samples/copifuncs/copi.ifmcfg2 deleted file mode 100755 index 4d726f387116..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifmcfg2 +++ /dev/null @@ -1,68 +0,0 @@ -# Transport programs for mail and news, used by iftoss -sendmail /usr/lib/sendmail -f $F $T -rnews /usr/lib/news/rnews - -# Unpackers, used by ifunpack. -# $F expands to archieve file name -unzip /usr/bin/unzip -oq $F -unarj /usr/bin/unarj e $F -#unarc /usr/bin/unpack $F -unzoo /usr/bin/zoo -extract $F -unlzh /usr/bin/lharc -x $F - -# Packer program, used by ifpack -# $F expands to archieve file name, $P - to list of packet names -packer /usr/bin/zip $F $P - -# Maximum arcmail file size, will start new arcmail file if exceeds -maxfsize 65000 - -# Maximum packet size, ifmail/ifnews will start new packet if exceeds. -# .out files are NOT created if nonzero specified, you must run ifpack -# to make packets out. (unimplemented) -maxpsize 65000 - -# cnews log file and (temporary) database for seen-bys -newslog /usr/lib/news/log -msgidbm /tmp/ifmsgids - -# From this line on, values may be prefixed by a logical expression in -# round brackets. Operators are: '!', '&', '|', 'Xor'. -# Possible elements are: -# - Nodelist flags (like "CM", "MNP", "V32" etc.) -# - speed <operator> <numeric> -# where <operator> is '=', '!=', '<', '>', '<=', '>=' -# - address <wildcard> -# where <wildcard> is an (possibly incomplete) fidonet address, -# e.g. "5020/*" -# - time <interval>[,<interval>,...] -# where <interval> is a day spec. with optional time spec., e.g. -# Wk2000-0900,Sat1800-0000,Sun -# - phone <prefix> -# e.g. "phone 7-095-" - -# Dialing parameters -# of multiple "ModemPort", "ModemReset", "ModemDial", "ModemHangup" lines, -# first matching is used. -# of multiple "PhoneTrans", "ModemConnect", "ModemError" lines, all matching -# are used. -# In send and expect strings, following substitutions are made: -# \\ '\' character -# \r carriage return (0x0d) -# \n new line (0x0a) -# \t tab (0x09) -# \b backspace (0x08) -# \s space (0x20) -# \NNN (where N is an octal digit) - character with octal code NNN -# \d 1 second delay (send strings only) -# \p 1/4 second pause (send strings only) -# \T translated telephone no. (send strings only) -# \D untranslated telephone no. (send strings only) - -# ModemPort present a blank-separated list of ports with possible speed -# extension (separated by colon); if speed is prefixed with 'L', it is -# a "locked" port speed, otherwise it is a maximum speed to be set, while -# actual speed is taken from the nodelist. If speed is omitted (or set -# to zero), previous port speed is not changed. -#ModemPort (time Any0000-0900,Sat,Sun) ttyS0 -#ModemPort cua0:L38400 diff --git a/contrib/dialog/samples/copifuncs/copi.ifmcfg4 b/contrib/dialog/samples/copifuncs/copi.ifmcfg4 deleted file mode 100755 index 57ff9fc6ad11..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifmcfg4 +++ /dev/null @@ -1,30 +0,0 @@ -ModemHangup +++ATH\r -ModemOK OK -ModemConnect CONNECT -ModemError BUSY -ModemError NO\sCARRIER -ModemError NO\sDIAL -ModemError RING\r -ModemError ERROR - -# Call options (time, address and nodelist flag dependent) -# All matching are applied in the order they are specified. -# Possible options are "[No]Call", "[No]Hold", "[No]PUA", "[No]EMSI", -# "[No]WaZOO", "[No]Freqs", "[No]Zmodem", "[No]ZedZap", "[No]Janus", -# "[No]Hydra". Here, WaZOO stands for YooHoo/2U2 handshake, not for -# the transfer scheme. FTS-0001 handshake and DietIFNA scheme cannot -# be disallowed (because they are mandatory by standard). "Hold" -# means really hold "hold" type packets and files: do not send them -# if our system initiated the session, "NoHold" means send "hold" -# packets when our system initiated the session. "NoPUA" stands for -# "No PickUp All", i.e. PUP ("Pick Up Primary"). NoCall means do not -# perform outbound call. This flag has no effect on the nodes -# explicitly specified in the command line. -# Default options are "everything allowed". -# options ((!CM) & time Any0700-0200) Nocall -#options (time Any0900-2100 & ! address 2:5020/*) Nocall - -# EMSI data for this node -# From this line on values CANNOT be prefixed with logical expression -# For now, escaping of '}' and ']' unimplemented, try to avoid these -# characters please! diff --git a/contrib/dialog/samples/copifuncs/copi.ifmcfg5 b/contrib/dialog/samples/copifuncs/copi.ifmcfg5 deleted file mode 100755 index 8221c1cf160d..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifmcfg5 +++ /dev/null @@ -1,14 +0,0 @@ - -# PhoneTrans lines provide rules to change phone prefixes to make local -# or long-distance calls. In the example below, my country code is 7, -# and local dialing area is 095. From the numbers starting with "7-095-" -# the prefix is stripped and the 7-digit remainder is dialed. For -# the numbers starting with "7-" but not with "7-095-", the country prefix -# "7-" is stripped and the long-distance dialing prefix "8W" substituted. -# For the numbers not matching any of the above, international -# call is performed: international dialing prefix "8W10" is prepended -# to the unmodified 11-digit number. Generally, the syntax is: -# "PhoneTrans <what-to-strip> / <what-to-substitute-instead>" -#PhoneTrans 7-095- / -#PhoneTrans 7- / 8W -#PhoneTrans / 8W10 diff --git a/contrib/dialog/samples/copifuncs/copi.ifpoll1 b/contrib/dialog/samples/copifuncs/copi.ifpoll1 deleted file mode 100755 index 812c8e9cd0da..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifpoll1 +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# ver 0.7 -# ifpoll, poll my boss node or the node given as argument 1 -# -# i start this shell script every day by crond, but you can -# start it also by hand :) start it as the owner of ifcico. -# rasca, berlin 1993 (Rasca Gmelch, 2:2410/305.4) -# -# where "ifcico" and "ifpack" reside diff --git a/contrib/dialog/samples/copifuncs/copi.ifreq1 b/contrib/dialog/samples/copifuncs/copi.ifreq1 deleted file mode 100755 index 637293954bd5..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.ifreq1 +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/perl -$ver = "0.4"; -# -# this perl script is designed for the ifmail package by eugene grosser. -# -# request a file (first argument) from a fido-node (second argument), -# don't forget to quote if you use wildcards, e.g.: - -# ifreq 'files*' 2:2410/305 -# or -# ifreq 'files newfile' 2:2410/305 -# -# this perl script does only add an entry to the corresponding flo-file, -# the mailer ifcico is not started! -# -# rasca, berlin 1994 (rasca@marie.physik.tu-berlin.de, 2:2410/305.4) -# -# multi-zone support added by -# Roland Rosenfeld 15.05.1994 (roland@p13.flokiste.fido.de, 2:2450/300.13) - diff --git a/contrib/dialog/samples/copifuncs/copi.rcnews b/contrib/dialog/samples/copifuncs/copi.rcnews deleted file mode 100755 index 957a272ee496..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.rcnews +++ /dev/null @@ -1,79 +0,0 @@ -#! /bin/sh -## $Revision: 1.1 $ -## News boot script. - -## =()<. @<_PATH_SHELLVARS>@>()= -. /usr/lib/news/innshellvars - -## Pick ${INND} or ${INNDSTART} -WHAT=${INNDSTART} -## Set to true or false -DOINNWATCH=false -MAIL="${MAILCMD} -s 'Boot-time Usenet warning on `hostname`' ${NEWSMASTER}" - -## RFLAG is set below; set FLAGS as appropriate. -RFLAG="" -FLAGS="-i0 -c0" - -## Clean shutdown? -if [ -f ${SERVERPID} ] ; then - ( echo 'INND: PID file exists -- unclean shutdown!' >/dev/console ) - RFLAG="-r" -fi - -if [ ! -f ${NEWSLIB}/.news.daily ] ; then - echo 'No .news.daily file; need to run news.daily?' | eval ${MAIL} -else - case `find ${NEWSLIB} -name .news.daily -mtime +1 -print 2>/dev/null` in - "") - ;; - *) - echo 'Old .news.daily file; need to run news.daily?' | eval ${MAIL} - ;; - esac -fi - -## Active file recovery. -if [ ! -s ${ACTIVE} ] ; then - if [ -s ${NEWACTIVE} ] ; then - mv ${NEWACTIVE} ${ACTIVE} - else - if [ -s ${OLDACTIVE} ] ; then - cp ${OLDACTIVE} ${ACTIVE} - else - ( echo 'INND: No active file!' >/dev/console ) - exit 1 - fi - fi - RFLAG="-r" - # You might want to rebuild the DBZ database, too: - #echo "cd ${NEWSLIB} \ - # && makehistory -r \ - # && mv history.n.dir history.dir \ - # && mv history.n.pag history.pag" | su ${NEWSUSER} -fi - -## Remove temporary batchfiles and lock files. -( cd ${BATCH} && rm -f bch* ) -( cd ${LOCKS} && rm -f LOCK* ) -( cd ${TEMPSOCKDIR} && rm -f ${TEMPSOCK} ) -rm -f ${NEWSCONTROL} ${NNTPCONNECT} ${SERVERPID} - -## Start the show. -( echo 'Starting innd.' >/dev/console ) -eval ${WHAT} ${RFLAG} ${FLAGS} - -# Gee, looks like lisp, doesn't it? -${DOINNWATCH} && { - echo "( ( sleep 60 ; ${INNWATCH} ) & )" | su ${NEWSUSER} -} - -RMFILE=${MOST_LOGS}/expire.rm -if [ -s ${MOST_LOGS}/expire.rm ] ; then - ( echo "Removing articles from pre-downtime expire run." >/dev/console ) - ( - echo 'System shut down during expire. Unlinking articles listed in' - echo ${RMFILE} - ) | eval ${MAIL} - echo "${NEWSBIN}/expirerm ${RMFILE}" | su ${NEWSUSER} & -fi diff --git a/contrib/dialog/samples/copifuncs/copi.sendifm2 b/contrib/dialog/samples/copifuncs/copi.sendifm2 deleted file mode 100755 index 1a34a1fabbc0..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.sendifm2 +++ /dev/null @@ -1,15 +0,0 @@ - ${SITE} ${BATCHFILE} - - echo "${PROGNAME}: [$$] end ${SITE}" -done - -case ${HAVE_UUSTAT} in -DONT) - rm -f ${TEMP} - ;; -esac - -## Remove the lock file. -rm -f ${LOCK} - -echo "${PROGNAME}: [$$] end `date`" diff --git a/contrib/dialog/samples/copifuncs/copi.trnrc b/contrib/dialog/samples/copifuncs/copi.trnrc deleted file mode 100644 index 7be596f74db6..000000000000 --- a/contrib/dialog/samples/copifuncs/copi.trnrc +++ /dev/null @@ -1,13 +0,0 @@ -TRNINIT="-x -e -X -F\" :> \"" -HIDELINE="^X-FTN" -NEWSHEADER="Newsgroups: %(%F=^\$?%C:%F) -Subject: %(%S=^\$?%\"\n\nSubject: \":%S) -%(%R=^\$?:References: %R -)Sender: -Distribution: %(%i=^\$?%\"\nDistribution: \":%D) -Organization: %o -X-Comment-To: %f\n\n" -ATTRIBUTION="%f writes:\n" -YOUSAID="In article %i \n of newsgroup %C you write about \"%s\":\n" -MAILCALL="(New Mail)" -export NEWSHEADER HIDELINE TRNINIT ATTRIBUTION MAILCALL YOUSAID EDITOR diff --git a/contrib/dialog/samples/copifuncs/ifpatch b/contrib/dialog/samples/copifuncs/ifpatch deleted file mode 100644 index 1e7c7ee510e8..000000000000 --- a/contrib/dialog/samples/copifuncs/ifpatch +++ /dev/null @@ -1,101 +0,0 @@ ---- ifgate/message.c.orig Mon Jul 24 15:17:47 1995 -+++ ifgate/message.c Mon Jul 24 15:18:00 1995 -@@ -48,12 +48,26 @@ - if (!strcasecmp(msg->key,"X-UUCP-From")) return 0; - if (!strcasecmp(msg->key,"X-Body-Start")) return 0; - if (!strncasecmp(msg->key,"X-FTN-",6)) return 0; -- if (!strcasecmp(msg->key,"Path")) return isftnpath(msg->val)?0:1; -+ if (!strcasecmp(msg->key,"Path")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return isftnpath(msg->val)?0:1; -+#endif -+ - if (!strcasecmp(msg->key,"Newsgroups")) return newsmode?0:2; - if (!strcasecmp(msg->key,"Xref")) return 0; - if (!strcasecmp(msg->key,"Return-Receipt-To")) return 1; - if (!strcasecmp(msg->key,"Received")) return newsmode?0:2; -- if (!strcasecmp(msg->key,"From")) return ftnorigin?0:2; -+ if (!strcasecmp(msg->key,"From")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return ftnorigin?0:2; -+#endif -+ - if (!strcasecmp(msg->key,"To")) - { - if (newsmode) return 0; -@@ -66,7 +80,14 @@ - } - if (!strcasecmp(msg->key,"Cc")) return 2; - if (!strcasecmp(msg->key,"Bcc")) return 2; -- if (!strcasecmp(msg->key,"Reply-To")) return 2; -+ if (!strcasecmp(msg->key,"Reply-To")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return 2; -+#endif -+ - if (!strcasecmp(msg->key,"Lines")) return 0; - if (!strcasecmp(msg->key,"Date")) return 0; - if (!strcasecmp(msg->key,"Subject")) -@@ -77,8 +98,22 @@ - if (!strcasecmp(msg->key,"Organization")) return removeorg?0:1; - if (!strcasecmp(msg->key,"Comment-To")) return 0; - if (!strcasecmp(msg->key,"X-Comment-To")) return 0; -- if (!strcasecmp(msg->key,"Keywords")) return 2; -- if (!strcasecmp(msg->key,"Summary")) return 2; -+ if (!strcasecmp(msg->key,"Keywords")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return 2; -+#endif -+ -+ if (!strcasecmp(msg->key,"Summary")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return 2; -+#endif -+ - if (!strcasecmp(msg->key,"MIME-Version")) return removemime?0:1; - if (!strcasecmp(msg->key,"Content-Type")) return removemime?0:1; - if (!strcasecmp(msg->key,"Content-Length")) return removemime?0:1; -@@ -86,8 +121,26 @@ - if (!strcasecmp(msg->key,"Content-Name")) return 2; - if (!strcasecmp(msg->key,"Content-Description")) return 2; - if (!strcasecmp(msg->key,"Message-ID")) return ftnorigin?0:1; -- if (!strcasecmp(msg->key,"References")) return removeref?0:1; -- if (!strcasecmp(msg->key,"Distribution")) return ftnorigin?0:1; -+ if (!strcasecmp(msg->key,"References")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return removeref?0:1; -+#endif -+ -+ if (!strcasecmp(msg->key,"Distribution")) -+ -+#ifdef LESS_RFC_KLUDGES -+ return 0; -+#else -+ return ftnorigin?0:1; -+#endif -+ -+#ifdef LESS_RFC_KLUDGES -+ if (!strcasecmp(msg->key,"NNTP-Posting-Host")) return 0; -+#endif -+ - /*if (!strcasecmp(msg->key,"")) return ;*/ - return 1; - } diff --git a/contrib/dialog/samples/debian.rc b/contrib/dialog/samples/debian.rc deleted file mode 100644 index 195d79877ac1..000000000000 --- a/contrib/dialog/samples/debian.rc +++ /dev/null @@ -1,143 +0,0 @@ -# $Id: debian.rc,v 1.7 2011/10/15 01:00:09 tom Exp $ -# vile:confmode -# Run-time configuration file for dialog, matches Debian color scheme. -# (these are the default values for dialog) -# -# Types of values: -# -# Number - <number> -# String - "string" -# Boolean - <ON|OFF> -# Attribute - (foreground,background,highlight?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = OFF - -# Shadow dialog boxes? This also turns on color. -use_shadow = ON - -# Turn color support ON or OFF -use_colors = ON - -# Screen color -screen_color = (CYAN,BLUE,ON) - -# Shadow color -shadow_color = (BLACK,BLACK,ON) - -# Dialog box color -dialog_color = (BLACK,WHITE,OFF) - -# Dialog box title color -title_color = (BLUE,WHITE,ON) - -# Dialog box border color -border_color = (WHITE,WHITE,ON) - -# Active button color -button_active_color = (WHITE,BLUE,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = button_active_color - -# Inactive button key color -button_key_inactive_color = (RED,WHITE,OFF) - -# Active button label color -button_label_active_color = (YELLOW,BLUE,ON) - -# Inactive button label color -button_label_inactive_color = (BLACK,WHITE,ON) - -# Input box color -inputbox_color = dialog_color - -# Input box border color -inputbox_border_color = dialog_color - -# Search box color -searchbox_color = dialog_color - -# Search box title color -searchbox_title_color = title_color - -# Search box border color -searchbox_border_color = border_color - -# File position indicator color -position_indicator_color = title_color - -# Menu box color -menubox_color = dialog_color - -# Menu box border color -menubox_border_color = border_color - -# Item color -item_color = dialog_color - -# Selected item color -item_selected_color = button_active_color - -# Tag color -tag_color = title_color - -# Selected tag color -tag_selected_color = button_label_active_color - -# Tag key color -tag_key_color = button_key_inactive_color - -# Selected tag key color -tag_key_selected_color = (RED,BLUE,ON) - -# Check box color -check_color = dialog_color - -# Selected check box color -check_selected_color = button_active_color - -# Up arrow color -uarrow_color = (GREEN,WHITE,ON) - -# Down arrow color -darrow_color = uarrow_color - -# Item help-text color -itemhelp_color = (WHITE,BLACK,OFF) - -# Active form text color -form_active_text_color = button_active_color - -# Form text color -form_text_color = (WHITE,CYAN,ON) - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = title_color - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = dialog_color - -# Search box border2 color -searchbox_border2_color = dialog_color - -# Menu box border2 color -menubox_border2_color = dialog_color diff --git a/contrib/dialog/samples/dft-cancel b/contrib/dialog/samples/dft-cancel deleted file mode 100755 index 2b317fc5b39c..000000000000 --- a/contrib/dialog/samples/dft-cancel +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: dft-cancel,v 1.2 2012/07/03 09:44:02 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --extra-button --help-button --default-button cancel" "$@" diff --git a/contrib/dialog/samples/dft-extra b/contrib/dialog/samples/dft-extra deleted file mode 100755 index de08cd7aabaa..000000000000 --- a/contrib/dialog/samples/dft-extra +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: dft-extra,v 1.2 2012/07/03 09:44:02 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --extra-button --help-button --default-button extra" "$@" diff --git a/contrib/dialog/samples/dft-help b/contrib/dialog/samples/dft-help deleted file mode 100755 index cade8a75efaa..000000000000 --- a/contrib/dialog/samples/dft-help +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: dft-help,v 1.2 2012/07/03 09:44:02 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --extra-button --help-button --default-button help" "$@" diff --git a/contrib/dialog/samples/dft-no b/contrib/dialog/samples/dft-no deleted file mode 100755 index 172bcb2ca4b6..000000000000 --- a/contrib/dialog/samples/dft-no +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: dft-no,v 1.2 2012/07/03 09:44:02 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --extra-button --help-button --defaultno" "$@" diff --git a/contrib/dialog/samples/dialog.py b/contrib/dialog/samples/dialog.py deleted file mode 100644 index ef6e8626b3c0..000000000000 --- a/contrib/dialog/samples/dialog.py +++ /dev/null @@ -1,354 +0,0 @@ -#!/usr/bin/python -# $Id: dialog.py,v 1.5 2019/12/10 22:52:52 tom Exp $ -# Module: dialog.py -# Copyright (c) 2000 Robb Shecter <robb@acm.org> -# All rights reserved. -# This source is covered by the GNU GPL. -# -# This module is a Python wrapper around the Linux "dialog" utility -# by Savio Lam and Stuart Herbert. My goals were to make dialog as -# easy to use from Python as possible. The demo code at the end of -# the module is a good example of how to use it. To run the demo, -# execute: -# -# python dialog.py -# -# This module has one class in it, "Dialog". An application typically -# creates an instance of it, and possibly sets the background title option. -# Then, methods can be called on it for interacting with the user. -# -# I wrote this because I want to use my 486-33 laptop as my main -# development computer (!), and I wanted a way to nicely interact with the -# user in console mode. There are apparently other modules out there -# with similar functionality, but they require the Python curses library. -# Writing this module from scratch was easier than figuring out how to -# recompile Python with curses enabled. :) -# -# One interesting feature is that the menu and selection windows allow -# *any* objects to be displayed and selected, not just strings. -# -# TO DO: -# Add code so that the input buffer is flushed before a dialog box is -# shown. This would make the UI more predictable for users. This -# feature could be turned on and off through an instance method. -# Drop using temporary files when interacting with 'dialog' -# (it's possible -- I've already tried :-). -# Try detecting the terminal window size in order to make reasonable -# height and width defaults. Hmmm - should also then check for -# terminal resizing... -# Put into a package name to make more reusable - reduce the possibility -# of name collisions. -# -# NOTES: -# there is a bug in (at least) Linux-Mandrake 7.0 Russian Edition -# running on AMD K6-2 3D that causes core dump when 'dialog' -# is running with --gauge option; -# in this case you'll have to recompile 'dialog' program. -# -# Modifications: -# Jul 2000, Sultanbek Tezadov (http://sultan.da.ru) -# Added: -# - 'gauge' widget *) -# - 'title' option to some widgets -# - 'checked' option to checklist dialog; clicking "Cancel" is now -# recognizable -# - 'selected' option to radiolist dialog; clicking "Cancel" is now -# recognizable -# - some other cosmetic changes and improvements -# - -import os -from tempfile import mktemp -from string import split -from time import sleep - -# -# Path of the dialog executable -# -DIALOG = os.getenv("DIALOG"); -if DIALOG is None: - DIALOG="../dialog"; - -class Dialog: - def __init__(self): - self.__bgTitle = '' # Default is no background title - - - def setBackgroundTitle(self, text): - self.__bgTitle = '--backtitle "%s"' % text - - - def __perform(self, cmd): - """Do the actual work of invoking dialog and getting the output.""" - fName = mktemp() - rv = os.system('%s %s %s 2> %s' % (DIALOG, self.__bgTitle, cmd, fName)) - f = open(fName) - output = f.readlines() - f.close() - os.unlink(fName) - return (rv, output) - - - def __perform_no_options(self, cmd): - """Call dialog w/out passing any more options. Needed by --clear.""" - return os.system(DIALOG + ' ' + cmd) - - - def __handleTitle(self, title): - if len(title) == 0: - return '' - else: - return '--title "%s" ' % title - - - def yesno(self, text, height=10, width=30, title=''): - """ - Put a Yes/No question to the user. - Uses the dialog --yesno option. - Returns a 1 or a 0. - """ - (code, output) = self.__perform(self.__handleTitle(title) +\ - '--yesno "%s" %d %d' % (text, height, width)) - return code == 0 - - - def msgbox(self, text, height=10, width=30, title=''): - """ - Pop up a message to the user which has to be clicked - away with "ok". - """ - self.__perform(self.__handleTitle(title) +\ - '--msgbox "%s" %d %d' % (text, height, width)) - - - def infobox(self, text, height=10, width=30): - """Make a message to the user, and return immediately.""" - self.__perform('--infobox "%s" %d %d' % (text, height, width)) - - - def inputbox(self, text, height=10, width=30, init='', title=''): - """ - Request a line of input from the user. - Returns the user's input or None if cancel was chosen. - """ - (c, o) = self.__perform(self.__handleTitle(title) +\ - '--inputbox "%s" %d %d "%s"' % (text, height, width, init)) - try: - return o[0] - except IndexError: - if c == 0: # empty string entered - return '' - else: # canceled - return None - - - def textbox(self, filename, height=20, width=60, title=None): - """Display a file in a scrolling text box.""" - if title is None: - title = filename - self.__perform(self.__handleTitle(title) +\ - ' --textbox "%s" %d %d' % (filename, height, width)) - - - def menu(self, text, height=15, width=54, list=[]): - """ - Display a menu of options to the user. This method simplifies the - --menu option of dialog, which allows for complex arguments. This - method receives a simple list of objects, and each one is assigned - a choice number. - The selected object is returned, or None if the dialog was canceled. - """ - menuheight = height - 8 - pairs = map(lambda i, item: (i + 1, item), range(len(list)), list) - choices = reduce(lambda res, pair: res + '%d "%s" ' % pair, pairs, '') - (code, output) = self.__perform('--menu "%s" %d %d %d %s' %\ - (text, height, width, menuheight, choices)) - try: - return list[int(output[0]) - 1] - except IndexError: - return None - - - def checklist(self, text, height=15, width=54, list=[], checked=None): - """ - Returns a list of the selected objects. - Returns an empty list if nothing was selected. - Returns None if the window was canceled. - checked -- a list of boolean (0/1) values; len(checked) must equal - len(list). - """ - if checked is None: - checked = [0]*len(list) - menuheight = height - 8 - triples = map( - lambda i, item, onoff, fs=('off', 'on'): (i + 1, item, fs[onoff]), - range(len(list)), list, checked) - choices = reduce(lambda res, triple: res + '%d "%s" %s ' % triple, - triples, '') - (c, o) = self.__perform('--checklist "%s" %d %d %d %s' %\ - (text, height, width, menuheight, choices)) - try: - output = o[0] - indexList = map(lambda x: int(x[1:-1]), split(output)) - objectList = filter(lambda item, list=list, indexList=indexList: - list.index(item) + 1 in indexList, - list) - return objectList - except IndexError: - if c == 0: # Nothing was selected - return [] - return None # Was canceled - - - def radiolist(self, text, height=15, width=54, list=[], selected=0): - """ - Return the selected object. - Returns empty string if no choice was selected. - Returns None if window was canceled. - selected -- the selected item (must be between 1 and len(list) - or 0, meaning no selection). - """ - menuheight = height - 8 - triples = map(lambda i, item: (i + 1, item, 'off'), - range(len(list)), list) - if selected: - i, item, tmp = triples[selected - 1] - triples[selected - 1] = (i, item, 'on') - choices = reduce(lambda res, triple: res + '%d "%s" %s ' % triple, - triples, '') - (c, o) = self.__perform('--radiolist "%s" %d %d %d %s' %\ - (text, height, width, menuheight, choices)) - try: - return list[int(o[0]) - 1] - except IndexError: - if c == 0: - return '' - return None - - - def clear(self): - """ - Clear the screen. Equivalent to the dialog --clear option. - """ - self.__perform_no_options('--clear') - - - def scrollbox(self, text, height=20, width=60, title=''): - """ - This is a bonus method. The dialog package only has a function to - display a file in a scrolling text field. This method allows any - string to be displayed by first saving it in a temp file, and calling - --textbox. - """ - fName = mktemp() - f = open(fName, 'w') - f.write(text) - f.close() - self.__perform(self.__handleTitle(title) +\ - '--textbox "%s" %d %d' % (fName, height, width)) - os.unlink(fName) - - - def gauge_start(self, perc=0, text='', height=8, width=54, title=''): - """ - Display gauge output window. - Gauge normal usage (assuming that there is an instance of 'Dialog' - class named 'd'): - d.gauge_start() - # do something - d.gauge_iterate(10) # passed through 10% - # ... - d.gauge_iterate(100, 'any text here') # work is done - d.stop_gauge() # clean-up actions - """ - cmd = self.__handleTitle(title) +\ - '--gauge "%s" %d %d %d' % (text, height, width, perc) - cmd = '%s %s %s 2> /dev/null' % (DIALOG, self.__bgTitle, cmd) - self.pipe = os.popen(cmd, 'w') - #/gauge_start() - - - def gauge_iterate(self, perc, text=''): - """ - Update percentage point value. - - See gauge_start() function above for the usage. - """ - if text: - text = 'XXX\n%d\n%s\nXXX\n' % (perc, text) - else: - text = '%d\n' % perc - self.pipe.write(text) - self.pipe.flush() - #/gauge_iterate() - - - def gauge_stop(self): - """ - Finish previously started gauge. - - See gauge_start() function above for the usage. - """ - self.pipe.close() - #/gauge_stop() - - - -# -# DEMO APPLICATION -# -if __name__ == '__main__': - """ - This demo tests all the features of the class. - """ - d = Dialog() - d.setBackgroundTitle('dialog.py demo') - - d.infobox( - "One moment... Just wasting some time here to test the infobox...") - sleep(3) - - if d.yesno("Do you like this demo?"): - d.msgbox("Excellent! Here's the source code:") - else: - d.msgbox("Send your complaints to /dev/null") - - d.textbox("dialog.py") - - name = d.inputbox("What's your name?", init="Snow White") - fday = d.menu("What's your favorite day of the week?", - list=["Monday", "Tuesday", "Wednesday", "Thursday", - "Friday (The best day of all)", "Saturday", "Sunday"]) - food = d.checklist("What sandwich toppings do you like?", - list=["Catsup", "Mustard", "Pesto", "Mayonaise", "Horse radish", - "Sun-dried tomatoes"], checked=[0,0,0,1,1,1]) - sand = d.radiolist("What's your favorite kind of sandwich?", - list=["Hamburger", "Hotdog", "Burrito", "Doener", "Falafel", - "Bagel", "Big Mac", "Whopper", "Quarter Pounder", - "Peanut Butter and Jelly", "Grilled cheese"], selected=4) - - # Prepare the message for the final window - bigMessage = "Here are some vital statistics about you:\n\nName: " + name +\ - "\nFavorite day of the week: " + fday +\ - "\nFavorite sandwich toppings:\n" - for topping in food: - bigMessage = bigMessage + " " + topping + "\n" - bigMessage = bigMessage + "Favorite sandwich: " + str(sand) - - d.scrollbox(bigMessage) - - #<># Gauge Demo - d.gauge_start(0, 'percentage: 0', title='Gauge Demo') - for i in range(1, 101): - if i < 50: - msg = 'percentage: %d' % i - elif i == 50: - msg = 'Over 50%' - else: - msg = '' - d.gauge_iterate(i, msg) - sleep(0.1) - d.gauge_stop() - #<># - - d.clear() diff --git a/contrib/dialog/samples/dselect b/contrib/dialog/samples/dselect deleted file mode 100755 index 24ea94022715..000000000000 --- a/contrib/dialog/samples/dselect +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: dselect,v 1.10 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "Please choose a file" "$@" --dselect "$HOME/" 14 48 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/editbox b/contrib/dialog/samples/editbox deleted file mode 100755 index f59d344c4b3a..000000000000 --- a/contrib/dialog/samples/editbox +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -# $Id: editbox,v 1.14 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -DIALOG_ERROR=254 -export DIALOG_ERROR - -. ./setup-edit - -cat << EOF > $input -Hi, this is an edit box. It can be used to edit text from a file. - -It's like a simple text editor, with these keys implemented: - -PGDN - Move down one page -PGUP - Move up one page -DOWN - Move down one line -UP - Move up one line -DELETE - Delete the current character -BACKSPC - Delete the previous character - -Unlike Xdialog, it does not do these: - -CTRL C - Copy text -CTRL V - Paste text - -Because dialog normally uses TAB for moving between fields, -this editbox uses CTRL/V as a literal-next character. You -can enter TAB characters by first pressing CTRL/V. This -example contains a few tab characters. - -It supports the mouse - but only for positioning in the editbox, -or for clicking on buttons. Your terminal (emulator) may support -cut/paste. - -Try to input some text below: - -EOF - -$DIALOG --title "EDIT BOX" \ - --fixed-font "$@" --editbox $input 0 0 2>$output -returncode=$? - -. ./report-edit diff --git a/contrib/dialog/samples/editbox-utf8 b/contrib/dialog/samples/editbox-utf8 deleted file mode 100755 index aac84714566c..000000000000 --- a/contrib/dialog/samples/editbox-utf8 +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# $Id: editbox-utf8,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./setup-utf8 - -. ./setup-edit - -cat << EOF > $input -Hi, this is a edit box. You can use this to -allow the user to enter or modify free-form text. - -Try it now! - - ----------- -------------------------------- - Choose Description of the OS you like - ----------- -------------------------------- - Linux The Great Unix Clone for 386/486 - NetBSD Another free Unix Clone for 386/486 - OS/2 IBM OS/2 - WIN NT Microsoft Windows NT - PCDOS IBM PC DOS - MSDOS Microsoft DOS - ----------- -------------------------------- - ----------- -------------------------------- -EOF - -$DIALOG --title "EDIT BOX" \ - --fixed-font "$@" --editbox $input 0 0 2>$output -returncode=$? - -. ./report-edit diff --git a/contrib/dialog/samples/editbox2 b/contrib/dialog/samples/editbox2 deleted file mode 100755 index e483c2d36e85..000000000000 --- a/contrib/dialog/samples/editbox2 +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -# $Id: editbox2,v 1.8 2020/11/26 00:03:58 tom Exp $ -# example with extra- and help-buttons - -. ./setup-vars - -. ./setup-edit - -cat << EOF > $input -Hi, this is an edit box. It can be used to edit text from a file. - -It's like a simple text editor, with these keys implemented: - -PGDN - Move down one page -PGUP - Move up one page -DOWN - Move down one line -UP - Move up one line -DELETE - Delete the current character -BACKSPC - Delete the previous character - -Unlike Xdialog, it does not do these: - -CTRL C - Copy text -CTRL V - Paste text - -Because dialog normally uses TAB for moving between fields, -this editbox uses CTRL/V as a literal-next character. You -can enter TAB characters by first pressing CTRL/V. This -example contains a few tab characters. - -It supports the mouse - but only for positioning in the editbox, -or for clicking on buttons. Your terminal (emulator) may support -cut/paste. - -Try to input some text below: - -EOF - -$DIALOG --title "EDIT BOX" \ - --extra-button \ - --help-button \ - --fixed-font "$@" --editbox $input 0 0 2>$output -returncode=$? - -. ./report-edit diff --git a/contrib/dialog/samples/editbox3 b/contrib/dialog/samples/editbox3 deleted file mode 100755 index 6e96ff5d1885..000000000000 --- a/contrib/dialog/samples/editbox3 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: editbox3,v 1.8 2020/11/26 00:03:58 tom Exp $ -# example with extra- and help-buttons - -. ./setup-vars - -. ./setup-edit - -cat << EOF > $input -EOF - -$DIALOG --title "EDIT BOX" \ - --extra-button \ - --help-button \ - --fixed-font "$@" --editbox $input 0 0 2>$output -returncode=$? - -. ./report-edit diff --git a/contrib/dialog/samples/editbox4 b/contrib/dialog/samples/editbox4 deleted file mode 100755 index 68daf836c64e..000000000000 --- a/contrib/dialog/samples/editbox4 +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -# $Id: editbox4,v 1.2 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -DIALOG_ERROR=254 -export DIALOG_ERROR - -. ./setup-edit - -cat << EOF > $input -Hi, this is an edit box. It can be used to edit text from a file. - -It's like a simple text editor, with these keys implemented: - -PGDN - Move down one page -PGUP - Move up one page -DOWN - Move down one line -UP - Move up one line -DELETE - Delete the current character -BACKSPC - Delete the previous character - -Unlike Xdialog, it does not do these: - -CTRL C - Copy text -CTRL V - Paste text - -Because dialog normally uses TAB for moving between fields, -this editbox uses CTRL/V as a literal-next character. You -can enter TAB characters by first pressing CTRL/V. This -example contains a few tab characters. - -It supports the mouse - but only for positioning in the editbox, -or for clicking on buttons. Your terminal (emulator) may support -cut/paste. - -Try to input some text below: - -EOF - -$DIALOG --title "EDIT BOX" \ - --fixed-font "$@" --editbox $input 20 40 2>$output -returncode=$? - -. ./report-edit diff --git a/contrib/dialog/samples/form1 b/contrib/dialog/samples/form1 deleted file mode 100755 index b739196187bc..000000000000 --- a/contrib/dialog/samples/form1 +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/sh -# $Id: form1,v 1.18 2020/11/26 00:34:39 tom Exp $ - -. ./setup-vars - -DIALOG_ERROR=254 -export DIALOG_ERROR - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - $DIALOG_HELP) - echo "Button 2 (Help) pressed." - exit - ;; - $DIALOG_EXTRA) - echo "Button 3 (Extra) pressed." - exit - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form1-both b/contrib/dialog/samples/form1-both deleted file mode 100755 index 36aa560e36bb..000000000000 --- a/contrib/dialog/samples/form1-both +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id: form1-both,v 1.8 2020/11/26 00:34:22 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --extra-button --help-button \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form1-extra b/contrib/dialog/samples/form1-extra deleted file mode 100755 index 46018f808996..000000000000 --- a/contrib/dialog/samples/form1-extra +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id: form1-extra,v 1.8 2020/11/26 00:34:05 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --extra-button \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form1-help b/contrib/dialog/samples/form1-help deleted file mode 100755 index 9dcd3ca66de6..000000000000 --- a/contrib/dialog/samples/form1-help +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id: form1-help,v 1.8 2020/11/26 00:33:42 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --help-button \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form1-utf8 b/contrib/dialog/samples/form1-utf8 deleted file mode 100755 index 21d655d61ae4..000000000000 --- a/contrib/dialog/samples/form1-utf8 +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/sh -# $Id: form1-utf8,v 1.10 2020/11/26 00:33:23 tom Exp $ - -. ./setup-vars - -. ./setup-utf8 - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="DOG" -home=/usr/home/$user - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --backtitle "$backtitle" \ - --insecure "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form2 b/contrib/dialog/samples/form2 deleted file mode 100755 index ab2fe430501a..000000000000 --- a/contrib/dialog/samples/form2 +++ /dev/null @@ -1,84 +0,0 @@ -#! /bin/sh -# $Id: form2,v 1.12 2020/11/26 00:33:02 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -0 0 10 \ - "1 Username:" 1 1 "$user" 1 12 10 10 \ - "1 UID:" 2 1 "$uid" 2 12 10 10 \ - "1 GID:" 3 1 "$gid" 3 12 10 10 \ - "1 HOME:" 4 1 "$home" 4 12 10 10 \ - "2 Username:" 5 1 "$user" 5 12 10 10 \ - "2 UID:" 6 1 "$uid" 6 12 10 10 \ - "2 GID:" 7 1 "$gid" 7 12 10 10 \ - "2 HOME:" 8 1 "$home" 8 12 10 10 \ - "3 Username:" 9 1 "$user" 9 12 10 10 \ - "3 UID:" 10 1 "$uid" 10 12 10 10 \ - "3 GID:" 11 1 "$gid" 11 12 10 10 \ - "3 HOME:" 12 1 "$home" 12 12 10 10 \ - "4 Username:" 13 1 "$user" 13 12 10 10 \ - "4 UID:" 14 1 "$uid" 14 12 10 10 \ - "4 GID:" 15 1 "$gid" 15 12 10 10 \ - "4 HOME:" 16 1 "$home" 16 12 10 10 \ - "5 Username:" 17 1 "$user" 17 12 10 10 \ - "5 UID:" 18 1 "$uid" 18 12 10 10 \ - "5 GID:" 19 1 "$gid" 19 12 10 10 \ - "5 HOME:" 20 1 "$home" 20 12 10 10 \ - "6 Username:" 21 1 "$user" 21 12 10 10 \ - "6 UID:" 22 1 "$uid" 22 12 10 10 \ - "6 GID:" 23 1 "$gid" 23 12 10 10 \ - "6 HOME:" 24 1 "$home" 24 12 10 10 \ - "7 Username:" 25 1 "$user" 25 12 10 10 \ - "7 UID:" 26 1 "$uid" 26 12 10 10 \ - "7 GID:" 27 1 "$gid" 27 12 10 10 \ - "7 HOME:" 28 1 "$home" 28 12 10 10 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 0 0 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form3 b/contrib/dialog/samples/form3 deleted file mode 100755 index 9a6b256b363f..000000000000 --- a/contrib/dialog/samples/form3 +++ /dev/null @@ -1,69 +0,0 @@ -#! /bin/sh -# $Id: form3,v 1.9 2020/11/26 00:32:45 tom Exp $ -# form1 with --help-button - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --help-button \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - $DIALOG_HELP) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Help data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form4 b/contrib/dialog/samples/form4 deleted file mode 100755 index 1e5d5b0e7f3c..000000000000 --- a/contrib/dialog/samples/form4 +++ /dev/null @@ -1,70 +0,0 @@ -#! /bin/sh -# $Id: form4,v 1.9 2020/11/26 00:32:31 tom Exp $ -# form3 with --item-help - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --help-button \ - --item-help \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 "Login name" \ - "UID:" 2 1 "$uid" 2 10 8 0 "User ID" \ - "GID:" 3 1 "$gid" 3 10 8 0 "Group ID" \ - "HOME:" 4 1 "$home" 4 10 40 0 "User's home-directory" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - $DIALOG_HELP) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Help data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form5 b/contrib/dialog/samples/form5 deleted file mode 100755 index 253434110b5e..000000000000 --- a/contrib/dialog/samples/form5 +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/sh -# $Id: form5,v 1.9 2020/11/26 00:32:17 tom Exp $ -# form4 with --help-status - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --help-status \ - --help-button \ - --item-help \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 "Login name" \ - "UID:" 2 1 "$uid" 2 10 8 0 "User ID" \ - "GID:" 3 1 "$gid" 3 10 8 0 "Group ID" \ - "HOME:" 4 1 "$home" 4 10 40 0 "User's home-directory" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - $DIALOG_HELP) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Help data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/form6 b/contrib/dialog/samples/form6 deleted file mode 100755 index 29195b9f8322..000000000000 --- a/contrib/dialog/samples/form6 +++ /dev/null @@ -1,71 +0,0 @@ -#! /bin/sh -# $Id: form6,v 1.8 2020/11/26 00:31:55 tom Exp $ -# form4 with --help-status - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --help-status \ - --help-button \ - --item-help \ - --backtitle "$backtitle" "$@" \ - --form "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 -9 9 "Login name" \ - "UID:" 2 1 "$uid" 2 10 8 0 "User ID" \ - "GID:" 3 1 "$gid" 3 10 8 0 "Group ID" \ - "HOME:" 4 1 "$home" 4 10 40 0 "User's home-directory" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - $DIALOG_HELP) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Help data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/fselect b/contrib/dialog/samples/fselect deleted file mode 100755 index 45bb68da4874..000000000000 --- a/contrib/dialog/samples/fselect +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: fselect,v 1.14 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "Please choose a file" "$@" --fselect "$HOME/" 14 48 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/fselect-stdout b/contrib/dialog/samples/fselect-stdout deleted file mode 100755 index 0f2f5cbf21cf..000000000000 --- a/contrib/dialog/samples/fselect-stdout +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: fselect-stdout,v 1.9 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "Please choose a file" "$@" --fselect "$HOME/" 14 48` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/fselect0 b/contrib/dialog/samples/fselect0 deleted file mode 100755 index 49249b43a071..000000000000 --- a/contrib/dialog/samples/fselect0 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: fselect0,v 1.3 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "Please choose a file" "$@" --fselect '' 14 48 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/fselect1 b/contrib/dialog/samples/fselect1 deleted file mode 100755 index 4b312673c497..000000000000 --- a/contrib/dialog/samples/fselect1 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: fselect1,v 1.12 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -FILE=$HOME -for n in .cshrc .profile .bashrc -do - if test -f "$HOME/$n" ; then - FILE=$HOME/$n - break - fi -done - -exec 3>&1 -returntext=`$DIALOG --title "Please choose a file" "$@" --fselect "$FILE" 14 48 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/fselect1-stdout b/contrib/dialog/samples/fselect1-stdout deleted file mode 100755 index b1406837ffee..000000000000 --- a/contrib/dialog/samples/fselect1-stdout +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: fselect1-stdout,v 1.9 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -FILE=$HOME -for n in .cshrc .profile .bashrc -do - if test -f "$HOME/$n" ; then - FILE=$HOME/$n - break - fi -done - -returntext=`$DIALOG --stdout --title "Please choose a file" "$@" --fselect "$FILE" 14 48` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/fselect2 b/contrib/dialog/samples/fselect2 deleted file mode 100755 index 63526dce5a26..000000000000 --- a/contrib/dialog/samples/fselect2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: fselect2,v 1.11 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "Please choose a file" "$@" --fselect "$HOME/" 0 0 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/fselect2-stdout b/contrib/dialog/samples/fselect2-stdout deleted file mode 100755 index c2c188ac6584..000000000000 --- a/contrib/dialog/samples/fselect2-stdout +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: fselect2-stdout,v 1.9 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "Please choose a file" "$@" --fselect "$HOME/" 0 0` -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/gauge b/contrib/dialog/samples/gauge deleted file mode 100755 index 80dc188dc1c1..000000000000 --- a/contrib/dialog/samples/gauge +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: gauge,v 1.7 2010/01/13 10:20:03 tom Exp $ - -. ./setup-vars - -PCT=10 -( -while test $PCT != 100 -do -cat <<EOF -XXX -$PCT -The new\n\ -message ($PCT percent) -XXX -EOF -PCT=`expr $PCT + 10` -sleep 1 -done -) | - -$DIALOG --title "GAUGE" "$@" --gauge "Hi, this is a gauge widget" 20 70 0 diff --git a/contrib/dialog/samples/gauge0 b/contrib/dialog/samples/gauge0 deleted file mode 100755 index 97e654cef718..000000000000 --- a/contrib/dialog/samples/gauge0 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# $Id: gauge0,v 1.7 2010/01/13 10:20:03 tom Exp $ - -. ./setup-vars - -PCT=10 -( -sleep 1 -while test $PCT != 110 -do -cat <<EOF -XXX -$PCT -The new\n\ -message ($PCT percent) -XXX -EOF -PCT=`expr $PCT + 10` -sleep 1 -done -) | - -$DIALOG --title "GAUGE" "$@" --gauge "Hi, this is a gauge widget" 0 0 0 diff --git a/contrib/dialog/samples/gauge0-input-fd b/contrib/dialog/samples/gauge0-input-fd deleted file mode 100755 index 0b96fe4a7565..000000000000 --- a/contrib/dialog/samples/gauge0-input-fd +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: gauge0-input-fd,v 1.5 2010/01/13 10:20:03 tom Exp $ -# modified "gauge0" script to use "--input-fd" option. - -. ./setup-vars - -exec 3<&0 -PCT=10 -( -sleep 1 -while test $PCT != 110 -do -cat <<EOF -XXX -$PCT -The new\n\ -message ($PCT percent) -XXX -EOF -PCT=`expr $PCT + 10` -sleep 1 -done -) | - -$DIALOG --title "GAUGE" --input-fd 3 "$@" --gauge "Hi, this is a gauge widget" 0 0 0 - -exec 3<&- diff --git a/contrib/dialog/samples/gauge2 b/contrib/dialog/samples/gauge2 deleted file mode 100755 index f791410673af..000000000000 --- a/contrib/dialog/samples/gauge2 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# $Id: gauge2,v 1.9 2019/12/10 23:37:10 tom Exp $ -# The original dialog program assumed the first line after the first "XXX" -# was a percentage value (compare with "gauge" script). - -. ./setup-vars - -(echo "10" ; sleep 2 ; - -cat <<"EOF" -XXX -The new -\n -message -XXX -20 -EOF -sleep 2; - -echo "75" ; sleep 1 -echo "100") | \ - -$DIALOG --title "GAUGE" "$@" --gauge "Hi, this is a gauge widget" 10 40 0 - -if [ "$?" = "$DIALOG_ESC" ] ; then - echo "" - echo "Box closed !" -fi diff --git a/contrib/dialog/samples/infobox b/contrib/dialog/samples/infobox deleted file mode 100755 index 9f2da62c4a55..000000000000 --- a/contrib/dialog/samples/infobox +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh -# $Id: infobox,v 1.9 2019/12/10 23:37:10 tom Exp $ - -. ./setup-vars - -left=10 -unit="seconds" -while test $left != 0 -do - -$DIALOG --sleep 1 \ - --title "INFO BOX" "$@" \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 10 52 -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done diff --git a/contrib/dialog/samples/infobox1 b/contrib/dialog/samples/infobox1 deleted file mode 100755 index 3cc7f27ce350..000000000000 --- a/contrib/dialog/samples/infobox1 +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh -# $Id: infobox1,v 1.5 2019/12/10 23:37:10 tom Exp $ - -. ./setup-vars - -left=10 -unit="seconds" -while test $left != 0 -do - -sleep 1 -$DIALOG --title "INFO BOX" "$@" \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by a sleep command in the shell script. -You have $left $unit to read this..." 10 52 -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done diff --git a/contrib/dialog/samples/infobox2 b/contrib/dialog/samples/infobox2 deleted file mode 100755 index 08deb71901ba..000000000000 --- a/contrib/dialog/samples/infobox2 +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/sh -# $Id: infobox2,v 1.6 2019/12/10 23:37:10 tom Exp $ - -. ./setup-vars - -left=10 -unit="seconds" -while test $left != 0 -do - -$DIALOG --sleep 1 \ - --title "INFO BOX" "$@" \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 0 0 -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done diff --git a/contrib/dialog/samples/infobox3 b/contrib/dialog/samples/infobox3 deleted file mode 100755 index 3c773b8f69af..000000000000 --- a/contrib/dialog/samples/infobox3 +++ /dev/null @@ -1,22 +0,0 @@ -#! /bin/sh -# $Id: infobox3,v 1.6 2019/12/10 23:37:10 tom Exp $ - -. ./setup-vars - -left=10 -unit="seconds" -while test $left != 0 -do - -$DIALOG --sleep 1 \ - --begin 5 0 \ - --title "INFO BOX" "$@" \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 0 0 -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done diff --git a/contrib/dialog/samples/infobox4 b/contrib/dialog/samples/infobox4 deleted file mode 100755 index 816b8417a0d6..000000000000 --- a/contrib/dialog/samples/infobox4 +++ /dev/null @@ -1,22 +0,0 @@ -#! /bin/sh -# $Id: infobox4,v 1.6 2019/12/10 23:37:10 tom Exp $ - -. ./setup-vars - -left=10 -unit="seconds" -while test $left != 0 -do - -$DIALOG --sleep 1 \ - --begin 0 5 \ - --title "INFO BOX" "$@" \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 0 0 -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done diff --git a/contrib/dialog/samples/infobox5 b/contrib/dialog/samples/infobox5 deleted file mode 100755 index b93e1de8b13b..000000000000 --- a/contrib/dialog/samples/infobox5 +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/sh -# $Id: infobox5,v 1.8 2019/12/10 23:38:49 tom Exp $ -# get rid of all flickering by constructing a script unroll the loop, leaving -# us in curses-mode until we're done counting. - -. ./setup-vars - -. ./setup-tempfile - -left=10 -unit="seconds" -last='\' - -cat >>$tempfile <<EOF -$DIALOG $last -EOF - -while test $left != 0 -do - -cat >>$tempfile <<EOF - --sleep 1 \ - --begin 0 5 \ - --title "INFO BOX" $* \ - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 0 0 $last -EOF - -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done - -echo >>$tempfile - -. $tempfile diff --git a/contrib/dialog/samples/infobox6 b/contrib/dialog/samples/infobox6 deleted file mode 100755 index c81232d6e216..000000000000 --- a/contrib/dialog/samples/infobox6 +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/sh -# $Id: infobox6,v 1.8 2019/12/10 23:38:49 tom Exp $ -# get rid of all flickering by constructing a script unroll the loop, leaving -# us in curses-mode until we're done counting. -# -# a little fancier than infobox5, this moves the widget at each step. - -. ./setup-vars - -. ./setup-tempfile - -left=10 -unit="seconds" -last='\' - -cat >>$tempfile <<EOF -$DIALOG $last -EOF - -while test $left != 0 -do - -cat >>$tempfile <<EOF - --sleep 1 \ - --begin $left `expr $left + 5` \ - --title "INFO BOX" $* $last - --infobox "Hi, this is an information box. It is -different from a message box: it will -not pause waiting for input after displaying -the message. The pause here is only introduced -by the sleep command within dialog. -You have $left $unit to read this..." 0 0 $last -EOF - -left=`expr $left - 1` -test "$left" = 1 && unit="second" -done - -echo >>$tempfile - -. $tempfile diff --git a/contrib/dialog/samples/inputbox b/contrib/dialog/samples/inputbox deleted file mode 100755 index d249e83687f2..000000000000 --- a/contrib/dialog/samples/inputbox +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: inputbox,v 1.12 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox-both b/contrib/dialog/samples/inputbox-both deleted file mode 100755 index 2f8681be6398..000000000000 --- a/contrib/dialog/samples/inputbox-both +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: inputbox-both,v 1.7 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear \ - --extra-button \ - --help-button "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox-extra b/contrib/dialog/samples/inputbox-extra deleted file mode 100755 index a297392bb505..000000000000 --- a/contrib/dialog/samples/inputbox-extra +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: inputbox-extra,v 1.7 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear \ - --extra-button "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox-help b/contrib/dialog/samples/inputbox-help deleted file mode 100755 index 9aa0517a969c..000000000000 --- a/contrib/dialog/samples/inputbox-help +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: inputbox-help,v 1.7 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear \ - --help-button "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox1 b/contrib/dialog/samples/inputbox1 deleted file mode 100755 index 44f408028b30..000000000000 --- a/contrib/dialog/samples/inputbox1 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# $Id: inputbox1,v 1.14 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --cr-wrap \ - --title "INPUT BOX" --clear \ - --inputbox "$@" \ -"Hi, this is an input dialog box. You can use -this to ask questions that require the user -to input a string as the answer. You can -input strings of length longer than the -width of the input box, in that case, the -input field will be automatically scrolled. -You can use BACKSPACE to correct errors. - -Try entering your name below:" 0 0 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox2 b/contrib/dialog/samples/inputbox2 deleted file mode 100755 index baa6605e33dd..000000000000 --- a/contrib/dialog/samples/inputbox2 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: inputbox2,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox3 b/contrib/dialog/samples/inputbox3 deleted file mode 100755 index 2f6623b61c03..000000000000 --- a/contrib/dialog/samples/inputbox3 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: inputbox3,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --nocancel \ - --title "INPUT BOX" --clear "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n\ -this to ask questions that require the user \n\ -to input a string as the answer. You can \n\ -input strings of length longer than the \n\ -width of the input box, in that case, the \n\ -input field will be automatically scrolled. \n\ -You can use BACKSPACE to correct errors. \n\n\ -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox4 b/contrib/dialog/samples/inputbox4 deleted file mode 100755 index 76bd8ae77f8f..000000000000 --- a/contrib/dialog/samples/inputbox4 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: inputbox4,v 1.9 2020/11/26 00:09:12 tom Exp $ -# An example which does not use temporary files, as suggested by Cary Evans: - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "INPUT BOX" --clear "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/inputbox5 b/contrib/dialog/samples/inputbox5 deleted file mode 100755 index 2c87f6944165..000000000000 --- a/contrib/dialog/samples/inputbox5 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: inputbox5,v 1.8 2020/11/26 00:03:58 tom Exp $ -# use --output-fd to write to a different output than stderr - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear --output-fd 4 "$@" \ - --inputbox "Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 4> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox6-8bit b/contrib/dialog/samples/inputbox6-8bit deleted file mode 100755 index 15e084ae3f9c..000000000000 --- a/contrib/dialog/samples/inputbox6-8bit +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# $Id: inputbox6-8bit,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./testdata-8bit - -$DIALOG \ ---title "`printf '%s' "$SAMPLE"`" "$@" \ ---inputbox "`printf '%s' "$SAMPLE"`" \ -10 40 "`printf '%s' "$SAMPLE"`" 2>$tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox6-utf8 b/contrib/dialog/samples/inputbox6-utf8 deleted file mode 100755 index b2ccd34766f2..000000000000 --- a/contrib/dialog/samples/inputbox6-utf8 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: inputbox6-utf8,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./setup-utf8 - -TITLE="あいうえお" - -$DIALOG \ ---title "$TITLE" "$@" \ ---inputbox "$TITLE" 10 20 "D.O.G" 2>$tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/inputbox7 b/contrib/dialog/samples/inputbox7 deleted file mode 100755 index ed608cb927f1..000000000000 --- a/contrib/dialog/samples/inputbox7 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# $Id: inputbox7,v 1.9 2020/11/26 00:09:12 tom Exp $ -# An example which produces two widget outputs. - -. ./setup-vars - -MSG='Hi, this is an input dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:' - -# separate with a line-break (newline) -SEP=' -' - -exec 3>&1 -returntext=`$DIALOG --title "INPUT BOX" --clear --separate-widget "$SEP" "$@" \ - --inputbox "$MSG" 16 51 \ - --title "ANOTHER INPUT BOX" \ - --inputbox "$MSG" 16 51 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/inputmenu b/contrib/dialog/samples/inputmenu deleted file mode 100755 index 9f6d818ac2e1..000000000000 --- a/contrib/dialog/samples/inputmenu +++ /dev/null @@ -1,65 +0,0 @@ -#! /bin/sh -# $Id: inputmenu,v 1.19 2020/11/26 00:30:23 tom Exp $ -# 2002 - written by Tobias Rittweiler <tobrit@freebits.de> - -. ./setup-vars - -user="$USER" -uid=`id|sed -e 's/^uid=//' -e 's/(.*//'` -gid=`id|sed -e 's/^.*gid=//' -e 's/(.*//'` -home="$HOME" - -while [ "${returncode:-99}" -ne 1 ] && [ "${returncode:-99}" -ne 250 ]; do - exec 3>&1 - returntext=`$DIALOG \ - --clear --ok-label "Create" \ - --backtitle "An Example for the use of --inputmenu:" "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program. \ -" 20 50 10 \ -"Username:" "$user" \ -"UID:" "$uid" \ -"GID:" "$gid" \ -"HOME:" "$home" \ -2>&1 1>&3 ` - returncode=$? - exec 3>&- - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear --backtitle "An Example for the use of --inputmenu:" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) break;; - $DIALOG_CANCEL) returncode=99;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear --backtitle "An Example for the use of --inputmenu:" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - $DIALOG_EXTRA) - value=`echo "$returntext" | sed -e 's/^RENAMED //'` - tag=`echo "$value" | sed -e 's/:.*//'` - item=`echo "$value" | sed -e 's/^[^:]*:[ ][ ]*//'` - - case "$tag" in - Username) user="$item" ;; - UID) uid="$item" ;; - GID) gid="$item" ;; - HOME) home="$item" ;; - esac - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/inputmenu-stdout b/contrib/dialog/samples/inputmenu-stdout deleted file mode 100755 index 35384d34f167..000000000000 --- a/contrib/dialog/samples/inputmenu-stdout +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/sh -# $Id: inputmenu-stdout,v 1.17 2020/11/26 00:30:01 tom Exp $ -# 2002 - written by Tobias Rittweiler <tobrit@freebits.de> - -. ./setup-vars - -user="$USER" -uid=`id|sed -e 's/^uid=//' -e 's/(.*//'` -gid=`id|sed -e 's/^.*gid=//' -e 's/(.*//'` -home="$HOME" - -while [ "${returncode:-99}" -ne 1 ] && [ "${returncode:-99}" -ne 250 ]; do - returntext=`$DIALOG \ - --stdout --clear --ok-label "Create" \ - --backtitle "An Example for the use of --inputmenu:" "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program. \ -" 20 50 10 \ -"Username:" "$user" \ -"UID:" "$uid" \ -"GID:" "$gid" \ -"HOME:" "$home" \ -` - returncode=$? - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear --backtitle "An Example for the use of --inputmenu:" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) break;; - $DIALOG_CANCEL) returncode=99;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear --backtitle "An Example for the use of --inputmenu:" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - $DIALOG_EXTRA) - value=`echo "$returntext" | sed -e 's/^RENAMED //'` - tag=`echo "$value" | sed -e 's/:.*//'` - item=`echo "$value" | sed -e 's/^[^:]*:[ ][ ]*//'` - - case "$tag" in - Username) user="$item" ;; - UID) uid="$item" ;; - GID) gid="$item" ;; - HOME) home="$item" ;; - esac - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/inputmenu1 b/contrib/dialog/samples/inputmenu1 deleted file mode 100755 index 1d044c80bed6..000000000000 --- a/contrib/dialog/samples/inputmenu1 +++ /dev/null @@ -1,85 +0,0 @@ -#! /bin/sh -# $Id: inputmenu1,v 1.12 2020/11/26 00:29:41 tom Exp $ -# -# "inputmenu" rewritten into Bourne shell. - -. ./setup-vars - -backtitle="An Example for the use of --inputmenu:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --clear --ok-label "Create" \ - --backtitle "$backtitle" "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program." \ -20 50 10 \ - "Username:" "$user" \ - "UID:" "$uid" \ - "GID:" "$gid" \ - "HOME:" "$home" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - $DIALOG_EXTRA) - tag=`echo "$returntext" |sed -e 's/^RENAMED //' -e 's/:.*//'` - item=`echo "$returntext" |sed -e 's/^[^:]*:[ ]*//' -e 's/[ ]*$//'` - - case "$tag" in - Username) - user="$item" - ;; - UID) - uid="$item" - ;; - GID) - gid="$item" - ;; - HOME) - home="$item" - ;; - esac - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/inputmenu2 b/contrib/dialog/samples/inputmenu2 deleted file mode 100755 index 1cb519d1c6c3..000000000000 --- a/contrib/dialog/samples/inputmenu2 +++ /dev/null @@ -1,97 +0,0 @@ -#! /bin/sh -# $Id: inputmenu2,v 1.12 2020/11/26 00:29:26 tom Exp $ -# -# "inputmenu1" with defaultitem, help-button. - -. ./setup-vars - -backtitle="An Example for the use of --inputmenu:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -defaultitem="Username:" -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --clear --ok-label "Create" \ - --backtitle "$backtitle" \ - --help-button \ - --help-label "Script" \ - --default-item "$defaultitem" "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program." \ -20 60 10 \ - "Username:" "$user" \ - "UID:" "$uid" \ - "GID:" "$gid" \ - "HOME:" "$home" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - - case $returncode in - $DIALOG_HELP) - "$DIALOG" \ - --textbox "$0" 0 0 - ;; - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - $DIALOG_EXTRA) - tag=`echo "$returntext" |sed -e 's/^RENAMED //' -e 's/:.*/:/'` - item=`echo "$returntext" |sed -e 's/^[^:]*:[ ]*//' -e 's/[ ]*$//'` - - case "$tag" in - Username:) - user="$item" - ;; - UID:) - uid="$item" - ;; - GID:) - gid="$item" - ;; - HOME:) - home="$item" - ;; - *) - tag= - ;; - esac - test -n "$tag" && defaultitem="$tag" - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/inputmenu3 b/contrib/dialog/samples/inputmenu3 deleted file mode 100755 index 58a3079a162c..000000000000 --- a/contrib/dialog/samples/inputmenu3 +++ /dev/null @@ -1,106 +0,0 @@ -#! /bin/sh -# $Id: inputmenu3,v 1.14 2020/11/26 00:28:52 tom Exp $ -# -# "inputmenu1" with defaultitem, help-button and item-help. - -. ./setup-vars - -backtitle="An Example for the use of --inputmenu:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -defaultitem="Username:" -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --clear --ok-label "Create" \ - --backtitle "$backtitle" \ - --help-button \ - --help-label "Script" \ - --default-item "$defaultitem" \ - --item-help "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program." \ -20 60 10 \ - "Username:" "$user" "User login-name" \ - "UID:" "$uid" "User-ID (number)" \ - "GID:" "$gid" "Group-ID (number)" \ - "HOME:" "$home" "User's home-directory" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - case $returntext in - HELP*) - "$DIALOG" \ - --textbox "$0" 0 0 - ;; - *) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - esac - ;; - $DIALOG_HELP) - "$DIALOG" \ - --textbox "$0" 0 0 - ;; - $DIALOG_EXTRA) - tag=`echo "$returntext" |sed -e 's/^RENAMED //' -e 's/:.*/:/'` - item=`echo "$returntext" |sed -e 's/^[^:]*:[ ]*//' -e 's/[ ]*$//'` - - case "$tag" in - Username:) - user="$item" - ;; - UID:) - uid="$item" - ;; - GID:) - gid="$item" - ;; - HOME:) - home="$item" - ;; - *) - tag= - ;; - esac - test -n "$tag" && defaultitem="$tag" - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/inputmenu4 b/contrib/dialog/samples/inputmenu4 deleted file mode 100755 index 876e7f647fdf..000000000000 --- a/contrib/dialog/samples/inputmenu4 +++ /dev/null @@ -1,86 +0,0 @@ -#! /bin/sh -# $Id: inputmenu4,v 1.12 2020/11/26 00:28:24 tom Exp $ -# -# "inputmenu1" with a different label for the extra-button - -. ./setup-vars - -backtitle="An Example for the use of --inputmenu:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --clear --ok-label "Create" \ - --extra-label "Edit" \ - --backtitle "$backtitle" "$@" \ - --inputmenu "Originally I designed --inputmenu for a \ -configuration purpose. Here is a possible piece of a configuration program." \ -20 50 10 \ - "Username:" "$user" \ - "UID:" "$uid" \ - "GID:" "$gid" \ - "HOME:" "$home" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --msgbox "useradd \n\ - -d $home \n\ - -u $uid \n\ - -g $gid \n\ - $user" 10 40 - ;; - $DIALOG_EXTRA) - tag=`echo "$returntext" |sed -e 's/^RENAMED //' -e 's/:.*//'` - item=`echo "$returntext" |sed -e 's/^[^:]*:[ ]*//' -e 's/[ ]*$//'` - - case "$tag" in - Username) - user="$item" - ;; - UID) - uid="$item" - ;; - GID) - gid="$item" - ;; - HOME) - home="$item" - ;; - esac - ;; - - *) - . ./report-button - break - ;; - - esac -done diff --git a/contrib/dialog/samples/install/FDISK.TEST b/contrib/dialog/samples/install/FDISK.TEST deleted file mode 100644 index 2ad568a62d7b..000000000000 --- a/contrib/dialog/samples/install/FDISK.TEST +++ /dev/null @@ -1,28 +0,0 @@ - -Disk /dev/hda: 14 heads, 62 sectors, 1018 cylinders -Units = cylinders of 868 * 512 bytes - - Device Boot Begin Start End Blocks Id System -/dev/hda1 1 1 3 1271 a OS/2 Boot Manager -/dev/hda2 4 4 287 123256 6 DOS 16-bit >=32M -/dev/hda3 * 288 288 649 157108 83 Linux native -/dev/hda4 650 650 1018 160146 83 Linux native - -Disk /dev/sda: 64 heads, 32 sectors, 511 cylinders -Units = cylinders of 2048 * 512 bytes - - Device Boot Begin Start End Blocks Id System -/dev/sda1 1 1 21 21488 82 Linux swap -/dev/sda2 22 22 511 501760 83 Linux native - -Disk /dev/sdb: 64 heads, 32 sectors, 4106 cylinders -Units = cylinders of 2048 * 512 bytes - - Device Boot Begin Start End Blocks Id System -/dev/sdb1 1 1 201 205808 83 Linux native -/dev/sdb2 202 202 402 205824 83 Linux native -/dev/sdb3 403 403 603 205824 83 Linux native -/dev/sdb4 604 604 4106 3587072 5 Extended -/dev/sdb5 604 604 1803 1228784 83 Linux native -/dev/sdb6 1024 1804 3003 1228784 83 Linux native -/dev/sdb7 2048 3004 4106 1129456 83 Linux native diff --git a/contrib/dialog/samples/install/makefile.in b/contrib/dialog/samples/install/makefile.in deleted file mode 100644 index 3dcdc09ba2c5..000000000000 --- a/contrib/dialog/samples/install/makefile.in +++ /dev/null @@ -1,35 +0,0 @@ -# $Id: makefile.in,v 1.1 2000/10/08 17:22:53 tom Exp $ -# template makefile for DIALOG sample 'install' -# -SHELL = /bin/sh - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -srcdir = @srcdir@ -top_builddir = ../.. - -DESTDIR = -bindir = $(DESTDIR)@bindir@ - -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ @DEFS@ -I$(top_builddir) -I$(srcdir)/../.. -I. -I$(srcdir) -EXTRA_CFLAGS = @EXTRA_CFLAGS@ -CC = @CC@ -LDFLAGS = @LDFLAGS@ -LIBS = -L../.. -ldialog @LIBS@ -RANLIB = @RANLIB@ - -RM = rm -f - -all: setup - -setup: setup.o - $(CC) -o $@ setup.o $(LIBS) - -clean: - rm -f *.o setup - -test: setup - ./setup - diff --git a/contrib/dialog/samples/install/setup.c b/contrib/dialog/samples/install/setup.c deleted file mode 100644 index 517255ab8e2a..000000000000 --- a/contrib/dialog/samples/install/setup.c +++ /dev/null @@ -1,371 +0,0 @@ -/* Copyright (C) 1995 Florian La Roche */ -/* Who wants to help coding? I don't like doing this... */ - -/* You can just start setup as normal user and see how far it is coded - right now. This will do a fake installation and won't actually change - any data on your computer. */ - -/* TODO: write a good package selection code - change functions to return better error code - */ - -/* Show an extra text-box with the contents of all external commands, - before they are executed. So you can abort the installation, if any - wrong commands are to be executed. (So don't format wrong partition.) */ -#define VERBOSE 1 - -/* If defined, don't actually execute any comands and don't actually modify - any files. So you can test any possible installation without doing any - damage to your computer. - The file FDISK.TEST is used instead of real "fdisk -l" output, so that - it can be started as normal user. */ -#define DEBUG_THIS 1 - -#include <dialog.h> - -/* max length of a partition name like e.g. '/dev/hda1' */ -#define MAX_DEV_NAME 25 - -/* max number of possible Linux/Swap/MsDos partitions */ -#define MAX_PARTS 20 - -char *progname = NULL; - -static void -error(const char *s) -{ - fprintf(stderr, "%s: %s\n", progname, s); - exit(1); -} - -static int -my_system(const char *s,...) -{ - int ret, i; - va_list ap; - char sh[200]; - - va_start(ap, s); - vsprintf(sh, s, ap); - va_end(ap); - -#ifdef VERBOSE - i = dialog_msgbox("I will run the following command:", sh, 10, 65, 1); - dialog_clear(); -#ifdef DEBUG_THIS - return 0; -#endif -#endif - ret = system(sh); - if (!(ret >> 8)) - return 0; - i = dialog_msgbox("Error-Exit on the following command:", - sh, 12, 73, 1); - dialog_clear(); - return 1; -} - -/* We support to install from DOS/Linux-partitions. */ -enum partition_type { - MsDos, - Linux, - Swap -}; - -struct partition { - enum partition_type type; - char name[MAX_DEV_NAME]; - int blocks; - int flag; -} partitions[MAX_PARTS]; -int num_partition = 0; -int num_linux = 0; -int num_swap = 0; -int num_msdos = 0; - -static int -get_line(char *line, int size, FILE * f) -{ - char *ptr = line; - int c; - - if (feof(f)) - return -1; - while (size-- && ((c = getc(f)) != EOF) && (c != '\n')) - *ptr++ = c; - *ptr++ = '\0'; - return (int) (ptr - line); -} - -static void -read_partitions(void) -{ - FILE *f; - char line[200]; - int length; -#ifndef DEBUG_THIS - int ret = system("fdisk -l 2>/dev/null 1>/tmp/fdisk.output"); - if ((ret >> 8) != 0) { - error("fdisk didn't run"); - } - if ((f = fopen("/tmp/fdisk.output", "r")) == NULL) -#else - if ((f = fopen("FDISK.TEST", "r")) == NULL) -#endif - error("cannot read fdisk output"); - - while (num_partition <= MAX_PARTS - && (length = get_line(line, 200, f)) >= 0) { - if (strncmp(line, "/dev/", 5) == 0) { - int n = 0; - char *s = line + 5; - char *t = partitions[num_partition].name; - strcpy(t, "/dev/"); - t += 5; - while (n < MAX_DEV_NAME && *s != '\0' - && !isspace((unsigned char) *s)) { - *t++ = *s++; - n++; - } - *t = '\0'; - /* Read the size of the partition. */ - t = line + 37; - while (isspace((unsigned char) *t)) - t++; - partitions[num_partition].blocks = atoi(t); - if (strstr(line, "Linux native")) { - partitions[num_partition].type = Linux; - num_partition++; - num_linux++; - } else if (strstr(line, "Linux swap")) { - partitions[num_partition].type = Swap; - num_partition++; - num_swap++; - } else if (strstr(line, "DOS")) { - partitions[num_partition].type = MsDos; - num_partition++; - num_msdos++; - } - } - } - fclose(f); -#ifndef DEBUG_THIS - unlink("/tmp/fdisk.output"); -#endif -} - -static int -select_partition(const char *title, const char *prompt, int y, int x) -{ - int i, num, ret; - char info[MAX_PARTS][40]; - char *items[MAX_PARTS * 2]; - int num_pa[MAX_PARTS]; - - num = 0; - for (i = 0; i < num_partition; i++) { - if (partitions[i].type == Linux) { - items[num * 2] = partitions[i].name; - sprintf(info[num], "Linux partition with %d blocks", - partitions[i].blocks); - items[num * 2 + 1] = info[num]; - num_pa[num] = i; - num++; - } - } - ret = dialog_menu(title, prompt, y + num, x, num, num, items); - dialog_clear(); - if (ret >= 0) /* item selected */ - ret = num_pa[ret]; - return ret; -} - -static int -select_install_partition(void) -{ - return select_partition("Select Install Partition", - "\\nWhere do you want to install Linux?\\n", 9, 60); -} - -static int -select_source_partition(void) -{ - return select_partition("Select Source Partition", - "\\nOn which partition is the source?\\n", 9, 60); -} - -const char *null = ">/dev/null 2>/dev/null"; -const char *install_partition = NULL; - -static void -extract_packages(const char *source_path) -{ -#ifndef DEBUG_THIS - FILE *f; -#endif - - if (my_system("mkdir -p /install/var/installed/packages %s", null)) - return; - if (my_system("cd /install; for i in /source%s/*.tgz; do " - "tar xzplvvkf $i >> var/installed/packages/base " - "2>>var/installed/packages/ERROR; done", source_path)) - return; -#ifndef DEBUG_THIS - if ((f = fopen("/install/etc/fstab", "w")) == NULL) { - /* i = */ dialog_msgbox("Error", "Cannot write /etc/fstab", - 12, 40, 1); - return; - } - fprintf(f, "%s / ext2 defaults 1 1\n", install_partition); - fprintf(f, "none /proc proc defaults 0 2\n"); - /* XXX write swap-partitions */ - fclose(f); -#endif -} - -static void -install_premounted(void) -{ - extract_packages(""); -} - -static void -install_harddisk(void) -{ - const char *name; - int part, ret; - - if ((part = select_source_partition()) <= -1) - return; - name = partitions[part].name; - - if (my_system("mount -t ext2 %s /source %s", name, null)) - return; - ret = dialog_inputbox("Path in partition", - "Please enter the directory in which the " - "source files are.", 13, 50, "", FALSE); - dialog_clear(); - if (ret != 0) - return; - /* XXX strdup */ - extract_packages(strdup(dialog_input_result)); - if (my_system("umount /source %s", null)) - return; -} - -static void -install_nfs(void) -{ - if (my_system("ifconfig eth0 134.96.81.36 netmask 255.255.255.224 " - "broadcast 134.96.81.63 %s", null)) - return; - if (my_system("route add -net 134.96.81.32 %s", null)) - return; - if (my_system("mount -t nfs 134.96.81.38:" - "/local/ftp/pub/linux/ELF.binary/tar /source %s", null)) - return; - extract_packages("/base"); - if (my_system("umount /source %s", null)) - return; - if (my_system("ifconfig eth0 down %s", null)) - return; -} - -static void -main_install(void) -{ - int part, ret; - const char *name; - char *items1[] = - { - "1", "Harddisk Install", - "2", "Network Install(NFS)", - "3", "Premounted on /source" - }; - - if (num_linux == 0) { - /* XXX */ - return; - } - if ((part = select_install_partition()) <= -1) - return; - install_partition = name = partitions[part].name; - if (my_system("mke2fs %s %s", name, null)) - return; - if (my_system("mount -t ext2 %s /install %s", name, null)) - return; - ret = dialog_menu("Choose install medium", - "\\nPlease say from where you want to install.\\n", - 12, 62, 3, 3, items1); - dialog_clear(); - switch (ret) { - case 0: - install_harddisk(); - break; - case 1: - install_nfs(); - break; - case 2: - install_premounted(); - break; - case -2: /* cancel */ - case -1: - break; /* esc */ - } - if (my_system("umount /install %s", null)) - return; -} - -int -main(int argc, char **argv) -{ - int stop = 0; - int ret; - char *items1[] = - { - "1", "Display a help text", - "2", "Start an installation", - "3", "Exit to the shell" - }; - - progname = argv[0]; - - read_partitions(); - if (num_linux == 0) { - printf("\n\nPlease start \"fdisk\" or \"cfdisk\" and create a" - "\nnative Linux-partition to install Linux on.\n\n"); - exit(1); - } - - init_dialog(); - - while (!stop) { - ret = dialog_menu("Linux Install Utility", - "\\nCopyright (C) 1995 Florian La Roche\\n" - "\\nPre-Alpha version, be careful, read the doc!!!" - "\\nemail: florian@jurix.jura.uni-sb.de, " - "flla@stud.uni-sb.de\\n", - 15, 64, 3, 3, items1); - dialog_clear(); - switch (ret) { - case 0: - ret = dialog_textbox("Help Text", - "setup.help", 20, 70); - dialog_clear(); - break; - case 1: - main_install(); - break; - case 2: - stop = 1; - break; - case -2: /* cancel */ - case -1: - stop = 1; /* esc */ - } - } - end_dialog(); - printf("\nExecute \"reboot\" to restart your computer...\n"); - - exit(0); -} diff --git a/contrib/dialog/samples/install/setup.help b/contrib/dialog/samples/install/setup.help deleted file mode 100644 index 614fef41ed82..000000000000 --- a/contrib/dialog/samples/install/setup.help +++ /dev/null @@ -1,49 +0,0 @@ -At the moment, only installation from a harddisk -is supported. All commands are shown to you on -the screen before executing. This is just to make -sure that nothing bad is done to your harddisk :-) - -You can also select to install from a premounted dir. -Then the "tar/base" directory must be mounted on -"/install", so that all tar-packages from the basic -stuff are in "/install/*.tgz". (So you could be able -to install via NFS...) - -Good luck..., -anyone wants to help programming this tool?, - -Florian La Roche - -Contents: -========= -- overview about what "setup" does. -- creating a Linux-partition before starting "setup" -- about lilo -- how to use "setup", what keys are supported - -What does "setup" do on my computer? -==================================== -Setup will ask you for a partition on your harddisk, -where you would like to have Linux installed. -You can then choose to install this distribution from -your local harddisk or via network (NFS). -setup will install a very basic system. -At the end, you can install lilo, the Linux Loader. -Rebooting your computer with this little linux system -and then running the setup-program on it, will give -the possibility to install more packages. - -Creating a Linux-partition: -=========================== -To install this Linux distribution, you need to -create an extra partition on your harddisk for -Linux. - -What is lilo and how should I install it? -========================================= -Read the lilo-documentation for this... - - - -Florian La Roche - diff --git a/contrib/dialog/samples/killall b/contrib/dialog/samples/killall deleted file mode 100755 index f8d573babdb6..000000000000 --- a/contrib/dialog/samples/killall +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh -# $Id: killall,v 1.4 2019/12/10 23:48:58 tom Exp $ -# Linux has a program that does this correctly. - -. ./setup-vars - -for prog in "$@" -do - pid=`ps -a |fgrep "$prog" |fgrep -v fgrep|sed -e 's/^[ ]*//' -e 's/ .*//' ` - if test -n "$pid" ; then - echo "killing pid=$pid, $prog" - kill "-$SIG_HUP" "$pid" || \ - kill "-$SIG_TERM" "$pid" || \ - kill "-$SIG_KILL" "$pid" - fi -done diff --git a/contrib/dialog/samples/listing b/contrib/dialog/samples/listing deleted file mode 100755 index 71d85aa6df9a..000000000000 --- a/contrib/dialog/samples/listing +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# $Id: listing,v 1.2 2007/05/28 12:40:36 tom Exp $ -while true -do -ls -lrt -date -sleep 1 -done diff --git a/contrib/dialog/samples/menubox b/contrib/dialog/samples/menubox deleted file mode 100755 index 4a0118dc13f6..000000000000 --- a/contrib/dialog/samples/menubox +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: menubox,v 1.13 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" \ - "NetBSD" "Another free Unix Clone for 386/486" \ - "OS/2" "IBM OS/2" \ - "WIN NT" "Microsoft Windows NT" \ - "PC-DOS" "IBM PC DOS" \ - "MS-DOS" "Microsoft DOS" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox-8bit b/contrib/dialog/samples/menubox-8bit deleted file mode 100755 index 69b6bc712a52..000000000000 --- a/contrib/dialog/samples/menubox-8bit +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# $Id: menubox-8bit,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./testdata-8bit - -$DIALOG --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "`./rotated-data 0 "$SAMPLE"`" "The Great Unix Clone for 386/486" \ - "`./rotated-data 1 "$SAMPLE"`" "Another free Unix Clone for 386/486" \ - "`./rotated-data 2 "$SAMPLE"`" "IBM OS/2" \ - "`./rotated-data 3 "$SAMPLE"`" "Microsoft Windows NT" \ - "`./rotated-data 4 "$SAMPLE"`" "IBM PC DOS" \ - "`./rotated-data 5 "$SAMPLE"`" "Microsoft DOS" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox-utf8 b/contrib/dialog/samples/menubox-utf8 deleted file mode 100755 index 4c7f45a34b9e..000000000000 --- a/contrib/dialog/samples/menubox-utf8 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# $Id: menubox-utf8,v 1.11 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -. ./setup-utf8 - -$DIALOG --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" \ - "NetBSD" "Another free Unix Clone for 386/486" \ - "OS/2" "IBM OS/2" \ - "WIN NT" "Microsoft Windows NT" \ - "PCDOS" "IBM PC DOS" \ - "MSDOS" "Microsoft DOS" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox1 b/contrib/dialog/samples/menubox1 deleted file mode 100755 index 9df5ca3c0ec5..000000000000 --- a/contrib/dialog/samples/menubox1 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: menubox1,v 1.9 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --default-item "OS/2" --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" \ - "NetBSD" "Another free Unix Clone for 386/486" \ - "OS/2" "IBM OS/2" \ - "WIN NT" "Microsoft Windows NT" \ - "PC-DOS" "IBM PC DOS" \ - "MS-DOS" "Microsoft DOS" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox10 b/contrib/dialog/samples/menubox10 deleted file mode 100755 index 1152223c4ccf..000000000000 --- a/contrib/dialog/samples/menubox10 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: menubox10,v 1.7 2020/11/26 00:09:12 tom Exp $ -# zero-width column - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --backtitle "Debian Configuration" \ - --title "Configuring debconf" \ - --default-item Dialog "$@" \ - --menu "Packages that use debconf for co" 19 50 6 \ - Dialog "" \ - Readline "" \ - Gnome "" \ - Kde "" \ - Editor "" \ - Noninteractive "" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/menubox11 b/contrib/dialog/samples/menubox11 deleted file mode 100755 index 9bd7960582c1..000000000000 --- a/contrib/dialog/samples/menubox11 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# $Id: menubox11,v 1.4 2020/11/26 00:09:12 tom Exp $ -# zero-width column - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --backtitle "Debian Configuration" \ - --title "Configuring debconf" \ - --default-item Dialog "$@" \ - --menu "Packages that use debconf for configuration share a common look and feel. You can -select the type of user interface they use. -\n\n\ -The dialog frontend is a full-screen, character based interface, while the readline -frontend uses a more traditional plain text interface, and both the gnome and kde -frontends are modern X interfaces, fitting the respective desktops (but may be used -in any X environment). The editor frontend lets you configure things using your -favorite text editor. The noninteractive frontend never asks you any questions. -\n\n\ -Interface to use:" 0 0 6 \ - Dialog "" \ - Readline "" \ - Gnome "" \ - Kde "" \ - Editor "" \ - Noninteractive "" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/menubox12 b/contrib/dialog/samples/menubox12 deleted file mode 100755 index 6723c0574425..000000000000 --- a/contrib/dialog/samples/menubox12 +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# $Id: menubox12,v 1.6 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-edit - -case "x$DIALOGOPTS" in -*--no-items*|*--noitem*) - CUT="cut -d: -f1,3" - ;; -*) - CUT="cat" - ;; -esac - -$CUT >$input <<-EOF - Linux:The Great Unix Clone for 386/486 - NetBSD:Another free Unix Clone for 386/486 - OS/2:IBM OS/2 - WIN NT:Microsoft Windows NT - PC-DOS:IBM PC DOS - MS-DOS:Microsoft DOS -EOF -sed -e 's/^/"/' -e 's/:/" "/g' -e 's/$/"/' <$input >$output -cat $output >$input - -$DIALOG --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - --file $input 2> $output - -returncode=$? - -tempfile=$output -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox2 b/contrib/dialog/samples/menubox2 deleted file mode 100755 index 5ab68cca3d3a..000000000000 --- a/contrib/dialog/samples/menubox2 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: menubox2,v 1.9 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --default-item "MS-DOS" --clear --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" \ - "NetBSD" "Another free Unix Clone for 386/486" \ - "OS/2" "IBM OS/2" \ - "WIN NT" "Microsoft Windows NT" \ - "PC-DOS" "IBM PC DOS" \ - "MS-DOS" "Microsoft DOS" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox3 b/contrib/dialog/samples/menubox3 deleted file mode 100755 index 2f03505b5c2e..000000000000 --- a/contrib/dialog/samples/menubox3 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: menubox3,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --item-help --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" "Why use Linux?" \ - "NetBSD" "Another free Unix Clone for 386/486" "Or NetBSD?" \ - "OS/2" "IBM OS/2" "aka \"Warp\"" \ - "WIN NT" "Microsoft Windows NT" "hmm" \ - "PC-DOS" "IBM PC DOS" "clone of a clone" \ - "MS-DOS" "Microsoft DOS" "DOS: Disk Operating System, originally for an IBM contract, hence using the same jargon" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox4 b/contrib/dialog/samples/menubox4 deleted file mode 100755 index a0b2f6bab682..000000000000 --- a/contrib/dialog/samples/menubox4 +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: menubox4,v 1.10 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --item-help --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "Why use Linux?" \ - "NetBSD" "Another free Unix Clone for 386/486 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "Or NetBSD?" \ - "OS/2" "IBM OS/2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "aka \"Warp\"" \ - "WIN NT" "Microsoft Windows NT xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "hmm" \ - "PC-DOS" "IBM PC DOS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "clone of a clone" \ - "MS-DOS" "Microsoft DOS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "DOS: Disk Operating System, originally for an IBM contract, hence using the same jargon" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox5 b/contrib/dialog/samples/menubox5 deleted file mode 100755 index 0ee6bd414d9a..000000000000 --- a/contrib/dialog/samples/menubox5 +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# $Id: menubox5,v 1.11 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --help-button --item-help --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "Why use Linux?" \ - "NetBSD" "Another free Unix Clone for 386/486 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "Or NetBSD?" \ - "OS/2" "IBM OS/2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "aka \"Warp\"" \ - "WIN NT" "Microsoft Windows NT xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "hmm" \ - "WIN 2K" "Microsoft Windows 2000 xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "hmm" \ - "WIN XP" "Microsoft Windows XP (son of Windows 95) xxxxxxxxxx" "hmm" \ - "WIN 95" "Microsoft Windows 95 (son of MS-DOS) xxxxxxxxxxxxxx" "hmm" \ - "PC-DOS" "IBM PC DOS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "clone of a clone" \ - "MS-DOS" "Microsoft DOS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "DOS: Disk Operating System, originally for an IBM contract, hence using the same jargon" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox6 b/contrib/dialog/samples/menubox6 deleted file mode 100755 index a1b43d61bcb8..000000000000 --- a/contrib/dialog/samples/menubox6 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# $Id: menubox6,v 1.10 2020/11/26 00:03:58 tom Exp $ -# example showing the --colors option - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --item-help --title "MENU BOX" --colors "$@" \ - --menu "Hi, this is a \Zumenu\Zn box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the \Z4UP/DOWN\Zn arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -\Z2number\Zn keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for \Zu386/486" "Why use \ZbLinux?" \ - "NetBSD" "Another free Unix Clone for \Zu386/486" "Or \ZbNetBSD?" \ - "OS/2" "IBM OS/2" "aka \"Warp\"" \ - "WIN NT" "Microsoft Windows NT" "hmm" \ - "PC-DOS" "IBM PC \ZrDOS" "clone of a clone" \ - "MS-DOS" "Microsoft \ZrDOS" "\ZbDOS\Zn: \Zb\Z3D\Znisk \Zb\Z3O\Znperating \Zb\Z3S\Znystem, originally for an IBM contract, hence using the same jargon" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox7 b/contrib/dialog/samples/menubox7 deleted file mode 100755 index 421943bfcf80..000000000000 --- a/contrib/dialog/samples/menubox7 +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# $Id: menubox7,v 1.11 2020/11/26 00:03:58 tom Exp $ -# example with --extra-button - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --clear --item-help --extra-button --extra-label "Choice" \ - --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" "Why use Linux?" \ - "NetBSD" "Another free Unix Clone for 386/486" "Or NetBSD?" \ - "OS/2" "IBM OS/2" "aka \"Warp\"" \ - "WIN NT" "Microsoft Windows NT" "hmm" \ - "PC-DOS" "IBM PC DOS" "clone of a clone" \ - "MS-DOS" "Microsoft DOS" "DOS: Disk Operating System, originally for an IBM contract, hence using the same jargon" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/menubox8 b/contrib/dialog/samples/menubox8 deleted file mode 100755 index eb90de0c8f9c..000000000000 --- a/contrib/dialog/samples/menubox8 +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# $Id: menubox8,v 1.10 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --help-button \ - --default-item "MS-DOS" \ - --clear \ - --title "MENU BOX" "$@" \ - --menu "Hi, this is a menu box. You can use this to \n\ -present a list of choices for the user to \n\ -choose. If there are more items than can fit \n\ -on the screen, the menu will be scrolled. \n\ -You can use the UP/DOWN arrow keys, the first \n\ -letter of the choice as a hot key, or the \n\ -number keys 1-9 to choose an option.\n\ -Try it now!\n\n\ - Choose the OS you like:" 20 51 4 \ - "Linux" "The Great Unix Clone for 386/486" \ - "NetBSD" "Another free Unix Clone for 386/486" \ - "OS/2" "IBM OS/2" \ - "WIN NT" "Microsoft Windows NT" \ - "PC-DOS" "IBM PC DOS" \ - "MS-DOS" "Microsoft DOS" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/menubox9 b/contrib/dialog/samples/menubox9 deleted file mode 100755 index 5f0c8e9104ec..000000000000 --- a/contrib/dialog/samples/menubox9 +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# $Id: menubox9,v 1.8 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --help-button \ - --clear \ - --title "Select Linux installation partition:" "$@" \ - --menu \ -"Please select a partition from the following list to use for your \ -root (/) Linux partition." 13 70 5 \ -"/dev/hda2" "Linux native 30724312K" \ -"/dev/hda4" "Linux native 506047K" \ -"/dev/hdb1" "Linux native 4096543K" \ -"/dev/hdb2" "Linux native 2586465K" \ -"---" "(add none, continue with setup)" \ -"---" "(add none, continue with setup)" \ -"---" "(add none, continue with setup)" \ -"---" "(add none, continue with setup)" \ -"---" "(add none, continue with setup)" \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/mixedform b/contrib/dialog/samples/mixedform deleted file mode 100755 index ac4d625e5992..000000000000 --- a/contrib/dialog/samples/mixedform +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh -# $Id: mixedform,v 1.9 2020/11/26 00:27:07 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --mixedform:" -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -returncode=$? -exec 3>&1 -returntext=`$DIALOG --title "Mixed form demonstration" --ok-label "Submit" \ - --backtitle "$backtitle" \ - --insecure "$@" \ - --mixedform "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username :" 1 1 "Kiran" 1 20 10 0 2 \ - "Password :" 2 1 "" 2 20 8 0 1 \ - "Retype Password :" 3 1 "" 3 20 8 0 1 \ - "HOME :" 4 1 "Cisco" 4 20 40 0 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/mixedform2 b/contrib/dialog/samples/mixedform2 deleted file mode 100755 index 6a8f554c5dda..000000000000 --- a/contrib/dialog/samples/mixedform2 +++ /dev/null @@ -1,53 +0,0 @@ -#! /bin/sh -# $Id: mixedform2,v 1.8 2020/11/26 00:26:50 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --mixedform:" -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -returncode=$? -exec 3>&1 -returntext=`$DIALOG --title "Mixed form demonstration" --ok-label "Submit" \ - --backtitle "$backtitle" \ - --insecure "$@" \ - --mixedform "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username :" 1 1 "Kiran" 1 20 10 0 2 \ - "Password :" 2 1 "pass" 2 20 8 0 3 \ - "Retype Password :" 3 1 "pass" 3 20 8 0 3 \ - "HOME :" 4 1 "Cisco" 4 20 40 0 2 \ -2>&1 1>&3` -returncode=$? -exec 3>&- -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/mixedgauge b/contrib/dialog/samples/mixedgauge deleted file mode 100755 index 517ba1134ce6..000000000000 --- a/contrib/dialog/samples/mixedgauge +++ /dev/null @@ -1,26 +0,0 @@ -#! /bin/sh -# $Id: mixedgauge,v 1.7 2010/01/13 10:20:03 tom Exp $ - -. ./setup-vars - -background="An Example of --mixedgauge usage" - -for i in 5 10 20 30 40 50 60 70 80 90 100 -do -$DIALOG --backtitle "$background" \ - --title "Mixed gauge demonstration" "$@" \ - --mixedgauge "This is a prompt message,\nand this is the second line." \ - 0 0 33 \ - "Process one" "0" \ - "Process two" "1" \ - "Process three" "2" \ - "Process four" "3" \ - "" "8" \ - "Process five" "5" \ - "Process six" "6" \ - "Process seven" "7" \ - "Process eight" "4" \ - "Process nine" "-$i" -# break -sleep 1 -done diff --git a/contrib/dialog/samples/msgbox b/contrib/dialog/samples/msgbox deleted file mode 100755 index 7196e334166d..000000000000 --- a/contrib/dialog/samples/msgbox +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# $Id: msgbox,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -$DIALOG --title "MESSAGE BOX" --clear "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to \ - display any message you like. The box will remain until \ - you press the ENTER key." 10 41 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/msgbox-help b/contrib/dialog/samples/msgbox-help deleted file mode 100755 index 8f46b7ca7a4a..000000000000 --- a/contrib/dialog/samples/msgbox-help +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# $Id: msgbox-help,v 1.7 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -$DIALOG --title "MESSAGE BOX" --clear \ - --help-button "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to \ - display any message you like. The box will remain until \ - you press the ENTER key." 10 41 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/msgbox-utf8 b/contrib/dialog/samples/msgbox-utf8 deleted file mode 100755 index df3af7f7b1bd..000000000000 --- a/contrib/dialog/samples/msgbox-utf8 +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# $Id: msgbox-utf8,v 1.2 2020/11/26 00:03:58 tom Exp $ -# from Debian #570634 - -. ./setup-vars - -. ./setup-utf8 - -${DIALOG-dialog} "$@" \ - --title "ทดสอบวรรณยุกต์" \ - --msgbox "วรรณยุกต์อยู่ท้ายบรรทัดได้หรือไม่" 8 23 -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/msgbox1 b/contrib/dialog/samples/msgbox1 deleted file mode 100755 index adc811f7b10e..000000000000 --- a/contrib/dialog/samples/msgbox1 +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# $Id: msgbox1,v 1.11 2019/12/11 01:56:43 tom Exp $ - -. ./setup-vars - -$DIALOG --title "MESSAGE BOX" --clear "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with dialogs default aspect ratio of 9." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 12 --title "MESSAGE BOX aspect=12" --clear "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with an aspect ratio of 12." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 6 --title "MESSAGE BOX aspect=6" --clear "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with an aspect ratio of 6." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 6 --cr-wrap --title "MESSAGE BOX aspect=6 with --cr-wrap" \ - --clear "$@" --msgbox " \ - Hi, this is a simple - message box. You can - use this to display any - message you like. -The box will remain until you press the ENTER key. This box is being displayed with an aspect ratio of 6, and using --cr-wrap.\n" 0 0 -test $? = "$DIALOG_ESC" && exit diff --git a/contrib/dialog/samples/msgbox2 b/contrib/dialog/samples/msgbox2 deleted file mode 100755 index f3bbb0410aa1..000000000000 --- a/contrib/dialog/samples/msgbox2 +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# $Id: msgbox2,v 1.9 2019/12/11 01:56:17 tom Exp $ - -. ./setup-vars - -$DIALOG --title "MESSAGE BOX" --trim "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with dialogs default aspect ratio of 9." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 12 --title "MESSAGE BOX aspect=12" --trim "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with an aspect ratio of 12." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 6 --title "MESSAGE BOX aspect=6" --trim "$@" \ - --msgbox "Hi, this is a simple message box. You can use this to - display any message you like. The box will remain until - you press the ENTER key. This box is being displayed - with an aspect ratio of 6." 0 0 -test $? = "$DIALOG_ESC" && exit - -$DIALOG --aspect 6 --cr-wrap --title "MESSAGE BOX aspect=6 with --cr-wrap" \ - --trim "$@" --msgbox " \ - Hi, this is a simple - message box. You can - use this to display any - message you like. -The box will remain until you press the ENTER key. This box is being displayed with an aspect ratio of 6, and using --cr-wrap.\n" 0 0 -test $? = "$DIALOG_ESC" && exit diff --git a/contrib/dialog/samples/msgbox3 b/contrib/dialog/samples/msgbox3 deleted file mode 100755 index 0157b1e14568..000000000000 --- a/contrib/dialog/samples/msgbox3 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: msgbox3,v 1.8 2019/12/11 00:03:44 tom Exp $ - -. ./setup-vars - -width=35 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --clear --no-collapse "$@" \ - --msgbox "\ - H H EEEEE L L OOO - H H E L L O O - HHHHH EEEEE L L O O - H H E L L O O - H H EEEEE LLLLL LLLLL OOO - -Hi, this is a simple message box. You can use this to \ -display any message you like. The box will remain until \ -you press the ENTER key." 15 $width -test $? = "$DIALOG_ESC" && break -width=`expr $width + 1` -done diff --git a/contrib/dialog/samples/msgbox4-8bit b/contrib/dialog/samples/msgbox4-8bit deleted file mode 100755 index ba703c6134b6..000000000000 --- a/contrib/dialog/samples/msgbox4-8bit +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# $Id: msgbox4-8bit,v 1.8 2020/11/26 00:26:09 tom Exp $ - -. ./setup-vars - -. ./testdata-8bit - -width=30 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --no-collapse --colors "$@" \ - --msgbox "\ -This sample uses characters which are non-printing in POSIX locale. - -\Z1`./rotated-data 0 "$SAMPLE"` \Z2`./rotated-data 1 "$SAMPLE"` \Z3`./rotated-data 2 "$SAMPLE"` \Z4`./rotated-data 3 "$SAMPLE"`\Zn - -Hi, this is a simple message box. You can use this to \ -display any message you like. The box will remain until \ -you press the ENTER key." 22 $width -returncode=$? - -case $returncode in - $DIALOG_OK) - ;; - *) - . ./report-button; - exit - ;; -esac - -width=`expr $width + 1` - -done diff --git a/contrib/dialog/samples/msgbox4-eucjp b/contrib/dialog/samples/msgbox4-eucjp deleted file mode 100755 index 9969c0824534..000000000000 --- a/contrib/dialog/samples/msgbox4-eucjp +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# $Id: msgbox4-eucjp,v 1.5 2010/01/13 10:20:03 tom Exp $ - -. ./setup-vars - -width=35 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --clear --no-collapse "$@" \ - --msgbox "\ -This sample is written in EUC-JP. -There are several checking points: -(1) whether the fullwidth characters are displayed well or not, -(2) whether the width of characters are evaluated properly, and -(3) whether the character at line-folding is lost or not. - -¤¢¤¤¤¦¤¨¤ª¤«¤­¤¯¤±¤³¤µ¤·¤¹¤»¤½¤¿¤Á¤ĤƤȤʤˤ̤ͤÎ -£±£²£³£´£µ£¶£·£¸£¹£°£±£²£³£´£µ£¶£·£¸£¹£°£±£²£³£´£µ -£Á££ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأÙ - -Hi, this is a simple message box. You can use this to \ -display any message you like. The box will remain until \ -you press the ENTER key." 22 $width -width=`expr $width + 1` -done diff --git a/contrib/dialog/samples/msgbox4-utf8 b/contrib/dialog/samples/msgbox4-utf8 deleted file mode 100755 index 00ac0698ff8b..000000000000 --- a/contrib/dialog/samples/msgbox4-utf8 +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# $Id: msgbox4-utf8,v 1.13 2020/11/26 00:25:37 tom Exp $ - -. ./setup-vars - -. ./setup-utf8 - -width=30 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --no-collapse "$@" \ - --msgbox "\ -This sample is written in UTF-8. -There are several checking points: -(1) whether the fullwidth characters are displayed well or not, -(2) whether the width of characters are evaluated properly, and -(3) whether the character at line-folding is lost or not. - -あいうえおかきくけこさしすせそたちつてとなにぬねの -1234567890123456789012345 -ABCDEFGHIJKLMNOPQRSTUVWXY - -Hi, this is a simple message box. You can use this to \ -display any message you like. The box will remain until \ -you press the ENTER key." 22 $width -returncode=$? - -case $returncode in - $DIALOG_OK) - ;; - *) - . ./report-button; - exit - ;; -esac - -width=`expr $width + 1` - -done diff --git a/contrib/dialog/samples/msgbox5 b/contrib/dialog/samples/msgbox5 deleted file mode 100755 index e91dbe87f9c3..000000000000 --- a/contrib/dialog/samples/msgbox5 +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# $Id: msgbox5,v 1.6 2019/12/11 00:03:34 tom Exp $ -# this differs from msgbox3 by making a window small enough to force scrolling. - -. ./setup-vars - -width=35 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --clear --no-collapse "$@" \ - --msgbox "\ - H H EEEEE L L OOO - H H E L L O O - HHHHH EEEEE L L O O - H H E L L O O - H H EEEEE LLLLL LLLLL OOO - -Hi, this is a simple message box. You can use this to \ -display any message you like. The box will remain until \ -you press the ENTER key." 10 $width -test $? = "$DIALOG_ESC" && break -width=`expr $width + 1` -done diff --git a/contrib/dialog/samples/msgbox6 b/contrib/dialog/samples/msgbox6 deleted file mode 100755 index e2f22cb7d731..000000000000 --- a/contrib/dialog/samples/msgbox6 +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# $Id: msgbox6,v 1.6 2019/12/11 00:03:24 tom Exp $ -# this differs from msgbox3 by making a window small enough to force scrolling. - -. ./setup-vars - -width=35 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --clear "$@" \ - --msgbox "\ - a b c d e f g h j i j k l m n o p q r s t u v w x y z - A B C D E F G H J I J K L M N O P Q R S T U V W X Y Z -" 10 $width -test $? = "$DIALOG_ESC" && break -width=`expr $width + 1` -done diff --git a/contrib/dialog/samples/msgbox6a b/contrib/dialog/samples/msgbox6a deleted file mode 100755 index cbbfb6034ccf..000000000000 --- a/contrib/dialog/samples/msgbox6a +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# $Id: msgbox6a,v 1.6 2019/12/11 00:03:14 tom Exp $ -# this differs from msgbox3 by making a window small enough to force scrolling. - -. ./setup-vars - -width=35 -while test $width != 61 -do -$DIALOG --title "MESSAGE BOX (width $width)" --clear "$@" \ - --msgbox "\ - .a .b .c .d .e .f .g .h .j .i .j .k .l .m .n .o .p .q .r .s .t .u .v .w .x .y .z - .A .B .C .D .E .F .G .H .J .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z -" 10 $width -test $? = "$DIALOG_ESC" && break -width=`expr $width + 1` -done diff --git a/contrib/dialog/samples/password b/contrib/dialog/samples/password deleted file mode 100755 index 57b73bc04683..000000000000 --- a/contrib/dialog/samples/password +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: password,v 1.8 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear "$@" \ - --passwordbox "Hi, this is an password dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/password1 b/contrib/dialog/samples/password1 deleted file mode 100755 index c173e82384dc..000000000000 --- a/contrib/dialog/samples/password1 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: password1,v 1.7 2020/11/26 00:03:58 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear \ - --insecure "$@" \ - --passwordbox "Hi, this is an password dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/password2 b/contrib/dialog/samples/password2 deleted file mode 100755 index 07a8c00afa2a..000000000000 --- a/contrib/dialog/samples/password2 +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: password2,v 1.7 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "INPUT BOX" --clear \ - --insecure "$@" \ - --passwordbox "Hi, this is an password dialog box. You can use \n -this to ask questions that require the user \n -to input a string as the answer. You can \n -input strings of length longer than the \n -width of the input box, in that case, the \n -input field will be automatically scrolled. \n -You can use BACKSPACE to correct errors. \n\n -Try entering your name below:" 16 51 stupid 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/passwordform1 b/contrib/dialog/samples/passwordform1 deleted file mode 100755 index 07422e139d84..000000000000 --- a/contrib/dialog/samples/passwordform1 +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id: passwordform1,v 1.8 2020/11/26 00:23:09 tom Exp $ - -. ./setup-vars - -backtitle="An Example for the use of --form:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="$USER" -home="$HOME" - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --backtitle "$backtitle" \ - --insecure "$@" \ - --passwordform "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/passwordform1-utf8 b/contrib/dialog/samples/passwordform1-utf8 deleted file mode 100755 index b1cfb59de083..000000000000 --- a/contrib/dialog/samples/passwordform1-utf8 +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/sh -# $Id: passwordform1-utf8,v 1.10 2020/11/26 00:22:47 tom Exp $ - -. ./setup-vars - -. ./setup-utf8 - -backtitle="An Example for the use of --passwordform:" - -ids=`id|sed -e 's/([^)]*)//g'` -uid=`echo "$ids" | sed -e 's/^uid=//' -e 's/ .*//'` -gid=`echo "$ids" | sed -e 's/^.* gid=//' -e 's/ .*//'` - -user="DOG" -home=/usr/home/$user - -returncode=0 -while test $returncode != 1 && test $returncode != 250 -do -exec 3>&1 -returntext=`$DIALOG --ok-label "Submit" \ - --backtitle "$backtitle" \ - --insecure "$@" \ - --passwordform "Here is a possible piece of a configuration program." \ -20 50 0 \ - "Username:" 1 1 "$user" 1 10 10 0 \ - "UID:" 2 1 "$uid" 2 10 8 0 \ - "GID:" 3 1 "$gid" 3 10 8 0 \ - "HOME:" 4 1 "$home" 4 10 40 0 \ -2>&1 1>&3` -returncode=$? -exec 3>&- - -show=`echo "$returntext" |sed -e 's/^/ /'` - - case $returncode in - $DIALOG_CANCEL) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" \ - --yesno "Really quit?" 10 30 - case $? in - $DIALOG_OK) - break - ;; - $DIALOG_CANCEL) - returncode=99 - ;; - esac - ;; - $DIALOG_OK) - "$DIALOG" \ - --clear \ - --backtitle "$backtitle" --no-collapse --cr-wrap \ - --msgbox "Resulting data:\n\ -$show" 10 40 - ;; - *) - . ./report-button - exit - ;; - esac -done diff --git a/contrib/dialog/samples/pause b/contrib/dialog/samples/pause deleted file mode 100755 index c524244843c4..000000000000 --- a/contrib/dialog/samples/pause +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# $Id: pause,v 1.6 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PAUSE" "$@" --pause "Hi, this is a pause widget" 20 70 10 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/pause-both b/contrib/dialog/samples/pause-both deleted file mode 100755 index 5e7564f58578..000000000000 --- a/contrib/dialog/samples/pause-both +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# $Id: pause-both,v 1.2 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PAUSE" \ - --help-button \ - --extra-button "$@" \ - --pause "Hi, this is a pause widget" 20 70 10 - -returncode=$? -echo return $returncode - -. ./report-button diff --git a/contrib/dialog/samples/pause-extra b/contrib/dialog/samples/pause-extra deleted file mode 100755 index a5e366d79d93..000000000000 --- a/contrib/dialog/samples/pause-extra +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# $Id: pause-extra,v 1.2 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PAUSE" \ - --extra-button "$@" \ - --pause "Hi, this is a pause widget" 20 70 10 - -returncode=$? -echo return $returncode - -. ./report-button diff --git a/contrib/dialog/samples/pause-help b/contrib/dialog/samples/pause-help deleted file mode 100755 index 6d45753da520..000000000000 --- a/contrib/dialog/samples/pause-help +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# $Id: pause-help,v 1.6 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PAUSE" \ - --help-button "$@" \ - --pause "Hi, this is a pause widget" 20 70 10 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/prgbox b/contrib/dialog/samples/prgbox deleted file mode 100755 index d830e79e878a..000000000000 --- a/contrib/dialog/samples/prgbox +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: prgbox,v 1.3 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist" 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/prgbox2 b/contrib/dialog/samples/prgbox2 deleted file mode 100755 index 12239ce2ae0d..000000000000 --- a/contrib/dialog/samples/prgbox2 +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -# $Id: prgbox2,v 1.3 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist 3" 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/programbox b/contrib/dialog/samples/programbox deleted file mode 100755 index bc6421bf19e2..000000000000 --- a/contrib/dialog/samples/programbox +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: programbox,v 1.4 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -ls -1 >$tempfile -( -while true -do -read text -test -z "$text" && break -ls -ld "$text" || break -sleep 0.1 -done <$tempfile -) | - -$DIALOG --title "PROGRAMBOX" "$@" --programbox 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/programbox2 b/contrib/dialog/samples/programbox2 deleted file mode 100755 index fe1c826e0f05..000000000000 --- a/contrib/dialog/samples/programbox2 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: programbox2,v 1.4 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -ls -1 >$tempfile -( -while true -do -read text -test -z "$text" && break -ls -ld "$text" || break -sleep 0.1 -done <$tempfile -) | - -$DIALOG --title "PROGRAMBOX" "$@" --programbox "ProgramBox" 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/programbox3 b/contrib/dialog/samples/programbox3 deleted file mode 100755 index 1dc020c3d222..000000000000 --- a/contrib/dialog/samples/programbox3 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: programbox3,v 1.2 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -ls -1 >$tempfile -( -while true -do -read text -test -z "$text" && break -ls -ld "$text" || break -sleep 0.1 -done <$tempfile -) | - -$DIALOG --title "PROGRAMBOX" "$@" --programbox -1 -1 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/progress b/contrib/dialog/samples/progress deleted file mode 100755 index e2bbe1752397..000000000000 --- a/contrib/dialog/samples/progress +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: progress,v 1.8 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -ls -1 >$tempfile -( -while true -do -read text -test -z "$text" && break -ls -ld "$text" || break -sleep 1 -done <$tempfile -) | - -$DIALOG --title "PROGRESS" "$@" --progressbox 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/progress2 b/contrib/dialog/samples/progress2 deleted file mode 100755 index f5d9e782bab0..000000000000 --- a/contrib/dialog/samples/progress2 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: progress2,v 1.8 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -ls -1 >$tempfile -( -while true -do -read text -test -z "$text" && break -ls -ld "$text" || break -sleep 1 -done <$tempfile -) | - -$DIALOG --title "PROGRESS" "$@" --progressbox "This is a detailed description\nof the progress-box." 20 70 - -returncode=$? -. ./report-button diff --git a/contrib/dialog/samples/radiolist b/contrib/dialog/samples/radiolist deleted file mode 100755 index 93068d166700..000000000000 --- a/contrib/dialog/samples/radiolist +++ /dev/null @@ -1,28 +0,0 @@ -#! /bin/sh -# $Id: radiolist,v 1.14 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --backtitle "No Such Organization" \ - --title "RADIOLIST BOX" --clear "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off \ - "Dog" "No, that's not my dog." ON \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "Normally not a pet." off \ - "Cat" "No, never put a dog and a cat together!" off \ - "Fish" "Cats like fish." off \ - "Lemon" "You know how it tastes." off 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/radiolist1 b/contrib/dialog/samples/radiolist1 deleted file mode 100755 index da7ad8b56631..000000000000 --- a/contrib/dialog/samples/radiolist1 +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# $Id: radiolist1,v 1.2 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --backtitle "No Such Organization" \ - --title "RADIOLIST BOX" --clear "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off \ - "Dog" "No, that's not my dog." ON \ - "Dog2" "No2, that's not my dog." off \ - "Dog3" "No3, that's not my dog." off \ - "Dog4" "No4, that's not my dog." off \ - "Dog5" "No5, that's not my dog." off \ - "Dog6" "No6, that's not my dog." off \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "Normally not a pet." off \ - "Cat" "No, never put a dog and a cat together!" off \ - "Fish" "Cats like fish." off \ - "Lemon" "You know how it tastes." off 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/radiolist10 b/contrib/dialog/samples/radiolist10 deleted file mode 100755 index 8e8f0d3463d9..000000000000 --- a/contrib/dialog/samples/radiolist10 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: radiolist10,v 1.7 2020/11/26 00:05:11 tom Exp $ -# zero-width column - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG \ - --backtitle "No such organization" \ - --title "RADIOLIST BOX" "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - Dialog "" on \ - Readline "" off \ - Gnome "" off \ - Kde "" off \ - Editor "" off \ - Noninteractive "" on \ - 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/radiolist2 b/contrib/dialog/samples/radiolist2 deleted file mode 100755 index 7ab31af59c9c..000000000000 --- a/contrib/dialog/samples/radiolist2 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: radiolist2,v 1.9 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --ok-label Okay \ - --cancel-label 'Give Up' \ - --backtitle "No Such Organization" \ - --title "RADIOLIST BOX" --clear "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off \ - "Dog" "No, that's not my dog." ON \ - "Orange" "Yeah, that's juicy." off \ - "Chicken" "Normally not a pet." off \ - "Cat" "No, never put a dog and a cat together!" off \ - "Fish" "Cats like fish." off \ - "Lemon" "You know how it tastes." off 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/radiolist3 b/contrib/dialog/samples/radiolist3 deleted file mode 100755 index a1fd02e45f5b..000000000000 --- a/contrib/dialog/samples/radiolist3 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: radiolist3,v 1.10 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --item-help --ok-label Okay \ - --cancel-label 'Give Up' \ - --backtitle "No Such Organization" \ - --title "RADIOLIST BOX" --clear "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off "Hint: this grows in a tree" \ - "Dog" "No, that's not my dog." ON "Hint: this likes trees" \ - "Orange" "Yeah, that's juicy." off "Hint: this is green when picked" \ - "Chicken" "Normally not a pet." off "Hint: not often in trees" \ - "Cat" "No, never put a dog and a cat together!" off "Hint: may be found in trees" \ - "Fish" "Cats like fish." off "Hint: usually not close to cats" \ - "Lemon" "You know how it tastes." off "Hint: like an orange" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/radiolist4 b/contrib/dialog/samples/radiolist4 deleted file mode 100755 index c2c47dca251b..000000000000 --- a/contrib/dialog/samples/radiolist4 +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# $Id: radiolist4,v 1.10 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --help-button --help-label "Hints" --item-help --ok-label Okay \ - --cancel-label 'Give Up' \ - --backtitle "No Such Organization" \ - --title "RADIOLIST BOX" --clear "$@" \ - --radiolist "Hi, this is a radiolist box. You can use this to \n\ -present a list of choices which can be turned on or \n\ -off. If there are more items than can fit on the \n\ -screen, the list will be scrolled. You can use the \n\ -UP/DOWN arrow keys, the first letter of the choice as a \n\ -hot key, or the number keys 1-9 to choose an option. \n\ -Press SPACE to toggle an option on/off. \n\n\ - Which of the following are fruits?" 20 61 5 \ - "Apple" "It's an apple." off "Hint: this grows in a tree" \ - "Dog" "No, that's not my dog." ON "Hint: this likes trees" \ - "Orange" "Yeah, that's juicy." off "Hint: this is green when picked" \ - "Chicken" "Normally not a pet." off "Hint: not often in trees" \ - "Cat" "No, never put a dog and a cat together!" off "Hint: may be found in trees" \ - "Fish" "Cats like fish." off "Hint: usually not close to cats" \ - "Lemon" "You know how it tastes." off "Hint: like an orange" 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/rangebox b/contrib/dialog/samples/rangebox deleted file mode 100755 index 962607d26c19..000000000000 --- a/contrib/dialog/samples/rangebox +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: rangebox,v 1.5 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "RANGE BOX" --rangebox "Please set the volume..." 0 60 0 123 5 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/rangebox2 b/contrib/dialog/samples/rangebox2 deleted file mode 100755 index 8a88dc05135a..000000000000 --- a/contrib/dialog/samples/rangebox2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: rangebox2,v 1.3 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "RANGE BOX" --rangebox "Please set the volume..." 0 60 0 6 5 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/rangebox3 b/contrib/dialog/samples/rangebox3 deleted file mode 100755 index b854d9fb0993..000000000000 --- a/contrib/dialog/samples/rangebox3 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: rangebox3,v 1.3 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "RANGE BOX" --rangebox "Please set the volume..." 0 60 -48 55 5 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/rangebox4 b/contrib/dialog/samples/rangebox4 deleted file mode 100755 index 0e05e9210f4b..000000000000 --- a/contrib/dialog/samples/rangebox4 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: rangebox4,v 1.3 2020/11/26 00:09:12 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "RANGE BOX" --rangebox "Please set the volume..." 0 60 10 100 5 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/report-button b/contrib/dialog/samples/report-button deleted file mode 100644 index 0976c96a9d83..000000000000 --- a/contrib/dialog/samples/report-button +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# $Id: report-button,v 1.8 2020/11/26 00:17:40 tom Exp $ -# Report button-only, no $returntext -# vile:shmode - -case ${returncode:-0} in - $DIALOG_OK) - echo "OK";; - $DIALOG_CANCEL) - echo "Cancel pressed.";; - $DIALOG_HELP) - echo "Help pressed.";; - $DIALOG_EXTRA) - echo "Extra button pressed.";; - $DIALOG_ITEM_HELP) - echo "Item-help button pressed.";; - $DIALOG_TIMEOUT) - echo "Timeout expired.";; - $DIALOG_ERROR) - echo "ERROR!";; - $DIALOG_ESC) - echo "ESC pressed.";; - *) - echo "Return code was $returncode";; -esac diff --git a/contrib/dialog/samples/report-edit b/contrib/dialog/samples/report-edit deleted file mode 100644 index d2343b9ff52a..000000000000 --- a/contrib/dialog/samples/report-edit +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# $Id: report-edit,v 1.8 2020/11/26 00:18:32 tom Exp $ -# Report results from editing. -# vile:shmode - -case ${returncode:-0} in - $DIALOG_OK) - diff -c "${input:-input}" "${output:-output}" - echo "OK" - ;; - $DIALOG_CANCEL) - echo "Cancel pressed";; - $DIALOG_HELP) - echo "Help pressed";; - $DIALOG_EXTRA) - echo "Extra pressed";; - $DIALOG_ITEM_HELP) - echo "Item-help button pressed.";; - $DIALOG_TIMEOUT) - echo "Timeout expired.";; - $DIALOG_ERROR) - echo "ERROR!";; - $DIALOG_ESC) - echo "ESC pressed.";; - *) - echo "Return code was $returncode";; -esac diff --git a/contrib/dialog/samples/report-string b/contrib/dialog/samples/report-string deleted file mode 100644 index e6ccb6433d2f..000000000000 --- a/contrib/dialog/samples/report-string +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# $Id: report-string,v 1.8 2020/11/26 00:18:32 tom Exp $ -# Report result passed in a string $returntext -# vile:shmode - -case ${returncode:-0} in - $DIALOG_OK) - echo "Result is $returntext";; - $DIALOG_CANCEL) - echo "Cancel pressed.";; - $DIALOG_HELP) - echo "Help pressed ($returntext).";; - $DIALOG_EXTRA) - echo "Extra button pressed.";; - $DIALOG_ITEM_HELP) - echo "Item-help button pressed.";; - $DIALOG_TIMEOUT) - echo "Timeout expired.";; - $DIALOG_ESC) - if test -n "$returntext" ; then - echo "$returntext" - else - echo "ESC pressed." - fi - ;; - *) - echo "Return code was $returncode";; -esac diff --git a/contrib/dialog/samples/report-tempfile b/contrib/dialog/samples/report-tempfile deleted file mode 100644 index c6f08c164523..000000000000 --- a/contrib/dialog/samples/report-tempfile +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -# $Id: report-tempfile,v 1.9 2020/11/26 00:18:32 tom Exp $ -# Report results in a temporary-file. -# vile:shmode - -case "${returncode:-0}" in - $DIALOG_OK) - echo "Result: `cat "$tempfile"`";; - $DIALOG_CANCEL) - echo "Cancel pressed.";; - $DIALOG_HELP) - echo "Help pressed: `cat "$tempfile"`";; - $DIALOG_EXTRA) - echo "Extra button pressed.";; - $DIALOG_ITEM_HELP) - echo "Item-help button pressed: `cat "$tempfile"`";; - $DIALOG_TIMEOUT) - echo "Timeout expired.";; - $DIALOG_ESC) - if test -s "$tempfile" ; then - cat "$tempfile" - else - echo "ESC pressed." - fi - ;; - *) - echo "Return code was $returncode";; -esac diff --git a/contrib/dialog/samples/report-yesno b/contrib/dialog/samples/report-yesno deleted file mode 100644 index cf15458e5782..000000000000 --- a/contrib/dialog/samples/report-yesno +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# $Id: report-yesno,v 1.7 2020/11/26 00:18:32 tom Exp $ -# Report button-only, no $returntext -# vile:shmode - -case ${returncode:-0} in - $DIALOG_OK) - echo "YES";; - $DIALOG_CANCEL) - echo "NO";; - $DIALOG_HELP) - echo "Help pressed.";; - $DIALOG_EXTRA) - echo "Extra button pressed.";; - $DIALOG_ITEM_HELP) - echo "Item-help button pressed.";; - $DIALOG_TIMEOUT) - echo "Timeout expired.";; - $DIALOG_ERROR) - echo "ERROR!";; - $DIALOG_ESC) - echo "ESC pressed.";; - *) - echo "Return code was $returncode";; -esac diff --git a/contrib/dialog/samples/rotated-data b/contrib/dialog/samples/rotated-data deleted file mode 100755 index 28e3f650f753..000000000000 --- a/contrib/dialog/samples/rotated-data +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# $Id: rotated-data,v 1.2 2019/12/10 23:59:24 tom Exp $ -# Rotate the second parameter's data by the given shift count. -if test $# != 0 -then - case $1 in - [1-9]*) - left=$1 - next=`expr "$left" + 1` - shift 1 - ;; - *) - left=1 - next=2 - ;; - esac - char=`echo "$@" | cut -b -${left}` - data=`echo "$@" | cut -b ${next}-` - - printf "%s%s\n" "$data" "$char" -else - echo -fi diff --git a/contrib/dialog/samples/run_test.sh b/contrib/dialog/samples/run_test.sh deleted file mode 100755 index 2576d3e91f29..000000000000 --- a/contrib/dialog/samples/run_test.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# $Id: run_test.sh,v 1.5 2019/12/10 23:54:52 tom Exp $ -# vile:ts=4 sw=4 -THIS=`basename "$0"` - -if [ -z "$DIALOG" ] -then - have= - want=dialog - for p in . .. ../bin - do - prog=$p/$want - [ -f $prog ] || continue - if [ -x $prog ] - then - have=$prog - break - fi - done - - if [ -z "$have" ] - then - echo "? did not find $want" >&2 - exit - fi - - DIALOG=$have - export DIALOG -fi - -want=`basename $DIALOG` - -DIALOGOPTS="$DIALOGOPTS --trace $want.log" -export DIALOGOPTS - -mylog=run_test.log -cat >$mylog <<EOF -** `date` -EOF - -for name in "$@" -do - [ -f "$name" ] || continue - [ -x "$name" ] || continue - # skip this script and known utility-scripts - case `basename "$name"` in - $THIS|dft-*|killall|listing|rotated-data|shortlist|with-*) - echo "** skipping $name" >>$mylog - continue - ;; - esac - rm -f trace "$want.log" "$name.log" - echo "** running $name" >>$mylog - $name - [ -f "$want.log" ] && cp "$want.log" "$name.log" -done diff --git a/contrib/dialog/samples/setup-edit b/contrib/dialog/samples/setup-edit deleted file mode 100644 index d244397b1bdd..000000000000 --- a/contrib/dialog/samples/setup-edit +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# $Id: setup-edit,v 1.3 2016/01/26 22:42:44 tom Exp $ -# vile:shmode - -input=`tempfile 2>/dev/null` || input=/tmp/input$$ -output=`tempfile 2>/dev/null` || output=/tmp/test$$ -trap "rm -f $input $output" $SIG_NONE $SIG_HUP $SIG_INT $SIG_QUIT $SIG_TERM diff --git a/contrib/dialog/samples/setup-tempfile b/contrib/dialog/samples/setup-tempfile deleted file mode 100644 index b00106c29c7e..000000000000 --- a/contrib/dialog/samples/setup-tempfile +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# $Id: setup-tempfile,v 1.4 2016/01/26 22:42:47 tom Exp $ -# vile:shmode - -tempfile=`(tempfile) 2>/dev/null` || tempfile=/tmp/test$$ -trap "rm -f $tempfile" 0 $SIG_NONE $SIG_HUP $SIG_INT $SIG_QUIT $SIG_TERM diff --git a/contrib/dialog/samples/setup-utf8 b/contrib/dialog/samples/setup-utf8 deleted file mode 100644 index 07cff3969db6..000000000000 --- a/contrib/dialog/samples/setup-utf8 +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# $Id: setup-utf8,v 1.2 2012/06/29 09:50:32 tom Exp $ -# vile:shmode - -case none"$LANG$LC_ALL$LC_CTYPE" in -*UTF-8*) - ;; -*) - echo "This script must be run in a UTF-8 locale" - exit 1 - ;; -esac diff --git a/contrib/dialog/samples/setup-vars b/contrib/dialog/samples/setup-vars deleted file mode 100644 index 6a6134b15ec7..000000000000 --- a/contrib/dialog/samples/setup-vars +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# $Id: setup-vars,v 1.5 2020/11/25 23:06:52 tom Exp $ -# vile:shmode - -# These symbols are defined to use in the sample shell scripts to make them -# more readable. But they are (intentionally) not exported. If they were -# exported, they would also be visible in the dialog program (a subprocess). - -: "${DIALOG=dialog}" - -: "${DIALOG_OK=0}" -: "${DIALOG_CANCEL=1}" -: "${DIALOG_HELP=2}" -: "${DIALOG_EXTRA=3}" -: "${DIALOG_ITEM_HELP=4}" -: "${DIALOG_TIMEOUT=5}" -: "${DIALOG_ESC=255}" - -: "${SIG_NONE=0}" -: "${SIG_HUP=1}" -: "${SIG_INT=2}" -: "${SIG_QUIT=3}" -: "${SIG_KILL=9}" -: "${SIG_TERM=15}" diff --git a/contrib/dialog/samples/shortlist b/contrib/dialog/samples/shortlist deleted file mode 100755 index bda8b4e89f21..000000000000 --- a/contrib/dialog/samples/shortlist +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# $Id: shortlist,v 1.2 2011/03/02 00:11:50 tom Exp $ -# make a short listing, which writes to both stdout and stderr. - -if test $# != 0 -then - count=$1 -else - count=10 -fi - -while test $count != 0 -do - echo "** $count -- `date`" - w >&2 - sleep 1 - count=`expr $count - 1 2>/dev/null` - test -z "$count" && count=0 -done diff --git a/contrib/dialog/samples/slackware.rc b/contrib/dialog/samples/slackware.rc deleted file mode 100644 index 82f1ee85f62e..000000000000 --- a/contrib/dialog/samples/slackware.rc +++ /dev/null @@ -1,142 +0,0 @@ -# $Id: slackware.rc,v 1.10 2012/12/01 00:36:55 tom Exp $ -# vile:confmode -# Run-time configuration file for dialog, matches Slackware color scheme. -# -# Types of values: -# -# Number - <number> -# String - "string" -# Boolean - <ON|OFF> -# Attribute - (foreground,background,highlight?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = OFF - -# Shadow dialog boxes? This also turns on color. -use_shadow = ON - -# Turn color support ON or OFF -use_colors = ON - -# Screen color -screen_color = (WHITE,BLUE,OFF) - -# Shadow color -shadow_color = (WHITE,BLACK,OFF) - -# Dialog box color -dialog_color = (BLACK,CYAN,OFF) - -# Dialog box title color -title_color = (YELLOW,CYAN,ON) - -# Dialog box border color -border_color = (CYAN,CYAN,ON) - -# Active button color -button_active_color = (WHITE,BLUE,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = button_active_color - -# Inactive button key color -button_key_inactive_color = (RED,CYAN,OFF) - -# Active button label color -button_label_active_color = button_active_color - -# Inactive button label color -button_label_inactive_color = (BLACK,CYAN,ON) - -# Input box color -inputbox_color = (BLUE,WHITE,OFF) - -# Input box border color -inputbox_border_color = border_color - -# Search box color -searchbox_color = (YELLOW,WHITE,ON) - -# Search box title color -searchbox_title_color = (WHITE,WHITE,ON) - -# Search box border color -searchbox_border_color = (RED,WHITE,OFF) - -# File position indicator color -position_indicator_color = button_key_inactive_color - -# Menu box color -menubox_color = dialog_color - -# Menu box border color -menubox_border_color = border_color - -# Item color -item_color = dialog_color - -# Selected item color -item_selected_color = screen_color - -# Tag color -tag_color = title_color - -# Selected tag color -tag_selected_color = screen_color - -# Tag key color -tag_key_color = button_key_inactive_color - -# Selected tag key color -tag_key_selected_color = (RED,BLUE,ON) - -# Check box color -check_color = dialog_color - -# Selected check box color -check_selected_color = (WHITE,CYAN,ON) - -# Up arrow color -uarrow_color = (GREEN,CYAN,ON) - -# Down arrow color -darrow_color = uarrow_color - -# Item help-text color -itemhelp_color = shadow_color - -# Active form text color -form_active_text_color = inputbox_color - -# Form text color -form_text_color = (CYAN,BLUE,ON) - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = (BLUE,WHITE,ON) - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = border2_color - -# Search box border2 color -searchbox_border2_color = border2_color - -# Menu box border2 color -menubox_border2_color = border2_color diff --git a/contrib/dialog/samples/sourcemage.rc b/contrib/dialog/samples/sourcemage.rc deleted file mode 100644 index 9384798fc2de..000000000000 --- a/contrib/dialog/samples/sourcemage.rc +++ /dev/null @@ -1,142 +0,0 @@ -# $Id: sourcemage.rc,v 1.6 2011/10/15 01:00:41 tom Exp $ -# vile:confmode -# Run-time configuration file for dialog, matches SourceMage color scheme. -# -# Types of values: -# -# Number - <number> -# String - "string" -# Boolean - <ON|OFF> -# Attribute - (foreground,background,highlight?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = OFF - -# Shadow dialog boxes? This also turns on color. -use_shadow = ON - -# Turn color support ON or OFF -use_colors = ON - -# Screen color -screen_color = (RED,BLACK,ON) - -# Shadow color -shadow_color = (BLACK,BLACK,ON) - -# Dialog box color -dialog_color = (BLACK,WHITE,OFF) - -# Dialog box title color -title_color = (RED,WHITE,ON) - -# Dialog box border color -border_color = (WHITE,WHITE,ON) - -# Active button color -button_active_color = (WHITE,RED,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = button_active_color - -# Inactive button key color -button_key_inactive_color = (RED,WHITE,OFF) - -# Active button label color -button_label_active_color = (RED,RED,ON) - -# Inactive button label color -button_label_inactive_color = (BLACK,WHITE,ON) - -# Input box color -inputbox_color = dialog_color - -# Input box border color -inputbox_border_color = dialog_color - -# Search box color -searchbox_color = dialog_color - -# Search box title color -searchbox_title_color = title_color - -# Search box border color -searchbox_border_color = border_color - -# File position indicator color -position_indicator_color = title_color - -# Menu box color -menubox_color = dialog_color - -# Menu box border color -menubox_border_color = border_color - -# Item color -item_color = dialog_color - -# Selected item color -item_selected_color = button_active_color - -# Tag color -tag_color = title_color - -# Selected tag color -tag_selected_color = button_label_active_color - -# Tag key color -tag_key_color = title_color - -# Selected tag key color -tag_key_selected_color = button_active_color - -# Check box color -check_color = dialog_color - -# Selected check box color -check_selected_color = button_active_color - -# Up arrow color -uarrow_color = title_color - -# Down arrow color -darrow_color = title_color - -# Item help-text color -itemhelp_color = (WHITE,BLACK,OFF) - -# Active form text color -form_active_text_color = dialog_color - -# Form text color -form_text_color = screen_color - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = (BLUE,WHITE,ON) - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = dialog_color - -# Search box border2 color -searchbox_border2_color = dialog_color - -# Menu box border2 color -menubox_border2_color = dialog_color diff --git a/contrib/dialog/samples/suse.rc b/contrib/dialog/samples/suse.rc deleted file mode 100644 index c8ff09942dd5..000000000000 --- a/contrib/dialog/samples/suse.rc +++ /dev/null @@ -1,142 +0,0 @@ -# $Id: suse.rc,v 1.5 2011/10/15 01:01:00 tom Exp $ -# vile:confmode -# Run-time configuration file for dialog, matches SuSE color scheme. -# -# Types of values: -# -# Number - <number> -# String - "string" -# Boolean - <ON|OFF> -# Attribute - (foreground,background,highlight?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = OFF - -# Shadow dialog boxes? This also turns on color. -use_shadow = OFF - -# Turn color support ON or OFF -use_colors = OFF - -# Screen color -screen_color = (CYAN,BLUE,ON) - -# Shadow color -shadow_color = (BLACK,BLACK,OFF) - -# Dialog box color -dialog_color = (BLACK,WHITE,OFF) - -# Dialog box title color -title_color = (YELLOW,WHITE,ON) - -# Dialog box border color -border_color = (WHITE,WHITE,ON) - -# Active button color -button_active_color = (WHITE,BLUE,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = button_active_color - -# Inactive button key color -button_key_inactive_color = (RED,WHITE,OFF) - -# Active button label color -button_label_active_color = (YELLOW,BLUE,ON) - -# Inactive button label color -button_label_inactive_color = (BLACK,WHITE,ON) - -# Input box color -inputbox_color = dialog_color - -# Input box border color -inputbox_border_color = dialog_color - -# Search box color -searchbox_color = dialog_color - -# Search box title color -searchbox_title_color = title_color - -# Search box border color -searchbox_border_color = border_color - -# File position indicator color -position_indicator_color = title_color - -# Menu box color -menubox_color = dialog_color - -# Menu box border color -menubox_border_color = border_color - -# Item color -item_color = dialog_color - -# Selected item color -item_selected_color = button_active_color - -# Tag color -tag_color = title_color - -# Selected tag color -tag_selected_color = button_label_active_color - -# Tag key color -tag_key_color = button_key_inactive_color - -# Selected tag key color -tag_key_selected_color = (RED,BLUE,ON) - -# Check box color -check_color = dialog_color - -# Selected check box color -check_selected_color = button_active_color - -# Up arrow color -uarrow_color = (GREEN,WHITE,ON) - -# Down arrow color -darrow_color = uarrow_color - -# Item help-text color -itemhelp_color = (WHITE,BLACK,OFF) - -# Active form text color -form_active_text_color = button_active_color - -# Form text color -form_text_color = (WHITE,CYAN,ON) - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = (BLUE,WHITE,ON) - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = dialog_color - -# Search box border2 color -searchbox_border2_color = dialog_color - -# Menu box border2 color -menubox_border2_color = dialog_color diff --git a/contrib/dialog/samples/tailbox b/contrib/dialog/samples/tailbox deleted file mode 100755 index e67c30c08156..000000000000 --- a/contrib/dialog/samples/tailbox +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# $Id: tailbox,v 1.8 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -./killall listing -./listing >listing.out & - -$DIALOG --title "TAIL BOX" "$@" \ - --tailbox listing.out 24 70 - -returncode=$? - -. ./report-button - -./killall listing diff --git a/contrib/dialog/samples/tailboxbg b/contrib/dialog/samples/tailboxbg deleted file mode 100755 index dff1becf80a9..000000000000 --- a/contrib/dialog/samples/tailboxbg +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: tailboxbg,v 1.11 2019/12/11 01:21:36 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -./killall listing -./listing >listing.out & - -$DIALOG --title "TAIL BOX" \ - --no-kill "$@" \ - --tailboxbg listing.out 24 70 2>$tempfile - -# wait a while for the background process to run -sleep 10 - -# now kill it -kill "-$SIG_QUIT" "`cat "$tempfile"`" 2>&1 >/dev/null 2>/dev/null - -# ...and the process that is making the listing -./killall listing diff --git a/contrib/dialog/samples/tailboxbg1 b/contrib/dialog/samples/tailboxbg1 deleted file mode 100755 index 456e720969e5..000000000000 --- a/contrib/dialog/samples/tailboxbg1 +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# $Id: tailboxbg1,v 1.11 2019/12/11 00:12:27 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -./killall listing -./listing >listing.out & - -$DIALOG --title "TAIL BOXES" \ - --begin 10 10 "$@" --tailboxbg listing.out 8 58 \ - --and-widget \ - --begin 15 15 "$@" --tailboxbg listing.out 8 58 \ - --and-widget \ - --begin 3 10 "$@" --msgbox "Press OK " 5 30 \ - 2>$tempfile - -# The --and-widget causes a tab to be emitted, but our example will only -# write one number to stderr. -pid=`sed -e 's/ //g' $tempfile` -if test -n "$pid" ; then -# wait a while for the background process to run -sleep 10 - -# now kill it -kill "-$SIG_QUIT" "$pid "2>&1 >/dev/null 2>/dev/null -echo "killed [$pid]" -fi - -# ...and the process that is making the listing -./killall listing diff --git a/contrib/dialog/samples/tailboxbg2 b/contrib/dialog/samples/tailboxbg2 deleted file mode 100755 index b71a6c6c42fe..000000000000 --- a/contrib/dialog/samples/tailboxbg2 +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# $Id: tailboxbg2,v 1.11 2019/12/11 00:11:51 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -./killall listing -./listing >listing.out & - -$DIALOG --title "TAIL BOXES" \ - --no-kill \ - --begin 10 10 "$@" --tailboxbg listing.out 8 58 \ - --and-widget \ - --begin 15 15 "$@" --tailboxbg listing.out 8 58 \ - --and-widget \ - --begin 3 10 "$@" --msgbox "Press OK " 5 30 \ - 2>$tempfile - -# The --and-widget causes a tab to be emitted, but our example will only -# write one number to stderr. -pid=`sed -e 's/ //g' $tempfile` -if test -n "$pid" ; then -# wait a while for the background process to run -sleep 10 - -# now kill it -kill "-$SIG_QUIT" "$pid" 2>&1 >/dev/null 2>/dev/null -echo "killed [$pid]" -fi - -# ...and the process that is making the listing -./killall listing diff --git a/contrib/dialog/samples/testdata-8bit b/contrib/dialog/samples/testdata-8bit deleted file mode 100644 index f09021dc19db..000000000000 --- a/contrib/dialog/samples/testdata-8bit +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# $Id: testdata-8bit,v 1.2 2011/10/16 23:26:32 tom Exp $ - -# Select one of the "SAMPLE=" lines, to test handling of characters which -# are nonprinting in a POSIX locale: - -case .$1 in - # C1 controls -.8) - SAMPLE="€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž�" - ;; -.9) - SAMPLE="�‘’“”•–—˜™š›œ�žŸ" - ;; - -# Latin-1 -.[aA]) - SAMPLE=" ¡¢£¤¥¦§¨©ª«¬­®¯" - ;; -.[bB]) - SAMPLE="°±²³´µ¶·¸¹º»¼½¾¿" - ;; -.[cC]) - SAMPLE="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ" - ;; -.[dD]) - SAMPLE="ÐÑÒÓÔÕÖרÙÚÛÜÝÞß" - ;; -.[eE]) - SAMPLE="àáâãäåæçèéêëìíîï" - ;; -.[fF]) - SAMPLE="ðñòóôõö÷øùúûüýþÿ" - ;; -*) - # C0 controls (except a few which are always treated specially by curses): - SAMPLE=" " - ;; -esac - -# This script is source'd from other scripts, and uses the parameter list from -# those explicitly. But they may use the parameter list later, to set options -# specially for dialog. Work around the conflicting uses by removing the -# parameter which we just used to select a set of data. -if test $# != 0 -then - shift 1 -fi diff --git a/contrib/dialog/samples/textbox b/contrib/dialog/samples/textbox deleted file mode 100755 index 136fb7f51ebf..000000000000 --- a/contrib/dialog/samples/textbox +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# $Id: textbox,v 1.14 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -cat << EOF > $tempfile -Hi, this is a text dialog box. It can be used to display text from a file. -The file should not contain any 'tab' characters, so you should 'expand' -the file first if it contains 'tab' characters. - -It's like a simple text file viewer, with these keys implemented: - -PGDN/SPACE - Move down one page -PGUP/'b' - Move up one page -ENTER/DOWN/'j' - Move down one line -UP/'k' - Move up one line -LEFT/'h' - Scroll left -RIGHT/'l' - Scroll right -'0' - Move to beginning of line -HOME/'g' - Move to beginning of file -END/'G' - Move to end of file -'/' - Forward search -'?' - Backward search -'n' - Repeat last search (forward) -'N' - Repeat last search (backward) - - -The following is a sample text file: - - -EOF - -TEXT=/usr/share/common-licenses/GPL -test -f $TEXT || TEXT=../COPYING - -expand < $TEXT >> $tempfile - -$DIALOG --clear --title "TEXT BOX" "$@" --textbox "$tempfile" 22 77 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/textbox-both b/contrib/dialog/samples/textbox-both deleted file mode 100755 index d84faf9e4977..000000000000 --- a/contrib/dialog/samples/textbox-both +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: textbox-both,v 1.3 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -TEXT=/usr/share/common-licenses/GPL -test -f $TEXT || TEXT=../COPYING - -expand < textbox.txt > $tempfile -expand < $TEXT >> $tempfile - -$DIALOG --clear --title "TEXT BOX" \ - --help-button \ - --extra-button "$@" \ - --textbox "$tempfile" 22 77 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/textbox-help b/contrib/dialog/samples/textbox-help deleted file mode 100755 index 450c728c2c51..000000000000 --- a/contrib/dialog/samples/textbox-help +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: textbox-help,v 1.3 2020/11/26 00:05:11 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -TEXT=/usr/share/common-licenses/GPL -test -f $TEXT || TEXT=../COPYING - -expand < textbox.txt > $tempfile -expand < $TEXT >> $tempfile - -$DIALOG --clear --title "TEXT BOX" \ - --help-button "$@" \ - --textbox "$tempfile" 22 77 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/textbox.txt b/contrib/dialog/samples/textbox.txt deleted file mode 100644 index 3aaec0f8e5cb..000000000000 --- a/contrib/dialog/samples/textbox.txt +++ /dev/null @@ -1,24 +0,0 @@ -Hi, this is a text dialog box. It can be used to display text from a file. -The file should not contain any 'tab' characters, so you should 'expand' -the file first if it contains 'tab' characters. - -It's like a simple text file viewer, with these keys implemented: - -PGDN/SPACE - Move down one page -PGUP/'b' - Move up one page -ENTER/DOWN/'j' - Move down one line -UP/'k' - Move up one line -LEFT/'h' - Scroll left -RIGHT/'l' - Scroll right -'0' - Move to beginning of line -HOME/'g' - Move to beginning of file -END/'G' - Move to end of file -'/' - Forward search -'?' - Backward search -'n' - Repeat last search (forward) -'N' - Repeat last search (backward) - - -The following is a sample text file: - - diff --git a/contrib/dialog/samples/textbox2 b/contrib/dialog/samples/textbox2 deleted file mode 100755 index d4149b3c6095..000000000000 --- a/contrib/dialog/samples/textbox2 +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# $Id: textbox2,v 1.10 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -cat << EOF > $tempfile -Hi, this is a text dialog box. It can be used to display text from a file. -The file should not contain any 'tab' characters, so you should 'expand' -the file first if it contains 'tab' characters. - -It's like a simple text file viewer, with these keys implemented: - -PGDN/SPACE - Move down one page -PGUP/'b' - Move up one page -ENTER/DOWN/'j' - Move down one line -UP/'k' - Move up one line -LEFT/'h' - Scroll left -RIGHT/'l' - Scroll right -'0' - Move to beginning of line -HOME/'g' - Move to beginning of file -END/'G' - Move to end of file -'/' - Forward search -'?' - Backward search -'n' - Repeat last search (forward) -'N' - Repeat last search (backward) - - -The following is a sample text file: - - -EOF - -TEXT=/usr/share/common-licenses/GPL -test -f $TEXT || TEXT=../COPYING - -expand < $TEXT >> $tempfile - -$DIALOG --clear --title "TEXT BOX" "$@" --textbox "$tempfile" 0 0 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/textbox3 b/contrib/dialog/samples/textbox3 deleted file mode 100755 index f3d6f8249849..000000000000 --- a/contrib/dialog/samples/textbox3 +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# $Id: textbox3,v 1.8 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -TEXT=/usr/share/common-licenses/GPL -test -f $TEXT || TEXT=../COPYING - -expand < textbox.txt > $tempfile -expand < $TEXT >> $tempfile - -$DIALOG --clear --title "TEXT BOX" \ - --extra-button "$@" \ - --textbox "$tempfile" 22 77 - -returncode=$? - -. ./report-button diff --git a/contrib/dialog/samples/timebox b/contrib/dialog/samples/timebox deleted file mode 100755 index de5b4377a7dd..000000000000 --- a/contrib/dialog/samples/timebox +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# $Id: timebox,v 1.11 2020/11/26 00:09:31 tom Exp $ - -. ./setup-vars - -DIALOG_ERROR=254 -export DIALOG_ERROR - -exec 3>&1 -returntext=`$DIALOG --title "TIMEBOX" "$@" --timebox "Please set the time..." 0 0 12 34 56 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/timebox-stdout b/contrib/dialog/samples/timebox-stdout deleted file mode 100755 index 4ed0d9a23da7..000000000000 --- a/contrib/dialog/samples/timebox-stdout +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# $Id: timebox-stdout,v 1.7 2020/11/26 00:09:31 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "TIMEBOX" "$@" --timebox "Please set the time..." 0 0 12 34 56` - -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/timebox2 b/contrib/dialog/samples/timebox2 deleted file mode 100755 index f734421b1cc4..000000000000 --- a/contrib/dialog/samples/timebox2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# $Id: timebox2,v 1.9 2020/11/26 00:09:31 tom Exp $ - -. ./setup-vars - -exec 3>&1 -returntext=`$DIALOG --title "TIMEBOX" "$@" --timebox "Please set the time..." 0 0 2>&1 1>&3` -returncode=$? -exec 3>&- - -. ./report-string diff --git a/contrib/dialog/samples/timebox2-stdout b/contrib/dialog/samples/timebox2-stdout deleted file mode 100755 index 71a4fa443814..000000000000 --- a/contrib/dialog/samples/timebox2-stdout +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# $Id: timebox2-stdout,v 1.7 2020/11/26 00:09:31 tom Exp $ - -. ./setup-vars - -returntext=`$DIALOG --stdout --title "TIMEBOX" "$@" --timebox "Please set the time..." 0 0` - -returncode=$? - -. ./report-string diff --git a/contrib/dialog/samples/treeview b/contrib/dialog/samples/treeview deleted file mode 100755 index fec3cddf9f69..000000000000 --- a/contrib/dialog/samples/treeview +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# $Id: treeview,v 1.3 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "TREE VIEW DIALOG" \ - --treeview "TreeView demo" 0 0 0 \ - tag1 one off 0 \ - tag2 two off 1 \ - tag3 three on 2 \ - tag4 four off 1 \ - tag5 five off 2 \ - tag6 six off 3 \ - tag7 seven off 3 \ - tag8 eight off 4 \ - tag9 nine off 1 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/treeview2 b/contrib/dialog/samples/treeview2 deleted file mode 100755 index ba5e948f5fa2..000000000000 --- a/contrib/dialog/samples/treeview2 +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# $Id: treeview2,v 1.5 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-edit - -case "x$DIALOGOPTS" in -*--no-items*|*--noitem*) - CUT="cut -d: -f1,3,4" - ;; -*) - CUT="cat" - ;; -esac - -$CUT >$input <<-EOF - tag1:one:off:0 - tag2:two:off:1 - tag3:three:on:2 - tag4:four:off:1 - tag5:five:off:2 - tag6:six:off:3 - tag7:seven:off:3 - tag8:eight:off:4 - tag11:1one:off:0 - tag12:1two:off:1 - tag13:1three:on:2 - tag14:1four:off:1 - tag15:1five:off:2 - tag16:1six:off:3 - tag17:1seven:off:3 - tag18:1eight:off:4 - tag21:2one:off:0 - tag22:2two:off:1 - tag23:2three:on:2 - tag24:2four:off:1 - tag25:2five:off:2 - tag26:2six:off:3 - tag27:2seven:off:3 - tag28:2eight:off:4 - tag9:nine:off:1 -EOF - -$DIALOG --title "TREE VIEW DIALOG" \ - --scrollbar \ - --treeview "TreeView demo" 0 0 10 `sed -e 's/:/ /g' "$input"` 2> $output - -returncode=$? - -tempfile=$output -. ./report-tempfile diff --git a/contrib/dialog/samples/treeview4 b/contrib/dialog/samples/treeview4 deleted file mode 100755 index 4b1f65eef457..000000000000 --- a/contrib/dialog/samples/treeview4 +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# $Id: treeview4,v 1.3 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -$DIALOG --title "TREE VIEW DIALOG" \ - --help-button \ - --item-help \ - --treeview "TreeView demo" 0 0 0 \ - tag1 one off 0 first \ - tag2 two off 1 second \ - tag3 three on 2 third \ - tag4 four off 1 fourth \ - tag5 five off 2 fifth \ - tag6 six off 3 sixth \ - tag7 seven off 3 seventh \ - tag8 eight off 4 eighth \ - tag9 nine off 1 ninth 2> $tempfile - -returncode=$? - -. ./report-tempfile diff --git a/contrib/dialog/samples/wheel b/contrib/dialog/samples/wheel deleted file mode 100755 index 13e084a405fc..000000000000 --- a/contrib/dialog/samples/wheel +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -# $Id: wheel,v 1.10 2019/12/11 01:43:03 tom Exp $ - -. ./setup-vars - -. ./setup-tempfile - -TITLE="This screen was taken from ComeOn Point Installer! v0.9 by ComeOn Linux!" - -$DIALOG --print-maxsize 2>$tempfile -ROWS="`sed -e 's/^[^:]*:[ ]*//' -e 's/,.*//' $tempfile`" -COLS="`sed -e 's/^[^,]*,[ ]*//' $tempfile`" -rm $tempfile - -# account for widest labels -COLS=`expr "$COLS" - 30` - -# Takes an integer, multiplies it for COLS, divides for 132 -scalex() { - expr "$1" \* "$COLS" / 132 -} -scaley() { - expr "$1" \* "$ROWS" / 60 -} - -$DIALOG --backtitle "$TITLE" --no-shadow \ ---begin "`scaley 27`" "`scalex 98`" --infobox "pushd /var/log >/dev/null" 0 0 --and-widget \ ---begin "`scaley 35`" "`scalex 95`" --infobox "mkdir -p news -m 755" 0 0 --and-widget \ ---begin "`scaley 45`" "`scalex 86`" --infobox "chown news.news news" 0 0 --and-widget \ ---begin "`scaley 48`" "`scalex 78`" --infobox "cd /var/log/news" 0 0 --and-widget \ ---begin "`scaley 51`" "`scalex 61`" --infobox "mkdir -p OLD -m 755" 0 0 --and-widget \ ---begin "`scaley 52`" "`scalex 47`" --infobox "chown news.news OLD" 0 0 --and-widget \ ---begin "`scaley 51`" "`scalex 40`" --infobox "cd /var/spool" 0 0 --and-widget \ ---begin "`scaley 48`" "`scalex 25`" --infobox "mkdir -p news -m 775" 0 0 --and-widget \ ---begin "`scaley 42`" "`scalex 13`" --infobox "chown news.news news" 0 0 --and-widget \ ---begin "`scaley 35`" "`scalex 4`" --infobox "cd /var/spool/news" 0 0 --and-widget \ ---begin "`scaley 27`" "`scalex 2`" --infobox "CURMASK=`umask`" 0 0 --and-widget \ ---begin "`scaley 19`" "`scalex 4`" --infobox "umask 02" 0 0 --and-widget \ ---begin "`scaley 11`" "`scalex 13`" --infobox "mkdir -p out.going control junk in.coming" 0 0 --and-widget \ ---begin "`scaley 5`" "`scalex 25`" --infobox "chown news.news out.going control junk in.coming" 0 0 --and-widget \ ---begin "`scaley 2`" "`scalex 37`" --infobox "cd in.coming" 0 0 --and-widget \ ---begin "`scaley 1`" "`scalex 46`" --infobox "mkdir -p bad tmp" 0 0 --and-widget \ ---begin "`scaley 2`" "`scalex 61`" --infobox "chown news.news bad tmp" 0 0 --and-widget \ ---begin "`scaley 5`" "`scalex 76`" --infobox "umask $CURMASK" 0 0 --and-widget \ ---begin "`scaley 11`" "`scalex 87`" --infobox "ln -sf ~news /usr/local/lib/" 0 0 --and-widget \ ---begin "`scaley 18`" "`scalex 95`" --infobox "ln -sf ~news/inews /usr/bin/" 0 0 --and-widget \ ---begin "`scaley 26`" "`scalex 97`" --infobox "chmod 1777 /var/tmp" 0 0 --and-widget \ ---begin "`scaley 34`" "`scalex 95`" --infobox "cd ~news" 0 0 --and-widget \ ---begin "`scaley 42`" "`scalex 87`" --infobox "touch history history.dir history.pag errlog log" 0 0 --and-widget \ ---begin "`scaley 47`" "`scalex 76`" --infobox "chown news.news history* log errlog" 0 0 --and-widget \ ---infobox "Creating spooling and logging directories and files..." 0 0 --and-widget \ ---begin "`scaley 51`" "`scalex 78`" --infobox "chmod 664 history* log errlog" 0 0 --and-widget \ ---begin "`scaley 52`" "`scalex 60`" --infobox "echo \"control 0000000000 0000000001 y\" > active" 0 0 --and-widget \ ---begin "`scaley 51`" "`scalex 42`" --infobox "echo \"junk 0000000000 0000000001 y\" >> active" 0 0 --and-widget \ ---begin "`scaley 48`" "`scalex 26`" --infobox "chown news.news active" 0 0 --and-widget \ ---begin "`scaley 42`" "`scalex 13`" --infobox "echo \"control 814573260 usenet\" > active.times" 0 0 --and-widget \ ---begin "`scaley 35`" "`scalex 4`" --infobox "echo \"junk 814573260 usenet\" >> active.times" 0 0 --and-widget \ ---begin "`scaley 27`" "`scalex 2`" --infobox "chown news.news active.times" 0 0 --and-widget \ ---begin "`scaley 19`" "`scalex 4`" --infobox ":>newsgroups" 0 0 --and-widget \ ---begin "`scaley 11`" "`scalex 12`" --infobox "chown news.news newsgroups" 0 0 --and-widget \ ---sleep 2 \ ---begin "`scaley 6`" "`scalex 25`" --infobox "popd >/dev/null" 0 0 --and-widget \ ---beep --msgbox "ComeOn Linux! :-)" 0 0 --and-widget \ ---begin 2 0 --title "/var/adm/debug. This is running while that down runs also" --tailboxbg /var/adm/debug 6 80 --and-widget \ ---begin 8 0 --title "/var/adm/messages. It tails the file in multitasking with /var/adm/debug" --tailbox /var/adm/messages -1 -1 diff --git a/contrib/dialog/samples/whiptail.rc b/contrib/dialog/samples/whiptail.rc deleted file mode 100644 index 81ad65307a0c..000000000000 --- a/contrib/dialog/samples/whiptail.rc +++ /dev/null @@ -1,142 +0,0 @@ -# $Id: whiptail.rc,v 1.6 2012/12/01 01:15:04 tom Exp $ -# vile:confmode -# Run-time configuration file for dialog, matches whiptail's color scheme. -# -# Types of values: -# -# Number - <number> -# String - "string" -# Boolean - <ON|OFF> -# Attribute - (foreground,background,highlight?) - -# Set aspect-ration. -aspect = 0 - -# Set separator (for multiple widgets output). -separate_widget = "" - -# Set tab-length (for textbox tab-conversion). -tab_len = 0 - -# Make tab-traversal for checklist, etc., include the list. -visit_items = ON - -# Shadow dialog boxes? This also turns on color. -use_shadow = ON - -# Turn color support ON or OFF -use_colors = ON - -# Screen color -screen_color = (YELLOW,BLUE,ON) - -# Shadow color -shadow_color = (BLACK,BLACK,ON) - -# Dialog box color -dialog_color = (BLACK,WHITE,OFF) - -# Dialog box title color -title_color = (RED,WHITE,ON) - -# Dialog box border color -border_color = (WHITE,WHITE,ON) - -# Active button color -button_active_color = (WHITE,RED,ON) - -# Inactive button color -button_inactive_color = dialog_color - -# Active button key color -button_key_active_color = button_active_color - -# Inactive button key color -button_key_inactive_color = dialog_color - -# Active button label color -button_label_active_color = button_active_color - -# Inactive button label color -button_label_inactive_color = (BLACK,WHITE,ON) - -# Input box color -inputbox_color = dialog_color - -# Input box border color -inputbox_border_color = dialog_color - -# Search box color -searchbox_color = dialog_color - -# Search box title color -searchbox_title_color = title_color - -# Search box border color -searchbox_border_color = border_color - -# File position indicator color -position_indicator_color = title_color - -# Menu box color -menubox_color = (YELLOW,BLUE,OFF) - -# Menu box border color -menubox_border_color = screen_color - -# Item color -item_color = menubox_color - -# Selected item color -item_selected_color = screen_color - -# Tag color -tag_color = screen_color - -# Selected tag color -tag_selected_color = screen_color - -# Tag key color -tag_key_color = menubox_color - -# Selected tag key color -tag_key_selected_color = (WHITE,BLUE,ON) - -# Check box color -check_color = menubox_color - -# Selected check box color -check_selected_color = screen_color - -# Up arrow color -uarrow_color = screen_color - -# Down arrow color -darrow_color = screen_color - -# Item help-text color -itemhelp_color = (WHITE,BLACK,OFF) - -# Active form text color -form_active_text_color = tag_key_selected_color - -# Form text color -form_text_color = (WHITE,CYAN,ON) - -# Readonly form item color -form_item_readonly_color = (CYAN,WHITE,ON) - -# Dialog box gauge color -gauge_color = (BLUE,WHITE,ON) - -# Dialog box border2 color -border2_color = dialog_color - -# Input box border2 color -inputbox_border2_color = dialog_color - -# Search box border2 color -searchbox_border2_color = dialog_color - -# Menu box border2 color -menubox_border2_color = screen_color diff --git a/contrib/dialog/samples/with-dquotes b/contrib/dialog/samples/with-dquotes deleted file mode 100755 index 604f51b9fd4d..000000000000 --- a/contrib/dialog/samples/with-dquotes +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: with-dquotes,v 1.1 2012/07/03 09:40:19 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --quoted" "$@" diff --git a/contrib/dialog/samples/with-squotes b/contrib/dialog/samples/with-squotes deleted file mode 100755 index 6a08f9fc9ede..000000000000 --- a/contrib/dialog/samples/with-squotes +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -# $Id: with-squotes,v 1.1 2012/07/03 09:40:29 tom Exp $ -DIALOGOPTS="$DIALOGOPTS --single-quoted" "$@" diff --git a/contrib/dialog/samples/yesno b/contrib/dialog/samples/yesno deleted file mode 100755 index 917c0ae3d30c..000000000000 --- a/contrib/dialog/samples/yesno +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -# $Id: yesno,v 1.10 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -DIALOG_ERROR=254 -export DIALOG_ERROR - -$DIALOG --title "YES/NO BOX" --clear "$@" \ - --yesno "Hi, this is a yes/no dialog box. You can use this to ask \ - questions that have an answer of either yes or no. \ - BTW, do you notice that long lines will be automatically \ - wrapped around so that they can fit in the box? You can \ - also control line breaking explicitly by inserting \ - 'backslash n' at any place you like, but in this case, \ - auto wrap around will be disabled and you will have to \ - control line breaking yourself." 15 61 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno-both b/contrib/dialog/samples/yesno-both deleted file mode 100755 index b2cb504167ef..000000000000 --- a/contrib/dialog/samples/yesno-both +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# $Id: yesno-both,v 1.6 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --title "YES/NO/MAYBE BOX" \ - --clear \ - --ok-label "Next" \ - --no-label "Cancel" \ - --extra-label "Previous" --extra-button \ - --help-button "$@" \ - --yesno "Hi, this is a yes/no dialog box with its labels changed. \ - You can use this to ask \ - questions that have an answer of either yes or no (or maybe). \ - BTW, do you notice that long lines will be automatically \ - wrapped around so that they can fit in the box? You can \ - also control line breaking explicitly by inserting \ - 'backslash n' at any place you like, but in this case, \ - auto wrap around will be disabled and you will have to \ - control line breaking yourself." 15 61 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno-extra b/contrib/dialog/samples/yesno-extra deleted file mode 100755 index d01b74a16182..000000000000 --- a/contrib/dialog/samples/yesno-extra +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# $Id: yesno-extra,v 1.6 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --title "YES/NO/MAYBE BOX" \ - --clear \ - --ok-label "Next" \ - --no-label "Cancel" \ - --extra-label "Previous" --extra-button "$@" \ - --yesno "Hi, this is a yes/no dialog box with its labels changed. \ - You can use this to ask \ - questions that have an answer of either yes or no (or maybe). \ - BTW, do you notice that long lines will be automatically \ - wrapped around so that they can fit in the box? You can \ - also control line breaking explicitly by inserting \ - 'backslash n' at any place you like, but in this case, \ - auto wrap around will be disabled and you will have to \ - control line breaking yourself." 15 61 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno-help b/contrib/dialog/samples/yesno-help deleted file mode 100755 index 1b0a816df940..000000000000 --- a/contrib/dialog/samples/yesno-help +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: yesno-help,v 1.6 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --title "YES/NO BOX" --clear --help-button "$@" \ - --yesno "Hi, this is a yes/no dialog box. You can use this to ask \ - questions that have an answer of either yes or no. \ - BTW, do you notice that long lines will be automatically \ - wrapped around so that they can fit in the box? You can \ - also control line breaking explicitly by inserting \ - 'backslash n' at any place you like, but in this case, \ - auto wrap around will be disabled and you will have to \ - control line breaking yourself." 15 61 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno-utf8 b/contrib/dialog/samples/yesno-utf8 deleted file mode 100755 index a10eba7605bc..000000000000 --- a/contrib/dialog/samples/yesno-utf8 +++ /dev/null @@ -1,14 +0,0 @@ -#! /bin/sh -# $Id: yesno-utf8,v 1.8 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -. ./setup-utf8 - -DIALOG_ERROR=254 -export DIALOG_ERROR - -$DIALOG "$@" --yesno "Are you a DOG?" 0 0 -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno2 b/contrib/dialog/samples/yesno2 deleted file mode 100755 index ba4e7f4e0fc2..000000000000 --- a/contrib/dialog/samples/yesno2 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: yesno2,v 1.8 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --title "YES/NO BOX" "$@" \ - --yesno "Hi, this is a yes/no dialog box. You can use this to ask \ -questions that have an answer of either yes or no. \ -BTW, do you notice that long lines will be automatically \ -wrapped around so that they can fit in the box? You can \ -also control line breaking explicitly by inserting \ -'backslash n' at any place you like, but in this case, \ -auto wrap around will be disabled and you will have to \ -control line breaking yourself." 0 0 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno3 b/contrib/dialog/samples/yesno3 deleted file mode 100755 index 336c41c90670..000000000000 --- a/contrib/dialog/samples/yesno3 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: yesno3,v 1.7 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --timeout 20 --title "YES/NO BOX" "$@" \ - --yesno "Hi, this is a yes/no dialog box. You can use this to ask \ -questions that have an answer of either yes or no. \ -BTW, do you notice that long lines will be automatically \ -wrapped around so that they can fit in the box? You can \ -also control line breaking explicitly by inserting \ -'backslash n' at any place you like, but in this case, \ -auto wrap around will be disabled and you will have to \ -control line breaking yourself." 0 0 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/samples/yesno4 b/contrib/dialog/samples/yesno4 deleted file mode 100755 index 4c54160d0043..000000000000 --- a/contrib/dialog/samples/yesno4 +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# $Id: yesno4,v 1.2 2020/11/26 00:05:52 tom Exp $ - -. ./setup-vars - -$DIALOG --title "YES/NO BOX" "$@" \ - --yesno "Hi, this is a yes/no dialog box. You can use this to ask \ -questions that have an answer of either yes or no. \ -BTW, do you notice that long lines will be automatically \ -wrapped around so that they can fit in the box? You can \ -also control line breaking explicitly by inserting \ -'backslash n' at any place you like, but in this case, \ -auto wrap around will be disabled and you will have to \ -control line breaking yourself." 6 30 - -returncode=$? - -. ./report-yesno diff --git a/contrib/dialog/tailbox.c b/contrib/dialog/tailbox.c deleted file mode 100644 index a6a505f6a332..000000000000 --- a/contrib/dialog/tailbox.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - * $Id: tailbox.c,v 1.79 2020/11/21 21:31:49 tom Exp $ - * - * tailbox.c -- implements the tail box - * - * Copyright 2000-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Pasquale De Marco (demarco_p@abramo.it) - */ - -#include <dialog.h> -#include <dlg_keys.h> -#include <sys/stat.h> - -typedef struct { - DIALOG_CALLBACK obj; - WINDOW *text; - const char **buttons; - int hscroll; - int old_hscroll; - char line[MAX_LEN + 2]; - off_t last_pos; -} MY_OBJ; - -/* - * Return current line of text. - */ -static char * -get_line(MY_OBJ * obj) -{ - FILE *fp = obj->obj.input; - int col = -(obj->hscroll); - int j, tmpint, ch; - - do { - if (((ch = getc(fp)) == EOF) && !feof(fp)) - dlg_exiterr("Error moving file pointer in get_line()."); - else if (!feof(fp) && (ch != '\n')) { - if ((ch == TAB) && (dialog_vars.tab_correct)) { - tmpint = dialog_state.tab_len - - ((col + obj->hscroll) % dialog_state.tab_len); - for (j = 0; j < tmpint; j++) { - if (col >= 0 && col < MAX_LEN) - obj->line[col] = ' '; - ++col; - } - } else { - if (col >= 0) - obj->line[col] = (char) ch; - ++col; - } - if (col >= MAX_LEN) - break; - } - } while (!feof(fp) && (ch != '\n')); - - if (col < 0) - col = 0; - obj->line[col] = '\0'; - - return obj->line; -} - -/* - * Print a new line of text. - */ -static void -print_line(MY_OBJ * obj, WINDOW *win, int row, int width) -{ - int i, y, x; - char *line = get_line(obj); - - (void) wmove(win, row, 0); /* move cursor to correct line */ - (void) waddch(win, ' '); - (void) waddnstr(win, line, MIN((int) strlen(line), width - 2)); - - getyx(win, y, x); - (void) y; - /* Clear 'residue' of previous line */ - for (i = 0; i < width - x; i++) - (void) waddch(win, ' '); -} - -/* - * Go back 'target' lines in text file. BUFSIZ has to be in 'size_t' range. - */ -static void -last_lines(MY_OBJ * obj, int target) -{ - FILE *fp = obj->obj.input; - long fpos = 0; - - if (fseek(fp, 0L, SEEK_END) == -1 - || (fpos = ftell(fp)) < 0) - dlg_exiterr("Error moving file pointer in last_lines()."); - - if (fpos != 0) { - long offset = 0; - - ++target; - for (;;) { - size_t inx; - size_t size_to_read; - size_t size_as_read; - int count = 0; - char buf[BUFSIZ + 1]; - - if (fpos >= BUFSIZ) { - size_to_read = BUFSIZ; - } else { - size_to_read = (size_t) fpos; - } - fpos = fpos - (long) size_to_read; - if (fseek(fp, fpos, SEEK_SET) == -1) - dlg_exiterr("Error moving file pointer in last_lines()."); - size_as_read = fread(buf, sizeof(char), size_to_read, fp); - if (ferror(fp)) - dlg_exiterr("Error reading file in last_lines()."); - - if (size_as_read == 0) { - fpos = 0; - offset = 0; - break; - } - - offset += (long) size_as_read; - for (inx = size_as_read - 1; inx != 0; --inx) { - if (buf[inx] == '\n') { - if (++count > target) - break; - offset = (long) (inx + 1); - } - } - - if (count > target) { - break; - } else if (fpos == 0) { - offset = 0; - break; - } - } - - if (fseek(fp, fpos + offset, SEEK_SET) == -1) - dlg_exiterr("Error moving file pointer in last_lines()."); - } -} - -/* - * Print a new page of text. - */ -static void -print_page(MY_OBJ * obj, int height, int width) -{ - int i; - - for (i = 0; i < height; i++) { - print_line(obj, obj->text, i, width); - } - (void) wnoutrefresh(obj->text); -} - -static void -print_last_page(MY_OBJ * obj) -{ - int high = getmaxy(obj->obj.win) - (2 * MARGIN + (obj->obj.bg_task ? 1 : 3)); - int wide = getmaxx(obj->text); - - last_lines(obj, high); - print_page(obj, high, wide); -} - -static void -repaint_text(MY_OBJ * obj) -{ - FILE *fp = obj->obj.input; - int cur_y, cur_x; - - getyx(obj->obj.win, cur_y, cur_x); - obj->old_hscroll = obj->hscroll; - - print_last_page(obj); - obj->last_pos = ftell(fp); - - (void) wmove(obj->obj.win, cur_y, cur_x); /* Restore cursor position */ - wrefresh(obj->obj.win); -} - -static bool -handle_input(DIALOG_CALLBACK * cb) -{ - MY_OBJ *obj = (MY_OBJ *) cb; - FILE *fp = obj->obj.input; - struct stat sb; - - if (fstat(fileno(fp), &sb) == 0 - && sb.st_size != obj->last_pos) { - repaint_text(obj); - } - - return TRUE; -} - -static bool -valid_callback(DIALOG_CALLBACK * cb) -{ - bool valid = FALSE; - DIALOG_CALLBACK *p; - for (p = dialog_state.getc_callbacks; p != 0; p = p->next) { - if (p == cb) { - valid = TRUE; - break; - } - } - return valid; -} - -static bool -handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result) -{ - MY_OBJ *obj = (MY_OBJ *) cb; - bool done = FALSE; - - if (!valid_callback(cb)) - return FALSE; - - if (!fkey && dlg_char_to_button(ch, obj->buttons) == 0) { - ch = DLGK_ENTER; - fkey = TRUE; - } - - if (fkey) { - switch (ch) { - case DLGK_ENTER: - *result = DLG_EXIT_OK; - done = TRUE; - break; - case DLGK_BEGIN: /* Beginning of line */ - obj->hscroll = 0; - break; - case DLGK_GRID_LEFT: /* Scroll left */ - if (obj->hscroll > 0) { - obj->hscroll -= 1; - } - break; - case DLGK_GRID_RIGHT: /* Scroll right */ - if (obj->hscroll < MAX_LEN) - obj->hscroll += 1; - break; - default: - if (is_DLGK_MOUSE(ch)) { - *result = dlg_ok_buttoncode(ch - M_EVENT); - if (*result != DLG_EXIT_ERROR) { - done = TRUE; - } else { - beep(); - } - } else { - beep(); - } - break; - } - if ((obj->hscroll != obj->old_hscroll)) - repaint_text(obj); - } else { - switch (ch) { - case ERR: - clearerr(cb->input); - ch = getc(cb->input); - (void) ungetc(ch, cb->input); - if (ch != EOF) { - handle_input(cb); - } - break; - case ESC: - done = TRUE; - *result = DLG_EXIT_ESC; - break; - default: - beep(); - break; - } - } - - return !done; -} - -/* - * Display text from a file in a dialog box, like in a "tail -f". - */ -int -dialog_tailbox(const char *title, - const char *filename, - int height, - int width, - int bg_task) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_BEGIN, '0' ), - DLG_KEYS_DATA( DLGK_BEGIN, KEY_BEG ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, 'H' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, 'h' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, 'L' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, 'l' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHT ), - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - int fkey; - int x, y, result = DLG_EXIT_UNKNOWN, thigh; - WINDOW *dialog, *text; - const char **buttons = 0; - MY_OBJ *obj; - FILE *fd; - int min_width = 12; - - DLG_TRACE(("# tailbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("filename", filename); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("bg_task", bg_task); - - /* Open input file for reading */ - if ((fd = fopen(filename, "rb")) == NULL) - dlg_exiterr("Can't open input file in dialog_tailbox()."); - -#ifdef KEY_RESIZE - retry: -#endif - dlg_auto_sizefile(title, filename, &height, &width, 2, min_width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - thigh = height - ((2 * MARGIN) + (bg_task ? 0 : 2)); - - dialog = dlg_new_window(height, width, y, x); - - dlg_mouse_setbase(x, y); - - /* Create window for text region, used for scrolling text */ - text = dlg_sub_window(dialog, - thigh, - width - (2 * MARGIN), - y + MARGIN, - x + MARGIN); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - dlg_draw_helpline(dialog, FALSE); - - if (!bg_task) { - buttons = dlg_exit_label(); - dlg_button_layout(buttons, &min_width); - dlg_draw_buttons(dialog, height - (2 * MARGIN), 0, buttons, FALSE, - FALSE, width); - } - - (void) wmove(dialog, thigh, (MARGIN + 1)); - (void) wnoutrefresh(dialog); - - obj = dlg_calloc(MY_OBJ, 1); - assert_ptr(obj, "dialog_tailbox"); - - obj->obj.input = fd; - obj->obj.win = dialog; - obj->obj.handle_getc = handle_my_getc; - obj->obj.handle_input = bg_task ? handle_input : 0; - obj->obj.keep_bg = bg_task && dialog_vars.cant_kill; - obj->obj.bg_task = (bool) bg_task; - obj->text = text; - obj->buttons = buttons; - dlg_add_callback(&(obj->obj)); - - dlg_register_window(dialog, "tailbox", binding); - dlg_register_buttons(dialog, "tailbox", buttons); - - /* Print last page of text */ - dlg_attr_clear(text, thigh, getmaxx(text), dialog_attr); - repaint_text(obj); - - dlg_trace_win(dialog); - if (bg_task) { - result = DLG_EXIT_OK; - } else { - int ch; - do { - ch = dlg_mouse_wgetch(dialog, &fkey); -#ifdef KEY_RESIZE - if (fkey && ch == KEY_RESIZE) { - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - /* repaint */ - _dlg_resize_cleanup(dialog); - dlg_button_layout(buttons, &min_width); - goto retry; - } -#endif - } - while (handle_my_getc(&(obj->obj), ch, fkey, &result)); - } - dlg_mouse_free_regions(); - return result; -} diff --git a/contrib/dialog/textbox.c b/contrib/dialog/textbox.c deleted file mode 100644 index ed1405097e74..000000000000 --- a/contrib/dialog/textbox.c +++ /dev/null @@ -1,1004 +0,0 @@ -/* - * $Id: textbox.c,v 1.127 2021/01/17 22:19:19 tom Exp $ - * - * textbox.c -- implements the text box - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors: - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> -#include <dlg_keys.h> - -#define PAGE_LENGTH (height - 4) -#define PAGE_WIDTH (width - 2) - -typedef struct { - DIALOG_CALLBACK obj; - WINDOW *text; - const char **buttons; - int hscroll; - char line[MAX_LEN + 1]; - int fd; - long file_size; - long fd_bytes_read; - long bytes_read; - long buffer_len; - bool begin_reached; - bool buffer_first; - bool end_reached; - long page_length; /* lines on the page which is shown */ - long in_buf; /* ending index into buf[] for page */ - char *buf; -} MY_OBJ; - -static long -lseek_obj(MY_OBJ * obj, long offset, int mode) -{ - long fpos; - if ((fpos = (long) lseek(obj->fd, (off_t) offset, mode)) == -1) { - switch (mode) { - default: - case SEEK_CUR: - dlg_exiterr("Cannot get file position"); - break; - case SEEK_END: - dlg_exiterr("Cannot seek to end of file"); - break; - case SEEK_SET: - dlg_exiterr("Cannot set file position to %ld", offset); - break; - } - } - return fpos; -} - -static long -ftell_obj(MY_OBJ * obj) -{ - return lseek_obj(obj, 0L, SEEK_CUR); -} - -static void -lseek_set(MY_OBJ * obj, long offset) -{ - long actual = lseek_obj(obj, offset, SEEK_SET); - - if (actual != offset) { - dlg_exiterr("Cannot set file position to %ld (actual %ld)\n", - offset, actual); - } -} - -static void -lseek_end(MY_OBJ * obj, long offset) -{ - long actual = lseek_obj(obj, offset, SEEK_END); - - if (offset == 0L && actual > offset) { - obj->file_size = actual; - } -} - -static void -lseek_cur(MY_OBJ * obj, long offset) -{ - long actual = lseek_obj(obj, offset, SEEK_CUR); - - if (actual != offset) { - DLG_TRACE(("# Lseek returned %ld, expected %ld\n", actual, offset)); - } -} - -static char * -xalloc(size_t size) -{ - char *result = dlg_malloc(char, size); - assert_ptr(result, "xalloc"); - return result; -} - -/* - * read_high() substitutes read() for tab->spaces conversion - * - * buffer_len, fd_bytes_read, bytes_read are modified - * buf is allocated - * - * fd_bytes_read is the effective number of bytes read from file - * bytes_read is the length of buf, that can be different if tab_correct - */ -static void -read_high(MY_OBJ * obj, size_t size_read) -{ - char *buftab; - - /* Allocate space for read buffer */ - buftab = xalloc(size_read + 1); - - if ((obj->fd_bytes_read = read(obj->fd, buftab, size_read)) != -1) { - int j; - long begin_line; - - buftab[obj->fd_bytes_read] = '\0'; /* mark end of valid data */ - - if (dialog_vars.tab_correct) { - - /* calculate bytes_read by buftab and fd_bytes_read */ - obj->bytes_read = begin_line = 0; - for (j = 0; j < obj->fd_bytes_read; j++) - if (buftab[j] == TAB) - obj->bytes_read += dialog_state.tab_len - - ((obj->bytes_read - begin_line) - % dialog_state.tab_len); - else if (buftab[j] == '\n') { - obj->bytes_read++; - begin_line = obj->bytes_read; - } else - obj->bytes_read++; - - if (obj->bytes_read > obj->buffer_len) { - if (obj->buffer_first) - obj->buffer_first = FALSE; /* disp = 0 */ - else { - free(obj->buf); - } - - obj->buffer_len = obj->bytes_read; - - /* Allocate space for read buffer */ - obj->buf = xalloc((size_t) obj->buffer_len + 1); - } - - } else { - if (obj->buffer_first) { - obj->buffer_first = FALSE; - - /* Allocate space for read buffer */ - obj->buf = xalloc(size_read + 1); - } - - obj->bytes_read = obj->fd_bytes_read; - } - - j = 0; - begin_line = 0; - if (obj->buf != NULL) { - int i = 0; - - while (j < obj->fd_bytes_read) { - char ch; - - if (((ch = buftab[j++]) == TAB) - && (dialog_vars.tab_correct != 0)) { - int n; - int tmpint = (dialog_state.tab_len - - ((int) ((long) i - begin_line) % dialog_state.tab_len)); - for (n = 0; n < tmpint; n++) - obj->buf[i++] = ' '; - } else { - if (ch == '\n') - begin_line = i + 1; - obj->buf[i++] = ch; - } - } - - obj->buf[i] = '\0'; /* mark end of valid data */ - } - - } - if (obj->bytes_read == -1) - dlg_exiterr("Error reading file"); - free(buftab); -} - -static long -find_first(MY_OBJ * obj, char *buffer, long length) -{ - long result = 0; - - if (buffer != NULL) { - long recount = obj->page_length; - while (length > 0) { - if (buffer[length] == '\n') { - if (--recount < 0) { - result = length; - break; - } - } - --length; - } - } - return result; -} - -static long -tabize(MY_OBJ * obj, long val, long *first_pos) -{ - long fpos; - long i, count, begin_line; - char *buftab; - - if (!dialog_vars.tab_correct) - return val; - - fpos = ftell_obj(obj); - - lseek_set(obj, fpos - obj->fd_bytes_read); - - /* Allocate space for read buffer */ - buftab = xalloc((size_t) val + 1); - - if ((read(obj->fd, buftab, (size_t) val)) == -1) - dlg_exiterr("Error reading file in tabize()."); - - begin_line = count = 0; - if (first_pos != 0) - *first_pos = 0; - - for (i = 0; i < val; i++) { - if ((first_pos != 0) && (count >= val)) { - *first_pos = find_first(obj, buftab, i); - break; - } - if (buftab[i] == TAB) - count += dialog_state.tab_len - - ((count - begin_line) % dialog_state.tab_len); - else if (buftab[i] == '\n') { - count++; - begin_line = count; - } else - count++; - } - - lseek_set(obj, fpos); - free(buftab); - return count; -} -/* - * Return current line of text. - * 'page' should point to start of current line before calling, and will be - * updated to point to start of next line. - */ -static char * -get_line(MY_OBJ * obj) -{ - int i = 0; - - obj->end_reached = FALSE; - if (obj->buf != NULL) { - while (obj->buf[obj->in_buf] != '\n') { - if (obj->buf[obj->in_buf] == '\0') { /* Either end of file or end of buffer reached */ - long fpos = ftell_obj(obj); - - if (fpos < obj->file_size) { /* Not end of file yet */ - /* We've reached end of buffer, but not end of file yet, so - * read next part of file into buffer - */ - read_high(obj, BUF_SIZE); - obj->in_buf = 0; - } else { - if (!obj->end_reached) - obj->end_reached = TRUE; - break; - } - } else if (i < MAX_LEN) - obj->line[i++] = obj->buf[obj->in_buf++]; - else { - if (i == MAX_LEN) /* Truncate lines longer than MAX_LEN characters */ - obj->line[i++] = '\0'; - obj->in_buf++; - } - } - } - if (i <= MAX_LEN) - obj->line[i] = '\0'; - if (!obj->end_reached) - obj->in_buf++; /* move past '\n' */ - - return obj->line; -} - -static bool -match_string(MY_OBJ * obj, char *string) -{ - char *match = get_line(obj); - return strstr(match, string) != 0; -} - -/* - * Go back 'n' lines in text file. Called by dialog_textbox(). - * 'in_buf' will be updated to point to the desired line in 'buf'. - */ -static void -back_lines(MY_OBJ * obj, long n) -{ - int i; - long fpos; - long val_to_tabize; - - obj->begin_reached = FALSE; - /* We have to distinguish between end_reached and !end_reached since at end - * of file, the line is not ended by a '\n'. The code inside 'if' - * basically does a '--in_buf' to move one character backward so as to - * skip '\n' of the previous line */ - if (!obj->end_reached) { - /* Either beginning of buffer or beginning of file reached? */ - - if (obj->in_buf == 0) { - fpos = ftell_obj(obj); - - if (fpos > obj->fd_bytes_read) { /* Not beginning of file yet */ - /* We've reached beginning of buffer, but not beginning of file - * yet, so read previous part of file into buffer. Note that - * we only move backward for BUF_SIZE/2 bytes, but not BUF_SIZE - * bytes to avoid re-reading again in print_page() later - */ - /* Really possible to move backward BUF_SIZE/2 bytes? */ - if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { - /* No, move less than */ - lseek_set(obj, 0L); - val_to_tabize = fpos - obj->fd_bytes_read; - } else { /* Move backward BUF_SIZE/2 bytes */ - lseek_cur(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read)); - val_to_tabize = BUF_SIZE / 2; - } - read_high(obj, BUF_SIZE); - - obj->in_buf = tabize(obj, val_to_tabize, (long *) 0); - - } else { /* Beginning of file reached */ - obj->begin_reached = TRUE; - return; - } - } - obj->in_buf--; - if (obj->buf == NULL - || obj->in_buf < 0 - || obj->in_buf >= obj->bytes_read - || obj->buf[obj->in_buf] != '\n') - /* Something's wrong... */ - dlg_exiterr("Internal error in back_lines()."); - } - - /* Go back 'n' lines */ - for (i = 0; i < n; i++) { - do { - if (obj->in_buf == 0) { - fpos = ftell_obj(obj); - - if (fpos > obj->fd_bytes_read) { - /* Really possible to move backward BUF_SIZE/2 bytes? */ - if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { - /* No, move less than */ - lseek_set(obj, 0L); - val_to_tabize = fpos - obj->fd_bytes_read; - } else { /* Move backward BUF_SIZE/2 bytes */ - lseek_cur(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read)); - val_to_tabize = BUF_SIZE / 2; - } - read_high(obj, BUF_SIZE); - - obj->in_buf = tabize(obj, val_to_tabize, (long *) 0); - - } else { /* Beginning of file reached */ - obj->begin_reached = TRUE; - return; - } - } - } while (obj->buf[--(obj->in_buf)] != '\n'); - } - obj->in_buf++; -} - -/* - * Print a new line of text. - */ -static void -print_line(MY_OBJ * obj, int row, int width) -{ - if (wmove(obj->text, row, 0) != ERR) { - int i, y, x; - char *line = get_line(obj); - const int *cols = dlg_index_columns(line); - const int *indx = dlg_index_wchars(line); - int limit = dlg_count_wchars(line); - int first = 0; - int last = limit; - - if (width > getmaxx(obj->text)) - width = getmaxx(obj->text); - --width; /* for the leading ' ' */ - - for (i = 0; i <= limit && cols[i] < obj->hscroll; ++i) - first = i; - - for (i = first; (i <= limit) && ((cols[i] - cols[first]) < width); ++i) - last = i; - - (void) waddch(obj->text, ' '); - (void) waddnstr(obj->text, line + indx[first], indx[last] - indx[first]); - - getyx(obj->text, y, x); - if (y == row) { /* Clear 'residue' of previous line */ - for (i = 0; i <= width - x; i++) { - (void) waddch(obj->text, ' '); - } - } - } -} - -/* - * Print a new page of text. - */ -static void -print_page(MY_OBJ * obj, int height, int width) -{ - int i, passed_end = 0; - - obj->page_length = 0; - for (i = 0; i < height; i++) { - print_line(obj, i, width); - if (!passed_end) - obj->page_length++; - if (obj->end_reached && !passed_end) - passed_end = 1; - } - (void) wnoutrefresh(obj->text); - dlg_trace_win(obj->text); -} - -/* - * Print current position - */ -static void -print_position(MY_OBJ * obj, WINDOW *win, int height, int width) -{ - long fpos; - long size; - long first = -1; - - fpos = ftell_obj(obj); - if (dialog_vars.tab_correct) - size = tabize(obj, obj->in_buf, &first); - else - first = find_first(obj, obj->buf, size = obj->in_buf); - - dlg_draw_scrollbar(win, - first, - fpos - obj->fd_bytes_read + size, - fpos - obj->fd_bytes_read + size, - obj->file_size, - 0, PAGE_WIDTH, - 0, PAGE_LENGTH + 1, - border_attr, - border_attr); -} - -/* - * Display a dialog box and get the search term from user. - */ -static int -get_search_term(WINDOW *dialog, char *input, int height, int width) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - INPUTSTR_BINDINGS, - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - - int old_x, old_y; - int box_x, box_y; - int box_height, box_width; - int offset = 0; - int key = 0; - int fkey = 0; - bool first = TRUE; - int result = DLG_EXIT_UNKNOWN; - const char *caption = _("Search"); - int len_caption = dlg_count_columns(caption); - const int *indx; - int limit; - WINDOW *widget; - - getbegyx(dialog, old_y, old_x); - - box_height = 1 + (2 * MARGIN); - box_width = len_caption + (2 * (MARGIN + 2)); - box_width = MAX(box_width, 30); - box_width = MIN(box_width, getmaxx(dialog) - 2 * MARGIN); - len_caption = MIN(len_caption, box_width - (2 * (MARGIN + 1))); - - box_x = (width - box_width) / 2; - box_y = (height - box_height) / 2; - widget = dlg_new_modal_window(dialog, - box_height, box_width, - old_y + box_y, old_x + box_x); - keypad(widget, TRUE); - dlg_register_window(widget, "searchbox", binding); - - dlg_draw_box2(widget, 0, 0, box_height, box_width, - searchbox_attr, - searchbox_border_attr, - searchbox_border2_attr); - dlg_attrset(widget, searchbox_title_attr); - (void) wmove(widget, 0, (box_width - len_caption) / 2); - - indx = dlg_index_wchars(caption); - limit = dlg_limit_columns(caption, len_caption, 0); - (void) waddnstr(widget, caption + indx[0], indx[limit] - indx[0]); - - box_width -= 2; - offset = dlg_count_columns(input); - - while (result == DLG_EXIT_UNKNOWN) { - if (!first) { - key = dlg_getc(widget, &fkey); - if (fkey) { - switch (fkey) { -#ifdef KEY_RESIZE - case KEY_RESIZE: - result = DLG_EXIT_CANCEL; - continue; -#endif - case DLGK_ENTER: - result = DLG_EXIT_OK; - continue; - } - } else if (key == ESC) { - result = DLG_EXIT_ESC; - continue; - } else if (key == ERR) { - napms(50); - continue; - } - } - if (dlg_edit_string(input, &offset, key, fkey, first)) { - dlg_show_string(widget, input, offset, searchbox_attr, - 1, 1, box_width, FALSE, first); - first = FALSE; - } - } - dlg_del_window(widget); - return result; -} - -static bool -perform_search(MY_OBJ * obj, int height, int width, int key, char *search_term) -{ - int dir; - bool moved = FALSE; - - /* set search direction */ - dir = (key == '/' || key == 'n') ? 1 : 0; - if (dir ? !obj->end_reached : !obj->begin_reached) { - long tempinx; - long fpos; - int result; - bool found; - bool temp, temp1; - - if (key == 'n' || key == 'N') { - if (search_term[0] == '\0') { /* No search term yet */ - (void) beep(); - return FALSE; - } - /* Get search term from user */ - } else if ((result = get_search_term(obj->text, search_term, - PAGE_LENGTH, - PAGE_WIDTH)) != DLG_EXIT_OK - || search_term[0] == '\0') { -#ifdef KEY_RESIZE - if (result == DLG_EXIT_CANCEL) { - ungetch(key); - ungetch(KEY_RESIZE); - /* FALLTHRU */ - } -#else - (void) result; -#endif - /* ESC pressed, or no search term, reprint page to clear box */ - dlg_attrset(obj->text, dialog_attr); - back_lines(obj, obj->page_length); - return TRUE; - } - /* Save variables for restoring in case search term can't be found */ - tempinx = obj->in_buf; - temp = obj->begin_reached; - temp1 = obj->end_reached; - fpos = ftell_obj(obj) - obj->fd_bytes_read; - /* update 'in_buf' to point to next (previous) line before - forward (backward) searching */ - back_lines(obj, (dir - ? obj->page_length - 1 - : obj->page_length + 1)); - if (dir) { /* Forward search */ - while ((found = match_string(obj, search_term)) == FALSE) { - if (obj->end_reached) - break; - } - } else { /* Backward search */ - while ((found = match_string(obj, search_term)) == FALSE) { - if (obj->begin_reached) - break; - back_lines(obj, 2L); - } - } - if (found == FALSE) { /* not found */ - (void) beep(); - /* Restore program state to that before searching */ - lseek_set(obj, fpos); - - read_high(obj, BUF_SIZE); - - obj->in_buf = tempinx; - obj->begin_reached = temp; - obj->end_reached = temp1; - /* move 'in_buf' to point to start of current page to - * re-print current page. Note that 'in_buf' always points - * to start of next page, so this is necessary - */ - back_lines(obj, obj->page_length); - } else { /* Search term found */ - back_lines(obj, 1L); - } - /* Reprint page */ - dlg_attrset(obj->text, dialog_attr); - moved = TRUE; - } else { /* no need to find */ - (void) beep(); - } - return moved; -} - -/* - * Display text from a file in a dialog box. - */ -int -dialog_textbox(const char *title, const char *filename, int height, int width) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_GRID_DOWN, 'J' ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, 'j' ), - DLG_KEYS_DATA( DLGK_GRID_DOWN, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, 'H' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, 'h' ), - DLG_KEYS_DATA( DLGK_GRID_LEFT, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, 'L' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, 'l' ), - DLG_KEYS_DATA( DLGK_GRID_RIGHT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_GRID_UP, 'K' ), - DLG_KEYS_DATA( DLGK_GRID_UP, 'k' ), - DLG_KEYS_DATA( DLGK_GRID_UP, KEY_UP ), - DLG_KEYS_DATA( DLGK_PAGE_FIRST, 'g' ), - DLG_KEYS_DATA( DLGK_PAGE_FIRST, KEY_HOME ), - DLG_KEYS_DATA( DLGK_PAGE_LAST, 'G' ), - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_PAGE_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, CHR_SPACE ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, 'B' ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, 'b' ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_BEGIN, '0' ), - DLG_KEYS_DATA( DLGK_BEGIN, KEY_BEG ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - long fpos; - int x, y, cur_x, cur_y; - int key, fkey; - int next = 0; - int i, passed_end; - char search_term[MAX_LEN + 1]; - MY_OBJ obj; - WINDOW *dialog; - bool moved; - int result = DLG_EXIT_UNKNOWN; - int button = dlg_default_button(); - int min_width = 12; - - DLG_TRACE(("# textbox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("filename", filename); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - - search_term[0] = '\0'; /* no search term entered yet */ - - memset(&obj, 0, sizeof(obj)); - - obj.begin_reached = TRUE; - obj.buffer_first = TRUE; - obj.end_reached = FALSE; - obj.buttons = dlg_exit_label(); - - /* Open input file for reading */ - if ((obj.fd = open(filename, O_RDONLY)) == -1) - dlg_exiterr("Can't open input file %s", filename); - - /* Get file size. Actually, 'file_size' is the real file size - 1, - since it's only the last byte offset from the beginning */ - lseek_end(&obj, 0L); - - /* Restore file pointer to beginning of file after getting file size */ - lseek_set(&obj, 0L); - - read_high(&obj, BUF_SIZE); - - dlg_button_layout(obj.buttons, &min_width); - -#ifdef KEY_RESIZE - retry: -#endif - moved = TRUE; - - dlg_auto_sizefile(title, filename, &height, &width, 2, min_width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "textbox", binding); - dlg_register_buttons(dialog, "textbox", obj.buttons); - - dlg_mouse_setbase(x, y); - - /* Create window for text region, used for scrolling text */ - obj.text = dlg_sub_window(dialog, PAGE_LENGTH, PAGE_WIDTH, y + 1, x + 1); - - /* register the new window, along with its borders */ - dlg_mouse_mkbigregion(0, 0, PAGE_LENGTH + 2, width, KEY_MAX, 1, 1, 1 /* lines */ ); - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_draw_buttons(dialog, PAGE_LENGTH + 2, 0, obj.buttons, button, FALSE, width); - (void) wnoutrefresh(dialog); - getyx(dialog, cur_y, cur_x); /* Save cursor position */ - - dlg_attr_clear(obj.text, PAGE_LENGTH, PAGE_WIDTH, dialog_attr); - - while (result == DLG_EXIT_UNKNOWN) { - int code; - - /* - * Update the screen according to whether we shifted up/down by a line - * or not. - */ - if (moved) { - if (next < 0) { - (void) scrollok(obj.text, TRUE); - (void) scroll(obj.text); /* Scroll text region up one line */ - (void) scrollok(obj.text, FALSE); - print_line(&obj, PAGE_LENGTH - 1, PAGE_WIDTH); - (void) wnoutrefresh(obj.text); - } else if (next > 0) { - /* - * We don't call print_page() here but use scrolling to ensure - * faster screen update. However, 'end_reached' and - * 'page_length' should still be updated, and 'in_buf' should - * point to start of next page. This is done by calling - * get_line() in the following 'for' loop. - */ - (void) scrollok(obj.text, TRUE); - (void) wscrl(obj.text, -1); /* Scroll text region down one line */ - (void) scrollok(obj.text, FALSE); - obj.page_length = 0; - passed_end = 0; - for (i = 0; i < PAGE_LENGTH; i++) { - if (!i) { - print_line(&obj, 0, PAGE_WIDTH); /* print first line of page */ - (void) wnoutrefresh(obj.text); - } else - (void) get_line(&obj); /* Called to update 'end_reached' and 'in_buf' */ - if (!passed_end) - obj.page_length++; - if (obj.end_reached && !passed_end) - passed_end = 1; - } - } else { - print_page(&obj, PAGE_LENGTH, PAGE_WIDTH); - } - print_position(&obj, dialog, height, width); - (void) wmove(dialog, cur_y, cur_x); /* Restore cursor position */ - wrefresh(dialog); - } - moved = FALSE; /* assume we'll not move */ - next = 0; /* ...but not scroll by a line */ - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_ok_button_key(result, &button, &key, &fkey)) - break; - } - - if (!fkey && (code = dlg_char_to_button(key, obj.buttons)) >= 0) { - result = dlg_ok_buttoncode(code); - break; - } - - if (fkey) { - switch (key) { - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_exit_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } else { - beep(); - } - break; - case DLGK_FIELD_NEXT: - button = dlg_next_button(obj.buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - obj.buttons, button, - FALSE, width); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(obj.buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - obj.buttons, button, - FALSE, width); - break; - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_PAGE_FIRST: - if (!obj.begin_reached) { - obj.begin_reached = 1; - /* First page not in buffer? */ - fpos = ftell_obj(&obj); - - if (fpos > obj.fd_bytes_read) { - /* Yes, we have to read it in */ - lseek_set(&obj, 0L); - - read_high(&obj, BUF_SIZE); - } - obj.in_buf = 0; - moved = TRUE; - } - break; - case DLGK_PAGE_LAST: - obj.end_reached = TRUE; - /* Last page not in buffer? */ - fpos = ftell_obj(&obj); - - if (fpos < obj.file_size) { - /* Yes, we have to read it in */ - lseek_end(&obj, -BUF_SIZE); - - read_high(&obj, BUF_SIZE); - } - obj.in_buf = obj.bytes_read; - back_lines(&obj, (long) PAGE_LENGTH); - moved = TRUE; - break; - case DLGK_GRID_UP: /* Previous line */ - if (!obj.begin_reached) { - back_lines(&obj, obj.page_length + 1); - next = 1; - moved = TRUE; - } - break; - case DLGK_PAGE_PREV: /* Previous page */ - case DLGK_MOUSE(KEY_PPAGE): - if (!obj.begin_reached) { - back_lines(&obj, obj.page_length + PAGE_LENGTH); - moved = TRUE; - } - break; - case DLGK_GRID_DOWN: /* Next line */ - if (!obj.end_reached) { - obj.begin_reached = 0; - next = -1; - moved = TRUE; - } - break; - case DLGK_PAGE_NEXT: /* Next page */ - case DLGK_MOUSE(KEY_NPAGE): - if (!obj.end_reached) { - obj.begin_reached = 0; - moved = TRUE; - } - break; - case DLGK_BEGIN: /* Beginning of line */ - if (obj.hscroll > 0) { - obj.hscroll = 0; - /* Reprint current page to scroll horizontally */ - back_lines(&obj, obj.page_length); - moved = TRUE; - } - break; - case DLGK_GRID_LEFT: /* Scroll left */ - if (obj.hscroll > 0) { - obj.hscroll--; - /* Reprint current page to scroll horizontally */ - back_lines(&obj, obj.page_length); - moved = TRUE; - } - break; - case DLGK_GRID_RIGHT: /* Scroll right */ - if (obj.hscroll < MAX_LEN) { - obj.hscroll++; - /* Reprint current page to scroll horizontally */ - back_lines(&obj, obj.page_length); - moved = TRUE; - } - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - back_lines(&obj, obj.page_length); - /* repaint */ - _dlg_resize_cleanup(dialog); - goto retry; -#endif - } - } else { - switch (key) { - case '/': /* Forward search */ - case 'n': /* Repeat forward search */ - case '?': /* Backward search */ - case 'N': /* Repeat backward search */ - moved = perform_search(&obj, height, width, key, search_term); - fkey = FALSE; - break; - default: - beep(); - break; - } - } - } - dlg_add_last_key(-1); - - dlg_del_window(dialog); - free(obj.buf); - (void) close(obj.fd); - dlg_mouse_free_regions(); - return result; -} diff --git a/contrib/dialog/timebox.c b/contrib/dialog/timebox.c deleted file mode 100644 index 73b057ada815..000000000000 --- a/contrib/dialog/timebox.c +++ /dev/null @@ -1,430 +0,0 @@ -/* - * $Id: timebox.c,v 1.69 2020/11/23 09:04:00 tom Exp $ - * - * timebox.c -- implements the timebox dialog - * - * Copyright 2001-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#include <time.h> - -#define ONE_HIGH 1 -#define ONE_WIDE 2 -#define BTN_HIGH 2 - -#define MIN_HIGH (ONE_HIGH + BTN_HIGH + (4 * MARGIN)) -#define MIN_WIDE ((3 * (ONE_WIDE + 2 * MARGIN)) + 2 + (2 * MARGIN)) - -typedef enum { - sHR = -3 - ,sMN = -2 - ,sSC = -1 -} STATES; - -struct _box; - -typedef struct _box { - WINDOW *parent; - WINDOW *window; - int x; - int y; - int width; - int height; - int period; - int value; -} BOX; - -static int -next_or_previous(int key) -{ - int result = 0; - - switch (key) { - case DLGK_ITEM_PREV: - result = -1; - break; - case DLGK_ITEM_NEXT: - result = 1; - break; - default: - beep(); - break; - } - return result; -} -/* - * Draw the hour-of-month selection box - */ -static int -draw_cell(BOX * data) -{ - werase(data->window); - dlg_draw_box(data->parent, - data->y - MARGIN, data->x - MARGIN, - data->height + (2 * MARGIN), data->width + (2 * MARGIN), - menubox_border_attr, menubox_border2_attr); - - dlg_attrset(data->window, item_attr); - wprintw(data->window, "%02d", data->value); - return 0; -} - -static int -init_object(BOX * data, - WINDOW *parent, - int x, int y, - int width, int height, - int period, int value, - int code) -{ - (void) code; - - data->parent = parent; - data->x = x; - data->y = y; - data->width = width; - data->height = height; - data->period = period; - data->value = value % period; - - data->window = dlg_der_window(data->parent, - data->height, data->width, - data->y, data->x); - if (data->window == 0) - return -1; - - dlg_mouse_setbase(getbegx(parent), getbegy(parent)); - dlg_mouse_mkregion(y, x, height, width, code); - - return 0; -} - -static int -CleanupResult(int code, WINDOW *dialog, char *prompt, DIALOG_VARS * save_vars) -{ - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - dlg_restore_vars(save_vars); - - return code; -} - -#define DrawObject(data) draw_cell(data) - -/* - * Display a dialog box for entering a date - */ -int -dialog_timebox(const char *title, - const char *subtitle, - int height, - int width, - int hour, - int minute, - int second) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - DLG_KEYS_DATA( DLGK_DELETE_RIGHT,KEY_DC ), - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - TOGGLEKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_FIRST,KEY_HOME ), - DLG_KEYS_DATA( DLGK_FIELD_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_FIELD_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, CHR_BACKSPACE ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+'), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_NEXT), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_NPAGE), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_PREVIOUS ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - BOX hr_box, mn_box, sc_box; - int key, fkey; - int button; - int result = DLG_EXIT_UNKNOWN; - WINDOW *dialog; - time_t now_time; - struct tm current; - int state = dlg_default_button(); - const char **buttons = dlg_ok_labels(); - char *prompt; - char buffer[MAX_LEN]; - DIALOG_VARS save_vars; - - DLG_TRACE(("# timebox args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", subtitle); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("hour", hour); - DLG_TRACE2N("minute", minute); - DLG_TRACE2N("second", second); - - now_time = time((time_t *) 0); - current = *localtime(&now_time); - - dlg_save_vars(&save_vars); - dialog_vars.separate_output = TRUE; - - dlg_does_output(); - -#ifdef KEY_RESIZE - retry: -#endif - - prompt = dlg_strclone(subtitle); - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE); - - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - dialog = dlg_new_window(height, width, - dlg_box_y_ordinate(height), - dlg_box_x_ordinate(width)); - - if (hour >= 24 || minute >= 60 || second >= 60) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - dlg_register_window(dialog, "timebox", binding); - dlg_register_buttons(dialog, "timebox", buttons); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - dlg_draw_helpline(dialog, FALSE); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - /* compute positions of hour, month and year boxes */ - memset(&hr_box, 0, sizeof(hr_box)); - memset(&mn_box, 0, sizeof(mn_box)); - memset(&sc_box, 0, sizeof(sc_box)); - - if (init_object(&hr_box, - dialog, - (width - MIN_WIDE + 1) / 2 + MARGIN, - (height - MIN_HIGH + MARGIN), - ONE_WIDE, - ONE_HIGH, - 24, - hour >= 0 ? hour : current.tm_hour, - 'H') < 0 - || DrawObject(&hr_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - mvwprintw(dialog, hr_box.y, hr_box.x + ONE_WIDE + MARGIN, ":"); - if (init_object(&mn_box, - dialog, - hr_box.x + (ONE_WIDE + 2 * MARGIN + 1), - hr_box.y, - hr_box.width, - hr_box.height, - 60, - minute >= 0 ? minute : current.tm_min, - 'M') < 0 - || DrawObject(&mn_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - mvwprintw(dialog, mn_box.y, mn_box.x + ONE_WIDE + MARGIN, ":"); - if (init_object(&sc_box, - dialog, - mn_box.x + (ONE_WIDE + 2 * MARGIN + 1), - mn_box.y, - mn_box.width, - mn_box.height, - 60, - second >= 0 ? second : current.tm_sec, - 'S') < 0 - || DrawObject(&sc_box) < 0) { - return CleanupResult(DLG_EXIT_ERROR, dialog, prompt, &save_vars); - } - - dlg_trace_win(dialog); - while (result == DLG_EXIT_UNKNOWN) { - BOX *obj = (state == sHR ? &hr_box - : (state == sMN ? &mn_box : - (state == sSC ? &sc_box : 0))); - int key2; - - button = (state < 0) ? 0 : state; - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - if (obj != 0) - dlg_set_focus(dialog, obj->window); - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - if ((key2 = dlg_char_to_button(key, buttons)) >= 0) { - result = key2; - } else { - /* handle function-keys */ - if (fkey) { - switch (key) { - case DLGK_MOUSE('H'): - state = sHR; - break; - case DLGK_MOUSE('M'): - state = sMN; - break; - case DLGK_MOUSE('S'): - state = sSC; - break; - case DLGK_TOGGLE: - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_FIELD_PREV: - state = dlg_prev_ok_buttonindex(state, sHR); - break; - case DLGK_FIELD_NEXT: - state = dlg_next_ok_buttonindex(state, sHR); - break; - case DLGK_FIELD_FIRST: - if (obj != 0) { - obj->value = 0; - (void) DrawObject(obj); - } - break; - case DLGK_FIELD_LAST: - if (obj != 0) { - switch (state) { - case sHR: - obj->value = 23; - break; - case sMN: - case sSC: - obj->value = 59; - break; - } - (void) DrawObject(obj); - } - break; - case DLGK_DELETE_RIGHT: - if (obj != 0) { - obj->value /= 10; - (void) DrawObject(obj); - } - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - hour = hr_box.value; - minute = mn_box.value; - second = sc_box.value; - /* repaint */ - free(prompt); - _dlg_resize_cleanup(dialog); - goto retry; -#endif - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_ok_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } else if (obj != 0) { - int step = next_or_previous(key); - if (step != 0) { - obj->value += step; - while (obj->value < 0) - obj->value += obj->period; - obj->value %= obj->period; - (void) DrawObject(obj); - } - } - break; - } - } else if (isdigit(key)) { - if (obj != 0) { - int digit = (key - '0'); - int value = (obj->value * 10) + digit; - if (value < obj->period) { - obj->value = value; - (void) DrawObject(obj); - } else { - beep(); - } - } - } else if (key > 0) { - beep(); - } - } - } - -#define DefaultFormat(dst, src) \ - sprintf(dst, "%02d:%02d:%02d", \ - hr_box.value, mn_box.value, sc_box.value) - -#if defined(HAVE_STRFTIME) - if (dialog_vars.time_format != 0) { - size_t used; - time_t now = time((time_t *) 0); - struct tm *parts = localtime(&now); - - parts->tm_sec = sc_box.value; - parts->tm_min = mn_box.value; - parts->tm_hour = hr_box.value; - used = strftime(buffer, - sizeof(buffer) - 1, - dialog_vars.time_format, - parts); - if (used == 0 || *buffer == '\0') - DefaultFormat(buffer, hr_box); - } else -#endif - DefaultFormat(buffer, hr_box); - - dlg_add_result(buffer); - AddLastKey(); - - return CleanupResult(result, dialog, prompt, &save_vars); -} diff --git a/contrib/dialog/trace.c b/contrib/dialog/trace.c deleted file mode 100644 index e564d58b327f..000000000000 --- a/contrib/dialog/trace.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * $Id: trace.c,v 1.33 2020/11/23 23:32:43 tom Exp $ - * - * trace.c -- implements screen-dump and keystroke-logging - * - * Copyright 2007-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> - -#ifdef HAVE_DLG_TRACE - -#ifdef NEED_WCHAR_H -#include <wchar.h> -#endif - -#include <dlg_keys.h> -#include <time.h> - -#define myFP dialog_state.trace_output - -static void -dlg_trace_time(const char *tag) -{ - time_t now = time((time_t *) 0); - fprintf(myFP, "%s %s", tag, ctime(&now)); -} - -void -dlg_trace_msg(const char *fmt, ...) -{ - if (myFP != 0) { - va_list ap; - va_start(ap, fmt); - vfprintf(myFP, fmt, ap); - va_end(ap); - fflush(myFP); - } -} - -void -dlg_trace_va_msg(const char *fmt, va_list ap) -{ - if (myFP != 0) { - vfprintf(myFP, fmt, ap); - fflush(myFP); - } -} - -void -dlg_trace_2s(const char *name, const char *value) -{ - bool first = TRUE; - int left, right = 0; - - if (value == 0) - value = "<NULL>"; - - while (value[right] != '\0') { - const char *next; - - value += right; - if ((next = strchr(value, '\n')) != 0) { - left = (int) (next - value); - right = left + 1; - } else { - left = (int) strlen(value); - right = left; - } - if (first) { - first = FALSE; - dlg_trace_msg("#%14s = %.*s\n", name, left, value); - } else { - dlg_trace_msg("#+%13s%.*s\n", " ", left, value); - } - } -} - -void -dlg_trace_2n(const char *name, int value) -{ - dlg_trace_msg("#%14s = %d\n", name, value); -} - -void -dlg_trace_win(WINDOW *win) -{ - if (myFP != 0) { - WINDOW *top = wgetparent(win); - - while (top != 0 && top != stdscr) { - win = top; - top = wgetparent(win); - } - - if (win != 0) { - int rc = getmaxy(win); - int cc = getmaxx(win); - chtype ch, c2; - int y, x; - int j, k; - - fprintf(myFP, "window %dx%d at %d,%d\n", - rc, cc, getbegy(win), getbegx(win)); - - getyx(win, y, x); - for (j = 0; j < rc; ++j) { - fprintf(myFP, "%3d:", j); - for (k = 0; k < cc; ++k) { -#ifdef USE_WIDE_CURSES - char buffer[80]; - - ch = mvwinch(win, j, k) & (A_CHARTEXT | A_ALTCHARSET); - if (ch & A_ALTCHARSET) { - c2 = dlg_asciibox(ch); - if (c2 != 0) { - ch = c2; - } - buffer[0] = (char) ch; - buffer[1] = '\0'; - } else { - cchar_t cch; - const wchar_t *uc; - - if (win_wch(win, &cch) == ERR - || (uc = wunctrl((&cch))) == 0 - || uc[1] != 0 - || wcwidth(uc[0]) <= 0) { - buffer[0] = '.'; - buffer[1] = '\0'; - } else { - mbstate_t state; - const wchar_t *ucp = uc; - - memset(&state, 0, sizeof(state)); - wcsrtombs(buffer, &ucp, sizeof(buffer), &state); - k += wcwidth(uc[0]) - 1; - } - } - fputs(buffer, myFP); -#else - ch = mvwinch(win, j, k) & (A_CHARTEXT | A_ALTCHARSET); - c2 = dlg_asciibox(ch); - if (c2 != 0) { - ch = c2; - } else if (unctrl(ch) == 0 || strlen(unctrl(ch)) > 1) { - ch = '.'; - } - fputc((int) (ch & 0xff), myFP); -#endif - } - fputc('\n', myFP); - } - wmove(win, y, x); - fflush(myFP); - } - } -} - -void -dlg_trace_chr(int ch, int fkey) -{ - static int last_err = 0; - - /* - * Do not bother to trace ERR's indefinitely, since those are usually due - * to relatively short polling timeouts. - */ - if (last_err && !fkey && ch == ERR) { - ++last_err; - } else if (myFP != 0) { - const char *fkey_name = "?"; - - if (last_err) { - fprintf(myFP, "skipped %d ERR's\n", last_err); - last_err = 0; - } - - if (fkey) { - if (fkey > KEY_MAX || (fkey_name = keyname(fkey)) == 0) { -#define CASE(name) case name: fkey_name = #name; break - switch ((DLG_KEYS_ENUM) fkey) { - CASE(DLGK_MIN); - CASE(DLGK_OK); - CASE(DLGK_CANCEL); - CASE(DLGK_EXTRA); - CASE(DLGK_HELP); - CASE(DLGK_ESC); - CASE(DLGK_PAGE_FIRST); - CASE(DLGK_PAGE_LAST); - CASE(DLGK_PAGE_NEXT); - CASE(DLGK_PAGE_PREV); - CASE(DLGK_ITEM_FIRST); - CASE(DLGK_ITEM_LAST); - CASE(DLGK_ITEM_NEXT); - CASE(DLGK_ITEM_PREV); - CASE(DLGK_FIELD_FIRST); - CASE(DLGK_FIELD_LAST); - CASE(DLGK_FIELD_NEXT); - CASE(DLGK_FIELD_PREV); - CASE(DLGK_FORM_FIRST); - CASE(DLGK_FORM_LAST); - CASE(DLGK_FORM_NEXT); - CASE(DLGK_FORM_PREV); - CASE(DLGK_GRID_UP); - CASE(DLGK_GRID_DOWN); - CASE(DLGK_GRID_LEFT); - CASE(DLGK_GRID_RIGHT); - CASE(DLGK_DELETE_LEFT); - CASE(DLGK_DELETE_RIGHT); - CASE(DLGK_DELETE_ALL); - CASE(DLGK_ENTER); - CASE(DLGK_BEGIN); - CASE(DLGK_FINAL); - CASE(DLGK_SELECT); - CASE(DLGK_HELPFILE); - CASE(DLGK_TRACE); - CASE(DLGK_TOGGLE); - CASE(DLGK_LEAVE); - } - } - } else if (ch == ERR) { - fkey_name = "ERR"; - last_err = 1; - } else { - fkey_name = unctrl((chtype) ch); - if (fkey_name == 0) - fkey_name = "UNKNOWN"; - } - if (ch >= 0) { - fprintf(myFP, "chr %s (ch=%#x, fkey=%d)\n", fkey_name, ch, fkey); - } else { - fprintf(myFP, "chr %s (ch=%d, fkey=%d)\n", fkey_name, ch, fkey); - } - fflush(myFP); - } -} - -void -dlg_trace(const char *fname) -{ - if (fname != 0) { - if (myFP == 0) { - myFP = fopen(fname, "a"); - if (myFP != 0) { - dlg_trace_time("## opened at"); - DLG_TRACE(("## dialog %s\n", dialog_version())); - DLG_TRACE(("## vile: confmode\n")); - } - } - } else if (myFP != 0) { - dlg_trace_time("## closed at"); - fclose(myFP); - myFP = 0; - } -} -#else -#undef dlg_trace -extern void dlg_trace(const char *); -void -dlg_trace(const char *fname) -{ - (void) fname; -} -#endif diff --git a/contrib/dialog/treeview.c b/contrib/dialog/treeview.c deleted file mode 100644 index 9853a16f539a..000000000000 --- a/contrib/dialog/treeview.c +++ /dev/null @@ -1,674 +0,0 @@ -/* - * $Id: treeview.c,v 1.43 2020/11/23 00:38:31 tom Exp $ - * - * treeview.c -- implements the treeview dialog - * - * Copyright 2012-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dlg_internals.h> -#include <dlg_keys.h> - -#define INDENT 3 -#define MIN_HIGH (1 + (5 * MARGIN)) - -typedef struct { - /* the outer-window */ - WINDOW *dialog; - bool is_check; - int box_y; - int box_x; - int check_x; - int item_x; - int use_height; - int use_width; - /* the inner-window */ - WINDOW *list; - DIALOG_LISTITEM *items; - int item_no; - int *depths; - const char *states; -} ALL_DATA; - -/* - * Print list item. The 'selected' parameter is true if 'choice' is the - * current item. That one is colored differently from the other items. - */ -static void -print_item(ALL_DATA * data, - DIALOG_LISTITEM * item, - const char *states, - int depths, - int choice, - int selected) -{ - WINDOW *win = data->list; - chtype save = dlg_get_attrs(win); - int i; - bool first = TRUE; - int climit = (getmaxx(win) - data->check_x + 1); - const char *show = (dialog_vars.no_items - ? item->name - : item->text); - - /* Clear 'residue' of last item */ - dlg_attrset(win, menubox_attr); - (void) wmove(win, choice, 0); - for (i = 0; i < data->use_width; i++) - (void) waddch(win, ' '); - - (void) wmove(win, choice, data->check_x); - dlg_attrset(win, selected ? check_selected_attr : check_attr); - (void) wprintw(win, - data->is_check ? "[%c]" : "(%c)", - states[item->state]); - dlg_attrset(win, menubox_attr); - - dlg_attrset(win, selected ? item_selected_attr : item_attr); - for (i = 0; i < depths; ++i) { - int j; - (void) wmove(win, choice, data->item_x + INDENT * i); - (void) waddch(win, ACS_VLINE); - for (j = INDENT - 1; j > 0; --j) - (void) waddch(win, ' '); - } - (void) wmove(win, choice, data->item_x + INDENT * depths); - - dlg_print_listitem(win, show, climit, first, selected); - - if (selected) { - dlg_item_help(item->help); - } - dlg_attrset(win, save); -} - -static void -print_list(ALL_DATA * data, - int choice, - int scrollamt, - int max_choice) -{ - int i; - int cur_y, cur_x; - - getyx(data->dialog, cur_y, cur_x); - - for (i = 0; i < max_choice; i++) { - print_item(data, - &data->items[scrollamt + i], - data->states, - data->depths[scrollamt + i], - i, i == choice); - } - (void) wnoutrefresh(data->list); - - dlg_draw_scrollbar(data->dialog, - (long) (scrollamt), - (long) (scrollamt), - (long) (scrollamt + max_choice), - (long) (data->item_no), - data->box_x + data->check_x, - data->box_x + data->use_width, - data->box_y, - data->box_y + data->use_height + 1, - menubox_border2_attr, - menubox_border_attr); - - (void) wmove(data->dialog, cur_y, cur_x); -} - -static bool -check_hotkey(DIALOG_LISTITEM * items, int choice) -{ - bool result = FALSE; - - if (dlg_match_char(dlg_last_getc(), - (dialog_vars.no_tags - ? items[choice].text - : items[choice].name))) { - result = TRUE; - } - return result; -} - -/* - * This is an alternate interface to 'treeview' which allows the application - * to read the list item states back directly without putting them in the - * output buffer. - */ -int -dlg_treeview(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - DIALOG_LISTITEM * items, - const char *states, - int *depths, - int flag, - int *current_item) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - DLG_KEYS_DATA( DLGK_FIELD_NEXT, KEY_RIGHT ), - DLG_KEYS_DATA( DLGK_FIELD_NEXT, TAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_BTAB ), - DLG_KEYS_DATA( DLGK_FIELD_PREV, KEY_LEFT ), - DLG_KEYS_DATA( DLGK_ITEM_FIRST, KEY_HOME ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_END ), - DLG_KEYS_DATA( DLGK_ITEM_LAST, KEY_LL ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, '+' ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, KEY_DOWN ), - DLG_KEYS_DATA( DLGK_ITEM_NEXT, CHR_NEXT ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, KEY_UP ), - DLG_KEYS_DATA( DLGK_ITEM_PREV, CHR_PREVIOUS ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, KEY_NPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_NEXT, DLGK_MOUSE(KEY_NPAGE) ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, KEY_PPAGE ), - DLG_KEYS_DATA( DLGK_PAGE_PREV, DLGK_MOUSE(KEY_PPAGE) ), - TOGGLEKEY_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - -#ifdef KEY_RESIZE - int old_height = height; - int old_width = width; -#endif - ALL_DATA all; - int i, j, key2, found, x, y, cur_y, box_x, box_y; - int key, fkey; - int button = dialog_state.visit_items ? -1 : dlg_default_button(); - int choice = dlg_default_listitem(items); - int scrollamt = 0; - int max_choice; - int use_height; - int use_width, name_width, text_width, tree_width; - int result = DLG_EXIT_UNKNOWN; - int num_states; - WINDOW *dialog, *list; - char *prompt = dlg_strclone(cprompt); - const char **buttons = dlg_ok_labels(); - const char *widget_name; - - /* we need at least two states */ - if (states == 0 || strlen(states) < 2) - states = " *"; - num_states = (int) strlen(states); - - dialog_state.plain_buttons = TRUE; - - memset(&all, 0, sizeof(all)); - all.items = items; - all.item_no = item_no; - all.states = states; - all.depths = depths; - - dlg_does_output(); - dlg_tab_correct_str(prompt); - - /* - * If this is a radiobutton list, ensure that no more than one item is - * selected initially. Allow none to be selected, since some users may - * wish to provide this flavor. - */ - if (flag == FLAG_RADIO) { - bool first = TRUE; - - for (i = 0; i < item_no; i++) { - if (items[i].state) { - if (first) { - first = FALSE; - } else { - items[i].state = 0; - } - } - } - } else { - all.is_check = TRUE; - } - widget_name = "treeview"; -#ifdef KEY_RESIZE - retry: -#endif - - use_height = list_height; - use_width = dlg_calc_list_width(item_no, items) + 10; - use_width = MAX(26, use_width); - if (use_height == 0) { - /* calculate height without items (4) */ - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width); - dlg_calc_listh(&height, &use_height, item_no); - } else { - dlg_auto_size(title, prompt, &height, &width, MIN_HIGH + use_height, use_width); - } - dlg_button_layout(buttons, &width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, widget_name, binding); - dlg_register_buttons(dialog, widget_name, buttons); - - dlg_mouse_setbase(x, y); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - - dlg_attrset(dialog, dialog_attr); - dlg_print_autowrap(dialog, prompt, height, width); - - all.use_width = width - 4; - cur_y = getcury(dialog); - box_y = cur_y + 1; - box_x = (width - all.use_width) / 2 - 1; - - /* - * After displaying the prompt, we know how much space we really have. - * Limit the list to avoid overwriting the ok-button. - */ - use_height = height - MIN_HIGH - cur_y; - if (use_height <= 0) - use_height = 1; - - max_choice = MIN(use_height, item_no); - - /* create new window for the list */ - list = dlg_sub_window(dialog, use_height, all.use_width, - y + box_y + 1, x + box_x + 1); - - /* draw a box around the list items */ - dlg_draw_box(dialog, box_y, box_x, - use_height + 2 * MARGIN, - all.use_width + 2 * MARGIN, - menubox_border_attr, menubox_border2_attr); - - text_width = 0; - name_width = 0; - tree_width = 0; - /* Find length of longest item to center treeview */ - for (i = 0; i < item_no; i++) { - tree_width = MAX(tree_width, INDENT * depths[i]); - text_width = MAX(text_width, dlg_count_columns(items[i].text)); - name_width = MAX(name_width, dlg_count_columns(items[i].name)); - } - if (dialog_vars.no_tags && !dialog_vars.no_items) { - tree_width += text_width; - } else if (dialog_vars.no_items) { - tree_width += name_width; - } else { - tree_width += (text_width + name_width); - } - - use_width = (all.use_width - 4); - tree_width = MIN(tree_width, all.use_width); - - all.check_x = (use_width - tree_width) / 2; - all.item_x = ((dialog_vars.no_tags - ? 0 - : (dialog_vars.no_items - ? 0 - : (2 + name_width))) - + all.check_x + 4); - - /* ensure we are scrolled to show the current choice */ - if (choice >= (max_choice + scrollamt)) { - scrollamt = choice - max_choice + 1; - choice = max_choice - 1; - } - - /* register the new window, along with its borders */ - dlg_mouse_mkbigregion(box_y + 1, box_x, - use_height, all.use_width + 2, - KEY_MAX, 1, 1, 1 /* by lines */ ); - - all.dialog = dialog; - all.box_x = box_x; - all.box_y = box_y; - all.use_height = use_height; - all.list = list; - print_list(&all, choice, scrollamt, max_choice); - - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); - - dlg_trace_win(dialog); - - while (result == DLG_EXIT_UNKNOWN) { - int was_mouse; - - if (button < 0) /* --visit-items */ - wmove(dialog, box_y + choice + 1, box_x + all.check_x + 2); - - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - - was_mouse = (fkey && is_DLGK_MOUSE(key)); - if (was_mouse) - key -= M_EVENT; - - if (was_mouse && (key >= KEY_MAX)) { - i = (key - KEY_MAX); - if (i < max_choice) { - choice = (key - KEY_MAX); - print_list(&all, choice, scrollamt, max_choice); - - key = DLGK_TOGGLE; /* force the selected item to toggle */ - } else { - beep(); - continue; - } - fkey = FALSE; - } else if (was_mouse && key >= KEY_MIN) { - key = dlg_lookup_key(dialog, key, &fkey); - } - - /* - * A space toggles the item status. - */ - if (key == DLGK_TOGGLE) { - int current = scrollamt + choice; - int next = items[current].state + 1; - - if (next >= num_states) - next = 0; - - if (flag == FLAG_CHECK) { /* checklist? */ - items[current].state = next; - } else { - for (i = 0; i < item_no; i++) { - if (i != current) { - items[i].state = 0; - } - } - if (items[current].state) { - items[current].state = next ? next : 1; - } else { - items[current].state = 1; - } - } - print_list(&all, choice, scrollamt, max_choice); - continue; /* wait for another key press */ - } - - /* - * Check if key pressed matches first character of any item tag in - * list. If there is more than one match, we will cycle through - * each one as the same key is pressed repeatedly. - */ - found = FALSE; - if (!fkey) { - if (button < 0 || !dialog_state.visit_items) { - for (j = scrollamt + choice + 1; j < item_no; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - if (!found) { - for (j = 0; j <= scrollamt + choice; j++) { - if (check_hotkey(items, j)) { - found = TRUE; - i = j - scrollamt; - break; - } - } - } - if (found) - dlg_flush_getc(); - } else if ((j = dlg_char_to_button(key, buttons)) >= 0) { - button = j; - ungetch('\n'); - continue; - } - } - - /* - * A single digit (1-9) positions the selection to that line in the - * current screen. - */ - if (!found - && (key <= '9') - && (key > '0') - && (key - '1' < max_choice)) { - found = TRUE; - i = key - '1'; - } - - if (!found) { - if (fkey) { - found = TRUE; - switch (key) { - case DLGK_ITEM_FIRST: - i = -scrollamt; - break; - case DLGK_ITEM_LAST: - i = item_no - 1 - scrollamt; - break; - case DLGK_PAGE_PREV: - if (choice) - i = 0; - else if (scrollamt != 0) - i = -MIN(scrollamt, max_choice); - else - continue; - break; - case DLGK_PAGE_NEXT: - i = MIN(choice + max_choice, item_no - scrollamt - 1); - break; - case DLGK_ITEM_PREV: - i = choice - 1; - if (choice == 0 && scrollamt == 0) - continue; - break; - case DLGK_ITEM_NEXT: - i = choice + 1; - if (scrollamt + choice >= item_no - 1) - continue; - break; - default: - found = FALSE; - break; - } - } - } - - if (found) { - if (i != choice) { - if (i < 0 || i >= max_choice) { - if (i < 0) { - scrollamt += i; - choice = 0; - } else { - choice = max_choice - 1; - scrollamt += (i - max_choice + 1); - } - print_list(&all, choice, scrollamt, max_choice); - } else { - choice = i; - print_list(&all, choice, scrollamt, max_choice); - } - } - continue; /* wait for another key press */ - } - - if (fkey) { - switch (key) { - case DLGK_ENTER: - result = dlg_enter_buttoncode(button); - break; - case DLGK_LEAVE: - result = dlg_ok_buttoncode(button); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - dlg_draw_buttons(dialog, height - 2, 0, buttons, button, - FALSE, width); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - /* reset data */ - height = old_height; - width = old_width; - /* repaint */ - _dlg_resize_cleanup(dialog); - goto retry; -#endif - default: - if (was_mouse) { - if ((key2 = dlg_ok_buttoncode(key)) >= 0) { - result = key2; - break; - } - beep(); - } - } - } else if (key > 0) { - beep(); - } - } - - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - *current_item = (scrollamt + choice); - return result; -} - -/* - * Display a set of items as a tree. - */ -int -dialog_treeview(const char *title, - const char *cprompt, - int height, - int width, - int list_height, - int item_no, - char **items, - int flag) -{ - int result; - int i, j; - DIALOG_LISTITEM *listitems; - int *depths; - bool show_status = FALSE; - int current = 0; - char *help_result; - - DLG_TRACE(("# treeview args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - DLG_TRACE2N("lheight", list_height); - DLG_TRACE2N("llength", item_no); - /* FIXME dump the items[][] too */ - DLG_TRACE2N("flag", flag); - - listitems = dlg_calloc(DIALOG_LISTITEM, (size_t) item_no + 1); - assert_ptr(listitems, "dialog_treeview"); - - depths = dlg_calloc(int, (size_t) item_no + 1); - assert_ptr(depths, "dialog_treeview"); - - for (i = j = 0; i < item_no; ++i) { - listitems[i].name = items[j++]; - listitems[i].text = (dialog_vars.no_items - ? dlg_strempty() - : items[j++]); - listitems[i].state = !dlg_strcmp(items[j++], "on"); - depths[i] = atoi(items[j++]); - listitems[i].help = ((dialog_vars.item_help) - ? items[j++] - : dlg_strempty()); - } - dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - - result = dlg_treeview(title, - cprompt, - height, - width, - list_height, - item_no, - listitems, - NULL, - depths, - flag, - ¤t); - - switch (result) { - case DLG_EXIT_OK: /* FALLTHRU */ - case DLG_EXIT_EXTRA: - show_status = TRUE; - break; - case DLG_EXIT_HELP: - dlg_add_help_listitem(&result, &help_result, &listitems[current]); - if ((show_status = dialog_vars.help_status)) { - if (dialog_vars.separate_output) { - dlg_add_string(help_result); - dlg_add_separator(); - } else { - dlg_add_quoted(help_result); - } - } else { - dlg_add_string(help_result); - } - break; - } - - if (show_status) { - for (i = 0; i < item_no; i++) { - if (listitems[i].state) { - if (dlg_need_separator()) - dlg_add_separator(); - if (dialog_vars.separate_output) { - dlg_add_string(listitems[i].name); - } else { - if (flag == FLAG_CHECK) - dlg_add_quoted(listitems[i].name); - else - dlg_add_string(listitems[i].name); - } - } - } - AddLastKey(); - } - - dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no); - free(depths); - free(listitems); - return result; -} diff --git a/contrib/dialog/ttysize.c b/contrib/dialog/ttysize.c deleted file mode 100644 index fd9a97227187..000000000000 --- a/contrib/dialog/ttysize.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: ttysize.c,v 1.2 2019/07/25 00:07:15 tom Exp $ - * - * ttysize.c -- obtain terminal-size for dialog - * - * Copyright 2018,2019 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> - -/* - * This is based on work I did for ncurses in 1997, and improved/extended for - * other terminal-based programs. The comments are from my original version -TD - */ - -#ifdef HAVE_TERMIOS_H -#include <termios.h> -#endif - -#ifdef HAVE_SYS_IOCTL_H -# include <sys/ioctl.h> -#endif - -#ifdef NEED_PTEM_H - /* On SCO, they neglected to define struct winsize in termios.h -- it's only - * in termio.h and ptem.h (the former conflicts with other definitions). - */ -# include <sys/stream.h> -# include <sys/ptem.h> -#endif - -/* - * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, - * Solaris, IRIX) define TIOCGWINSZ and struct winsize. - */ -#if defined(TIOCGSIZE) -# define IOCTL_WINSIZE TIOCGSIZE -# define STRUCT_WINSIZE struct ttysize -# define WINSIZE_ROWS(n) (int)n.ts_lines -# define WINSIZE_COLS(n) (int)n.ts_cols -#elif defined(TIOCGWINSZ) -# define IOCTL_WINSIZE TIOCGWINSZ -# define STRUCT_WINSIZE struct winsize -# define WINSIZE_ROWS(n) (int)n.ws_row -# define WINSIZE_COLS(n) (int)n.ws_col -#else -# undef HAVE_SIZECHANGE -#endif - -int -dlg_ttysize(int fd, int *high, int *wide) -{ - int rc = -1; -#ifdef HAVE_SIZECHANGE - if (isatty(fd)) { - STRUCT_WINSIZE size; - - if (ioctl(fd, IOCTL_WINSIZE, &size) >= 0) { - *high = WINSIZE_ROWS(size); - *wide = WINSIZE_COLS(size); - rc = 0; - } - } -#else - *high = 24; - *wide = 80; -#endif /* HAVE_SIZECHANGE */ - return rc; -} diff --git a/contrib/dialog/ui_getc.c b/contrib/dialog/ui_getc.c deleted file mode 100644 index 5be01b88626b..000000000000 --- a/contrib/dialog/ui_getc.c +++ /dev/null @@ -1,681 +0,0 @@ -/* - * $Id: ui_getc.c,v 1.80 2020/11/25 01:08:30 tom Exp $ - * - * ui_getc.c - user interface glue for getc() - * - * Copyright 2001-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ - -#include <dialog.h> -#include <dlg_keys.h> -#include <dlg_internals.h> - -#ifdef NEED_WCHAR_H -#include <wchar.h> -#endif - -#if TIME_WITH_SYS_TIME -# include <sys/time.h> -# include <time.h> -#else -# if HAVE_SYS_TIME_H -# include <sys/time.h> -# else -# include <time.h> -# endif -#endif - -#ifdef HAVE_SYS_WAIT_H -#include <sys/wait.h> -#endif - -#ifdef __QNX__ -#include <sys/select.h> -#endif - -#ifndef WEXITSTATUS -# ifdef HAVE_TYPE_UNIONWAIT -# define WEXITSTATUS(status) (status.w_retcode) -# else -# define WEXITSTATUS(status) (((status) & 0xff00) >> 8) -# endif -#endif - -#ifndef WTERMSIG -# ifdef HAVE_TYPE_UNIONWAIT -# define WTERMSIG(status) (status.w_termsig) -# else -# define WTERMSIG(status) ((status) & 0x7f) -# endif -#endif - -void -dlg_add_callback(DIALOG_CALLBACK * p) -{ - p->next = dialog_state.getc_callbacks; - dialog_state.getc_callbacks = p; - dlg_set_timeout(p->win, TRUE); -} - -/* - * Like dlg_add_callback(), but providing for cleanup of caller's associated - * state. - */ -void -dlg_add_callback_ref(DIALOG_CALLBACK ** p, DIALOG_FREEBACK freeback) -{ - (*p)->caller = p; - (*p)->freeback = freeback; - dlg_add_callback(*p); -} - -void -dlg_remove_callback(DIALOG_CALLBACK * p) -{ - DIALOG_CALLBACK *q; - - if (p->input != 0) { - FILE *input = p->input; - fclose(input); - if (p->input == dialog_state.pipe_input) - dialog_state.pipe_input = 0; - /* more than one callback can have the same input */ - for (q = dialog_state.getc_callbacks; q != 0; q = q->next) { - if (q->input == input) { - q->input = 0; - } - } - } - - if (!(p->keep_win)) - dlg_del_window(p->win); - if ((q = dialog_state.getc_callbacks) == p) { - dialog_state.getc_callbacks = p->next; - } else { - while (q != 0) { - if (q->next == p) { - q->next = p->next; - break; - } - q = q->next; - } - } - - /* handle dlg_add_callback_ref cleanup */ - if (p->freeback != 0) - p->freeback(p); - if (p->caller != 0) - *(p->caller) = 0; - - free(p); -} - -/* - * A select() might find more than one input ready for service. Handle them - * all. - */ -static bool -handle_inputs(WINDOW *win) -{ - bool result = FALSE; - DIALOG_CALLBACK *p; - DIALOG_CALLBACK *q; - int cur_y, cur_x; - int state = ERR; - - getyx(win, cur_y, cur_x); - for (p = dialog_state.getc_callbacks, q = 0; p != 0; p = q) { - q = p->next; - if ((p->handle_input != 0) && p->input_ready) { - p->input_ready = FALSE; - if (state == ERR) { - state = curs_set(0); - } - if (p->handle_input(p)) { - result = TRUE; - } - } - } - if (result && _dlg_find_window(win)) { - (void) wmove(win, cur_y, cur_x); /* Restore cursor position */ - wrefresh(win); - } else { - result = FALSE; - } - if (state != ERR) - curs_set(state); - return result; -} - -static bool -may_handle_inputs(void) -{ - bool result = FALSE; - - DIALOG_CALLBACK *p; - - for (p = dialog_state.getc_callbacks; p != 0; p = p->next) { - if (p->input != 0) { - result = TRUE; - break; - } - } - - return result; -} - -/* - * Check any any inputs registered via callbacks, to see if there is any input - * available. If there is, return a file-descriptor which should be read. - * Otherwise, return -1. - */ -static int -check_inputs(void) -{ - DIALOG_CALLBACK *p; - fd_set read_fds; - struct timeval test; - int result = -1; - - if ((p = dialog_state.getc_callbacks) != 0) { - int last_fd = -1; - int found; - int fd; - - FD_ZERO(&read_fds); - - while (p != 0) { - - p->input_ready = FALSE; - if (p->input != 0 && (fd = fileno(p->input)) >= 0) { - FD_SET(fd, &read_fds); - if (last_fd < fd) - last_fd = fd; - } - p = p->next; - } - - test.tv_sec = 0; - test.tv_usec = WTIMEOUT_VAL * 1000; - found = select(last_fd + 1, &read_fds, - (fd_set *) 0, - (fd_set *) 0, - &test); - - if (found > 0) { - for (p = dialog_state.getc_callbacks; p != 0; p = p->next) { - if (p->input != 0 - && (fd = fileno(p->input)) >= 0 - && FD_ISSET(fd, &read_fds)) { - p->input_ready = TRUE; - result = fd; - } - } - } - } - - return result; -} - -int -dlg_getc_callbacks(int ch, int fkey, int *result) -{ - int code = FALSE; - DIALOG_CALLBACK *p, *q; - - if ((p = dialog_state.getc_callbacks) != 0) { - if (check_inputs() >= 0) { - do { - q = p->next; - if (p->input_ready) { - if (!(p->handle_getc(p, ch, fkey, result))) { - dlg_remove_callback(p); - } - } - } while ((p = q) != 0); - } - code = (dialog_state.getc_callbacks != 0); - } - return code; -} - -static void -dlg_raise_window(WINDOW *win) -{ - if (_dlg_find_window(win)) { - touchwin(win); - wmove(win, getcury(win), getcurx(win)); - wnoutrefresh(win); - doupdate(); - } -} - -/* - * This is a work-around for the case where we actually need the wide-character - * code versus a byte stream. - */ -static int last_getc = ERR; - -#ifdef USE_WIDE_CURSES -static char last_getc_bytes[80]; -static int have_last_getc; -static int used_last_getc; -#endif - -int -dlg_last_getc(void) -{ -#ifdef USE_WIDE_CURSES - if (used_last_getc != 1) - return ERR; /* not really an error... */ -#endif - return last_getc; -} - -void -dlg_flush_getc(void) -{ - last_getc = ERR; -#ifdef USE_WIDE_CURSES - have_last_getc = 0; - used_last_getc = 0; -#endif -} - -/* - * Report the last key entered by the user. The 'mode' parameter controls - * the way it is separated from other results: - * -2 (no separator) - * -1 (separator after the key name) - * 0 (separator is optionally before the key name) - * 1 (same as -1) - */ -void -dlg_add_last_key(int mode) -{ - if (dialog_vars.last_key) { - if (mode >= 0) { - if (mode > 0) { - dlg_add_last_key(-1); - } else { - if (dlg_need_separator()) - dlg_add_separator(); - dlg_add_last_key(-2); - } - } else { - char temp[80]; - sprintf(temp, "%d", last_getc); - DLG_TRACE(("# dlg_add_last_key(%s)\n", temp)); - dlg_add_string(temp); - if (mode == -1) - dlg_add_separator(); - } - } -} - -/* - * Check if the stream has been unexpectedly closed, returning false in that - * case. - */ -static bool -valid_file(FILE *fp) -{ - bool code = FALSE; - int fd = fileno(fp); - - if (fd >= 0) { - if (fcntl(fd, F_GETFL, 0) >= 0) { - code = TRUE; - } - } - return code; -} - -static int -really_getch(WINDOW *win, int *fkey) -{ - int ch; -#ifdef USE_WIDE_CURSES - mbstate_t state; - wint_t my_wint; - - /* - * We get a wide character, translate it to multibyte form to avoid - * having to change the rest of the code to use wide-characters. - */ - if (used_last_getc >= have_last_getc) { - int code; - wchar_t my_wchar; - - used_last_getc = 0; - have_last_getc = 0; - ch = ERR; - *fkey = 0; - code = wget_wch(win, &my_wint); - my_wchar = (wchar_t) my_wint; - switch (code) { - case KEY_CODE_YES: - ch = *fkey = my_wchar; - last_getc = my_wchar; - break; - case OK: - memset(&state, 0, sizeof(state)); - have_last_getc = (int) wcrtomb(last_getc_bytes, my_wchar, &state); - if (have_last_getc < 0) { - have_last_getc = used_last_getc = 0; - last_getc_bytes[0] = (char) my_wchar; - } - ch = (int) CharOf(last_getc_bytes[used_last_getc++]); - last_getc = my_wchar; - break; - case ERR: - ch = ERR; - last_getc = ERR; - break; - default: - break; - } - } else { - ch = (int) CharOf(last_getc_bytes[used_last_getc++]); - } -#else - ch = wgetch(win); - last_getc = ch; - *fkey = (ch > KEY_MIN && ch < KEY_MAX); -#endif - return ch; -} - -static DIALOG_CALLBACK * -next_callback(DIALOG_CALLBACK * p) -{ - if ((p = dialog_state.getc_redirect) != 0) { - p = p->next; - } else { - p = dialog_state.getc_callbacks; - } - return p; -} - -static DIALOG_CALLBACK * -prev_callback(DIALOG_CALLBACK * p) -{ - DIALOG_CALLBACK *q; - - if ((p = dialog_state.getc_redirect) != 0) { - if (p == dialog_state.getc_callbacks) { - for (p = dialog_state.getc_callbacks; p->next != 0; p = p->next) ; - } else { - for (q = dialog_state.getc_callbacks; q->next != p; q = q->next) ; - p = q; - } - } else { - p = dialog_state.getc_callbacks; - } - return p; -} - -#define isBeforeChr(chr) ((chr) == before_chr && !before_fkey) -#define isBeforeFkey(chr) ((chr) == before_chr && before_fkey) - -/* - * Read a character from the given window. Handle repainting here (to simplify - * things in the calling application). Also, if input-callback(s) are set up, - * poll the corresponding files and handle the updates, e.g., for displaying a - * tailbox. - */ -int -dlg_getc(WINDOW *win, int *fkey) -{ - WINDOW *save_win = win; - int ch = ERR; - int before_chr; - int before_fkey; - int result; - bool done = FALSE; - bool literal = FALSE; - DIALOG_CALLBACK *p = 0; - int interval = dlg_set_timeout(win, may_handle_inputs()); - time_t expired = time((time_t *) 0) + dialog_vars.timeout_secs; - time_t current; - - while (!done) { - bool handle_others = FALSE; - - if (_dlg_find_window(win) == NULL) - break; - - /* - * If there was no pending file-input, check the keyboard. - */ - ch = really_getch(win, fkey); - if (literal) { - done = TRUE; - continue; - } - - before_chr = ch; - before_fkey = *fkey; - - ch = dlg_lookup_key(win, ch, fkey); - dlg_trace_chr(ch, *fkey); - - current = time((time_t *) 0); - - /* - * If we acquired a fkey value, then it is one of dialog's builtin - * codes such as DLGK_HELPFILE. - */ - if (!*fkey || *fkey != before_fkey) { - switch (ch) { - case CHR_LITERAL: - literal = TRUE; - keypad(win, FALSE); - continue; - case CHR_REPAINT: - if (_dlg_find_window(win)) { - (void) touchwin(win); - (void) wrefresh(curscr); - } - break; - case ERR: /* wtimeout() in effect; check for file I/O */ - if (interval > 0 - && current >= expired) { - int status; - DLG_TRACE(("# dlg_getc: timeout expired\n")); - if (dlg_getenv_num("DIALOG_TIMEOUT", &status)) { - dlg_exiterr("timeout"); - } - ch = ESC; - done = TRUE; - } else if (!valid_file(stdin) - || !valid_file(dialog_state.screen_output)) { - DLG_TRACE(("# dlg_getc: input or output is invalid\n")); - ch = ESC; - done = TRUE; - } else if (check_inputs()) { - if (_dlg_find_window(win) && handle_inputs(win)) - dlg_raise_window(win); - else - done = TRUE; - } else { - done = (interval <= 0); - } - break; - case DLGK_HELPFILE: - if (dialog_vars.help_file && _dlg_find_window(win)) { - int yold, xold; - getyx(win, yold, xold); - dialog_helpfile("HELP", dialog_vars.help_file, 0, 0); - dlg_raise_window(win); - wmove(win, yold, xold); - } - continue; - case DLGK_FIELD_PREV: - /* FALLTHRU */ - case KEY_BTAB: - /* FALLTHRU */ - case DLGK_FIELD_NEXT: - /* FALLTHRU */ - case TAB: - /* Handle tab/backtab as a special case for traversing between - * the nominal "current" window, and other windows having - * callbacks. If the nominal (control) window closes, we'll - * close the windows with callbacks. - */ - if (dialog_state.getc_callbacks != 0 && - (isBeforeChr(TAB) || - isBeforeFkey(KEY_BTAB))) { - p = (isBeforeChr(TAB) - ? next_callback(p) - : prev_callback(p)); - if ((dialog_state.getc_redirect = p) != 0) { - win = p->win; - } else { - win = save_win; - } - dlg_raise_window(win); - break; - } - /* FALLTHRU */ - default: -#ifdef NO_LEAKS - if (isBeforeChr(DLG_CTRL('P'))) { - /* for testing, ^P closes the connection */ - close(0); - close(1); - close(2); - break; - } -#endif - handle_others = TRUE; - break; -#ifdef HAVE_DLG_TRACE - case CHR_TRACE: - dlg_trace_win(win); - break; -#endif - } - } else { - handle_others = TRUE; - } - - if (handle_others) { - if ((p = dialog_state.getc_redirect) != 0) { - if (!(p->handle_getc(p, ch, *fkey, &result))) { - done = (p->win == save_win) && (!p->keep_win); - dlg_remove_callback(p); - dialog_state.getc_redirect = 0; - win = save_win; - } - } else { - done = TRUE; - } - } - } - if (literal && _dlg_find_window(win)) - keypad(win, TRUE); - return ch; -} - -static void -finish_bg(int sig GCC_UNUSED) -{ - end_dialog(); - dlg_exit(DLG_EXIT_ERROR); -} - -/* - * If we have callbacks active, purge the list of all that are not marked - * to keep in the background. If any remain, run those in a background - * process. - */ -void -dlg_killall_bg(int *retval) -{ - DIALOG_CALLBACK *cb; -#ifdef HAVE_TYPE_UNIONWAIT - union wait wstatus; -#else - int wstatus; -#endif - - if ((cb = dialog_state.getc_callbacks) != 0) { - while (cb != 0) { - if (cb->keep_bg) { - cb = cb->next; - } else { - dlg_remove_callback(cb); - cb = dialog_state.getc_callbacks; - } - } - if (dialog_state.getc_callbacks != 0) { - int pid; - - refresh(); - fflush(stdout); - fflush(stderr); - reset_shell_mode(); - if ((pid = fork()) != 0) { - _exit(pid > 0 ? DLG_EXIT_OK : DLG_EXIT_ERROR); - } else { /* child, pid==0 */ - if ((pid = fork()) != 0) { - /* - * Echo the process-id of the grandchild so a shell script - * can read that, and kill that process. We'll wait around - * until then. Our parent has already left, leaving us - * temporarily orphaned. - */ - if (pid > 0) { /* parent */ - fprintf(stderr, "%d\n", pid); - fflush(stderr); - } - /* wait for child */ -#ifdef HAVE_WAITPID - while (-1 == waitpid(pid, &wstatus, 0)) { -#ifdef EINTR - if (errno == EINTR) - continue; -#endif /* EINTR */ -#ifdef ERESTARTSYS - if (errno == ERESTARTSYS) - continue; -#endif /* ERESTARTSYS */ - break; - } -#else - while (wait(&wstatus) != pid) /* do nothing */ - ; -#endif - _exit(WEXITSTATUS(wstatus)); - } else { /* child, pid==0 */ - if (!dialog_vars.cant_kill) - (void) signal(SIGHUP, finish_bg); - (void) signal(SIGINT, finish_bg); - (void) signal(SIGQUIT, finish_bg); - (void) signal(SIGSEGV, finish_bg); - while (dialog_state.getc_callbacks != 0) { - int fkey = 0; - dlg_getc_callbacks(ERR, fkey, retval); - napms(1000); - } - } - } - } - } -} diff --git a/contrib/dialog/util.c b/contrib/dialog/util.c deleted file mode 100644 index 726a36a5031d..000000000000 --- a/contrib/dialog/util.c +++ /dev/null @@ -1,3047 +0,0 @@ -/* - * $Id: util.c,v 1.300 2021/01/17 22:10:56 tom Exp $ - * - * util.c -- miscellaneous utilities for dialog - * - * Copyright 2000-2020,2021 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> -#include <dlg_keys.h> -#include <dlg_internals.h> - -#include <sys/time.h> - -#ifdef HAVE_SETLOCALE -#include <locale.h> -#endif - -#ifdef NEED_WCHAR_H -#include <wchar.h> -#endif - -#ifdef HAVE_SYS_PARAM_H -#undef MIN -#undef MAX -#include <sys/param.h> -#endif - -#if defined(NCURSES_VERSION) -#define CAN_KEEP_TITE 1 -#elif defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 800000000) -#define CAN_KEEP_TITE 1 -#else -#define CAN_KEEP_TITE 0 -#endif - -#if CAN_KEEP_TITE -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include <ncursesw/term.h> -#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include <ncurses/term.h> -#else -#include <term.h> -#endif -#endif - -#if defined(HAVE_WCHGAT) -# if defined(NCURSES_VERSION_PATCH) -# if NCURSES_VERSION_PATCH >= 20060715 -# define USE_WCHGAT 1 -# else -# define USE_WCHGAT 0 -# endif -# else -# define USE_WCHGAT 1 -# endif -#else -# define USE_WCHGAT 0 -#endif - -/* globals */ -DIALOG_STATE dialog_state; -DIALOG_VARS dialog_vars; - -#if !(defined(HAVE_WGETPARENT) && defined(HAVE_WINDOW__PARENT)) -#define NEED_WGETPARENT 1 -#else -#undef NEED_WGETPARENT -#endif - -#define concat(a,b) a##b - -#ifdef HAVE_RC_FILE -#define RC_DATA(name,comment) , #name "_color", comment " color" -#else -#define RC_DATA(name,comment) /*nothing */ -#endif - -#ifdef HAVE_COLOR -#include <dlg_colors.h> -#ifdef HAVE_RC_FILE2 -#define COLOR_DATA(upr) , \ - concat(DLGC_FG_,upr), \ - concat(DLGC_BG_,upr), \ - concat(DLGC_HL_,upr), \ - concat(DLGC_UL_,upr), \ - concat(DLGC_RV_,upr) -#else /* HAVE_RC_FILE2 */ -#define COLOR_DATA(upr) , \ - concat(DLGC_FG_,upr), \ - concat(DLGC_BG_,upr), \ - concat(DLGC_HL_,upr) -#endif /* HAVE_RC_FILE2 */ -#else /* HAVE_COLOR */ -#define COLOR_DATA(upr) /*nothing */ -#endif /* HAVE_COLOR */ - -#define UseShadow(dw) ((dw) != 0 && (dw)->normal != 0 && (dw)->shadow != 0) - -/* - * Table of color and attribute values, default is for mono display. - * The order matches the DIALOG_ATR() values. - */ -#define DATA(atr,upr,lwr,cmt) { atr COLOR_DATA(upr) RC_DATA(lwr,cmt) } -/* *INDENT-OFF* */ -DIALOG_COLORS dlg_color_table[] = -{ - DATA(A_NORMAL, SCREEN, screen, "Screen"), - DATA(A_NORMAL, SHADOW, shadow, "Shadow"), - DATA(A_REVERSE, DIALOG, dialog, "Dialog box"), - DATA(A_REVERSE, TITLE, title, "Dialog box title"), - DATA(A_REVERSE, BORDER, border, "Dialog box border"), - DATA(A_BOLD, BUTTON_ACTIVE, button_active, "Active button"), - DATA(A_DIM, BUTTON_INACTIVE, button_inactive, "Inactive button"), - DATA(A_UNDERLINE, BUTTON_KEY_ACTIVE, button_key_active, "Active button key"), - DATA(A_UNDERLINE, BUTTON_KEY_INACTIVE, button_key_inactive, "Inactive button key"), - DATA(A_NORMAL, BUTTON_LABEL_ACTIVE, button_label_active, "Active button label"), - DATA(A_NORMAL, BUTTON_LABEL_INACTIVE, button_label_inactive, "Inactive button label"), - DATA(A_REVERSE, INPUTBOX, inputbox, "Input box"), - DATA(A_REVERSE, INPUTBOX_BORDER, inputbox_border, "Input box border"), - DATA(A_REVERSE, SEARCHBOX, searchbox, "Search box"), - DATA(A_REVERSE, SEARCHBOX_TITLE, searchbox_title, "Search box title"), - DATA(A_REVERSE, SEARCHBOX_BORDER, searchbox_border, "Search box border"), - DATA(A_REVERSE, POSITION_INDICATOR, position_indicator, "File position indicator"), - DATA(A_REVERSE, MENUBOX, menubox, "Menu box"), - DATA(A_REVERSE, MENUBOX_BORDER, menubox_border, "Menu box border"), - DATA(A_REVERSE, ITEM, item, "Item"), - DATA(A_NORMAL, ITEM_SELECTED, item_selected, "Selected item"), - DATA(A_REVERSE, TAG, tag, "Tag"), - DATA(A_REVERSE, TAG_SELECTED, tag_selected, "Selected tag"), - DATA(A_NORMAL, TAG_KEY, tag_key, "Tag key"), - DATA(A_BOLD, TAG_KEY_SELECTED, tag_key_selected, "Selected tag key"), - DATA(A_REVERSE, CHECK, check, "Check box"), - DATA(A_REVERSE, CHECK_SELECTED, check_selected, "Selected check box"), - DATA(A_REVERSE, UARROW, uarrow, "Up arrow"), - DATA(A_REVERSE, DARROW, darrow, "Down arrow"), - DATA(A_NORMAL, ITEMHELP, itemhelp, "Item help-text"), - DATA(A_BOLD, FORM_ACTIVE_TEXT, form_active_text, "Active form text"), - DATA(A_REVERSE, FORM_TEXT, form_text, "Form text"), - DATA(A_NORMAL, FORM_ITEM_READONLY, form_item_readonly, "Readonly form item"), - DATA(A_REVERSE, GAUGE, gauge, "Dialog box gauge"), - DATA(A_REVERSE, BORDER2, border2, "Dialog box border2"), - DATA(A_REVERSE, INPUTBOX_BORDER2, inputbox_border2, "Input box border2"), - DATA(A_REVERSE, SEARCHBOX_BORDER2, searchbox_border2, "Search box border2"), - DATA(A_REVERSE, MENUBOX_BORDER2, menubox_border2, "Menu box border2") -}; -#undef DATA -/* *INDENT-ON* */ - -/* - * Maintain a list of subwindows so that we can delete them to cleanup. - * More important, this provides a fallback when wgetparent() is not available. - */ -static void -add_subwindow(WINDOW *parent, WINDOW *child) -{ - DIALOG_WINDOWS *p = dlg_calloc(DIALOG_WINDOWS, 1); - - if (p != 0) { - p->normal = parent; - p->shadow = child; - p->getc_timeout = WTIMEOUT_OFF; - p->next = dialog_state.all_subwindows; - dialog_state.all_subwindows = p; - } -} - -static void -del_subwindows(WINDOW *parent) -{ - DIALOG_WINDOWS *p = dialog_state.all_subwindows; - DIALOG_WINDOWS *q = 0; - DIALOG_WINDOWS *r; - - while (p != 0) { - if (p->normal == parent) { - delwin(p->shadow); - r = p->next; - if (q == 0) { - dialog_state.all_subwindows = r; - } else { - q->next = r; - } - free(p); - p = r; - } else { - q = p; - p = p->next; - } - } -} - -/* - * Display background title if it exists ... - */ -void -dlg_put_backtitle(void) -{ - - if (dialog_vars.backtitle != NULL) { - chtype attr = A_NORMAL; - int backwidth = dlg_count_columns(dialog_vars.backtitle); - int i; - - dlg_attrset(stdscr, screen_attr); - (void) wmove(stdscr, 0, 1); - dlg_print_text(stdscr, dialog_vars.backtitle, COLS - 2, &attr); - for (i = 0; i < COLS - backwidth; i++) - (void) waddch(stdscr, ' '); - (void) wmove(stdscr, 1, 1); - for (i = 0; i < COLS - 2; i++) - (void) waddch(stdscr, dlg_boxchar(ACS_HLINE)); - } - - (void) wnoutrefresh(stdscr); -} - -/* - * Set window to attribute 'attr'. There are more efficient ways to do this, - * but will not work on older/buggy ncurses versions. - */ -void -dlg_attr_clear(WINDOW *win, int height, int width, chtype attr) -{ - int i, j; - - dlg_attrset(win, attr); - for (i = 0; i < height; i++) { - (void) wmove(win, i, 0); - for (j = 0; j < width; j++) - (void) waddch(win, ' '); - } - (void) touchwin(win); -} - -void -dlg_clear(void) -{ - dlg_attr_clear(stdscr, LINES, COLS, screen_attr); -} - -#ifdef KEY_RESIZE -void -_dlg_resize_cleanup(WINDOW *w) -{ - dlg_clear(); - dlg_put_backtitle(); - dlg_del_window(w); - dlg_mouse_free_regions(); -} -#endif /* KEY_RESIZE */ - -#define isprivate(s) ((s) != 0 && strstr(s, "\033[?") != 0) - -#define TTY_DEVICE "/dev/tty" - -/* - * If $DIALOG_TTY exists, allow the program to try to open the terminal - * directly when stdout is redirected. By default we require the "--stdout" - * option to be given, but some scripts were written making use of the - * behavior of dialog which tried opening the terminal anyway. - */ -#define dialog_tty() (dlg_getenv_num("DIALOG_TTY", (int *)0) > 0) - -/* - * Open the terminal directly. If one of stdin, stdout or stderr really points - * to a tty, use it. Otherwise give up and open /dev/tty. - */ -static int -open_terminal(char **result, int mode) -{ - const char *device = TTY_DEVICE; - if (!isatty(fileno(stderr)) - || (device = ttyname(fileno(stderr))) == 0) { - if (!isatty(fileno(stdout)) - || (device = ttyname(fileno(stdout))) == 0) { - if (!isatty(fileno(stdin)) - || (device = ttyname(fileno(stdin))) == 0) { - device = TTY_DEVICE; - } - } - } - *result = dlg_strclone(device); - return open(device, mode); -} - -#if CAN_KEEP_TITE -static int -my_putc(int ch) -{ - char buffer[2]; - int fd = fileno(dialog_state.screen_output); - - buffer[0] = (char) ch; - return (int) write(fd, buffer, (size_t) 1); -} -#endif - -/* - * Do some initialization for dialog. - * - * 'input' is the real tty input of dialog. Usually it is stdin, but if - * --input-fd option is used, it may be anything. - * - * 'output' is where dialog will send its result. Usually it is stderr, but - * if --stdout or --output-fd is used, it may be anything. We are concerned - * mainly with the case where it happens to be the same as stdout. - */ -void -init_dialog(FILE *input, FILE *output) -{ - int fd1, fd2; - char *device = 0; - - setlocale(LC_ALL, ""); - - dialog_state.output = output; - if (dialog_state.tab_len == 0) - dialog_state.tab_len = TAB_LEN; - if (dialog_state.aspect_ratio == 0) - dialog_state.aspect_ratio = DEFAULT_ASPECT_RATIO; -#ifdef HAVE_COLOR - dialog_state.use_colors = USE_COLORS; /* use colors by default? */ - dialog_state.use_shadow = USE_SHADOW; /* shadow dialog boxes by default? */ -#endif - -#ifdef HAVE_RC_FILE - if (dlg_parse_rc() == -1) /* Read the configuration file */ - dlg_exiterr("init_dialog: dlg_parse_rc"); -#endif - - /* - * Some widgets (such as gauge) may read from the standard input. Pipes - * only connect stdout/stdin, so there is not much choice. But reading a - * pipe would get in the way of curses' normal reading stdin for getch. - * - * As in the --stdout (see below), reopening the terminal does not always - * work properly. dialog provides a --pipe-fd option for this purpose. We - * test that case first (differing fileno's for input/stdin). If the - * fileno's are equal, but we're not reading from a tty, see if we can open - * /dev/tty. - */ - dialog_state.pipe_input = stdin; - if (fileno(input) != fileno(stdin)) { - if ((fd1 = dup(fileno(input))) >= 0 - && (fd2 = dup(fileno(stdin))) >= 0) { - (void) dup2(fileno(input), fileno(stdin)); - dialog_state.pipe_input = fdopen(fd2, "r"); - if (fileno(stdin) != 0) /* some functions may read fd #0 */ - (void) dup2(fileno(stdin), 0); - } else { - dlg_exiterr("cannot open tty-input"); - } - close(fd1); - } else if (!isatty(fileno(stdin))) { - if ((fd1 = open_terminal(&device, O_RDONLY)) >= 0) { - if ((fd2 = dup(fileno(stdin))) >= 0) { - dialog_state.pipe_input = fdopen(fd2, "r"); - if (freopen(device, "r", stdin) == 0) - dlg_exiterr("cannot open tty-input"); - if (fileno(stdin) != 0) /* some functions may read fd #0 */ - (void) dup2(fileno(stdin), 0); - } - close(fd1); - } - free(device); - } - - /* - * If stdout is not a tty and dialog is called with the --stdout option, we - * have to provide for a way to write to the screen. - * - * The curses library normally writes its output to stdout, leaving stderr - * free for scripting. Scripts are simpler when stdout is redirected. The - * newterm function is useful; it allows us to specify where the output - * goes. Reopening the terminal is not portable since several - * configurations do not allow this to work properly: - * - * a) some getty implementations (and possibly broken tty drivers, e.g., on - * HPUX 10 and 11) cause stdin to act as if it is still in cooked mode - * even though results from ioctl's state that it is successfully - * altered to raw mode. Broken is the proper term. - * - * b) the user may not have permissions on the device, e.g., if one su's - * from the login user to another non-privileged user. - */ - if (!isatty(fileno(stdout)) - && (fileno(stdout) == fileno(output) || dialog_tty())) { - if ((fd1 = open_terminal(&device, O_WRONLY)) >= 0 - && (dialog_state.screen_output = fdopen(fd1, "w")) != 0) { - if (newterm(NULL, dialog_state.screen_output, stdin) == 0) { - dlg_exiterr("cannot initialize curses"); - } - free(device); - } else { - dlg_exiterr("cannot open tty-output"); - } - } else { - dialog_state.screen_output = stdout; - (void) initscr(); - } - dlg_keep_tite(dialog_state.screen_output); -#ifdef HAVE_FLUSHINP - (void) flushinp(); -#endif - (void) keypad(stdscr, TRUE); - (void) cbreak(); - (void) noecho(); - - if (!dialog_state.no_mouse) { - mouse_open(); - } - - dialog_state.screen_initialized = TRUE; - -#ifdef HAVE_COLOR - if (dialog_state.use_colors || dialog_state.use_shadow) - dlg_color_setup(); /* Set up colors */ -#endif - - /* Set screen to screen attribute */ - dlg_clear(); -} - -void -dlg_keep_tite(FILE *output) -{ - if (!dialog_vars.keep_tite) { -#if CAN_KEEP_TITE - /* - * Cancel xterm's alternate-screen mode. - */ - if ((fileno(output) != fileno(stdout) - || isatty(fileno(output))) - && key_mouse != 0 /* xterm and kindred */ - && isprivate(enter_ca_mode) - && isprivate(exit_ca_mode)) { - FILE *save = dialog_state.screen_output; - - /* - * initscr() or newterm() already wrote enter_ca_mode as a side - * effect of initializing the screen. It would be nice to not even - * do that, but we do not really have access to the correct copy of - * the terminfo description until those functions have been - * invoked. - */ - (void) refresh(); - dialog_state.screen_output = output; - (void) tputs(exit_ca_mode, 0, my_putc); - (void) tputs(clear_screen, 0, my_putc); - dialog_state.screen_output = save; - - /* - * Prevent ncurses from switching "back" to the normal screen when - * exiting from dialog. That would move the cursor to the original - * location saved in xterm. Normally curses sets the cursor - * position to the first line after the display, but the alternate - * screen switching is done after that point. - * - * Cancelling the strings altogether also works around the buggy - * implementation of alternate-screen in rxvt, etc., which clear - * more of the display than they should. - */ - enter_ca_mode = 0; - exit_ca_mode = 0; - } -#else - /* - * For other implementations, there are no useful answers: - * + SVr4 curses "could" support a similar approach, but the clue about - * xterm is absent from its terminal database. - * + PDCurses does not provide terminfo. - */ - (void) output; -#endif - } -} - -#ifdef HAVE_COLOR -static int defined_colors = 1; /* pair-0 is reserved */ -/* - * Setup for color display - */ -void -dlg_color_setup(void) -{ - if (has_colors()) { /* Terminal supports color? */ - unsigned i; - - (void) start_color(); - -#if defined(HAVE_USE_DEFAULT_COLORS) - use_default_colors(); -#endif - -#if defined(__NetBSD__) && defined(_CURSES_) -#define C_ATTR(x,y) (((x) != 0 ? A_BOLD : 0) | COLOR_PAIR((y))) - /* work around bug in NetBSD curses */ - for (i = 0; i < sizeof(dlg_color_table) / - sizeof(dlg_color_table[0]); i++) { - - /* Initialize color pairs */ - (void) init_pair(i + 1, - dlg_color_table[i].fg, - dlg_color_table[i].bg); - - /* Setup color attributes */ - dlg_color_table[i].atr = C_ATTR(dlg_color_table[i].hilite, i + 1); - } - defined_colors = i + 1; -#else - for (i = 0; i < sizeof(dlg_color_table) / - sizeof(dlg_color_table[0]); i++) { - - /* Initialize color pairs */ - chtype atr = dlg_color_pair(dlg_color_table[i].fg, - dlg_color_table[i].bg); - - atr |= (dlg_color_table[i].hilite ? A_BOLD : 0); -#ifdef HAVE_RC_FILE2 - atr |= (dlg_color_table[i].ul ? A_UNDERLINE : 0); - atr |= (dlg_color_table[i].rv ? A_REVERSE : 0); -#endif /* HAVE_RC_FILE2 */ - - dlg_color_table[i].atr = atr; - } -#endif - } else { - dialog_state.use_colors = FALSE; - dialog_state.use_shadow = FALSE; - } -} - -int -dlg_color_count(void) -{ - return TableSize(dlg_color_table); -} - -/* - * Wrapper for getattrs(), or the more cumbersome X/Open wattr_get(). - */ -chtype -dlg_get_attrs(WINDOW *win) -{ - chtype result; -#ifdef HAVE_GETATTRS - result = (chtype) getattrs(win); -#else - attr_t my_result; - short my_pair; - wattr_get(win, &my_result, &my_pair, NULL); - result = my_result; -#endif - return result; -} - -/* - * Reuse color pairs (they are limited), returning a COLOR_PAIR() value if we - * have (or can) define a pair with the given color as foreground on the - * window's defined background. - */ -chtype -dlg_color_pair(int foreground, int background) -{ - chtype result = 0; - int pair; - short fg, bg; - bool found = FALSE; - - for (pair = 1; pair < defined_colors; ++pair) { - if (pair_content((short) pair, &fg, &bg) != ERR - && fg == foreground - && bg == background) { - result = (chtype) COLOR_PAIR(pair); - found = TRUE; - break; - } - } - if (!found && (defined_colors + 1) < COLOR_PAIRS) { - pair = defined_colors++; - (void) init_pair((short) pair, (short) foreground, (short) background); - result = (chtype) COLOR_PAIR(pair); - } - return result; -} - -/* - * Reuse color pairs (they are limited), returning a COLOR_PAIR() value if we - * have (or can) define a pair with the given color as foreground on the - * window's defined background. - */ -static chtype -define_color(WINDOW *win, int foreground) -{ - short fg, bg, background; - if (dialog_state.text_only) { - background = COLOR_BLACK; - } else { - chtype attrs = dlg_get_attrs(win); - int pair; - - if ((pair = PAIR_NUMBER(attrs)) != 0 - && pair_content((short) pair, &fg, &bg) != ERR) { - background = bg; - } else { - background = COLOR_BLACK; - } - } - return dlg_color_pair(foreground, background); -} -#endif - -/* - * End using dialog functions. - */ -void -end_dialog(void) -{ - if (dialog_state.screen_initialized) { - dialog_state.screen_initialized = FALSE; - if (dialog_vars.erase_on_exit) { - /* - * Clear the screen to the native background color, and leave the - * terminal cursor at the lower-left corner of the screen. - */ - werase(stdscr); - wrefresh(stdscr); - } - mouse_close(); - (void) endwin(); - (void) fflush(stdout); - } -} - -#define ESCAPE_LEN 3 -#define isOurEscape(p) (((p)[0] == '\\') && ((p)[1] == 'Z') && ((p)[2] != 0)) - -int -dlg_count_real_columns(const char *text) -{ - int result = 0; - if (*text) { - result = dlg_count_columns(text); - if (result && dialog_vars.colors) { - int hidden = 0; - while (*text) { - if (dialog_vars.colors && isOurEscape(text)) { - hidden += ESCAPE_LEN; - text += ESCAPE_LEN; - } else { - ++text; - } - } - result -= hidden; - } - } - return result; -} - -static int -centered(int width, const char *string) -{ - int need = dlg_count_real_columns(string); - int left; - - left = (width - need) / 2 - 1; - if (left < 0) - left = 0; - return left; -} - -#ifdef USE_WIDE_CURSES -static bool -is_combining(const char *txt, int *combined) -{ - bool result = FALSE; - - if (*combined == 0) { - if (UCH(*txt) >= 128) { - wchar_t wch; - mbstate_t state; - size_t given = strlen(txt); - size_t len; - - memset(&state, 0, sizeof(state)); - len = mbrtowc(&wch, txt, given, &state); - if ((int) len > 0 && wcwidth(wch) == 0) { - *combined = (int) len - 1; - result = TRUE; - } - } - } else { - result = TRUE; - *combined -= 1; - } - return result; -} -#endif - -/* - * Print the name (tag) or text from a DIALOG_LISTITEM, highlighting the - * first character if selected. - */ -void -dlg_print_listitem(WINDOW *win, - const char *text, - int climit, - bool first, - int selected) -{ - chtype attr = A_NORMAL; - int limit; - chtype attrs[4]; - - if (text == 0) - text = ""; - - if (first && !dialog_vars.no_hot_list) { - const int *indx = dlg_index_wchars(text); - attrs[3] = tag_key_selected_attr; - attrs[2] = tag_key_attr; - attrs[1] = tag_selected_attr; - attrs[0] = tag_attr; - - dlg_attrset(win, selected ? attrs[3] : attrs[2]); - if (*text != '\0') { - (void) waddnstr(win, text, indx[1]); - - if ((int) strlen(text) > indx[1]) { - limit = dlg_limit_columns(text, climit, 1); - if (limit > 1) { - dlg_attrset(win, selected ? attrs[1] : attrs[0]); - (void) waddnstr(win, - text + indx[1], - indx[limit] - indx[1]); - } - } - } - } else { - const int *cols; - - attrs[1] = item_selected_attr; - attrs[0] = item_attr; - - cols = dlg_index_columns(text); - limit = dlg_limit_columns(text, climit, 0); - - if (limit > 0) { - dlg_attrset(win, selected ? attrs[1] : attrs[0]); - dlg_print_text(win, text, cols[limit], &attr); - } - } -} - -/* - * Print up to 'cols' columns from 'text', optionally rendering our escape - * sequence for attributes and color. - */ -void -dlg_print_text(WINDOW *win, const char *txt, int cols, chtype *attr) -{ - int y_origin, x_origin; - int y_before, x_before = 0; - int y_after, x_after; - int tabbed = 0; - bool ended = FALSE; -#ifdef USE_WIDE_CURSES - int combined = 0; -#endif - - if (dialog_state.text_only) { - y_origin = y_after = 0; - x_origin = x_after = 0; - } else { - y_after = 0; - x_after = 0; - getyx(win, y_origin, x_origin); - } - while (cols > 0 && (*txt != '\0')) { - bool thisTab; - chtype useattr; - - if (dialog_vars.colors) { - while (isOurEscape(txt)) { - int code; - - txt += 2; - switch (code = CharOf(*txt)) { -#ifdef HAVE_COLOR - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - *attr &= ~A_COLOR; - *attr |= define_color(win, code - '0'); - break; -#endif - case 'B': - *attr &= ~A_BOLD; - break; - case 'b': - *attr |= A_BOLD; - break; - case 'R': - *attr &= ~A_REVERSE; - break; - case 'r': - *attr |= A_REVERSE; - break; - case 'U': - *attr &= ~A_UNDERLINE; - break; - case 'u': - *attr |= A_UNDERLINE; - break; - case 'n': - *attr = A_NORMAL; - break; - default: - break; - } - ++txt; - } - } - if (ended || *txt == '\n' || *txt == '\0') - break; - useattr = (*attr) & A_ATTRIBUTES; -#ifdef HAVE_COLOR - /* - * Prevent this from making text invisible when the foreground and - * background colors happen to be the same, and there's no bold - * attribute. - */ - if ((useattr & A_COLOR) != 0 && (useattr & A_BOLD) == 0) { - short pair = (short) PAIR_NUMBER(useattr); - short fg, bg; - if (pair_content(pair, &fg, &bg) != ERR - && fg == bg) { - useattr &= ~A_COLOR; - useattr |= dlg_color_pair(fg, ((bg == COLOR_BLACK) - ? COLOR_WHITE - : COLOR_BLACK)); - } - } -#endif - /* - * Write the character, using curses to tell exactly how wide it - * is. If it is a tab, discount that, since the caller thinks - * tabs are nonprinting, and curses will expand tabs to one or - * more blanks. - */ - thisTab = (CharOf(*txt) == TAB); - if (dialog_state.text_only) { - x_before = x_after; - } else { - if (thisTab) { - getyx(win, y_before, x_before); - (void) y_before; - } - } - if (dialog_state.text_only) { - int ch = CharOf(*txt++); - if (thisTab) { - while ((x_after++) % 8) { - fputc(' ', dialog_state.output); - } - } else { - fputc(ch, dialog_state.output); - x_after++; /* FIXME: handle meta per locale */ - } - } else { - (void) waddch(win, CharOf(*txt++) | useattr); - getyx(win, y_after, x_after); - } - if (thisTab && (y_after == y_origin)) - tabbed += (x_after - x_before); - if ((y_after != y_origin) || - (x_after >= (cols + tabbed + x_origin) -#ifdef USE_WIDE_CURSES - && !is_combining(txt, &combined) -#endif - )) { - ended = TRUE; - } - } - if (dialog_state.text_only) { - fputc('\n', dialog_state.output); - } -} - -/* - * Print one line of the prompt in the window within the limits of the - * specified right margin. The line will end on a word boundary and a pointer - * to the start of the next line is returned, or a NULL pointer if the end of - * *prompt is reached. - */ -const char * -dlg_print_line(WINDOW *win, - chtype *attr, - const char *prompt, - int lm, int rm, int *x) -{ - const char *wrap_ptr; - const char *test_ptr; - const char *hide_ptr = 0; - const int *cols = dlg_index_columns(prompt); - const int *indx = dlg_index_wchars(prompt); - int wrap_inx = 0; - int test_inx = 0; - int cur_x = lm; - int hidden = 0; - int limit = dlg_count_wchars(prompt); - int n; - int tabbed = 0; - - *x = 1; - - /* - * Set *test_ptr to the end of the line or the right margin (rm), whichever - * is less, and set wrap_ptr to the end of the last word in the line. - */ - for (n = 0; n < limit; ++n) { - int ch = *(test_ptr = prompt + indx[test_inx]); - if (ch == '\n' || ch == '\0' || cur_x >= (rm + hidden)) - break; - if (ch == TAB && n == 0) { - tabbed = 8; /* workaround for leading tabs */ - } else if (isblank(UCH(ch)) - && n != 0 - && !isblank(UCH(prompt[indx[n - 1]]))) { - wrap_inx = n; - *x = cur_x; - } else if (dialog_vars.colors && isOurEscape(test_ptr)) { - hide_ptr = test_ptr; - hidden += ESCAPE_LEN; - n += (ESCAPE_LEN - 1); - } - cur_x = lm + tabbed + cols[n + 1]; - if (cur_x > (rm + hidden)) - break; - test_inx = n + 1; - } - - /* - * If the line doesn't reach the right margin in the middle of a word, then - * we don't have to wrap it at the end of the previous word. - */ - test_ptr = prompt + indx[test_inx]; - if (*test_ptr == '\n' || isblank(UCH(*test_ptr)) || *test_ptr == '\0') { - wrap_inx = test_inx; - while (wrap_inx > 0 && isblank(UCH(prompt[indx[wrap_inx - 1]]))) { - wrap_inx--; - } - *x = lm + indx[wrap_inx]; - } else if (*x == 1 && cur_x >= rm) { - /* - * If the line has no spaces, then wrap it anyway at the right margin - */ - *x = rm; - wrap_inx = test_inx; - } - wrap_ptr = prompt + indx[wrap_inx]; -#ifdef USE_WIDE_CURSES - if (UCH(*wrap_ptr) >= 128) { - int combined = 0; - while (is_combining(wrap_ptr, &combined)) { - ++wrap_ptr; - } - } -#endif - - /* - * If we found hidden text past the last point that we will display, - * discount that from the displayed length. - */ - if ((hide_ptr != 0) && (hide_ptr >= wrap_ptr)) { - hidden -= ESCAPE_LEN; - test_ptr = wrap_ptr; - while (test_ptr < wrap_ptr) { - if (dialog_vars.colors && isOurEscape(test_ptr)) { - hidden -= ESCAPE_LEN; - test_ptr += ESCAPE_LEN; - } else { - ++test_ptr; - } - } - } - - /* - * Print the line if we have a window pointer. Otherwise this routine - * is just being called for sizing the window. - */ - if (dialog_state.text_only || win) { - dlg_print_text(win, prompt, (cols[wrap_inx] - hidden), attr); - } - - /* *x tells the calling function how long the line was */ - if (*x == 1) { - *x = rm; - } - - *x -= hidden; - - /* Find the start of the next line and return a pointer to it */ - test_ptr = wrap_ptr; - while (isblank(UCH(*test_ptr))) - test_ptr++; - if (*test_ptr == '\n') - test_ptr++; - dlg_finish_string(prompt); - return (test_ptr); -} - -static void -justify_text(WINDOW *win, - const char *prompt, - int limit_y, - int limit_x, - int *high, int *wide) -{ - chtype attr = A_NORMAL; - int x; - int y = MARGIN; - int max_x = 2; - int lm = (2 * MARGIN); /* left margin (box-border plus a space) */ - int rm = limit_x; /* right margin */ - int bm = limit_y; /* bottom margin */ - int last_y = 0, last_x = 0; - - dialog_state.text_height = 0; - dialog_state.text_width = 0; - if (dialog_state.text_only || win) { - rm -= (2 * MARGIN); - bm -= (2 * MARGIN); - } - if (prompt == 0) - prompt = ""; - - if (win != 0) - getyx(win, last_y, last_x); - while (y <= bm && *prompt) { - x = lm; - - if (*prompt == '\n') { - while (*prompt == '\n' && y < bm) { - if (*(prompt + 1) != '\0') { - ++y; - if (win != 0) - (void) wmove(win, y, lm); - } - prompt++; - } - } else if (win != 0) - (void) wmove(win, y, lm); - - if (*prompt) { - prompt = dlg_print_line(win, &attr, prompt, lm, rm, &x); - if (win != 0) - getyx(win, last_y, last_x); - } - if (*prompt) { - ++y; - if (win != 0) - (void) wmove(win, y, lm); - } - max_x = MAX(max_x, x); - } - /* Move back to the last position after drawing prompt, for msgbox. */ - if (win != 0) - (void) wmove(win, last_y, last_x); - - /* Set the final height and width for the calling function */ - if (high != 0) - *high = y; - if (wide != 0) - *wide = max_x; -} - -/* - * Print a string of text in a window, automatically wrap around to the next - * line if the string is too long to fit on one line. Note that the string may - * contain embedded newlines. - */ -void -dlg_print_autowrap(WINDOW *win, const char *prompt, int height, int width) -{ - justify_text(win, prompt, - height, - width, - (int *) 0, (int *) 0); -} - -/* - * Display the message in a scrollable window. Actually the way it works is - * that we create a "tall" window of the proper width, let the text wrap within - * that, and copy a slice of the result to the dialog. - * - * It works for ncurses. Other curses implementations show only blanks (Tru64) - * or garbage (NetBSD). - */ -int -dlg_print_scrolled(WINDOW *win, - const char *prompt, - int offset, - int height, - int width, - int pauseopt) -{ - int oldy, oldx; - int last = 0; - - (void) pauseopt; /* used only for ncurses */ - - getyx(win, oldy, oldx); -#ifdef NCURSES_VERSION - if (pauseopt) { - int wide = width - (2 * MARGIN); - int high = LINES; - int len; - WINDOW *dummy; - -#if defined(NCURSES_VERSION_PATCH) && NCURSES_VERSION_PATCH >= 20040417 - /* - * If we're not limited by the screensize, allow text to possibly be - * one character per line. - */ - if ((len = dlg_count_columns(prompt)) > high) - high = len; -#endif - dummy = newwin(high, width, 0, 0); - if (dummy == 0) { - dlg_attrset(win, dialog_attr); - dlg_print_autowrap(win, prompt, height + 1 + (3 * MARGIN), width); - last = 0; - } else { - int y, x; - - wbkgdset(dummy, dialog_attr | ' '); - dlg_attrset(dummy, dialog_attr); - werase(dummy); - dlg_print_autowrap(dummy, prompt, high, width); - getyx(dummy, y, x); - (void) x; - - copywin(dummy, /* srcwin */ - win, /* dstwin */ - offset + MARGIN, /* sminrow */ - MARGIN, /* smincol */ - MARGIN, /* dminrow */ - MARGIN, /* dmincol */ - height, /* dmaxrow */ - wide, /* dmaxcol */ - FALSE); - - delwin(dummy); - - /* if the text is incomplete, or we have scrolled, show the percentage */ - if (y > 0 && wide > 4) { - int percent = (int) ((height + offset) * 100.0 / y); - - if (percent < 0) - percent = 0; - if (percent > 100) - percent = 100; - - if (offset != 0 || percent != 100) { - char buffer[5]; - - dlg_attrset(win, position_indicator_attr); - (void) wmove(win, MARGIN + height, wide - 4); - (void) sprintf(buffer, "%d%%", percent); - (void) waddstr(win, buffer); - if ((len = (int) strlen(buffer)) < 4) { - dlg_attrset(win, border_attr); - whline(win, dlg_boxchar(ACS_HLINE), 4 - len); - } - } - } - last = (y - height); - } - } else -#endif - { - (void) offset; - dlg_attrset(win, dialog_attr); - dlg_print_autowrap(win, prompt, height + 1 + (3 * MARGIN), width); - last = 0; - } - wmove(win, oldy, oldx); - return last; -} - -int -dlg_check_scrolled(int key, int last, int page, bool * show, int *offset) -{ - int code = 0; - - *show = FALSE; - - switch (key) { - case DLGK_PAGE_FIRST: - if (*offset > 0) { - *offset = 0; - *show = TRUE; - } - break; - case DLGK_PAGE_LAST: - if (*offset < last) { - *offset = last; - *show = TRUE; - } - break; - case DLGK_GRID_UP: - if (*offset > 0) { - --(*offset); - *show = TRUE; - } - break; - case DLGK_GRID_DOWN: - if (*offset < last) { - ++(*offset); - *show = TRUE; - } - break; - case DLGK_PAGE_PREV: - if (*offset > 0) { - *offset -= page; - if (*offset < 0) - *offset = 0; - *show = TRUE; - } - break; - case DLGK_PAGE_NEXT: - if (*offset < last) { - *offset += page; - if (*offset > last) - *offset = last; - *show = TRUE; - } - break; - default: - code = -1; - break; - } - return code; -} - -/* - * Calculate the window size for preformatted text. This will calculate box - * dimensions that are at or close to the specified aspect ratio for the prompt - * string with all spaces and newlines preserved and additional newlines added - * as necessary. - */ -static void -auto_size_preformatted(const char *prompt, int *height, int *width) -{ - int high = 0, wide = 0; - float car; /* Calculated Aspect Ratio */ - int max_y = SLINES - 1; - int max_x = SCOLS - 2; - int max_width = max_x; - int ar = dialog_state.aspect_ratio; - - /* Get the initial dimensions */ - justify_text((WINDOW *) 0, prompt, max_y, max_x, &high, &wide); - car = (float) (wide / high); - - /* - * If the aspect ratio is greater than it should be, then decrease the - * width proportionately. - */ - if (car > ar) { - float diff = car / (float) ar; - max_x = (int) ((float) wide / diff + 4); - justify_text((WINDOW *) 0, prompt, max_y, max_x, &high, &wide); - car = (float) wide / (float) high; - } - - /* - * If the aspect ratio is too small after decreasing the width, then - * incrementally increase the width until the aspect ratio is equal to or - * greater than the specified aspect ratio. - */ - while (car < ar && max_x < max_width) { - max_x += 4; - justify_text((WINDOW *) 0, prompt, max_y, max_x, &high, &wide); - car = (float) (wide / high); - } - - *height = high; - *width = wide; -} - -/* - * Find the length of the longest "word" in the given string. By setting the - * widget width at least this long, we can avoid splitting a word on the - * margin. - */ -static int -longest_word(const char *string) -{ - int result = 0; - - while (*string != '\0') { - int length = 0; - while (*string != '\0' && !isspace(UCH(*string))) { - length++; - string++; - } - result = MAX(result, length); - if (*string != '\0') - string++; - } - return result; -} - -/* - * if (height or width == -1) Maximize() - * if (height or width == 0), justify and return actual limits. - */ -static void -real_auto_size(const char *title, - const char *prompt, - int *height, int *width, - int boxlines, int mincols) -{ - int x = (dialog_vars.begin_set ? dialog_vars.begin_x : 2); - int y = (dialog_vars.begin_set ? dialog_vars.begin_y : 1); - int title_length = title ? dlg_count_columns(title) : 0; - int high; - int save_high = *height; - int save_wide = *width; - int max_high; - int max_wide; - - if (prompt == 0) { - if (*height == 0) - *height = -1; - if (*width == 0) - *width = -1; - } - - max_high = (*height < 0); - max_wide = (*width < 0); - - if (*height > 0) { - high = *height; - } else { - high = SLINES - y; - } - - if (*width <= 0) { - int wide; - - if (prompt != 0) { - wide = MAX(title_length, mincols); - if (strchr(prompt, '\n') == 0) { - double val = (dialog_state.aspect_ratio * - dlg_count_real_columns(prompt)); - double xxx = sqrt(val); - int tmp = (int) xxx; - wide = MAX(wide, tmp); - wide = MAX(wide, longest_word(prompt)); - justify_text((WINDOW *) 0, prompt, high, wide, height, width); - } else { - auto_size_preformatted(prompt, height, width); - } - } else { - wide = SCOLS - x; - justify_text((WINDOW *) 0, prompt, high, wide, height, width); - } - } - - if (*width < title_length) { - justify_text((WINDOW *) 0, prompt, high, title_length, height, width); - *width = title_length; - } - - dialog_state.text_height = *height; - dialog_state.text_width = *width; - - if (*width < mincols && save_wide == 0) - *width = mincols; - if (prompt != 0) { - *width += ((2 * MARGIN) + SHADOW_COLS); - *height += boxlines + (2 * MARGIN); - } - - if (save_high > 0) - *height = save_high; - if (save_wide > 0) - *width = save_wide; - - if (max_high) - *height = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0); - if (max_wide) - *width = SCOLS - (dialog_vars.begin_set ? dialog_vars.begin_x : 0); -} - -/* End of real_auto_size() */ - -void -dlg_auto_size(const char *title, - const char *prompt, - int *height, - int *width, - int boxlines, - int mincols) -{ - DLG_TRACE(("# dlg_auto_size(%d,%d) limits %d,%d\n", - *height, *width, - boxlines, mincols)); - - real_auto_size(title, prompt, height, width, boxlines, mincols); - - if (*width > SCOLS) { - (*height)++; - *width = SCOLS; - } - - if (*height > SLINES) { - *height = SLINES; - } - DLG_TRACE(("# ...dlg_auto_size(%d,%d) also %d,%d\n", - *height, *width, - dialog_state.text_height, dialog_state.text_width)); -} - -/* - * if (height or width == -1) Maximize() - * if (height or width == 0) - * height=MIN(SLINES, num.lines in fd+n); - * width=MIN(SCOLS, MAX(longer line+n, mincols)); - */ -void -dlg_auto_sizefile(const char *title, - const char *file, - int *height, - int *width, - int boxlines, - int mincols) -{ - int count = 0; - int len = title ? dlg_count_columns(title) : 0; - int nc = 4; - int numlines = 2; - FILE *fd; - - /* Open input file for reading */ - if ((fd = fopen(file, "rb")) == NULL) - dlg_exiterr("dlg_auto_sizefile: Cannot open input file %s", file); - - if ((*height == -1) || (*width == -1)) { - *height = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0); - *width = SCOLS - (dialog_vars.begin_set ? dialog_vars.begin_x : 0); - } - if ((*height != 0) && (*width != 0)) { - (void) fclose(fd); - if (*width > SCOLS) - *width = SCOLS; - if (*height > SLINES) - *height = SLINES; - return; - } - - while (!feof(fd)) { - int ch; - long offset; - - if (ferror(fd)) - break; - - offset = 0; - while (((ch = getc(fd)) != '\n') && !feof(fd)) { - if ((ch == TAB) && (dialog_vars.tab_correct)) { - offset += dialog_state.tab_len - (offset % dialog_state.tab_len); - } else { - offset++; - } - } - - if (offset > len) - len = (int) offset; - - count++; - } - - /* now 'count' has the number of lines of fd and 'len' the max length */ - - *height = MIN(SLINES, count + numlines + boxlines); - *width = MIN(SCOLS, MAX((len + nc), mincols)); - /* here width and height can be maximized if > SCOLS|SLINES because - textbox-like widgets don't put all <file> on the screen. - Msgbox-like widget instead have to put all <text> correctly. */ - - (void) fclose(fd); -} - -/* - * Draw a rectangular box with line drawing characters. - * - * borderchar is used to color the upper/left edges. - * - * boxchar is used to color the right/lower edges. It also is fill-color used - * for the box contents. - * - * Normally, if you are drawing a scrollable box, use menubox_border_attr for - * boxchar, and menubox_attr for borderchar since the scroll-arrows are drawn - * with menubox_attr at the top, and menubox_border_attr at the bottom. That - * also (given the default color choices) produces a recessed effect. - * - * If you want a raised effect (and are not going to use the scroll-arrows), - * reverse this choice. - */ -void -dlg_draw_box2(WINDOW *win, int y, int x, int height, int width, - chtype boxchar, chtype borderchar, chtype borderchar2) -{ - int i, j; - chtype save = dlg_get_attrs(win); - - dlg_attrset(win, 0); - for (i = 0; i < height; i++) { - (void) wmove(win, y + i, x); - for (j = 0; j < width; j++) - if (!i && !j) - (void) waddch(win, borderchar | dlg_boxchar(ACS_ULCORNER)); - else if (i == height - 1 && !j) - (void) waddch(win, borderchar | dlg_boxchar(ACS_LLCORNER)); - else if (!i && j == width - 1) - (void) waddch(win, borderchar2 | dlg_boxchar(ACS_URCORNER)); - else if (i == height - 1 && j == width - 1) - (void) waddch(win, borderchar2 | dlg_boxchar(ACS_LRCORNER)); - else if (!i) - (void) waddch(win, borderchar | dlg_boxchar(ACS_HLINE)); - else if (i == height - 1) - (void) waddch(win, borderchar2 | dlg_boxchar(ACS_HLINE)); - else if (!j) - (void) waddch(win, borderchar | dlg_boxchar(ACS_VLINE)); - else if (j == width - 1) - (void) waddch(win, borderchar2 | dlg_boxchar(ACS_VLINE)); - else - (void) waddch(win, boxchar | ' '); - } - dlg_attrset(win, save); -} - -void -dlg_draw_box(WINDOW *win, int y, int x, int height, int width, - chtype boxchar, chtype borderchar) -{ - dlg_draw_box2(win, y, x, height, width, boxchar, borderchar, boxchar); -} - -/* - * Search the given 'list' for the given window 'win'. Typically 'win' is an - * input-window, i.e., a window where we might use wgetch. - * - * The all-windows list has normal- and shadow-windows. Since we never use the - * shadow as an input window, normally we just look for the normal-window. - * - * However, the all-subwindows list stores parent/child windows rather than - * normal/shadow windows. When searching that list, we look for the child - * window (in the .shadow field). - */ -static DIALOG_WINDOWS * -find_window(DIALOG_WINDOWS * list, WINDOW *win, bool normal) -{ - DIALOG_WINDOWS *result = 0; - DIALOG_WINDOWS *p; - - for (p = list; p != 0; p = p->next) { - WINDOW *check = normal ? p->normal : p->shadow; - if (check == win) { - result = p; - break; - } - } - return result; -} - -#define SearchTopWindows(win) find_window(dialog_state.all_windows, win, TRUE) -#define SearchSubWindows(win) find_window(dialog_state.all_subwindows, win, FALSE) - -/* - * Check for the existence of a window, e.g., when used for input or updating - * the display. This is used in dlg_getc() and related functions, to guard - * against an asynchronous window-deletion that might invalidate the input - * window used in dlg_getc(). - */ -DIALOG_WINDOWS * -_dlg_find_window(WINDOW *win) -{ - DIALOG_WINDOWS *result = 0; - - if ((result = SearchTopWindows(win)) == NULL) - result = SearchSubWindows(win); - return result; -} - -#ifdef HAVE_COLOR -/* - * If we have wchgat(), use that for updating shadow attributes, to work with - * wide-character data. - */ - -/* - * Check if the given point is "in" the given window. If so, return the window - * pointer, otherwise null. - */ -static WINDOW * -in_window(WINDOW *win, int y, int x) -{ - WINDOW *result = 0; - int y_base = getbegy(win); - int x_base = getbegx(win); - int y_last = getmaxy(win) + y_base; - int x_last = getmaxx(win) + x_base; - - if (y >= y_base && y <= y_last && x >= x_base && x <= x_last) - result = win; - return result; -} - -static WINDOW * -window_at_cell(DIALOG_WINDOWS * dw, int y, int x) -{ - WINDOW *result = 0; - DIALOG_WINDOWS *p; - int y_want = y + getbegy(dw->shadow); - int x_want = x + getbegx(dw->shadow); - - for (p = dialog_state.all_windows; p != 0; p = p->next) { - if (dw->normal != p->normal - && dw->shadow != p->normal - && (result = in_window(p->normal, y_want, x_want)) != 0) { - break; - } - } - if (result == 0) { - result = stdscr; - } - return result; -} - -static bool -in_shadow(WINDOW *normal, WINDOW *shadow, int y, int x) -{ - bool result = FALSE; - int ybase = getbegy(normal); - int ylast = getmaxy(normal) + ybase; - int xbase = getbegx(normal); - int xlast = getmaxx(normal) + xbase; - - y += getbegy(shadow); - x += getbegx(shadow); - - if (y >= ybase + SHADOW_ROWS - && y < ylast + SHADOW_ROWS - && x >= xlast - && x < xlast + SHADOW_COLS) { - /* in the right-side */ - result = TRUE; - } else if (y >= ylast - && y < ylast + SHADOW_ROWS - && x >= ybase + SHADOW_COLS - && x < ylast + SHADOW_COLS) { - /* check the bottom */ - result = TRUE; - } - - return result; -} - -/* - * When erasing a shadow, check each cell to make sure that it is not part of - * another box's shadow. This is a little complicated since most shadows are - * merged onto stdscr. - */ -static bool -last_shadow(DIALOG_WINDOWS * dw, int y, int x) -{ - DIALOG_WINDOWS *p; - bool result = TRUE; - - for (p = dialog_state.all_windows; p != 0; p = p->next) { - if (p->normal != dw->normal - && in_shadow(p->normal, dw->shadow, y, x)) { - result = FALSE; - break; - } - } - return result; -} - -static void -repaint_cell(DIALOG_WINDOWS * dw, bool draw, int y, int x) -{ - WINDOW *win = dw->shadow; - WINDOW *cellwin; - int y2, x2; - - if ((cellwin = window_at_cell(dw, y, x)) != 0 - && (draw || last_shadow(dw, y, x)) - && (y2 = (y + getbegy(win) - getbegy(cellwin))) >= 0 - && (x2 = (x + getbegx(win) - getbegx(cellwin))) >= 0 - && wmove(cellwin, y2, x2) != ERR) { - chtype the_cell = dlg_get_attrs(cellwin); - chtype the_attr = (draw ? shadow_attr : the_cell); - - if (winch(cellwin) & A_ALTCHARSET) { - the_attr |= A_ALTCHARSET; - } -#if USE_WCHGAT - wchgat(cellwin, 1, - the_attr & (chtype) (~A_COLOR), - (short) PAIR_NUMBER(the_attr), - NULL); -#else - { - chtype the_char = ((winch(cellwin) & A_CHARTEXT) | the_attr); - (void) waddch(cellwin, the_char); - } -#endif - wnoutrefresh(cellwin); - } -} - -#define RepaintCell(dw, draw, y, x) repaint_cell(dw, draw, y, x) - -static void -repaint_shadow(DIALOG_WINDOWS * dw, bool draw, int y, int x, int height, int width) -{ - if (UseShadow(dw)) { - int i, j; - -#if !USE_WCHGAT - chtype save = dlg_get_attrs(dw->shadow); - dlg_attrset(dw->shadow, draw ? shadow_attr : screen_attr); -#endif - for (i = 0; i < SHADOW_ROWS; ++i) { - for (j = 0; j < width; ++j) { - RepaintCell(dw, draw, i + y + height, j + x + SHADOW_COLS); - } - } - for (i = 0; i < height; i++) { - for (j = 0; j < SHADOW_COLS; ++j) { - RepaintCell(dw, draw, i + y + SHADOW_ROWS, j + x + width); - } - } - (void) wnoutrefresh(dw->shadow); -#if !USE_WCHGAT - dlg_attrset(dw->shadow, save); -#endif - } -} - -/* - * Draw a shadow on the parent window corresponding to the right- and - * bottom-edge of the child window, to give a 3-dimensional look. - */ -static void -draw_childs_shadow(DIALOG_WINDOWS * dw) -{ - if (UseShadow(dw)) { - repaint_shadow(dw, - TRUE, - getbegy(dw->normal) - getbegy(dw->shadow), - getbegx(dw->normal) - getbegx(dw->shadow), - getmaxy(dw->normal), - getmaxx(dw->normal)); - } -} - -/* - * Erase a shadow on the parent window corresponding to the right- and - * bottom-edge of the child window. - */ -static void -erase_childs_shadow(DIALOG_WINDOWS * dw) -{ - if (UseShadow(dw)) { - repaint_shadow(dw, - FALSE, - getbegy(dw->normal) - getbegy(dw->shadow), - getbegx(dw->normal) - getbegx(dw->shadow), - getmaxy(dw->normal), - getmaxx(dw->normal)); - } -} - -/* - * Draw shadows along the right and bottom edge to give a more 3D look - * to the boxes. - */ -void -dlg_draw_shadow(WINDOW *win, int y, int x, int height, int width) -{ - repaint_shadow(SearchTopWindows(win), TRUE, y, x, height, width); -} -#endif /* HAVE_COLOR */ - -/* - * Allow shell scripts to remap the exit codes so they can distinguish ESC - * from ERROR. - */ -void -dlg_exit(int code) -{ - /* *INDENT-OFF* */ - static const struct { - int code; - const char *name; - } table[] = { - { DLG_EXIT_CANCEL, "DIALOG_CANCEL" }, - { DLG_EXIT_ERROR, "DIALOG_ERROR" }, - { DLG_EXIT_ESC, "DIALOG_ESC" }, - { DLG_EXIT_EXTRA, "DIALOG_EXTRA" }, - { DLG_EXIT_HELP, "DIALOG_HELP" }, - { DLG_EXIT_OK, "DIALOG_OK" }, - { DLG_EXIT_ITEM_HELP, "DIALOG_ITEM_HELP" }, - { DLG_EXIT_TIMEOUT, "DIALOG_TIMEOUT" }, - }; - /* *INDENT-ON* */ - - unsigned n; - bool overridden = FALSE; - - retry: - for (n = 0; n < TableSize(table); n++) { - if (table[n].code == code) { - if (dlg_getenv_num(table[n].name, &code)) { - overridden = TRUE; - } - break; - } - } - - /* - * Prior to 2004/12/19, a widget using --item-help would exit with "OK" - * if the help button were selected. Now we want to exit with "HELP", - * but allow the environment variable to override. - */ - if (code == DLG_EXIT_ITEM_HELP && !overridden) { - code = DLG_EXIT_HELP; - goto retry; - } -#ifdef HAVE_DLG_TRACE - dlg_trace((const char *) 0); /* close it */ -#endif - -#ifdef NO_LEAKS - _dlg_inputstr_leaks(); -#if defined(NCURSES_VERSION) && (defined(HAVE_CURSES_EXIT) || defined(HAVE__NC_FREE_AND_EXIT)) - curses_exit(code); -#endif -#endif - - if (dialog_state.input == stdin) { - exit(code); - } else { - /* - * Just in case of using --input-fd option, do not - * call atexit functions of ncurses which may hang. - */ - if (dialog_state.input) { - fclose(dialog_state.input); - dialog_state.input = 0; - } - if (dialog_state.pipe_input) { - if (dialog_state.pipe_input != stdin) { - fclose(dialog_state.pipe_input); - dialog_state.pipe_input = 0; - } - } - _exit(code); - } -} - -#define DATA(name) { DLG_EXIT_ ## name, #name } -/* *INDENT-OFF* */ -static struct { - int code; - const char *name; -} exit_codenames[] = { - DATA(ESC), - DATA(UNKNOWN), - DATA(ERROR), - DATA(OK), - DATA(CANCEL), - DATA(HELP), - DATA(EXTRA), - DATA(ITEM_HELP), -}; -#undef DATA -/* *INDENT-ON* */ - -const char * -dlg_exitcode2s(int code) -{ - const char *result = "?"; - size_t n; - - for (n = 0; n < TableSize(exit_codenames); ++n) { - if (exit_codenames[n].code == code) { - result = exit_codenames[n].name; - break; - } - } - return result; -} - -int -dlg_exitname2n(const char *name) -{ - int result = DLG_EXIT_UNKNOWN; - size_t n; - - for (n = 0; n < TableSize(exit_codenames); ++n) { - if (!dlg_strcmp(exit_codenames[n].name, name)) { - result = exit_codenames[n].code; - break; - } - } - return result; -} - -/* quit program killing all tailbg */ -void -dlg_exiterr(const char *fmt, ...) -{ - int retval; - va_list ap; - - end_dialog(); - - (void) fputc('\n', stderr); - va_start(ap, fmt); - (void) vfprintf(stderr, fmt, ap); - va_end(ap); - (void) fputc('\n', stderr); - -#ifdef HAVE_DLG_TRACE - va_start(ap, fmt); - dlg_trace_msg("## Error: "); - dlg_trace_va_msg(fmt, ap); - va_end(ap); -#endif - - dlg_killall_bg(&retval); - - (void) fflush(stderr); - (void) fflush(stdout); - dlg_exit(strcmp(fmt, "timeout") == 0 ? DLG_EXIT_TIMEOUT : DLG_EXIT_ERROR); -} - -/* - * Get a string from the environment, rejecting those which are entirely blank. - */ -char * -dlg_getenv_str(const char *name) -{ - char *result = getenv(name); - if (result != NULL) { - while (*result != '\0' && isspace(UCH(*result))) - ++result; - if (*result == '\0') - result = NULL; - } - return result; -} - -/* - * Get a number from the environment: - * + If the caller provides a pointer in the second parameter, return - * success/failure for the function return, and the actual value via the - * pointer. Use this for decoding arbitrary numbers, e.g., negative or zero. - * + If the caller does not provide a pointer, return the decoded value for - * the function-return. Use this when only values greater than zero are - * useful. - */ -int -dlg_getenv_num(const char *name, int *value) -{ - int result = 0; - char *data = getenv(name); - if (data != NULL) { - char *temp = NULL; - long check = strtol(data, &temp, 0); - if (temp != 0 && temp != data && *temp == '\0') { - result = (int) check; - if (value != NULL) { - *value = result; - result = 1; - } - } - } - return result; -} - -void -dlg_beeping(void) -{ - if (dialog_vars.beep_signal) { - (void) beep(); - dialog_vars.beep_signal = 0; - } -} - -void -dlg_print_size(int height, int width) -{ - if (dialog_vars.print_siz) { - fprintf(dialog_state.output, "Size: %d, %d\n", height, width); - DLG_TRACE(("# print size: %dx%d\n", height, width)); - } -} - -void -dlg_ctl_size(int height, int width) -{ - if (dialog_vars.size_err) { - if ((width > COLS) || (height > LINES)) { - dlg_exiterr("Window too big. (height, width) = (%d, %d). Max allowed (%d, %d).", - height, width, LINES, COLS); - } -#ifdef HAVE_COLOR - else if ((dialog_state.use_shadow) - && ((width > SCOLS || height > SLINES))) { - if ((width <= COLS) && (height <= LINES)) { - /* try again, without shadows */ - dialog_state.use_shadow = 0; - } else { - dlg_exiterr("Window+Shadow too big. (height, width) = (%d, %d). Max allowed (%d, %d).", - height, width, SLINES, SCOLS); - } - } -#endif - } -} - -/* - * If the --tab-correct was not selected, convert tabs to single spaces. - */ -void -dlg_tab_correct_str(char *prompt) -{ - char *ptr; - - if (dialog_vars.tab_correct) { - while ((ptr = strchr(prompt, TAB)) != NULL) { - *ptr = ' '; - prompt = ptr; - } - } -} - -void -dlg_calc_listh(int *height, int *list_height, int item_no) -{ - /* calculate new height and list_height */ - int rows = SLINES - (dialog_vars.begin_set ? dialog_vars.begin_y : 0); - if (rows - (*height) > 0) { - if (rows - (*height) > item_no) - *list_height = item_no; - else - *list_height = rows - (*height); - } - (*height) += (*list_height); -} - -/* obsolete */ -int -dlg_calc_listw(int item_no, char **items, int group) -{ - int i, len1 = 0, len2 = 0; - - for (i = 0; i < (item_no * group); i += group) { - int n; - - if ((n = dlg_count_columns(items[i])) > len1) - len1 = n; - if ((n = dlg_count_columns(items[i + 1])) > len2) - len2 = n; - } - return len1 + len2; -} - -int -dlg_calc_list_width(int item_no, DIALOG_LISTITEM * items) -{ - int n, i, len1 = 0, len2 = 0; - int bits = ((dialog_vars.no_tags ? 1 : 0) - + (dialog_vars.no_items ? 2 : 0)); - - for (i = 0; i < item_no; ++i) { - switch (bits) { - case 0: - /* FALLTHRU */ - case 1: - if ((n = dlg_count_columns(items[i].name)) > len1) - len1 = n; - if ((n = dlg_count_columns(items[i].text)) > len2) - len2 = n; - break; - case 2: - /* FALLTHRU */ - case 3: - if ((n = dlg_count_columns(items[i].name)) > len1) - len1 = n; - break; - } - } - return len1 + len2; -} - -char * -dlg_strempty(void) -{ - static char empty[] = ""; - return empty; -} - -char * -dlg_strclone(const char *cprompt) -{ - char *prompt = 0; - if (cprompt != 0) { - prompt = dlg_malloc(char, strlen(cprompt) + 1); - assert_ptr(prompt, "dlg_strclone"); - strcpy(prompt, cprompt); - } - return prompt; -} - -chtype -dlg_asciibox(chtype ch) -{ - chtype result = 0; - - if (ch == ACS_ULCORNER) - result = '+'; - else if (ch == ACS_LLCORNER) - result = '+'; - else if (ch == ACS_URCORNER) - result = '+'; - else if (ch == ACS_LRCORNER) - result = '+'; - else if (ch == ACS_HLINE) - result = '-'; - else if (ch == ACS_VLINE) - result = '|'; - else if (ch == ACS_LTEE) - result = '+'; - else if (ch == ACS_RTEE) - result = '+'; - else if (ch == ACS_UARROW) - result = '^'; - else if (ch == ACS_DARROW) - result = 'v'; - - return result; -} - -chtype -dlg_boxchar(chtype ch) -{ - chtype result = dlg_asciibox(ch); - - if (result != 0) { - if (dialog_vars.ascii_lines) - ch = result; - else if (dialog_vars.no_lines) - ch = ' '; - } - return ch; -} - -int -dlg_box_x_ordinate(int width) -{ - int x; - - if (dialog_vars.begin_set == 1) { - x = dialog_vars.begin_x; - } else { - /* center dialog box on screen unless --begin-set */ - x = (SCOLS - width) / 2; - } - return x; -} - -int -dlg_box_y_ordinate(int height) -{ - int y; - - if (dialog_vars.begin_set == 1) { - y = dialog_vars.begin_y; - } else { - /* center dialog box on screen unless --begin-set */ - y = (SLINES - height) / 2; - } - return y; -} - -void -dlg_draw_title(WINDOW *win, const char *title) -{ - if (title != NULL) { - chtype attr = A_NORMAL; - chtype save = dlg_get_attrs(win); - int x = centered(getmaxx(win), title); - - dlg_attrset(win, title_attr); - wmove(win, 0, x); - dlg_print_text(win, title, getmaxx(win) - x, &attr); - dlg_attrset(win, save); - dlg_finish_string(title); - } -} - -void -dlg_draw_bottom_box2(WINDOW *win, chtype on_left, chtype on_right, chtype on_inside) -{ - int width = getmaxx(win); - int height = getmaxy(win); - int i; - - dlg_attrset(win, on_left); - (void) wmove(win, height - 3, 0); - (void) waddch(win, dlg_boxchar(ACS_LTEE)); - for (i = 0; i < width - 2; i++) - (void) waddch(win, dlg_boxchar(ACS_HLINE)); - dlg_attrset(win, on_right); - (void) waddch(win, dlg_boxchar(ACS_RTEE)); - dlg_attrset(win, on_inside); - (void) wmove(win, height - 2, 1); - for (i = 0; i < width - 2; i++) - (void) waddch(win, ' '); -} - -void -dlg_draw_bottom_box(WINDOW *win) -{ - dlg_draw_bottom_box2(win, border_attr, dialog_attr, dialog_attr); -} - -/* - * Remove a window, repainting everything else. This would be simpler if we - * used the panel library, but that is not _always_ available. - */ -void -dlg_del_window(WINDOW *win) -{ - DIALOG_WINDOWS *p, *q, *r; - - /* - * If --keep-window was set, do not delete/repaint the windows. - */ - if (dialog_vars.keep_window) - return; - - /* Leave the main window untouched if there are no background windows. - * We do this so the current window will not be cleared on exit, allowing - * things like the infobox demo to run without flicker. - */ - if (dialog_state.getc_callbacks != 0) { - touchwin(stdscr); - wnoutrefresh(stdscr); - } - - for (p = dialog_state.all_windows, q = r = 0; p != 0; r = p, p = p->next) { - if (p->normal == win) { - q = p; /* found a match - should be only one */ - if (r == 0) { - dialog_state.all_windows = p->next; - } else { - r->next = p->next; - } - } else { - if (p->shadow != 0) { - touchwin(p->shadow); - wnoutrefresh(p->shadow); - } - touchwin(p->normal); - wnoutrefresh(p->normal); - } - } - - if (q) { - if (dialog_state.all_windows != 0) - erase_childs_shadow(q); - del_subwindows(q->normal); - dlg_unregister_window(q->normal); - delwin(q->normal); - free(q); - } - doupdate(); -} - -/* - * Create a window, optionally with a shadow. - */ -WINDOW * -dlg_new_window(int height, int width, int y, int x) -{ - return dlg_new_modal_window(stdscr, height, width, y, x); -} - -/* - * "Modal" windows differ from normal ones by having a shadow in a window - * separate from the standard screen. - */ -WINDOW * -dlg_new_modal_window(WINDOW *parent, int height, int width, int y, int x) -{ - WINDOW *win; - DIALOG_WINDOWS *p = dlg_calloc(DIALOG_WINDOWS, 1); - - (void) parent; - if (p == 0 - || (win = newwin(height, width, y, x)) == 0) { - dlg_exiterr("Can't make new window at (%d,%d), size (%d,%d).\n", - y, x, height, width); - } - p->next = dialog_state.all_windows; - p->normal = win; - p->getc_timeout = WTIMEOUT_OFF; - dialog_state.all_windows = p; -#ifdef HAVE_COLOR - if (dialog_state.use_shadow) { - p->shadow = parent; - draw_childs_shadow(p); - } -#endif - - (void) keypad(win, TRUE); - return win; -} - -/* - * dlg_getc() uses the return-value to determine how to handle an ERR return - * from a non-blocking read: - * a) if greater than zero, there was an expired timeout (blocking for a short - * time), or - * b) if zero, it was a non-blocking read, or - * c) if negative, an error occurred on a blocking read. - */ -int -dlg_set_timeout(WINDOW *win, bool will_getc) -{ - DIALOG_WINDOWS *p; - int result = 0; - - if ((p = SearchTopWindows(win)) != NULL) { - int interval = (dialog_vars.timeout_secs * 1000); - - if (will_getc || dialog_vars.pause_secs) { - interval = WTIMEOUT_VAL; - } else { - result = interval; - if (interval <= 0) { - interval = WTIMEOUT_OFF; - } - } - wtimeout(win, interval); - p->getc_timeout = interval; - } - return result; -} - -void -dlg_reset_timeout(WINDOW *win) -{ - DIALOG_WINDOWS *p; - - if ((p = SearchTopWindows(win)) != NULL) { - wtimeout(win, p->getc_timeout); - } else { - wtimeout(win, WTIMEOUT_OFF); - } -} - -/* - * Move/Resize a window, optionally with a shadow. - */ -#ifdef KEY_RESIZE -void -dlg_move_window(WINDOW *win, int height, int width, int y, int x) -{ - if (win != 0) { - DIALOG_WINDOWS *p; - - dlg_ctl_size(height, width); - - if ((p = SearchTopWindows(win)) != 0) { - (void) wresize(win, height, width); - (void) mvwin(win, y, x); -#ifdef HAVE_COLOR - if (p->shadow != 0) { - if (dialog_state.use_shadow) { - (void) mvwin(p->shadow, y + SHADOW_ROWS, x + SHADOW_COLS); - } else { - p->shadow = 0; - } - } -#endif - (void) refresh(); - -#ifdef HAVE_COLOR - draw_childs_shadow(p); -#endif - } - } -} - -/* - * Having just received a KEY_RESIZE, wait a short time to ignore followup - * KEY_RESIZE events. - */ -void -dlg_will_resize(WINDOW *win) -{ - int n, base; - int caught = 0; - - dialog_state.had_resize = TRUE; - dlg_trace_win(win); - wtimeout(win, WTIMEOUT_VAL * 5); - - for (n = base = 0; n < base + 10; ++n) { - int ch; - - if ((ch = wgetch(win)) != ERR) { - if (ch == KEY_RESIZE) { - base = n; - ++caught; - } else if (ch != ERR) { - ungetch(ch); - break; - } - } - } - dlg_reset_timeout(win); - DLG_TRACE(("# caught %d KEY_RESIZE key%s\n", - 1 + caught, - caught == 1 ? "" : "s")); -} -#endif /* KEY_RESIZE */ - -WINDOW * -dlg_der_window(WINDOW *parent, int height, int width, int y, int x) -{ - WINDOW *win; - - /* existing uses of derwin are (almost) guaranteed to succeed, and the - * caller has to allow for failure. - */ - if ((win = derwin(parent, height, width, y, x)) != 0) { - add_subwindow(parent, win); - (void) keypad(win, TRUE); - } - return win; -} - -WINDOW * -dlg_sub_window(WINDOW *parent, int height, int width, int y, int x) -{ - WINDOW *win; - - if ((win = subwin(parent, height, width, y, x)) == 0) { - dlg_exiterr("Can't make sub-window at (%d,%d), size (%d,%d).\n", - y, x, height, width); - } - - add_subwindow(parent, win); - (void) keypad(win, TRUE); - return win; -} - -/* obsolete */ -int -dlg_default_item(char **items, int llen) -{ - int result = 0; - - if (dialog_vars.default_item != 0) { - int count = 0; - while (*items != 0) { - if (!strcmp(dialog_vars.default_item, *items)) { - result = count; - break; - } - items += llen; - count++; - } - } - return result; -} - -int -dlg_default_listitem(DIALOG_LISTITEM * items) -{ - int result = 0; - - if (dialog_vars.default_item != 0) { - int count = 0; - while (items->name != 0) { - if (!strcmp(dialog_vars.default_item, items->name)) { - result = count; - break; - } - ++items; - count++; - } - } - return result; -} - -/* - * Draw the string for item_help - */ -void -dlg_item_help(const char *txt) -{ - if (USE_ITEM_HELP(txt)) { - chtype attr = A_NORMAL; - - dlg_attrset(stdscr, itemhelp_attr); - (void) wmove(stdscr, LINES - 1, 0); - (void) wclrtoeol(stdscr); - (void) addch(' '); - dlg_print_text(stdscr, txt, COLS - 1, &attr); - - if (itemhelp_attr & A_COLOR) { - int y, x; - /* fill the remainder of the line with the window's attributes */ - getyx(stdscr, y, x); - (void) y; - while (x < COLS) { - (void) addch(' '); - ++x; - } - } - (void) wnoutrefresh(stdscr); - } -} - -#ifndef HAVE_STRCASECMP -int -dlg_strcmp(const char *a, const char *b) -{ - int ac, bc, cmp; - - for (;;) { - ac = UCH(*a++); - bc = UCH(*b++); - if (isalpha(ac) && islower(ac)) - ac = _toupper(ac); - if (isalpha(bc) && islower(bc)) - bc = _toupper(bc); - cmp = ac - bc; - if (ac == 0 || bc == 0 || cmp != 0) - break; - } - return cmp; -} -#endif - -/* - * Returns true if 'dst' points to a blank which follows another blank which - * is not a leading blank on a line. - */ -static bool -trim_blank(char *base, char *dst) -{ - int count = !!isblank(UCH(*dst)); - - while (dst-- != base) { - if (*dst == '\n') { - break; - } else if (isblank(UCH(*dst))) { - count++; - } else { - break; - } - } - return (count > 1); -} - -/* - * Change embedded "\n" substrings to '\n' characters and tabs to single - * spaces. If there are no "\n"s, it will strip all extra spaces, for - * justification. If it has "\n"'s, it will preserve extra spaces. If cr_wrap - * is set, it will preserve '\n's. - */ -void -dlg_trim_string(char *s) -{ - char *base = s; - char *p1; - char *p = s; - int has_newlines = !dialog_vars.no_nl_expand && (strstr(s, "\\n") != 0); - - while (*p != '\0') { - if (*p == TAB && !dialog_vars.nocollapse) - *p = ' '; - - if (has_newlines) { /* If prompt contains "\n" strings */ - if (*p == '\\' && *(p + 1) == 'n') { - *s++ = '\n'; - p += 2; - p1 = p; - /* - * Handle end of lines intelligently. If '\n' follows "\n" - * then ignore the '\n'. This eliminates the need to escape - * the '\n' character (no need to use "\n\"). - */ - while (isblank(UCH(*p1))) - p1++; - if (*p1 == '\n') - p = p1 + 1; - } else if (*p == '\n') { - if (dialog_vars.cr_wrap) - *s++ = *p++; - else { - /* Replace the '\n' with a space if cr_wrap is not set */ - if (!trim_blank(base, p)) - *s++ = ' '; - p++; - } - } else /* If *p != '\n' */ - *s++ = *p++; - } else if (dialog_vars.trim_whitespace) { - if (isblank(UCH(*p))) { - if (!isblank(UCH(*(s - 1)))) { - *s++ = ' '; - p++; - } else - p++; - } else if (*p == '\n') { - if (dialog_vars.cr_wrap) - *s++ = *p++; - else if (!isblank(UCH(*(s - 1)))) { - /* Strip '\n's if cr_wrap is not set. */ - *s++ = ' '; - p++; - } else - p++; - } else - *s++ = *p++; - } else { /* If there are no "\n" strings */ - if (isblank(UCH(*p)) && !dialog_vars.nocollapse) { - if (!trim_blank(base, p)) - *s++ = *p; - p++; - } else - *s++ = *p++; - } - } - - *s = '\0'; -} - -void -dlg_set_focus(WINDOW *parent, WINDOW *win) -{ - if (win != 0) { - (void) wmove(parent, - getpary(win) + getcury(win), - getparx(win) + getcurx(win)); - (void) wnoutrefresh(win); - (void) doupdate(); - } -} - -/* - * Returns the nominal maximum buffer size. - */ -int -dlg_max_input(int max_len) -{ - if (dialog_vars.max_input != 0 && dialog_vars.max_input < MAX_LEN) - max_len = dialog_vars.max_input; - - return max_len; -} - -/* - * Free storage used for the result buffer. - */ -void -dlg_clr_result(void) -{ - if (dialog_vars.input_length) { - dialog_vars.input_length = 0; - if (dialog_vars.input_result) - free(dialog_vars.input_result); - } - dialog_vars.input_result = 0; -} - -/* - * Setup a fixed-buffer for the result. - */ -char * -dlg_set_result(const char *string) -{ - unsigned need = string ? (unsigned) strlen(string) + 1 : 0; - - /* inputstr.c needs a fixed buffer */ - if (need < MAX_LEN) - need = MAX_LEN; - - /* - * If the buffer is not big enough, allocate a new one. - */ - if (dialog_vars.input_length != 0 - || dialog_vars.input_result == 0 - || need > MAX_LEN) { - - dlg_clr_result(); - - dialog_vars.input_length = need; - dialog_vars.input_result = dlg_malloc(char, need); - assert_ptr(dialog_vars.input_result, "dlg_set_result"); - } - - strcpy(dialog_vars.input_result, string ? string : ""); - - return dialog_vars.input_result; -} - -/* - * Accumulate results in dynamically allocated buffer. - * If input_length is zero, it is a MAX_LEN buffer belonging to the caller. - */ -void -dlg_add_result(const char *string) -{ - unsigned have = (dialog_vars.input_result - ? (unsigned) strlen(dialog_vars.input_result) - : 0); - unsigned want = (unsigned) strlen(string) + 1 + have; - - if ((want >= MAX_LEN) - || (dialog_vars.input_length != 0) - || (dialog_vars.input_result == 0)) { - - if (dialog_vars.input_length == 0 - || dialog_vars.input_result == 0) { - - char *save_result = dialog_vars.input_result; - - dialog_vars.input_length = want * 2; - dialog_vars.input_result = dlg_malloc(char, dialog_vars.input_length); - assert_ptr(dialog_vars.input_result, "dlg_add_result malloc"); - dialog_vars.input_result[0] = '\0'; - if (save_result != 0) - strcpy(dialog_vars.input_result, save_result); - } else if (want >= dialog_vars.input_length) { - dialog_vars.input_length = want * 2; - dialog_vars.input_result = dlg_realloc(char, - dialog_vars.input_length, - dialog_vars.input_result); - assert_ptr(dialog_vars.input_result, "dlg_add_result realloc"); - } - } - strcat(dialog_vars.input_result, string); -} - -/* - * These are characters that (aside from the quote-delimiter) will have to - * be escaped in a single- or double-quoted string. - */ -#define FIX_SINGLE "\n\\" -#define FIX_DOUBLE FIX_SINGLE "[]{}?*;`~#$^&()|<>" - -/* - * Returns the quote-delimiter. - */ -static const char * -quote_delimiter(void) -{ - return dialog_vars.single_quoted ? "'" : "\""; -} - -/* - * Returns true if we should quote the given string. - */ -static bool -must_quote(char *string) -{ - bool code = FALSE; - - if (*string != '\0') { - size_t len = strlen(string); - if (strcspn(string, quote_delimiter()) != len) - code = TRUE; - else if (strcspn(string, "\n\t ") != len) - code = TRUE; - else - code = (strcspn(string, FIX_DOUBLE) != len); - } else { - code = TRUE; - } - - return code; -} - -/* - * Add a quoted string to the result buffer. - */ -void -dlg_add_quoted(char *string) -{ - char temp[2]; - const char *my_quote = quote_delimiter(); - const char *must_fix = (dialog_vars.single_quoted - ? FIX_SINGLE - : FIX_DOUBLE); - - if (must_quote(string)) { - temp[1] = '\0'; - dlg_add_result(my_quote); - while (*string != '\0') { - temp[0] = *string++; - if ((strchr) (my_quote, *temp) || (strchr) (must_fix, *temp)) - dlg_add_result("\\"); - dlg_add_result(temp); - } - dlg_add_result(my_quote); - } else { - dlg_add_result(string); - } -} - -/* - * When adding a result, make that depend on whether "--quoted" is used. - */ -void -dlg_add_string(char *string) -{ - if (dialog_vars.quoted) { - dlg_add_quoted(string); - } else { - dlg_add_result(string); - } -} - -bool -dlg_need_separator(void) -{ - bool result = FALSE; - - if (dialog_vars.output_separator) { - result = TRUE; - } else if (dialog_vars.input_result && *(dialog_vars.input_result)) { - result = TRUE; - } - return result; -} - -void -dlg_add_separator(void) -{ - const char *separator = (dialog_vars.separate_output) ? "\n" : " "; - - if (dialog_vars.output_separator) - separator = dialog_vars.output_separator; - - dlg_add_result(separator); -} - -#define HELP_PREFIX "HELP " - -void -dlg_add_help_listitem(int *result, char **tag, DIALOG_LISTITEM * item) -{ - dlg_add_result(HELP_PREFIX); - if (USE_ITEM_HELP(item->help)) { - *tag = dialog_vars.help_tags ? item->name : item->help; - *result = DLG_EXIT_ITEM_HELP; - } else { - *tag = item->name; - } -} - -void -dlg_add_help_formitem(int *result, char **tag, DIALOG_FORMITEM * item) -{ - dlg_add_result(HELP_PREFIX); - if (USE_ITEM_HELP(item->help)) { - *tag = dialog_vars.help_tags ? item->name : item->help; - *result = DLG_EXIT_ITEM_HELP; - } else { - *tag = item->name; - } -} - -/* - * Some widgets support only one value of a given variable - save/restore the - * global dialog_vars so we can override it consistently. - */ -void -dlg_save_vars(DIALOG_VARS * vars) -{ - *vars = dialog_vars; -} - -/* - * Most of the data in DIALOG_VARS is normally set by command-line options. - * The input_result member is an exception; it is normally set by the dialog - * library to return result values. - */ -void -dlg_restore_vars(DIALOG_VARS * vars) -{ - char *save_result = dialog_vars.input_result; - unsigned save_length = dialog_vars.input_length; - - dialog_vars = *vars; - dialog_vars.input_result = save_result; - dialog_vars.input_length = save_length; -} - -/* - * Called each time a widget is invoked which may do output, increment a count. - */ -void -dlg_does_output(void) -{ - dialog_state.output_count += 1; -} - -/* - * Compatibility for different versions of curses. - */ -#if !(defined(HAVE_GETBEGX) && defined(HAVE_GETBEGY)) -int -dlg_getbegx(WINDOW *win) -{ - int y, x; - getbegyx(win, y, x); - return x; -} -int -dlg_getbegy(WINDOW *win) -{ - int y, x; - getbegyx(win, y, x); - return y; -} -#endif - -#if !(defined(HAVE_GETCURX) && defined(HAVE_GETCURY)) -int -dlg_getcurx(WINDOW *win) -{ - int y, x; - getyx(win, y, x); - return x; -} -int -dlg_getcury(WINDOW *win) -{ - int y, x; - getyx(win, y, x); - return y; -} -#endif - -#if !(defined(HAVE_GETMAXX) && defined(HAVE_GETMAXY)) -int -dlg_getmaxx(WINDOW *win) -{ - int y, x; - getmaxyx(win, y, x); - return x; -} -int -dlg_getmaxy(WINDOW *win) -{ - int y, x; - getmaxyx(win, y, x); - return y; -} -#endif - -#if !(defined(HAVE_GETPARX) && defined(HAVE_GETPARY)) -int -dlg_getparx(WINDOW *win) -{ - int y, x; - getparyx(win, y, x); - return x; -} -int -dlg_getpary(WINDOW *win) -{ - int y, x; - getparyx(win, y, x); - return y; -} -#endif - -#ifdef NEED_WGETPARENT -WINDOW * -dlg_wgetparent(WINDOW *win) -{ -#undef wgetparent - WINDOW *result = 0; - DIALOG_WINDOWS *p; - - for (p = dialog_state.all_subwindows; p != 0; p = p->next) { - if (p->shadow == win) { - result = p->normal; - break; - } - } - return result; -} -#endif diff --git a/contrib/dialog/version.c b/contrib/dialog/version.c deleted file mode 100644 index 1e72ce4789f8..000000000000 --- a/contrib/dialog/version.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: version.c,v 1.6 2010/01/15 23:34:46 tom Exp $ - * - * version.c -- dialog's version string - * - * Copyright 2005-2006,2010 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - */ -#include <dialog.h> - -#define quoted(a) #a -#define concat(a,b) a "-" quoted(b) -#define DLG_VERSION concat(DIALOG_VERSION,DIALOG_PATCHDATE) - -const char * -dialog_version(void) -{ - return DLG_VERSION; -} diff --git a/contrib/dialog/yesno.c b/contrib/dialog/yesno.c deleted file mode 100644 index 58acc8ae763d..000000000000 --- a/contrib/dialog/yesno.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $Id: yesno.c,v 1.71 2020/11/23 00:48:08 tom Exp $ - * - * yesno.c -- implements the yes/no box - * - * Copyright 1999-2019,2020 Thomas E. Dickey - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License, version 2.1 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to - * Free Software Foundation, Inc. - * 51 Franklin St., Fifth Floor - * Boston, MA 02110, USA. - * - * An earlier version of this program lists as authors - * Savio Lam (lam836@cs.cuhk.hk) - */ - -#include <dialog.h> -#include <dlg_keys.h> - -/* - * Display a dialog box with two buttons - Yes and No. - */ -int -dialog_yesno(const char *title, const char *cprompt, int height, int width) -{ - /* *INDENT-OFF* */ - static DLG_KEYS_BINDING binding[] = { - HELPKEY_BINDINGS, - ENTERKEY_BINDINGS, - SCROLLKEY_BINDINGS, - TRAVERSE_BINDINGS, - END_KEYS_BINDING - }; - /* *INDENT-ON* */ - - int x, y; - int key, fkey; - int button = dlg_default_button(); - WINDOW *dialog = 0; - int result = DLG_EXIT_UNKNOWN; - char *prompt; - const char **buttons = dlg_yes_labels(); - int min_width = 25; - bool show = TRUE; - int page, last = 0, offset = 0; - -#ifdef KEY_RESIZE - int req_high = height; - int req_wide = width; -#endif - - DLG_TRACE(("# yesno args:\n")); - DLG_TRACE2S("title", title); - DLG_TRACE2S("message", cprompt); - DLG_TRACE2N("height", height); - DLG_TRACE2N("width", width); - -#ifdef KEY_RESIZE - restart: -#endif - prompt = dlg_strclone(cprompt); - dlg_tab_correct_str(prompt); - dlg_button_layout(buttons, &min_width); - dlg_auto_size(title, prompt, &height, &width, 2, min_width); - dlg_print_size(height, width); - dlg_ctl_size(height, width); - - x = dlg_box_x_ordinate(width); - y = dlg_box_y_ordinate(height); - - dialog = dlg_new_window(height, width, y, x); - dlg_register_window(dialog, "yesno", binding); - dlg_register_buttons(dialog, "yesno", buttons); - - dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); - dlg_draw_bottom_box2(dialog, border_attr, border2_attr, dialog_attr); - dlg_draw_title(dialog, title); - dlg_draw_helpline(dialog, FALSE); - - dlg_attrset(dialog, dialog_attr); - - page = height - (1 + 3 * MARGIN); - dlg_draw_buttons(dialog, - height - 2 * MARGIN, 0, - buttons, button, FALSE, width); - - while (result == DLG_EXIT_UNKNOWN) { - int code; - - if (show) { - last = dlg_print_scrolled(dialog, prompt, offset, - page, width, TRUE); - dlg_trace_win(dialog); - show = FALSE; - } - key = dlg_mouse_wgetch(dialog, &fkey); - if (dlg_result_key(key, fkey, &result)) { - if (!dlg_button_key(result, &button, &key, &fkey)) - break; - } - if ((code = dlg_char_to_button(key, buttons)) >= 0) { - result = dlg_ok_buttoncode(code); - break; - } - /* handle function keys */ - if (fkey) { - switch (key) { - case DLGK_FIELD_NEXT: - button = dlg_next_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_FIELD_PREV: - button = dlg_prev_button(buttons, button); - if (button < 0) - button = 0; - dlg_draw_buttons(dialog, - height - 2, 0, - buttons, button, - FALSE, width); - break; - case DLGK_ENTER: - case DLGK_LEAVE: - result = dlg_yes_buttoncode(button); - break; -#ifdef KEY_RESIZE - case KEY_RESIZE: - dlg_will_resize(dialog); - height = req_high; - width = req_wide; - show = TRUE; - free(prompt); - _dlg_resize_cleanup(dialog); - goto restart; -#endif - default: - if (is_DLGK_MOUSE(key)) { - result = dlg_yes_buttoncode(key - M_EVENT); - if (result < 0) - result = DLG_EXIT_OK; - } else if (dlg_check_scrolled(key, last, page, - &show, &offset) != 0) { - beep(); - } - break; - } - } else if (key > 0) { - beep(); - } - } - dlg_add_last_key(-1); - - dlg_del_window(dialog); - dlg_mouse_free_regions(); - free(prompt); - return result; -} diff --git a/gnu/lib/Makefile b/gnu/lib/Makefile index 1f92672b49b1..9c1a2c71fdd9 100644 --- a/gnu/lib/Makefile +++ b/gnu/lib/Makefile @@ -1,7 +1,6 @@ .include <src.opts.mk> SUBDIR= -SUBDIR.${MK_DIALOG}+= libdialog SUBDIR.${MK_TESTS}+= tests SUBDIR_PARALLEL= diff --git a/gnu/lib/libdialog/Makefile b/gnu/lib/libdialog/Makefile deleted file mode 100644 index 0b32a75e4a23..000000000000 --- a/gnu/lib/libdialog/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -DIALOG= ${SRCTOP}/contrib/dialog - -LIB= dialog -SHLIB_MAJOR= 10 -SRCS= argv.c arrows.c buildlist.c buttons.c calendar.c checklist.c \ - columns.c dlg_keys.c editbox.c fselect.c formbox.c guage.c \ - help.c inputbox.c inputstr.c menubox.c mixedform.c \ - mixedgauge.c mouse.c mousewget.c msgbox.c pause.c prgbox.c \ - progressbox.c rangebox.c rc.c tailbox.c textbox.c timebox.c \ - trace.c treeview.c ttysize.c ui_getc.c util.c version.c yesno.c -INCS= dialog.h dlg_colors.h dlg_config.h dlg_keys.h -MAN= dialog.3 - -LIBADD= tinfow ncursesw m - -CFLAGS+= -I${.CURDIR} -I${DIALOG} -D_XOPEN_SOURCE_EXTENDED -.PATH: ${DIALOG} -WARNS?= 1 - -.include <bsd.lib.mk> diff --git a/gnu/lib/libdialog/Makefile.depend b/gnu/lib/libdialog/Makefile.depend deleted file mode 100644 index bb081b18d395..000000000000 --- a/gnu/lib/libdialog/Makefile.depend +++ /dev/null @@ -1,18 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - lib/msun \ - lib/ncurses/ncurses \ - lib/ncurses/tinfo \ - - -.include <dirdeps.mk> - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/gnu/lib/libdialog/dlg_config.h b/gnu/lib/libdialog/dlg_config.h deleted file mode 100644 index dce4e4609092..000000000000 --- a/gnu/lib/libdialog/dlg_config.h +++ /dev/null @@ -1,126 +0,0 @@ -/* dlg_config.h. Generated automatically by configure. */ -/* - * The configure script expands this as a set of definitions - */ - -#define CURSES_WACS_ARRAY _nc_wacs -#define CURSES_WACS_SYMBOLS 1 -#define DIALOG_PATCHDATE 20210117 -#define DIALOG_VERSION "1.3" -#ifndef GCC_NORETURN -#define GCC_NORETURN __attribute__((noreturn)) -#endif -#define GCC_PRINTF 1 -#ifndef GCC_PRINTFLIKE -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#endif -#define GCC_SCANF 1 -#ifndef GCC_SCANFLIKE -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#endif -#ifndef GCC_UNUSED -#define GCC_UNUSED __attribute__((unused)) -#endif -#define HAVE_ALLOCA 1 -#define HAVE_BTOWC 1 -#define HAVE_COLOR 1 -#define HAVE_DIRENT_H 1 -#define HAVE_DLG_FORMBOX 1 -#define HAVE_DLG_GAUGE 1 -#define HAVE_DLG_MIXEDFORM 1 -#define HAVE_DLG_TAILBOX 1 -#define HAVE_DLG_TRACE 1 -#define HAVE_FEOF_UNLOCKED 1 -#define HAVE_FLUSHINP 1 -#define HAVE_FSEEKO 1 -#define HAVE_GETATTRS 1 -#define HAVE_GETBEGX 1 -#define HAVE_GETBEGY 1 -#define HAVE_GETBEGYX 1 -#define HAVE_GETCURX 1 -#define HAVE_GETCURY 1 -#define HAVE_GETCWD 1 -#define HAVE_GETEGID 1 -#define HAVE_GETEUID 1 -#define HAVE_GETGID 1 -#define HAVE_GETMAXX 1 -#define HAVE_GETMAXY 1 -#define HAVE_GETMAXYX 1 -#define HAVE_GETPAGESIZE 1 -#define HAVE_GETPARX 1 -#define HAVE_GETPARY 1 -#define HAVE_GETPARYX 1 -#define HAVE_GETUID 1 -#define HAVE_ICONV 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_LANGINFO_CODESET 1 -#define HAVE_LC_MESSAGES 1 -#define HAVE_LIMITS_H 1 -#define HAVE_LOCALE_H 1 -#define HAVE_MBLEN 1 -#define HAVE_MBRLEN 1 -#define HAVE_MBRTOWC 1 -#define HAVE_MBSTATE_T 1 -#define HAVE_MBTOWC 1 -#define HAVE_MEMORY_H 1 -#define HAVE_MIXEDGAUGE 1 -#define HAVE_MKTIME 1 -#define HAVE_MMAP 1 -#define HAVE_MUNMAP 1 -#define HAVE_NCURSES_H 1 -#define HAVE_NL_TYPES_H 1 -#define HAVE_PUTENV 1 -#define HAVE_RC_FILE 1 -#define HAVE_RC_FILE2 1 -#define HAVE_SEARCH_H 1 -#define HAVE_SETENV 1 -#define HAVE_SETLOCALE 1 -#define HAVE_SIZECHANGE 1 -#define HAVE_STDDEF_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STPCPY 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRCHR 1 -#define HAVE_STRDUP 1 -#define HAVE_STRFTIME 1 -#define HAVE_STRINGS_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRTOUL 1 -#define HAVE_SYS_IOCTL_H 1 -#define HAVE_SYS_PARAM_H 1 -#define HAVE_SYS_STAT_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_SYS_WAIT_H 1 -#define HAVE_TERMIOS_H 1 -#define HAVE_TERM_H 1 -#define HAVE_TSEARCH 1 -#define HAVE_TYPE_CHTYPE 1 -#define HAVE_UNCTRL_H 1 -#define HAVE_UNISTD_H 1 -#define HAVE_USE_DEFAULT_COLORS 1 -#define HAVE_WAITPID 1 -#define HAVE_WCHGAT 1 -#define HAVE_WCSRTOMBS 1 -#define HAVE_WCSTOMBS 1 -#define HAVE_WCTOB 1 -#define HAVE_WCTOMB 1 -#define HAVE_WCURSYNCUP 1 -#define HAVE_WGETPARENT 1 -#define HAVE_WGET_WCH 1 -#define HAVE_WHIPTAIL 1 -#define HAVE_WSYNCUP 1 -#define HAVE_XDIALOG 1 -#define HAVE_XDIALOG2 1 -#define ICONV_CONST -#define MIXEDCASE_FILENAMES 1 -#define NCURSES 1 -#define NEED_WCHAR_H 1 -#define PACKAGE "dialog" -#define RETSIGTYPE void -#define STDC_HEADERS 1 -#define SYSTEM_NAME "FreeBSD" -#define TIME_WITH_SYS_TIME 1 -#define TYPE_CHTYPE_IS_SCALAR 1 -#define USE_WIDE_CURSES 1 -#define WIDEC_CURSES 1 diff --git a/gnu/usr.bin/Makefile b/gnu/usr.bin/Makefile index d5b127546c6f..29304ed5f73f 100644 --- a/gnu/usr.bin/Makefile +++ b/gnu/usr.bin/Makefile @@ -1,6 +1,5 @@ .include <src.opts.mk> -SUBDIR.${MK_DIALOG}+= dialog SUBDIR.${MK_TESTS}+= tests SUBDIR_PARALLEL= diff --git a/gnu/usr.bin/dialog/Makefile b/gnu/usr.bin/dialog/Makefile deleted file mode 100644 index a4a109e112f2..000000000000 --- a/gnu/usr.bin/dialog/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -DIALOG= ${SRCTOP}/contrib/dialog -PROG= dialog - -LIBADD= dialog tinfow ncursesw m -CFLAGS+= -I${.CURDIR} -I${DIALOG} -.PATH: ${DIALOG} - -.include <bsd.prog.mk> diff --git a/gnu/usr.bin/dialog/Makefile.depend b/gnu/usr.bin/dialog/Makefile.depend deleted file mode 100644 index 492411c88ada..000000000000 --- a/gnu/usr.bin/dialog/Makefile.depend +++ /dev/null @@ -1,19 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - gnu/lib/libdialog \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - lib/msun \ - lib/ncurses/ncurses \ - lib/ncurses/tinfo \ - - -.include <dirdeps.mk> - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/lib/Makefile b/lib/Makefile index 3faaea355ad0..3391f276c7ef 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -132,7 +132,6 @@ SUBDIR_DEPEND_libcam= libsbuf SUBDIR_DEPEND_libcasper= libnv SUBDIR_DEPEND_libcrypt= libmd SUBDIR_DEPEND_libdevstat= libkvm -SUBDIR_DEPEND_libdpv= libfigpar ncurses libutil SUBDIR_DEPEND_libedit= ncurses SUBDIR_DEPEND_libgeom= libexpat libsbuf .if ${MK_MITKRB5} == "no" @@ -175,7 +174,6 @@ SUBDIR+= clang SUBDIR.${MK_AUDIT}+= libauditd SUBDIR.${MK_CUSE}+= libcuse SUBDIR.${MK_TOOLCHAIN}+=libpe -SUBDIR.${MK_DIALOG}+= libdpv libfigpar SUBDIR.${MK_FDT}+= libfdt SUBDIR.${MK_FILE}+= libmagic SUBDIR.${MK_GPIO}+= libgpio diff --git a/lib/libdpv/Makefile b/lib/libdpv/Makefile deleted file mode 100644 index 31f1186fa31b..000000000000 --- a/lib/libdpv/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -PACKAGE= dpv -LIB= dpv -SHLIB_MAJOR= 3 -INCS= dpv.h -MAN= dpv.3 -MLINKS= dpv.3 dpv_free.3 - -LIBADD= dialog figpar util tinfow ncursesw - -SRCS= dialog_util.c dialogrc.c dprompt.c dpv.c status.c util.c - -CFLAGS+= -I${.CURDIR} - -.include <bsd.lib.mk> diff --git a/lib/libdpv/Makefile.depend b/lib/libdpv/Makefile.depend deleted file mode 100644 index 50c80402dceb..000000000000 --- a/lib/libdpv/Makefile.depend +++ /dev/null @@ -1,21 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - gnu/lib/libdialog \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - lib/libfigpar \ - lib/libutil \ - lib/msun \ - lib/ncurses/ncurses \ - lib/ncurses/tinfo \ - - -.include <dirdeps.mk> - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/lib/libdpv/dialog_util.c b/lib/libdpv/dialog_util.c deleted file mode 100644 index 149df8b50302..000000000000 --- a/lib/libdpv/dialog_util.c +++ /dev/null @@ -1,637 +0,0 @@ -/*- - * Copyright (c) 2013-2018 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <sys/ioctl.h> - -#include <ctype.h> -#include <err.h> -#include <fcntl.h> -#include <limits.h> -#include <spawn.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <termios.h> -#include <unistd.h> - -#include "dialog_util.h" -#include "dpv.h" -#include "dpv_private.h" - -extern char **environ; - -#define TTY_DEFAULT_ROWS 24 -#define TTY_DEFAULT_COLS 80 - -/* [X]dialog(1) characteristics */ -uint8_t dialog_test = 0; -uint8_t use_dialog = 0; -uint8_t use_libdialog = 1; -uint8_t use_xdialog = 0; -uint8_t use_color = 1; -char dialog[PATH_MAX] = DIALOG; - -/* [X]dialog(1) functionality */ -char *title = NULL; -char *backtitle = NULL; -int dheight = 0; -int dwidth = 0; -static char *dargv[64] = { NULL }; - -/* TTY/Screen characteristics */ -static struct winsize *maxsize = NULL; - -/* Function prototypes */ -static void tty_maxsize_update(void); -static void x11_maxsize_update(void); - -/* - * Update row/column fields of `maxsize' global (used by dialog_maxrows() and - * dialog_maxcols()). If the `maxsize' pointer is NULL, it will be initialized. - * The `ws_row' and `ws_col' fields of `maxsize' are updated to hold current - * maximum height and width (respectively) for a dialog(1) widget based on the - * active TTY size. - * - * This function is called automatically by dialog_maxrows/cols() to reflect - * changes in terminal size in-between calls. - */ -static void -tty_maxsize_update(void) -{ - int fd = STDIN_FILENO; - struct termios t; - - if (maxsize == NULL) { - if ((maxsize = malloc(sizeof(struct winsize))) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - memset((void *)maxsize, '\0', sizeof(struct winsize)); - } - - if (!isatty(fd)) - fd = open("/dev/tty", O_RDONLY); - if ((tcgetattr(fd, &t) < 0) || (ioctl(fd, TIOCGWINSZ, maxsize) < 0)) { - maxsize->ws_row = TTY_DEFAULT_ROWS; - maxsize->ws_col = TTY_DEFAULT_COLS; - } -} - -/* - * Update row/column fields of `maxsize' global (used by dialog_maxrows() and - * dialog_maxcols()). If the `maxsize' pointer is NULL, it will be initialized. - * The `ws_row' and `ws_col' fields of `maxsize' are updated to hold current - * maximum height and width (respectively) for an Xdialog(1) widget based on - * the active video resolution of the X11 environment. - * - * This function is called automatically by dialog_maxrows/cols() to initialize - * `maxsize'. Since video resolution changes are less common and more obtrusive - * than changes to terminal size, the dialog_maxrows/cols() functions only call - * this function when `maxsize' is set to NULL. - */ -static void -x11_maxsize_update(void) -{ - FILE *f = NULL; - char *cols; - char *cp; - char *rows; - char cmdbuf[LINE_MAX]; - char rbuf[LINE_MAX]; - - if (maxsize == NULL) { - if ((maxsize = malloc(sizeof(struct winsize))) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - memset((void *)maxsize, '\0', sizeof(struct winsize)); - } - - /* Assemble the command necessary to get X11 sizes */ - snprintf(cmdbuf, LINE_MAX, "%s --print-maxsize 2>&1", dialog); - - fflush(STDIN_FILENO); /* prevent popen(3) from seeking on stdin */ - - if ((f = popen(cmdbuf, "r")) == NULL) { - if (debug) - warnx("WARNING! Command `%s' failed", cmdbuf); - return; - } - - /* Read in the line returned from Xdialog(1) */ - if ((fgets(rbuf, LINE_MAX, f) == NULL) || (pclose(f) < 0)) - return; - - /* Check for X11-related errors */ - if (strncmp(rbuf, "Xdialog: Error", 14) == 0) - return; - - /* Parse expected output: MaxSize: YY, XXX */ - if ((rows = strchr(rbuf, ' ')) == NULL) - return; - if ((cols = strchr(rows, ',')) != NULL) { - /* strtonum(3) doesn't like trailing junk */ - *(cols++) = '\0'; - if ((cp = strchr(cols, '\n')) != NULL) - *cp = '\0'; - } - - /* Convert to unsigned short */ - maxsize->ws_row = (unsigned short)strtonum( - rows, 0, USHRT_MAX, (const char **)NULL); - maxsize->ws_col = (unsigned short)strtonum( - cols, 0, USHRT_MAX, (const char **)NULL); -} - -/* - * Return the current maximum height (rows) for an [X]dialog(1) widget. - */ -int -dialog_maxrows(void) -{ - - if (use_xdialog && maxsize == NULL) - x11_maxsize_update(); /* initialize maxsize for GUI */ - else if (!use_xdialog) - tty_maxsize_update(); /* update maxsize for TTY */ - return (maxsize->ws_row); -} - -/* - * Return the current maximum width (cols) for an [X]dialog(1) widget. - */ -int -dialog_maxcols(void) -{ - - if (use_xdialog && maxsize == NULL) - x11_maxsize_update(); /* initialize maxsize for GUI */ - else if (!use_xdialog) - tty_maxsize_update(); /* update maxsize for TTY */ - - if (use_dialog || use_libdialog) { - if (use_shadow) - return (maxsize->ws_col - 2); - else - return (maxsize->ws_col); - } else - return (maxsize->ws_col); -} - -/* - * Return the current maximum width (cols) for the terminal. - */ -int -tty_maxcols(void) -{ - - if (use_xdialog && maxsize == NULL) - x11_maxsize_update(); /* initialize maxsize for GUI */ - else if (!use_xdialog) - tty_maxsize_update(); /* update maxsize for TTY */ - - return (maxsize->ws_col); -} - -/* - * Spawn an [X]dialog(1) `--gauge' box with a `--prompt' value of init_prompt. - * Writes the resulting process ID to the pid_t pointed at by `pid'. Returns a - * file descriptor (int) suitable for writing data to the [X]dialog(1) instance - * (data written to the file descriptor is seen as standard-in by the spawned - * [X]dialog(1) process). - */ -int -dialog_spawn_gauge(char *init_prompt, pid_t *pid) -{ - char dummy_init[2] = ""; - char *cp; - int height; - int width; - int error; - posix_spawn_file_actions_t action; -#if DIALOG_SPAWN_DEBUG - unsigned int i; -#endif - unsigned int n = 0; - int stdin_pipe[2] = { -1, -1 }; - - /* Override `dialog' with a path from ENV_DIALOG if provided */ - if ((cp = getenv(ENV_DIALOG)) != NULL) - snprintf(dialog, PATH_MAX, "%s", cp); - - /* For Xdialog(1), set ENV_XDIALOG_HIGH_DIALOG_COMPAT */ - setenv(ENV_XDIALOG_HIGH_DIALOG_COMPAT, "1", 1); - - /* Constrain the height/width */ - height = dialog_maxrows(); - if (backtitle != NULL) - height -= use_shadow ? 5 : 4; - if (dheight < height) - height = dheight; - width = dialog_maxcols(); - if (dwidth < width) - width = dwidth; - - /* Populate argument array */ - dargv[n++] = dialog; - if (title != NULL) { - if ((dargv[n] = malloc(8)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--title"); - dargv[n++] = title; - } else { - if ((dargv[n] = malloc(8)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--title"); - if ((dargv[n] = malloc(1)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - *dargv[n++] = '\0'; - } - if (backtitle != NULL) { - if ((dargv[n] = malloc(12)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--backtitle"); - dargv[n++] = backtitle; - } - if (use_color) { - if ((dargv[n] = malloc(11)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--colors"); - } - if (use_xdialog) { - if ((dargv[n] = malloc(7)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--left"); - - /* - * NOTE: Xdialog(1)'s `--wrap' appears to be broken for the - * `--gauge' widget prompt-updates. Add it anyway (in-case it - * gets fixed in some later release). - */ - if ((dargv[n] = malloc(7)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--wrap"); - } - if ((dargv[n] = malloc(8)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - sprintf(dargv[n++], "--gauge"); - dargv[n++] = use_xdialog ? dummy_init : init_prompt; - if ((dargv[n] = malloc(40)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - snprintf(dargv[n++], 40, "%u", height); - if ((dargv[n] = malloc(40)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - snprintf(dargv[n++], 40, "%u", width); - dargv[n] = NULL; - - /* Open a pipe(2) to communicate with [X]dialog(1) */ - if (pipe(stdin_pipe) < 0) - err(EXIT_FAILURE, "%s: pipe(2)", __func__); - - /* Fork [X]dialog(1) process */ -#if DIALOG_SPAWN_DEBUG - fprintf(stderr, "%s: spawning `", __func__); - for (i = 0; i < n; i++) { - if (i == 0) - fprintf(stderr, "%s", dargv[i]); - else if (*dargv[i] == '-' && *(dargv[i] + 1) == '-') - fprintf(stderr, " %s", dargv[i]); - else - fprintf(stderr, " \"%s\"", dargv[i]); - } - fprintf(stderr, "'\n"); -#endif - posix_spawn_file_actions_init(&action); - posix_spawn_file_actions_adddup2(&action, stdin_pipe[0], STDIN_FILENO); - posix_spawn_file_actions_addclose(&action, stdin_pipe[1]); - error = posix_spawnp(pid, dialog, &action, - (const posix_spawnattr_t *)NULL, dargv, environ); - if (error != 0) err(EXIT_FAILURE, "%s", dialog); - - /* NB: Do not free(3) *dargv[], else SIGSEGV */ - - return (stdin_pipe[1]); -} - -/* - * Returns the number of lines in buffer pointed to by `prompt'. Takes both - * newlines and escaped-newlines into account. - */ -unsigned int -dialog_prompt_numlines(const char *prompt, uint8_t nlstate) -{ - uint8_t nls = nlstate; /* See dialog_prompt_nlstate() */ - const char *cp = prompt; - unsigned int nlines = 1; - - if (prompt == NULL || *prompt == '\0') - return (0); - - while (*cp != '\0') { - if (use_dialog) { - if (strncmp(cp, "\\n", 2) == 0) { - cp++; - nlines++; - nls = TRUE; /* See declaration comment */ - } else if (*cp == '\n') { - if (!nls) - nlines++; - nls = FALSE; /* See declaration comment */ - } - } else if (use_libdialog) { - if (*cp == '\n') - nlines++; - } else if (strncmp(cp, "\\n", 2) == 0) { - cp++; - nlines++; - } - cp++; - } - - return (nlines); -} - -/* - * Returns the length in bytes of the longest line in buffer pointed to by - * `prompt'. Takes newlines and escaped newlines into account. Also discounts - * dialog(1) color escape codes if enabled (via `use_color' global). - */ -unsigned int -dialog_prompt_longestline(const char *prompt, uint8_t nlstate) -{ - uint8_t backslash = 0; - uint8_t nls = nlstate; /* See dialog_prompt_nlstate() */ - const char *p = prompt; - int longest = 0; - int n = 0; - - /* `prompt' parameter is required */ - if (prompt == NULL) - return (0); - if (*prompt == '\0') - return (0); /* shortcut */ - - /* Loop until the end of the string */ - while (*p != '\0') { - /* dialog(1) and dialog(3) will render literal newlines */ - if (use_dialog || use_libdialog) { - if (*p == '\n') { - if (!use_libdialog && nls) - n++; - else { - if (n > longest) - longest = n; - n = 0; - } - nls = FALSE; /* See declaration comment */ - p++; - continue; - } - } - - /* Check for backslash character */ - if (*p == '\\') { - /* If second backslash, count as a single-char */ - if ((backslash ^= 1) == 0) - n++; - } else if (backslash) { - if (*p == 'n' && !use_libdialog) { /* new line */ - /* NB: dialog(3) ignores escaped newlines */ - nls = TRUE; /* See declaration comment */ - if (n > longest) - longest = n; - n = 0; - } else if (use_color && *p == 'Z') { - if (*++p != '\0') - p++; - backslash = 0; - continue; - } else /* [X]dialog(1)/dialog(3) only expand those */ - n += 2; - - backslash = 0; - } else - n++; - p++; - } - if (n > longest) - longest = n; - - return (longest); -} - -/* - * Returns a pointer to the last line in buffer pointed to by `prompt'. Takes - * both newlines (if using dialog(1) versus Xdialog(1)) and escaped newlines - * into account. If no newlines (escaped or otherwise) appear in the buffer, - * `prompt' is returned. If passed a NULL pointer, returns NULL. - */ -char * -dialog_prompt_lastline(char *prompt, uint8_t nlstate) -{ - uint8_t nls = nlstate; /* See dialog_prompt_nlstate() */ - char *lastline; - char *p; - - if (prompt == NULL) - return (NULL); - if (*prompt == '\0') - return (prompt); /* shortcut */ - - lastline = p = prompt; - while (*p != '\0') { - /* dialog(1) and dialog(3) will render literal newlines */ - if (use_dialog || use_libdialog) { - if (*p == '\n') { - if (use_libdialog || !nls) - lastline = p + 1; - nls = FALSE; /* See declaration comment */ - } - } - /* dialog(3) does not expand escaped newlines */ - if (use_libdialog) { - p++; - continue; - } - if (*p == '\\' && *(p + 1) != '\0' && *(++p) == 'n') { - nls = TRUE; /* See declaration comment */ - lastline = p + 1; - } - p++; - } - - return (lastline); -} - -/* - * Returns the number of extra lines generated by wrapping the text in buffer - * pointed to by `prompt' within `ncols' columns (for prompts, this should be - * dwidth - 4). Also discounts dialog(1) color escape codes if enabled (via - * `use_color' global). - */ -int -dialog_prompt_wrappedlines(char *prompt, int ncols, uint8_t nlstate) -{ - uint8_t backslash = 0; - uint8_t nls = nlstate; /* See dialog_prompt_nlstate() */ - char *cp; - char *p = prompt; - int n = 0; - int wlines = 0; - - /* `prompt' parameter is required */ - if (p == NULL) - return (0); - if (*p == '\0') - return (0); /* shortcut */ - - /* Loop until the end of the string */ - while (*p != '\0') { - /* dialog(1) and dialog(3) will render literal newlines */ - if (use_dialog || use_libdialog) { - if (*p == '\n') { - if (use_dialog || !nls) - n = 0; - nls = FALSE; /* See declaration comment */ - } - } - - /* Check for backslash character */ - if (*p == '\\') { - /* If second backslash, count as a single-char */ - if ((backslash ^= 1) == 0) - n++; - } else if (backslash) { - if (*p == 'n' && !use_libdialog) { /* new line */ - /* NB: dialog(3) ignores escaped newlines */ - nls = TRUE; /* See declaration comment */ - n = 0; - } else if (use_color && *p == 'Z') { - if (*++p != '\0') - p++; - backslash = 0; - continue; - } else /* [X]dialog(1)/dialog(3) only expand those */ - n += 2; - - backslash = 0; - } else - n++; - - /* Did we pass the width barrier? */ - if (n > ncols) { - /* - * Work backward to find the first whitespace on-which - * dialog(1) will wrap the line (but don't go before - * the start of this line). - */ - cp = p; - while (n > 1 && !isspace(*cp)) { - cp--; - n--; - } - if (n > 0 && isspace(*cp)) - p = cp; - wlines++; - n = 1; - } - - p++; - } - - return (wlines); -} - -/* - * Returns zero if the buffer pointed to by `prompt' contains an escaped - * newline but only if appearing after any/all literal newlines. This is - * specific to dialog(1) and does not apply to Xdialog(1). - * - * As an attempt to make shell scripts easier to read, dialog(1) will "eat" - * the first literal newline after an escaped newline. This however has a bug - * in its implementation in that rather than allowing `\\n\n' to be treated - * similar to `\\n' or `\n', dialog(1) expands the `\\n' and then translates - * the following literal newline (with or without characters between [!]) into - * a single space. - * - * If you want to be compatible with Xdialog(1), it is suggested that you not - * use literal newlines (they aren't supported); but if you have to use them, - * go right ahead. But be forewarned... if you set $DIALOG in your environment - * to something other than `cdialog' (our current dialog(1)), then it should - * do the same thing w/respect to how to handle a literal newline after an - * escaped newline (you could do no wrong by translating every literal newline - * into a space but only when you've previously encountered an escaped one; - * this is what dialog(1) is doing). - * - * The ``newline state'' (or nlstate for short; as I'm calling it) is helpful - * if you plan to combine multiple strings into a single prompt text. In lead- - * up to this procedure, a common task is to calculate and utilize the widths - * and heights of each piece of prompt text to later be combined. However, if - * (for example) the first string ends in a positive newline state (has an - * escaped newline without trailing literal), the first literal newline in the - * second string will be mangled. - * - * The return value of this function should be used as the `nlstate' argument - * to dialog_*() functions that require it to allow accurate calculations in - * the event such information is needed. - */ -uint8_t -dialog_prompt_nlstate(const char *prompt) -{ - const char *cp; - - if (prompt == NULL) - return 0; - - /* - * Work our way backward from the end of the string for efficiency. - */ - cp = prompt + strlen(prompt); - while (--cp >= prompt) { - /* - * If we get to a literal newline first, this prompt ends in a - * clean state for rendering with dialog(1). Otherwise, if we - * get to an escaped newline first, this prompt ends in an un- - * clean state (following literal will be mangled; see above). - */ - if (*cp == '\n') - return (0); - else if (*cp == 'n' && --cp > prompt && *cp == '\\') - return (1); - } - - return (0); /* no newlines (escaped or otherwise) */ -} - -/* - * Free allocated items initialized by tty_maxsize_update() and - * x11_maxsize_update() - */ -void -dialog_maxsize_free(void) -{ - if (maxsize != NULL) { - free(maxsize); - maxsize = NULL; - } -} diff --git a/lib/libdpv/dialog_util.h b/lib/libdpv/dialog_util.h deleted file mode 100644 index 016b8bcd7300..000000000000 --- a/lib/libdpv/dialog_util.h +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DIALOG_UTIL_H_ -#define _DIALOG_UTIL_H_ - -#include <sys/types.h> - -#include "dialogrc.h" - -#define DIALOG_SPAWN_DEBUG 0 /* Debug spawning of [X]dialog(1) */ - -/* dialog(3) and [X]dialog(1) characteristics */ -#define DIALOG "dialog" -#define XDIALOG "Xdialog" -#define PROMPT_MAX 16384 -#define ENV_DIALOG "DIALOG" -#define ENV_USE_COLOR "USE_COLOR" -#define ENV_XDIALOG_HIGH_DIALOG_COMPAT "XDIALOG_HIGH_DIALOG_COMPAT" -extern uint8_t dialog_test; -extern uint8_t use_libdialog; -extern uint8_t use_dialog; -extern uint8_t use_xdialog; -extern uint8_t use_color; -extern char dialog[]; - -/* dialog(3) and [X]dialog(1) functionality */ -extern char *title, *backtitle; -extern int dheight, dwidth; - -__BEGIN_DECLS -uint8_t dialog_prompt_nlstate(const char *_prompt); -void dialog_maxsize_free(void); -char *dialog_prompt_lastline(char *_prompt, uint8_t _nlstate); -int dialog_maxcols(void); -int dialog_maxrows(void); -int dialog_prompt_wrappedlines(char *_prompt, int _ncols, - uint8_t _nlstate); -int dialog_spawn_gauge(char *_init_prompt, pid_t *_pid); -int tty_maxcols(void); -#define tty_maxrows() dialog_maxrows() -unsigned int dialog_prompt_longestline(const char *_prompt, - uint8_t _nlstate); -unsigned int dialog_prompt_numlines(const char *_prompt, uint8_t _nlstate); -__END_DECLS - -#endif /* !_DIALOG_UTIL_H_ */ diff --git a/lib/libdpv/dialogrc.c b/lib/libdpv/dialogrc.c deleted file mode 100644 index 2ac745964e15..000000000000 --- a/lib/libdpv/dialogrc.c +++ /dev/null @@ -1,357 +0,0 @@ -/*- - * Copyright (c) 2013-2015 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/types.h> - -#include <err.h> -#include <errno.h> -#include <figpar.h> -#include <limits.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <string_m.h> - -#include "dialogrc.h" - -#define STR_BUFSIZE 255 - -/* dialog(1) `.dialogrc' characteristics */ -uint8_t use_colors = 1; -uint8_t use_shadow = 1; -char gauge_color[STR_BUFSIZE] = "47b"; /* (BLUE,WHITE,ON) */ -char separator[STR_BUFSIZE] = ""; - -/* Function prototypes */ -static int setattr(struct figpar_config *, uint32_t, char *, char *); -static int setbool(struct figpar_config *, uint32_t, char *, char *); -static int setnum(struct figpar_config *, uint32_t, char *, char *); -static int setstr(struct figpar_config *, uint32_t, char *, char *); - -/* - * Anatomy of DIALOGRC (~/.dialogrc by default) - * NOTE: Must appear after private function prototypes (above) - * NB: Brace-initialization of union requires cast to *first* member of union - */ -static struct figpar_config dialogrc_config[] = { - /* TYPE DIRECTIVE DEFAULT HANDLER */ - {FIGPAR_TYPE_INT, "aspect", {(void *)0}, &setnum}, - {FIGPAR_TYPE_STR, "separate_widget", {separator}, &setstr}, - {FIGPAR_TYPE_INT, "tab_len", {(void *)0}, &setnum}, - {FIGPAR_TYPE_BOOL, "visit_items", {(void *)0}, &setbool}, - {FIGPAR_TYPE_BOOL, "use_shadow", {(void *)1}, &setbool}, - {FIGPAR_TYPE_BOOL, "use_colors", {(void *)1}, &setbool}, - {FIGPAR_TYPE_STR, "screen_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "shadow_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "dialog_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "title_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "border_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_active_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_inactive_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_key_active_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_key_inactive_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_label_active_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "button_label_inactive_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "inputbox_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "inputbox_border_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "searchbox_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "searchbox_title_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "searchbox_border_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "position_indicator_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "menubox_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "menubox_border_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "item_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "item_selected_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "tag_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "tag_selected_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "tag_key_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "tag_key_selected_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "check_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "check_selected_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "uarrow_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "darrow_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "itemhelp_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "form_active_text_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "form_text_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "form_item_readonly_color", {NULL}, &setattr}, - {FIGPAR_TYPE_STR, "gauge_color", {gauge_color}, &setattr}, - {0, NULL, {0}, NULL} -}; - -/* - * figpar call-back for interpreting value as .dialogrc `Attribute' - */ -static int -setattr(struct figpar_config *option, uint32_t line __unused, - char *directive __unused, char *value) -{ - char *cp = value; - char *val; - size_t len; - char attrbuf[4]; - - if (option == NULL) { - warnx("%s:%d:%s: Missing callback parameter", __FILE__, - __LINE__, __func__); - return (-1); /* Abort processing */ - } - - /* Allocate memory for the data if not already done */ - if (option->value.str == NULL) { - if ((option->value.str = malloc(STR_BUFSIZE)) == NULL) - return (-1); - } - - /* - * If the first character is left-parenthesis, the format is - * `(background,foreground,highlight)' otherwise, we should take it - * as a reference to another color. - */ - if (*cp != '(') { - /* Copy the [current] value from the referenced color */ - val = dialogrc_config_option(cp)->value.str; - if (val != NULL) - snprintf(option->value.str, STR_BUFSIZE, "%s", val); - - return (0); - } else - cp++; - - strtolower(cp); - - /* Initialize the attrbuf (fg,bg,hi,NUL) */ - attrbuf[0] = '0'; - attrbuf[1] = '0'; - attrbuf[2] = 'B'; /* \ZB = disable; \Zb = enable (see dialog(1)) */ - attrbuf[3] = '\0'; - - /* Interpret the foreground color */ - if (strncmp(cp, "red,", 4) == 0) attrbuf[0] = '1'; - else if (strncmp(cp, "green,", 6) == 0) attrbuf[0] = '2'; - else if (strncmp(cp, "yellow,", 7) == 0) attrbuf[0] = '3'; - else if (strncmp(cp, "blue,", 5) == 0) attrbuf[0] = '4'; - else if (strncmp(cp, "magenta,", 8) == 0) attrbuf[0] = '5'; - else if (strncmp(cp, "cyan,", 5) == 0) attrbuf[0] = '6'; - else if (strncmp(cp, "white,", 6) == 0) attrbuf[0] = '7'; - else if (strncmp(cp, "black,", 6) == 0) attrbuf[0] = '8'; - - /* Advance to the background color */ - cp = strchr(cp, ','); - if (cp == NULL) - goto write_attrbuf; - else - cp++; - - /* Interpret the background color */ - if (strncmp(cp, "red,", 4) == 0) attrbuf[1] = '1'; - else if (strncmp(cp, "green,", 6) == 0) attrbuf[1] = '2'; - else if (strncmp(cp, "yellow,", 7) == 0) attrbuf[1] = '3'; - else if (strncmp(cp, "blue,", 5) == 0) attrbuf[1] = '4'; - else if (strncmp(cp, "magenta,", 8) == 0) attrbuf[1] = '5'; - else if (strncmp(cp, "cyan,", 5) == 0) attrbuf[1] = '6'; - else if (strncmp(cp, "white,", 6) == 0) attrbuf[1] = '7'; - else if (strncmp(cp, "black,", 6) == 0) attrbuf[1] = '8'; - - /* Advance to the highlight */ - cp = strchr(cp, ','); - if (cp == NULL) - goto write_attrbuf; - else - cp++; - - /* Trim trailing parenthesis */ - len = strlen(cp); - if (cp[len - 1] == ')') - cp[len - 1] = '\0'; - - /* Interpret the highlight (initialized to off above) */ - if (strcmp(cp, "on") == 0 || strncmp(cp, "on,", 3) == 0) - attrbuf[2] = 'b'; /* \Zb = enable bold (see dialog(1)) */ - -write_attrbuf: - sprintf(option->value.str, "%s", attrbuf); - - return (0); -} - -/* - * figpar call-back for interpreting value as .dialogrc `Boolean' - */ -static int -setbool(struct figpar_config *option, uint32_t line __unused, - char *directive __unused, char *value) -{ - - if (option == NULL) { - warnx("%s:%d:%s: Missing callback parameter", __FILE__, - __LINE__, __func__); - return (-1); /* Abort processing */ - } - - /* Assume ON, check for OFF (case-insensitive) */ - option->value.boolean = 1; - strtolower(value); - if (strcmp(value, "off") == 0) - option->value.boolean = 0; - - return (0); -} - -/* - * figpar call-back for interpreting value as .dialogrc `Number' - */ -static int -setnum(struct figpar_config *option, uint32_t line __unused, - char *directive __unused, char *value) -{ - - if (option == NULL) { - warnx("%s:%d:%s: Missing callback parameter", __FILE__, - __LINE__, __func__); - return (-1); /* Abort processing */ - } - - /* Convert the string to a 32-bit signed integer */ - option->value.num = (int32_t)strtol(value, (char **)NULL, 10); - - return (0); -} - -/* - * figpar call-back for interpreting value as .dialogrc `String' - */ -static int -setstr(struct figpar_config *option, uint32_t line __unused, - char *directive __unused, char *value) -{ - size_t len; - - if (option == NULL) { - warnx("%s:%d:%s: Missing callback parameter", __FILE__, - __LINE__, __func__); - return (-1); /* Abort processing */ - } - - /* Allocate memory for the data if not already done */ - if (option->value.str == NULL) { - if ((option->value.str = malloc(STR_BUFSIZE)) == NULL) - return (-1); - } - - /* Trim leading quote */ - if (*value == '"') - value++; - - /* Write the data into the buffer */ - snprintf(option->value.str, STR_BUFSIZE, "%s", value); - - /* Trim trailing quote */ - len = strlen(option->value.str); - if (option->value.str[len - 1] == '"') - option->value.str[len - 1] = '\0'; - - return (0); -} - -/* - * Parse (in order of preference) $DIALOGRC or `$HOME/.dialogrc'. Returns zero - * on success, -1 on failure (and errno should be consulted). - */ -int -parse_dialogrc(void) -{ - char *cp; - int res; - size_t len; - char path[PATH_MAX]; - - /* Allow $DIALOGRC to override `$HOME/.dialogrc' default */ - if ((cp = getenv(ENV_DIALOGRC)) != NULL && *cp != '\0') - snprintf(path, PATH_MAX, "%s", cp); - else if ((cp = getenv(ENV_HOME)) != NULL) { - /* Copy $HOME into buffer and append trailing `/' if missing */ - snprintf(path, PATH_MAX, "%s", cp); - len = strlen(path); - cp = path + len; - if (len > 0 && len < (PATH_MAX - 1) && *(cp - 1) != '/') { - *cp++ = '/'; - *cp = '\0'; - len++; - } - - /* If we still have room, shove in the name of rc file */ - if (len < (PATH_MAX - 1)) - snprintf(cp, PATH_MAX - len, "%s", DIALOGRC); - } else { - /* Like dialog(1), don't process a file if $HOME is unset */ - errno = ENOENT; - return (-1); - } - - /* Process file (either $DIALOGRC if set, or `$HOME/.dialogrc') */ - res = parse_config(dialogrc_config, - path, NULL, FIGPAR_BREAK_ON_EQUALS); - - /* Set some globals based on what we parsed */ - use_shadow = dialogrc_config_option("use_shadow")->value.boolean; - use_colors = dialogrc_config_option("use_colors")->value.boolean; - snprintf(gauge_color, STR_BUFSIZE, "%s", - dialogrc_config_option("gauge_color")->value.str); - - return (res); -} - -/* - * Return a pointer to the `.dialogrc' config option specific to `directive' or - * static figpar_dummy_config (full of NULLs) if none found (see - * get_config_option(3); part of figpar(3)). - */ -struct figpar_config * -dialogrc_config_option(const char *directive) -{ - return (get_config_option(dialogrc_config, directive)); -} - -/* - * Free allocated items initialized by setattr() (via parse_config() callback - * matrix [dialogrc_config] used in parse_dialogrc() above). - */ -void -dialogrc_free(void) -{ - char *value; - uint32_t n; - - for (n = 0; dialogrc_config[n].directive != NULL; n++) { - if (dialogrc_config[n].action != &setattr) - continue; - value = dialogrc_config[n].value.str; - if (value != NULL && value != gauge_color) { - free(dialogrc_config[n].value.str); - dialogrc_config[n].value.str = NULL; - } - } -} diff --git a/lib/libdpv/dialogrc.h b/lib/libdpv/dialogrc.h deleted file mode 100644 index f25d64a3b78f..000000000000 --- a/lib/libdpv/dialogrc.h +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * Copyright (c) 2013-2015 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DIALOGRC_H_ -#define _DIALOGRC_H_ - -#include <sys/types.h> - -#include <figpar.h> - -/* dialog(3) dlg_color_table[] attributes */ -#define GAUGE_ATTR 33 /* entry used for gauge_color */ - -/* dialog(1) characteristics */ -#define DIALOGRC ".dialogrc" -#define ENV_DIALOGRC "DIALOGRC" -#define ENV_HOME "HOME" - -/* dialog(1) `.dialogrc' characteristics */ -extern uint8_t use_colors; -extern uint8_t use_shadow; -extern char gauge_color[]; -extern char separator[]; - -__BEGIN_DECLS -void dialogrc_free(void); -int parse_dialogrc(void); -struct figpar_config *dialogrc_config_option(const char *_directive); -__END_DECLS - -#endif /* !_DIALOGRC_H_ */ diff --git a/lib/libdpv/dprompt.c b/lib/libdpv/dprompt.c deleted file mode 100644 index 66f785ac86a1..000000000000 --- a/lib/libdpv/dprompt.c +++ /dev/null @@ -1,764 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/types.h> - -#define _BSD_SOURCE /* to get dprintf() prototype in stdio.h below */ -#include <dialog.h> -#include <err.h> -#include <libutil.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <string_m.h> -#include <unistd.h> - -#include "dialog_util.h" -#include "dialogrc.h" -#include "dprompt.h" -#include "dpv.h" -#include "dpv_private.h" - -#define FLABEL_MAX 1024 - -static int fheight = 0; /* initialized by dprompt_init() */ -static char dprompt[PROMPT_MAX + 1] = ""; -static char *dprompt_pos = (char *)(0); /* treated numerically */ - -/* Display characteristics */ -#define FM_DONE 0x01 -#define FM_FAIL 0x02 -#define FM_PEND 0x04 -static uint8_t dprompt_free_mask; -static char *done = NULL; -static char *fail = NULL; -static char *pend = NULL; -int display_limit = DISPLAY_LIMIT_DEFAULT; /* Max entries to show */ -int label_size = LABEL_SIZE_DEFAULT; /* Max width for labels */ -int pbar_size = PBAR_SIZE_DEFAULT; /* Mini-progressbar size */ -static int gauge_percent = 0; -static int done_size, done_lsize, done_rsize; -static int fail_size, fail_lsize, fail_rsize; -static int mesg_size, mesg_lsize, mesg_rsize; -static int pend_size, pend_lsize, pend_rsize; -static int pct_lsize, pct_rsize; -static void *gauge = NULL; -#define SPIN_SIZE 4 -static char spin[SPIN_SIZE + 1] = "/-\\|"; -static char msg[PROMPT_MAX + 1]; -static char *spin_cp = spin; - -/* Function prototypes */ -static char spin_char(void); -static int dprompt_add_files(struct dpv_file_node *file_list, - struct dpv_file_node *curfile, int pct); - -/* - * Returns a pointer to the current spin character in the spin string and - * advances the global position to the next character for the next call. - */ -static char -spin_char(void) -{ - char ch; - - if (*spin_cp == '\0') - spin_cp = spin; - ch = *spin_cp; - - /* Advance the spinner to the next char */ - if (++spin_cp >= (spin + SPIN_SIZE)) - spin_cp = spin; - - return (ch); -} - -/* - * Initialize heights and widths based on various strings and environment - * variables (such as ENV_USE_COLOR). - */ -void -dprompt_init(struct dpv_file_node *file_list) -{ - uint8_t nls = 0; - int len; - int max_cols; - int max_rows; - int nthfile; - int numlines; - struct dpv_file_node *curfile; - - /* - * Initialize dialog(3) `colors' support and draw backtitle - */ - if (use_libdialog && !debug) { - init_dialog(stdin, stdout); - dialog_vars.colors = 1; - if (backtitle != NULL) { - dialog_vars.backtitle = (char *)backtitle; - dlg_put_backtitle(); - } - } - - /* Calculate width of dialog(3) or [X]dialog(1) --gauge box */ - dwidth = label_size + pbar_size + 9; - - /* - * Calculate height of dialog(3) or [X]dialog(1) --gauge box - */ - dheight = 5; - max_rows = dialog_maxrows(); - /* adjust max_rows for backtitle and/or dialog(3) statusLine */ - if (backtitle != NULL) - max_rows -= use_shadow ? 3 : 2; - if (use_libdialog && use_shadow) - max_rows -= 2; - /* add lines for `-p text' */ - numlines = dialog_prompt_numlines(pprompt, 0); - if (debug) - warnx("`-p text' is %i line%s long", numlines, - numlines == 1 ? "" : "s"); - dheight += numlines; - /* adjust dheight for various implementations */ - if (use_dialog) { - dheight -= dialog_prompt_nlstate(pprompt); - nls = dialog_prompt_nlstate(pprompt); - } else if (use_xdialog) { - if (pprompt == NULL || *pprompt == '\0') - dheight++; - } else if (use_libdialog) { - if (pprompt != NULL && *pprompt != '\0') - dheight--; - } - /* limit the number of display items (necessary per dialog(1,3)) */ - if (display_limit == 0 || display_limit > DPV_DISPLAY_LIMIT) - display_limit = DPV_DISPLAY_LIMIT; - /* verify fheight will fit (stop if we hit 1) */ - for (; display_limit > 0; display_limit--) { - nthfile = numlines = 0; - fheight = (int)dpv_nfiles > display_limit ? - (unsigned int)display_limit : dpv_nfiles; - for (curfile = file_list; curfile != NULL; - curfile = curfile->next) { - nthfile++; - numlines += dialog_prompt_numlines(curfile->name, nls); - if ((nthfile % display_limit) == 0) { - if (numlines > fheight) - fheight = numlines; - numlines = nthfile = 0; - } - } - if (numlines > fheight) - fheight = numlines; - if ((dheight + fheight + - (int)dialog_prompt_numlines(aprompt, use_dialog) - - (use_dialog ? (int)dialog_prompt_nlstate(aprompt) : 0)) - <= max_rows) - break; - } - /* don't show any items if we run the risk of hitting a blank set */ - if ((max_rows - (use_shadow ? 5 : 4)) >= fheight) - dheight += fheight; - else - fheight = 0; - /* add lines for `-a text' */ - numlines = dialog_prompt_numlines(aprompt, use_dialog); - if (debug) - warnx("`-a text' is %i line%s long", numlines, - numlines == 1 ? "" : "s"); - dheight += numlines; - - /* If using Xdialog(1), adjust accordingly (based on testing) */ - if (use_xdialog) - dheight += dheight / 4; - - /* For wide mode, long prefix (`pprompt') or append (`aprompt') - * strings will bump width */ - if (wide) { - len = (int)dialog_prompt_longestline(pprompt, 0); /* !nls */ - if ((len + 4) > dwidth) - dwidth = len + 4; - len = (int)dialog_prompt_longestline(aprompt, 1); /* nls */ - if ((len + 4) > dwidth) - dwidth = len + 4; - } - - /* Enforce width constraints to maximum values */ - max_cols = dialog_maxcols(); - if (max_cols > 0 && dwidth > max_cols) - dwidth = max_cols; - - /* Optimize widths to sane values*/ - if (pbar_size > dwidth - 9) { - pbar_size = dwidth - 9; - label_size = 0; - /* -9 = "| - [" ... "] |" */ - } - if (pbar_size < 0) - label_size = dwidth - 8; - /* -8 = "| " ... " - |" */ - else if (label_size > (dwidth - pbar_size - 9) || wide) - label_size = no_labels ? 0 : dwidth - pbar_size - 9; - /* -9 = "| " ... " - [" ... "] |" */ - - /* Hide labels if requested */ - if (no_labels) - label_size = 0; - - /* Touch up the height (now that we know dwidth) */ - dheight += dialog_prompt_wrappedlines(pprompt, dwidth - 4, 0); - dheight += dialog_prompt_wrappedlines(aprompt, dwidth - 4, 1); - - if (debug) - warnx("dheight = %i dwidth = %i fheight = %i", - dheight, dwidth, fheight); - - /* Calculate left/right portions of % */ - pct_lsize = (pbar_size - 4) / 2; /* -4 == printf("%-3s%%", pct) */ - pct_rsize = pct_lsize; - /* If not evenly divisible by 2, increment the right-side */ - if ((pct_rsize + pct_rsize + 4) != pbar_size) - pct_rsize++; - - /* Initialize "Done" text */ - if (done == NULL && (done = msg_done) == NULL) { - if ((done = getenv(ENV_MSG_DONE)) != NULL) - done_size = strlen(done); - else { - done_size = strlen(DPV_DONE_DEFAULT); - if ((done = malloc(done_size + 1)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - dprompt_free_mask |= FM_DONE; - snprintf(done, done_size + 1, DPV_DONE_DEFAULT); - } - } - if (pbar_size < done_size) { - done_lsize = done_rsize = 0; - *(done + pbar_size) = '\0'; - done_size = pbar_size; - } else { - /* Calculate left/right portions for mini-progressbar */ - done_lsize = (pbar_size - done_size) / 2; - done_rsize = done_lsize; - /* If not evenly divisible by 2, increment the right-side */ - if ((done_rsize + done_size + done_lsize) != pbar_size) - done_rsize++; - } - - /* Initialize "Fail" text */ - if (fail == NULL && (fail = msg_fail) == NULL) { - if ((fail = getenv(ENV_MSG_FAIL)) != NULL) - fail_size = strlen(fail); - else { - fail_size = strlen(DPV_FAIL_DEFAULT); - if ((fail = malloc(fail_size + 1)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - dprompt_free_mask |= FM_FAIL; - snprintf(fail, fail_size + 1, DPV_FAIL_DEFAULT); - } - } - if (pbar_size < fail_size) { - fail_lsize = fail_rsize = 0; - *(fail + pbar_size) = '\0'; - fail_size = pbar_size; - } else { - /* Calculate left/right portions for mini-progressbar */ - fail_lsize = (pbar_size - fail_size) / 2; - fail_rsize = fail_lsize; - /* If not evenly divisible by 2, increment the right-side */ - if ((fail_rsize + fail_size + fail_lsize) != pbar_size) - fail_rsize++; - } - - /* Initialize "Pending" text */ - if (pend == NULL && (pend = msg_pending) == NULL) { - if ((pend = getenv(ENV_MSG_PENDING)) != NULL) - pend_size = strlen(pend); - else { - pend_size = strlen(DPV_PENDING_DEFAULT); - if ((pend = malloc(pend_size + 1)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - dprompt_free_mask |= FM_PEND; - snprintf(pend, pend_size + 1, DPV_PENDING_DEFAULT); - } - } - if (pbar_size < pend_size) { - pend_lsize = pend_rsize = 0; - *(pend + pbar_size) = '\0'; - pend_size = pbar_size; - } else { - /* Calculate left/right portions for mini-progressbar */ - pend_lsize = (pbar_size - pend_size) / 2; - pend_rsize = pend_lsize; - /* If not evenly divisible by 2, increment the right-side */ - if ((pend_rsize + pend_lsize + pend_size) != pbar_size) - pend_rsize++; - } - - if (debug) - warnx("label_size = %i pbar_size = %i", label_size, pbar_size); - - dprompt_clear(); -} - -/* - * Clear the [X]dialog(1) `--gauge' prompt buffer. - */ -void -dprompt_clear(void) -{ - - *dprompt = '\0'; - dprompt_pos = dprompt; -} - -/* - * Append to the [X]dialog(1) `--gauge' prompt buffer. Syntax is like printf(3) - * and returns the number of bytes appended to the buffer. - */ -int -dprompt_add(const char *format, ...) -{ - int len; - va_list ap; - - if (dprompt_pos >= (dprompt + PROMPT_MAX)) - return (0); - - va_start(ap, format); - len = vsnprintf(dprompt_pos, (size_t)(PROMPT_MAX - - (dprompt_pos - dprompt)), format, ap); - va_end(ap); - if (len == -1) - errx(EXIT_FAILURE, "%s: Oops, dprompt buffer overflow", - __func__); - - if ((dprompt_pos + len) < (dprompt + PROMPT_MAX)) - dprompt_pos += len; - else - dprompt_pos = dprompt + PROMPT_MAX; - - return (len); -} - -/* - * Append active files to the [X]dialog(1) `--gauge' prompt buffer. Syntax - * requires a pointer to the head of the dpv_file_node linked-list. Returns the - * number of files processed successfully. - */ -static int -dprompt_add_files(struct dpv_file_node *file_list, - struct dpv_file_node *curfile, int pct) -{ - char c; - char bold_code = 'b'; /* default: enabled */ - char color_code = '4'; /* default: blue */ - uint8_t after_curfile = curfile != NULL ? FALSE : TRUE; - uint8_t nls = 0; - char *cp; - char *lastline; - char *name; - const char *bg_code; - const char *estext; - const char *format; - enum dprompt_state dstate; - int estext_lsize; - int estext_rsize; - int flabel_size; - int hlen; - int lsize; - int nlines = 0; - int nthfile = 0; - int pwidth; - int rsize; - struct dpv_file_node *fp; - char flabel[FLABEL_MAX + 1]; - char human[32]; - char pbar[pbar_size + 16]; /* +15 for optional color */ - char pbar_cap[sizeof(pbar)]; - char pbar_fill[sizeof(pbar)]; - - - /* Override color defaults with that of main progress bar */ - if (use_colors || use_shadow) { /* NB: shadow enables color */ - color_code = gauge_color[0]; - /* NB: str[1] aka bg is unused */ - bold_code = gauge_color[2]; - } - - /* - * Create mini-progressbar for current file (if applicable) - */ - *pbar = '\0'; - if (pbar_size >= 0 && pct >= 0 && curfile != NULL && - (curfile->length >= 0 || dialog_test)) { - snprintf(pbar, pbar_size + 1, "%*s%3u%%%*s", pct_lsize, "", - pct, pct_rsize, ""); - if (use_color) { - /* Calculate the fill-width of progressbar */ - pwidth = pct * pbar_size / 100; - /* Round up based on one-tenth of a percent */ - if ((pct * pbar_size % 100) > 50) - pwidth++; - - /* - * Make two copies of pbar. Make one represent the fill - * and the other the remainder (cap). We'll insert the - * ANSI delimiter in between. - */ - *pbar_fill = '\0'; - *pbar_cap = '\0'; - strncat(pbar_fill, (const char *)(pbar), dwidth); - *(pbar_fill + pwidth) = '\0'; - strncat(pbar_cap, (const char *)(pbar+pwidth), dwidth); - - /* Finalize the mini [color] progressbar */ - snprintf(pbar, sizeof(pbar), - "\\Z%c\\Zr\\Z%c%s%s%s\\Zn", bold_code, color_code, - pbar_fill, "\\ZR", pbar_cap); - } - } - - for (fp = file_list; fp != NULL; fp = fp->next) { - flabel_size = label_size; - name = fp->name; - nthfile++; - - /* - * Support multiline filenames (where the filename is taken as - * the last line and the text leading up to the last line can - * be used as (for example) a heading/separator between files. - */ - if (use_dialog) - nls = dialog_prompt_nlstate(pprompt); - nlines += dialog_prompt_numlines(name, nls); - lastline = dialog_prompt_lastline(name, 1); - if (name != lastline) { - c = *lastline; - *lastline = '\0'; - dprompt_add("%s", name); - *lastline = c; - name = lastline; - } - - /* Support color codes (for dialog(1,3)) in file names */ - if ((use_dialog || use_libdialog) && use_color) { - cp = name; - while (*cp != '\0') { - if (*cp == '\\' && *(cp + 1) != '\0' && - *(++cp) == 'Z' && *(cp + 1) != '\0') { - cp++; - flabel_size += 3; - } - cp++; - } - if (flabel_size > FLABEL_MAX) - flabel_size = FLABEL_MAX; - } - - /* If no mini-progressbar, increase label width */ - if (pbar_size < 0 && flabel_size <= FLABEL_MAX - 2 && - no_labels == FALSE) - flabel_size += 2; - - /* If name is too long, add an ellipsis */ - if (snprintf(flabel, flabel_size + 1, "%s", name) > - flabel_size) sprintf(flabel + flabel_size - 3, "..."); - - /* - * Append the label (processing the current file differently) - */ - if (fp == curfile && pct < 100) { - /* - * Add an ellipsis to current file name if it will fit. - * There may be an ellipsis already from truncating the - * label (in which case, we already have one). - */ - cp = flabel + strlen(flabel); - if (cp < (flabel + flabel_size)) - snprintf(cp, flabel_size - - (cp - flabel) + 1, "..."); - - /* Append label (with spinner and optional color) */ - dprompt_add("%s%-*s%s %c", use_color ? "\\Zb" : "", - flabel_size, flabel, use_color ? "\\Zn" : "", - spin_char()); - } else - dprompt_add("%-*s%s %s", flabel_size, - flabel, use_color ? "\\Zn" : "", " "); - - /* - * Append pbar/status (processing the current file differently) - */ - dstate = DPROMPT_NONE; - if (fp->msg != NULL) - dstate = DPROMPT_CUSTOM_MSG; - else if (pbar_size < 0) - dstate = DPROMPT_NONE; - else if (pbar_size < 4) - dstate = DPROMPT_MINIMAL; - else if (after_curfile) - dstate = DPROMPT_PENDING; - else if (fp == curfile) { - if (*pbar == '\0') { - if (fp->length < 0) - dstate = DPROMPT_DETAILS; - else if (fp->status == DPV_STATUS_RUNNING) - dstate = DPROMPT_DETAILS; - else - dstate = DPROMPT_END_STATE; - } - else if (dialog_test) /* status/length ignored */ - dstate = pct < 100 ? - DPROMPT_PBAR : DPROMPT_END_STATE; - else if (fp->status == DPV_STATUS_RUNNING) - dstate = fp->length < 0 ? - DPROMPT_DETAILS : DPROMPT_PBAR; - else /* not running */ - dstate = fp->length < 0 ? - DPROMPT_DETAILS : DPROMPT_END_STATE; - } else { /* before curfile */ - if (dialog_test) - dstate = DPROMPT_END_STATE; - else - dstate = fp->length < 0 ? - DPROMPT_DETAILS : DPROMPT_END_STATE; - } - format = use_color ? - " [\\Z%c%s%-*s%s%-*s\\Zn]\\n" : - " [%-*s%s%-*s]\\n"; - if (fp->status == DPV_STATUS_FAILED) { - bg_code = "\\Zr\\Z1"; /* Red */ - estext_lsize = fail_lsize; - estext_rsize = fail_rsize; - estext = fail; - } else { /* e.g., DPV_STATUS_DONE */ - bg_code = "\\Zr\\Z2"; /* Green */ - estext_lsize = done_lsize; - estext_rsize = done_rsize; - estext = done; - } - switch (dstate) { - case DPROMPT_PENDING: /* Future file(s) */ - dprompt_add(" [%-*s%s%-*s]\\n", - pend_lsize, "", pend, pend_rsize, ""); - break; - case DPROMPT_PBAR: /* Current file */ - dprompt_add(" [%s]\\n", pbar); - break; - case DPROMPT_END_STATE: /* Past/Current file(s) */ - if (use_color) - dprompt_add(format, bold_code, bg_code, - estext_lsize, "", estext, - estext_rsize, ""); - else - dprompt_add(format, - estext_lsize, "", estext, - estext_rsize, ""); - break; - case DPROMPT_DETAILS: /* Past/Current file(s) */ - humanize_number(human, pbar_size + 2, fp->read, "", - HN_AUTOSCALE, HN_NOSPACE | HN_DIVISOR_1000); - - /* Calculate center alignment */ - hlen = (int)strlen(human); - lsize = (pbar_size - hlen) / 2; - rsize = lsize; - if ((lsize+hlen+rsize) != pbar_size) - rsize++; - - if (use_color) - dprompt_add(format, bold_code, bg_code, - lsize, "", human, rsize, ""); - else - dprompt_add(format, - lsize, "", human, rsize, ""); - break; - case DPROMPT_CUSTOM_MSG: /* File-specific message override */ - snprintf(msg, PROMPT_MAX + 1, "%s", fp->msg); - if (pbar_size < (mesg_size = strlen(msg))) { - mesg_lsize = mesg_rsize = 0; - *(msg + pbar_size) = '\0'; - mesg_size = pbar_size; - } else { - mesg_lsize = (pbar_size - mesg_size) / 2; - mesg_rsize = mesg_lsize; - if ((mesg_rsize + mesg_size + mesg_lsize) - != pbar_size) - mesg_rsize++; - } - if (use_color) - dprompt_add(format, bold_code, bg_code, - mesg_lsize, "", msg, mesg_rsize, ""); - else - dprompt_add(format, mesg_lsize, "", msg, - mesg_rsize, ""); - break; - case DPROMPT_MINIMAL: /* Short progress bar, minimal room */ - if (use_color) - dprompt_add(format, bold_code, bg_code, - pbar_size, "", "", 0, ""); - else - dprompt_add(format, pbar_size, "", "", 0, ""); - break; - case DPROMPT_NONE: /* pbar_size < 0 */ - /* FALLTHROUGH */ - default: - dprompt_add(" \\n"); - /* - * NB: Leading space required for the case when - * spin_char() returns a single backslash [\] which - * without the space, changes the meaning of `\n' - */ - } - - /* Stop building if we've hit the internal limit */ - if (nthfile >= display_limit) - break; - - /* If this is the current file, all others are pending */ - if (fp == curfile) - after_curfile = TRUE; - } - - /* - * Since we cannot change the height/width of the [X]dialog(1) widget - * after spawn, to make things look nice let's pad the height so that - * the `-a text' always appears in the same spot. - * - * NOTE: fheight is calculated in dprompt_init(). It represents the - * maximum height required to display the set of items (broken up into - * pieces of display_limit chunks) whose names contain the most - * newlines for any given set. - */ - while (nlines < fheight) { - dprompt_add("\n"); - nlines++; - } - - return (nthfile); -} - -/* - * Process the dpv_file_node linked-list of named files, re-generating the - * [X]dialog(1) `--gauge' prompt text for the current state of transfers. - */ -void -dprompt_recreate(struct dpv_file_node *file_list, - struct dpv_file_node *curfile, int pct) -{ - size_t len; - - /* - * Re-Build the prompt text - */ - dprompt_clear(); - if (display_limit > 0) - dprompt_add_files(file_list, curfile, pct); - - /* Xdialog(1) requires newlines (a) escaped and (b) in triplicate */ - if (use_xdialog) { - /* Replace `\n' with `\n\\n\n' in dprompt */ - len = strlen(dprompt); - len += strcount(dprompt, "\\n") * 5; /* +5 chars per count */ - if (len > PROMPT_MAX) - errx(EXIT_FAILURE, "%s: Oops, dprompt buffer overflow " - "(%zu > %i)", __func__, len, PROMPT_MAX); - if (replaceall(dprompt, "\\n", "\n\\n\n") < 0) - err(EXIT_FAILURE, "%s: replaceall()", __func__); - } - else if (use_libdialog) - strexpandnl(dprompt); -} - -/* - * Print the [X]dialog(1) `--gauge' prompt text to a buffer. - */ -int -dprompt_sprint(char * restrict str, const char *prefix, const char *append) -{ - - return (snprintf(str, PROMPT_MAX, "%s%s%s%s", use_color ? "\\Zn" : "", - prefix ? prefix : "", dprompt, append ? append : "")); -} - -/* - * Print the [X]dialog(1) `--gauge' prompt text to file descriptor fd (could - * be STDOUT_FILENO or a pipe(2) file descriptor to actual [X]dialog(1)). - */ -void -dprompt_dprint(int fd, const char *prefix, const char *append, int overall) -{ - int percent = gauge_percent; - - if (overall >= 0 && overall <= 100) - gauge_percent = percent = overall; - dprintf(fd, "XXX\n%s%s%s%s\nXXX\n%i\n", use_color ? "\\Zn" : "", - prefix ? prefix : "", dprompt, append ? append : "", percent); - fsync(fd); -} - -/* - * Print the dialog(3) `gauge' prompt text using libdialog. - */ -void -dprompt_libprint(const char *prefix, const char *append, int overall) -{ - int percent = gauge_percent; - char buf[DPV_PPROMPT_MAX + DPV_APROMPT_MAX + DPV_DISPLAY_LIMIT * 1024]; - - dprompt_sprint(buf, prefix, append); - - if (overall >= 0 && overall <= 100) - gauge_percent = percent = overall; - gauge = dlg_reallocate_gauge(gauge, title == NULL ? "" : title, - buf, dheight, dwidth, percent); - dlg_update_gauge(gauge, percent); -} - -/* - * Free allocated items initialized by dprompt_init() - */ -void -dprompt_free(void) -{ - if ((dprompt_free_mask & FM_DONE) != 0) { - dprompt_free_mask ^= FM_DONE; - free(done); - done = NULL; - } - if ((dprompt_free_mask & FM_FAIL) != 0) { - dprompt_free_mask ^= FM_FAIL; - free(fail); - fail = NULL; - } - if ((dprompt_free_mask & FM_PEND) != 0) { - dprompt_free_mask ^= FM_PEND; - free(pend); - pend = NULL; - } -} diff --git a/lib/libdpv/dprompt.h b/lib/libdpv/dprompt.h deleted file mode 100644 index c63b1213eb0c..000000000000 --- a/lib/libdpv/dprompt.h +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DPROMPT_H_ -#define _DPROMPT_H_ - -#include <sys/cdefs.h> - -#include "dpv.h" - -/* Display characteristics */ -#define ENV_MSG_DONE "msg_done" -#define ENV_MSG_FAIL "msg_fail" -#define ENV_MSG_PENDING "msg_pending" -extern int display_limit; -extern int label_size; -extern int pbar_size; - -__BEGIN_DECLS -void dprompt_clear(void); -void dprompt_dprint(int _fd, const char *_prefix, const char *_append, - int _overall); -void dprompt_free(void); -void dprompt_init(struct dpv_file_node *_file_list); -void dprompt_libprint(const char *_prefix, const char *_append, - int _overall); -void dprompt_recreate(struct dpv_file_node *_file_list, - struct dpv_file_node *_curfile, int _pct); -int dprompt_add(const char *_format, ...); -int dprompt_sprint(char * restrict _str, const char *_prefix, - const char *_append); -__END_DECLS - -#endif /* !_DPROMPT_H_ */ diff --git a/lib/libdpv/dpv.3 b/lib/libdpv/dpv.3 deleted file mode 100644 index bbc6de0bcfcc..000000000000 --- a/lib/libdpv/dpv.3 +++ /dev/null @@ -1,529 +0,0 @@ -.\" Copyright (c) 2013-2018 Devin Teske -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd March 13, 2018 -.Dt DPV 3 -.Os -.Sh NAME -.Nm dpv -.Nd dialog progress view library -.Sh LIBRARY -.Lb libdpv -.Sh SYNOPSIS -.In dpv.h -.Ft int -.Fo dpv -.Fa "struct dpv_config *config" -.Fa "struct dpv_file_node *file_list" -.Fc -.Ft void -.Fo dpv_free -.Fa "void" -.Fc -.Sh DESCRIPTION -The -.Nm -library provides an interface for creating complex -.Dq gauge -widgets for displaying progress on various actions. -The -.Nm -library can display progress with one of -.Xr dialog 3 , -.Xr dialog 1 , -or -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.Pp -The -.Fn dpv -.Fa config -argument properties for configuring global display features: -.Bd -literal -offset indent -struct dpv_config { - uint8_t keep_tite; /* Cleaner exit for scripts */ - enum dpv_display display_type; /* Def. DPV_DISPLAY_LIBDIALOG */ - enum dpv_output output_type; /* Default DPV_OUTPUT_NONE */ - int debug; /* Enable debug on stderr */ - int display_limit; /* Files/page. Default -1 */ - int label_size; /* Label size. Default 28 */ - int pbar_size; /* Mini-progress size */ - int dialog_updates_per_second; /* Default 16 */ - int status_updates_per_second; /* Default 2 */ - uint16_t options; /* Default 0 (none) */ - char *title; /* Widget title */ - char *backtitle; /* Widget backtitle */ - char *aprompt; /* Append. Default NULL */ - char *pprompt; /* Prefix. Default NULL */ - char *msg_done; /* Default `Done' */ - char *msg_fail; /* Default `Fail' */ - char *msg_pending; /* Default `Pending' */ - char *output; /* Output format string */ - const char *status_solo; /* dialog(3) solo-status format. - * Default DPV_STATUS_SOLO */ - const char *status_many; /* dialog(3) many-status format. - * Default DPV_STATUS_MANY */ - - /* - * Function pointer; action to perform data transfer - */ - int (*action)(struct dpv_file_node *file, int out); -}; - -enum dpv_display { - DPV_DISPLAY_LIBDIALOG = 0, /* Use dialog(3) (default) */ - DPV_DISPLAY_STDOUT, /* Use stdout */ - DPV_DISPLAY_DIALOG, /* Use spawned dialog(1) */ - DPV_DISPLAY_XDIALOG, /* Use spawned Xdialog(1) */ -}; - -enum dpv_output { - DPV_OUTPUT_NONE = 0, /* No output (default) */ - DPV_OUTPUT_FILE, /* Read `output' member as file path */ - DPV_OUTPUT_SHELL, /* Read `output' member as shell cmd */ -}; -.Ed -.Pp -The -.Va options -member of the -.Fn dpv -.Fa config -argument is a mask of bit fields indicating various processing options. -Possible flags are: -.Bl -tag -width DPV_NO_OVERRUN -.It Dv DPV_TEST_MODE -Enable test mode. -In test mode, -the -.Fn action -callback of the -.Fa config -argument is not called but instead simulated-data is used to drive progress. -Appends -.Dq [TEST MODE] -to the status line -.Po -to override, -set the -.Va status_format -member of the -.Fn dpv -.Fa config -argument; -for example, -to -.Dv DPV_STATUS_DEFAULT -.Pc . -.It Dv DPV_WIDE_MODE -Enable wide mode. -In wide mode, -the length of the -.Va aprompt -and -.Va pprompt -members of the -.Fn dpv -.Fa config -argument will bump the width of the gauge widget. -Prompts wider than the maximum width will wrap -.Po -unless using -.Xr Xdialog 1 Pq Pa ports/x11/xdialog ; -see BUGS section below -.Pc . -.It Dv DPV_NO_LABELS -Disables the display of labels associated with each transfer -.Po -.Va label_size -member of -.Fn dpv -.Fa config -argument is ignored -.Pc . -.It Dv DPV_USE_COLOR -Force the use of color even if the -.Va display_type -does not support color -.Po -.Ev USE_COLOR -environment variable is ignored -.Pc . -.It Dv DPV_NO_OVERRUN -When enabled, -callbacks for the current -.Vt dpv_file_node -are terminated when -.Fn action -returns 100 or greater -.Po -alleviates the need to change the -.Va status -of the current -.Vt dpv_file_node -but may also cause file truncation if the stream exceeds expected length -.Pc . -.El -.Pp -The -.Fa file_list -argument to -.Fn dpv -is a pointer to a -.Dq linked-list , -described in -.In dpv.h : -.Bd -literal -offset indent -struct dpv_file_node { - enum dpv_status status; /* status of read operation */ - char *msg; /* display instead of "Done/Fail" */ - char *name; /* name of file to read */ - char *path; /* path to file */ - long long length; /* expected size */ - long long read; /* number units read (e.g., bytes) */ - struct dpv_file_node *next;/* pointer to next (end with NULL) */ -}; -.Ed -.Pp -For each of the items in the -.Fa file_list -.Dq linked-list -argument, -the -.Fn action -callback member of the -.Fn dpv -.Fa config -argument is called. -The -.Fn action -function performs a -.Dq nominal -action on the file and return. -The return value of -.Vt int -represents the current progress percentage -.Pq 0-100 -for the current file. -.Pp -The -.Fn action -callback provides two variables for each call. -.Fa file -provides a reference to the current -.Vt dpv_file_node -being processed. -.Fa out -provides a file descriptor where the data goes. -.Pp -If the -.Va output -member of the -.Fn dpv -.Fa config -argument was set to DPV_OUTPUT_NONE -.Pq default ; when invoking Fn dpv , -the -.Fa out -file descriptor of -.Fn action -will be zero and can be ignored. -If -.Fa output -was set to DPV_OUTPUT_FILE, -.Fa out -will be an open file descriptor to a file. -If -.Fa output -was set to DPV_OUTPUT_SHELL, -.Fa out -will be an open file descriptor to a pipe for a spawned shell program. -When -.Fa out -is greater than zero, -write data that has been read back to -.Fa out . -.Pp -To abort -.Fn dpv , -either from the -.Fn action -callback or asynchronously from a signal handler, -two globals are provided via -.In dpv.h : -.Bd -literal -offset indent -extern int dpv_interrupt; /* Set to TRUE in interrupt handler */ -extern int dpv_abort; /* Set to true in callback to abort */ -.Ed -.Pp -These globals are not automatically reset and must be manually maintained. -Do not forget to reset these globals before subsequent invocations of -.Fn dpv -when making multiple calls from the same program. -.Pp -In addition, -the -.Va status -member of the -.Fn action -.Fa file -argument can be used to control callbacks for the current file. -The -.Va status -member can be set to any of the below from -.In dpv.h : -.Bd -literal -offset indent -enum dpv_status { - DPV_STATUS_RUNNING = 0, /* Running (default) */ - DPV_STATUS_DONE, /* Completed */ - DPV_STATUS_FAILED, /* Oops, something went wrong */ -}; -.Ed -.Pp -The default -.Fa status -is zero, -DPV_STATUS_RUNNING, -which keeps the callbacks coming for the current -.Fn file . -Setting -.Ql file->status -to anything other than DPV_STATUS_RUNNING will cause -.Fn dpv -to loop to the next file, -effecting the next callback, -if any. -.Pp -The -.Fn action -callback is responsible for calculating percentages and -.Pq recommended -maintaining a -.Nm -global counter so -.Fn dpv -can display throughput statistics. -Percentages are reported through the -.Vt int -return value of the -.Fn action -callback. -Throughput statistics are calculated from the below global -.Vt int -in -.In dpv.h : -.Bd -literal -offset indent -extern int dpv_overall_read; -.Ed -.Pp -Set this to the number of bytes that have been read for all files. -Throughput information is displayed in the status line -.Pq only available when using Xr dialog 3 -at the bottom of the screen. -See DPV_DISPLAY_LIBDIALOG above. -.Pp -Note that -.Va dpv_overall_read -does not have to represent bytes. -For example, -the -.Va status_format -can be changed to display something other than -.Dq Li bytes -and increment -.Va dpv_overall_read -accordingly -.Pq for example, counting lines . -.Pp -When -.Fn dpv -is processing the current file, -the -.Va length -and -.Va read -members of the -.Fn action -.Fa file -argument are used for calculating the display of mini progress bars -.Po -if enabled; -see -.Va pbar_size -above -.Pc . -If the -.Va length -member of the current -.Fa file -is less than zero -.Pq indicating an unknown file length , -a -.Xr humanize_number 3 -version of the -.Va read -member is used instead of a traditional progress bar. -Otherwise a progress bar is calculated as percentage read to file length. -.Fn action -callback must maintain these member values for mini-progress bars. -.Pp -The -.Fn dpv_free -function performs -.Xr free 3 -on private global variables initialized by -.Fn dpv . -.Sh ENVIRONMENT -The below environment variables are referenced by -.Nm : -.Bl -tag -width ".Ev USE_COLOR" -.It Ev DIALOG -Override command string used to launch -.Xr dialog 1 -.Pq requires Dv DPV_DISPLAY_DIALOG -or -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -.Pq requires Dv DPV_DISPLAY_XDIALOG ; -default is either -.Ql dialog -.Pq for Dv DPV_DISPLAY_DIALOG -or -.Ql Xdialog -.Pq for Dv DPV_DISPLAY_XDIALOG . -.It Ev DIALOGRC -If set and non-NULL, -path to -.Ql .dialogrc -file. -.It Ev HOME -If -.Ql Ev $DIALOGRC -is either not set or NULL, -used as a prefix to -.Ql .dialogrc -.Pq that is, Ql $HOME/.dialogrc . -.It Ev USE_COLOR -If set and NULL, -disables the use of color when using -.Xr dialog 1 . -Does not apply to -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.It Ev msg_done Ev msg_fail Ev msg_pending -Internationalization strings for overriding the default English strings -.Ql Done , -.Ql Fail , -and -.Ql Pending -respectively. -To prevent their usage, -explicitly set the -.Va msg_done , -.Va msg_fail , -and -.Va msg_pending -members of -.Fn dpv -.Fa config -argument to default macros -.Pq DPV_DONE_DEFAULT, DPV_FAIL_DEFAULT, and DPV_PENDING_DEFAULT -or desired values. -.El -.Sh FILES -.Bl -tag -width ".Pa $HOME/.dialogrc" -compact -.It Pa $HOME/.dialogrc -.El -.Sh SEE ALSO -.Xr dialog 1 , -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -.Xr dialog 3 -.Sh HISTORY -The -.Nm -library first appeared in -.Fx 10.2 . -.Sh AUTHORS -.An Devin Teske Aq dteske@FreeBSD.org -.Sh BUGS -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -when given both -.Ql Fl -title Ar title -.Po -see above -.Ql Va title -member of -.Va struct dpv_config -.Pc -and -.Ql Fl -backtitle Ar backtitle -.Po -see above -.Ql Va backtitle -member of -.Va struct dpv_config -.Pc , -displays the backtitle in place of the title and vice-versa. -.Pp -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -does not wrap long prompt texts received after initial launch. -This is a known issue with the -.Ql --gauge -widget in -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -Embed escaped newlines within prompt text to force line breaks. -.Pp -.Xr dialog 1 -does not display the first character after a series of escaped escape-sequences -(for example, ``\\\\n'' produces ``\\'' instead of ``\\n''). -This is a known issue with -.Xr dialog 1 -and does not affect -.Xr dialog 3 -or -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.Pp -If an application ignores -.Ev USE_COLOR -when set and NULL before calling -.Fn dpv -with color escape sequences anyway, -.Xr dialog 3 -and -.Xr dialog 1 -may not render properly. -Workaround is to detect when -.Ev USE_COLOR -is set and NULL and either not use color escape sequences at that time or use -.Xr unsetenv 3 -to unset -.Ev USE_COLOR , -forcing interpretation of color sequences. -This does not effect -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -which renders the color escape sequences as plain text. -See -.Do -embedded "\\Z" sequences -.Dc -in -.Xr dialog 1 -for additional information. diff --git a/lib/libdpv/dpv.c b/lib/libdpv/dpv.c deleted file mode 100644 index 0c3ea68faf59..000000000000 --- a/lib/libdpv/dpv.c +++ /dev/null @@ -1,728 +0,0 @@ -/*- - * Copyright (c) 2013-2016 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <sys/stat.h> -#include <sys/time.h> -#include <sys/types.h> -#include <sys/wait.h> - -#include <ctype.h> -#include <dialog.h> -#include <err.h> -#include <limits.h> -#include <locale.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <string_m.h> -#include <unistd.h> - -#include "dialog_util.h" -#include "dialogrc.h" -#include "dprompt.h" -#include "dpv.h" -#include "dpv_private.h" -#include "status.h" -#include "util.h" - -/* Test Mechanics (Only used when dpv_config.options |= DPV_TEST_MODE) */ -#define INCREMENT 1 /* Increment % per-pass test-mode */ -#define XDIALOG_INCREMENT 15 /* different for slower Xdialog(1) */ -static uint8_t increment = INCREMENT; - -/* Debugging */ -uint8_t debug = FALSE; - -/* Data to process */ -int dpv_interrupt = FALSE; -int dpv_abort = FALSE; -unsigned int dpv_nfiles = 0; - -/* Data processing */ -long long dpv_overall_read = 0; -static char pathbuf[PATH_MAX]; - -/* Extra display information */ -uint8_t keep_tite = FALSE; /* dpv_config.keep_tite */ -uint8_t no_labels = FALSE; /* dpv_config.options & DPV_NO_LABELS */ -uint8_t wide = FALSE; /* dpv_config.options & DPV_WIDE_MODE */ -char *aprompt = NULL; /* dpv_config.aprompt */ -char *msg_done = NULL; /* dpv_config.msg_done */ -char *msg_fail = NULL; /* dpv_config.msg_fail */ -char *msg_pending = NULL; /* dpv_config.msg_pending */ -char *pprompt = NULL; /* dpv_config.pprompt */ - -/* Status-Line format for when using dialog(3) */ -static const char *status_format_custom = NULL; -static char status_format_default[DPV_STATUS_FORMAT_MAX]; - -/* - * Takes a pointer to a dpv_config structure containing layout details and - * pointer to initial element in a linked-list of dpv_file_node structures, - * each presenting a file to process. Executes the `action' function passed-in - * as a member to the `config' structure argument. - */ -int -dpv(struct dpv_config *config, struct dpv_file_node *file_list) -{ - char c; - uint8_t keep_going; - uint8_t nls = FALSE; /* See dialog_prompt_nlstate() */ - uint8_t no_overrun = FALSE; - uint8_t pprompt_nls = FALSE; /* See dialog_prompt_nlstate() */ - uint8_t shrink_label_size = FALSE; - mode_t mask; - uint16_t options; - char *cp; - char *fc; - char *last; - char *name; - char *output; - const char *status_fmt; - const char *path_fmt; - enum dpv_display display_type; - enum dpv_output output_type; - enum dpv_status status; - int (*action)(struct dpv_file_node *file, int out); - int backslash; - int dialog_last_update = 0; - int dialog_old_nthfile = 0; - int dialog_old_seconds = -1; - int dialog_out = STDOUT_FILENO; - int dialog_update_usec = 0; - int dialog_updates_per_second; - int files_left; - int max_cols; - int nthfile = 0; - int output_out; - int overall = 0; - int pct; - int res; - int seconds; - int status_last_update = 0; - int status_old_nthfile = 0; - int status_old_seconds = -1; - int status_update_usec = 0; - int status_updates_per_second; - pid_t output_pid; - pid_t pid; - size_t len; - struct dpv_file_node *curfile; - struct dpv_file_node *first_file; - struct dpv_file_node *list_head; - struct timeval now; - struct timeval start; - char init_prompt[PROMPT_MAX + 1] = ""; - - /* Initialize globals to default values */ - aprompt = NULL; - pprompt = NULL; - options = 0; - action = NULL; - backtitle = NULL; - debug = FALSE; - dialog_test = FALSE; - dialog_updates_per_second = DIALOG_UPDATES_PER_SEC; - display_limit = DISPLAY_LIMIT_DEFAULT; - display_type = DPV_DISPLAY_LIBDIALOG; - keep_tite = FALSE; - label_size = LABEL_SIZE_DEFAULT; - msg_done = NULL; - msg_fail = NULL; - msg_pending = NULL; - no_labels = FALSE; - output = NULL; - output_type = DPV_OUTPUT_NONE; - pbar_size = PBAR_SIZE_DEFAULT; - status_format_custom = NULL; - status_updates_per_second = STATUS_UPDATES_PER_SEC; - title = NULL; - wide = FALSE; - - /* Process config options (overriding defaults) */ - if (config != NULL) { - if (config->aprompt != NULL) { - if (aprompt == NULL) { - aprompt = malloc(DPV_APROMPT_MAX); - if (aprompt == NULL) - return (-1); - } - snprintf(aprompt, DPV_APROMPT_MAX, "%s", - config->aprompt); - } - if (config->pprompt != NULL) { - if (pprompt == NULL) { - pprompt = malloc(DPV_PPROMPT_MAX + 2); - /* +2 is for implicit "\n" appended later */ - if (pprompt == NULL) - return (-1); - } - snprintf(pprompt, DPV_APROMPT_MAX, "%s", - config->pprompt); - } - - options = config->options; - action = config->action; - backtitle = config->backtitle; - debug = config->debug; - dialog_test = ((options & DPV_TEST_MODE) != 0); - dialog_updates_per_second = config->dialog_updates_per_second; - display_limit = config->display_limit; - display_type = config->display_type; - keep_tite = config->keep_tite; - label_size = config->label_size; - msg_done = (char *)config->msg_done; - msg_fail = (char *)config->msg_fail; - msg_pending = (char *)config->msg_pending; - no_labels = ((options & DPV_NO_LABELS) != 0); - no_overrun = ((options & DPV_NO_OVERRUN) != 0); - output = config->output; - output_type = config->output_type; - pbar_size = config->pbar_size; - status_updates_per_second = config->status_updates_per_second; - title = config->title; - wide = ((options & DPV_WIDE_MODE) != 0); - - /* Enforce some minimums (pedantic) */ - if (display_limit < -1) - display_limit = -1; - if (label_size < -1) - label_size = -1; - if (pbar_size < -1) - pbar_size = -1; - - /* For the mini-pbar, -1 means hide, zero is invalid unless - * only one file is given */ - if (pbar_size == 0) { - if (file_list == NULL || file_list->next == NULL) - pbar_size = -1; - else - pbar_size = PBAR_SIZE_DEFAULT; - } - - /* For the label, -1 means auto-size, zero is invalid unless - * specifically requested through the use of options flag */ - if (label_size == 0 && no_labels == FALSE) - label_size = LABEL_SIZE_DEFAULT; - - /* Status update should not be zero */ - if (status_updates_per_second == 0) - status_updates_per_second = STATUS_UPDATES_PER_SEC; - } /* config != NULL */ - - /* Process the type of display we've been requested to produce */ - switch (display_type) { - case DPV_DISPLAY_STDOUT: - debug = TRUE; - use_color = FALSE; - use_dialog = FALSE; - use_libdialog = FALSE; - use_xdialog = FALSE; - break; - case DPV_DISPLAY_DIALOG: - use_color = TRUE; - use_dialog = TRUE; - use_libdialog = FALSE; - use_xdialog = FALSE; - break; - case DPV_DISPLAY_XDIALOG: - snprintf(dialog, PATH_MAX, XDIALOG); - use_color = FALSE; - use_dialog = FALSE; - use_libdialog = FALSE; - use_xdialog = TRUE; - break; - default: - use_color = TRUE; - use_dialog = FALSE; - use_libdialog = TRUE; - use_xdialog = FALSE; - break; - } /* display_type */ - - /* Enforce additional minimums that require knowing our display type */ - if (dialog_updates_per_second == 0) - dialog_updates_per_second = use_xdialog ? - XDIALOG_UPDATES_PER_SEC : DIALOG_UPDATES_PER_SEC; - - /* Allow forceful override of use_color */ - if (config != NULL && (config->options & DPV_USE_COLOR) != 0) - use_color = TRUE; - - /* Count the number of files in provided list of dpv_file_node's */ - if (use_dialog && pprompt != NULL && *pprompt != '\0') - pprompt_nls = dialog_prompt_nlstate(pprompt); - - max_cols = dialog_maxcols(); - if (label_size == -1) - shrink_label_size = TRUE; - - /* Process file arguments */ - for (curfile = file_list; curfile != NULL; curfile = curfile->next) { - dpv_nfiles++; - - /* dialog(3) only expands literal newlines */ - if (use_libdialog) strexpandnl(curfile->name); - - /* Optionally calculate label size for file */ - if (shrink_label_size) { - nls = FALSE; - name = curfile->name; - if (curfile == file_list) - nls = pprompt_nls; - last = (char *)dialog_prompt_lastline(name, nls); - if (use_dialog) { - c = *last; - *last = '\0'; - nls = dialog_prompt_nlstate(name); - *last = c; - } - len = dialog_prompt_longestline(last, nls); - if ((int)len > (label_size - 3)) { - if (label_size > 0) - label_size += 3; - label_size = len; - /* Room for ellipsis (unless NULL) */ - if (label_size > 0) - label_size += 3; - } - - if (max_cols > 0 && label_size > (max_cols - pbar_size - - 9)) - label_size = max_cols - pbar_size - 9; - } - - if (debug) - warnx("label=[%s] path=[%s] size=%lli", - curfile->name, curfile->path, curfile->length); - } /* file_list */ - - /* Optionally process the contents of DIALOGRC (~/.dialogrc) */ - if (use_dialog) { - res = parse_dialogrc(); - if (debug && res == 0) { - warnx("Successfully read `%s' config file", DIALOGRC); - warnx("use_shadow = %i (Boolean)", use_shadow); - warnx("use_colors = %i (Boolean)", use_colors); - warnx("gauge_color=[%s] (FBH)", gauge_color); - } - } else if (use_libdialog) { - init_dialog(stdin, stdout); - use_shadow = dialog_state.use_shadow; - use_colors = dialog_state.use_colors; - gauge_color[0] = 48 + dlg_color_table[GAUGE_ATTR].fg; - gauge_color[1] = 48 + dlg_color_table[GAUGE_ATTR].bg; - gauge_color[2] = dlg_color_table[GAUGE_ATTR].hilite ? - 'b' : 'B'; - gauge_color[3] = '\0'; - end_dialog(); - if (debug) { - warnx("Finished initializing dialog(3) library"); - warnx("use_shadow = %i (Boolean)", use_shadow); - warnx("use_colors = %i (Boolean)", use_colors); - warnx("gauge_color=[%s] (FBH)", gauge_color); - } - } - - /* Enable mini progress bar automatically for stdin streams if unable - * to calculate progress (missing `lines:' syntax). */ - if (dpv_nfiles <= 1 && file_list != NULL && file_list->length < 0 && - !dialog_test) - pbar_size = PBAR_SIZE_DEFAULT; - - /* If $USE_COLOR is set and non-NULL enable color; otherwise disable */ - if ((cp = getenv(ENV_USE_COLOR)) != 0) - use_color = *cp != '\0' ? 1 : 0; - - /* Print error and return `-1' if not given at least one name */ - if (dpv_nfiles == 0) { - warnx("%s: no labels provided", __func__); - return (-1); - } else if (debug) - warnx("%s: %u label%s provided", __func__, dpv_nfiles, - dpv_nfiles == 1 ? "" : "s"); - - /* If only one file and pbar size is zero, default to `-1' */ - if (dpv_nfiles <= 1 && pbar_size == 0) - pbar_size = -1; - - /* Print some debugging information */ - if (debug) { - warnx("%s: %s(%i) max rows x cols = %i x %i", - __func__, use_xdialog ? XDIALOG : DIALOG, - use_libdialog ? 3 : 1, dialog_maxrows(), - dialog_maxcols()); - } - - /* Xdialog(1) updates a lot slower than dialog(1) */ - if (dialog_test && use_xdialog) - increment = XDIALOG_INCREMENT; - - /* Always add implicit newline to pprompt (when specified) */ - if (pprompt != NULL && *pprompt != '\0') { - len = strlen(pprompt); - /* - * NOTE: pprompt = malloc(PPROMPT_MAX + 2) - * NOTE: (see getopt(2) section above for pprompt allocation) - */ - pprompt[len++] = '\\'; - pprompt[len++] = 'n'; - pprompt[len++] = '\0'; - } - - /* Xdialog(1) requires newlines (a) escaped and (b) in triplicate */ - if (use_xdialog && pprompt != NULL) { - /* Replace `\n' with `\n\\n\n' in pprompt */ - len = strlen(pprompt); - len += strcount(pprompt, "\\n") * 2; - if (len > DPV_PPROMPT_MAX) - errx(EXIT_FAILURE, "%s: Oops, pprompt buffer overflow " - "(%zu > %i)", __func__, len, DPV_PPROMPT_MAX); - if (replaceall(pprompt, "\\n", "\n\\n\n") < 0) - err(EXIT_FAILURE, "%s: replaceall()", __func__); - } - /* libdialog requires literal newlines */ - else if (use_libdialog && pprompt != NULL) - strexpandnl(pprompt); - - /* Xdialog(1) requires newlines (a) escaped and (b) in triplicate */ - if (use_xdialog && aprompt != NULL) { - /* Replace `\n' with `\n\\n\n' in aprompt */ - len = strlen(aprompt); - len += strcount(aprompt, "\\n") * 2; - if (len > DPV_APROMPT_MAX) - errx(EXIT_FAILURE, "%s: Oops, aprompt buffer overflow " - " (%zu > %i)", __func__, len, DPV_APROMPT_MAX); - if (replaceall(aprompt, "\\n", "\n\\n\n") < 0) - err(EXIT_FAILURE, "%s: replaceall()", __func__); - } - /* libdialog requires literal newlines */ - else if (use_libdialog && aprompt != NULL) - strexpandnl(aprompt); - - /* - * Warn user about an obscure dialog(1) bug (neither Xdialog(1) nor - * libdialog are affected) in the `--gauge' widget. If the first non- - * whitespace letter of "{new_prompt}" in "XXX\n{new_prompt}\nXXX\n" - * is a number, the number can sometimes be mistaken for a percentage - * to the overall progressbar. Other nasty side-effects such as the - * entire prompt not displaying or displaying improperly are caused by - * this bug too. - * - * NOTE: When we can use color, we have a work-around... prefix the - * output with `\Zn' (used to terminate ANSI and reset to normal). - */ - if (use_dialog && !use_color) { - backslash = 0; - - /* First, check pprompt (falls through if NULL) */ - fc = pprompt; - while (fc != NULL && *fc != '\0') { - if (*fc == '\n') /* leading literal newline OK */ - break; - if (!isspace(*fc) && *fc != '\\' && backslash == 0) - break; - else if (backslash > 0 && *fc != 'n') - break; - else if (*fc == '\\') { - backslash++; - if (backslash > 2) - break; /* we're safe */ - } - fc++; - } - /* First non-whitespace character that dialog(1) will see */ - if (fc != NULL && *fc >= '0' && *fc <= '9') - warnx("%s: WARNING! text argument to `-p' begins with " - "a number (not recommended)", __func__); - else if (fc > pprompt) - warnx("%s: WARNING! text argument to `-p' begins with " - "whitespace (not recommended)", __func__); - - /* - * If no pprompt or pprompt is all whitespace, check the first - * file name provided to make sure it is alright too. - */ - if ((pprompt == NULL || *fc == '\0') && file_list != NULL) { - first_file = file_list; - fc = first_file->name; - while (fc != NULL && *fc != '\0' && isspace(*fc)) - fc++; - /* First non-whitespace char that dialog(1) will see */ - if (fc != NULL && *fc >= '0' && *fc <= '9') - warnx("%s: WARNING! File name `%s' begins " - "with a number (use `-p text' for safety)", - __func__, first_file->name); - } - } - - dprompt_init(file_list); - /* Reads: label_size pbar_size pprompt aprompt dpv_nfiles */ - /* Inits: dheight and dwidth */ - - /* Default localeconv(3) settings for dialog(3) status */ - setlocale(LC_NUMERIC, - getenv("LC_ALL") == NULL && getenv("LC_NUMERIC") == NULL ? - LC_NUMERIC_DEFAULT : ""); - - if (!debug) { - /* Internally create the initial `--gauge' prompt text */ - dprompt_recreate(file_list, (struct dpv_file_node *)NULL, 0); - - /* Spawn [X]dialog(1) `--gauge', returning pipe descriptor */ - if (use_libdialog) { - status_printf(""); - dprompt_libprint(pprompt, aprompt, 0); - } else { - dprompt_sprint(init_prompt, pprompt, aprompt); - dialog_out = dialog_spawn_gauge(init_prompt, &pid); - dprompt_dprint(dialog_out, pprompt, aprompt, 0); - } - } /* !debug */ - - /* Seed the random(3) generator */ - if (dialog_test) - srandom(0xf1eeface); - - /* Set default/custom status line format */ - if (dpv_nfiles > 1) { - snprintf(status_format_default, DPV_STATUS_FORMAT_MAX, "%s", - DPV_STATUS_MANY); - status_format_custom = config->status_many; - } else { - snprintf(status_format_default, DPV_STATUS_FORMAT_MAX, "%s", - DPV_STATUS_SOLO); - status_format_custom = config->status_solo; - } - - /* Add test mode identifier to default status line if enabled */ - if (dialog_test && (strlen(status_format_default) + 12) < - DPV_STATUS_FORMAT_MAX) - strcat(status_format_default, " [TEST MODE]"); - - /* Verify custom status format */ - status_fmt = fmtcheck(status_format_custom, status_format_default); - if (status_format_custom != NULL && - status_fmt == status_format_default) { - warnx("WARNING! Invalid status_format configuration `%s'", - status_format_custom); - warnx("Default status_format `%s'", status_format_default); - } - - /* Record when we started (used to prevent updating too quickly) */ - (void)gettimeofday(&start, (struct timezone *)NULL); - - /* Calculate number of microseconds in-between sub-second updates */ - if (status_updates_per_second != 0) - status_update_usec = 1000000 / status_updates_per_second; - if (dialog_updates_per_second != 0) - dialog_update_usec = 1000000 / dialog_updates_per_second; - - /* - * Process the file list [serially] (one for each argument passed) - */ - files_left = dpv_nfiles; - list_head = file_list; - for (curfile = file_list; curfile != NULL; curfile = curfile->next) { - keep_going = TRUE; - output_out = -1; - pct = 0; - nthfile++; - files_left--; - - if (dpv_interrupt) - break; - if (dialog_test) - pct = 0 - increment; - - /* Attempt to spawn output program for this file */ - if (!dialog_test && output != NULL) { - mask = umask(0022); - (void)umask(mask); - - switch (output_type) { - case DPV_OUTPUT_SHELL: - output_out = shell_spawn_pipecmd(output, - curfile->name, &output_pid); - break; - case DPV_OUTPUT_FILE: - path_fmt = fmtcheck(output, "%s"); - if (path_fmt == output) - len = snprintf(pathbuf, - PATH_MAX, output, curfile->name); - else - len = snprintf(pathbuf, - PATH_MAX, "%s", output); - if (len >= PATH_MAX) { - warnx("%s:%d:%s: pathbuf[%u] too small" - "to hold output argument", - __FILE__, __LINE__, __func__, - PATH_MAX); - return (-1); - } - if ((output_out = open(pathbuf, - O_CREAT|O_WRONLY, DEFFILEMODE & ~mask)) - < 0) { - warn("%s", pathbuf); - return (-1); - } - break; - default: - break; - } - } - - while (!dpv_interrupt && keep_going) { - if (dialog_test) { - usleep(50000); - pct += increment; - dpv_overall_read += - (int)(random() / 512 / dpv_nfiles); - /* 512 limits fake readout to Megabytes */ - } else if (action != NULL) - pct = action(curfile, output_out); - - if (no_overrun || dialog_test) - keep_going = (pct < 100); - else { - status = curfile->status; - keep_going = (status == DPV_STATUS_RUNNING); - } - - /* Get current time and calculate seconds elapsed */ - gettimeofday(&now, (struct timezone *)NULL); - now.tv_sec = now.tv_sec - start.tv_sec; - now.tv_usec = now.tv_usec - start.tv_usec; - if (now.tv_usec < 0) - now.tv_sec--, now.tv_usec += 1000000; - seconds = now.tv_sec + (now.tv_usec / 1000000.0); - - /* Update dialog (be it dialog(3), dialog(1), etc.) */ - if ((dialog_updates_per_second != 0 && - ( - seconds != dialog_old_seconds || - now.tv_usec - dialog_last_update >= - dialog_update_usec || - nthfile != dialog_old_nthfile - )) || pct == 100 - ) { - /* Calculate overall progress (rounding up) */ - overall = (100 * nthfile - 100 + pct) / - dpv_nfiles; - if (((100 * nthfile - 100 + pct) * 10 / - dpv_nfiles % 100) > 50) - overall++; - - dprompt_recreate(list_head, curfile, pct); - - if (use_libdialog && !debug) { - /* Update dialog(3) widget */ - dprompt_libprint(pprompt, aprompt, - overall); - } else { - /* stdout, dialog(1), or Xdialog(1) */ - dprompt_dprint(dialog_out, pprompt, - aprompt, overall); - fsync(dialog_out); - } - dialog_old_seconds = seconds; - dialog_old_nthfile = nthfile; - dialog_last_update = now.tv_usec; - } - - /* Update the status line */ - if ((use_libdialog && !debug) && - status_updates_per_second != 0 && - ( - keep_going != TRUE || - seconds != status_old_seconds || - now.tv_usec - status_last_update >= - status_update_usec || - nthfile != status_old_nthfile - ) - ) { - status_printf(status_fmt, dpv_overall_read, - (dpv_overall_read / (seconds == 0 ? 1 : - seconds) * 1.0), - 1, /* XXX until we add parallelism XXX */ - files_left); - status_old_seconds = seconds; - status_old_nthfile = nthfile; - status_last_update = now.tv_usec; - } - } - - if (!dialog_test && output_out >= 0) { - close(output_out); - waitpid(output_pid, (int *)NULL, 0); - } - - if (dpv_abort) - break; - - /* Advance head of list when we hit the max display lines */ - if (display_limit > 0 && nthfile % display_limit == 0) - list_head = curfile->next; - } - - if (!debug) { - if (use_libdialog) - end_dialog(); - else { - close(dialog_out); - waitpid(pid, (int *)NULL, 0); - } - if (!keep_tite && !dpv_interrupt) - printf("\n"); - } else - warnx("%s: %lli overall read", __func__, dpv_overall_read); - - if (dpv_interrupt || dpv_abort) - return (-1); - else - return (0); -} - -/* - * Free allocated items initialized by dpv() - */ -void -dpv_free(void) -{ - dialogrc_free(); - dprompt_free(); - dialog_maxsize_free(); - if (aprompt != NULL) { - free(aprompt); - aprompt = NULL; - } - if (pprompt != NULL) { - free(pprompt); - pprompt = NULL; - } - status_free(); -} diff --git a/lib/libdpv/dpv.h b/lib/libdpv/dpv.h deleted file mode 100644 index 656de484dc5b..000000000000 --- a/lib/libdpv/dpv.h +++ /dev/null @@ -1,163 +0,0 @@ -/*- - * Copyright (c) 2013-2016 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DPV_H_ -#define _DPV_H_ - -#include <sys/types.h> - -#ifndef TRUE -#define TRUE 1 -#endif -#ifndef FALSE -#define FALSE 0 -#endif - -/* localeconv(3) */ -#define LC_NUMERIC_DEFAULT "en_US.ISO8859-1" - -/* Data to process */ -extern long long dpv_overall_read; - -/* Interrupt flag */ -extern int dpv_interrupt; /* Set to TRUE in interrupt handler */ -extern int dpv_abort; /* Set to true in callback to abort */ - -/* - * Display types for use with display_type member of dpv_config structure - */ -enum dpv_display { - DPV_DISPLAY_LIBDIALOG = 0, /* Display using dialog(3) (default) */ - DPV_DISPLAY_STDOUT, /* Display on stdout */ - DPV_DISPLAY_DIALOG, /* Display using spawned dialog(1) */ - DPV_DISPLAY_XDIALOG, /* Display using spawned Xdialog(1) */ -}; - -/* - * Output types for use with output_type member of dpv_config structure - */ -enum dpv_output { - DPV_OUTPUT_NONE = 0, /* No output (default) */ - DPV_OUTPUT_FILE, /* Read `output' member as file path */ - DPV_OUTPUT_SHELL, /* Read `output' member as shell cmd */ -}; - -/* - * Activity types for use with status member of dpv_file_node structure. - * If you set a status other than DPV_STATUS_RUNNING on the current file in the - * action callback of dpv_config structure, you'll end callbacks for that - * dpv_file_node. - */ -enum dpv_status { - DPV_STATUS_RUNNING = 0, /* Running (default) */ - DPV_STATUS_DONE, /* Completed */ - DPV_STATUS_FAILED, /* Oops, something went wrong */ -}; - -/* - * Anatomy of file option; pass an array of these as dpv() file_list argument - * terminated with a NULL pointer. - */ -struct dpv_file_node { - enum dpv_status status; /* status of read operation */ - char *msg; /* display instead of "Done/Fail" */ - char *name; /* name of file to read */ - char *path; /* path to file */ - long long length; /* expected size */ - long long read; /* number units read (e.g., bytes) */ - struct dpv_file_node *next; /* pointer to next (end with NULL) */ -}; - -/* - * Anatomy of config option to pass as dpv() config argument - */ -struct dpv_config { - uint8_t keep_tite; /* Prevent visually distracting exit */ - enum dpv_display display_type; /* Display (default TYPE_LIBDIALOG) */ - enum dpv_output output_type; /* Output (default TYPE_NONE) */ - int debug; /* Enable debugging output on stderr */ - int display_limit; /* Files per `page'. Default -1 */ - int label_size; /* Label size. Default 28 */ - int pbar_size; /* Mini-progress size. See dpv(3) */ - int dialog_updates_per_second; /* Progress updates/s. Default 16 */ - int status_updates_per_second; /* dialog(3) status updates/second. - * Default 2 */ - uint16_t options; /* Special options. Default 0 */ - char *title; /* widget title */ - char *backtitle; /* Widget backtitle */ - char *aprompt; /* Prompt append. Default NULL */ - char *pprompt; /* Prompt prefix. Default NULL */ - char *msg_done; /* Progress text. Default `Done' */ - char *msg_fail; /* Progress text. Default `Fail' */ - char *msg_pending; /* Progress text. Default `Pending' */ - char *output; /* Output format string; see dpv(3) */ - const char *status_solo; /* dialog(3) solo-status format. - * Default DPV_STATUS_SOLO */ - const char *status_many; /* dialog(3) many-status format. - * Default DPV_STATUS_MANY */ - - /* - * Function pointer; action to perform data transfer - */ - int (*action)(struct dpv_file_node *file, int out); -}; - -/* - * Macros for dpv() options bitmask argument - */ -#define DPV_TEST_MODE 0x0001 /* Test mode (fake reading data) */ -#define DPV_WIDE_MODE 0x0002 /* prefix/append bump dialog width */ -#define DPV_NO_LABELS 0x0004 /* Hide file_node.name labels */ -#define DPV_USE_COLOR 0x0008 /* Override to force color output */ -#define DPV_NO_OVERRUN 0x0010 /* Stop transfers when they hit 100% */ - -/* - * Limits (modify with extreme care) - */ -#define DPV_APROMPT_MAX 4096 /* Buffer size for `-a text' */ -#define DPV_DISPLAY_LIMIT 10 /* Max file progress lines */ -#define DPV_PPROMPT_MAX 4096 /* Buffer size for `-p text' */ -#define DPV_STATUS_FORMAT_MAX 80 /* Buffer size for `-u format' */ - -/* - * Extra display information - */ -#define DPV_STATUS_SOLO "%'10lli bytes read @ %'9.1f bytes/sec." -#define DPV_STATUS_MANY (DPV_STATUS_SOLO " [%i/%i busy/wait]") - -/* - * Strings - */ -#define DPV_DONE_DEFAULT "Done" -#define DPV_FAIL_DEFAULT "Fail" -#define DPV_PENDING_DEFAULT "Pending" - -__BEGIN_DECLS -void dpv_free(void); -int dpv(struct dpv_config *_config, struct dpv_file_node *_file_list); -__END_DECLS - -#endif /* !_DPV_H_ */ diff --git a/lib/libdpv/dpv_private.h b/lib/libdpv/dpv_private.h deleted file mode 100644 index 79629c3377c2..000000000000 --- a/lib/libdpv/dpv_private.h +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * Copyright (c) 2013-2016 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DPV_PRIVATE_H_ -#define _DPV_PRIVATE_H_ - -#include <sys/types.h> - -/* Debugging */ -extern uint8_t debug; - -/* Data to process */ -extern unsigned int dpv_nfiles; - -/* Extra display information */ -extern uint8_t keep_tite; -extern uint8_t no_labels; -extern uint8_t wide; -extern char *msg_done, *msg_fail, *msg_pending; -extern char *pprompt, *aprompt; -extern const char status_format[]; - -/* Defaults */ -#define DIALOG_UPDATES_PER_SEC 16 -#define XDIALOG_UPDATES_PER_SEC 4 -#define DISPLAY_LIMIT_DEFAULT 0 /* Auto-calculate */ -#define LABEL_SIZE_DEFAULT 28 -#define PBAR_SIZE_DEFAULT 17 -#define STATUS_UPDATES_PER_SEC 2 - -/* states for dprompt_add_files() of dprompt.c */ -enum dprompt_state { - DPROMPT_NONE = 0, /* Default */ - DPROMPT_PENDING, /* Pending */ - DPROMPT_PBAR, /* Progress bar */ - DPROMPT_END_STATE, /* Done/Fail */ - DPROMPT_DETAILS, /* dpv_file_node->read */ - DPROMPT_CUSTOM_MSG, /* dpv_file_node->msg */ - DPROMPT_MINIMAL, /* whitespace */ -}; - -#endif /* !_DPV_PRIVATE_H_ */ diff --git a/lib/libdpv/status.c b/lib/libdpv/status.c deleted file mode 100644 index de2bdc45fdd2..000000000000 --- a/lib/libdpv/status.c +++ /dev/null @@ -1,109 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <curses.h> -#include <dialog.h> -#include <stdarg.h> -#include <stdlib.h> -#include <string.h> - -#include "dialog_util.h" -#include "status.h" - -/* static globals */ -static char *status_buf = NULL; -static int status_bufsize = -1; -static int status_row; -static int status_width; - -/* - * Print a `one-liner' status message at the bottom of the screen. Messages are - * trimmed to fit within the console length (ANSI coloring not accounted for). - */ -void -status_printf(const char *fmt, ...) -{ - int n, attrs; - chtype color = dlg_color_pair(dlg_color_table[BUTTON_ACTIVE_ATTR].fg, - dlg_color_table[SCREEN_ATTR].bg) | A_BOLD; - va_list args; - - status_row = tty_maxrows() - 1; - status_width = tty_maxcols(); - - /* NULL is a special convention meaning "erase the old stuff" */ - if (fmt == NULL) { - move(status_row, 0); - clrtoeol(); - return; - } - - /* Resize buffer if terminal width is greater */ - if ((status_width + 1) > status_bufsize) { - status_buf = realloc(status_buf, status_width + 1); - if (status_buf == NULL) { - status_bufsize = -1; - return; - } - status_bufsize = status_width + 1; - } - - /* Print the message within a space-filled buffer */ - memset(status_buf, ' ', status_width); - va_start(args, fmt); - n = vsnprintf(status_buf, status_width + 1, fmt, args); - va_end(args); - - /* If vsnprintf(3) produced less bytes than the maximum, change the - * implicitly-added NUL-terminator into a space and terminate at max */ - if (n < status_width) { - status_buf[n] = ' '; - status_buf[status_width] = '\0'; - } - - /* Print text in screen bg, button active fg, and bold */ - attrs = getattrs(stdscr); - attrset(color); - mvaddstr(status_row, 0, status_buf); - attrset(attrs); - - /* Seat the cursor over the last character at absolute lower-right */ - move(status_row, status_width - 1); - refresh(); -} - -/* - * Free allocated items initialized by status_printf() - */ -void -status_free(void) -{ - if (status_buf != NULL) { - free(status_buf); - status_buf = NULL; - } -} diff --git a/lib/libdpv/status.h b/lib/libdpv/status.h deleted file mode 100644 index a07767cb424b..000000000000 --- a/lib/libdpv/status.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _STATUS_H_ -#define _STATUS_H_ - -#include <sys/cdefs.h> - -/* dialog(3) dlg_color_table[] attributes */ -#define SCREEN_ATTR 0 /* entry used for status line bg */ -#define BUTTON_ACTIVE_ATTR 5 /* entry used for status line fg */ - -__BEGIN_DECLS -void status_free(void); -void status_printf(const char *_format, ...); -__END_DECLS - -#endif /* !_STATUS_H_ */ diff --git a/lib/libdpv/util.c b/lib/libdpv/util.c deleted file mode 100644 index 4b2393b45821..000000000000 --- a/lib/libdpv/util.c +++ /dev/null @@ -1,104 +0,0 @@ -/*- - * Copyright (c) 2013-2018 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <err.h> -#include <limits.h> -#include <spawn.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -#include "util.h" - -extern char **environ; -static char cmdbuf[CMDBUFMAX] = ""; -static char shellcmd[PATH_MAX] = PATH_SHELL; -static char *shellcmd_argv[6] = { - shellcmd, - __DECONST(char *, "-c"), - cmdbuf, - __DECONST(char *, "--"), - shellcmd, - NULL, -}; - -/* - * Spawn a sh(1) command. Writes the resulting process ID to the pid_t pointed - * at by `pid'. Returns a file descriptor (int) suitable for writing data to - * the spawned command (data written to file descriptor is seen as standard-in - * by the spawned sh(1) command). Returns `-1' if unable to spawn command. - * - * If cmd contains a single "%s" sequence, replace it with label if non-NULL. - */ -int -shell_spawn_pipecmd(const char *cmd, const char *label, pid_t *pid) -{ - int error; - int len; - posix_spawn_file_actions_t action; -#if SHELL_SPAWN_DEBUG - unsigned int i; -#endif - int stdin_pipe[2] = { -1, -1 }; - - /* Populate argument array */ - if (label != NULL && fmtcheck(cmd, "%s") == cmd) - len = snprintf(cmdbuf, CMDBUFMAX, cmd, label); - else - len = snprintf(cmdbuf, CMDBUFMAX, "%s", cmd); - if (len >= CMDBUFMAX) { - warnx("%s:%d:%s: cmdbuf[%u] too small to hold cmd argument", - __FILE__, __LINE__, __func__, CMDBUFMAX); - return (-1); - } - - /* Open a pipe to communicate with [X]dialog(1) */ - if (pipe(stdin_pipe) < 0) - err(EXIT_FAILURE, "%s: pipe(2)", __func__); - - /* Fork sh(1) process */ -#if SHELL_SPAWN_DEBUG - fprintf(stderr, "%s: spawning `", __func__); - for (i = 0; shellcmd_argv[i] != NULL; i++) { - if (i == 0) - fprintf(stderr, "%s", shellcmd_argv[i]); - else if (i == 2) - fprintf(stderr, " '%s'", shellcmd_argv[i]); - else - fprintf(stderr, " %s", shellcmd_argv[i]); - } - fprintf(stderr, "'\n"); -#endif - posix_spawn_file_actions_init(&action); - posix_spawn_file_actions_adddup2(&action, stdin_pipe[0], STDIN_FILENO); - posix_spawn_file_actions_addclose(&action, stdin_pipe[1]); - error = posix_spawnp(pid, shellcmd, &action, - (const posix_spawnattr_t *)NULL, shellcmd_argv, environ); - if (error != 0) err(EXIT_FAILURE, "%s", shellcmd); - - return stdin_pipe[1]; -} diff --git a/lib/libdpv/util.h b/lib/libdpv/util.h deleted file mode 100644 index ed2b5f7269a5..000000000000 --- a/lib/libdpv/util.h +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * Copyright (c) 2013-2016 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _UTIL_H_ -#define _UTIL_H_ - -#include <sys/types.h> - -#include <paths.h> - -#define SHELL_SPAWN_DEBUG 0 /* Debug spawning of sh(1) commands */ - -#ifdef _PATH_BSHELL -#define PATH_SHELL _PATH_BSHELL -#else -#define PATH_SHELL "/bin/sh" -#endif - -#define CMDBUFMAX 65536 - -__BEGIN_DECLS -int shell_spawn_pipecmd(const char *_cmd, const char *_label, pid_t *_pid); -__END_DECLS - -#endif /* !_UTIL_H_ */ diff --git a/lib/libfigpar/Makefile b/lib/libfigpar/Makefile deleted file mode 100644 index 66a1d61c7016..000000000000 --- a/lib/libfigpar/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -PACKAGE= dpv -LIB= figpar -SHLIB_MAJOR= 0 -INCS= figpar.h string_m.h -MAN= figpar.3 -MLINKS= figpar.3 get_config_option.3 \ - figpar.3 parse_config.3 \ - figpar.3 replaceall.3 \ - figpar.3 strcount.3 \ - figpar.3 strexpand.3 \ - figpar.3 strexpandnl.3 \ - figpar.3 strtolower.3 - -CFLAGS+= -I${.CURDIR} - -SRCS= figpar.c string_m.c - -.include <bsd.lib.mk> diff --git a/lib/libfigpar/Makefile.depend b/lib/libfigpar/Makefile.depend deleted file mode 100644 index 6ef78fac5cbf..000000000000 --- a/lib/libfigpar/Makefile.depend +++ /dev/null @@ -1,15 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - - -.include <dirdeps.mk> - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/lib/libfigpar/figpar.3 b/lib/libfigpar/figpar.3 deleted file mode 100644 index 393da030145d..000000000000 --- a/lib/libfigpar/figpar.3 +++ /dev/null @@ -1,263 +0,0 @@ -.\" Copyright (c) 2013-2018 Devin Teske <dteske@FreeBSD.org> -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd March 13, 2018 -.Dt FIGPAR 3 -.Os -.Sh NAME -.Nm figpar , -.Nm parse_config , -.Nm get_config_option -.Nd configuration file parsing library -.Sh LIBRARY -.Lb libfigpar -.Sh SYNOPSIS -.In figpar.h -.Ft int -.Fo parse_config -.Fa "struct figpar_config options[]" -.Fa "const char *path" -.Fa "int \*[lp]*unknown\*[rp]\*[lp]struct figpar_config *option" -.Fa "uint32_t line" -.Fa "char *directive" -.Fa "char *value\*[rp]" -.Fa "uint8_t processing_options" -.Fc -.Ft "struct figpar_config *" -.Fo get_config_option -.Fa "struct figpar_config options[]" -.Fa "const char *directive" -.Fc -.In string_m.h -.Ft int -.Fo replaceall -.Fa "char *source" -.Fa "const char *find" -.Fa "const char *replace" -.Fc -.Ft unsigned int -.Fo strcount -.Fa "const char *source" -.Fa "const char *find" -.Fc -.Ft void -.Fo strexpand -.Fa "char *source" -.Fc -.Ft void -.Fo strexpandnl -.Fa "char *source" -.Fc -.Ft void -.Fo strtolower -.Fa "char *source" -.Fc -.Sh DESCRIPTION -The -.Nm -library provides a light-weight, -portable framework for parsing configuration -files. -The library uses -.Xr open 2 , -.Xr read 2 , -and -.Xr lseek 2 -within the file pointed to by -.Fa path -to find directives and values which are then made available to the application. -.Pp -Due to the fact that configuration files may have basic syntax differences, -the library does not attempt to impose any structure on the data but instead -provides raw data to a set of callback functions. -These callback functions can in-turn initiate abort through their return value, -allowing custom syntax validation during parsing. -.Pp -Configuration directives, -types, -and callback functions are provided through data structures defined in -.In figpar.h : -.Bd -literal -offset indent -struct figpar_config { - enum figpar_cfgtype type; /* value type */ - const char *directive; /* keyword */ - union figpar_cfgvalue value; /* value */ - - /* Pointer to function used when directive is found */ - int (*action)(struct figpar_config *option, uint32_t line, - char *directive, char *value); -}; - -enum figpar_cfgtype { - FIGPAR_TYPE_NONE = 0x0000, /* directives with no value */ - FIGPAR_TYPE_BOOL = 0x0001, /* boolean */ - FIGPAR_TYPE_INT = 0x0002, /* signed 32 bit integer */ - FIGPAR_TYPE_UINT = 0x0004, /* unsigned 32 bit integer */ - FIGPAR_TYPE_STR = 0x0008, /* string pointer */ - FIGPAR_TYPE_STRARRAY = 0x0010, /* string array pointer */ - FIGPAR_TYPE_DATA1 = 0x0020, /* void data type-1 (open) */ - FIGPAR_TYPE_DATA2 = 0x0040, /* void data type-2 (open) */ - FIGPAR_TYPE_DATA3 = 0x0080, /* void data type-3 (open) */ - FIGPAR_TYPE_RESERVED1 = 0x0100, /* reserved data type-1 */ - FIGPAR_TYPE_RESERVED2 = 0x0200, /* reserved data type-2 */ - FIGPAR_TYPE_RESERVED3 = 0x0400, /* reserved data type-3 */ -}; - -union figpar_cfgvalue { - void *data; /* Pointer to NUL-terminated string */ - char *str; /* Pointer to NUL-terminated string */ - char **strarray; /* Pointer to an array of strings */ - int32_t num; /* Signed 32-bit integer value */ - uint32_t u_num; /* Unsigned 32-bit integer value */ - uint32_t boolean:1; /* Boolean integer value (0 or 1) */ -}; -.Ed -.Pp -The -.Fa processing_options -argument to -.Fn parse_config -is a mask of bit fields which indicate various -processing options. -The possible flags are: -.Bl -tag -width FIGPAR_BREAK_ON_SEMICOLON -.It Dv FIGPAR_BREAK_ON_EQUALS -An equals sign -.Pq Ql Li = -is normally considered part of the directive. -This flag enables terminating the directive at the equals sign. -Also makes equals sign optional and transient. -.It Dv FIGPAR_BREAK_ON_SEMICOLON -A semicolon -.Pq Ql Li \; -is normally considered part of the value. -This flag enables terminating the value at the semicolon. -Also allows multiple statements on a single line separated by semicolon. -.It Dv FIGPAR_CASE_SENSITIVE -Normally directives are matched case insensitively using -.Xr fnmatch 3 . -This flag enables directive matching to be case sensitive. -.It Dv FIGPAR_REQUIRE_EQUALS -If a directive is not followed by an equals, -processing is aborted. -.It Dv FIGPAR_STRICT_EQUALS -Equals must be part of the directive to be considered a delimiter between -directive and value. -.El -.Pp -The -.Fa options -struct array pointer can be NULL and every directive will run the -.Fn unknown -function argument. -.Pp -The directive for each figpar_config item in the -.Fn parse_config -options argument is matched against each parsed directive using -.Xr fnmatch 3 -until a match is found. -If a match is found, -the -.Fn action -function for that figpar_config directive is run with the line number, -directive, -and value. -Otherwise if no match, -the -.Fn unknown -function is run -.Pq with the same arguments . -.Pp -If either -.Fa action -or -.Fa unknown -return non-zero, -.Fn parse_config -aborts reading the file and returns the error value to its caller. -.Pp -.Fn get_config_option -traverses the options-array and returns the option that matches via -.Xr strcmp 3 , -or if no match a pointer to a static dummy struct is returned -.Pq whose values are all zero or NULL . -.Pp -The use of -.Fa "struct figpar_config" -is entirely optional as-is the use of -.Fa "enum figpar_cfgtype" -or -.Fa "union figpar_cfgvalue" . -For example, -a NULL pointer can be passed to -.Fn parse_config -for the first argument while providing a simple -.Fa unknown -function based on -.Xr queue 3 -that populates a singly-linked list of a struct containing the -.Fa directive -and -.Fa value . -.Pp -In addition, -miscellaneous string manipulation routines are provided by -.In string_m.h : -.Bl -tag -width strexpandnl() -.It Fn replaceall -Replace all occurrences of -.Fa find -in -.Fa source -with -.Fa replace . -.It Fn strcount -Count the number of occurrences of one string that appear in the -.Fa source -string. -Return value is the total count. -An example use would be to show how large a block of memory needs to be for a -.Fn replaceall -series. -.It Fn strexpand -Expand escape sequences in a buffer pointed to by -.Fa source . -.It Fn strexpandnl -Expand only the escaped newlines in a buffer pointed to by -.Fa source . -.It Fn strtolower -Convert a string to lower case. -.El -.Sh SEE ALSO -.Xr queue 3 -.Sh HISTORY -The -.Nm -library first appeared in -.Fx 10.2 . -.Sh AUTHORS -.An Devin Teske Aq dteske@FreeBSD.org -.Sh BUGS -This is the first implementation of the library, -and the interface may be subject to refinement. diff --git a/lib/libfigpar/figpar.c b/lib/libfigpar/figpar.c deleted file mode 100644 index fbc6aaaba606..000000000000 --- a/lib/libfigpar/figpar.c +++ /dev/null @@ -1,464 +0,0 @@ -/*- - * Copyright (c) 2002-2015 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/param.h> - -#include <ctype.h> -#include <fcntl.h> -#include <fnmatch.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include "figpar.h" -#include "string_m.h" - -struct figpar_config figpar_dummy_config = {0, NULL, {0}, NULL}; - -/* - * Search for config option (struct figpar_config) in the array of config - * options, returning the struct whose directive matches the given parameter. - * If no match is found, a pointer to the static dummy array (above) is - * returned. - * - * This is to eliminate dependency on the index position of an item in the - * array, since the index position is more apt to be changed as code grows. - */ -struct figpar_config * -get_config_option(struct figpar_config options[], const char *directive) -{ - uint32_t n; - - /* Check arguments */ - if (options == NULL || directive == NULL) - return (&figpar_dummy_config); - - /* Loop through the array, return the index of the first match */ - for (n = 0; options[n].directive != NULL; n++) - if (strcmp(options[n].directive, directive) == 0) - return (&(options[n])); - - /* Re-initialize the dummy variable in case it was written to */ - figpar_dummy_config.directive = NULL; - figpar_dummy_config.type = 0; - figpar_dummy_config.action = NULL; - figpar_dummy_config.value.u_num = 0; - - return (&figpar_dummy_config); -} - -/* - * Parse the configuration file at `path' and execute the `action' call-back - * functions for any directives defined by the array of config options (first - * argument). - * - * For unknown directives that are encountered, you can optionally pass a - * call-back function for the third argument to be called for unknowns. - * - * Returns zero on success; otherwise returns -1 and errno should be consulted. -*/ -int -parse_config(struct figpar_config options[], const char *path, - int (*unknown)(struct figpar_config *option, uint32_t line, - char *directive, char *value), uint16_t processing_options) -{ - uint8_t bequals; - uint8_t bsemicolon; - uint8_t case_sensitive; - uint8_t comment = 0; - uint8_t end; - uint8_t found; - uint8_t have_equals = 0; - uint8_t quote; - uint8_t require_equals; - uint8_t strict_equals; - char p[2]; - char *directive; - char *t; - char *value; - int error; - int fd; - ssize_t r = 1; - uint32_t dsize; - uint32_t line = 1; - uint32_t n; - uint32_t vsize; - uint32_t x; - off_t charpos; - off_t curpos; - char rpath[PATH_MAX]; - - /* Sanity check: if no options and no unknown function, return */ - if (options == NULL && unknown == NULL) - return (-1); - - /* Processing options */ - bequals = (processing_options & FIGPAR_BREAK_ON_EQUALS) == 0 ? 0 : 1; - bsemicolon = - (processing_options & FIGPAR_BREAK_ON_SEMICOLON) == 0 ? 0 : 1; - case_sensitive = - (processing_options & FIGPAR_CASE_SENSITIVE) == 0 ? 0 : 1; - require_equals = - (processing_options & FIGPAR_REQUIRE_EQUALS) == 0 ? 0 : 1; - strict_equals = - (processing_options & FIGPAR_STRICT_EQUALS) == 0 ? 0 : 1; - - /* Initialize strings */ - directive = value = 0; - vsize = dsize = 0; - - /* Resolve the file path */ - if (realpath(path, rpath) == 0) - return (-1); - - /* Open the file */ - if ((fd = open(rpath, O_RDONLY)) < 0) - return (-1); - - /* Read the file until EOF */ - while (r != 0) { - r = read(fd, p, 1); - - /* skip to the beginning of a directive */ - while (r != 0 && (isspace(*p) || *p == '#' || comment || - (bsemicolon && *p == ';'))) { - if (*p == '#') - comment = 1; - else if (*p == '\n') { - comment = 0; - line++; - } - r = read(fd, p, 1); - } - /* Test for EOF; if EOF then no directive was found */ - if (r == 0) { - close(fd); - return (0); - } - - /* Get the current offset */ - if ((curpos = lseek(fd, 0, SEEK_CUR)) == -1) { - close(fd); - return (-1); - } - curpos--; - - /* Find the length of the directive */ - for (n = 0; r != 0; n++) { - if (isspace(*p)) - break; - if (bequals && *p == '=') { - have_equals = 1; - break; - } - if (bsemicolon && *p == ';') - break; - r = read(fd, p, 1); - } - - /* Test for EOF, if EOF then no directive was found */ - if (n == 0 && r == 0) { - close(fd); - return (0); - } - - /* Go back to the beginning of the directive */ - if (lseek(fd, curpos, SEEK_SET) == -1) { - close(fd); - return (-1); - } - - /* Allocate and read the directive into memory */ - if (n > dsize) { - if ((directive = realloc(directive, n + 1)) == NULL) { - close(fd); - return (-1); - } - dsize = n; - } - r = read(fd, directive, n); - - /* Advance beyond the equals sign if appropriate/desired */ - if (bequals && *p == '=') { - if (lseek(fd, 1, SEEK_CUR) != -1) - r = read(fd, p, 1); - if (strict_equals && isspace(*p)) - *p = '\n'; - } - - /* Terminate the string */ - directive[n] = '\0'; - - /* Convert directive to lower case before comparison */ - if (!case_sensitive) - strtolower(directive); - - /* Move to what may be the start of the value */ - if (!(bsemicolon && *p == ';') && - !(strict_equals && *p == '=')) { - while (r != 0 && isspace(*p) && *p != '\n') - r = read(fd, p, 1); - } - - /* An equals sign may have stopped us, should we eat it? */ - if (r != 0 && bequals && *p == '=' && !strict_equals) { - have_equals = 1; - r = read(fd, p, 1); - while (r != 0 && isspace(*p) && *p != '\n') - r = read(fd, p, 1); - } - - /* If no value, allocate a dummy value and jump to action */ - if (r == 0 || *p == '\n' || *p == '#' || - (bsemicolon && *p == ';')) { - /* Initialize the value if not already done */ - if (value == NULL && (value = malloc(1)) == NULL) { - close(fd); - return (-1); - } - value[0] = '\0'; - goto call_function; - } - - /* Get the current offset */ - if ((curpos = lseek(fd, 0, SEEK_CUR)) == -1) { - close(fd); - return (-1); - } - curpos--; - - /* Find the end of the value */ - quote = 0; - end = 0; - while (r != 0 && end == 0) { - /* Advance to the next character if we know we can */ - if (*p != '\"' && *p != '#' && *p != '\n' && - (!bsemicolon || *p != ';')) { - r = read(fd, p, 1); - continue; - } - - /* - * If we get this far, we've hit an end-key - */ - - /* Get the current offset */ - if ((charpos = lseek(fd, 0, SEEK_CUR)) == -1) { - close(fd); - return (-1); - } - charpos--; - - /* - * Go back so we can read the character before the key - * to check if the character is escaped (which means we - * should continue). - */ - if (lseek(fd, -2, SEEK_CUR) == -1) { - close(fd); - return (-1); - } - r = read(fd, p, 1); - - /* - * Count how many backslashes there are (an odd number - * means the key is escaped, even means otherwise). - */ - for (n = 1; *p == '\\'; n++) { - /* Move back another offset to read */ - if (lseek(fd, -2, SEEK_CUR) == -1) { - close(fd); - return (-1); - } - r = read(fd, p, 1); - } - - /* Move offset back to the key and read it */ - if (lseek(fd, charpos, SEEK_SET) == -1) { - close(fd); - return (-1); - } - r = read(fd, p, 1); - - /* - * If an even number of backslashes was counted meaning - * key is not escaped, we should evaluate what to do. - */ - if ((n & 1) == 1) { - switch (*p) { - case '\"': - /* - * Flag current sequence of characters - * to follow as being quoted (hashes - * are not considered comments). - */ - quote = !quote; - break; - case '#': - /* - * If we aren't in a quoted series, we - * just hit an inline comment and have - * found the end of the value. - */ - if (!quote) - end = 1; - break; - case '\n': - /* - * Newline characters must always be - * escaped, whether inside a quoted - * series or not, otherwise they - * terminate the value. - */ - end = 1; - case ';': - if (!quote && bsemicolon) - end = 1; - break; - } - } else if (*p == '\n') - /* Escaped newline character. increment */ - line++; - - /* Advance to the next character */ - r = read(fd, p, 1); - } - - /* Get the current offset */ - if ((charpos = lseek(fd, 0, SEEK_CUR)) == -1) { - close(fd); - return (-1); - } - - /* Get the length of the value */ - n = (uint32_t)(charpos - curpos); - if (r != 0) /* more to read, but don't read ending key */ - n--; - - /* Move offset back to the beginning of the value */ - if (lseek(fd, curpos, SEEK_SET) == -1) { - close(fd); - return (-1); - } - - /* Allocate and read the value into memory */ - if (n > vsize) { - if ((value = realloc(value, n + 1)) == NULL) { - close(fd); - return (-1); - } - vsize = n; - } - r = read(fd, value, n); - - /* Terminate the string */ - value[n] = '\0'; - - /* Cut trailing whitespace off by termination */ - t = value + n; - while (isspace(*--t)) - *t = '\0'; - - /* Escape the escaped quotes (replaceall is in string_m.c) */ - x = strcount(value, "\\\""); /* in string_m.c */ - if (x != 0 && (n + x) > vsize) { - if ((value = realloc(value, n + x + 1)) == NULL) { - close(fd); - return (-1); - } - vsize = n + x; - } - if (replaceall(value, "\\\"", "\\\\\"") < 0) { - /* Replace operation failed for some unknown reason */ - close(fd); - return (-1); - } - - /* Remove all new line characters */ - if (replaceall(value, "\\\n", "") < 0) { - /* Replace operation failed for some unknown reason */ - close(fd); - return (-1); - } - - /* Resolve escape sequences */ - strexpand(value); /* in string_m.c */ - -call_function: - /* Abort if we're seeking only assignments */ - if (require_equals && !have_equals) - return (-1); - - found = have_equals = 0; /* reset */ - - /* If there are no options defined, call unknown and loop */ - if (options == NULL && unknown != NULL) { - error = unknown(NULL, line, directive, value); - if (error != 0) { - close(fd); - return (error); - } - continue; - } - - /* Loop through the array looking for a match for the value */ - for (n = 0; options[n].directive != NULL; n++) { - error = fnmatch(options[n].directive, directive, - FNM_NOESCAPE); - if (error == 0) { - found = 1; - /* Call function for array index item */ - if (options[n].action != NULL) { - error = options[n].action( - &options[n], - line, directive, value); - if (error != 0) { - close(fd); - return (error); - } - } - } else if (error != FNM_NOMATCH) { - /* An error has occurred */ - close(fd); - return (-1); - } - } - if (!found && unknown != NULL) { - /* - * No match was found for the value we read from the - * file; call function designated for unknown values. - */ - error = unknown(NULL, line, directive, value); - if (error != 0) { - close(fd); - return (error); - } - } - } - - close(fd); - return (0); -} diff --git a/lib/libfigpar/figpar.h b/lib/libfigpar/figpar.h deleted file mode 100644 index 398da36571a7..000000000000 --- a/lib/libfigpar/figpar.h +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * Copyright (c) 2002-2015 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _FIGPAR_H_ -#define _FIGPAR_H_ - -#include <sys/types.h> - -/* - * Union for storing various types of data in a single common container. - */ -union figpar_cfgvalue { - void *data; /* Pointer to NUL-terminated string */ - char *str; /* Pointer to NUL-terminated string */ - char **strarray; /* Pointer to an array of strings */ - int32_t num; /* Signed 32-bit integer value */ - uint32_t u_num; /* Unsigned 32-bit integer value */ - uint32_t boolean:1; /* Boolean integer value (0 or 1) */ -}; - -/* - * Option types (based on above cfgvalue union) - */ -enum figpar_cfgtype { - FIGPAR_TYPE_NONE = 0x0000, /* directives with no value */ - FIGPAR_TYPE_BOOL = 0x0001, /* boolean */ - FIGPAR_TYPE_INT = 0x0002, /* signed 32 bit integer */ - FIGPAR_TYPE_UINT = 0x0004, /* unsigned 32 bit integer */ - FIGPAR_TYPE_STR = 0x0008, /* string pointer */ - FIGPAR_TYPE_STRARRAY = 0x0010, /* string array pointer */ - FIGPAR_TYPE_DATA1 = 0x0020, /* void data type-1 (open) */ - FIGPAR_TYPE_DATA2 = 0x0040, /* void data type-2 (open) */ - FIGPAR_TYPE_DATA3 = 0x0080, /* void data type-3 (open) */ - FIGPAR_TYPE_RESERVED1 = 0x0100, /* reserved data type-1 */ - FIGPAR_TYPE_RESERVED2 = 0x0200, /* reserved data type-2 */ - FIGPAR_TYPE_RESERVED3 = 0x0400, /* reserved data type-3 */ -}; - -/* - * Options to parse_config() for processing_options bitmask - */ -#define FIGPAR_BREAK_ON_EQUALS 0x0001 /* stop reading directive at `=' */ -#define FIGPAR_BREAK_ON_SEMICOLON 0x0002 /* `;' starts a new line */ -#define FIGPAR_CASE_SENSITIVE 0x0004 /* directives are case sensitive */ -#define FIGPAR_REQUIRE_EQUALS 0x0008 /* assignment directives only */ -#define FIGPAR_STRICT_EQUALS 0x0010 /* `=' must be part of directive */ - -/* - * Anatomy of a config file option - */ -struct figpar_config { - enum figpar_cfgtype type; /* Option value type */ - const char *directive; /* config file keyword */ - union figpar_cfgvalue value; /* NB: set by action */ - - /* - * Function pointer; action to be taken when the directive is found - */ - int (*action)(struct figpar_config *option, uint32_t line, - char *directive, char *value); -}; -extern struct figpar_config figpar_dummy_config; - -__BEGIN_DECLS -int parse_config(struct figpar_config _options[], - const char *_path, - int (*_unknown)(struct figpar_config *_option, - uint32_t _line, char *_directive, char *_value), - uint16_t _processing_options); -struct figpar_config *get_config_option(struct figpar_config _options[], - const char *_directive); -__END_DECLS - -#endif /* _FIGPAR_H_ */ diff --git a/lib/libfigpar/string_m.c b/lib/libfigpar/string_m.c deleted file mode 100644 index df3def788971..000000000000 --- a/lib/libfigpar/string_m.c +++ /dev/null @@ -1,304 +0,0 @@ -/*- - * Copyright (c) 2001-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <ctype.h> -#include <errno.h> -#include <stdint.h> -#include <stdlib.h> -#include <string.h> - -#include "string_m.h" - -/* - * Counts the number of occurrences of one string that appear in the source - * string. Return value is the total count. - * - * An example use would be if you need to know how large a block of memory - * needs to be for a replaceall() series. - */ -unsigned int -strcount(const char *source, const char *find) -{ - const char *p = source; - size_t flen; - unsigned int n = 0; - - /* Both parameters are required */ - if (source == NULL || find == NULL) - return (0); - - /* Cache the length of find element */ - flen = strlen(find); - if (strlen(source) == 0 || flen == 0) - return (0); - - /* Loop until the end of the string */ - while (*p != '\0') { - if (strncmp(p, find, flen) == 0) { /* found an instance */ - p += flen; - n++; - } else - p++; - } - - return (n); -} - -/* - * Replaces all occurrences of `find' in `source' with `replace'. - * - * You should not pass a string constant as the first parameter, it needs to be - * a pointer to an allocated block of memory. The block of memory that source - * points to should be large enough to hold the result. If the length of the - * replacement string is greater than the length of the find string, the result - * will be larger than the original source string. To allocate enough space for - * the result, use the function strcount() declared above to determine the - * number of occurrences and how much larger the block size needs to be. - * - * If source is not large enough, the application will crash. The return value - * is the length (in bytes) of the result. - * - * When an error occurs, -1 is returned and the global variable errno is set - * accordingly. Returns zero on success. - */ -int -replaceall(char *source, const char *find, const char *replace) -{ - char *p; - char *t; - char *temp; - size_t flen; - size_t rlen; - size_t slen; - uint32_t n = 0; - - errno = 0; /* reset global error number */ - - /* Check that we have non-null parameters */ - if (source == NULL) - return (0); - if (find == NULL) - return (strlen(source)); - - /* Cache the length of the strings */ - slen = strlen(source); - flen = strlen(find); - rlen = replace ? strlen(replace) : 0; - - /* Cases where no replacements need to be made */ - if (slen == 0 || flen == 0 || slen < flen) - return (slen); - - /* If replace is longer than find, we'll need to create a temp copy */ - if (rlen > flen) { - temp = malloc(slen + 1); - if (temp == NULL) /* could not allocate memory */ - return (-1); - memcpy(temp, source, slen + 1); - } else - temp = source; - - /* Reconstruct the string with the replacements */ - p = source; t = temp; /* position elements */ - - while (*t != '\0') { - if (strncmp(t, find, flen) == 0) { - /* found an occurrence */ - for (n = 0; replace && replace[n]; n++) - *p++ = replace[n]; - t += flen; - } else - *p++ = *t++; /* copy character and increment */ - } - - /* Terminate the string */ - *p = '\0'; - - /* Free the temporary allocated memory */ - if (temp != source) - free(temp); - - /* Return the length of the completed string */ - return (strlen(source)); -} - -/* - * Expands escape sequences in a buffer pointed to by `source'. This function - * steps through each character, and converts escape sequences such as "\n", - * "\r", "\t" and others into their respective meanings. - * - * You should not pass a string constant or literal to this function or the - * program will likely segmentation fault when it tries to modify the data. - * - * The string length will either shorten or stay the same depending on whether - * any escape sequences were converted but the amount of memory allocated does - * not change. - * - * Interpreted sequences are: - * - * \0NNN character with octal value NNN (0 to 3 digits) - * \N character with octal value N (0 thru 7) - * \a alert (BEL) - * \b backslash - * \f form feed - * \n new line - * \r carriage return - * \t horizontal tab - * \v vertical tab - * \xNN byte with hexadecimal value NN (1 to 2 digits) - * - * All other sequences are unescaped (ie. '\"' and '\#'). - */ -void strexpand(char *source) -{ - uint8_t c; - char *chr; - char *pos; - char d[4]; - - /* Initialize position elements */ - pos = chr = source; - - /* Loop until we hit the end of the string */ - while (*pos != '\0') { - if (*chr != '\\') { - *pos = *chr; /* copy character to current offset */ - pos++; - chr++; - continue; - } - - /* Replace the backslash with the correct character */ - switch (*++chr) { - case 'a': *pos = '\a'; break; /* bell/alert (BEL) */ - case 'b': *pos = '\b'; break; /* backspace */ - case 'f': *pos = '\f'; break; /* form feed */ - case 'n': *pos = '\n'; break; /* new line */ - case 'r': *pos = '\r'; break; /* carriage return */ - case 't': *pos = '\t'; break; /* horizontal tab */ - case 'v': *pos = '\v'; break; /* vertical tab */ - case 'x': /* hex value (1 to 2 digits)(\xNN) */ - d[2] = '\0'; /* pre-terminate the string */ - - /* verify next two characters are hex */ - d[0] = isxdigit(*(chr+1)) ? *++chr : '\0'; - if (d[0] != '\0') - d[1] = isxdigit(*(chr+1)) ? *++chr : '\0'; - - /* convert the characters to decimal */ - c = (uint8_t)strtoul(d, 0, 16); - - /* assign the converted value */ - *pos = (c != 0 || d[0] == '0') ? c : *++chr; - break; - case '0': /* octal value (0 to 3 digits)(\0NNN) */ - d[3] = '\0'; /* pre-terminate the string */ - - /* verify next three characters are octal */ - d[0] = (isdigit(*(chr+1)) && *(chr+1) < '8') ? - *++chr : '\0'; - if (d[0] != '\0') - d[1] = (isdigit(*(chr+1)) && *(chr+1) < '8') ? - *++chr : '\0'; - if (d[1] != '\0') - d[2] = (isdigit(*(chr+1)) && *(chr+1) < '8') ? - *++chr : '\0'; - - /* convert the characters to decimal */ - c = (uint8_t)strtoul(d, 0, 8); - - /* assign the converted value */ - *pos = c; - break; - default: /* single octal (\0..7) or unknown sequence */ - if (isdigit(*chr) && *chr < '8') { - d[0] = *chr; - d[1] = '\0'; - *pos = (uint8_t)strtoul(d, 0, 8); - } else - *pos = *chr; - } - - /* Increment to next offset, possible next escape sequence */ - pos++; - chr++; - } -} - -/* - * Expand only the escaped newlines in a buffer pointed to by `source'. This - * function steps through each character, and converts the "\n" sequence into - * a literal newline and the "\\n" sequence into "\n". - * - * You should not pass a string constant or literal to this function or the - * program will likely segmentation fault when it tries to modify the data. - * - * The string length will either shorten or stay the same depending on whether - * any escaped newlines were converted but the amount of memory allocated does - * not change. - */ -void strexpandnl(char *source) -{ - uint8_t backslash = 0; - char *cp1; - char *cp2; - - /* Replace '\n' with literal in dprompt */ - cp1 = cp2 = source; - while (*cp2 != '\0') { - *cp1 = *cp2; - if (*cp2 == '\\') - backslash++; - else if (*cp2 != 'n') - backslash = 0; - else if (backslash > 0) { - *(--cp1) = (backslash & 1) == 1 ? '\n' : 'n'; - backslash = 0; - } - cp1++; - cp2++; - } - *cp1 = *cp2; -} - -/* - * Convert a string to lower case. You should not pass a string constant to - * this function. Only pass pointers to allocated memory with null terminated - * string data. - */ -void -strtolower(char *source) -{ - char *p = source; - - if (source == NULL) - return; - - while (*p != '\0') { - *p = tolower(*p); - p++; /* would have just used `*p++' but gcc 3.x warns */ - } -} diff --git a/lib/libfigpar/string_m.h b/lib/libfigpar/string_m.h deleted file mode 100644 index afbd5b18ba56..000000000000 --- a/lib/libfigpar/string_m.h +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * Copyright (c) 2001-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _STRING_M_H_ -#define _STRING_M_H_ - -#include <sys/cdefs.h> - -__BEGIN_DECLS -void strexpand(char *_source); -void strexpandnl(char *_source); -void strtolower(char *_source); -int replaceall(char *_source, const char *_find, - const char *_replace); -unsigned int strcount(const char *_source, const char *_find); -__END_DECLS - -#endif /* !_STRING_M_H_ */ diff --git a/lib/libsysdecode/Makefile.depend b/lib/libsysdecode/Makefile.depend index 0f4942adecfe..41a168a9ee11 100644 --- a/lib/libsysdecode/Makefile.depend +++ b/lib/libsysdecode/Makefile.depend @@ -9,7 +9,6 @@ DIRDEPS = \ cddl/lib/libzutil \ cddl/usr.bin/zinject \ cddl/usr.sbin/zdb \ - gnu/lib/libdialog \ include \ include/arpa \ include/gssapi \ @@ -66,7 +65,6 @@ DIRDEPS = \ lib/libdevdctl \ lib/libdevinfo \ lib/libdevstat \ - lib/libdpv \ lib/libdwarf \ lib/libedit \ lib/libedit/readline \ @@ -76,7 +74,6 @@ DIRDEPS = \ lib/libexecinfo \ lib/libexpat \ lib/libfetch \ - lib/libfigpar \ lib/libgeom \ lib/libgpio \ lib/libjail \ diff --git a/share/man/man3/intro.3 b/share/man/man3/intro.3 index 952183d7dd2d..aae5dd83f976 100644 --- a/share/man/man3/intro.3 +++ b/share/man/man3/intro.3 @@ -24,7 +24,7 @@ .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. -.Dd November 10, 2025 +.Dd March 10, 2026 .Dt INTRO 3 .Os .Sh NAME @@ -164,11 +164,6 @@ See The file transfer library. See .Xr fetch 3 . -.It Em libfigpar -.Pq Fl l Ns Ar figpar -The configuration file parsing library. -See -.Xr figpar 3 . .It Em libgpio .Pq Fl l Ns Ar gpio The general-purpose input output library (GPIO). diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 5921a5d7108c..4a3824e09e92 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -552,13 +552,6 @@ build options, but may cause the build to inexplicably fail or produce non-functioning binaries. .It Va WITH_DETECT_TZ_CHANGES Make the time handling code detect changes to the timezone files. -.It Va WITH_DIALOG -Do build -.Xr dialog 1 , -.Xr dialog 3 , -.Xr dpv 1 , -and -.Xr dpv 3 . .It Va WITHOUT_DICT Do not build the Webster dictionary files. .It Va WITH_DIRDEPS_BUILD diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk index bf6564afee38..58cda0d5a0da 100644 --- a/share/mk/bsd.libnames.mk +++ b/share/mk/bsd.libnames.mk @@ -53,10 +53,8 @@ LIBDEVCTL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevctl.a LIBDEVDCTL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevdctl.a LIBDEVINFO?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevinfo.a LIBDEVSTAT?= ${LIBDESTDIR}${LIBDIR_BASE}/libdevstat.a -LIBDIALOG?= ${LIBDESTDIR}${LIBDIR_BASE}/libdialog.a LIBDL?= ${LIBDESTDIR}${LIBDIR_BASE}/libdl.a LIBDNS?= ${LIBDESTDIR}${LIBDIR_BASE}/libdns.a -LIBDPV?= ${LIBDESTDIR}${LIBDIR_BASE}/libdpv.a LIBDTRACE?= ${LIBDESTDIR}${LIBDIR_BASE}/libdtrace.a LIBDWARF?= ${LIBDESTDIR}${LIBDIR_BASE}/libdwarf.a LIBEDIT?= ${LIBDESTDIR}${LIBDIR_BASE}/libedit.a @@ -64,7 +62,6 @@ LIBEFIVAR?= ${LIBDESTDIR}${LIBDIR_BASE}/libefivar.a LIBELF?= ${LIBDESTDIR}${LIBDIR_BASE}/libelf.a LIBEXECINFO?= ${LIBDESTDIR}${LIBDIR_BASE}/libexecinfo.a LIBFETCH?= ${LIBDESTDIR}${LIBDIR_BASE}/libfetch.a -LIBFIGPAR?= ${LIBDESTDIR}${LIBDIR_BASE}/libfigpar.a LIBFL?= "don't use LIBFL, use LIBL" LIBFORMW?= ${LIBDESTDIR}${LIBDIR_BASE}/libformw.a LIBG2C?= ${LIBDESTDIR}${LIBDIR_BASE}/libg2c.a diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk index aa3069b038f7..e1ffecddc25a 100644 --- a/share/mk/src.libnames.mk +++ b/share/mk/src.libnames.mk @@ -146,9 +146,7 @@ _LIBRARIES= \ devdctl \ devinfo \ devstat \ - dialog \ dl \ - dpv \ dtrace \ dwarf \ edit \ @@ -156,7 +154,6 @@ _LIBRARIES= \ elf \ execinfo \ fetch \ - figpar \ formw \ geom \ gpio \ @@ -363,8 +360,6 @@ _DP_blacklist+= pthread _DP_blocklist+= pthread .endif _DP_devstat= kvm -_DP_dialog= tinfow ncursesw m -_DP_dpv= dialog figpar util tinfow ncursesw _DP_dtrace= ctf elf proc pthread rtld_db xo _DP_dwarf= elf z _DP_edit= tinfow @@ -832,7 +827,6 @@ LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm LIBOSMVENDORDIR=${_LIB_OBJTOP}/lib/ofed/libvendor -LIBDIALOGDIR= ${_LIB_OBJTOP}/gnu/lib/libdialog LIBSSPDIR= ${_LIB_OBJTOP}/lib/libssp LIBSSP_NONSHAREDDIR= ${_LIB_OBJTOP}/lib/libssp_nonshared .if ${MK_MITKRB5} != "no" diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 6efc686f0a17..1b5a44c231f3 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -203,7 +203,6 @@ __DEFAULT_NO_OPTIONS = \ CLANG_FORMAT \ CLEAN \ DETECT_TZ_CHANGES \ - DIALOG \ DISK_IMAGE_TOOLS_BOOTSTRAP \ DTRACE_ASAN \ DTRACE_TESTS \ diff --git a/targets/pseudo/userland/lib/Makefile.depend b/targets/pseudo/userland/lib/Makefile.depend index 63c7e69719c2..45a898e1de22 100644 --- a/targets/pseudo/userland/lib/Makefile.depend +++ b/targets/pseudo/userland/lib/Makefile.depend @@ -71,7 +71,6 @@ DIRDEPS = \ lib/libexecinfo \ lib/libexpat \ lib/libfetch \ - lib/libfigpar \ lib/libgeom \ lib/libgssapi \ lib/libiconv_modules/BIG5 \ @@ -229,10 +228,6 @@ DIRDEPS+= \ .endif -.if ${MK_DIALOG} != "no" -DIRDEPS+= lib/libdpv -.endif - .if ${MK_GPIO} != "no" DIRDEPS+= lib/libgpio .endif diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index cfd040ee60fc..e46618644f7d 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -1501,33 +1501,6 @@ OLD_LIBS+=${DEBUG_LIBS} OLD_FILES+=tests/lib/libc/stdtime/detect_tz_changes_test .endif -.if ${MK_DIALOG} == no -OLD_FILES+=usr/bin/dialog -OLD_FILES+=usr/bin/dpv -OLD_FILES+=usr/lib/libdialog.a -OLD_FILES+=usr/lib/libdialog.so -OLD_LIBS+=usr/lib/libdialog.so.10 -OLD_FILES+=usr/lib/libdpv.a -OLD_FILES+=usr/lib/libdpv.so -OLD_LIBS+=usr/lib/libdpv.so.3 -OLD_FILES+=usr/lib/libfigpar.a -OLD_FILES+=usr/lib/libfigpar.so -OLD_LIBS+=usr/lib/libfigpar.so.0 -OLD_FILES+=usr/share/man/man1/dialog.1.gz -OLD_FILES+=usr/share/man/man1/dpv.1.gz -OLD_FILES+=usr/share/man/man3/dialog.3.gz -OLD_FILES+=usr/share/man/man3/dpv.3.gz -OLD_FILES+=usr/share/man/man3/dpv_free.3.gz -OLD_FILES+=usr/share/man/man3/figpar.3.gz -OLD_FILES+=usr/share/man/man3/get_config_option.3.gz -OLD_FILES+=usr/share/man/man3/parse_config.3.gz -OLD_FILES+=usr/share/man/man3/replaceall.3.gz -OLD_FILES+=usr/share/man/man3/strcount.3.gz -OLD_FILES+=usr/share/man/man3/strexpand.3.gz -OLD_FILES+=usr/share/man/man3/strexpandnl.3.gz -OLD_FILES+=usr/share/man/man3/strtolower.3.gz -.endif - .if ${MK_DICT} == no OLD_FILES+=usr/share/dict/README OLD_FILES+=usr/share/dict/freebsd diff --git a/tools/build/options/WITHOUT_DIALOG b/tools/build/options/WITHOUT_DIALOG deleted file mode 100644 index 92b744b10d2a..000000000000 --- a/tools/build/options/WITHOUT_DIALOG +++ /dev/null @@ -1,6 +0,0 @@ -Do not build -.Xr dialog 1 , -.Xr dialog 3 , -.Xr dpv 1 , -and -.Xr dpv 3 . diff --git a/tools/build/options/WITH_DIALOG b/tools/build/options/WITH_DIALOG deleted file mode 100644 index 8b473b22e21e..000000000000 --- a/tools/build/options/WITH_DIALOG +++ /dev/null @@ -1,6 +0,0 @@ -Do build -.Xr dialog 1 , -.Xr dialog 3 , -.Xr dpv 1 , -and -.Xr dpv 3 . diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 6718286e7ddb..7c57395f087a 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -192,7 +192,6 @@ SUBDIR.${MK_CALENDAR}+= calendar ${MK_LLD} != "no" || ${MK_LLDB} != "no" SUBDIR+= clang .endif -SUBDIR.${MK_DIALOG}+= dpv SUBDIR.${MK_EE}+= ee SUBDIR.${MK_FILE}+= file SUBDIR.${MK_FINGER}+= finger diff --git a/usr.bin/dpv/Makefile b/usr.bin/dpv/Makefile deleted file mode 100644 index 104c865626b9..000000000000 --- a/usr.bin/dpv/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -PACKAGE= dpv - -PROG= dpv - -CFLAGS+= -I${.CURDIR} - -LIBADD= dpv dialog - -.include <bsd.prog.mk> diff --git a/usr.bin/dpv/Makefile.depend b/usr.bin/dpv/Makefile.depend deleted file mode 100644 index 2313ff2ff894..000000000000 --- a/usr.bin/dpv/Makefile.depend +++ /dev/null @@ -1,20 +0,0 @@ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - gnu/lib/libdialog \ - include \ - include/xlocale \ - lib/${CSU_DIR} \ - lib/libc \ - lib/libcompiler_rt \ - lib/libdpv \ - lib/libfigpar \ - lib/msun \ - lib/ncurses/tinfo \ - - -.include <dirdeps.mk> - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/usr.bin/dpv/dpv.1 b/usr.bin/dpv/dpv.1 deleted file mode 100644 index 5d91a5ef379e..000000000000 --- a/usr.bin/dpv/dpv.1 +++ /dev/null @@ -1,448 +0,0 @@ -.\" Copyright (c) 2013-2016 Devin Teske -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd November 2, 2021 -.Dt DPV 1 -.Os -.Sh NAME -.Nm dpv -.Nd stream data from stdin or multiple paths with dialog progress view -.Sh SYNOPSIS -.Nm -.Op options -.Sm off -.Op Ar bytes Cm \&: -.Ar label -.Sm on -.Nm -.Op options -.Fl m -.Sm off -.Op Ar bytes1 Cm \& : -. Ar label1 -.Sm on -.Ar path1 -.Oo -.Sm off -.Op Ar bytes2 Cm \&: -.Ar label2 -.Sm on -.Ar path2 -.Ar ... -.Oc -.Sh DESCRIPTION -.Nm -provides a dialog progress view, allowing a user to see current throughput rate -and total data transferred for one or more streams. -.Pp -The -.Nm -utility has two main modes for processing input. -.Pp -The default input mode, without -.Ql Fl m , -.Nm -reads bytes from standard input. -A label for the data must be provided. -.Pp -The secondary input mode, with -.Ql Fl m , -.Nm -reads multiple paths -.Pq up to 2047 or Dq ARG_MAX/2-1 , -sequentially. -.Pp -Data read in either mode is either thrown away -.Pq default , -sent to a spawned instance of the program specified via -.Ql Fl x Ar cmd , -or sent to a unique file specified by -.Ql Fl o Ar file . -.Pp -With or without -.Ql Fl m , -progress is displayed using one of -.Xr dialog 3 -.Pq default , -.Xr dialog 1 -.Pq see Ql Fl D , -or instead -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -.Pq see Ql Fl X . -.Pp -The following options are available: -.Bl -tag -width "-b backtitle" -.It Fl a Ar text -Display -.Ar text -below the file progress indicator(s). -.It Fl b Ar backtitle -Display -.Ar backtitle -on the backdrop, at top-left, behind the dialog widget. -When using -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -this is displayed inside the window -.Pq at the top -followed by a separator line. -.It Fl D -Do not use the default interface of -.Xr dialog 3 , -but instead spawn an instance of -.Xr dialog 1 . -The path to -.Xr dialog 1 -is taken from the -.Ev DIALOG -environment variable or simply -.Dq Li dialog -if unset or NULL. -.It Fl d -Debug mode. -Print dialog prompt data to standard out and provide additional debugging on -standard error. -.It Fl h -Produce a short syntax usage with brief option descriptions and exit. -Output is produced on standard error. -.It Fl I Ar format -Customize the multi-file format string used to update the status line. -Ignored when using either -.Ql Fl D -or -.Ql Fl X -which lack the ability to display the status line -.Pq containing bytes/rate/thread information . -Default value -is -.Dq Li %'10lli bytes read @ %'9.1f bytes/sec. [%i/%i busy/wait] . -This format is used when handling more than one file. -.It Fl i Ar format -Customize the single-file format string used to update the status line. -Ignored when using either -.Ql Fl D -or -.Ql Fl X -which lack the ability to display the status line -.Pq containing bytes/rate/thread information . -Default value -is -.Dq Li %'10lli bytes read @ %'9.1f bytes/sec. . -This format is used when handling one file. -.It Fl k -Keep tite. -Prevent visually distracting initialization/exit routines for scripts running -.Xr dialog 1 -several times. -.It Fl L Ar size -Label size. -If negative, shrink to longest label width. -.It Fl l -Line mode. -Read lines from input instead of bytes. -.It Fl m -Multi-input mode. -Instead of reading bytes from standard input, read from a set of paths -.Pq one for each label . -By default, each path is processed sequentially in the order given. -.It Fl N -No overrun. -If enabled, stop reading known-length inputs when input reaches stated length. -.It Fl n Ar num -Display at-most -.Ar num -progress indicators per screen. -If zero, display as many as possible. -If negative, only display the main progress indicator. -Default is 0. -Maximum value is 10. -.It Fl o Ar file -Output data to -.Ar file . -The first occurrence of -.Ql %s -.Pq if any -in -.Ql Ar file -will be replaced with the -.Ar label -text. -.It Fl P Ar size -Mini-progressbar size. -If negative, don't display mini-progressbars -.Pq only the large overall progress indicator is shown . -If zero, auto-adjust based on number of files to read. -When zero and only one file to read, defaults to -1. -When zero and more than one file to read, defaults to 17. -.It Fl p Ar text -Display -.Ar text -above the file progress indicator(s). -.It Fl T -Test mode. -Simulate reading a number of bytes, divided evenly across the number of files, -while stepping through each percent value of each file to process. -Appends -.Dq Li [TEST MODE] -to the status line -.Pq to override, use Ql Fl u Ar format . -No data is actually read. -.It Fl t Ar title -Display -.Ar title -atop the dialog box. -Note that if you use this option at the same time as -.Ql Fl X -and -.Ql Fl b Ar backtitle , -the -.Ar backtitle -and -.Ar title -are effectively switched -.Pq see BUGS section below . -.It Fl U Ar num -Update status line -.Ar num -times per-second. -Default value is -.Ql Li 2 . -A value of -.Ql Li 0 -disables status line updates. -If negative, update the status line as fast as possible. -Ignored when using either -.Ql Fl D -or -.Ql Fl X -which lack the ability to display the status line -.Pq containing bytes/rate/thread information . -.It Fl w -Wide mode. -Allows long -.Ar text -arguments used with -.Ql Fl p -and -.Ql Fl a -to bump the dialog width. -Prompts wider than the maximum width will wrap -unless using -.Xr Xdialog 1 Pq Pa ports/x11/xdialog ; -see BUGS section below. -.It Fl X -Enable X11 mode by using -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -instead of -.Xr dialog 1 -or -.Xr dialog 3 . -.It Fl x Ar cmd -Execute -.Ar cmd -.Pq via Xr sh 1 -and send it data that has been read. -Data is available to -.Ar cmd -on standard input. -With -.Ql Fl m , -.Ar cmd -is executed once for each -.Ar path -argument. -The first occurrence of -.Ql %s -.Pq if any -in -.Ql Ar cmd -will be replaced with the -.Ar label -text. -.El -.Sh ENVIRONMENT -The following environment variables are referenced by -.Nm : -.Bl -tag -width ".Ev USE_COLOR" -.It Ev DIALOG -Override command string used to launch -.Xr dialog 1 -.Pq requires Ql Fl D -or -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -.Pq requires Ql Fl X ; -default is either -.Ql dialog -.Pq for Ql Fl D -or -.Ql Xdialog -.Pq for Ql Fl X . -.It Ev DIALOGRC -If set and non-NULL, path to -.Ql .dialogrc -file. -.It Ev HOME -If -.Ql Ev $DIALOGRC -is either not set or NULL, used as a prefix to -.Ql .dialogrc -.Pq i.e., Ql $HOME/.dialogrc . -.It Ev USE_COLOR -If set and NULL, disables the use of color when using -.Xr dialog 1 . -Does not apply to -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.El -.Sh DEPENDENCIES -If using -.Ql Fl D , -.Xr dialog 1 -is required. -.Pp -If using -.Ql Fl X , -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -is required. -.Sh FILES -.Bl -tag -width "$HOME/.dialogrc" -compact -.It Pa $HOME/.dialogrc -.El -.Sh EXAMPLES -Simple example to show how fast -.Xr yes 1 -produces lines -.Pq usually about ten-million per-second; your results may vary : -.Bd -literal -offset indent -yes | dpv -l yes -.Ed -.Pp -Display progress while timing how long it takes -.Xr yes 1 -to produce a half-billion lines -.Pq usually under one minute; your results may vary : -.Bd -literal -offset indent -time yes | dpv -Nl 500000000:yes -.Ed -.Pp -An example to watch how quickly a file is transferred using -.Xr nc 1 : -.Bd -literal -offset indent -dpv -x "nc -w 1 somewhere.com 3000" -m label file -.Ed -.Pp -A similar example, transferring a file from another process and passing the -expected size to -.Nm : -.Bd -literal -offset indent -cat file | dpv -x "nc -w 1 somewhere.com 3000" 12345:label -.Ed -.Pp -A more complicated example: -.Bd -literal -offset indent -tar cf - . | dpv -x "gzip -9 > out.tgz" \\ - $( du -s . | awk '{print $1 * 1024}' ):label -.Ed -.Pp -Taking an image of a disk: -.Bd -literal -offset indent -dpv -o disk-image.img -m label /dev/ada0 -.Ed -.Pp -Writing an image back to a disk: -.Bd -literal -offset indent -dpv -o /dev/ada0 -m label disk-image.img -.Ed -.Pp -Zeroing a disk: -.Bd -literal -offset indent -dpv -o /dev/md42 "Zeroing md42" < /dev/zero -.Ed -.Sh SEE ALSO -.Xr dialog 1 , -.Xr sh 1 , -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -.Xr dialog 3 -.Sh HISTORY -A -.Nm -utility first appeared in -.Fx 10.2 . -.Sh AUTHORS -.An Devin Teske Aq dteske@FreeBSD.org -.Sh BUGS -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -when given both -.Ql Fl -title Ar title -.Pq see above Ql Fl t Ar title -and -.Ql Fl -backtitle Ar backtitle -.Pq see above Ql Fl b Ar backtitle , -displays the backtitle in place of the title and vice-versa. -.Pp -.Xr Xdialog 1 Pq Pa ports/x11/xdialog -does not wrap long prompt texts received after initial launch. -This is a known issue with the -.Ql --gauge -widget in -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.Pp -.Xr dialog 1 -does not display the first character after a series of escaped escape-sequences -(e.g., ``\\\\n'' produces ``\\'' instead of ``\\n''). -This is a known issue with -.Xr dialog 1 -and does not affect -.Xr dialog 3 -or -.Xr Xdialog 1 Pq Pa ports/x11/xdialog . -.Pp -If your application ignores -.Ev USE_COLOR -when set and NULL before calling -.Xr dpv 1 -with color escape sequences anyway, -.Xr dialog 3 -and -.Xr dialog 1 -may not render properly. -Workaround is to detect when -.Ev USE_COLOR -is set and NULL and either not use color escape sequences at that time or use -.Xr unset 1 -.Xr [ sh 1 ] -or -.Xr unsetenv 1 -.Xr [ csh 1 ] -to unset -.Ev USE_COLOR , -forcing interpretation of color sequences. -This does not effect -.Xr Xdialog 1 Pq Pa ports/x11/xdialog , -which renders the color escape sequences as plain text. -See -.Do -embedded "\\Z" sequences -.Dc -in -.Xr dialog 1 -for additional information. diff --git a/usr.bin/dpv/dpv.c b/usr.bin/dpv/dpv.c deleted file mode 100644 index 1fd89eca77c8..000000000000 --- a/usr.bin/dpv/dpv.c +++ /dev/null @@ -1,543 +0,0 @@ -/*- - * Copyright (c) 2013-2016 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <sys/stat.h> -#include <sys/types.h> - -#define _BSD_SOURCE /* to get dprintf() prototype in stdio.h below */ -#include <dialog.h> -#include <dpv.h> -#include <err.h> -#include <errno.h> -#include <fcntl.h> -#include <limits.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <string_m.h> -#include <unistd.h> - -#include "dpv_util.h" - -/* Debugging */ -static uint8_t debug = FALSE; - -/* Data to process */ -static struct dpv_file_node *file_list = NULL; -static unsigned int nfiles = 0; - -/* Data processing */ -static uint8_t line_mode = FALSE; -static uint8_t no_overrun = FALSE; -static char *buf = NULL; -static int fd = -1; -static int output_type = DPV_OUTPUT_NONE; -static size_t bsize; -static char rpath[PATH_MAX]; - -/* Extra display information */ -static uint8_t multiple = FALSE; /* `-m' */ -static char *pgm; /* set to argv[0] by main() */ - -/* Function prototypes */ -static void sig_int(int sig); -static void usage(void); -int main(int argc, char *argv[]); -static int operate_common(struct dpv_file_node *file, int out); -static int operate_on_bytes(struct dpv_file_node *file, int out); -static int operate_on_lines(struct dpv_file_node *file, int out); - -static int -operate_common(struct dpv_file_node *file, int out) -{ - struct stat sb; - - /* Open the file if necessary */ - if (fd < 0) { - if (multiple) { - /* Resolve the file path and attempt to open it */ - if (realpath(file->path, rpath) == 0 || - (fd = open(rpath, O_RDONLY)) < 0) { - warn("%s", file->path); - file->status = DPV_STATUS_FAILED; - return (-1); - } - } else { - /* Assume stdin, but if that's a TTY instead use the - * highest numbered file descriptor (obtained by - * generating new fd and then decrementing). - * - * NB: /dev/stdin should always be open(2)'able - */ - fd = STDIN_FILENO; - if (isatty(fd)) { - fd = open("/dev/stdin", O_RDONLY); - close(fd--); - } - - /* This answer might be wrong, if dpv(3) has (by - * request) opened an output file or pipe. If we - * told dpv(3) to open a file, subtract one from - * previous answer. If instead we told dpv(3) to - * prepare a pipe output, subtract two. - */ - switch(output_type) { - case DPV_OUTPUT_FILE: - fd -= 1; - break; - case DPV_OUTPUT_SHELL: - fd -= 2; - break; - } - } - } - - /* Allocate buffer if necessary */ - if (buf == NULL) { - /* Use output block size as buffer size if available */ - if (out >= 0) { - if (fstat(out, &sb) != 0) { - warn("%i", out); - file->status = DPV_STATUS_FAILED; - return (-1); - } - if (S_ISREG(sb.st_mode)) { - if (sysconf(_SC_PHYS_PAGES) > - PHYSPAGES_THRESHOLD) - bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); - else - bsize = BUFSIZE_SMALL; - } else - bsize = MAX(sb.st_blksize, - (blksize_t)sysconf(_SC_PAGESIZE)); - } else - bsize = MIN(BUFSIZE_MAX, MAXPHYS * 8); - - /* Attempt to allocate */ - if ((buf = malloc(bsize+1)) == NULL) { - end_dialog(); - err(EXIT_FAILURE, "Out of memory?!"); - } - } - - return (0); -} - -static int -operate_on_bytes(struct dpv_file_node *file, int out) -{ - int progress; - ssize_t r, w; - - if (operate_common(file, out) < 0) - return (-1); - - /* [Re-]Fill the buffer */ - if ((r = read(fd, buf, bsize)) <= 0) { - if (fd != STDIN_FILENO) - close(fd); - fd = -1; - file->status = DPV_STATUS_DONE; - return (100); - } - - /* [Re-]Dump the buffer */ - if (out >= 0) { - if ((w = write(out, buf, r)) < 0) { - end_dialog(); - err(EXIT_FAILURE, "output"); - } - fsync(out); - } - - dpv_overall_read += r; - file->read += r; - - /* Calculate percentage of completion (if possible) */ - if (file->length >= 0) { - progress = (file->read * 100 / (file->length > 0 ? - file->length : 1)); - - /* If no_overrun, do not return 100% until read >= length */ - if (no_overrun && progress == 100 && file->read < file->length) - progress--; - - return (progress); - } else - return (-1); -} - -static int -operate_on_lines(struct dpv_file_node *file, int out) -{ - char *p; - int progress; - ssize_t r, w; - - if (operate_common(file, out) < 0) - return (-1); - - /* [Re-]Fill the buffer */ - if ((r = read(fd, buf, bsize)) <= 0) { - if (fd != STDIN_FILENO) - close(fd); - fd = -1; - file->status = DPV_STATUS_DONE; - return (100); - } - buf[r] = '\0'; - - /* [Re-]Dump the buffer */ - if (out >= 0) { - if ((w = write(out, buf, r)) < 0) { - end_dialog(); - err(EXIT_FAILURE, "output"); - } - fsync(out); - } - - /* Process the buffer for number of lines */ - for (p = buf; p != NULL && *p != '\0';) - if ((p = strchr(p, '\n')) != NULL) - dpv_overall_read++, p++, file->read++; - - /* Calculate percentage of completion (if possible) */ - if (file->length >= 0) { - progress = (file->read * 100 / file->length); - - /* If no_overrun, do not return 100% until read >= length */ - if (no_overrun && progress == 100 && file->read < file->length) - progress--; - - return (progress); - } else - return (-1); -} - -/* - * Takes a list of names that are to correspond to input streams coming from - * stdin or fifos and produces necessary config to drive dpv(3) `--gauge' - * widget. If the `-d' flag is used, output is instead send to terminal - * standard output (and the output can then be saved to a file, piped into - * custom [X]dialog(1) invocation, or whatever. - */ -int -main(int argc, char *argv[]) -{ - char dummy; - int ch; - int n = 0; - size_t config_size = sizeof(struct dpv_config); - size_t file_node_size = sizeof(struct dpv_file_node); - struct dpv_config *config; - struct dpv_file_node *curfile; - struct sigaction act; - - pgm = argv[0]; /* store a copy of invocation name */ - - /* Allocate config structure */ - if ((config = malloc(config_size)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - memset((void *)(config), '\0', config_size); - - /* - * Process command-line options - */ - while ((ch = getopt(argc, argv, - "a:b:dDhi:I:klL:mn:No:p:P:t:TU:wx:X")) != -1) { - switch(ch) { - case 'a': /* additional message text to append */ - if (config->aprompt == NULL) { - config->aprompt = malloc(DPV_APROMPT_MAX); - if (config->aprompt == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - } - snprintf(config->aprompt, DPV_APROMPT_MAX, "%s", - optarg); - break; - case 'b': /* [X]dialog(1) backtitle */ - if (config->backtitle != NULL) - free((char *)config->backtitle); - config->backtitle = malloc(strlen(optarg) + 1); - if (config->backtitle == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - *(config->backtitle) = '\0'; - strcat(config->backtitle, optarg); - break; - case 'd': /* debugging */ - debug = TRUE; - config->debug = debug; - break; - case 'D': /* use dialog(1) instead of libdialog */ - config->display_type = DPV_DISPLAY_DIALOG; - break; - case 'h': /* help/usage */ - usage(); - break; /* NOTREACHED */ - case 'i': /* status line format string for single-file */ - config->status_solo = optarg; - break; - case 'I': /* status line format string for many-files */ - config->status_many = optarg; - break; - case 'k': /* keep tite */ - config->keep_tite = TRUE; - break; - case 'l': /* Line mode */ - line_mode = TRUE; - break; - case 'L': /* custom label size */ - config->label_size = - (int)strtol(optarg, (char **)NULL, 10); - if (config->label_size == 0 && errno == EINVAL) - errx(EXIT_FAILURE, - "`-L' argument must be numeric"); - else if (config->label_size < -1) - config->label_size = -1; - break; - case 'm': /* enable multiple file arguments */ - multiple = TRUE; - break; - case 'o': /* `-o path' for sending data-read to file */ - output_type = DPV_OUTPUT_FILE; - config->output_type = DPV_OUTPUT_FILE; - config->output = optarg; - break; - case 'n': /* custom number of files per `page' */ - config->display_limit = - (int)strtol(optarg, (char **)NULL, 10); - if (config->display_limit == 0 && errno == EINVAL) - errx(EXIT_FAILURE, - "`-n' argument must be numeric"); - else if (config->display_limit < 0) - config->display_limit = -1; - break; - case 'N': /* No overrun (truncate reads of known-length) */ - no_overrun = TRUE; - config->options |= DPV_NO_OVERRUN; - break; - case 'p': /* additional message text to use as prefix */ - if (config->pprompt == NULL) { - config->pprompt = malloc(DPV_PPROMPT_MAX + 2); - if (config->pprompt == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - /* +2 is for implicit "\n" appended later */ - } - snprintf(config->pprompt, DPV_PPROMPT_MAX, "%s", - optarg); - break; - case 'P': /* custom size for mini-progressbar */ - config->pbar_size = - (int)strtol(optarg, (char **)NULL, 10); - if (config->pbar_size == 0 && errno == EINVAL) - errx(EXIT_FAILURE, - "`-P' argument must be numeric"); - else if (config->pbar_size < -1) - config->pbar_size = -1; - break; - case 't': /* [X]dialog(1) title */ - if (config->title != NULL) - free(config->title); - config->title = malloc(strlen(optarg) + 1); - if (config->title == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - *(config->title) = '\0'; - strcat(config->title, optarg); - break; - case 'T': /* test mode (don't read data, fake it) */ - config->options |= DPV_TEST_MODE; - break; - case 'U': /* updates per second */ - config->status_updates_per_second = - (int)strtol(optarg, (char **)NULL, 10); - if (config->status_updates_per_second == 0 && - errno == EINVAL) - errx(EXIT_FAILURE, - "`-U' argument must be numeric"); - break; - case 'w': /* `-p' and `-a' widths bump [X]dialog(1) width */ - config->options |= DPV_WIDE_MODE; - break; - case 'x': /* `-x cmd' for sending data-read to sh(1) code */ - output_type = DPV_OUTPUT_SHELL; - config->output_type = DPV_OUTPUT_SHELL; - config->output = optarg; - break; - case 'X': /* X11 support through x11/xdialog */ - config->display_type = DPV_DISPLAY_XDIALOG; - break; - case '?': /* unknown argument (based on optstring) */ - /* FALLTHROUGH */ - default: /* unhandled argument (based on switch) */ - usage(); - /* NOTREACHED */ - } - } - argc -= optind; - argv += optind; - - /* Process remaining arguments as list of names to display */ - for (curfile = file_list; n < argc; n++) { - nfiles++; - - /* Allocate a new struct for the file argument */ - if (curfile == NULL) { - if ((curfile = malloc(file_node_size)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - memset((void *)(curfile), '\0', file_node_size); - file_list = curfile; - } else { - if ((curfile->next = malloc(file_node_size)) == NULL) - errx(EXIT_FAILURE, "Out of memory?!"); - memset((void *)(curfile->next), '\0', file_node_size); - curfile = curfile->next; - } - curfile->name = argv[n]; - - /* Read possible `lines:' prefix from label syntax */ - if (sscanf(curfile->name, "%lli:%c", &(curfile->length), - &dummy) == 2) - curfile->name = strchr(curfile->name, ':') + 1; - else - curfile->length = -1; - - /* Read path argument if enabled */ - if (multiple) { - if (++n >= argc) - errx(EXIT_FAILURE, "Missing path argument " - "for label number %i", nfiles); - curfile->path = argv[n]; - } else - break; - } - - /* Display usage and exit if not given at least one name */ - if (nfiles == 0) { - warnx("no labels provided"); - usage(); - /* NOTREACHED */ - } - - /* - * Set cleanup routine for Ctrl-C action - */ - if (config->display_type == DPV_DISPLAY_LIBDIALOG) { - act.sa_handler = sig_int; - sigaction(SIGINT, &act, 0); - } - - /* Set status formats and action */ - if (line_mode) { - config->status_solo = LINE_STATUS_SOLO; - config->status_many = LINE_STATUS_SOLO; - config->action = operate_on_lines; - } else { - config->status_solo = BYTE_STATUS_SOLO; - config->status_many = BYTE_STATUS_SOLO; - config->action = operate_on_bytes; - } - - /* - * Hand off to dpv(3)... - */ - if (dpv(config, file_list) != 0 && debug) - warnx("dpv(3) returned error!?"); - - if (!config->keep_tite) - end_dialog(); - dpv_free(); - - exit(EXIT_SUCCESS); -} - -/* - * Interrupt handler to indicate we received a Ctrl-C interrupt. - */ -static void -sig_int(int sig __unused) -{ - dpv_interrupt = TRUE; -} - -/* - * Print short usage statement to stderr and exit with error status. - */ -static void -usage(void) -{ - - if (debug) /* No need for usage */ - exit(EXIT_FAILURE); - - fprintf(stderr, "Usage: %s [options] [bytes:]label\n", pgm); - fprintf(stderr, " %s [options] -m [bytes1:]label1 path1 " - "[[bytes2:]label2 path2 ...]\n", pgm); - fprintf(stderr, "OPTIONS:\n"); -#define OPTFMT "\t%-14s %s\n" - fprintf(stderr, OPTFMT, "-a text", - "Append text. Displayed below file progress indicators."); - fprintf(stderr, OPTFMT, "-b backtitle", - "String to be displayed on the backdrop, at top-left."); - fprintf(stderr, OPTFMT, "-D", - "Use dialog(1) instead of dialog(3) [default]."); - fprintf(stderr, OPTFMT, "-d", - "Debug. Write to standard output instead of dialog."); - fprintf(stderr, OPTFMT, "-h", - "Produce this output on standard error and exit."); - fprintf(stderr, OPTFMT, "-I format", - "Customize status line format. See fdpv(1) for details."); - fprintf(stderr, OPTFMT, "-i format", - "Customize status line format. See fdpv(1) for details."); - fprintf(stderr, OPTFMT, "-L size", - "Label size. Must be a number greater than 0, or -1."); - fprintf(stderr, OPTFMT, "-m", - "Enable processing of multiple file argiments."); - fprintf(stderr, OPTFMT, "-N", - "No overrun. Stop reading input at stated length, if any."); - fprintf(stderr, OPTFMT, "-n num", - "Display at-most num files per screen. Default is -1."); - fprintf(stderr, OPTFMT, "-o file", - "Output data to file. First %s replaced with label text."); - fprintf(stderr, OPTFMT, "-P size", - "Mini-progressbar size. Must be a number greater than 3."); - fprintf(stderr, OPTFMT, "-p text", - "Prefix text. Displayed above file progress indicators."); - fprintf(stderr, OPTFMT, "-T", - "Test mode. Don't actually read any data, but fake it."); - fprintf(stderr, OPTFMT, "-t title", - "Title string to be displayed at top of dialog(1) box."); - fprintf(stderr, OPTFMT, "-U num", - "Update status line num times per-second. Default is 2."); - fprintf(stderr, OPTFMT, "-w", - "Wide. Width of `-p' and `-a' text bump dialog(1) width."); - fprintf(stderr, OPTFMT, "-X", - "X11. Use Xdialog(1) instead of dialog(1)."); - fprintf(stderr, OPTFMT, "-x cmd", - "Send data to executed cmd. First %s replaced with label."); - exit(EXIT_FAILURE); -} diff --git a/usr.bin/dpv/dpv_util.h b/usr.bin/dpv/dpv_util.h deleted file mode 100644 index 98f7a55ced67..000000000000 --- a/usr.bin/dpv/dpv_util.h +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * Copyright (c) 2013-2014 Devin Teske <dteske@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _DPV_UTIL_H_ -#define _DPV_UTIL_H_ - -/* Limits */ -#define BUFSIZE_MAX (2 * 1024 * 1024) - /* Buffer size for read(2) input */ -#ifndef MAXPHYS -#define MAXPHYS (128 * 1024) - /* max raw I/O transfer size */ -#endif - -/* - * Memory strategry threshold, in pages: if physmem is larger than this, - * use a large buffer. - */ -#define PHYSPAGES_THRESHOLD (32 * 1024) - -/* - * Small (default) buffer size in bytes. It's inefficient for this to be - * smaller than MAXPHYS. - */ -#define BUFSIZE_SMALL (MAXPHYS) - -/* - * Math macros - */ -#undef MIN -#define MIN(x,y) ((x) < (y) ? (x) : (y)) -#undef MAX -#define MAX(x,y) ((x) > (y) ? (x) : (y)) - -/* - * Extra display information - */ -#define BYTE_STATUS_SOLO "%'10lli bytes read @ %'9.1f bytes/sec." -#define BYTE_STATUS_MANY (BYTE_STATUS_SOLO " [%i/%i busy/wait]") -#define LINE_STATUS_SOLO "%'10lli lines read @ %'9.1f lines/sec." -#define LINE_STATUS_MANY (LINE_STATUS_SOLO " [%i/%i busy/wait]") - -#endif /* !_DPV_UTIL_H_ */