Update dialog to version 1.1-20110302.

This commit is contained in:
Nathan Whitehorn 2011-04-17 17:28:17 +00:00
commit 7a1c0d9633
99 changed files with 5178 additions and 2866 deletions

View File

@ -1,9 +1,77 @@
-- $Id: CHANGES,v 1.300 2010/04/28 21:27:22 tom Exp $
-- $Id: CHANGES,v 1.333 2011/03/02 10:06:37 tom Exp $
-- Thomas E. Dickey <dickey@invisible-island.net>
This version of dialog was originally from a Debian snapshot. I've done this
to it:
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.
+ updated config.guess, config.sub
2010/04/28
+ several improvements to configure script:
+ modify CF_CURSES_TERM_H to handle cases such as cygwin where
@ -278,7 +346,7 @@ to it:
+ 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):
+ 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,
@ -407,7 +475,7 @@ to it:
+ 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.
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).

View File

@ -1 +1 @@
7:1:0 1.1 20100428
9:0:0 1.1 20110302

File diff suppressed because it is too large Load Diff

128
contrib/dialog/argv.c Normal file
View File

@ -0,0 +1,128 @@
/*
* $Id: argv.c,v 1.1 2011/03/02 09:56:39 tom Exp $
*
* argv - Reusable functions for argv-parsing.
*
* Copyright 2011 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;
int pass;
size_t length = strlen(blob);
char **result = 0;
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 (blob[n] == '\\') {
if (quoted && !isspace(UCH(blob[n + 1]))) {
if (!inparm) {
if (pass)
result[count] = param;
++count;
inparm = TRUE;
}
if (pass) {
*param++ = blob[n];
*param++ = blob[n + 1];
}
}
++n;
} else if (!quoted && isspace(UCH(blob[n]))) {
inparm = FALSE;
if (pass) {
*param++ = '\0';
}
} else {
if (!inparm) {
if (pass)
result[count] = param;
++count;
inparm = TRUE;
}
if (pass) {
*param++ = blob[n];
}
}
}
if (!pass) {
if (count) {
result = dlg_calloc(char *, count + 1);
assert_ptr(result, "string_to_argv");
} else {
break; /* no tokens found */
}
} else {
*param = '\0';
}
}
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;
}

View File

@ -1,9 +1,9 @@
/*
* $Id: arrows.c,v 1.29 2010/02/24 09:17:00 Samuel.Martin.Moro Exp $
* $Id: arrows.c,v 1.33 2011/01/19 00:27:53 tom Exp $
*
* arrows.c -- draw arrows to indicate end-of-range for lists
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -24,6 +24,13 @@
#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))
@ -62,7 +69,7 @@ dlg_draw_arrows2(WINDOW *win,
chtype attr,
chtype borderattr)
{
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int cur_x, cur_y;
int limit_x = getmaxx(win);
bool draw_top = TRUE;
@ -127,7 +134,7 @@ dlg_draw_scrollbar(WINDOW *win,
int len;
int oldy, oldx, maxy, maxx;
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int top_arrow = (first_data != 0);
int bottom_arrow = (next_data < total_data);
@ -154,7 +161,7 @@ dlg_draw_scrollbar(WINDOW *win,
whline(win, dlg_boxchar(ACS_HLINE), 4 - len);
}
}
#define BARSIZE(num) ((all_high * (num)) + all_high - 1) / total_data
#define BARSIZE(num) (int) (((all_high * (num)) + all_high - 1) / total_data)
if (dialog_state.use_scrollbar) {
int all_high = (bottom - top - 1);

View File

@ -1,9 +1,9 @@
/*
* $Id: buttons.c,v 1.81 2010/04/28 20:57:29 tom Exp $
* $Id: buttons.c,v 1.84 2011/01/19 00:27:53 tom Exp $
*
* buttons.c -- draw buttons, e.g., OK/Cancel
* buttons.c -- draw buttons, e.g., OK/Cancel
*
* Copyright 2000-2007,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -252,7 +252,7 @@ dlg_draw_buttons(WINDOW *win,
int vertical,
int limit)
{
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int n;
int step = 0;
int length;
@ -465,16 +465,7 @@ dlg_exit_label(void)
int
dlg_exit_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 && dialog_vars.help_button) {
result = DLG_EXIT_HELP;
}
return result;
return dlg_ok_buttoncode(button);
}
const char **

View File

@ -1,9 +1,9 @@
/*
* $Id: calendar.c,v 1.59 2010/01/18 09:50:44 tom Exp $
* $Id: calendar.c,v 1.60 2011/01/03 23:29:51 tom Exp $
*
* calendar.c -- implements the calendar box
*
* Copyright 2001-2009,2010 Thomas E. Dickey
* Copyright 2001-2010,2011 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
@ -661,10 +661,10 @@ dialog_calendar(const char *title,
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,
&current);
size_t used = strftime(buffer,
sizeof(buffer) - 1,
dialog_vars.date_format,
&current);
if (used == 0 || *buffer == '\0')
DefaultFormat(buffer, current);
} else

View File

@ -1,9 +1,9 @@
/*
* $Id: checklist.c,v 1.121 2010/01/17 19:32:17 tom Exp $
* $Id: checklist.c,v 1.124 2011/01/19 00:27:53 tom Exp $
*
* checklist.c -- implements the checklist box
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -50,10 +50,10 @@ print_arrows(WINDOW *win,
int list_height)
{
dlg_draw_scrollbar(win,
scrollamt,
scrollamt,
scrollamt + choice,
item_no,
(long) (scrollamt),
(long) (scrollamt),
(long) (scrollamt + choice),
(long) (item_no),
box_x + check_x,
box_x + list_width,
box_y,
@ -73,7 +73,7 @@ print_item(WINDOW *win,
int choice,
int selected)
{
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int i;
chtype attr = A_NORMAL;
const int *cols;
@ -643,7 +643,7 @@ dialog_checklist(const char *title,
: dlg_strempty());
listitems[i].state = !dlg_strcmp(ItemStatus(i), "on");
}
dlg_align_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no);
dlg_align_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
result = dlg_checklist(title,
cprompt,
@ -706,7 +706,7 @@ dialog_checklist(const char *title,
}
}
dlg_free_columns(&listitems[0].text, sizeof(DIALOG_LISTITEM), item_no);
dlg_free_columns(&listitems[0].text, (int) sizeof(DIALOG_LISTITEM), item_no);
free(listitems);
return result;
}

View File

@ -1,9 +1,9 @@
/*
* $Id: columns.c,v 1.5 2010/01/18 10:26:36 tom Exp $
* $Id: columns.c,v 1.7 2011/01/16 21:51:44 tom Exp $
*
* columns.c -- implements column-alignment
*
* Copyright 2008,2010 Thomas E. Dickey
* Copyright 2008-2010,2011 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
@ -79,7 +79,7 @@ split_row(char *source, unsigned *offsets, unsigned *widths)
++result;
} while ((next = next_col(source, offset)) != 0);
offset = strlen(source);
offset = (unsigned) strlen(source);
widths[result - 1] = offset - offsets[result - 1];
return result;
@ -98,7 +98,7 @@ dlg_align_columns(char **target, int per_row, int num_rows)
if (column_separator()) {
char **value;
unsigned numcols = 1;
unsigned maxcols = 0;
size_t maxcols = 0;
unsigned *widths;
unsigned *offsets;
unsigned *maxwidth;
@ -107,7 +107,7 @@ dlg_align_columns(char **target, int per_row, int num_rows)
/* first allocate arrays for workspace */
for (each(row, value)) {
unsigned len = strlen(*value);
size_t len = strlen(*value);
if (maxcols < len)
maxcols = len;
}
@ -143,9 +143,9 @@ dlg_align_columns(char **target, int per_row, int num_rows)
assert_ptr(text, "dlg_align_columns");
memset(text, ' ', realwidth);
memset(text, ' ', (size_t) realwidth);
for (n = 0; n < cols; ++n) {
memcpy(text + offset, *value + offsets[n], widths[n]);
memcpy(text + offset, *value + offsets[n], (size_t) widths[n]);
offset += maxwidth[n] + 1;
}
*value = text;

View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
timestamp='2009-12-30'
timestamp='2010-09-24'
# 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
@ -92,7 +92,7 @@ if test $# != 0; then
exit 1
fi
trap 'exit 1' 1 2 15
trap 'exit 1' HUP INT TERM
# 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
@ -106,7 +106,7 @@ trap 'exit 1' 1 2 15
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
: ${TMPDIR=/tmp} ;
{ 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) ; } ||
@ -181,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
os=netbsd
os=netbsd
;;
esac
# The OS release
@ -220,11 +220,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@ -296,7 +296,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
@ -326,8 +326,8 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
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 ;;
@ -395,23 +395,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# 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}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@ -481,8 +481,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@ -552,7 +552,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[456])
*: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
@ -595,8 +595,8 @@ EOF
9000/[678][0-9][0-9])
if [ -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
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
@ -731,22 +731,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@ -770,14 +770,14 @@ EOF
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 ;;
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}"
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}
@ -805,14 +805,14 @@ EOF
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
@ -820,8 +820,8 @@ EOF
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
@ -860,22 +860,22 @@ EOF
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` 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
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="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \
grep -q __ARM_EABI__
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
@ -892,12 +892,12 @@ EOF
echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
echo frv-unknown-linux-gnu
echo frv-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
@ -934,14 +934,14 @@ EOF
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
echo or32-unknown-linux-gnu
exit ;;
echo or32-unknown-linux-gnu
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit ;;
echo hppa64-unknown-linux-gnu
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@ -960,7 +960,7 @@ EOF
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@ -968,6 +968,9 @@ EOF
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-tilera-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
@ -975,7 +978,7 @@ EOF
echo x86_64-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@ -984,11 +987,11 @@ EOF
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,
# 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.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@ -1020,7 +1023,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@ -1048,13 +1051,13 @@ EOF
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.
# 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 configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@ -1089,8 +1092,8 @@ EOF
/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; } ;;
/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 \
@ -1134,9 +1137,9 @@ EOF
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 ;;
# 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
@ -1166,7 +1169,7 @@ EOF
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@ -1209,12 +1212,12 @@ EOF
i386)
eval $set_cc_for_build
if [ "$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
UNAME_PROCESSOR="x86_64"
fi
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
UNAME_PROCESSOR="x86_64"
fi
fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
@ -1223,14 +1226,17 @@ EOF
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
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 ;;
@ -1276,13 +1282,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
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`
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;

View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
timestamp='2009-12-31'
timestamp='2010-09-11'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@ -124,8 +124,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
@ -157,8 +158,8 @@ case $os in
os=
basic_machine=$1
;;
-bluegene*)
os=-cnk
-bluegene*)
os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
@ -282,6 +283,7 @@ case $basic_machine in
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be\
| nios | nios2 \
| ns16k | ns32k \
| or32 \
@ -295,7 +297,7 @@ case $basic_machine in
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e \
| we32k \
@ -303,6 +305,15 @@ case $basic_machine in
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
@ -318,8 +329,8 @@ case $basic_machine in
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
@ -334,7 +345,7 @@ case $basic_machine in
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
@ -368,6 +379,7 @@ case $basic_machine in
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
@ -381,7 +393,8 @@ case $basic_machine in
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile-* | tilegx-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | vax-* \
@ -411,7 +424,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
abacus)
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@ -481,11 +494,20 @@ case $basic_machine in
basic_machine=powerpc-ibm
os=-cnk
;;
c54x-*)
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c55x-*)
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c6x-*)
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
cegcc)
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
@ -733,7 +755,7 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
microblaze)
microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
@ -840,6 +862,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@ -1074,17 +1102,10 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
# This must be matched before tile*.
tilegx*)
basic_machine=tilegx-unknown
os=-linux-gnu
;;
tile*)
basic_machine=tile-unknown
@ -1254,11 +1275,11 @@ esac
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# 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
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@ -1295,7 +1316,8 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -mingw32* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@ -1342,7 +1364,7 @@ case $os in
-opened*)
os=-openedition
;;
-os400*)
-os400*)
os=-os400
;;
-wince*)
@ -1391,7 +1413,7 @@ case $os in
-sinix*)
os=-sysv4
;;
-tpf*)
-tpf*)
os=-tpf
;;
-triton*)
@ -1436,8 +1458,8 @@ case $os in
-dicos*)
os=-dicos
;;
-nacl*)
;;
-nacl*)
;;
-none)
;;
*)
@ -1460,10 +1482,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
score-*)
os=-elf
;;
spu-*)
spu-*)
os=-elf
;;
*-acorn)
@ -1475,8 +1497,17 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
c4x-* | tic4x-*)
os=-coff
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
@ -1503,7 +1534,7 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
mep-*)
mep-*)
os=-elf
;;
mips*-cisco)
@ -1530,7 +1561,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
*-knuth)
*-knuth)
os=-mmixware
;;
*-wec)

3249
contrib/dialog/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,36 @@
dnl $Id: configure.in,v 1.57 2010/04/28 20:33:01 tom Exp $
dnl $Id: configure.in,v 1.64 2011/03/01 00:59:50 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl ---------------------------------------------------------------------------
dnl Copyright 1999-2010,2011 -- 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.13.20020210)
AC_INIT(dialog.h)
AC_CONFIG_HEADER(dlg_config.h:config.hin)
CF_VERSION_INFO(dialog)
AC_ARG_PROGRAM
DESTDIR=
@ -38,6 +63,24 @@ CF_LARGEFILE
CF_WITH_WARNINGS
dnl
dnl Allow dialog program and library to be renamed.
AC_ARG_WITH(package,
[ --with-package=XXX rename dialog to XXX, library to libXXX.a, etc],
[PACKAGE=$withval],
[PACKAGE=dialog])
CF_VERSION_INFO(dialog,$PACKAGE)
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_ARG_ENABLE(header-subdir,
[ --enable-header-subdir install dlg_XXX headers to subdirectory],
[SUB_INC=$enableval],
[SUB_INC=no])
AC_SUBST(SUB_INC)
dnl
dnl Checks for libraries.
dnl
@ -62,6 +105,8 @@ if test "$with_libtool" = "yes" ; then
fi
AC_SUBST(LIBTOOL_MAKE)
CF_WITH_CURSES_DIR
use_ncurses=no
AC_ARG_WITH(ncurses,
[ --with-ncurses compile/link with ncurses library],
@ -107,7 +152,7 @@ CF_ARG_MSG_ENABLE([if you want the form dialog],
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 progressbox\$o"
[EXTRAOBJS="$EXTRAOBJS guage\$o pause\$o prgbox\$o progressbox\$o"
AC_DEFINE(HAVE_DLG_GAUGE)],,$cf_all_widgets)
CF_ARG_MSG_ENABLE([if you want the tailbox dialog],
@ -150,14 +195,24 @@ dnl
AC_TYPE_SIGNAL
AC_CHECK_FUNCS(\
_nc_free_and_exit \
btowc \
mblen \
mbrlen \
mbrtowc \
mbtowc \
strcasecmp \
strftime \
tsearch \
waitpid \
wcsrtombs \
wcstombs \
wctob \
wctomb \
)
CF_CURSES_FUNCS(\
flushinp \
getattrs \
getbegx \
getbegy \
getbegyx \
@ -175,6 +230,7 @@ wget_wch \
AC_CHECK_FUNC(start_color,[AC_DEFINE(HAVE_COLOR)])
CF_CURSES_CHTYPE
CF_CURSES_WACS_SYMBOLS
CF_FUNC_WAIT
CF_MBSTATE_T

View File

@ -1,7 +1,7 @@
#!@SHELL@
# $Id: dialog-config.in,v 1.3 2007/02/25 19:33:58 tom Exp $
# $Id: dialog-config.in,v 1.5 2011/01/06 09:38:03 tom Exp $
##############################################################################
# Copyright (c) 2007 Thomas E. Dickey #
# Copyright (c) 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"), #
@ -36,7 +36,7 @@ libdir="@libdir@"
datadir="@datadir@"
mandir="@mandir@"
THIS="dialog"
THIS="@PACKAGE@"
test $# = 0 && exec @SHELL@ $0 --error

View File

@ -1,6 +1,6 @@
'\" t
.\" $Id: dialog.1,v 1.120 2010/01/18 10:19:07 tom Exp $
.\" Copyright 2005-2008,2010 Thomas E. Dickey
.\" $Id: dialog.1,v 1.126 2011/03/02 01:24:21 tom Exp $
.\" Copyright 2005-2010,2011 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
@ -16,6 +16,13 @@
.\" 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
@ -29,25 +36,25 @@
.RE
..
.
.TH DIALOG 1 "" "$Date: 2010/01/18 10:19:07 $"
.TH \*D 1 "" "$Date: 2011/03/02 01:24:21 $"
.SH NAME
dialog \- display dialog boxes from shell scripts
\*p \- display dialog boxes from shell scripts
.SH SYNOPSIS
\fBdialog --clear\fP
\fB\*p --clear\fP
.br
.BI "dialog --create-rc " file
.BI "\*p --create-rc " file
.br
\fBdialog --print-maxsize\fP
\fB\*p --print-maxsize\fP
.br
\fBdialog\fP
\fB\*p\fP
\fIcommon-options\fP
\fIbox-options\fP
.SH DESCRIPTION
\fBDialog\fP
\fB\*L\fP
is a program that will let you to 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 \fBdialog\fR):
(though not all are necessarily compiled into \fB\*p\fR):
.RS
.LP
.nh
@ -69,6 +76,8 @@ These types of dialog boxes are implemented
.BR passwordbox ", "
.BR passwordform ", "
.BR pause ", "
.BR prgbox ", "
.BR programbox ", "
.BR progressbox ", "
.BR radiolist ", "
.BR tailbox ", "
@ -83,19 +92,19 @@ These types of dialog boxes are implemented
You can put more than one dialog box into a script:
.TP 5
-
Use the "\fB--and-widget\fP" token to force Dialog to proceed to the next
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
.TP 5
-
Simply add the tokens for the next dialog box, making a chain.
Dialog stops chaining when the return code from a dialog is nonzero,
\*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 \fBdialog\fP's output.
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;
\fBdialog\fP exits immediately in that case.
\fB\*p\fP exits immediately in that case.
.
.\" ************************************************************************
.SH OPTIONS
@ -106,26 +115,26 @@ for the benefit of those using systems with deranged locale support).
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 dialog --title -- --Not an option
.B \*p --title -- --Not an option
.RE
.PP
The "\fB--args\fP" option tells \fBdialog\fP to list the command-line
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 \fBdialog\fP to read parameters from
The "\fB--file\fP" option tells \fB\*p\fP to read parameters from
the file named as its value.
.RS
.B dialog --file \fIparameterfile
.B \*p --file \fIparameterfile
.RE
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 "&", \fBdialog\fP
If \fIparameterfile\fP begins with "&", \fB\*p\fP
interprets the following text as a file descriptor number
rather than a filename.
.
@ -164,7 +173,8 @@ To compare the effects, use these:
.ES
All three widgets visible, staircase effect, ordered 1,2,3:
.EX
dialog --begin 2 2 --yesno "" 0 0 \\
\*p \
--begin 2 2 --yesno "" 0 0 \\
--and-widget --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0
.EE
@ -172,7 +182,8 @@ dialog --begin 2 2 --yesno "" 0 0 \\
.ES
Only the last widget is left visible:
.EX
dialog --clear --begin 2 2 --yesno "" 0 0 \\
\*p \
--clear --begin 2 2 --yesno "" 0 0 \\
--and-widget --clear --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0
.EE
@ -180,7 +191,8 @@ dialog --clear --begin 2 2 --yesno "" 0 0 \\
.ES
All three widgets visible, staircase effect, ordered 3,2,1:
.EX
dialog --keep-window --begin 2 2 --yesno "" 0 0 \\
\*p \
--keep-window --begin 2 2 --yesno "" 0 0 \\
--and-widget --keep-window --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0
.EE
@ -188,7 +200,8 @@ dialog --keep-window --begin 2 2 --yesno "" 0 0 \\
.ES
First and third widget visible, staircase effect, ordered 3,1:
.EX
dialog --keep-window --begin 2 2 --yesno "" 0 0 \\
\*p \
--keep-window --begin 2 2 --yesno "" 0 0 \\
--and-widget --clear --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0
.EE
@ -200,7 +213,7 @@ command.
.IP "\fB--colors"
Interpret embedded "\\Z" sequences in the dialog text
by the following character,
which tells \fBdialog\fP to set colors or video attributes:
which tells \fB\*p\fP to set colors or video attributes:
0 through 7 are the ANSI used in curses:
black,
red,
@ -218,14 +231,14 @@ bold (perhaps bright) red.
Restore normal settings with "\\Zn".
.
.IP "\fB--column-separator \fIstring"
Tell \fBdialog\fP to split data for radio/checkboxes and menus on the
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, \fBdialog\fR will only wrap lines where needed to fit inside the text box.
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,
\fBdialog\fR will still wrap any lines that are too long for the width of the box.
\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.
@ -234,7 +247,7 @@ See also the "\fB--no-collapse\fP" and "\fB--trim\fP" options.
.
.IP "\fB--create-rc \fIfile"
When
\fBdialog\fP
\fB\*p\fP
supports run-time configuration,
this can be used to dump a sample configuration file to the file specified
by
@ -272,7 +285,7 @@ Override the label used for "Extra" buttons.
Note: for inputmenu widgets, this defaults to "Rename".
.
.IP "\fB--help"
Prints the help message to \fBdialog\fP's output.
Prints the help message to \fB\*p\fP's output.
The help message is printed if no options are given.
.
.IP "\fB--help-button"
@ -280,7 +293,7 @@ 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 \fBdialog\fP's output after the token "HELP".
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.
.
@ -295,16 +308,16 @@ This can be used to reconstruct the state of a checklist after processing
the help request.
.
.IP "\fB--ignore"
Ignore options that \fBdialog\fP does not recognize.
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 \fBdialog\fR scripts read from the standard input,
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
\fBdialog\fP tries to reopen the terminal.
\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.
.
@ -318,21 +331,21 @@ adding a column which is displayed in the bottom line of the
screen, for the currently selected item.
.
.IP "\fB--keep-tite"
Normally \fBdialog\fP checks to see if it is running in an \fBxterm\fP,
Normally \fB\*p\fP 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 \fBdialog\fP
is visually distracting in a script which runs \fB\*p\fP
several times.
Use this option to allow \fBdialog\fP to use those initialization strings.
Use this option to allow \fB\*p\fP to use those initialization strings.
.
.IP "\fB--keep-window"
Normally when \fBdialog\fR performs several \fBtailboxbg\fR widgets
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, \fBdialog\fR repaints all of the widgets which have been
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.
@ -347,19 +360,19 @@ 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 \fBdialog\fR converts tabs to spaces and reduces multiple
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 \fBdialog\fR will still wrap text,
Note that \fB\*p\fR will still wrap text,
subject to the "\fB--cr-wrap\fR" and "\fB--trim\fR" options.
.
.IP "\fB--no-kill"
Tells
\fBdialog\fP
\fB\*p\fP
to put the
\fBtailboxbg\fP
box in the background,
printing its process id to \fBdialog\fP's output.
printing its process id to \fB\*p\fP's output.
SIGHUP is disabled for the background process.
.
.IP "\fB--no-label \fIstring"
@ -369,6 +382,9 @@ Override the label used for "No" buttons.
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-ok"
.IP "\fB--nook"
Suppress the "OK" button in checklist, inputbox and menu box modes.
@ -383,26 +399,26 @@ Override the label used for "OK" buttons.
.
.IP "\fB--output-fd \fIfd"
Direct output to the given file descriptor.
Most \fBdialog\fR scripts write to the standard error,
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 \fBdialog\fP's output from
Specify a string that will separate the output on \fB\*p\fP's output from
checklists, rather than a newline (for --separate-output) 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 \fBdialog\fP's output.
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 \fBdialog\fP's output.
Prints the size of each dialog box to \fB\*p\fP's output.
.
.IP "\fB--print-version"
Prints \fBdialog\fR's version to \fBdialog\fP's output.
Prints \fB\*p\fR's version to \fB\*p\fP's output.
This may be used alone, without other options.
.
.IP "\fB--scrollbar \fIstring"
@ -415,7 +431,7 @@ For checklist widgets, 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 \fBdialog\fP's output from
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,
@ -427,7 +443,7 @@ Draw a shadow to the right and bottom of each dialog box.
.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.
If this option is not set, \fBdialog\fP uses double quotes around each item.
If this option is not set, \fB\*p\fP uses double quotes around each item.
That requires occasional use of backslashes to make the output useful in
shell scripts.
.
@ -449,7 +465,7 @@ 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, \fBdialog\fR attempts to reopen the terminal
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.
.
@ -482,7 +498,9 @@ Specifies a
string to be displayed at the top of the dialog box.
.
.IP "\fB--trace \fIfilename"
logs keystrokes to the given file.
logs the command-line parameters and
keystrokes to the given file.
If \fBdialog\fP reads a configure file, it is logged as well.
Use control/T to log a picture of the current dialog window.
.
.IP "\fB--trim"
@ -556,7 +574,7 @@ The initial on/off state of each entry is specified by
.IP
On exit, a list of the \fItag\fP
strings of those entries that are turned on
will be printed on \fBdialog\fP's output.
will be printed on \fB\*p\fP's output.
If the "\fB--separate-output\fP" option is not given,
the strings will be quoted to make it simple for scripts to separate them.
See the "\fB--single-quoted\fP" option, which modifies the quoting behavior.
@ -585,7 +603,7 @@ window to the closest match.
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 \fBdialog\fP's output.
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.
@ -597,7 +615,7 @@ 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 \fBdialog\fP's output.
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..."
@ -626,7 +644,7 @@ If \fIilen\fR is zero, it is set to \fIflen\fR.
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 \fBdialog\fP's output,
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)
@ -654,14 +672,14 @@ 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 \fBdialog\fP to complete the current
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 \fBdialog\fP's output.
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"
@ -681,22 +699,22 @@ The gauge exits when EOF is reached on the standard input.
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 \fBdialog\fP's output.
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, \fBdialog\fP
However, in this case, \fB\*p\fP
will exit immediately after displaying the message to the user.
The screen is not cleared when \fBdialog\fP
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 \fBdialog\fP's output.
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.
.
@ -714,7 +732,7 @@ 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 \fBdialog\fP's output.
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..."
@ -733,7 +751,7 @@ the current item when it is pressed.
It is possible to rename the current entry by pressing the
\fIRename\fP
button.
Then \fBdialog\fP will write the following on \fBdialog\fP's output.
Then \fB\*p\fP will write the following on \fB\*p\fP's output.
.IP
RENAMED <tag> <item>
.RE
@ -759,7 +777,7 @@ 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 \fBdialog\fP's output.
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.
.
@ -787,7 +805,7 @@ 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 dialog(3) for the tag values.
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.
@ -795,7 +813,7 @@ The \fIpercent\fR value denotes the initial percentage shown in the meter.
No provision is made for reading data from the standard input as \fB--gauge\fP
does.
.IP
On exit, no text is written to \fBdialog\fP's output.
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"
@ -804,14 +822,14 @@ 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
\fBdialog\fP will exit and the calling shell script can continue its operation.
\fB\*p\fP will exit and the calling shell script can continue its operation.
.IP
If the message is too large for the space,
\fBdialog\fP may allow you to scroll it,
\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 \fBdialog\fP's output.
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.
.
@ -838,7 +856,7 @@ 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 \fBdialog\fP's output.
On exit, the input string will be printed on \fB\*p\fP's output.
.
.
.nf
@ -848,6 +866,36 @@ 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
\fBdialog\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--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.
.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
\fBdialog\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,
@ -867,7 +915,7 @@ The only difference is
that you can indicate which entry is currently selected, by setting its
.IR status " to " on "."
.IP
On exit, the name of the selected item is written to \fBdialog\fP's output.
On exit, the name of the selected item is written to \fB\*p\fP's output.
.
.
.IP "\fB--tailbox \fIfile height width"
@ -875,7 +923,7 @@ 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 \fBdialog\fP's output.
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.
.
@ -886,23 +934,23 @@ as in a "tail -f &" command.
Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
A '0' resets the scrolling.
.IP
Dialog treats the background task specially if there are other
\*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"),
\fBdialog\fP will perform all of the tailboxbg widgets in the same process,
\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, \fBdialog\fP forks a copy of itself
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 \fBdialog\fP's output.
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 \fBdialog\fP forked immediately and attempted to
Older versions of \fB\*p\fP forked immediately and attempted to
update the screen individually.
Besides being bad for performance,
it was unworkable.
@ -928,7 +976,7 @@ 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 \fBdialog\fP's output.
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.
.
@ -971,7 +1019,7 @@ button and a
button, in which the user can switch between by pressing the
.IR TAB " key."
.IP
On exit, no text is written to \fBdialog\fP's output.
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
@ -996,11 +1044,11 @@ Beep after a user has completed a widget by pressing one of the buttons.
Create a sample configuration file by typing:
.LP
.in +1i
"dialog --create-rc <file>"
"\*p --create-rc <file>"
.TP 4
2.
At start,
\fBdialog\fP
\fB\*p\fP
determines the settings to use as follows:
.RS
.TP 4
@ -1024,14 +1072,14 @@ if the file in (c) is not found, use compiled in defaults.
.TP 4
3.
Edit the sample configuration file and copy it to some place that
\fBdialog\fP
\fB\*p\fP
can find, as stated in step 2 above.
.
.\" ************************************************************************
.SH "KEY BINDINGS"
You can override or add to key bindings in \fBdialog\fP
You can override or add to key bindings in \fB\*p\fP
by adding to the configuration file.
\fBDialog\fP's \fBbindkey\fP command maps single keys to its internal coding.
\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
@ -1042,11 +1090,11 @@ User-defined bindings override the built-in bindings.
.PP
The \fIcurses_key\fP can be any of the names derived from
\fBcurses.h\fP, e.g., "HELP" from "KEY_HELP".
\fBDialog\fP also recognizes ANSI control characters such as "^A", "^?",
\fB\*L\fP also recognizes ANSI control characters such as "^A", "^?",
as well as C1-controls such as "~A" and "~?".
Finally, it allows any single character to be escaped with a backslash.
.PP
\fBDialog\fP's internal keycode names correspond to the
\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".
.
@ -1057,7 +1105,7 @@ Finally, it allows any single character to be escaped with a backslash.
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 \fBdialog\fP's state after the reset.
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
@ -1093,14 +1141,14 @@ 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 \fBdialog\fP which assumed that if the script redirects the standard output,
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 \fBdialog\fP sources contain several samples
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
@ -1109,7 +1157,7 @@ Normally they are:
.TP 5
0
if
.BR dialog " is exited by pressing the " Yes " or " OK
.BR \*p " is exited by pressing the " Yes " or " OK
button.
.TP 5
1
@ -1132,24 +1180,24 @@ if the
button is pressed.
.TP 5
-1
if errors occur inside \fBdialog\fP
or \fBdialog\fP is exited by pressing the \fIESC\fP key.
if errors occur inside \fB\*p\fP
or \fB\*p\fP is exited by pressing the \fIESC\fP key.
.
.\" ************************************************************************
.SH PORTABILITY
\fBdialog\fP works with X/Open curses.
\fB\*L\fP works with X/Open curses.
However, some implementations have deficiencies:
.RS 3
.TP 3
-
HPUX curses (and perhaps others) do not open the terminal properly for
the \fInewterm\fP function.
This interferes with \fBdialog\fP's \fB--input-fd\fP option,
This interferes with \fB\*p\fP's \fB--input-fd\fP option,
by preventing cursor-keys and similar escape sequences from being recognized.
.TP 3
-
NetBSD curses does not support subwindows of subwindows.
\fBdialog\fP will not display shadows of windows.
NetBSD 5.1 curses has incomplete support for wide-characters.
\fB\*p\fP will build, but not all examples display properly.
.RE
.\" ************************************************************************
.SH COMPATIBILITY
@ -1158,7 +1206,7 @@ You may want to write scripts which run with other \fBdialog\fP "clones".
First, there is the "original" \fBdialog\fP program to consider (versions
0.3 to 0.9).
It had some misspelled (or inconsistent) options.
The \fBdialog\fP program maps those deprecated options to the preferred ones.
The \fB\*p\fP program maps those deprecated options to the preferred ones.
They include:
.RS
.TS
@ -1176,7 +1224,7 @@ this is an X application.
With some care, it is possible to write useful scripts that work
with both \fBXdialog\fP and \fBdialog\fP.
.PP
The \fBdialog\fP program ignores these options which are recognized
The \fB\*p\fP program ignores these options which are recognized
by \fBXdialog\fP:
.RS
.TS
@ -1199,7 +1247,7 @@ l l.
.TE
.RE
.PP
\fBXdialog\fP's manpage has a section discussing its compatibility with \fBdialog\fP.
\fBXdialog\fP's manpage has a section discussing its compatibility with \fB\*p\fP.
.SS WHIPTAIL
Then there is \fBwhiptail\fP.
For practical purposes, it is maintained by Debian.
@ -1207,13 +1255,13 @@ Its documentation claims
.RS
.sp
.nf
whiptail(1) is a lightweight replacement for dialog(1),
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 enviroments such as installers,
rescue disks, etc.
.sp
whiptail is designed to be drop-in compatible with dialog, but
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.
.fi
@ -1221,31 +1269,31 @@ as tailbox, timebox, calendarbox, etc.
.PP
Comparing actual sizes (Debian testing, 2007/1/10):
The total of sizes for \fBwhiptail\fP, the newt, popt and slang libraries is 757kb.
The comparable number for \fBdialog\fP (counting ncurses) is 520kb.
The comparable number for \fB\*p\fP (counting ncurses) is 520kb.
Disregard the first paragraph.
.PP
The second paragraph is misleading, since \fBwhiptail\fP
also does not work for common options of dialog, such as the gauge box.
\fBwhiptail\fP is less compatible with \fBdialog\fP than the decade-old
also does not work for common options of \*p, such as the gauge box.
\fBwhiptail\fP is less compatible with \fB\*p\fP than the decade-old
original dialog 0.4 program.
.PP
\fBwhiptail\fP's manpage borrows features from \fBdialog\fP, e.g.,
\fBwhiptail\fP's manpage borrows features from \fB\*p\fP, e.g.,
\fB--default-item\fP, \fB--output-fd\fP,
but oddly cites only \fBdialog\fP versions up to 0.4 as a source.
but oddly cites only \fB\*p\fP versions up to 0.4 as a source.
That is, its manpage refers to features which
were borrowed from more recent versions of \fBdialog\fP, e.g.,
were borrowed from more recent versions of \fB\*p\fP, e.g.,
the \fB--gauge\fP and \fB--password\fP boxes,
as well as options such as \fB-separate-output\fP.
Somewhat humorously, one may note that the \fBpopt\fP feature
(undocumented in its manpage)
of using a "--" as an escape was documented in \fBdialog\fP's manpage about
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 \fBdialog\fP variation.
Debian uses \fBwhiptail\fP for the official \fB\*p\fP variation.
.PP
The \fBdialog\fP program ignores or maps these options which are recognized
The \fB\*p\fP program ignores or maps these options which are recognized
by \fBwhiptail\fP:
.RS
.TS
@ -1275,7 +1323,7 @@ Valery Reznic - the form and progressbox widgets.
Yura Kalinichenko adapted the gauge widget as "pause".
.PP
This is a rewrite (except as needed to provide compatibility)
of the earlier version of \fBdialog 0.9a\fP,
of the earlier version of \fB\*p 0.9a\fP,
which lists as authors:
.RS
.LP

View File

@ -1,5 +1,5 @@
.\" $Id: dialog.3,v 1.49 2010/02/23 10:33:59 tom Exp $
.\" Copyright 2005-2009,2010 Thomas E. Dickey
.\" $Id: dialog.3,v 1.60 2011/03/02 10:19:12 tom Exp $
.\" Copyright 2005-2010,2011 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
@ -15,24 +15,38 @@
.\" Free Software Foundation, Inc.
.\" 51 Franklin St., Fifth Floor
.\" Boston, MA 02110, USA.
.TH DIALOG 3 "" "$Date: 2010/02/23 10:33:59 $"
.\"
.\" definitions for renaming
.ds p dialog
.ds l dialog
.ds L Dialog
.ds D DIALOG
.\" Bulleted paragraph
.de bP
.IP \(bu 4
..
.TH \*D 3 "" "$Date: 2011/03/02 10:19:12 $"
.SH NAME
dialog \- widgets and utilities for the dialog program
\*l \- widgets and utilities for the \*p program
.SH SYNOPSIS
.B cc [ flag ... ] file ... -ldialog [ library ... ]
.B #include <dialog.h>
.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
\fBDialog\fP
\fB\*L\fP
is a program that will let you to present a variety of questions or
display messages using dialog boxes from a shell script.
It is built from the \fBdialog\fP library,
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<dialog.h>\fP which
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.
.
@ -41,7 +55,7 @@ Some hints are also given for developing new widgets.
Exit codes (passed back to the main program for its use)
are defined with a "\fIDLG_EXIT_\fP prefix.
The defined constants can be mapped using environment variables
as described in \fBdialog\fP(1),
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
@ -50,11 +64,11 @@ are named with the "\fICHR_\fP" prefix, e.g.,
.PP
Colors and video attributes are categorized and associated with
settings in the configuration file
(see the discussion of \fI$DIALOGRC\fP in \fBdialog\fP(1)).
(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 \fIdlg_color_table[]\fP.
.PP
The \fBdialog\fP application passes its command-line parameters
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.
@ -63,13 +77,13 @@ 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<dialog.h>\fP
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 \fBdialog\fP library is stored in
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 \fIdialog_state\fP, \fIdialog_vars\fP and \fIdlg_color_table\fP
global variables should be initialized to zeros,
@ -79,7 +93,7 @@ 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 \fBdialog\fP library.
are intended for lower levels, e.g., by the \fB\*l\fP library.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_STATE.all_windows
This is a linked list of all windows created by the library.
@ -104,8 +118,13 @@ 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.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_STATE.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.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_STATE.output
This is set in the \fBdialog\fP application to the stream on
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.
@ -116,7 +135,7 @@ e.g., by using the "\fB--stdout\fP" option.
.IP \fIDIALOG_STATE.output_count
This is incremented by \fIdlg_does_output\fP,
which is called by each widget that writes text to the output.
The \fBdialog\fP application uses that to decide if it should
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.
@ -124,7 +143,7 @@ between calls to each widget.
.IP \fIDIALOG_STATE.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 \fBdialog\fP application calls \fIinit_dialog\fP normally with
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
@ -151,7 +170,7 @@ successfully open the terminal directly).
.IP \fIDIALOG_STATE.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 \fBdialog\fP's output from
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,
@ -164,6 +183,10 @@ Specify the number of spaces that a tab character occupies if the
option is given.
The default is 8.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_STATE.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.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_STATE.use_colors
This is set in \fIinit_dialog\fP if the curses implementation supports color.
.\" ---------------------------------------------------------------------------
@ -182,9 +205,9 @@ suppress shadows that would be drawn to the right and bottom of each dialog box.
This corresponds to the command-line option "\fB--visit-items\fP".
.\" ---------------------------------------------------------------------------
.PP
The \fBdialog\fP application resets the \fIdialog_vars\fP data before
The \fB\*p\fP application resets the \fIdialog_vars\fP data before
accepting options to invoke each widget.
Most of the \fIDIALOG_VARS\fP members are set directly from \fBdialog\fP's
Most of the \fIDIALOG_VARS\fP members are set directly from \fB\*p\fP's
command-line options:
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.ascii_lines
@ -222,18 +245,18 @@ The given \fIstring\fP overrides the label used for "Cancel" buttons.
.IP \fIDIALOG_VARS.cant_kill
This corresponds to the command-line option "\fB--no-kill\fP".
If true, this tells
\fBdialog\fP
\fB\*p\fP
to put the
\fBtailboxbg\fP
box in the background,
printing its process id to \fBdialog\fP's output.
printing its process id to \fB\*p\fP's output.
SIGHUP is disabled for the background process.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.colors
This corresponds to the command-line option "\fB--colors\fP".
If true, interpret embedded "\\Z" sequences in the dialog text
by the following character,
which tells dialog to set colors or video attributes:
which tells \fB\*p\fP to set colors or video attributes:
0 through 7 are the ANSI codes used in curses:
black,
red,
@ -256,9 +279,9 @@ Restore normal settings with "\\Zn".
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, \fBdialog\fR will only wrap lines where needed to fit inside the text box.
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,
\fBdialog\fR will still wrap any lines that are too long for the width of the box.
\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.
@ -317,7 +340,7 @@ 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 \fBdialog\fP's output after the token "HELP".
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.
.\" ---------------------------------------------------------------------------
@ -342,11 +365,26 @@ This flag is set to denote whether the menubox widget
implements a menu versus a inputmenu widget.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.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:
.RS
.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.
.RE
.IP
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.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.insecure
This corresponds to the command-line option "\fB--insecure\fP".
@ -362,10 +400,10 @@ screen, for the currently selected item.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.keep_tite
This is set by the command-line option "\fB--keep-tite\fP"
to tell \fBdialog\fP to not attempt to cancel the terminal initialization
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 \fBdialog\fP does this to avoid flickering when run several times
Normally \fB\*p\fP does this to avoid flickering when run several times
in a script.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.keep_window
@ -394,10 +432,10 @@ A script can still test if the user pressed the ESC key to cancel to quit.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.nocollapse
This corresponds to the command-line option "\fB--no-collapse\fP".
Normally \fBdialog\fR converts tabs to spaces and reduces multiple
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 \fBdialog\fR will still wrap text, subject to the \fB--cr-wrap\fR
Note that \fB\*p\fR will still wrap text, subject to the \fB--cr-wrap\fR
option.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.nook
@ -409,7 +447,7 @@ The given string overrides the label used for "OK" buttons.
.IP \fIDIALOG_VARS.print_siz
This corresponds to the command-line option "\fB--print-size\fP".
If true,
each widget prints its size to \fBdialog\fP's output when it is invoked.
each widget prints its size to \fB\*p\fP's output when it is invoked.
.\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.quoted
.\" ---------------------------------------------------------------------------
@ -424,7 +462,7 @@ 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, \fBdialog\fP uses double quotes around each item.
If this option is not set, \fB\*p\fP uses double quotes around each item.
That requires occasional use of backslashes to make the output useful in
shell scripts.
.IP \fIDIALOG_VARS.size_err
@ -479,7 +517,7 @@ The given string overrides the label used for "Yes" buttons.
.\" ************************************************************************
.\" ************************************************************************
.SH WIDGETS
Functions that implement major functionality for the command-line \fBdialog\fP
Functions that implement major functionality for the command-line \fB\*p\fP
program, e.g., widgets, have names beginning "\fIdialog_\fP".
All dialog boxes have at least three parameters:
@ -511,17 +549,14 @@ which is adjusted up to the calendar grid's minimum width if needed.
.IP day
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.
If the value is negative, the current day of the week is used.
.IP month
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.
If the value is negative, the current month of the year is used.
.IP year
is the initial year shown.
If the value is negative,
the current year is used.
If the value is negative, the current year is used.
.RE
.\" ************************************************************************
.IP \fBdialog_checklist
@ -829,6 +864,27 @@ If zero, the height is based on the screen size.
is the timeout to use for the progress bar.
.RE
.\" ************************************************************************
.IP \fBdialog_prgbox
implements the "\fB--prgbox\fP" option.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
If empty or null, no prompt is shown.
.IP command
is the name of the command to execute.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP pauseopt
if true, an "OK" button will be shown,
and the dialog will wait for it to complete.
.RE
.\" ************************************************************************
.IP \fBdialog_progressbox
implements the "\fB--progressbox\fP" option.
.RS
@ -897,16 +953,16 @@ is the desired width of the box.
If zero, the height is based on the screen size.
.IP hour
is the initial hour shown.
If the value is negative,
the current hour is used.
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.
.IP minute
is the initial minute shown.
If the value is negative,
the current minute is used.
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.
.IP second
is the initial second shown.
If the value is negative,
the current second is used.
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.
.RE
.\" ************************************************************************
.IP \fBdialog_yesno
@ -927,7 +983,7 @@ If zero, the height is based on the screen size.
.\" ************************************************************************
.SH UTILITY FUNCTIONS
Most functions that implement lower-level
functionality for the command-line \fBdialog\fP
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.
@ -1025,7 +1081,7 @@ This is the number of rows in the array.
.TP 5
.B dlg_asciibox
returns its parameter transformed to the
corresponding "+" or "-", etc. for the line-drawing characters used in \fBdialog\fP.
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.
.RE
.\" ---------------------------------------------------------------------------
@ -1118,7 +1174,7 @@ returns its parameter transformed as follows:
if neither \fBdialog_vars.ascii_lines\fP nor \fBdialog_vars.no_lines\fP is set.
.TP 3
.B -
if \fBdialog_vars.ascii_lines\fP is set, returns the corresponding "+" or "-", etc. for the line-drawing characters used in \fBdialog\fP.
if \fBdialog_vars.ascii_lines\fP is set, returns the corresponding "+" or "-", etc. for the line-drawing characters used in \fB\*p\fP.
.TP 3
.B -
otherwise, if \fBdialog_vars.no_lines\fP is set, returns a space for the line-drawing characters.
@ -1302,7 +1358,7 @@ is a list of (pointers to) button labels terminated by a null pointer.
.TP 5
.B dlg_checklist
This entrypoint provides the \fB--checklist\fP or \fP--radiolist\fP
functionality without the limitations of \fBdialog\fP's command-line syntax
functionality without the limitations of \fB\*p\fP's command-line syntax
(compare to \fBdialog_checklist\fP).
.RS
.TP 5
@ -1400,20 +1456,30 @@ On return, holds the updated starting line number.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_clear
Set window to the default dialog screen attribute.
Set window to the default \fB\*p\fP screen attribute.
This is set in the rc-file with \fBscreen_color\fP.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_clr_result
Free storage used for the result buffer (\fBdialog_vars.input_result\fP).
The corresponding pointer is set to NULL.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_color_count
Return the number of colors that can be configured in \fBdialog\fP.
Return the number of colors that can be configured in \fB\*p\fP.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_color_setup
Initialize the color pairs used in \fBdialog\fP.
Initialize the color pairs used in \fB\*p\fP.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_count_argv
Count the entries in an argument vector.
.RS
.TP 5
.B argv
Points to the argument vector.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_count_columns
@ -1437,7 +1503,7 @@ is the string to measure.
.TP 5
.B dlg_create_rc
Create a configuration file,
i.e., write internal tables to a file which can be read back by \fBdialog\fP
i.e., write internal tables to a file which can be read back by \fB\*p\fP
as an rc-file.
.RS
.TP 5
@ -1504,7 +1570,7 @@ is the window to remove.
.B 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 \fBdialog\fP can test this and add a separator.
so the output function in \fB\*p\fP can test this and add a separator.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_draw_arrows
@ -1731,10 +1797,25 @@ is the stream on which to write the bindings.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_eat_argv
Remove one or more items from an argument vector.
.RS
.TP 5
.B int *argcp
in/out parameter giving the length of the argument vector.
.B char ***argvp
in/out parameter pointing to the argument vector.
.B int start
starting index.
.B int count
number of arguments to remove.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_edit_offset
Given the character-offset in the string,
returns the display-offset where
dialog should position the cursor.
\fB\*p\fP should position the cursor.
In this context, "characters" may be multicolumn,
since the string can be a multibyte character string.
.RS
@ -1789,13 +1870,13 @@ is the internal exit code, e.g., \fBDLG_EXIT_OK\fP,
which may be remapped.
.RE
.IP
The \fBdialog\fP program uses this function
The \fB\*p\fP program uses this function
to allow shell scripts to remap the exit codes so they can distinguish ESC
from ERROR.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_exit_buttoncode
Map the given button index for \fBdlg_exit_label\fP into dialog's exit-code.
Map the given button index for \fBdlg_exit_label\fP into \fB\*p\fP's exit-code.
.RS
.TP 5
.B int \fIbutton
@ -1844,7 +1925,7 @@ Cancel the local data saved by \fBdlg_last_getc\fP.
.\" ---------------------------------------------------------------------------
.IP dlg_editbox
This entrypoint provides the \fB--editbox\fP
functionality without the limitations of \fBdialog\fP's command-line syntax
functionality without the limitations of \fB\*p\fP's command-line syntax
(compare to \fBdialog_editbox\fP).
.RS
.TP 5
@ -1874,7 +1955,7 @@ If zero, the height is adjusted to use the available screen size.
.TP 5
.B dlg_form
This entrypoint provides the \fB--form\fP
functionality without the limitations of \fBdialog\fP's command-line syntax
functionality without the limitations of \fB\*p\fP's command-line syntax
(compare to \fBdialog_form\fP).
.RS
.TP 5
@ -1951,6 +2032,15 @@ as a side-effect, set this to true if the key-code is really a function-key.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_get_attrs
extract the video attributes from the given window.
.RS
.TP 5
.B WINDOW * \fIwin
is the window from which to get attributes.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_getc_callbacks
passes the given key-code \fIch\fP to the current window that
has established a callback.
@ -2001,7 +2091,7 @@ is the help-message
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_killall_bg
If \fBdialog\fP has callbacks active,
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.
@ -2048,7 +2138,7 @@ is the window on which the binding is checked
is the curses key-code
.TP 5
.B int * \fIdialog_key
is the corresponding dialog internal code
is the corresponding \fB\*p\fP internal code
(see \fBDLG_KEYS_ENUM\fP in dlg_key.h).
.RE
.\" ---------------------------------------------------------------------------
@ -2078,7 +2168,7 @@ is the string to search
.TP 5
.B dlg_menu
This entrypoint provides the \fB--menu\fP
functionality without the limitations of \fBdialog\fP's command-line syntax
functionality without the limitations of \fB\*p\fP's command-line syntax
(compare to \fBdialog_menu\fP).
.RS
.TP 5
@ -2344,7 +2434,7 @@ if negative, provides a way to enumerate extra active areas on the widget.
.TP 5
.B dlg_ok_buttoncode
Map the given button index for \fBdlg_ok_labels\fP
into \fBdialog\fP's exit-code.
into \fB\*p\fP's exit-code.
.RS
.TP 5
.B int \fIbutton
@ -2370,7 +2460,7 @@ a curses-ordinate from a dialog-ordinate.
.B 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 dialog key definition.
then \fB\*p\fP key definition.
.RS
.TP 5
.B char * \fIparams
@ -2394,7 +2484,7 @@ is the current button index
.RE
.\" ---------------------------------------------------------------------------
.TP 5
dlg_print_scrolled
.B dlg_print_scrolled
This is a wrapper for \fBdlg_print_autowrap\fP which allows the user
to scroll too-long prompt text up/down.
.IP
@ -2505,7 +2595,7 @@ is the window's width
.TP 5
.B dlg_print_text
Print up to \fIcols\fP columns from \fBtext\fP,
optionally rendering \fBdialog\fP's escape sequences for attributes and color.
optionally rendering \fB\*p\fP's escape sequences for attributes and color.
.RS
.TP 5
.B WINDOW * \fIwin
@ -2522,6 +2612,29 @@ holds the starting attributes, and is updated to reflect the final attributes
applied to the string.
.RE
.\" ---------------------------------------------------------------------------
.B dlg_progressbox
implements the "\fB--prgbox\fP" and "\fB--progressbox\fP" options.
.RS
.IP title
is the title on the top of the widget.
.IP cprompt
is the prompt text shown within the widget.
If empty or null, no prompt is shown.
.IP height
is the desired height of the box.
If zero, the height is based on the screen size.
.IP width
is the desired width of the box.
If zero, the height is based on the screen size.
.IP pauseopt
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".
.IP fp
is the file pointer, which may be a pipe or a regular file.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_put_backtitle
Display the background title if \fBdialog_vars.backtitle\fP is non-null.
@ -2570,16 +2683,22 @@ contains the callback information.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_restore_vars
Restore dialog's variables from the given variable (see \fBdialog_save_vars\fP).
Restore \fB\*p\fP's variables from the given variable (see \fBdialog_save_vars\fP).
.RS
.TP 5
.B DIALOG_VARS * \fIsave
is the variable from which to restore.
.RE
.IP
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.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_result_key
Test a dialog internal keycode to see if it corresponds to one of the push
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.
@ -2587,7 +2706,7 @@ Return true if a mapping was done.
.RS
.TP 5
.B int \fIdialog_key
is the dialog key to test
is the \fB\*p\fP key to test
.TP 5
.B int \fIfkey
is true if this is a function key
@ -2598,7 +2717,7 @@ store the result of the mapping in the referenced location.
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_save_vars
Save dialog's variables into the given variable (see \fBdialog_restore_vars\fP).
Save \fB\*p\fP's variables into the given variable (see \fBdialog_restore_vars\fP).
.RS
.TP 5
.B DIALOG_VARS * \fIsave
@ -2683,6 +2802,17 @@ is the other string
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B 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 (replacing gaps between tokens with nulls).
.RS
.TP 5
.B char *\fIblob
is the string to convert.
.RE
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_sub_window
create a subwindow, e.g., for an input area of a widget
.RS
@ -2762,7 +2892,7 @@ is the window from which to remove bindings
.\" ---------------------------------------------------------------------------
.TP 5
.B dlg_yes_buttoncode
Map the given button index for \fBdlg_yes_labels\fP into \fBdialog\fP's exit-code.
Map the given button index for \fBdlg_yes_labels\fP into \fB\*p\fP's exit-code.
.RS
.TP 5
.B int \fIbutton
@ -2775,7 +2905,7 @@ Return a list of buttons for Yes/No labels.
.
.\" ************************************************************************
.SH SEE ALSO
dialog (1).
\fB\*p\fP (1).
.
.\" ************************************************************************
.SH AUTHOR

View File

@ -1,9 +1,9 @@
/*
* $Id: dialog.c,v 1.177 2010/01/18 09:21:14 tom Exp $
* $Id: dialog.c,v 1.186 2011/03/02 09:58:29 tom Exp $
*
* cdialog - Display simple dialog boxes from shell scripts
*
* Copyright 2000-2008,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -95,6 +95,7 @@ typedef enum {
,o_no_kill
,o_no_label
,o_no_lines
,o_no_mouse
,o_no_shadow
,o_nocancel
,o_noitem
@ -105,9 +106,11 @@ typedef enum {
,o_passwordbox
,o_passwordform
,o_pause
,o_prgbox
,o_print_maxsize
,o_print_size
,o_print_version
,o_programbox
,o_progressbox
,o_quoted
,o_radiolist
@ -235,6 +238,7 @@ static const Options options[] = {
{ "no-kill", o_no_kill, 1, "" },
{ "no-label", o_no_label, 1, "<str>" },
{ "no-lines", o_no_lines, 1, "" },
{ "no-mouse", o_no_mouse, 1, "" },
{ "no-ok", o_nook, 1, "" },
{ "no-shadow", o_no_shadow, 1, "" },
{ "nocancel", o_nocancel, 1, NULL }, /* see --no-cancel */
@ -246,10 +250,12 @@ static const Options options[] = {
{ "passwordbox", o_passwordbox, 2, "<text> <height> <width> [<init>]" },
{ "passwordform", o_passwordform, 2, "<text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>..." },
{ "pause", o_pause, 2, "<text> <height> <width> <seconds>" },
{ "prgbox", o_prgbox, 2, "<text> <command> <height> <width>" },
{ "print-maxsize", o_print_maxsize, 1, "" },
{ "print-size", o_print_size, 1, "" },
{ "print-version", o_print_version, 5, "" },
{ "progressbox", o_progressbox, 2, "<height> <width>" },
{ "programbox", o_programbox, 2, "<text> <height> <width>" },
{ "progressbox", o_progressbox, 2, "<text> <height> <width>" },
{ "quoted", o_quoted, 1, "" },
{ "radiolist", o_radiolist, 2, "<text> <height> <width> <list height> <tag1> <item1> <status1>..." },
{ "screen-center", o_screen_center, 1, NULL },
@ -286,109 +292,6 @@ static const Options options[] = {
};
/* *INDENT-ON* */
/*
* 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).
*/
static char **
string_to_argv(char *blob)
{
size_t n;
int pass;
size_t length = strlen(blob);
char **result = 0;
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 (blob[n] == '\\') {
if (quoted && !isspace(UCH(blob[n + 1]))) {
if (!inparm) {
if (pass)
result[count] = param;
++count;
inparm = TRUE;
}
if (pass) {
*param++ = blob[n];
*param++ = blob[n + 1];
}
}
++n;
} else if (!quoted && isspace(UCH(blob[n]))) {
inparm = FALSE;
if (pass) {
*param++ = '\0';
}
} else {
if (!inparm) {
if (pass)
result[count] = param;
++count;
inparm = TRUE;
}
if (pass) {
*param++ = blob[n];
}
}
}
if (!pass) {
if (count) {
result = dlg_calloc(char *, count + 1);
assert_ptr(result, "string_to_argv");
} else {
break; /* no tokens found */
}
} else {
*param = '\0';
}
}
return result;
}
/*
* Count the entries in an argv list.
*/
static int
count_argv(char **argv)
{
int result = 0;
if (argv != 0) {
while (argv[result] != 0)
++result;
}
return result;
}
static int
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;
}
/*
* Make an array showing which argv[] entries are options. Use "--" as a
* special token to escape the next argument, allowing it to begin with "--".
@ -419,13 +322,13 @@ unescape_argv(int *argcp, char ***argvp)
bool escaped = FALSE;
if (!strcmp((*argvp)[j], "--")) {
escaped = TRUE;
changed = eat_argv(argcp, argvp, j, 1);
changed = 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]);
}
changed = eat_argv(argcp, argvp, j, 1);
changed = dlg_eat_argv(argcp, argvp, j, 1);
} else if (!strcmp((*argvp)[j], "--file")) {
if (++count_includes > limit_includes)
dlg_exiterr("Too many --file options");
@ -453,7 +356,7 @@ unescape_argv(int *argcp, char ***argvp)
assert_ptr(blob, "unescape_argv");
bytes_read = fread(blob + length,
sizeof(char),
BUFSIZ,
(size_t) BUFSIZ,
fp);
length += bytes_read;
if (ferror(fp))
@ -463,8 +366,8 @@ unescape_argv(int *argcp, char ***argvp)
blob[length] = '\0';
list = string_to_argv(blob);
if ((added = count_argv(list)) != 0) {
list = dlg_string_to_argv(blob);
if ((added = dlg_count_argv(list)) != 0) {
if (added > 2) {
size_t need = (size_t) (*argcp + added + 1);
if (doalloc) {
@ -505,7 +408,7 @@ unescape_argv(int *argcp, char ***argvp)
}
if (!escaped
&& (*argvp)[j] != 0
&& !strncmp((*argvp)[j], "--", 2)
&& !strncmp((*argvp)[j], "--", (size_t) 2)
&& isalpha(UCH((*argvp)[j][2]))) {
dialog_opts[j] = TRUE;
}
@ -538,7 +441,7 @@ isOption(const char *arg)
break;
}
}
} else if (!strncmp(arg, "--", 2) && isalpha(UCH(arg[2]))) {
} else if (!strncmp(arg, "--", (size_t) 2) && isalpha(UCH(arg[2]))) {
result = TRUE;
}
}
@ -614,7 +517,7 @@ static int
numeric_arg(char **av, int n)
{
char *last = 0;
int result = strtol(av[n], &last, 10);
int result = (int) strtol(av[n], &last, 10);
char msg[80];
if (last == 0 || *last != 0) {
@ -666,7 +569,8 @@ show_result(int ret)
dialog_state.output);
either = TRUE;
}
if (dialog_vars.input_result[0] != '\0') {
if (dialog_vars.input_result != 0
&& dialog_vars.input_result[0] != '\0') {
fputs(dialog_vars.input_result, dialog_state.output);
either = TRUE;
}
@ -740,24 +644,33 @@ 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)
dialog_vars.extra_label = _("Rename");
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;
return dialog_menu(t,
av[1],
numeric_arg(av, 2),
numeric_arg(av, 3),
numeric_arg(av, 4),
tags, av + 5);
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
@ -959,6 +872,53 @@ call_mixed_gauge(CALLARGS)
}
#endif
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));
}
#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)
@ -1018,6 +978,8 @@ static const Mode modes[] =
#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
@ -1067,7 +1029,7 @@ optionValue(char **argv, int *num)
int result = 0;
if (src != 0) {
result = strtol(src, &tmp, 0);
result = (int) strtol(src, &tmp, 0);
if (tmp == 0 || *tmp != 0)
src = 0;
}
@ -1135,7 +1097,7 @@ Help(void)
static const char *const tbl_1[] =
{
"cdialog (ComeOn Dialog!) version %s",
"Copyright 2000-2007,2008 Thomas E. Dickey",
"Copyright 2000-2008,2011 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.",
"",
@ -1156,8 +1118,8 @@ Help(void)
"Global-auto-size if also menu_height/list_height = 0.",
0
};
unsigned limit = sizeof(options) / sizeof(options[0]);
unsigned j, k;
size_t limit = sizeof(options) / sizeof(options[0]);
size_t j, k;
const Options **opts;
opts = dlg_calloc(const Options *, limit);
@ -1172,7 +1134,7 @@ Help(void)
for (j = k = 0; j < limit; j++) {
if ((opts[j]->pass & 1)
&& opts[j]->help != 0) {
unsigned len = 6 + strlen(opts[j]->name) + strlen(opts[j]->help);
size_t len = 6 + strlen(opts[j]->name) + strlen(opts[j]->help);
k += len;
if (k > 75) {
fprintf(dialog_state.output, "\n ");
@ -1204,6 +1166,9 @@ Help(void)
static int
process_common_options(int argc, char **argv, int offset, bool output)
{
#ifdef HAVE_DLG_TRACE
int n;
#endif
bool done = FALSE;
while (offset < argc && !done) { /* Common options */
@ -1389,6 +1354,9 @@ process_common_options(int argc, char **argv, int offset, bool output)
dialog_vars.no_lines = TRUE;
dialog_vars.ascii_lines = FALSE;
break;
case o_no_mouse:
dialog_state.no_mouse = TRUE;
break;
case o_noitem:
case o_fullbutton:
/* ignore */
@ -1418,6 +1386,9 @@ process_common_options(int argc, char **argv, int offset, bool output)
#ifdef HAVE_DLG_TRACE
case o_trace:
dlg_trace(optionString(argv, &offset));
for (n = 0; argv[n] != 0; ++n) {
dlg_trace_msg("argv[%d] = %s\n", n, argv[n]);
}
break;
#endif
}
@ -1453,8 +1424,8 @@ init_result(char *buffer)
if (env != 0)
env = dlg_strclone(env);
if (env != 0) {
special_argv = string_to_argv(env);
special_argc = count_argv(special_argv);
special_argv = dlg_string_to_argv(env);
special_argc = dlg_count_argv(special_argv);
}
}
if (special_argv != 0) {
@ -1487,8 +1458,8 @@ main(int argc, char *argv[])
#if defined(ENABLE_NLS)
/* initialize locale support */
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
bindtextdomain(NLS_TEXTDOMAIN, LOCALEDIR);
textdomain(NLS_TEXTDOMAIN);
#elif defined(HAVE_SETLOCALE)
(void) setlocale(LC_ALL, "");
#endif
@ -1664,8 +1635,10 @@ main(int argc, char *argv[])
&offset_add));
offset += offset_add;
if (dialog_vars.input_result != my_buffer)
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;

View File

@ -1,9 +1,9 @@
/*
* $Id: dialog.h,v 1.214 2010/04/28 21:11:49 tom Exp $
* $Id: dialog.h,v 1.223 2011/03/02 10:04:09 tom Exp $
*
* dialog.h -- common declarations for all dialog modules
* dialog.h -- common declarations for all dialog modules
*
* Copyright 2000-2008,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -26,6 +26,7 @@
#ifndef DIALOG_H_included
#define DIALOG_H_included 1
/* *INDENT-OFF* */
#include <dlg_config.h>
@ -43,6 +44,8 @@
#include <signal.h> /* fork() etc. */
#include <math.h> /* sqrt() */
#undef ERR /* header conflict with Solaris xpg4 */
#if defined(HAVE_NCURSESW_NCURSES_H)
#include <ncursesw/ncurses.h>
#elif defined(HAVE_NCURSES_NCURSES_H)
@ -60,6 +63,19 @@
#include <unctrl.h>
#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
@ -143,7 +159,7 @@
#define ARROWS_COL 5
#define MAX_LEN 2048
#define BUF_SIZE (10*1024)
#define BUF_SIZE (10L*1024)
#undef MIN
#define MIN(x,y) ((x) < (y) ? (x) : (y))
@ -155,7 +171,7 @@
#define DEFAULT_ASPECT_RATIO 9
/* how many spaces is a tab long (default)? */
#define TAB_LEN 8
#define WTIMEOUT_VAL 10
#define WTIMEOUT_VAL 10 /* minimum amount of time needed for curses */
#ifndef A_CHARTEXT
#define A_CHARTEXT 0xff
@ -336,6 +352,7 @@ extern int dlg_getpary(WINDOW * /*win*/);
#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 DLGK_max (KEY_MAX + 256)
@ -357,6 +374,9 @@ typedef struct _dlg_callback {
/* 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 {
@ -389,6 +409,8 @@ typedef struct {
#ifdef HAVE_DLG_TRACE
FILE *trace_output; /* option "--trace file" */
#endif
/* 1.1-20110106 */
bool no_mouse; /* option "--no-mouse" */
} DIALOG_STATE;
extern DIALOG_STATE dialog_state;
@ -473,8 +495,8 @@ extern DIALOG_VARS dialog_vars;
#define assert_ptr(ptr,msg) if ((ptr) == 0) dlg_exiterr("cannot allocate memory in " msg)
#define dlg_malloc(t,n) (t *) malloc((n) * sizeof(t))
#define dlg_calloc(t,n) (t *) calloc((n), sizeof(t))
#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))
/*
@ -514,6 +536,7 @@ extern int dialog_mixedform(const char * /*title*/, const char * /*cprompt*/, in
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_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*/);
@ -551,6 +574,12 @@ typedef int (DIALOG_INPUTMENU) (DIALOG_LISTITEM * /*items*/, int /*current*/, ch
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*/);
@ -627,6 +656,7 @@ 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_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*/);
@ -780,5 +810,6 @@ extern void _nc_free_and_exit(int); /* nc_alloc.h normally not installed */
#ifdef __cplusplus
}
#endif
/* *INDENT-ON* */
#endif /* DIALOG_H_included */

View File

@ -1,9 +1,9 @@
/*
* $Id: dlg_colors.h,v 1.15 2007/02/18 18:23:29 tom Exp $
* $Id: dlg_colors.h,v 1.16 2011/01/17 00:20:32 tom Exp $
*
* colors.h -- color attribute definitions
*
* Copyright 2000-2005,2006 Thomas E. Dickey
* Copyright 2000-2007,2011 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
@ -168,6 +168,10 @@
#define DLGC_BG_FORM_TEXT COLOR_CYAN
#define DLGC_HL_FORM_TEXT TRUE
#define DLGC_FG_GAUGE COLOR_BLUE
#define DLGC_BG_GAUGE COLOR_WHITE
#define DLGC_HL_GAUGE TRUE
/* End of default color definitions */
/*

View File

@ -1,9 +1,9 @@
/*
* $Id: fselect.c,v 1.74 2010/04/28 20:45:40 tom Exp $
* $Id: fselect.c,v 1.76 2011/01/16 22:20:16 tom Exp $
*
* fselect.c -- implements the file-selector box
* fselect.c -- implements the file-selector box
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -241,10 +241,10 @@ display_list(LIST * list)
top = y - 1;
bottom = y + getmaxy(list->win);
dlg_draw_scrollbar(list->par,
list->offset,
list->offset,
list->offset + getmaxy(list->win),
list->length,
(long) list->offset,
(long) list->offset,
(long) (list->offset + getmaxy(list->win)),
(long) (list->length),
x + 1,
x + getmaxx(list->win),
top,
@ -289,7 +289,7 @@ fix_arrows(LIST * list)
}
static int
show_list(char *target, LIST * list, bool keep)
show_list(char *target, LIST * list, int keep)
{
int changed = keep || find_choice(target, list);
display_list(list);
@ -301,7 +301,7 @@ show_list(char *target, LIST * list, bool keep)
* to match.
*/
static int
show_both_lists(char *input, LIST * d_list, LIST * f_list, bool keep)
show_both_lists(char *input, LIST * d_list, LIST * f_list, int keep)
{
char *leaf = leaf_of(input);
@ -427,7 +427,7 @@ complete(char *name, LIST * d_list, LIST * f_list, char **buff_ptr)
}
static bool
fill_lists(char *current, char *input, LIST * d_list, LIST * f_list, bool keep)
fill_lists(char *current, char *input, LIST * d_list, LIST * f_list, int keep)
{
DIR *dp;
DIRENT *de;
@ -528,7 +528,7 @@ usable_state(int state, LIST * dirs, LIST * files)
* Display a dialog box for entering a filename
*/
static int
dlg_fselect(const char *title, const char *path, int height, int width, bool dselect)
dlg_fselect(const char *title, const char *path, int height, int width, int dselect)
{
/* *INDENT-OFF* */
static DLG_KEYS_BINDING binding[] = {
@ -568,8 +568,8 @@ dlg_fselect(const char *title, const char *path, int height, int width, bool dse
WINDOW *w_text = 0;
WINDOW *w_work = 0;
const char **buttons = dlg_ok_labels();
char *d_label = _("Directories");
char *f_label = _("Files");
const char *d_label = _("Directories");
const char *f_label = _("Files");
char *partial;
int min_wide = MIN_WIDE;
int min_items = height ? 0 : 4;
@ -682,7 +682,7 @@ dlg_fselect(const char *title, const char *path, int height, int width, bool dse
if (resized) {
resized = FALSE;
dlg_show_string(w_text, input, offset, inputbox_attr,
0, 0, tbox_width, 0, first);
0, 0, tbox_width, (bool) 0, (bool) first);
}
#endif

View File

@ -1,9 +1,9 @@
/*
* $Id: guage.c,v 1.45 2010/01/19 09:15:20 tom Exp $
* $Id: guage.c,v 1.52 2011/01/17 10:39:28 tom Exp $
*
* guage.c -- implements the gauge dialog
* guage.c -- implements the gauge dialog
*
* Copyright 2000-2007,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -33,12 +33,11 @@
#define MIN_HIGH (4)
#define MIN_WIDE (10 + 2 * (2 + MARGIN))
#define isMarker(buf) !strncmp(buf, "XXX", 3)
#define isMarker(buf) !strncmp(buf, "XXX", (size_t) 3)
typedef struct {
DIALOG_CALLBACK obj;
WINDOW *text;
bool done;
const char *title;
char *prompt;
char prompt_buf[MY_LEN];
@ -82,64 +81,70 @@ repaint_text(MY_OBJ * obj)
WINDOW *dialog = obj->obj.win;
int i, x;
(void) werase(dialog);
dlg_draw_box(dialog, 0, 0, obj->height, obj->width, dialog_attr, border_attr);
if (dialog != 0 && obj->obj.input != 0) {
(void) werase(dialog);
dlg_draw_box(dialog, 0, 0, obj->height, obj->width, dialog_attr, border_attr);
dlg_draw_title(dialog, obj->title);
dlg_draw_title(dialog, obj->title);
wattrset(dialog, dialog_attr);
dlg_print_autowrap(dialog, obj->prompt, obj->height, obj->width);
wattrset(dialog, dialog_attr);
dlg_print_autowrap(dialog, obj->prompt, obj->height, obj->width);
dlg_draw_box(dialog,
obj->height - 4, 2 + MARGIN,
2 + MARGIN, obj->width - 2 * (2 + MARGIN),
dialog_attr,
border_attr);
dlg_draw_box(dialog,
obj->height - 4, 2 + MARGIN,
2 + MARGIN, obj->width - 2 * (2 + MARGIN),
dialog_attr,
border_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, obj->height - 3, 4);
wattrset(dialog, title_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, obj->height - 3, 4);
wattrset(dialog, gauge_attr);
for (i = 0; i < (obj->width - 2 * (3 + MARGIN)); i++)
(void) waddch(dialog, ' ');
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);
(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 ((title_attr & A_REVERSE) != 0) {
wattroff(dialog, A_REVERSE);
} else {
wattrset(dialog, A_REVERSE);
}
(void) wmove(dialog, obj->height - 3, 4);
for (i = 0; i < x; i++) {
chtype ch2 = winch(dialog);
if (title_attr & A_REVERSE) {
ch2 &= ~A_REVERSE;
/*
* 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 ((title_attr & A_REVERSE) != 0) {
wattroff(dialog, A_REVERSE);
} else {
wattrset(dialog, A_REVERSE);
}
(void) wmove(dialog, obj->height - 3, 4);
for (i = 0; i < x; i++) {
chtype ch2 = winch(dialog);
if (title_attr & A_REVERSE) {
ch2 &= ~A_REVERSE;
}
(void) waddch(dialog, ch2);
}
(void) waddch(dialog, ch2);
}
(void) wrefresh(dialog);
(void) wrefresh(dialog);
}
}
static int
handle_input(MY_OBJ * obj)
static bool
handle_input(DIALOG_CALLBACK * cb)
{
MY_OBJ *obj = (MY_OBJ *) cb;
bool result;
int status;
char buf[MY_LEN];
if ((status = read_data(buf, dialog_state.pipe_input)) > 0) {
if (dialog_state.pipe_input == 0) {
status = -1;
} else if ((status = read_data(buf, dialog_state.pipe_input)) > 0) {
if (isMarker(buf)) {
/*
@ -172,25 +177,32 @@ handle_input(MY_OBJ * obj)
obj->percent = atoi(buf);
}
} else {
obj->done = TRUE;
if (feof(dialog_state.pipe_input) ||
(ferror(dialog_state.pipe_input) && errno != EINTR)) {
dlg_remove_callback(cb);
}
}
return status;
if (status > 0) {
result = TRUE;
repaint_text(obj);
} else {
result = FALSE;
}
return result;
}
static bool
handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result)
{
MY_OBJ *obj = (MY_OBJ *) cb;
int status = TRUE;
*result = DLG_EXIT_OK;
if (obj != 0) {
if (cb != 0) {
if (!fkey && (ch == ERR)) {
if (handle_input(obj) > 0)
repaint_text(obj);
else
status = FALSE;
(void) handle_input(cb);
status = (cb->input != 0);
}
} else {
status = FALSE;
@ -265,12 +277,15 @@ dialog_gauge(const char *title,
obj->obj.keep_win = TRUE;
obj->obj.bg_task = TRUE;
obj->obj.handle_getc = handle_my_getc;
obj->obj.handle_input = handle_input;
obj->title = title;
obj->prompt = prompt;
obj->percent = percent;
obj->height = height;
obj->width = width;
dlg_add_callback_ref((DIALOG_CALLBACK **) objref, my_cleanup);
} else {
obj->obj.win = dialog;
}
repaint_text(obj);

View File

@ -1,7 +1,7 @@
#! /bin/sh
# $Id: headers-sh.in,v 1.5 2007/07/05 00:20:18 tom Exp $
# $Id: headers-sh.in,v 1.9 2011/01/06 09:38:25 tom Exp $
##############################################################################
# Copyright (c) 2004,2007 Thomas E. Dickey #
# 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"), #
@ -43,6 +43,7 @@
PACKAGE=@PACKAGE@
PKGNAME=@PACKAGE_PREFIX@
CONFIGH=@PACKAGE_CONFIG@
SUB_INC=@SUB_INC@
TMPSED=headers.sed
@ -54,6 +55,8 @@ 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
@ -71,7 +74,7 @@ if test $# = 2 ; then
done
;;
*)
echo "" >> $TMPSED
touch $TMPSED
;;
esac
@ -109,7 +112,8 @@ EOF
# pick up autoconf-defined symbols in the config.h file
for name in `
egrep '^#define[ ][ ]*['$ALNUM']' $REF/$CONFIGH \
| sed -e 's/^#define[ ][ ]*//' \
| sed \
-e 's/^#define[ ][ ]*//' \
-e 's/[ ].*//' \
| egrep -v "^${PACKAGE}_" \
| sort -u \
@ -118,6 +122,11 @@ EOF
echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED
done
if test "$SUB_INC" = yes
then
echo "s,#include <${pkgname}_,#include <${PACKAGE}/${pkgname}_," >>$TMPSED
fi
# reduce the count if possible, since some old sed's limit is 100 lines
sort -u $TMPSED >headers.tmp
mv headers.tmp $TMPSED
@ -145,6 +154,24 @@ else
# 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 $TMPSRC
fi
# vile:ts=4 sw=4

View File

@ -1,9 +1,9 @@
/*
* $Id: inputstr.c,v 1.66 2010/01/15 23:13:36 tom Exp $
* $Id: inputstr.c,v 1.69 2011/01/16 21:52:35 tom Exp $
*
* inputstr.c -- functions for input/display of a string
* inputstr.c -- functions for input/display of a string
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -54,8 +54,8 @@ typedef struct _cache {
struct _cache *cache_at; /* unique: associate caches by CACHE */
const char *string_at; /* unique: associate caches by char* */
#endif
unsigned s_len; /* strlen(string) - we add 1 for EOS */
unsigned i_len; /* length(list) - we add 1 for EOS */
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;
@ -95,9 +95,9 @@ compare_cache(const void *a, const void *b)
const CACHE *p = (const CACHE *) a;
const CACHE *q = (const CACHE *) b;
int result = 0;
result = p->cache_at - q->cache_at;
result = (int) (p->cache_at - q->cache_at);
if (result == 0)
result = p->string_at - q->string_at;
result = (int) (p->string_at - q->string_at);
return result;
}
#endif
@ -187,12 +187,12 @@ static bool
same_cache2(CACHE * cache, const char *string, unsigned i_len)
{
unsigned need;
unsigned s_len = strlen(string);
size_t s_len = strlen(string);
if (cache->s_len != 0
&& cache->s_len >= s_len
&& cache->list != 0
&& SAME_CACHE(cache, string, s_len)) {
&& SAME_CACHE(cache, string, (size_t) s_len)) {
return TRUE;
}
@ -222,12 +222,12 @@ same_cache2(CACHE * cache, const char *string, unsigned i_len)
* string and its associated length.
*/
static bool
same_cache1(CACHE * cache, const char *string, unsigned i_len)
same_cache1(CACHE * cache, const char *string, size_t i_len)
{
unsigned s_len = strlen(string);
size_t s_len = strlen(string);
if (cache->s_len == s_len
&& SAME_CACHE(cache, string, s_len)) {
&& SAME_CACHE(cache, string, (size_t) s_len)) {
return TRUE;
}
@ -422,10 +422,10 @@ dlg_index_columns(const char *string)
result = wcwidth(temp[0]);
}
if (result < 0) {
wchar_t *printable;
cchar_t temp2;
setcchar(&temp2, temp, 0, 0, 0);
printable = wunctrl(&temp2);
const wchar_t *printable;
cchar_t temp2, *temp2p = &temp2;
setcchar(temp2p, temp, 0, 0, 0);
printable = wunctrl(temp2p);
result = printable ? (int) wcslen(printable) : 1;
}
}

View File

@ -1,5 +1,32 @@
# $Id: makefile.in,v 1.71 2010/04/28 00:45:38 tom Exp $
# $Id: makefile.in,v 1.78 2011/03/02 09:57:24 tom Exp $
# template makefile for DIALOG
##############################################################################
# Copyright (c) 1999-2010,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. #
##############################################################################
#
SHELL = /bin/sh
@ -34,12 +61,12 @@ MAN3DIR = $(MANDIR)/man3
localedir = $(prefix)/@DATADIRNAME@/locale
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@ @DEFS@ -I. -I$(srcdir) -DLOCALEDIR=\"$(localedir)\"
CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLOCALEDIR=\"$(localedir)\"
EXTRA_CFLAGS = @EXTRA_CFLAGS@
CC = @CC@
CPP = @CPP@
AR = @AR@
LDFLAGS = @LDFLAGS@
LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@
LIBS = @LIBS@ @INTLLIBS@
RANLIB = @LIB_PREP@
@ -65,7 +92,16 @@ INSTALL_DATA = @INSTALL_DATA@
LINK = $(LIBTOOL_LINK)
PACKAGE = `echo @PACKAGE@ |sed @program_transform_name@`
# 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 = @PACKAGE@-config
# The library name $(LIB) is set at configure/make time, since it is used as a
# makefile target. Ditto for $(PROG).
LIB = @LIB_PREFIX@@PACKAGE@$a
PROG = dialog$x
#
# Standard .c to .o compile line.
#
@ -91,6 +127,7 @@ PACKAGE = `echo @PACKAGE@ |sed @program_transform_name@`
EXTRAOBJS = @EXTRAOBJS@
OBJECTS = $(EXTRAOBJS) \
argv$o \
arrows$o \
buttons$o \
checklist$o \
@ -118,14 +155,12 @@ HDRS = \
dlg_config.h \
dlg_keys.h
LIB = @LIB_PREFIX@dialog$a
PROG = dialog$x
ALL = $(LIB) $(PROG)
ALL = $(LIB) $(PROG)
BIN_DIRS = $(BINDIR) $(MAN1DIR)
LIB_DIRS = $(LIBDIR) $(INCLUDEDIR)
PO_DIR = $(srcdir)/po
PO_DIR = $(srcdir)/po
all :: $(ALL)
@ -144,7 +179,7 @@ $(LIB) : $(LIB_OBJECT)
$(RANLIB) $@
dialog$x : $(LIB) dialog$o @INTLDIR_MAKE@ @INTLLIBS@
$(LINK) -o $@ dialog$o -L. -ldialog $(LDFLAGS) $(LIBS)
$(LINK) -o $@ dialog$o -L. -l@PACKAGE@ $(LDFLAGS) $(LIBS)
clean \
distclean \
@ -186,22 +221,28 @@ uninstall :: uninstall-bin uninstall-man
uninstall-full :: uninstall-bin uninstall-man uninstall-lib
@echo "made $@"
install-bin : $(PROG) $(BINDIR)
$(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(PACKAGE)$x
install-bin : $(PROG) $(BINDIR)
$(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(ACTUAL_PROG)$x
uninstall-bin :
$(RM) $(BINDIR)/$(PACKAGE)$x
$(RM) $(BINDIR)/$(ACTUAL_PROG)$x
install-man :: $(MAN1DIR)
$(INSTALL_DATA) $(srcdir)/dialog.1 $(MAN1DIR)/$(PACKAGE).1
@ echo "** installing $(ACTUAL_PROG).1"
@ $(SHELL) $(srcdir)/rename.sh \
$(srcdir)/dialog.1 \
$(MAN1DIR)/$(ACTUAL_PROG).1 \
$(ACTUAL_PROG) \
@PACKAGE@ \
$(INSTALL_DATA)
uninstall-man ::
$(RM) $(MAN1DIR)/$(PACKAGE).1
$(RM) $(MAN1DIR)/$(ACTUAL_PROG).1
# 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)
@ $(INSTALL_SCRIPT) dialog-config $(BINDIR)/$(LIB_CONFIG)
install-lib :: $(LIB_DIRS) $(LIB) headers.sed
@ echo "** installing library in $(LIBDIR)"
@ -213,20 +254,26 @@ install-lib :: $(LIB_DIRS) $(LIB) headers.sed
@ $(SHELL) $(srcdir)/headers-sh $(INSTALL_DATA) $(INCLUDEDIR) . dlg_config.h
uninstall-lib :: $(BINDIR)
$(RM) $(BINDIR)/dialog-config
$(RM) $(BINDIR)/$(LIB_CONFIG)
uninstall-lib :: $(LIB_DIRS)
- $(LIBTOOL_UNINSTALL) $(RM) $(LIBDIR)/$(LIB)
$(RM) $(INCLUDEDIR)/dialog.h
$(RM) $(INCLUDEDIR)/dlg_colors.h
$(RM) $(INCLUDEDIR)/dlg_keys.h
$(RM) $(INCLUDEDIR)/dlg_config.h
@ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dialog.h
@ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_colors.h
@ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_keys.h
@ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) . dlg_config.h
install-lib :: $(MAN3DIR)
$(INSTALL_DATA) $(srcdir)/dialog.3 $(MAN3DIR)/$(PACKAGE).3
@ echo "** installing @PACKAGE@.3"
@ $(SHELL) $(srcdir)/rename.sh \
$(srcdir)/dialog.3 \
$(MAN3DIR)/@PACKAGE@.3 \
$(ACTUAL_PROG) \
@PACKAGE@ \
$(INSTALL_DATA)
uninstall-lib ::
$(RM) $(MAN3DIR)/$(PACKAGE).3
$(RM) $(MAN3DIR)/@PACKAGE@.3
headers.sed : $(srcdir)/headers-sh
$(SHELL) $(srcdir)/headers-sh $(INCLUDEDIR) $(srcdir)

View File

@ -1,9 +1,9 @@
/*
* $Id: menubox.c,v 1.118 2010/01/17 22:24:11 tom Exp $
* $Id: menubox.c,v 1.120 2011/01/19 00:27:53 tom Exp $
*
* menubox.c -- implements the menu box
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -117,7 +117,7 @@ print_item(WINDOW *win,
Mode selected,
bool is_inputmenu)
{
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int n;
int my_width = menu_width;
int my_x = item_x;
@ -188,7 +188,7 @@ input_menu_edit(WINDOW *win,
int choice,
char **resultp)
{
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
char *result;
int offset = 0;
int key = 0, fkey = 0;

View File

@ -1,9 +1,9 @@
/*
* $Id: mixedgauge.c,v 1.18 2010/01/15 23:43:53 tom Exp $
* $Id: mixedgauge.c,v 1.23 2011/01/19 00:27:53 tom Exp $
*
* mixedgauge.c -- implements the mixedgauge dialog
*
* Copyright 2007,2010 Thomas E. Dickey
* Copyright 2007-2010,2011 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
@ -89,7 +89,7 @@ status_string(char *given, char **freeMe)
break;
}
} else if (*given == '-') {
unsigned need = strlen(++given);
size_t need = strlen(++given);
char *temp = dlg_malloc(char, need);
*freeMe = temp;
sprintf(temp, "%3s%%", given);
@ -190,8 +190,8 @@ mydraw_mixed_box(WINDOW *win, int y, int x, int height, int width,
dlg_draw_box(win, y, x, height, width, boxchar, borderchar);
{
chtype attr = A_NORMAL;
char *message = _("Overall Progress");
chtype save2 = getattrs(win);
const char *message = _("Overall Progress");
chtype save2 = dlg_get_attrs(win);
wattrset(win, title_attr);
(void) wmove(win, y, x + 2);
dlg_print_text(win, message, width, &attr);
@ -223,7 +223,7 @@ dlg_update_mixedgauge(DIALOG_MIXEDGAUGE * dlg, int percent)
* attribute.
*/
(void) wmove(dlg->dialog, dlg->height - 3, 4);
wattrset(dlg->dialog, title_attr);
wattrset(dlg->dialog, gauge_attr);
for (i = 0; i < (dlg->width - 2 * (3 + MARGIN)); i++)
(void) waddch(dlg->dialog, ' ');

View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1 @@
5

View File

@ -0,0 +1,24 @@
Source: cdialog
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Section: misc
Priority: optional
Standards-Version: 3.8.4
Build-Depends: debhelper (>= 5)
Homepage: http://invisible-island.net/dialog/
Package: cdialog
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: dialog - display dialog boxes from shell scripts
Dialog is a program that will let you to 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):
.
calendar, checklist, dselect, editbox, form, fselect, gauge,
infobox, inputbox, inputmenu, menu, mixedform, mixedgauge,
msgbox (message), passwordbox, passwordform, pause, progressbox,
radiolist, tailbox, tailboxbg, textbox, timebox, and yesno
(yes/no).
.
This package installs as "cdialog" to avoid conflict with other packages.

View File

@ -0,0 +1,111 @@
Upstream source http://invisible-island.net/dialog/dialog.html
Current dialog upstream maintainer: Thomas Dickey <dickey@invisible-island.net>
-------------------------------------------------------------------------------
Files: *.c *.h
Copyright 2000-2008,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.
An earlier version of this program lists as authors
Savio Lam (lam836@cs.cuhk.hk)
-------------------------------------------------------------------------------
Files: aclocal.m4
Licence: other-BSD
Copyright: 1999-2009,2010 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 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'

View File

@ -0,0 +1 @@
README

View File

@ -0,0 +1,95 @@
#!/usr/bin/make -f
# 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)
CFLAGS =
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
CFLAGS="$(CFLAGS)" ./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-libtool \
--with-ncursesw \
--with-package=cdialog \
--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 DESTDIR=$(CURDIR)/debian/cdialog
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_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install install-stamp

View File

@ -0,0 +1 @@
3.0 (native)

View File

@ -0,0 +1,4 @@
version=3
opts=passive ftp://invisible-island.net/dialog/dialog-([\d.]+)\.tgz \
debian uupdate

View File

@ -0,0 +1,79 @@
Summary: dialog - display dialog boxes from shell scripts
%define AppProgram dialog
%define AppVersion 1.1
%define AppRelease 20110302
%define ActualProg c%{AppProgram}
# $XTermId: dialog.spec,v 1.16 2011/03/02 10:08:16 tom Exp $
Name: %{ActualProg}
Version: %{AppVersion}
Release: %{AppRelease}
License: LGPL
Group: Applications/Development
URL: ftp://invisible-island.net/%{AppProgram}
Source0: %{AppProgram}-%{AppVersion}-%{AppRelease}.tgz
Packager: Thomas Dickey <dickey@invisible-island.net>
%description
Dialog is a program that will let you to 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):
calendar, checklist, dselect, editbox, form, fselect, gauge,
infobox, inputbox, inputmenu, menu, mixedform, mixedgauge,
msgbox (message), passwordbox, passwordform, pause, progressbox,
radiolist, tailbox, tailboxbg, textbox, timebox, and yesno
(yes/no).
This package installs as "cdialog" to avoid conflict with other packages.
%prep
%setup -q -n %{AppProgram}-%{AppVersion}-%{AppRelease}
%build
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-libtool \
--with-ncursesw \
--disable-rpath-hack
make
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
make install-full DESTDIR=$RPM_BUILD_ROOT
strip $RPM_BUILD_ROOT%{_bindir}/%{ActualProg}
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{_bindir}/%{ActualProg}
%{_bindir}/%{ActualProg}-config
%{_mandir}/man1/%{ActualProg}.*
%{_mandir}/man3/%{ActualProg}.*
%{_includedir}/%{ActualProg}.h
%{_includedir}/%{ActualProg}/dlg_colors.h
%{_includedir}/%{ActualProg}/dlg_config.h
%{_includedir}/%{ActualProg}/dlg_keys.h
%{_libdir}/lib%{ActualProg}.*
%{_datadir}/locale/*/LC_MESSAGES/%{ActualProg}.mo
%changelog
# each patch should add its ChangeLog entries here
* Thu Dec 30 2010 Thomas Dickey
- initial version

View File

@ -1,9 +1,9 @@
/*
* $Id: pause.c,v 1.22 2010/04/28 00:29:50 tom Exp $
* $Id: pause.c,v 1.26 2011/01/18 10:16:33 tom Exp $
*
* pause.c -- implements the pause dialog
*
* Copyright 2004-2009,2010 Thomas E. Dickey
* Copyright 2004-2010,2011 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
@ -79,7 +79,7 @@ dialog_pause(const char *title,
int key = 0, fkey;
int result = DLG_EXIT_UNKNOWN;
int button_high = (have_buttons ? BTN_HIGH : MARGIN);
int guage_y;
int gauge_y;
char *prompt = dlg_strclone(cprompt);
curs_set(0);
@ -104,7 +104,7 @@ dialog_pause(const char *title,
MIN_HIGH + MARGIN - BTN_HIGH,
MIN_WIDE);
}
guage_y = height - button_high - (1 + 2 * MARGIN);
gauge_y = height - button_high - (1 + 2 * MARGIN);
dlg_print_size(height, width);
dlg_ctl_size(height, width);
@ -129,7 +129,7 @@ dialog_pause(const char *title,
dlg_print_autowrap(dialog, prompt, height, width);
dlg_draw_box(dialog,
guage_y, 2 + MARGIN,
gauge_y, 2 + MARGIN,
2 + MARGIN, width - 2 * (2 + MARGIN),
dialog_attr,
border_attr);
@ -139,13 +139,13 @@ dialog_pause(const char *title,
* in the title-attribute, and write the percentage with that
* attribute.
*/
(void) wmove(dialog, guage_y + MARGIN, 4);
(void) wmove(dialog, gauge_y + MARGIN, 4);
wattrset(dialog, title_attr);
for (i = 0; i < (width - 2 * (3 + MARGIN)); i++)
(void) waddch(dialog, ' ');
(void) wmove(dialog, guage_y + MARGIN, (width / 2) - 2);
(void) wmove(dialog, gauge_y + MARGIN, (width / 2) - 2);
(void) wprintw(dialog, "%3d", seconds);
/*
@ -159,7 +159,7 @@ dialog_pause(const char *title,
} else {
wattrset(dialog, A_REVERSE);
}
(void) wmove(dialog, guage_y + MARGIN, 4);
(void) wmove(dialog, gauge_y + MARGIN, 4);
for (i = 0; i < x; i++) {
chtype ch = winch(dialog);
if (title_attr & A_REVERSE) {
@ -215,10 +215,7 @@ dialog_pause(const char *title,
FALSE, width);
break;
case DLGK_ENTER:
/* Do not use dlg_exit_buttoncode() since we want to return
* a cancel rather than ok if the timeout has not expired.
*/
result = button ? DLG_EXIT_CANCEL : DLG_EXIT_OK;
result = dlg_ok_buttoncode(button);
break;
case DLGK_MOUSE(0):
result = DLG_EXIT_OK;
@ -229,7 +226,6 @@ dialog_pause(const char *title,
case ERR:
break;
default:
result = DLG_EXIT_OK;
break;
}
}

View File

@ -7,62 +7,63 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "نعم"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "لا"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "موافق"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "إلغاء"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr ""
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr ""
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr ""
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr ""
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr ""
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr ""
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr ""
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr ""
@ -106,6 +107,6 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr ""

View File

@ -8,61 +8,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Да"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Не"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr ""
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Отказ"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr ""
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr ""
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr ""
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr ""
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr ""
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr ""
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr ""
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr ""
@ -106,6 +107,6 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr ""

View File

@ -7,61 +7,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-07-20 14:31-0400\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Sí"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "No"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "D'acord"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Cancel·la"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "SURT"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Ajuda"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mes"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Any"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Canvia el nom"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Directoris"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Fitxers"
@ -105,6 +106,6 @@ msgstr "N/D"
msgid "Overall Progress"
msgstr "Progrés general"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Cerca"

View File

@ -5,61 +5,62 @@ msgid ""
msgstr ""
"Project-Id-Version: Dialog\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-06-18 18:26-0400\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ie"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Na"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Iawn"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Diddymu"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "GADAEL"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ychwanegol"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Cymorth"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mis"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Blwyddyn"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Ailenwy"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Cyfeiriaduron"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Ffeiliau"
@ -104,7 +105,7 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
#, fuzzy
msgid "Search"
msgstr "Search"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog-1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-22 07:05-0500\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ja"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nej"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "O.K."
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Anullér"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "AFSLUT"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ekstra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Hjælp"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Måned"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "År"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Omdøb"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Kataloger"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Filer"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Samlet status"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Søg"

View File

@ -8,61 +8,62 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2009-11-08 23:48+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"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Ja"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nein"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Abbrechen"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "VERLASSEN"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Hilfe"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Monat"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Jahr"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Bearbeiten"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Verzeichnisse"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Dateien"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Gesamtfortschritt"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Suche"

View File

@ -1,12 +1,12 @@
# Dialog
# Copyright 2003-2007,2008 # Thomas Dickey
# Copyright 2003-2010,2011 # Thomas Dickey
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20080316\n"
"Project-Id-Version: dialog 1.1.20110116\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-06-18 18:26-0400\n"
"POT-Creation-Date: 2011-01-16 17:57-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"
@ -14,53 +14,53 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr ""
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr ""
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr ""
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr ""
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr ""
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr ""
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr ""
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr ""
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr ""
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr ""
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr ""
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr ""
@ -104,6 +104,6 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr ""

View File

@ -6,61 +6,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-25 16:06-0500\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:379
#: buttons.c:387
msgid "Yes"
msgstr "Jes"
#: buttons.c:387
#: buttons.c:395
msgid "No"
msgstr "Ne"
#: buttons.c:395
#: buttons.c:403
msgid "OK"
msgstr "Certe"
#: buttons.c:403
#: buttons.c:411
msgid "Cancel"
msgstr "Rezigni"
#: buttons.c:411
#: buttons.c:419
msgid "EXIT"
msgstr "ELIRI"
#: buttons.c:419
#: buttons.c:427
msgid "Extra"
msgstr "Krome"
#: buttons.c:427
#: buttons.c:435
msgid "Help"
msgstr "Helpo"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Monato"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Jaro"
#: dialog.c:727
#: dialog.c:756
msgid "Rename"
msgstr "Renomigi"
#: fselect.c:548
#: fselect.c:571
msgid "Directories"
msgstr "Dosierujoj"
#: fselect.c:549
#: fselect.c:572
msgid "Files"
msgstr "Dosieroj"
@ -104,6 +105,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Tuta Evoluo"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Serĉi"

View File

@ -7,61 +7,62 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2010-02-14 14:26+0100\n"
"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
"Language-Team: Spanish <es@li.org>\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
#: buttons.c:387
msgid "Yes"
msgstr "Sí"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "No"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Aceptar"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Cancelar"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Salir"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Ayuda"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mes"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Año"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Renombrar"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Directorios"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Ficheros"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Progreso total"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Buscar"

View File

@ -7,62 +7,63 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Bai"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Ez"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Ados"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Utzi"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "IRTEN"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Gehigarria"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Laguntza"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Hilabetea"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Urtea"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Berizendatu"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Direktorioak"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Fitxategiak"
@ -106,6 +107,6 @@ msgstr "E/G"
msgid "Overall Progress"
msgstr "Aurrerapen nagusia"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Bilaketa"

View File

@ -1,111 +1,114 @@
# 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.0-rel20041222\n"
"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: 2005-03-07 19:15+0200\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Kyllä"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Ei"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
msgstr "Valmis"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Peru"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Poistu"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Painike"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Ohje"
msgstr "Opaste"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Kuukausi"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Vuosi"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Nimeä"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Kansiot"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Tiedostot"
#: mixedgauge.c:58
msgid "Succeeded"
msgstr ""
msgstr "Onnistui"
#: mixedgauge.c:61
#, fuzzy
msgid "Failed"
msgstr "Tiedostot"
msgstr "Epäonnistui"
#: mixedgauge.c:64
msgid "Passed"
msgstr ""
msgstr "Hyväksytty"
#: mixedgauge.c:67
msgid "Completed"
msgstr ""
msgstr "Valmis"
#: mixedgauge.c:70
msgid "Checked"
msgstr ""
msgstr "Valittu"
#: mixedgauge.c:73
msgid "Done"
msgstr ""
msgstr "Valmis"
#: mixedgauge.c:76
msgid "Skipped"
msgstr ""
msgstr "Ohitettiin"
#: mixedgauge.c:79
msgid "In Progress"
msgstr ""
msgstr "Edistyminen"
#: mixedgauge.c:85
msgid "N/A"
msgstr ""
msgstr "N/A"
#: mixedgauge.c:193
msgid "Overall Progress"
msgstr ""
msgstr "Kokonaisedistyminen"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Etsi"

View File

@ -7,61 +7,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Oui"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Non"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Accepter"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Annuler"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "SORTIR"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Aide"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mois"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Année"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Renommer"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Répertoires"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Fichiers"
@ -105,6 +106,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Avancement général"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Rechercher"

View File

@ -5,61 +5,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Tá"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Níl"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Cealaigh"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "SCOIR"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Breise"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Cabhair"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mí"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Bliain"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Athainmnigh"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Comhadlanna"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Comhaid"
@ -103,6 +104,6 @@ msgstr "N/A/F"
msgid "Overall Progress"
msgstr "Dul Chun Cinn Iomlán"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Cuardaigh"

View File

@ -7,61 +7,62 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2008-05-13 23:57+0100\n"
"Last-Translator: Diego Pérez Montes <kabute@gulo.org>\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"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Sí"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Non"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Aceptar"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Cancelar"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "SAÍR"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Suplementario"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Axuda"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mes"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Ano"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Renomear"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Directorios"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Ficheiros"
@ -105,6 +106,6 @@ msgstr "Non Dispoñible"
msgid "Overall Progress"
msgstr "Progreso Total"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Procurar"

View File

@ -6,61 +6,62 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2004-07-25 14:52+0200\n"
"Last-Translator: Krunoslav Gernhard <kruno@linux.hr>\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"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Da"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Ne"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "U redu"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Otkaži"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr ""
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr ""
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr ""
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr ""
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr ""
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr ""
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr ""
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr ""
@ -104,6 +105,6 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr ""

View File

@ -7,61 +7,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-29 19:30-0400\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ya"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Tidak"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Batal"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "KELUAR"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ekstra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Bantuan"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Bulan"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Tahun"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Ganti Nama"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Kamus"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Berkas"
@ -105,6 +106,6 @@ msgstr "Tak Tersedia"
msgid "Overall Progress"
msgstr "Keseluruhan Proses"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Telusur"

View File

@ -7,62 +7,63 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Já"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nei"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Í lagi"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Hætta við"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "LOKA"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Auka"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Hjálp"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mánuður"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Ár"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Endurnefna"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Möppur"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Skrár"
@ -106,6 +107,6 @@ msgstr "Ekki tiltækt"
msgid "Overall Progress"
msgstr "Heildarframvinda"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Leita"

View File

@ -8,61 +8,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Sì"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "No"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Annulla"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Esci"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Aiuto"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mese"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Anno"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Rinomina"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Cartelle"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "File"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Progresso complessivo"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Ricerca"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-07-27 18:05-0400\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=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "はい"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "いいえ"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "了解"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "取消"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "終了"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "拡張"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "ヘルプ"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "月"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "年"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "名前変更"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "ディレクトリ"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "ファイル"
@ -106,6 +107,6 @@ msgstr "̵
msgid "Overall Progress"
msgstr "全体の進行状況"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "調査"

View File

@ -7,63 +7,64 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Erê"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Na"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "TEMAM"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Betal"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "DERKETIN"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ekstra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Alîkarî"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Meh"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Sal"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Nav guherandin"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Peldank"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Pel"
@ -107,6 +108,6 @@ msgstr "Tune"
msgid "Overall Progress"
msgstr "Pêşketina Giştî"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Lêgerîn"

View File

@ -6,63 +6,64 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2008-05-14 02:51+0300\n"
"Last-Translator: Gintautas Miliauskas <gintas@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"
"X-Generator: KBabel 1.11.4\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"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Taip"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Ne"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Atmesti"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "IŠEITI"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Papildoma"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Žinynas"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mėnuo"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Metai"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Pervadinti"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Aplankai"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Failai"
@ -106,6 +107,6 @@ msgstr "N/d"
msgid "Overall Progress"
msgstr "Bendras progresas"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Ieškoti"

View File

@ -1,6 +1,6 @@
# 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.
@ -8,63 +8,64 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2009-04-11 20:50+0300\n"
"Last-Translator: Rihards Prieditis <RPrieditis@inbox.lv>\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 0.3\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Jā"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nē"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Labi"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Atcelt"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "IZIET"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Papildus"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Palīdzība"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mēnesis"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Gads"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Pārdēvēt"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Direktorijas"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Faili"
@ -108,6 +109,6 @@ msgstr "n/z"
msgid "Overall Progress"
msgstr "Vispārējais progress"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Meklēt"

View File

@ -8,6 +8,7 @@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
NLS_TEXTDOMAIN = @NLS_TEXTDOMAIN@
SHELL = /bin/sh
@SET_MAKE@
@ -26,7 +27,6 @@ subdir = po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
DESTDIR = @DESTDIR@
CC = @CC@
@ -84,7 +84,7 @@ all-yes: $(SOURCES) $(CATALOGS)
all-no:
$(srcdir)/$(PACKAGE).pot: $(POTFILES)
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
$(XGETTEXT) --default-domain=$(NLS_TEXTDOMAIN) --directory=$(top_srcdir) \
--add-comments --keyword=_ --keyword=N_ \
--files-from=$(srcdir)/POTFILES.in \
&& test ! -f $(PACKAGE).po \
@ -111,12 +111,8 @@ install-exec:
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
mkdir -p $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
@mkdir -p $(DESTDIR)$(datadir); \
catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
case "$$cat" in \
@ -125,39 +121,31 @@ install-data-yes: all
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $$dir; \
else \
mkdir -p $$dir; \
fi; \
mkdir -p $$dir; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
$(INSTALL_DATA) $$cat $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT)"; \
else \
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT); \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
"$$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT)"; \
fi; \
if test -r $$cat.m; then \
$(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
$(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/$(PACKAGE)$(INSTOBJEXT).m; \
$$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m; \
echo "installing $(srcdir)/$$cat as" \
"$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
"$$dir/$(NLS_TEXTDOMAIN)$(INSTOBJEXT).m"; \
else \
true; \
fi; \
fi; \
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r "$(MKINSTALLDIRS)"; then \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
mkdir -p $(DESTDIR)$(gettextsrcdir); \
fi; \
if test "$(NLS_TEXTDOMAIN)" = "gettext"; then \
mkdir -p $(DESTDIR)$(gettextsrcdir); \
$(INSTALL_DATA) $(srcdir)/makefile.inn \
$(DESTDIR)$(gettextsrcdir)/makefile.inn; \
else \
@ -172,10 +160,10 @@ uninstall:
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
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

View File

@ -6,61 +6,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ya"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Tidak"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Batal"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "KELUAR"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ekstra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Bantuan"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Bulan"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Tahun"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Tukar nama"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Direktori"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Fail"
@ -104,6 +105,6 @@ msgstr "Tiada"
msgid "Overall Progress"
msgstr "Kemajuan Keseluruhan"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Cari"

View File

@ -8,62 +8,63 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ja"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nee"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Annuleren"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Afsluiten"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Help"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Maand"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Jaar"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Hernoemen"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Mappen"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Bestanden"
@ -107,6 +108,6 @@ msgstr "Onbeschikbaar"
msgid "Overall Progress"
msgstr "Voortgang"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Zoeken"

View File

@ -7,63 +7,64 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-29 19:30-0400\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Tak"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nie"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Anuluj"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "WYJDŹ"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Ekstra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Pomoc"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Miesiąc"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Rok"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Zmień nazwę"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Katalogi"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Pliki"
@ -107,6 +108,6 @@ msgstr "Brak"
msgid "Overall Progress"
msgstr "Ogólny postęp"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Szukaj"

View File

@ -9,61 +9,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-29 19:30-0400\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Sim"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Não"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Aceitar"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Cancelar"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Sair"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Ajuda"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mês"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Ano"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Renomear"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Diretórios"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Arquivos"
@ -107,6 +108,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "Progresso Global"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Pesquisa"

View File

@ -9,63 +9,64 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-22 07:05-0500\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:385
#: buttons.c:387
msgid "Yes"
msgstr "Да"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Нет"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Отмена"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Выход"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Дополнительно"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Справка"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Месяц"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Год"
#: dialog.c:744
#: dialog.c:756
msgid "Rename"
msgstr "Переименовать"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Каталоги"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Файлы"
@ -109,6 +110,6 @@ msgstr "Н/Д"
msgid "Overall Progress"
msgstr "Всего выполнено"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Поиск"

112
contrib/dialog/po/sl.po Normal file
View File

@ -0,0 +1,112 @@
# 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"

View File

@ -7,61 +7,62 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2004-11-18 02:28+0100\n"
"Last-Translator: Elian Myftiu <elian@lycos.com>\n"
"Language-Team: Albanian <gnome-albanian-perkthyesit@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"
#: buttons.c:385
#: buttons.c:387
msgid "Yes"
msgstr "Po"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Jo"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "mirë"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Anullo"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Dal"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr ""
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr ""
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr ""
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr ""
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr ""
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr ""
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr ""
@ -105,6 +106,6 @@ msgstr ""
msgid "Overall Progress"
msgstr ""
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr ""

View File

@ -6,61 +6,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ja"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Nej"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "OK"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Avbryt"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "AVSLUTA"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Extra"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Hjälp"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Månad"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "År"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Byt namn"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Kataloger"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Filer"
@ -104,6 +105,6 @@ msgstr "Inte tillgänglig"
msgid "Overall Progress"
msgstr "Totalt förlopp"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Sök"

View File

@ -7,61 +7,62 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "Ndio"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "Hapana"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "Sawa"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "Ghahiri"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "Funga"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "Nyongeza"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "Msaada"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "Mwezi"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "Mwaka"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "Badili jina"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "Masaraka"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "Mafaili"
@ -105,6 +106,6 @@ msgstr "Haitumiki"
msgid "Overall Progress"
msgstr "Maendeleo kwa ujumla"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "Tafuta"

View File

@ -6,63 +6,64 @@ 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"
"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:385
#: buttons.c:387
msgid "Yes"
msgstr "ใช่"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "ไม่"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "ตกลง"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "ยกเลิก"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "ออก"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "เพิ่มเติม"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "ช่วยเหลือ"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "เดือน"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "ปี"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "เปลี่ยนชื่อ"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "ไดเร็กทอรี่"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "ไฟล์"
@ -106,6 +107,6 @@ msgstr "ไม่มีอยู่"
msgid "Overall Progress"
msgstr "ความก้าวหน้าทั้งสิ้น"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "ค้นหา"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-25 16:06-0500\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:379
#: buttons.c:387
msgid "Yes"
msgstr "是"
#: buttons.c:387
#: buttons.c:395
msgid "No"
msgstr "否"
#: buttons.c:395
#: buttons.c:403
msgid "OK"
msgstr "确认"
#: buttons.c:403
#: buttons.c:411
msgid "Cancel"
msgstr "取消"
#: buttons.c:411
#: buttons.c:419
msgid "EXIT"
msgstr "退出"
#: buttons.c:419
#: buttons.c:427
msgid "Extra"
msgstr "附加"
#: buttons.c:427
#: buttons.c:435
msgid "Help"
msgstr "帮助"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "月"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "年"
#: dialog.c:727
#: dialog.c:756
msgid "Rename"
msgstr "重命名"
#: fselect.c:548
#: fselect.c:571
msgid "Directories"
msgstr "目录"
#: fselect.c:549
#: fselect.c:572
msgid "Files"
msgstr "文件"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress"
msgstr "整体进度"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "搜索"

View File

@ -7,62 +7,63 @@ 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"
"POT-Creation-Date: 2011-01-16 17:57-0500\n"
"PO-Revision-Date: 2007-12-19 23:39+0800\n"
"Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\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
#: buttons.c:387
msgid "Yes"
msgstr "是"
#: buttons.c:393
#: buttons.c:395
msgid "No"
msgstr "否"
#: buttons.c:401
#: buttons.c:403
msgid "OK"
msgstr "確定"
#: buttons.c:409
#: buttons.c:411
msgid "Cancel"
msgstr "取消"
#: buttons.c:417
#: buttons.c:419
msgid "EXIT"
msgstr "離開"
#: buttons.c:425
#: buttons.c:427
msgid "Extra"
msgstr "其他"
#: buttons.c:433
#: buttons.c:435
msgid "Help"
msgstr "求助"
#. Headline "Month"
#: calendar.c:273
#: calendar.c:298
msgid "Month"
msgstr "月"
#. Headline "Year"
#: calendar.c:293
#: calendar.c:318
msgid "Year"
msgstr "年"
#: dialog.c:741
#: dialog.c:756
msgid "Rename"
msgstr "更名"
#: fselect.c:550
#: fselect.c:571
msgid "Directories"
msgstr "目錄"
#: fselect.c:551
#: fselect.c:572
msgid "Files"
msgstr "檔案"
@ -106,6 +107,6 @@ msgstr "不明"
msgid "Overall Progress"
msgstr "整體進度"
#: textbox.c:489
#: textbox.c:468
msgid "Search"
msgstr "搜尋"

111
contrib/dialog/prgbox.c Normal file
View File

@ -0,0 +1,111 @@
/*
* $Id: prgbox.c,v 1.6 2011/03/02 09:59:26 tom Exp $
*
* prgbox.c -- implements the prg box
*
* Copyright 2011 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 as
* published by the Free Software Foundation; either version 2.1 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
* 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>
/*
* Open a pipe which ties stderr and stdout together.
*/
static FILE *
dlg_popen(const char *command, const char *type)
{
FILE *result = 0;
int fd[2];
int pid;
char *blob;
char **argv;
if ((*type == 'r' || *type != 'w') && pipe(fd) == 0) {
switch (pid = 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(4 + strlen(command))) != 0) {
sprintf(blob, "-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;
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);
return code;
}

View File

@ -1,9 +1,10 @@
/*
* $Id: progressbox.c,v 1.8 2010/01/12 10:46:24 tom Exp $
* $Id: progressbox.c,v 1.11 2011/03/02 01:10:08 tom Exp $
*
* progressbox.c -- implements the progress box
*
* Copyright 2005 Valery Reznic
* Copyright 2006-2011 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 as
@ -103,18 +104,77 @@ print_line(MY_OBJ * obj, WINDOW *win, int row, int width)
(void) waddch(win, ' ');
}
/*
* Display text from a stdin in a scrolling window.
*/
static int
pause_for_ok(WINDOW *dialog, int height, int width)
{
/* *INDENT-OFF* */
static DLG_KEYS_BINDING binding[] = {
ENTERKEY_BINDINGS,
DLG_KEYS_DATA( DLGK_ENTER, ' ' ),
END_KEYS_BINDING
};
/* *INDENT-ON* */
int button = 0;
int key = 0, fkey;
int result = DLG_EXIT_UNKNOWN;
const char **buttons = dlg_ok_label();
int check;
dlg_register_window(dialog, "progressbox", binding);
dlg_register_buttons(dialog, "progressbox", buttons);
dlg_draw_bottom_box(dialog);
mouse_mkbutton(height - 2, width / 2 - 4, 6, '\n');
dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width);
while (result == DLG_EXIT_UNKNOWN) {
key = dlg_mouse_wgetch(dialog, &fkey);
if (dlg_result_key(key, fkey, &result))
break;
if (!fkey && (check = dlg_char_to_button(key, buttons)) >= 0) {
result = check ? DLG_EXIT_HELP : DLG_EXIT_OK;
break;
}
if (fkey) {
switch (key) {
case DLGK_ENTER:
result = button ? DLG_EXIT_HELP : DLG_EXIT_OK;
break;
case DLGK_MOUSE(0):
result = DLG_EXIT_OK;
break;
case DLGK_MOUSE(1):
result = DLG_EXIT_HELP;
break;
default:
beep();
break;
}
} else {
beep();
}
}
dlg_unregister_window(dialog);
return result;
}
int
dialog_progressbox(const char *title, const char *cprompt, int height, int width)
dlg_progressbox(const char *title,
const char *cprompt,
int height,
int width,
int pauseopt,
FILE *fp)
{
int i;
int x, y, thigh;
WINDOW *dialog, *text;
MY_OBJ *obj;
FILE *fd = dialog_state.pipe_input;
char *prompt = dlg_strclone(cprompt);
int result;
dlg_tab_correct_str(prompt);
dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE);
@ -157,9 +217,9 @@ dialog_progressbox(const char *title, const char *cprompt, int height, int width
(void) wnoutrefresh(dialog);
obj = dlg_calloc(MY_OBJ, 1);
assert_ptr(obj, "dialog_progressbox");
assert_ptr(obj, "dlg_progressbox");
obj->obj.input = fd;
obj->obj.input = fp;
obj->obj.win = dialog;
obj->text = text;
@ -173,15 +233,41 @@ dialog_progressbox(const char *title, const char *cprompt, int height, int width
scrollok(text, FALSE);
print_line(obj, text, thigh - 1, width - (2 * MARGIN));
}
(void) wnoutrefresh(text);
(void) wrefresh(text);
if (obj->is_eof)
break;
}
dlg_unregister_window(text);
if (pauseopt) {
scrollok(text, TRUE);
wscrl(text, 1 + MARGIN);
(void) wrefresh(text);
result = pause_for_ok(dialog, height, width);
} else {
wrefresh(dialog);
result = DLG_EXIT_OK;
}
dlg_del_window(dialog);
free(prompt);
free(obj);
return DLG_EXIT_OK;
}
/*
* 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;
}

59
contrib/dialog/rename.sh Executable file
View File

@ -0,0 +1,59 @@
#! /bin/sh
# $Id: rename.sh,v 1.3 2011/01/06 10:51:02 tom Exp $
##############################################################################
# Copyright (c) 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. #
##############################################################################
# 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," \
<$SOURCE >source.tmp
"$@" source.tmp $TARGET
rm -f source.tmp

View File

@ -1,6 +1,14 @@
# $Id: debian.rc,v 1.4 2005/12/01 01:18:57 tom Exp $
# $Id: debian.rc,v 1.5 2011/01/17 00:14:53 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
@ -115,3 +123,9 @@ form_active_text_color = (WHITE,BLUE,ON)
# 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)

View File

@ -1,5 +1,5 @@
#! /bin/sh
# $Id: infobox5,v 1.6 2010/01/13 10:20:03 tom Exp $
# $Id: infobox5,v 1.7 2011/01/18 09:19:09 tom Exp $
# get rid of all flickering by constructing a script unroll the loop, leaving
# us in curses-mode until we're done counting.
@ -21,7 +21,7 @@ do
cat >>$tempfile <<EOF
--sleep 1 \
--begin 0 5 \
--title "INFO BOX" "$@" \
--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

View File

@ -1,5 +1,5 @@
#! /bin/sh
# $Id: infobox6,v 1.6 2010/01/13 10:20:03 tom Exp $
# $Id: infobox6,v 1.7 2011/01/18 09:20:59 tom Exp $
# get rid of all flickering by constructing a script unroll the loop, leaving
# us in curses-mode until we're done counting.
#
@ -23,7 +23,7 @@ do
cat >>$tempfile <<EOF
--sleep 1 \
--begin $left `expr $left + 5` \
--title "INFO BOX" $last "$@" \
--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

View File

@ -0,0 +1,14 @@
#!/bin/sh
# $Id: msgbox-utf8,v 1.1 2011/01/18 00:25:30 tom Exp $
# from Debian #570634
. ./setup-vars
. ./setup-utf8
${DIALOG-dialog} "$@" \
--title "ทดสอบวรรณยุกต์" \
--msgbox "วรรณยุกต์อยู่ท้ายบรรทัดได้หรือไม่" 8 23
retval=$?
. ./report-button

View File

@ -0,0 +1,14 @@
#!/bin/sh
# $Id: pause-both,v 1.1 2011/01/18 09:49:24 tom Exp $
. ./setup-vars
$DIALOG --title "PAUSE" \
--help-button \
--extra-button "$@" \
--pause "Hi, this is a pause widget" 20 70 10
retval=$?
echo return $retval
. ./report-button

View File

@ -0,0 +1,13 @@
#!/bin/sh
# $Id: pause-extra,v 1.1 2011/01/18 09:49:07 tom Exp $
. ./setup-vars
$DIALOG --title "PAUSE" \
--extra-button "$@" \
--pause "Hi, this is a pause widget" 20 70 10
retval=$?
echo return $retval
. ./report-button

6
contrib/dialog/samples/prgbox Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# $Id: prgbox,v 1.1 2011/03/02 00:10:54 tom Exp $
. ./setup-vars
$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist" 20 70

6
contrib/dialog/samples/prgbox2 Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# $Id: prgbox2,v 1.1 2011/03/02 01:25:54 tom Exp $
. ./setup-vars
$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist 3" 20 70

View File

@ -0,0 +1,19 @@
#!/bin/sh
# $Id: programbox,v 1.1 2011/03/02 01:17:28 tom Exp $
. ./setup-vars
. ./setup-tempfile
ls -1 >$tempfile
(
while true
do
read text
test -z "$text" && break
ls -ld "$text"
sleep 0.1
done <$tempfile
) |
$DIALOG --title "PROGRAMBOX" "$@" --programbox 20 70

View File

@ -0,0 +1,19 @@
#!/bin/sh
# $Id: programbox2,v 1.1 2011/03/02 01:25:31 tom Exp $
. ./setup-vars
. ./setup-tempfile
ls -1 >$tempfile
(
while true
do
read text
test -z "$text" && break
ls -ld "$text"
sleep 0.1
done <$tempfile
) |
$DIALOG --title "PROGRAMBOX" "$@" --programbox "ProgramBox" 20 70

View File

@ -1,6 +1,10 @@
# $Id: setup-vars,v 1.1 2010/01/13 00:16:38 tom Exp $
# $Id: setup-vars,v 1.2 2011/01/04 00:21:43 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}

View File

@ -0,0 +1,19 @@
#!/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

View File

@ -1,4 +1,5 @@
# $Id: slackware.rc,v 1.6 2005/12/01 01:20:16 tom Exp $
# $Id: slackware.rc,v 1.7 2011/01/17 00:14:41 tom Exp $
# vile:confmode
# Run-time configuration file for dialog, matches Slackware color scheme.
#
# Types of values:
@ -122,3 +123,9 @@ form_active_text_color = (BLUE,WHITE,OFF)
# 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)

View File

@ -1,4 +1,5 @@
# $Id: sourcemage.rc,v 1.3 2005/12/01 01:20:45 tom Exp $
# $Id: sourcemage.rc,v 1.4 2011/01/17 00:14:25 tom Exp $
# vile:confmode
# Run-time configuration file for dialog, matches SourceMage color scheme.
#
# Types of values:
@ -121,3 +122,9 @@ form_active_text_color = (BLACK,WHITE,OFF)
# Form text color
form_text_color = (RED,BLACK,ON)
# Readonly form item color
form_item_readonly_color = (CYAN,WHITE,ON)
# Dialog box gauge color
gauge_color = (BLUE,WHITE,ON)

View File

@ -1,4 +1,5 @@
# $Id: suse.rc,v 1.2 2007/02/25 17:49:12 tom Exp $
# $Id: suse.rc,v 1.3 2011/01/17 00:15:27 tom Exp $
# vile:confmode
# Run-time configuration file for dialog, matches SuSE color scheme.
#
# Types of values:
@ -124,3 +125,6 @@ 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)

View File

@ -0,0 +1,21 @@
#!/bin/sh
# $Id: textbox-both,v 1.1 2011/01/18 09:59:47 tom Exp $
. ./setup-vars
. ./setup-tempfile
TEXT=/usr/share/common-licenses/GPL
test -f $TEXT || TEXT=../COPYING
cat textbox.txt | expand > $tempfile
cat $TEXT | expand >> $tempfile
$DIALOG --clear --title "TEXT BOX" \
--help-button \
--extra-button "$@" \
--textbox "$tempfile" 22 77
retval=$?
. ./report-button

View File

@ -0,0 +1,20 @@
#!/bin/sh
# $Id: textbox-help,v 1.1 2011/01/18 09:59:20 tom Exp $
. ./setup-vars
. ./setup-tempfile
TEXT=/usr/share/common-licenses/GPL
test -f $TEXT || TEXT=../COPYING
cat textbox.txt | expand > $tempfile
cat $TEXT | expand >> $tempfile
$DIALOG --clear --title "TEXT BOX" \
--help-button "$@" \
--textbox "$tempfile" 22 77
retval=$?
. ./report-button

View File

@ -1,5 +1,13 @@
# $Id: whiptail.rc,v 1.2 2005/12/01 01:21:31 tom Exp $
# $Id: whiptail.rc,v 1.3 2011/01/17 00:15:54 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
@ -114,3 +122,9 @@ form_active_text_color = (WHITE,BLUE,ON)
# 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)

View File

@ -1,9 +1,9 @@
/*
* $Id: tailbox.c,v 1.56 2010/04/28 20:52:20 tom Exp $
* $Id: tailbox.c,v 1.61 2011/01/16 21:48:16 tom Exp $
*
* tailbox.c -- implements the tail box
* tailbox.c -- implements the tail box
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -26,6 +26,7 @@
#include <dialog.h>
#include <dlg_keys.h>
#include <sys/stat.h>
typedef struct {
DIALOG_CALLBACK obj;
@ -34,6 +35,7 @@ typedef struct {
int hscroll;
int old_hscroll;
char line[MAX_LEN + 1];
off_t last_pos;
} MY_OBJ;
/*
@ -106,14 +108,15 @@ static void
last_lines(MY_OBJ * obj, int target)
{
FILE *fp = obj->obj.input;
long inx;
size_t inx;
int count = 0;
char buf[BUFSIZ + 1];
long size_to_read;
size_t size_to_read;
size_t size_as_read;
long offset = 0;
long fpos = 0;
if (fseek(fp, 0, SEEK_END) == -1
if (fseek(fp, 0L, SEEK_END) == -1
|| (fpos = ftell(fp)) < 0)
dlg_exiterr("Error moving file pointer in last_lines().");
@ -123,21 +126,27 @@ last_lines(MY_OBJ * obj, int target)
if (fpos >= BUFSIZ) {
size_to_read = BUFSIZ;
} else {
size_to_read = fpos;
size_to_read = (size_t) fpos;
}
fpos = fpos - size_to_read;
fpos = fpos - (long) size_to_read;
if (fseek(fp, fpos, SEEK_SET) == -1)
dlg_exiterr("Error moving file pointer in last_lines().");
(void) fread(buf, (size_t) size_to_read, 1, fp);
size_as_read = fread(buf, sizeof(char), size_to_read, fp);
if (ferror(fp))
dlg_exiterr("Error reading file in last_lines().");
offset += size_to_read;
for (inx = size_to_read - 1; inx >= 0; --inx) {
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 = inx + 1;
offset = (long) (inx + 1);
}
}
@ -181,15 +190,34 @@ print_last_page(MY_OBJ * obj)
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
handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result)
{
@ -231,8 +259,8 @@ handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result)
clearerr(cb->input);
ch = getc(cb->input);
(void) ungetc(ch, cb->input);
if ((ch != EOF) || (obj->hscroll != obj->old_hscroll)) {
repaint_text(obj);
if (ch != EOF) {
handle_input(cb);
}
break;
case ESC:
@ -327,6 +355,7 @@ dialog_tailbox(const char *title, const char *file, int height, int width, int b
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 = bg_task;
obj->text = text;

View File

@ -1,9 +1,9 @@
/*
* $Id: textbox.c,v 1.97 2010/04/28 21:03:44 tom Exp $
* $Id: textbox.c,v 1.99 2011/01/16 22:20:34 tom Exp $
*
* textbox.c -- implements the text box
* textbox.c -- implements the text box
*
* Copyright 2000-2009,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -72,7 +72,7 @@ lseek_obj(MY_OBJ * obj, long offset, int mode)
static long
ftell_obj(MY_OBJ * obj)
{
return lseek_obj(obj, 0, SEEK_CUR);
return lseek_obj(obj, 0L, SEEK_CUR);
}
static char *
@ -309,7 +309,7 @@ back_lines(MY_OBJ * obj, long n)
/* Really possible to move backward BUF_SIZE/2 bytes? */
if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) {
/* No, move less than */
lseek_obj(obj, 0, SEEK_SET);
lseek_obj(obj, 0L, SEEK_SET);
val_to_tabize = fpos - obj->fd_bytes_read;
} else { /* Move backward BUF_SIZE/2 bytes */
lseek_obj(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read), SEEK_CUR);
@ -340,7 +340,7 @@ back_lines(MY_OBJ * obj, long n)
/* Really possible to move backward BUF_SIZE/2 bytes? */
if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) {
/* No, move less than */
lseek_obj(obj, 0, SEEK_SET);
lseek_obj(obj, 0L, SEEK_SET);
val_to_tabize = fpos - obj->fd_bytes_read;
} else { /* Move backward BUF_SIZE/2 bytes */
lseek_obj(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read), SEEK_CUR);
@ -465,7 +465,7 @@ get_search_term(WINDOW *dialog, char *input, int height, int width)
int fkey = 0;
bool first = TRUE;
int result = DLG_EXIT_UNKNOWN;
char *caption = _("Search");
const char *caption = _("Search");
int len_caption = dlg_count_columns(caption);
const int *indx;
int limit;
@ -590,7 +590,7 @@ perform_search(MY_OBJ * obj, int height, int width, int key, char *search_term)
while ((found = match_string(obj, search_term)) == FALSE) {
if (obj->begin_reached)
break;
back_lines(obj, 2);
back_lines(obj, 2L);
}
}
if (found == FALSE) { /* not found */
@ -609,7 +609,7 @@ perform_search(MY_OBJ * obj, int height, int width, int key, char *search_term)
*/
back_lines(obj, obj->page_length);
} else { /* Search term found */
back_lines(obj, 1);
back_lines(obj, 1L);
}
/* Reprint page */
wattrset(obj->text, dialog_attr);
@ -691,10 +691,10 @@ dialog_textbox(const char *title, const char *file, int height, int width)
/* Get file size. Actually, 'file_size' is the real file size - 1,
since it's only the last byte offset from the beginning */
obj.file_size = lseek_obj(&obj, 0, SEEK_END);
obj.file_size = lseek_obj(&obj, 0L, SEEK_END);
/* Restore file pointer to beginning of file after getting file size */
lseek_obj(&obj, 0, SEEK_SET);
lseek_obj(&obj, 0L, SEEK_SET);
read_high(&obj, BUF_SIZE);
@ -829,7 +829,7 @@ dialog_textbox(const char *title, const char *file, int height, int width)
if (fpos > obj.fd_bytes_read) {
/* Yes, we have to read it in */
lseek_obj(&obj, 0, SEEK_SET);
lseek_obj(&obj, 0L, SEEK_SET);
read_high(&obj, BUF_SIZE);
}
@ -849,7 +849,7 @@ dialog_textbox(const char *title, const char *file, int height, int width)
read_high(&obj, BUF_SIZE);
}
obj.in_buf = obj.bytes_read;
back_lines(&obj, PAGE_LENGTH);
back_lines(&obj, (long) PAGE_LENGTH);
moved = TRUE;
break;
case DLGK_GRID_UP: /* Previous line */

View File

@ -1,9 +1,9 @@
/*
* $Id: timebox.c,v 1.41 2010/01/18 10:33:42 tom Exp $
* $Id: timebox.c,v 1.43 2011/01/18 01:07:45 Garrett.Cooper Exp $
*
* timebox.c -- implements the timebox dialog
*
* Copyright 2001-2009,2010 Thomas E. Dickey
* Copyright 2001-2010,2011 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
@ -97,6 +97,8 @@ init_object(BOX * data,
int period, int value,
int code)
{
(void) code;
data->parent = parent;
data->x = x;
data->y = y;
@ -210,6 +212,11 @@ dialog_timebox(const char *title,
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);

View File

@ -1,9 +1,9 @@
/*
* $Id: trace.c,v 1.11 2010/01/17 15:36:26 tom Exp $
* $Id: trace.c,v 1.12 2011/01/13 01:36:34 tom Exp $
*
* trace.c -- implements screen-dump and keystroke-logging
*
* Copyright 2007-2008,2010 Thomas E. Dickey
* Copyright 2007-2010,2011 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
@ -29,6 +29,13 @@
#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,...)
{
@ -115,6 +122,8 @@ dlg_trace_chr(int ch, int fkey)
CASE(DLGK_TRACE);
}
}
} else if (ch == ERR) {
fkey_name = "ERR";
} else {
fkey_name = unctrl((chtype) ch);
if (fkey_name == 0)
@ -134,13 +143,11 @@ dlg_trace(const char *fname)
if (myFP == 0) {
myFP = fopen(fname, "a");
if (myFP != 0) {
time_t now = time((time_t *) 0);
fprintf(myFP, "** opened at %s", ctime(&now));
dlg_trace_time("** opened at");
}
}
} else if (myFP != 0) {
time_t now = time((time_t *) 0);
fprintf(myFP, "** closed at %s", ctime(&now));
dlg_trace_time("** closed at");
fclose(myFP);
myFP = 0;
}

View File

@ -1,9 +1,9 @@
/*
* $Id: ui_getc.c,v 1.48 2010/01/18 10:24:06 tom Exp $
* $Id: ui_getc.c,v 1.59 2011/02/28 10:56:15 tom Exp $
*
* ui_getc.c - user interface glue for getc()
* ui_getc.c - user interface glue for getc()
*
* Copyright 2001-2009,2010 Thomas E. Dickey
* Copyright 2001-2010,2011 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
@ -119,24 +119,105 @@ dlg_remove_callback(DIALOG_CALLBACK * p)
}
/*
* FIXME: this could be replaced by a select/poll on several file descriptors
* 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) {
(void) wmove(win, cur_y, cur_x); /* Restore cursor position */
wrefresh(win);
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
dlg_getc_ready(DIALOG_CALLBACK * p)
check_inputs(void)
{
DIALOG_CALLBACK *p;
fd_set read_fds;
int fd = fileno(p->input);
struct timeval test;
int last_fd = -1;
int fd;
int found;
int result = -1;
FD_ZERO(&read_fds);
FD_SET(fd, &read_fds);
if ((p = dialog_state.getc_callbacks) != 0) {
FD_ZERO(&read_fds);
test.tv_sec = 0; /* Seconds. */
test.tv_usec = (isatty(fd) /* Microseconds. */
? (WTIMEOUT_VAL * 1000)
: 1);
return (select(fd + 1, &read_fds, (fd_set *) 0, (fd_set *) 0, &test) == 1)
&& (FD_ISSET(fd, &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
@ -146,14 +227,16 @@ dlg_getc_callbacks(int ch, int fkey, int *result)
DIALOG_CALLBACK *p, *q;
if ((p = dialog_state.getc_callbacks) != 0) {
do {
q = p->next;
if (dlg_getc_ready(p)) {
if (!(p->handle_getc(p, ch, fkey, result))) {
dlg_remove_callback(p);
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);
} while ((p = q) != 0);
}
code = (dialog_state.getc_callbacks != 0);
}
return code;
@ -219,6 +302,89 @@ valid_file(FILE *fp)
return code;
}
static int
really_getch(WINDOW *win, int *fkey)
{
int ch;
#ifdef USE_WIDE_CURSES
int code;
mbstate_t state;
wchar_t my_wchar;
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) {
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;
}
/*
* 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,
@ -234,64 +400,21 @@ dlg_getc(WINDOW *win, int *fkey)
int result;
bool done = FALSE;
bool literal = FALSE;
DIALOG_CALLBACK *p;
int interval = dialog_vars.timeout_secs;
DIALOG_CALLBACK *p = 0;
int interval = (dialog_vars.timeout_secs * 1000);
time_t expired = time((time_t *) 0) + dialog_vars.timeout_secs;
time_t current;
if (dialog_state.getc_callbacks != 0)
if (may_handle_inputs())
wtimeout(win, WTIMEOUT_VAL);
else if (interval > 0)
wtimeout(win, interval);
while (!done) {
#ifdef USE_WIDE_CURSES
int code;
mbstate_t state;
wchar_t my_wchar;
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 there was no pending file-input, check the keyboard.
*/
if (used_last_getc >= have_last_getc) {
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
ch = really_getch(win, fkey);
if (literal) {
done = TRUE;
continue;
@ -320,32 +443,38 @@ dlg_getc(WINDOW *win, int *fkey)
&& current >= expired) {
dlg_exiterr("timeout");
}
if (dlg_getc_callbacks(ch, *fkey, &result)) {
dlg_raise_window(win);
} else {
done = (interval <= 0);
}
if (!valid_file(stdin)
|| !valid_file(dialog_state.screen_output)) {
ch = ESC;
done = TRUE;
} else if (check_inputs()) {
if (handle_inputs(win))
dlg_raise_window(win);
else
done = TRUE;
} else {
done = (interval <= 0);
}
break;
case DLGK_FIELD_PREV:
/* FALLTHRU */
case KEY_BTAB:
/* FALLTHRU */
case DLGK_FIELD_NEXT:
/* FALLTHRU */
case TAB:
/* Handle tab 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.
/* 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 &&
before_lookup == TAB) {
if ((p = dialog_state.getc_redirect) != 0) {
p = p->next;
} else {
p = dialog_state.getc_callbacks;
}
(before_lookup == TAB ||
before_lookup == KEY_BTAB)) {
if (before_lookup == TAB)
p = next_callback(p);
else
p = prev_callback(p);
if ((dialog_state.getc_redirect = p) != 0) {
win = p->win;
} else {

View File

@ -1,9 +1,9 @@
/*
* $Id: util.c,v 1.201 2010/04/28 21:12:42 tom Exp $
* $Id: util.c,v 1.211 2011/01/19 00:31:43 tom Exp $
*
* util.c -- miscellaneous utilities for dialog
*
* Copyright 2000-2008,2010 Thomas E. Dickey
* Copyright 2000-2010,2011 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
@ -99,7 +99,8 @@ DIALOG_COLORS dlg_color_table[] =
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_NORMAL, FORM_ITEM_READONLY, form_item_readonly, "Readonly form item"),
DATA(A_REVERSE, GAUGE, gauge, "Dialog box gauge")
};
/* *INDENT-ON* */
@ -327,7 +328,11 @@ init_dialog(FILE *input, FILE *output)
(void) keypad(stdscr, TRUE);
(void) cbreak();
(void) noecho();
mouse_open();
if (!dialog_state.no_mouse) {
mouse_open();
}
dialog_state.screen_initialized = TRUE;
#ifdef HAVE_COLOR
@ -398,6 +403,24 @@ dlg_color_count(void)
return sizeof(dlg_color_table) / sizeof(dlg_color_table[0]);
}
/*
* Wrapper for getattrs(), or the more cumbersome X/Open wattr_get().
*/
chtype
dlg_get_attrs(WINDOW *win)
{
chtype result;
#ifdef HAVE_GETATTRS
result = 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
@ -436,7 +459,7 @@ dlg_color_pair(int foreground, int background)
static chtype
define_color(WINDOW *win, int foreground)
{
chtype attrs = getattrs(win);
chtype attrs = dlg_get_attrs(win);
int pair;
short fg, bg, background;
@ -487,6 +510,34 @@ centered(int width, const char *string)
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 up to 'cols' columns from 'text', optionally rendering our escape
* sequence for attributes and color.
@ -501,6 +552,9 @@ dlg_print_text(WINDOW *win, const char *txt, int cols, chtype *attr)
bool thisTab;
bool ended = FALSE;
chtype useattr;
#ifdef USE_WIDE_CURSES
int combined = 0;
#endif
getyx(win, y_origin, x_origin);
while (cols > 0 && (*txt != '\0')) {
@ -582,7 +636,12 @@ dlg_print_text(WINDOW *win, const char *txt, int cols, chtype *attr)
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) {
if ((y_after != y_origin) ||
(x_after >= (cols + tabbed + x_origin)
#ifdef USE_WIDE_CURSES
&& !is_combining(txt, &combined)
#endif
)) {
ended = TRUE;
}
}
@ -656,6 +715,14 @@ dlg_print_line(WINDOW *win,
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
/*
* Print the line if we have a window pointer. Otherwise this routine
@ -774,6 +841,8 @@ dlg_print_scrolled(WINDOW *win,
int oldy, oldx;
int last = 0;
(void) pauseopt; /* used only for ncurses */
getyx(win, oldy, oldx);
#ifdef NCURSES_VERSION
if (pauseopt) {
@ -1105,12 +1174,12 @@ dlg_auto_sizefile(const char *title,
offset++;
if (offset > len)
len = offset;
len = (int) offset;
count++;
}
/* now 'count' has the number of lines of fd and 'len' the max lenght */
/* 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));
@ -1142,7 +1211,7 @@ dlg_draw_box(WINDOW *win, int y, int x, int height, int width,
chtype boxchar, chtype borderchar)
{
int i, j;
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
wattrset(win, 0);
for (i = 0; i < height; i++) {
@ -1179,7 +1248,7 @@ static void
draw_childs_shadow(WINDOW *parent, WINDOW *child)
{
if (has_colors()) { /* Whether terminal supports color? */
chtype save = getattrs(parent);
chtype save = dlg_get_attrs(parent);
dlg_draw_shadow(parent,
getbegy(child) - getbegy(parent),
@ -1254,7 +1323,7 @@ dlg_exit(int code)
if ((name = getenv(table[n].name)) != 0) {
value = strtol(name, &temp, 0);
if (temp != 0 && temp != name && *temp == '\0') {
code = value;
code = (int) value;
overridden = TRUE;
}
}
@ -1509,7 +1578,7 @@ dlg_draw_title(WINDOW *win, const char *title)
{
if (title != NULL) {
chtype attr = A_NORMAL;
chtype save = getattrs(win);
chtype save = dlg_get_attrs(win);
int x = centered(getmaxx(win), title);
wattrset(win, title_attr);
@ -1920,7 +1989,7 @@ dlg_clr_result(void)
char *
dlg_set_result(const char *string)
{
unsigned need = string ? strlen(string) + 1 : 0;
unsigned need = string ? (unsigned) strlen(string) + 1 : 0;
/* inputstr.c needs a fixed buffer */
if (need < MAX_LEN)
@ -1953,9 +2022,9 @@ void
dlg_add_result(const char *string)
{
unsigned have = (dialog_vars.input_result
? strlen(dialog_vars.input_result)
? (unsigned) strlen(dialog_vars.input_result)
: 0);
unsigned want = strlen(string) + 1 + have;
unsigned want = (unsigned) strlen(string) + 1 + have;
if ((want >= MAX_LEN)
|| (dialog_vars.input_length != 0)
@ -1964,14 +2033,14 @@ dlg_add_result(const char *string)
if (dialog_vars.input_length == 0
|| dialog_vars.input_result == 0) {
char *save = dialog_vars.input_result;
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 != 0)
strcpy(dialog_vars.input_result, save);
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,
@ -2008,7 +2077,7 @@ must_quote(char *string)
bool code = FALSE;
if (*string != '\0') {
unsigned len = strlen(string);
size_t len = strlen(string);
if (strcspn(string, quote_delimiter()) != len)
code = TRUE;
else if (strcspn(string, "\n\t ") != len)
@ -2096,10 +2165,20 @@ 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;
}
/*

View File

@ -4,11 +4,12 @@ DIALOG= ${.CURDIR}/../../../contrib/dialog
LIB= dialog
SHLIB_MAJOR= 7
SRCS= arrows.c buttons.c calendar.c checklist.c columns.c dlg_keys.c \
editbox.c fselect.c formbox.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
SRCS= argv.c arrows.c buttons.c calendar.c checklist.c columns.c \
dlg_keys.c editbox.c fselect.c formbox.c guage.c inputbox.c \
inputstr.c menubox.c mixedform.c mixedgauge.c mouse.c \
mousewget.c msgbox.c pause.c prgbox.c progressbox.c rc.c \
tailbox.c textbox.c timebox.c trace.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