Update dialog to version 1.1-20110302.

This commit is contained in:
Nathan Whitehorn 2011-04-17 17:28:17 +00:00
commit 7a1c0d9633
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=220749
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> -- Thomas E. Dickey <dickey@invisible-island.net>
This version of dialog was originally from a Debian snapshot. I've done this This version of dialog was originally from a Debian snapshot. I've done this
to it: 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 2010/04/28
+ several improvements to configure script: + several improvements to configure script:
+ modify CF_CURSES_TERM_H to handle cases such as cygwin where + 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 + make --program-prefix, etc., work in configure script, e.g., to make
program install as "cdialog". This does not alter the library name. program install as "cdialog". This does not alter the library name.
+ add install-bin, install-man (and uninstall) rules to makefile. + 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, AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, CF_CURSES_CPPFLAGS,
CF_CURSES_LIBS, CF_INCLUDE_DIRS, CF_LARGEFILE, CF_MAKEFLAGS, CF_CURSES_LIBS, CF_INCLUDE_DIRS, CF_LARGEFILE, CF_MAKEFLAGS,
CF_PATH_SYNTAX, CF_SUBDIR_PATH, CF_SUBST, CF_WITH_DBMALLOC, 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 + fix marker in textbox.c to make it disappear at the top of the file
(report by Patrick J. Volkerding). (report by Patrick J. Volkerding).
+ fix marker shown in arrows.c for checklists, etc., which was "(+)" + 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). Volkerding).
+ fix --input-fd (changes in glibc since 2003 made dialog hang on exit + fix --input-fd (changes in glibc since 2003 made dialog hang on exit
due to the way dialog updated stdin). 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 * 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 * 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 * it under the terms of the GNU Lesser General Public License, version 2.1
@ -24,6 +24,13 @@
#include <dialog.h> #include <dialog.h>
#ifdef USE_WIDE_CURSES #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) #define add_acs(win, code) wadd_wch(win, W ## code)
#else #else
#define add_acs(win, code) waddch(win, dlg_boxchar(code)) #define add_acs(win, code) waddch(win, dlg_boxchar(code))
@ -62,7 +69,7 @@ dlg_draw_arrows2(WINDOW *win,
chtype attr, chtype attr,
chtype borderattr) chtype borderattr)
{ {
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int cur_x, cur_y; int cur_x, cur_y;
int limit_x = getmaxx(win); int limit_x = getmaxx(win);
bool draw_top = TRUE; bool draw_top = TRUE;
@ -127,7 +134,7 @@ dlg_draw_scrollbar(WINDOW *win,
int len; int len;
int oldy, oldx, maxy, maxx; int oldy, oldx, maxy, maxx;
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int top_arrow = (first_data != 0); int top_arrow = (first_data != 0);
int bottom_arrow = (next_data < total_data); int bottom_arrow = (next_data < total_data);
@ -154,7 +161,7 @@ dlg_draw_scrollbar(WINDOW *win,
whline(win, dlg_boxchar(ACS_HLINE), 4 - len); 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) { if (dialog_state.use_scrollbar) {
int all_high = (bottom - top - 1); 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 * 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 * 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 vertical,
int limit) int limit)
{ {
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int n; int n;
int step = 0; int step = 0;
int length; int length;
@ -465,16 +465,7 @@ dlg_exit_label(void)
int int
dlg_exit_buttoncode(int button) dlg_exit_buttoncode(int button)
{ {
int result = DLG_EXIT_ERROR; return dlg_ok_buttoncode(button);
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;
} }
const char ** 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 * 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 * 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 * 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) src.tm_mday, src.tm_mon + 1, src.tm_year + 1900)
#ifdef HAVE_STRFTIME #ifdef HAVE_STRFTIME
if (dialog_vars.date_format != 0) { if (dialog_vars.date_format != 0) {
size_t used = strftime(buffer, size_t used = strftime(buffer,
sizeof(buffer) - 1, sizeof(buffer) - 1,
dialog_vars.date_format, dialog_vars.date_format,
&current); &current);
if (used == 0 || *buffer == '\0') if (used == 0 || *buffer == '\0')
DefaultFormat(buffer, current); DefaultFormat(buffer, current);
} else } 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 * 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 * 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 * 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) int list_height)
{ {
dlg_draw_scrollbar(win, dlg_draw_scrollbar(win,
scrollamt, (long) (scrollamt),
scrollamt, (long) (scrollamt),
scrollamt + choice, (long) (scrollamt + choice),
item_no, (long) (item_no),
box_x + check_x, box_x + check_x,
box_x + list_width, box_x + list_width,
box_y, box_y,
@ -73,7 +73,7 @@ print_item(WINDOW *win,
int choice, int choice,
int selected) int selected)
{ {
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int i; int i;
chtype attr = A_NORMAL; chtype attr = A_NORMAL;
const int *cols; const int *cols;
@ -643,7 +643,7 @@ dialog_checklist(const char *title,
: dlg_strempty()); : dlg_strempty());
listitems[i].state = !dlg_strcmp(ItemStatus(i), "on"); 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, result = dlg_checklist(title,
cprompt, 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); free(listitems);
return result; 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 * 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 * 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 * 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; ++result;
} while ((next = next_col(source, offset)) != 0); } while ((next = next_col(source, offset)) != 0);
offset = strlen(source); offset = (unsigned) strlen(source);
widths[result - 1] = offset - offsets[result - 1]; widths[result - 1] = offset - offsets[result - 1];
return result; return result;
@ -98,7 +98,7 @@ dlg_align_columns(char **target, int per_row, int num_rows)
if (column_separator()) { if (column_separator()) {
char **value; char **value;
unsigned numcols = 1; unsigned numcols = 1;
unsigned maxcols = 0; size_t maxcols = 0;
unsigned *widths; unsigned *widths;
unsigned *offsets; unsigned *offsets;
unsigned *maxwidth; unsigned *maxwidth;
@ -107,7 +107,7 @@ dlg_align_columns(char **target, int per_row, int num_rows)
/* first allocate arrays for workspace */ /* first allocate arrays for workspace */
for (each(row, value)) { for (each(row, value)) {
unsigned len = strlen(*value); size_t len = strlen(*value);
if (maxcols < len) if (maxcols < len)
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"); assert_ptr(text, "dlg_align_columns");
memset(text, ' ', realwidth); memset(text, ' ', (size_t) realwidth);
for (n = 0; n < cols; ++n) { 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; offset += maxwidth[n] + 1;
} }
*value = text; *value = text;

View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc. # 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 # 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 # under the terms of the GNU General Public License as published by
@ -92,7 +92,7 @@ if test $# != 0; then
exit 1 exit 1
fi 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 # 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 # 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=' set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; 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} ; : ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$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) ; } || { 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 fi
;; ;;
*) *)
os=netbsd os=netbsd
;; ;;
esac esac
# The OS release # The OS release
@ -220,11 +220,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit ;; exit ;;
alpha:OSF1:*:*) alpha:OSF1:*:*)
case $UNAME_RELEASE in case $UNAME_RELEASE in
*4.0) *4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;; ;;
*5.*) *5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;; ;;
esac esac
# According to Compaq, /usr/sbin/psrinfo has been available on # 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 echo s390-ibm-zvmoe
exit ;; exit ;;
*:OS400:*:*) *:OS400:*:*)
echo powerpc-ibm-os400 echo powerpc-ibm-os400
exit ;; exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE} 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 ;; sparc) echo sparc-icl-nx7; exit ;;
esac ;; esac ;;
s390x:SunOS:*:*) s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;; exit ;;
sun4H:SunOS:5.*:*) sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;; 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 # MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem. # be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE} echo m68k-atari-mint${UNAME_RELEASE}
exit ;; exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE} echo m68k-atari-mint${UNAME_RELEASE}
exit ;; exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE} echo m68k-atari-mint${UNAME_RELEASE}
exit ;; exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE} echo m68k-milan-mint${UNAME_RELEASE}
exit ;; exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE} echo m68k-hades-mint${UNAME_RELEASE}
exit ;; exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE} echo m68k-unknown-mint${UNAME_RELEASE}
exit ;; exit ;;
m68k:machten:*:*) m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE} echo m68k-apple-machten${UNAME_RELEASE}
exit ;; exit ;;
@ -481,8 +481,8 @@ EOF
echo m88k-motorola-sysv3 echo m88k-motorola-sysv3
exit ;; exit ;;
AViiON:dgux:*:*) AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures # DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p` UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@ -552,7 +552,7 @@ EOF
echo rs6000-ibm-aix3.2 echo rs6000-ibm-aix3.2
fi fi
exit ;; exit ;;
*:AIX:*:[456]) *:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 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 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000 IBM_ARCH=rs6000
@ -595,8 +595,8 @@ EOF
9000/[678][0-9][0-9]) 9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0 532) # CPU_PA_RISC2_0
@ -731,22 +731,22 @@ EOF
exit ;; exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd echo c1-convex-bsd
exit ;; exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc if getsysinfo -f scalar_acc
then echo c32-convex-bsd then echo c32-convex-bsd
else echo c2-convex-bsd else echo c2-convex-bsd
fi fi
exit ;; exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd echo c34-convex-bsd
exit ;; exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd echo c38-convex-bsd
exit ;; exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd echo c4-convex-bsd
exit ;; exit ;;
CRAY*Y-MP:*:*:*) CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;; exit ;;
@ -770,14 +770,14 @@ EOF
exit ;; exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;; exit ;;
5000:UNIX_System_V:4.*:*) 5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;; exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@ -805,14 +805,14 @@ EOF
echo ${UNAME_MACHINE}-pc-mingw32 echo ${UNAME_MACHINE}-pc-mingw32
exit ;; exit ;;
i*:windows32*:*) i*:windows32*:*)
# uname -m includes "-pc" on this system. # uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32 echo ${UNAME_MACHINE}-mingw32
exit ;; exit ;;
i*:PW*:*) i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32 echo ${UNAME_MACHINE}-pc-pw32
exit ;; exit ;;
*:Interix*:*) *:Interix*:*)
case ${UNAME_MACHINE} in case ${UNAME_MACHINE} in
x86) x86)
echo i586-pc-interix${UNAME_RELEASE} echo i586-pc-interix${UNAME_RELEASE}
exit ;; exit ;;
@ -820,8 +820,8 @@ EOF
echo x86_64-unknown-interix${UNAME_RELEASE} echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;; exit ;;
IA64) IA64)
echo ia64-unknown-interix${UNAME_RELEASE} echo ia64-unknown-interix${UNAME_RELEASE}
exit ;; exit ;;
esac ;; esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks echo i${UNAME_MACHINE}-pc-mks
@ -860,22 +860,22 @@ EOF
exit ;; exit ;;
alpha:Linux:*:*) alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;; EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;; EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;; PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;; EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;; EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;; EV68*) UNAME_MACHINE=alphaev68 ;;
esac esac
objdump --private-headers /bin/sh | grep -q ld.so.1 objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;; exit ;;
arm*:Linux:*:*) arm*:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \
| grep -q __ARM_EABI__ grep -q __ARM_EABI__
then then
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
else else
@ -892,12 +892,12 @@ EOF
echo crisv32-axis-linux-gnu echo crisv32-axis-linux-gnu
exit ;; exit ;;
frv:Linux:*:*) frv:Linux:*:*)
echo frv-unknown-linux-gnu echo frv-unknown-linux-gnu
exit ;; exit ;;
i*86:Linux:*:*) i*86:Linux:*:*)
LIBC=gnu LIBC=gnu
eval $set_cc_for_build eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__ #ifdef __dietlibc__
LIBC=dietlibc LIBC=dietlibc
#endif #endif
@ -934,14 +934,14 @@ EOF
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;; ;;
or32:Linux:*:*) or32:Linux:*:*)
echo or32-unknown-linux-gnu echo or32-unknown-linux-gnu
exit ;; exit ;;
padre:Linux:*:*) padre:Linux:*:*)
echo sparc-unknown-linux-gnu echo sparc-unknown-linux-gnu
exit ;; exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*) parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu echo hppa64-unknown-linux-gnu
exit ;; exit ;;
parisc:Linux:*:* | hppa:Linux:*:*) parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level # Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@ -960,7 +960,7 @@ EOF
echo ${UNAME_MACHINE}-ibm-linux echo ${UNAME_MACHINE}-ibm-linux
exit ;; exit ;;
sh64*:Linux:*:*) sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
sh*:Linux:*:*) sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
@ -968,6 +968,9 @@ EOF
sparc:Linux:*:* | sparc64:Linux:*:*) sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-tilera-linux-gnu
exit ;;
vax:Linux:*:*) vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;; exit ;;
@ -975,7 +978,7 @@ EOF
echo x86_64-unknown-linux-gnu echo x86_64-unknown-linux-gnu
exit ;; exit ;;
xtensa*:Linux:*:*) xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;; exit ;;
i*86:DYNIX/ptx:4*:*) i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@ -984,11 +987,11 @@ EOF
echo i386-sequent-sysv4 echo i386-sequent-sysv4
exit ;; exit ;;
i*86:UNIX_SV:4.2MP:2.*) i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version # Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2... # number series starting with 2...
# I am not positive that other SVR4 systems won't match this, # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms. # 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} echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;; exit ;;
i*86:OS/2:*:*) i*86:OS/2:*:*)
@ -1020,7 +1023,7 @@ EOF
fi fi
exit ;; exit ;;
i*86:*:5:[678]*) 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 case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;; *486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;; *Pentium) UNAME_MACHINE=i586 ;;
@ -1048,13 +1051,13 @@ EOF
exit ;; exit ;;
pc:*:*:*) pc:*:*:*)
# Left here for compatibility: # Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about # uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586. # the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub # 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 # prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build. # this is a cross-build.
echo i586-pc-msdosdjgpp echo i586-pc-msdosdjgpp
exit ;; exit ;;
Intel:Mach:3*:*) Intel:Mach:3*:*)
echo i386-pc-mach3 echo i386-pc-mach3
exit ;; exit ;;
@ -1089,8 +1092,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;; && { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*) NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3' OS_REL='.3'
test -r /etc/.relid \ test -r /etc/.relid \
@ -1134,9 +1137,9 @@ EOF
fi fi
exit ;; exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV> # says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4 echo i586-unisys-sysv4
exit ;; exit ;;
*:UNIX_System_V:4*:FTX*) *:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>. # From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm # How about differentiating between stratus architectures? -djm
@ -1166,7 +1169,7 @@ EOF
else else
echo mips-unknown-sysv${UNAME_RELEASE} echo mips-unknown-sysv${UNAME_RELEASE}
fi fi
exit ;; exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos echo powerpc-be-beos
exit ;; exit ;;
@ -1209,12 +1212,12 @@ EOF
i386) i386)
eval $set_cc_for_build eval $set_cc_for_build
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null grep IS_64BIT_ARCH >/dev/null
then then
UNAME_PROCESSOR="x86_64" UNAME_PROCESSOR="x86_64"
fi fi
fi ;; fi ;;
unknown) UNAME_PROCESSOR=powerpc ;; unknown) UNAME_PROCESSOR=powerpc ;;
esac esac
@ -1223,14 +1226,17 @@ EOF
*:procnto*:*:* | *:QNX:[0123456789]*:*) *:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p` UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386 UNAME_PROCESSOR=i386
UNAME_MACHINE=pc UNAME_MACHINE=pc
fi fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;; exit ;;
*:QNX:*:4*) *:QNX:*:4*)
echo i386-pc-qnx echo i386-pc-qnx
exit ;; exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-?:NONSTOP_KERNEL:*:*) NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE} echo nse-tandem-nsk${UNAME_RELEASE}
exit ;; exit ;;
@ -1276,13 +1282,13 @@ EOF
echo pdp10-unknown-its echo pdp10-unknown-its
exit ;; exit ;;
SEI:*:*:SEIUX) SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE} echo mips-sei-seiux${UNAME_RELEASE}
exit ;; exit ;;
*:DragonFly:*:*) *:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;; exit ;;
*:*VMS:*:*) *:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null` UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;; A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-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 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
timestamp='2009-12-31' timestamp='2010-09-11'
# This file is (in principle) common to ALL GNU software. # This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME 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. # Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \ kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*) storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os os=-$maybe_os
@ -157,8 +158,8 @@ case $os in
os= os=
basic_machine=$1 basic_machine=$1
;; ;;
-bluegene*) -bluegene*)
os=-cnk os=-cnk
;; ;;
-sim | -cisco | -oki | -wec | -winbond) -sim | -cisco | -oki | -wec | -winbond)
os= os=
@ -282,6 +283,7 @@ case $basic_machine in
| moxie \ | moxie \
| mt \ | mt \
| msp430 \ | msp430 \
| nds32 | nds32le | nds32be\
| nios | nios2 \ | nios | nios2 \
| ns16k | ns32k \ | ns16k | ns32k \
| or32 \ | or32 \
@ -295,7 +297,7 @@ case $basic_machine in
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \ | spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \ | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \ | ubicom32 \
| v850 | v850e \ | v850 | v850e \
| we32k \ | we32k \
@ -303,6 +305,15 @@ case $basic_machine in
| z8k | z80) | z8k | z80)
basic_machine=$basic_machine-unknown 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) m6811 | m68hc11 | m6812 | m68hc12 | picochip)
# Motorola 68HC11/12. # Motorola 68HC11/12.
basic_machine=$basic_machine-unknown basic_machine=$basic_machine-unknown
@ -318,8 +329,8 @@ case $basic_machine in
# because (1) that's what they normally are, and # because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users. # (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64) i*86 | x86_64)
basic_machine=$basic_machine-pc basic_machine=$basic_machine-pc
;; ;;
# Object if more than one company name word. # Object if more than one company name word.
*-*-*) *-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
@ -334,7 +345,7 @@ case $basic_machine in
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \ | avr-* | avr32-* \
| bfin-* | bs2000-* \ | bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \ | d10v-* | d30v-* | dlx-* \
| elxsi-* \ | elxsi-* \
@ -368,6 +379,7 @@ case $basic_machine in
| mmix-* \ | mmix-* \
| mt-* \ | mt-* \
| msp430-* \ | msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \ | nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \ | none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \ | orion-* \
@ -381,7 +393,8 @@ case $basic_machine in
| sparclite-* \ | sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \ | tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile-* | tilegx-* \
| tron-* \ | tron-* \
| ubicom32-* \ | ubicom32-* \
| v850-* | v850e-* | vax-* \ | v850-* | v850e-* | vax-* \
@ -411,7 +424,7 @@ case $basic_machine in
basic_machine=a29k-amd basic_machine=a29k-amd
os=-udi os=-udi
;; ;;
abacus) abacus)
basic_machine=abacus-unknown basic_machine=abacus-unknown
;; ;;
adobe68k) adobe68k)
@ -481,11 +494,20 @@ case $basic_machine in
basic_machine=powerpc-ibm basic_machine=powerpc-ibm
os=-cnk 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) c90)
basic_machine=c90-cray basic_machine=c90-cray
os=-unicos os=-unicos
;; ;;
cegcc) cegcc)
basic_machine=arm-unknown basic_machine=arm-unknown
os=-cegcc os=-cegcc
;; ;;
@ -733,7 +755,7 @@ case $basic_machine in
basic_machine=ns32k-utek basic_machine=ns32k-utek
os=-sysv os=-sysv
;; ;;
microblaze) microblaze)
basic_machine=microblaze-xilinx basic_machine=microblaze-xilinx
;; ;;
mingw32) mingw32)
@ -840,6 +862,12 @@ case $basic_machine in
np1) np1)
basic_machine=np1-gould basic_machine=np1-gould
;; ;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem) nsr-tandem)
basic_machine=nsr-tandem basic_machine=nsr-tandem
;; ;;
@ -1074,17 +1102,10 @@ case $basic_machine in
basic_machine=t90-cray basic_machine=t90-cray
os=-unicos os=-unicos
;; ;;
tic54x | c54x*) # This must be matched before tile*.
basic_machine=tic54x-unknown tilegx*)
os=-coff basic_machine=tilegx-unknown
;; os=-linux-gnu
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
;; ;;
tile*) tile*)
basic_machine=tile-unknown basic_machine=tile-unknown
@ -1254,11 +1275,11 @@ esac
if [ x"$os" != x"" ] if [ x"$os" != x"" ]
then then
case $os in case $os in
# First match some system type aliases # First match some system type aliases
# that might get confused with valid system types. # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception. # -solaris* is a basic system type, with this one exception.
-auroraux) -auroraux)
os=-auroraux os=-auroraux
;; ;;
-solaris1 | -solaris1.*) -solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'` os=`echo $os | sed -e 's|solaris1|sunos4|'`
@ -1295,7 +1316,8 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \ | -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -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* \ | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@ -1342,7 +1364,7 @@ case $os in
-opened*) -opened*)
os=-openedition os=-openedition
;; ;;
-os400*) -os400*)
os=-os400 os=-os400
;; ;;
-wince*) -wince*)
@ -1391,7 +1413,7 @@ case $os in
-sinix*) -sinix*)
os=-sysv4 os=-sysv4
;; ;;
-tpf*) -tpf*)
os=-tpf os=-tpf
;; ;;
-triton*) -triton*)
@ -1436,8 +1458,8 @@ case $os in
-dicos*) -dicos*)
os=-dicos os=-dicos
;; ;;
-nacl*) -nacl*)
;; ;;
-none) -none)
;; ;;
*) *)
@ -1460,10 +1482,10 @@ else
# system, and we'll never get to this point. # system, and we'll never get to this point.
case $basic_machine in case $basic_machine in
score-*) score-*)
os=-elf os=-elf
;; ;;
spu-*) spu-*)
os=-elf os=-elf
;; ;;
*-acorn) *-acorn)
@ -1475,8 +1497,17 @@ case $basic_machine in
arm*-semi) arm*-semi)
os=-aout os=-aout
;; ;;
c4x-* | tic4x-*) c4x-* | tic4x-*)
os=-coff os=-coff
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;; ;;
# This must come before the *-dec entry. # This must come before the *-dec entry.
pdp10-*) pdp10-*)
@ -1503,7 +1534,7 @@ case $basic_machine in
m68*-cisco) m68*-cisco)
os=-aout os=-aout
;; ;;
mep-*) mep-*)
os=-elf os=-elf
;; ;;
mips*-cisco) mips*-cisco)
@ -1530,7 +1561,7 @@ case $basic_machine in
*-ibm) *-ibm)
os=-aix os=-aix
;; ;;
*-knuth) *-knuth)
os=-mmixware os=-mmixware
;; ;;
*-wec) *-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 Process this file with autoconf to produce a configure script.
dnl ---------------------------------------------------------------------------
dnl Copyright 1999-2010,2011 -- Thomas E. Dickey
dnl 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_PREREQ(2.13.20020210)
AC_INIT(dialog.h) AC_INIT(dialog.h)
AC_CONFIG_HEADER(dlg_config.h:config.hin) AC_CONFIG_HEADER(dlg_config.h:config.hin)
CF_VERSION_INFO(dialog)
AC_ARG_PROGRAM AC_ARG_PROGRAM
DESTDIR= DESTDIR=
@ -38,6 +63,24 @@ CF_LARGEFILE
CF_WITH_WARNINGS 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
dnl Checks for libraries. dnl Checks for libraries.
dnl dnl
@ -62,6 +105,8 @@ if test "$with_libtool" = "yes" ; then
fi fi
AC_SUBST(LIBTOOL_MAKE) AC_SUBST(LIBTOOL_MAKE)
CF_WITH_CURSES_DIR
use_ncurses=no use_ncurses=no
AC_ARG_WITH(ncurses, AC_ARG_WITH(ncurses,
[ --with-ncurses compile/link with ncurses library], [ --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], CF_ARG_MSG_ENABLE([if you want the gauge dialog],
gauge, gauge,
[ --disable-gauge do not include the gauge dialogs], [ --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) AC_DEFINE(HAVE_DLG_GAUGE)],,$cf_all_widgets)
CF_ARG_MSG_ENABLE([if you want the tailbox dialog], CF_ARG_MSG_ENABLE([if you want the tailbox dialog],
@ -150,14 +195,24 @@ dnl
AC_TYPE_SIGNAL AC_TYPE_SIGNAL
AC_CHECK_FUNCS(\ AC_CHECK_FUNCS(\
_nc_free_and_exit \ _nc_free_and_exit \
btowc \
mblen \
mbrlen \
mbrtowc \
mbtowc \
strcasecmp \ strcasecmp \
strftime \ strftime \
tsearch \ tsearch \
waitpid \ waitpid \
wcsrtombs \
wcstombs \
wctob \
wctomb \
) )
CF_CURSES_FUNCS(\ CF_CURSES_FUNCS(\
flushinp \ flushinp \
getattrs \
getbegx \ getbegx \
getbegy \ getbegy \
getbegyx \ getbegyx \
@ -175,6 +230,7 @@ wget_wch \
AC_CHECK_FUNC(start_color,[AC_DEFINE(HAVE_COLOR)]) AC_CHECK_FUNC(start_color,[AC_DEFINE(HAVE_COLOR)])
CF_CURSES_CHTYPE CF_CURSES_CHTYPE
CF_CURSES_WACS_SYMBOLS
CF_FUNC_WAIT CF_FUNC_WAIT
CF_MBSTATE_T CF_MBSTATE_T

View File

@ -1,7 +1,7 @@
#!@SHELL@ #!@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 # # Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), # # copy of this software and associated documentation files (the "Software"), #
@ -36,7 +36,7 @@ libdir="@libdir@"
datadir="@datadir@" datadir="@datadir@"
mandir="@mandir@" mandir="@mandir@"
THIS="dialog" THIS="@PACKAGE@"
test $# = 0 && exec @SHELL@ $0 --error test $# = 0 && exec @SHELL@ $0 --error

View File

@ -1,6 +1,6 @@
'\" t '\" t
.\" $Id: dialog.1,v 1.120 2010/01/18 10:19:07 tom Exp $ .\" $Id: dialog.1,v 1.126 2011/03/02 01:24:21 tom Exp $
.\" Copyright 2005-2008,2010 Thomas E. Dickey .\" Copyright 2005-2010,2011 Thomas E. Dickey
.\" .\"
.\" This program is free software; you can redistribute it and/or modify .\" 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 .\" it under the terms of the GNU Lesser General Public License, version 2.1
@ -16,6 +16,13 @@
.\" Free Software Foundation, Inc. .\" Free Software Foundation, Inc.
.\" 51 Franklin St., Fifth Floor .\" 51 Franklin St., Fifth Floor
.\" Boston, MA 02110, USA. .\" Boston, MA 02110, USA.
.\"
.\" definitions for renaming
.ds p dialog
.ds l dialog
.ds L Dialog
.ds D DIALOG
.\"
.de ES .de ES
.ne 8 .ne 8
.IP .IP
@ -29,25 +36,25 @@
.RE .RE
.. ..
. .
.TH DIALOG 1 "" "$Date: 2010/01/18 10:19:07 $" .TH \*D 1 "" "$Date: 2011/03/02 01:24:21 $"
.SH NAME .SH NAME
dialog \- display dialog boxes from shell scripts \*p \- display dialog boxes from shell scripts
.SH SYNOPSIS .SH SYNOPSIS
\fBdialog --clear\fP \fB\*p --clear\fP
.br .br
.BI "dialog --create-rc " file .BI "\*p --create-rc " file
.br .br
\fBdialog --print-maxsize\fP \fB\*p --print-maxsize\fP
.br .br
\fBdialog\fP \fB\*p\fP
\fIcommon-options\fP \fIcommon-options\fP
\fIbox-options\fP \fIbox-options\fP
.SH DESCRIPTION .SH DESCRIPTION
\fBDialog\fP \fB\*L\fP
is a program that will let you to present a variety of questions or is a program that will let you to present a variety of questions or
display messages using dialog boxes from a shell script. display messages using dialog boxes from a shell script.
These types of dialog boxes are implemented 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 .RS
.LP .LP
.nh .nh
@ -69,6 +76,8 @@ These types of dialog boxes are implemented
.BR passwordbox ", " .BR passwordbox ", "
.BR passwordform ", " .BR passwordform ", "
.BR pause ", " .BR pause ", "
.BR prgbox ", "
.BR programbox ", "
.BR progressbox ", " .BR progressbox ", "
.BR radiolist ", " .BR radiolist ", "
.BR tailbox ", " .BR tailbox ", "
@ -83,19 +92,19 @@ These types of dialog boxes are implemented
You can put more than one dialog box into a script: You can put more than one dialog box into a script:
.TP 5 .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 dialog unless you have pressed ESC to cancel, or
.TP 5 .TP 5
- -
Simply add the tokens for the next dialog box, making a chain. 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). e.g., Cancel or No (see DIAGNOSTICS).
.PP .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 Normally that is the standard error, but there are options for
changing this: "\fB--output-fd\fP", "\fB--stderr\fP" and "\fB--stdout\fP". 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; 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 .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, 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. i.e., the next token on the command-line is not treated as an option.
.RS .RS
.B dialog --title -- --Not an option .B \*p --title -- --Not an option
.RE .RE
.PP .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. parameters to the standard error.
This is useful when debugging complex scripts using This is useful when debugging complex scripts using
the "\fB--\fP" and "\fB--file\fP", the "\fB--\fP" and "\fB--file\fP",
since the command-line may be rewritten as these are expanded. since the command-line may be rewritten as these are expanded.
.PP .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. the file named as its value.
.RS .RS
.B dialog --file \fIparameterfile .B \*p --file \fIparameterfile
.RE .RE
Blanks not within double-quotes are discarded Blanks not within double-quotes are discarded
(use backslashes to quote single characters). (use backslashes to quote single characters).
The result is inserted into the command-line, The result is inserted into the command-line,
replacing "\fB--file\fP" and its option value. replacing "\fB--file\fP" and its option value.
Interpretation of the command-line resumes from that point. 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 interprets the following text as a file descriptor number
rather than a filename. rather than a filename.
. .
@ -164,7 +173,8 @@ To compare the effects, use these:
.ES .ES
All three widgets visible, staircase effect, ordered 1,2,3: All three widgets visible, staircase effect, ordered 1,2,3:
.EX .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 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0 --and-widget --begin 6 6 --yesno "" 0 0
.EE .EE
@ -172,7 +182,8 @@ dialog --begin 2 2 --yesno "" 0 0 \\
.ES .ES
Only the last widget is left visible: Only the last widget is left visible:
.EX .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 --clear --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0 --and-widget --begin 6 6 --yesno "" 0 0
.EE .EE
@ -180,7 +191,8 @@ dialog --clear --begin 2 2 --yesno "" 0 0 \\
.ES .ES
All three widgets visible, staircase effect, ordered 3,2,1: All three widgets visible, staircase effect, ordered 3,2,1:
.EX .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 --keep-window --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0 --and-widget --begin 6 6 --yesno "" 0 0
.EE .EE
@ -188,7 +200,8 @@ dialog --keep-window --begin 2 2 --yesno "" 0 0 \\
.ES .ES
First and third widget visible, staircase effect, ordered 3,1: First and third widget visible, staircase effect, ordered 3,1:
.EX .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 --clear --begin 4 4 --yesno "" 0 0 \\
--and-widget --begin 6 6 --yesno "" 0 0 --and-widget --begin 6 6 --yesno "" 0 0
.EE .EE
@ -200,7 +213,7 @@ command.
.IP "\fB--colors" .IP "\fB--colors"
Interpret embedded "\\Z" sequences in the dialog text Interpret embedded "\\Z" sequences in the dialog text
by the following character, 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: 0 through 7 are the ANSI used in curses:
black, black,
red, red,
@ -218,14 +231,14 @@ bold (perhaps bright) red.
Restore normal settings with "\\Zn". Restore normal settings with "\\Zn".
. .
.IP "\fB--column-separator \fIstring" .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. occurrences of the given string, and to align the split data into columns.
. .
.IP "\fB--cr-wrap" .IP "\fB--cr-wrap"
Interpret embedded newlines in the dialog text as a newline on the screen. 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, 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 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 in the source code of your script without affecting the way it will
look in the dialog. 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" .IP "\fB--create-rc \fIfile"
When When
\fBdialog\fP \fB\*p\fP
supports run-time configuration, supports run-time configuration,
this can be used to dump a sample configuration file to the file specified this can be used to dump a sample configuration file to the file specified
by by
@ -272,7 +285,7 @@ Override the label used for "Extra" buttons.
Note: for inputmenu widgets, this defaults to "Rename". Note: for inputmenu widgets, this defaults to "Rename".
. .
.IP "\fB--help" .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. The help message is printed if no options are given.
. .
.IP "\fB--help-button" .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. i.e., in checklist, radiolist and menu boxes.
If "\fB--item-help\fR" is also given, on exit If "\fB--item-help\fR" is also given, on exit
the return status will be the same as for the "OK" button, 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, Otherwise, the return status will indicate that the Help button was pressed,
and no message printed. and no message printed.
. .
@ -295,16 +308,16 @@ This can be used to reconstruct the state of a checklist after processing
the help request. the help request.
. .
.IP "\fB--ignore" .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, Some well-known ones such as "\fB--icon\fP" are ignored anyway,
but this is a better choice for compatibility with other implementations. but this is a better choice for compatibility with other implementations.
. .
.IP "\fB--input-fd \fIfd" .IP "\fB--input-fd \fIfd"
Read keyboard input from the given file descriptor. 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). but the gauge widget reads a pipe (which is always standard input).
Some configurations do not work properly when 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) Use this option (with appropriate juggling of file-descriptors)
if your script must work in that type of environment. 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. screen, for the currently selected item.
. .
.IP "\fB--keep-tite" .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 and in that case tries to suppress the initialization strings that
would make it switch to the alternate screen. would make it switch to the alternate screen.
Switching between the normal and alternate screens 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. 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" .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", connected by "\fB--and-widget\fR",
it clears the old widget from the screen by painting over it. it clears the old widget from the screen by painting over it.
Use this option to suppress that repainting. Use this option to suppress that repainting.
.IP .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. marked with "\fB--keep-window\fR", even if they are not \fBtailboxbg\fR widgets.
That causes them to be repainted in reverse order. That causes them to be repainted in reverse order.
See the discussion of the "\fB--clear\fR" option for examples. 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. A script can still test if the user pressed the ESC key to cancel to quit.
. .
.IP "\fB--no-collapse" .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. spaces to a single space for text which is displayed in a message boxes, etc.
Use this option to disable that feature. 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. subject to the "\fB--cr-wrap\fR" and "\fB--trim\fR" options.
. .
.IP "\fB--no-kill" .IP "\fB--no-kill"
Tells Tells
\fBdialog\fP \fB\*p\fP
to put the to put the
\fBtailboxbg\fP \fBtailboxbg\fP
box in the background, 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. SIGHUP is disabled for the background process.
. .
.IP "\fB--no-label \fIstring" .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. Rather than draw lines around boxes, draw spaces in the same place.
See also "\fB--ascii-lines\fR". See also "\fB--ascii-lines\fR".
. .
.IP "\fB--no-mouse
Do not enable the mouse.
.
.IP "\fB--no-ok" .IP "\fB--no-ok"
.IP "\fB--nook" .IP "\fB--nook"
Suppress the "OK" button in checklist, inputbox and menu box modes. 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" .IP "\fB--output-fd \fIfd"
Direct output to the given file descriptor. 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. but error messages may also be written there, depending on your script.
. .
.IP "\fB--separator \fIstring" .IP "\fB--separator \fIstring"
.IP "\fB--output-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. checklists, rather than a newline (for --separate-output) or a space.
This applies to other widgets such as forms and editboxes which normally This applies to other widgets such as forms and editboxes which normally
use a newline. use a newline.
. .
.IP "\fB--print-maxsize" .IP "\fB--print-maxsize"
Print the maximum size of dialog boxes, i.e., the screen size, 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. This may be used alone, without other options.
. .
.IP "\fB--print-size" .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" .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. This may be used alone, without other options.
. .
.IP "\fB--scrollbar \fIstring" .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. This facilitates parsing by another program.
. .
.IP "\fB--separate-widget \fIstring" .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. each widget.
This is used to simplify parsing the result of a dialog with several widgets. This is used to simplify parsing the result of a dialog with several widgets.
If this option is not given, 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" .IP "\fB--single-quoted"
Use single-quoting as needed (and no quotes if unneeded) for the Use single-quoting as needed (and no quotes if unneeded) for the
output of checklist's as well as the item-help text. 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 That requires occasional use of backslashes to make the output useful in
shell scripts. shell scripts.
. .
@ -449,7 +465,7 @@ Direct output to the standard output.
This option is provided for compatibility with Xdialog, This option is provided for compatibility with Xdialog,
however using it in portable scripts is not recommended, however using it in portable scripts is not recommended,
since curses normally writes its screen updates to the standard output. 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. so it can write to the display.
Depending on the platform and your environment, that may fail. 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. string to be displayed at the top of the dialog box.
. .
.IP "\fB--trace \fIfilename" .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. Use control/T to log a picture of the current dialog window.
. .
.IP "\fB--trim" .IP "\fB--trim"
@ -556,7 +574,7 @@ The initial on/off state of each entry is specified by
.IP .IP
On exit, a list of the \fItag\fP On exit, a list of the \fItag\fP
strings of those entries that are turned on 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, If the "\fB--separate-output\fP" option is not given,
the strings will be quoted to make it simple for scripts to separate them. 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. 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 Use a carriage return or the "OK" button to accept the current value
in the text-entry window and exit. in the text-entry window and exit.
.IP .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" .IP "\fB--editbox \fIfilepath height width\fR"
The edit-box dialog displays a copy of the file. 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. 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. Pressing the "Enter" key within the box will split the corresponding line.
.IP .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 .nf
.IP "\fB--form \fItext height width formheight \fR[ \fIlabel y x item y x flen ilen \fR] \fI..." .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 up/down arrows (or control/N, control/P) to move between fields.
Use tab to move between windows. Use tab to move between windows.
.IP .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. each field separated by a newline.
The text used to fill non-editable fields The text used to fill non-editable fields
(\fIflen\fR is zero or negative) (\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 entering that character as well as scrolling the directory and filename
windows to the closest match. windows to the closest match.
.IP .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 name (up to the point where there may be a match against more than one
entry). entry).
.IP .IP
Use a carriage return or the "OK" button to accept the current value Use a carriage return or the "OK" button to accept the current value
in the text-entry window and exit. in the text-entry window and exit.
.IP .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" .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. The \fIpercent\fR value denotes the initial percentage shown in the meter.
If not specified, it is zero. If not specified, it is zero.
.IP .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. The widget accepts no input, so the exit status is always OK.
. .
. .
.IP "\fB--infobox \fItext height width" .IP "\fB--infobox \fItext height width"
An \fBinfo\fP box is basically a \fBmessage\fP box. 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. 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 exits, so that the message will remain on the screen until the calling
shell script clears it later. shell script clears it later.
This is useful when you want to inform This is useful when you want to inform
the user that some operations are carrying on that may require some the user that some operations are carrying on that may require some
time to finish. time to finish.
.IP .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, Only an "OK" button is provided for input,
but an ESC exit status may be returned. 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 If the input string is longer than
can fit in the dialog box, the input field will be scrolled. can fit in the dialog box, the input field will be scrolled.
.IP .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..." .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 It is possible to rename the current entry by pressing the
\fIRename\fP \fIRename\fP
button. 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 .IP
RENAMED <tag> <item> RENAMED <tag> <item>
.RE .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. scrolled if there are more entries than that.
.IP .IP
On exit the \fItag\fP 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 If the "\fB--help-button\fR" option is given, the corresponding help
text will be printed if the user selects the help button. text will be printed if the user selects the help button.
. .
@ -787,7 +805,7 @@ The meter indicates the percentage.
.IP .IP
It also displays a list of the \fItag\fP- and \fIitem\fP-values at the It also displays a list of the \fItag\fP- and \fIitem\fP-values at the
top of the box. top of the box.
See dialog(3) for the tag values. See \*l(3) for the tag values.
.IP .IP
The \fItext\fP is shown as a caption between the list and meter. 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. 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 No provision is made for reading data from the standard input as \fB--gauge\fP
does. does.
.IP .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. The widget accepts no input, so the exit status is always OK.
. .
.IP "\fB--msgbox \fItext height width" .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. 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. 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 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 .IP
If the message is too large for the space, 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. provided that the underlying curses implementation is capable enough.
In this case, a percentage is shown in the base of the widget. In this case, a percentage is shown in the base of the widget.
.IP .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, Only an "OK" button is provided for input,
but an ESC exit status may be returned. but an ESC exit status may be returned.
. .
@ -838,7 +856,7 @@ cannot see.
For these reasons, using "init" is highly discouraged. For these reasons, using "init" is highly discouraged.
See "\fB--insecure\fP" if you do not care about your password. See "\fB--insecure\fP" if you do not care about your password.
.IP .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 .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. 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 \fItext height width"
.IP "\fB--progressbox \fIheight width" .IP "\fB--progressbox \fIheight width"
A \fBprogressbox\fP is similar to an \fBtailbox\fP, 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 that you can indicate which entry is currently selected, by setting its
.IR status " to " on "." .IR status " to " on "."
.IP .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" .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. Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
A '0' resets the scrolling. A '0' resets the scrolling.
.IP .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, Only an "OK" button is provided for input,
but an ESC exit status may be returned. 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. Scroll left/right using vi-style 'h' and 'l', or arrow-keys.
A '0' resets the scrolling. A '0' resets the scrolling.
.IP .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. widgets (\fB--and-widget\fP) on the screen concurrently.
Until those widgets are closed (e.g., an "OK"), 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. polling for updates.
You may use a tab to traverse between the widgets on the screen, You may use a tab to traverse between the widgets on the screen,
and close them individually, e.g., by pressing \fIENTER\fP. 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 into the background, and prints its process id if the "\fB--no-kill\fP" option
is given. is given.
.IP .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, Only an "EXIT" button is provided for input,
but an ESC exit status may be returned. but an ESC exit status may be returned.
.IP .IP
NOTE: 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. update the screen individually.
Besides being bad for performance, Besides being bad for performance,
it was unworkable. it was unworkable.
@ -928,7 +976,7 @@ A '0' resets the left/right scrolling.
For more convenience, For more convenience,
vi-style forward and backward searching functions are also provided. vi-style forward and backward searching functions are also provided.
.IP .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, Only an "EXIT" button is provided for input,
but an ESC exit status may be returned. 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 button, in which the user can switch between by pressing the
.IR TAB " key." .IR TAB " key."
.IP .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) In addition to the "Yes" and "No" exit codes (see DIAGNOSTICS)
an ESC exit status may be returned. an ESC exit status may be returned.
.IP .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: Create a sample configuration file by typing:
.LP .LP
.in +1i .in +1i
"dialog --create-rc <file>" "\*p --create-rc <file>"
.TP 4 .TP 4
2. 2.
At start, At start,
\fBdialog\fP \fB\*p\fP
determines the settings to use as follows: determines the settings to use as follows:
.RS .RS
.TP 4 .TP 4
@ -1024,14 +1072,14 @@ if the file in (c) is not found, use compiled in defaults.
.TP 4 .TP 4
3. 3.
Edit the sample configuration file and copy it to some place that 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. can find, as stated in step 2 above.
. .
.\" ************************************************************************ .\" ************************************************************************
.SH "KEY BINDINGS" .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. 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 .EX
bindkey \fIwidget\fP \fIcurses_key\fP \fIdialog_key\fP bindkey \fIwidget\fP \fIcurses_key\fP \fIdialog_key\fP
.EE .EE
@ -1042,11 +1090,11 @@ User-defined bindings override the built-in bindings.
.PP .PP
The \fIcurses_key\fP can be any of the names derived from The \fIcurses_key\fP can be any of the names derived from
\fBcurses.h\fP, e.g., "HELP" from "KEY_HELP". \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 "~?". as well as C1-controls such as "~A" and "~?".
Finally, it allows any single character to be escaped with a backslash. Finally, it allows any single character to be escaped with a backslash.
.PP .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_ENUM\fP type in
\fBdlg_keys.h\fP, e.g., "HELP" from "DLGK_HELP". \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. Define this variable to apply any of the common options to each widget.
Most of the common options are reset before processing each widget. Most of the common options are reset before processing each widget.
If you set the options in this environment variable, 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, As in the "\fB--file\fP" option,
double-quotes and backslashes are interpreted. double-quotes and backslashes are interpreted.
.IP .IP
@ -1093,14 +1141,14 @@ Normally shell scripts cannot distinguish between -1 and 255.
.TP 15 .TP 15
\fBDIALOG_TTY\fP \fBDIALOG_TTY\fP
Set this variable to "1" to provide compatibility with older versions 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. that the "\fB--stdout\fP" option was given.
.SH FILES .SH FILES
.TP 20 .TP 20
\fI$HOME/.dialogrc\fP \fI$HOME/.dialogrc\fP
default configuration file default configuration file
.SH EXAMPLES .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. of how to use the different box options and how they look.
Just take a look into the directory \fBsamples/\fP of the source. Just take a look into the directory \fBsamples/\fP of the source.
.SH DIAGNOSTICS .SH DIAGNOSTICS
@ -1109,7 +1157,7 @@ Normally they are:
.TP 5 .TP 5
0 0
if if
.BR dialog " is exited by pressing the " Yes " or " OK .BR \*p " is exited by pressing the " Yes " or " OK
button. button.
.TP 5 .TP 5
1 1
@ -1132,24 +1180,24 @@ if the
button is pressed. button is pressed.
.TP 5 .TP 5
-1 -1
if errors occur inside \fBdialog\fP if errors occur inside \fB\*p\fP
or \fBdialog\fP is exited by pressing the \fIESC\fP key. or \fB\*p\fP is exited by pressing the \fIESC\fP key.
. .
.\" ************************************************************************ .\" ************************************************************************
.SH PORTABILITY .SH PORTABILITY
\fBdialog\fP works with X/Open curses. \fB\*L\fP works with X/Open curses.
However, some implementations have deficiencies: However, some implementations have deficiencies:
.RS 3 .RS 3
.TP 3 .TP 3
- -
HPUX curses (and perhaps others) do not open the terminal properly for HPUX curses (and perhaps others) do not open the terminal properly for
the \fInewterm\fP function. 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. by preventing cursor-keys and similar escape sequences from being recognized.
.TP 3 .TP 3
- -
NetBSD curses does not support subwindows of subwindows. NetBSD 5.1 curses has incomplete support for wide-characters.
\fBdialog\fP will not display shadows of windows. \fB\*p\fP will build, but not all examples display properly.
.RE .RE
.\" ************************************************************************ .\" ************************************************************************
.SH COMPATIBILITY .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 First, there is the "original" \fBdialog\fP program to consider (versions
0.3 to 0.9). 0.3 to 0.9).
It had some misspelled (or inconsistent) options. 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: They include:
.RS .RS
.TS .TS
@ -1176,7 +1224,7 @@ this is an X application.
With some care, it is possible to write useful scripts that work With some care, it is possible to write useful scripts that work
with both \fBXdialog\fP and \fBdialog\fP. with both \fBXdialog\fP and \fBdialog\fP.
.PP .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: by \fBXdialog\fP:
.RS .RS
.TS .TS
@ -1199,7 +1247,7 @@ l l.
.TE .TE
.RE .RE
.PP .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 .SS WHIPTAIL
Then there is \fBwhiptail\fP. Then there is \fBwhiptail\fP.
For practical purposes, it is maintained by Debian. For practical purposes, it is maintained by Debian.
@ -1207,13 +1255,13 @@ Its documentation claims
.RS .RS
.sp .sp
.nf .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 to provide dialog boxes for shell scripts. It is built on the
newt windowing library rather than the ncurses library, allowing newt windowing library rather than the ncurses library, allowing
it to be smaller in embedded enviroments such as installers, it to be smaller in embedded enviroments such as installers,
rescue disks, etc. rescue disks, etc.
.sp .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 has less features: some dialog boxes are not implemented, such
as tailbox, timebox, calendarbox, etc. as tailbox, timebox, calendarbox, etc.
.fi .fi
@ -1221,31 +1269,31 @@ as tailbox, timebox, calendarbox, etc.
.PP .PP
Comparing actual sizes (Debian testing, 2007/1/10): Comparing actual sizes (Debian testing, 2007/1/10):
The total of sizes for \fBwhiptail\fP, the newt, popt and slang libraries is 757kb. 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. Disregard the first paragraph.
.PP .PP
The second paragraph is misleading, since \fBwhiptail\fP The second paragraph is misleading, since \fBwhiptail\fP
also does not work for common options of dialog, such as the gauge box. also does not work for common options of \*p, such as the gauge box.
\fBwhiptail\fP is less compatible with \fBdialog\fP than the decade-old \fBwhiptail\fP is less compatible with \fB\*p\fP than the decade-old
original dialog 0.4 program. original dialog 0.4 program.
.PP .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, \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 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, the \fB--gauge\fP and \fB--password\fP boxes,
as well as options such as \fB-separate-output\fP. as well as options such as \fB-separate-output\fP.
Somewhat humorously, one may note that the \fBpopt\fP feature Somewhat humorously, one may note that the \fBpopt\fP feature
(undocumented in its manpage) (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. a year before it was mentioned in \fBwhiptail\fP's manpage.
\fBwhiptail\fP's manpage incorrectly attributes that to \fBgetopt\fP \fBwhiptail\fP's manpage incorrectly attributes that to \fBgetopt\fP
(and is inaccurate anyway). (and is inaccurate anyway).
.PP .PP
Debian uses \fBwhiptail\fP for the official \fBdialog\fP variation. Debian uses \fBwhiptail\fP for the official \fB\*p\fP variation.
.PP .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: by \fBwhiptail\fP:
.RS .RS
.TS .TS
@ -1275,7 +1323,7 @@ Valery Reznic - the form and progressbox widgets.
Yura Kalinichenko adapted the gauge widget as "pause". Yura Kalinichenko adapted the gauge widget as "pause".
.PP .PP
This is a rewrite (except as needed to provide compatibility) 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: which lists as authors:
.RS .RS
.LP .LP

View File

@ -1,5 +1,5 @@
.\" $Id: dialog.3,v 1.49 2010/02/23 10:33:59 tom Exp $ .\" $Id: dialog.3,v 1.60 2011/03/02 10:19:12 tom Exp $
.\" Copyright 2005-2009,2010 Thomas E. Dickey .\" Copyright 2005-2010,2011 Thomas E. Dickey
.\" .\"
.\" This program is free software; you can redistribute it and/or modify .\" 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 .\" it under the terms of the GNU Lesser General Public License, version 2.1
@ -15,24 +15,38 @@
.\" Free Software Foundation, Inc. .\" Free Software Foundation, Inc.
.\" 51 Franklin St., Fifth Floor .\" 51 Franklin St., Fifth Floor
.\" Boston, MA 02110, USA. .\" 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 .SH NAME
dialog \- widgets and utilities for the dialog program \*l \- widgets and utilities for the \*p program
.SH SYNOPSIS .SH SYNOPSIS
.B cc [ flag ... ] file ... -ldialog [ library ... ] .B cc [ flag ... ] file ... -l\*l [ library ... ]
.br
.B #include <dialog.h> \ \ \ or
.br
.B cc `\*p-config --cflags` file ... `\*p-config --libs` ]
.sp
.B #include <\*l.h>
.PP .PP
\fBDialog\fP \fB\*L\fP
is a program that will let you to present a variety of questions or is a program that will let you to present a variety of questions or
display messages using dialog boxes from a shell script. 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 which consists of several widgets
as well as utility functions that are used by the widgets as well as utility functions that are used by the widgets
or the main program. or the main program.
. .
.SH DESCRIPTION .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. are likely to be important to developers using the widgets directly.
Some hints are also given for developing new widgets. 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) Exit codes (passed back to the main program for its use)
are defined with a "\fIDLG_EXIT_\fP prefix. are defined with a "\fIDLG_EXIT_\fP prefix.
The defined constants can be mapped using environment variables 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. e.g., \fIDLG_EXIT_OK\fP corresponds to \fI$DIALOG_OK\fP.
.PP .PP
Useful character constants which correspond to user input Useful character constants which correspond to user input
@ -50,11 +64,11 @@ are named with the "\fICHR_\fP" prefix, e.g.,
.PP .PP
Colors and video attributes are categorized and associated with Colors and video attributes are categorized and associated with
settings in the configuration file 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 The \fIDIALOG_ATR(n)\fP macro is used for defining the references
to the combined color and attribute table \fIdlg_color_table[]\fP. to the combined color and attribute table \fIdlg_color_table[]\fP.
.PP .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, to the widget functions. Some of those parameters are single values,
but some of the widgets accept data as an array of values. but some of the widgets accept data as an array of values.
Those include checklist/radiobox, menubox and formbox. 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 The USE_ITEM_HELP(), CHECKBOX_TAGS, MENUBOX_TAGS and FORMBOX_TAGS
macros are used to hide this difference from the calling application. macros are used to hide this difference from the calling application.
.PP .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. are used for convenience in building the library or main program.
These include definitions based on the generated \fI<dlg_config.h>\fP header. These include definitions based on the generated \fI<dlg_config.h>\fP header.
.\" ************************************************************************ .\" ************************************************************************
.SH DATA STRUCTURES .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. 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 The corresponding \fIdialog_state\fP, \fIdialog_vars\fP and \fIdlg_color_table\fP
global variables should be initialized to zeros, global variables should be initialized to zeros,
@ -79,7 +93,7 @@ As as the case with function names,
variables beginning with "\fIdialog_\fP" variables beginning with "\fIdialog_\fP"
are designed for use by the calling application are designed for use by the calling application
while variables beginning with "\fIdlg_\fP" 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 .IP \fIDIALOG_STATE.all_windows
This is a linked list of all windows created by the library. 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. closed, the list is transferred to this variable.
Closing all windows causes the application to exit. 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 .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. which the application and library functions may write text results.
Normally that is the standard error, Normally that is the standard error,
since the curses library prefers to write its data to the standard output. 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 .IP \fIDIALOG_STATE.output_count
This is incremented by \fIdlg_does_output\fP, This is incremented by \fIdlg_does_output\fP,
which is called by each widget that writes text to the output. 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., also write a separator, i.e.,
\fIDIALOG_STATE.separate_str\fP, \fIDIALOG_STATE.separate_str\fP,
between calls to each widget. between calls to each widget.
@ -124,7 +143,7 @@ between calls to each widget.
.IP \fIDIALOG_STATE.pipe_input .IP \fIDIALOG_STATE.pipe_input
This is set in \fIinit_dialog\fP to a stream which can be used by the 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. \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 \fIinput\fP set to the standard input, but optionally based on the
"\fB--input-fd\fP" option. "\fB--input-fd\fP" option.
Since the application cannot read from Since the application cannot read from
@ -151,7 +170,7 @@ successfully open the terminal directly).
.IP \fIDIALOG_STATE.separate_str .IP \fIDIALOG_STATE.separate_str
This corresponds to the command-line option "\fB--separate-widget\fP". This corresponds to the command-line option "\fB--separate-widget\fP".
The given string 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. each widget.
This is used to simplify parsing the result of a dialog with several widgets. This is used to simplify parsing the result of a dialog with several widgets.
If this option is not given, 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. option is given.
The default is 8. 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 .IP \fIDIALOG_STATE.use_colors
This is set in \fIinit_dialog\fP if the curses implementation supports color. 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". This corresponds to the command-line option "\fB--visit-items\fP".
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.PP .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. 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: command-line options:
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.ascii_lines .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 .IP \fIDIALOG_VARS.cant_kill
This corresponds to the command-line option "\fB--no-kill\fP". This corresponds to the command-line option "\fB--no-kill\fP".
If true, this tells If true, this tells
\fBdialog\fP \fB\*p\fP
to put the to put the
\fBtailboxbg\fP \fBtailboxbg\fP
box in the background, 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. SIGHUP is disabled for the background process.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.colors .IP \fIDIALOG_VARS.colors
This corresponds to the command-line option "\fB--colors\fP". This corresponds to the command-line option "\fB--colors\fP".
If true, interpret embedded "\\Z" sequences in the dialog text If true, interpret embedded "\\Z" sequences in the dialog text
by the following character, 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: 0 through 7 are the ANSI codes used in curses:
black, black,
red, red,
@ -256,9 +279,9 @@ Restore normal settings with "\\Zn".
This corresponds to the command-line option "\fB--cr-wrap\fP". This corresponds to the command-line option "\fB--cr-wrap\fP".
If true, If true,
interpret embedded newlines in the dialog text as a newline on the screen. 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, 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 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 in the source code of your script without affecting the way it will
look in the dialog. 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. i.e., in checklist, radiolist and menu boxes.
If \fB--item-help\fR is also given, on exit If \fB--item-help\fR is also given, on exit
the return status will be the same as for the "OK" button, 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, Otherwise, the return status will indicate that the Help button was pressed,
and no message printed. 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. implements a menu versus a inputmenu widget.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.input_result .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, If \fIDIALOG_VARS.input_length\fP is zero,
this is a pointer to user buffer (on the stack, or static). 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, When \fIDIALOG_VARS.input_length\fP is nonzero,
this is a dynamically-allocated buffer used by the widgets to return this is a dynamically-allocated buffer used by the widgets to return
printable results to the calling application. 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 .IP \fIDIALOG_VARS.insecure
This corresponds to the command-line option "\fB--insecure\fP". 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 .IP \fIDIALOG_VARS.keep_tite
This is set by the command-line option "\fB--keep-tite\fP" 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 (termcap \fIti\fP/\fIte\fP) sequences which correspond to xterm's alternate-screen
switching. 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. in a script.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.keep_window .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 .IP \fIDIALOG_VARS.nocollapse
This corresponds to the command-line option "\fB--no-collapse\fP". 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. spaces to a single space for text which is displayed in a message boxes, etc.
It true, that feature is disabled. 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. option.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP \fIDIALOG_VARS.nook .IP \fIDIALOG_VARS.nook
@ -409,7 +447,7 @@ The given string overrides the label used for "OK" buttons.
.IP \fIDIALOG_VARS.print_siz .IP \fIDIALOG_VARS.print_siz
This corresponds to the command-line option "\fB--print-size\fP". This corresponds to the command-line option "\fB--print-size\fP".
If true, 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 .IP \fIDIALOG_VARS.quoted
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
@ -424,7 +462,7 @@ This corresponds to the command-line option "\fB--single-quoted\fP".
If true, If true,
Use single-quoting as needed (and no quotes if unneeded) for the Use single-quoting as needed (and no quotes if unneeded) for the
output of checklist's as well as the item-help text. 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 That requires occasional use of backslashes to make the output useful in
shell scripts. shell scripts.
.IP \fIDIALOG_VARS.size_err .IP \fIDIALOG_VARS.size_err
@ -479,7 +517,7 @@ The given string overrides the label used for "Yes" buttons.
.\" ************************************************************************ .\" ************************************************************************
.\" ************************************************************************ .\" ************************************************************************
.SH WIDGETS .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". program, e.g., widgets, have names beginning "\fIdialog_\fP".
All dialog boxes have at least three parameters: 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 .IP day
is the initial day of the week shown, is the initial day of the week shown,
counting zero as Sunday. counting zero as Sunday.
If the value is negative, If the value is negative, the current day of the week is used.
the current day of the week is used.
.IP month .IP month
is the initial month of the year shown, is the initial month of the year shown,
counting one as January. counting one as January.
If the value is negative, If the value is negative, the current month of the year is used.
the current month of the year is used.
.IP year .IP year
is the initial year shown. is the initial year shown.
If the value is negative, If the value is negative, the current year is used.
the current year is used.
.RE .RE
.\" ************************************************************************ .\" ************************************************************************
.IP \fBdialog_checklist .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. is the timeout to use for the progress bar.
.RE .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 .IP \fBdialog_progressbox
implements the "\fB--progressbox\fP" option. implements the "\fB--progressbox\fP" option.
.RS .RS
@ -897,16 +953,16 @@ is the desired width of the box.
If zero, the height is based on the screen size. If zero, the height is based on the screen size.
.IP hour .IP hour
is the initial hour shown. is the initial hour shown.
If the value is negative, If the value is negative, the current hour is used.
the current hour is used. Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 24.
.IP minute .IP minute
is the initial minute shown. is the initial minute shown.
If the value is negative, If the value is negative, the current minute is used.
the current minute is used. Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 60.
.IP second .IP second
is the initial second shown. is the initial second shown.
If the value is negative, If the value is negative, the current second is used.
the current second is used. Returns DLG_EXIT_ERROR if the value specified is greater than or equal to 60.
.RE .RE
.\" ************************************************************************ .\" ************************************************************************
.IP \fBdialog_yesno .IP \fBdialog_yesno
@ -927,7 +983,7 @@ If zero, the height is based on the screen size.
.\" ************************************************************************ .\" ************************************************************************
.SH UTILITY FUNCTIONS .SH UTILITY FUNCTIONS
Most functions that implement lower-level 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". program or widgets, have names beginning "\fIdlg_\fP".
Bowing to longstanding usage, the functions that initialize the Bowing to longstanding usage, the functions that initialize the
display and end it are named \fIinit_dialog\fP and \fIend_dialog\fP. 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 .TP 5
.B dlg_asciibox .B dlg_asciibox
returns its parameter transformed to the 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. If the parameter is not a line-drawing or other special character such as ACS_DARROW, it returns 0.
.RE .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. if neither \fBdialog_vars.ascii_lines\fP nor \fBdialog_vars.no_lines\fP is set.
.TP 3 .TP 3
.B - .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 .TP 3
.B - .B -
otherwise, if \fBdialog_vars.no_lines\fP is set, returns a space for the line-drawing characters. 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 .TP 5
.B dlg_checklist .B dlg_checklist
This entrypoint provides the \fB--checklist\fP or \fP--radiolist\fP 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). (compare to \fBdialog_checklist\fP).
.RS .RS
.TP 5 .TP 5
@ -1400,20 +1456,30 @@ On return, holds the updated starting line number.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_clear .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. This is set in the rc-file with \fBscreen_color\fP.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_clr_result .B dlg_clr_result
Free storage used for the result buffer (\fBdialog_vars.input_result\fP). Free storage used for the result buffer (\fBdialog_vars.input_result\fP).
The corresponding pointer is set to NULL.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_color_count .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 .TP 5
.B dlg_color_setup .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 .TP 5
.B dlg_count_columns .B dlg_count_columns
@ -1437,7 +1503,7 @@ is the string to measure.
.TP 5 .TP 5
.B dlg_create_rc .B dlg_create_rc
Create a configuration file, 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. as an rc-file.
.RS .RS
.TP 5 .TP 5
@ -1504,7 +1570,7 @@ is the window to remove.
.B dlg_does_output .B dlg_does_output
This is called each time a widget is invoked which may do output. This is called each time a widget is invoked which may do output.
It increments \fBdialog_state.output_count\fP, 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 .TP 5
.B dlg_draw_arrows .B dlg_draw_arrows
@ -1731,10 +1797,25 @@ is the stream on which to write the bindings.
.RE .RE
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .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 .B dlg_edit_offset
Given the character-offset in the string, Given the character-offset in the string,
returns the display-offset where returns the display-offset where
dialog should position the cursor. \fB\*p\fP should position the cursor.
In this context, "characters" may be multicolumn, In this context, "characters" may be multicolumn,
since the string can be a multibyte character string. since the string can be a multibyte character string.
.RS .RS
@ -1789,13 +1870,13 @@ is the internal exit code, e.g., \fBDLG_EXIT_OK\fP,
which may be remapped. which may be remapped.
.RE .RE
.IP .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 to allow shell scripts to remap the exit codes so they can distinguish ESC
from ERROR. from ERROR.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_exit_buttoncode .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 .RS
.TP 5 .TP 5
.B int \fIbutton .B int \fIbutton
@ -1844,7 +1925,7 @@ Cancel the local data saved by \fBdlg_last_getc\fP.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.IP dlg_editbox .IP dlg_editbox
This entrypoint provides the \fB--editbox\fP 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). (compare to \fBdialog_editbox\fP).
.RS .RS
.TP 5 .TP 5
@ -1874,7 +1955,7 @@ If zero, the height is adjusted to use the available screen size.
.TP 5 .TP 5
.B dlg_form .B dlg_form
This entrypoint provides the \fB--form\fP 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). (compare to \fBdialog_form\fP).
.RS .RS
.TP 5 .TP 5
@ -1951,6 +2032,15 @@ as a side-effect, set this to true if the key-code is really a function-key.
.RE .RE
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .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 .B dlg_getc_callbacks
passes the given key-code \fIch\fP to the current window that passes the given key-code \fIch\fP to the current window that
has established a callback. has established a callback.
@ -2001,7 +2091,7 @@ is the help-message
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_killall_bg .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 purge the list of all that are not marked
to keep in the background. to keep in the background.
If any remain, run those in a background process. 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 is the curses key-code
.TP 5 .TP 5
.B int * \fIdialog_key .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). (see \fBDLG_KEYS_ENUM\fP in dlg_key.h).
.RE .RE
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
@ -2078,7 +2168,7 @@ is the string to search
.TP 5 .TP 5
.B dlg_menu .B dlg_menu
This entrypoint provides the \fB--menu\fP 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). (compare to \fBdialog_menu\fP).
.RS .RS
.TP 5 .TP 5
@ -2344,7 +2434,7 @@ if negative, provides a way to enumerate extra active areas on the widget.
.TP 5 .TP 5
.B dlg_ok_buttoncode .B dlg_ok_buttoncode
Map the given button index for \fBdlg_ok_labels\fP Map the given button index for \fBdlg_ok_labels\fP
into \fBdialog\fP's exit-code. into \fB\*p\fP's exit-code.
.RS .RS
.TP 5 .TP 5
.B int \fIbutton .B int \fIbutton
@ -2370,7 +2460,7 @@ a curses-ordinate from a dialog-ordinate.
.B dlg_parse_bindkey .B dlg_parse_bindkey
Parse the parameters of the "bindkeys" configuration-file entry. This Parse the parameters of the "bindkeys" configuration-file entry. This
expects widget name which may be "*", followed by curses key definition and expects widget name which may be "*", followed by curses key definition and
then dialog key definition. then \fB\*p\fP key definition.
.RS .RS
.TP 5 .TP 5
.B char * \fIparams .B char * \fIparams
@ -2394,7 +2484,7 @@ is the current button index
.RE .RE
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
dlg_print_scrolled .B dlg_print_scrolled
This is a wrapper for \fBdlg_print_autowrap\fP which allows the user This is a wrapper for \fBdlg_print_autowrap\fP which allows the user
to scroll too-long prompt text up/down. to scroll too-long prompt text up/down.
.IP .IP
@ -2505,7 +2595,7 @@ is the window's width
.TP 5 .TP 5
.B dlg_print_text .B dlg_print_text
Print up to \fIcols\fP columns from \fBtext\fP, 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 .RS
.TP 5 .TP 5
.B WINDOW * \fIwin .B WINDOW * \fIwin
@ -2522,6 +2612,29 @@ holds the starting attributes, and is updated to reflect the final attributes
applied to the string. applied to the string.
.RE .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 .TP 5
.B dlg_put_backtitle .B dlg_put_backtitle
Display the background title if \fBdialog_vars.backtitle\fP is non-null. Display the background title if \fBdialog_vars.backtitle\fP is non-null.
@ -2570,16 +2683,22 @@ contains the callback information.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_restore_vars .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 .RS
.TP 5 .TP 5
.B DIALOG_VARS * \fIsave .B DIALOG_VARS * \fIsave
is the variable from which to restore. is the variable from which to restore.
.RE .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 .TP 5
.B dlg_result_key .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". buttons on the widget such as "OK".
This is only useful if there are user-defined key bindings, since there are 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. no built-in bindings that map directly to \fBDLGK_OK\fP, etc.
@ -2587,7 +2706,7 @@ Return true if a mapping was done.
.RS .RS
.TP 5 .TP 5
.B int \fIdialog_key .B int \fIdialog_key
is the dialog key to test is the \fB\*p\fP key to test
.TP 5 .TP 5
.B int \fIfkey .B int \fIfkey
is true if this is a function key is true if this is a function key
@ -2598,7 +2717,7 @@ store the result of the mapping in the referenced location.
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_save_vars .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 .RS
.TP 5 .TP 5
.B DIALOG_VARS * \fIsave .B DIALOG_VARS * \fIsave
@ -2683,6 +2802,17 @@ is the other string
.RE .RE
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .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 .B dlg_sub_window
create a subwindow, e.g., for an input area of a widget create a subwindow, e.g., for an input area of a widget
.RS .RS
@ -2762,7 +2892,7 @@ is the window from which to remove bindings
.\" --------------------------------------------------------------------------- .\" ---------------------------------------------------------------------------
.TP 5 .TP 5
.B dlg_yes_buttoncode .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 .RS
.TP 5 .TP 5
.B int \fIbutton .B int \fIbutton
@ -2775,7 +2905,7 @@ Return a list of buttons for Yes/No labels.
. .
.\" ************************************************************************ .\" ************************************************************************
.SH SEE ALSO .SH SEE ALSO
dialog (1). \fB\*p\fP (1).
. .
.\" ************************************************************************ .\" ************************************************************************
.SH AUTHOR .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 * 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 * 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 * 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_kill
,o_no_label ,o_no_label
,o_no_lines ,o_no_lines
,o_no_mouse
,o_no_shadow ,o_no_shadow
,o_nocancel ,o_nocancel
,o_noitem ,o_noitem
@ -105,9 +106,11 @@ typedef enum {
,o_passwordbox ,o_passwordbox
,o_passwordform ,o_passwordform
,o_pause ,o_pause
,o_prgbox
,o_print_maxsize ,o_print_maxsize
,o_print_size ,o_print_size
,o_print_version ,o_print_version
,o_programbox
,o_progressbox ,o_progressbox
,o_quoted ,o_quoted
,o_radiolist ,o_radiolist
@ -235,6 +238,7 @@ static const Options options[] = {
{ "no-kill", o_no_kill, 1, "" }, { "no-kill", o_no_kill, 1, "" },
{ "no-label", o_no_label, 1, "<str>" }, { "no-label", o_no_label, 1, "<str>" },
{ "no-lines", o_no_lines, 1, "" }, { "no-lines", o_no_lines, 1, "" },
{ "no-mouse", o_no_mouse, 1, "" },
{ "no-ok", o_nook, 1, "" }, { "no-ok", o_nook, 1, "" },
{ "no-shadow", o_no_shadow, 1, "" }, { "no-shadow", o_no_shadow, 1, "" },
{ "nocancel", o_nocancel, 1, NULL }, /* see --no-cancel */ { "nocancel", o_nocancel, 1, NULL }, /* see --no-cancel */
@ -246,10 +250,12 @@ static const Options options[] = {
{ "passwordbox", o_passwordbox, 2, "<text> <height> <width> [<init>]" }, { "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>..." }, { "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>" }, { "pause", o_pause, 2, "<text> <height> <width> <seconds>" },
{ "prgbox", o_prgbox, 2, "<text> <command> <height> <width>" },
{ "print-maxsize", o_print_maxsize, 1, "" }, { "print-maxsize", o_print_maxsize, 1, "" },
{ "print-size", o_print_size, 1, "" }, { "print-size", o_print_size, 1, "" },
{ "print-version", o_print_version, 5, "" }, { "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, "" }, { "quoted", o_quoted, 1, "" },
{ "radiolist", o_radiolist, 2, "<text> <height> <width> <list height> <tag1> <item1> <status1>..." }, { "radiolist", o_radiolist, 2, "<text> <height> <width> <list height> <tag1> <item1> <status1>..." },
{ "screen-center", o_screen_center, 1, NULL }, { "screen-center", o_screen_center, 1, NULL },
@ -286,109 +292,6 @@ static const Options options[] = {
}; };
/* *INDENT-ON* */ /* *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 * Make an array showing which argv[] entries are options. Use "--" as a
* special token to escape the next argument, allowing it to begin with "--". * 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; bool escaped = FALSE;
if (!strcmp((*argvp)[j], "--")) { if (!strcmp((*argvp)[j], "--")) {
escaped = TRUE; escaped = TRUE;
changed = eat_argv(argcp, argvp, j, 1); changed = dlg_eat_argv(argcp, argvp, j, 1);
} else if (!strcmp((*argvp)[j], "--args")) { } else if (!strcmp((*argvp)[j], "--args")) {
fprintf(stderr, "Showing arguments at arg%d\n", j); fprintf(stderr, "Showing arguments at arg%d\n", j);
for (k = 0; k < *argcp; ++k) { for (k = 0; k < *argcp; ++k) {
fprintf(stderr, " arg%d:%s\n", k, (*argvp)[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")) { } else if (!strcmp((*argvp)[j], "--file")) {
if (++count_includes > limit_includes) if (++count_includes > limit_includes)
dlg_exiterr("Too many --file options"); dlg_exiterr("Too many --file options");
@ -453,7 +356,7 @@ unescape_argv(int *argcp, char ***argvp)
assert_ptr(blob, "unescape_argv"); assert_ptr(blob, "unescape_argv");
bytes_read = fread(blob + length, bytes_read = fread(blob + length,
sizeof(char), sizeof(char),
BUFSIZ, (size_t) BUFSIZ,
fp); fp);
length += bytes_read; length += bytes_read;
if (ferror(fp)) if (ferror(fp))
@ -463,8 +366,8 @@ unescape_argv(int *argcp, char ***argvp)
blob[length] = '\0'; blob[length] = '\0';
list = string_to_argv(blob); list = dlg_string_to_argv(blob);
if ((added = count_argv(list)) != 0) { if ((added = dlg_count_argv(list)) != 0) {
if (added > 2) { if (added > 2) {
size_t need = (size_t) (*argcp + added + 1); size_t need = (size_t) (*argcp + added + 1);
if (doalloc) { if (doalloc) {
@ -505,7 +408,7 @@ unescape_argv(int *argcp, char ***argvp)
} }
if (!escaped if (!escaped
&& (*argvp)[j] != 0 && (*argvp)[j] != 0
&& !strncmp((*argvp)[j], "--", 2) && !strncmp((*argvp)[j], "--", (size_t) 2)
&& isalpha(UCH((*argvp)[j][2]))) { && isalpha(UCH((*argvp)[j][2]))) {
dialog_opts[j] = TRUE; dialog_opts[j] = TRUE;
} }
@ -538,7 +441,7 @@ isOption(const char *arg)
break; break;
} }
} }
} else if (!strncmp(arg, "--", 2) && isalpha(UCH(arg[2]))) { } else if (!strncmp(arg, "--", (size_t) 2) && isalpha(UCH(arg[2]))) {
result = TRUE; result = TRUE;
} }
} }
@ -614,7 +517,7 @@ static int
numeric_arg(char **av, int n) numeric_arg(char **av, int n)
{ {
char *last = 0; char *last = 0;
int result = strtol(av[n], &last, 10); int result = (int) strtol(av[n], &last, 10);
char msg[80]; char msg[80];
if (last == 0 || *last != 0) { if (last == 0 || *last != 0) {
@ -666,7 +569,8 @@ show_result(int ret)
dialog_state.output); dialog_state.output);
either = TRUE; 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); fputs(dialog_vars.input_result, dialog_state.output);
either = TRUE; either = TRUE;
} }
@ -740,24 +644,33 @@ static int
call_inputmenu(CALLARGS) call_inputmenu(CALLARGS)
{ {
int tags = howmany_tags(av + 5, MENUBOX_TAGS); int tags = howmany_tags(av + 5, MENUBOX_TAGS);
bool free_extra_label = FALSE;
int result;
dialog_vars.input_menu = TRUE; dialog_vars.input_menu = TRUE;
if (dialog_vars.max_input == 0) if (dialog_vars.max_input == 0)
dialog_vars.max_input = MAX_LEN / 2; dialog_vars.max_input = MAX_LEN / 2;
if (dialog_vars.extra_label == 0) if (dialog_vars.extra_label == 0) {
dialog_vars.extra_label = _("Rename"); free_extra_label = TRUE;
dialog_vars.extra_label = dlg_strclone(_("Rename"));
}
dialog_vars.extra_button = TRUE; dialog_vars.extra_button = TRUE;
*offset_add = 5 + tags * MENUBOX_TAGS; *offset_add = 5 + tags * MENUBOX_TAGS;
return dialog_menu(t, result = dialog_menu(t,
av[1], av[1],
numeric_arg(av, 2), numeric_arg(av, 2),
numeric_arg(av, 3), numeric_arg(av, 3),
numeric_arg(av, 4), numeric_arg(av, 4),
tags, av + 5); tags, av + 5);
if (free_extra_label) {
free(dialog_vars.extra_label);
dialog_vars.extra_label = 0;
}
return result;
} }
static int static int
@ -959,6 +872,53 @@ call_mixed_gauge(CALLARGS)
} }
#endif #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 #ifdef HAVE_DLG_GAUGE
static int static int
call_progressbox(CALLARGS) call_progressbox(CALLARGS)
@ -1018,6 +978,8 @@ static const Mode modes[] =
#ifdef HAVE_DLG_GAUGE #ifdef HAVE_DLG_GAUGE
{o_gauge, 4, 5, call_gauge}, {o_gauge, 4, 5, call_gauge},
{o_pause, 5, 5, call_pause}, {o_pause, 5, 5, call_pause},
{o_prgbox, 4, 5, call_prgbox},
{o_programbox, 3, 4, call_programbox},
{o_progressbox, 3, 4, call_progressbox}, {o_progressbox, 3, 4, call_progressbox},
#endif #endif
#ifdef HAVE_DLG_FORMBOX #ifdef HAVE_DLG_FORMBOX
@ -1067,7 +1029,7 @@ optionValue(char **argv, int *num)
int result = 0; int result = 0;
if (src != 0) { if (src != 0) {
result = strtol(src, &tmp, 0); result = (int) strtol(src, &tmp, 0);
if (tmp == 0 || *tmp != 0) if (tmp == 0 || *tmp != 0)
src = 0; src = 0;
} }
@ -1135,7 +1097,7 @@ Help(void)
static const char *const tbl_1[] = static const char *const tbl_1[] =
{ {
"cdialog (ComeOn Dialog!) version %s", "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", "This is free software; see the source for copying conditions. There is NO",
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.", "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.", "Global-auto-size if also menu_height/list_height = 0.",
0 0
}; };
unsigned limit = sizeof(options) / sizeof(options[0]); size_t limit = sizeof(options) / sizeof(options[0]);
unsigned j, k; size_t j, k;
const Options **opts; const Options **opts;
opts = dlg_calloc(const Options *, limit); opts = dlg_calloc(const Options *, limit);
@ -1172,7 +1134,7 @@ Help(void)
for (j = k = 0; j < limit; j++) { for (j = k = 0; j < limit; j++) {
if ((opts[j]->pass & 1) if ((opts[j]->pass & 1)
&& opts[j]->help != 0) { && 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; k += len;
if (k > 75) { if (k > 75) {
fprintf(dialog_state.output, "\n "); fprintf(dialog_state.output, "\n ");
@ -1204,6 +1166,9 @@ Help(void)
static int static int
process_common_options(int argc, char **argv, int offset, bool output) process_common_options(int argc, char **argv, int offset, bool output)
{ {
#ifdef HAVE_DLG_TRACE
int n;
#endif
bool done = FALSE; bool done = FALSE;
while (offset < argc && !done) { /* Common options */ 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.no_lines = TRUE;
dialog_vars.ascii_lines = FALSE; dialog_vars.ascii_lines = FALSE;
break; break;
case o_no_mouse:
dialog_state.no_mouse = TRUE;
break;
case o_noitem: case o_noitem:
case o_fullbutton: case o_fullbutton:
/* ignore */ /* ignore */
@ -1418,6 +1386,9 @@ process_common_options(int argc, char **argv, int offset, bool output)
#ifdef HAVE_DLG_TRACE #ifdef HAVE_DLG_TRACE
case o_trace: case o_trace:
dlg_trace(optionString(argv, &offset)); dlg_trace(optionString(argv, &offset));
for (n = 0; argv[n] != 0; ++n) {
dlg_trace_msg("argv[%d] = %s\n", n, argv[n]);
}
break; break;
#endif #endif
} }
@ -1453,8 +1424,8 @@ init_result(char *buffer)
if (env != 0) if (env != 0)
env = dlg_strclone(env); env = dlg_strclone(env);
if (env != 0) { if (env != 0) {
special_argv = string_to_argv(env); special_argv = dlg_string_to_argv(env);
special_argc = count_argv(special_argv); special_argc = dlg_count_argv(special_argv);
} }
} }
if (special_argv != 0) { if (special_argv != 0) {
@ -1487,8 +1458,8 @@ main(int argc, char *argv[])
#if defined(ENABLE_NLS) #if defined(ENABLE_NLS)
/* initialize locale support */ /* initialize locale support */
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR); bindtextdomain(NLS_TEXTDOMAIN, LOCALEDIR);
textdomain(PACKAGE); textdomain(NLS_TEXTDOMAIN);
#elif defined(HAVE_SETLOCALE) #elif defined(HAVE_SETLOCALE)
(void) setlocale(LC_ALL, ""); (void) setlocale(LC_ALL, "");
#endif #endif
@ -1664,8 +1635,10 @@ main(int argc, char *argv[])
&offset_add)); &offset_add));
offset += offset_add; offset += offset_add;
if (dialog_vars.input_result != my_buffer) if (dialog_vars.input_result != my_buffer) {
free(dialog_vars.input_result); free(dialog_vars.input_result);
dialog_vars.input_result = 0;
}
if (retval == DLG_EXIT_ESC) { if (retval == DLG_EXIT_ESC) {
esc_pressed = TRUE; 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 * 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 * it under the terms of the GNU Lesser General Public License, version 2.1
@ -26,6 +26,7 @@
#ifndef DIALOG_H_included #ifndef DIALOG_H_included
#define DIALOG_H_included 1 #define DIALOG_H_included 1
/* *INDENT-OFF* */
#include <dlg_config.h> #include <dlg_config.h>
@ -43,6 +44,8 @@
#include <signal.h> /* fork() etc. */ #include <signal.h> /* fork() etc. */
#include <math.h> /* sqrt() */ #include <math.h> /* sqrt() */
#undef ERR /* header conflict with Solaris xpg4 */
#if defined(HAVE_NCURSESW_NCURSES_H) #if defined(HAVE_NCURSESW_NCURSES_H)
#include <ncursesw/ncurses.h> #include <ncursesw/ncurses.h>
#elif defined(HAVE_NCURSES_NCURSES_H) #elif defined(HAVE_NCURSES_NCURSES_H)
@ -60,6 +63,19 @@
#include <unctrl.h> #include <unctrl.h>
#endif #endif
/* Solaris xpg4 renames these */
#ifndef KEY_MAX
#ifdef __KEY_MAX
#define KEY_MAX __KEY_MAX
#endif
#endif
#ifndef KEY_MIN
#ifdef __KEY_MIN
#define KEY_MIN __KEY_MIN
#endif
#endif
/* possible conflicts with <term.h> which may be included in <curses.h> */ /* possible conflicts with <term.h> which may be included in <curses.h> */
#ifdef color_names #ifdef color_names
#undef color_names #undef color_names
@ -143,7 +159,7 @@
#define ARROWS_COL 5 #define ARROWS_COL 5
#define MAX_LEN 2048 #define MAX_LEN 2048
#define BUF_SIZE (10*1024) #define BUF_SIZE (10L*1024)
#undef MIN #undef MIN
#define MIN(x,y) ((x) < (y) ? (x) : (y)) #define MIN(x,y) ((x) < (y) ? (x) : (y))
@ -155,7 +171,7 @@
#define DEFAULT_ASPECT_RATIO 9 #define DEFAULT_ASPECT_RATIO 9
/* how many spaces is a tab long (default)? */ /* how many spaces is a tab long (default)? */
#define TAB_LEN 8 #define TAB_LEN 8
#define WTIMEOUT_VAL 10 #define WTIMEOUT_VAL 10 /* minimum amount of time needed for curses */
#ifndef A_CHARTEXT #ifndef A_CHARTEXT
#define A_CHARTEXT 0xff #define A_CHARTEXT 0xff
@ -336,6 +352,7 @@ extern int dlg_getpary(WINDOW * /*win*/);
#define form_active_text_attr DIALOG_ATR(30) #define form_active_text_attr DIALOG_ATR(30)
#define form_text_attr DIALOG_ATR(31) #define form_text_attr DIALOG_ATR(31)
#define form_item_readonly_attr DIALOG_ATR(32) #define form_item_readonly_attr DIALOG_ATR(32)
#define gauge_attr DIALOG_ATR(33)
#define DLGK_max (KEY_MAX + 256) #define DLGK_max (KEY_MAX + 256)
@ -357,6 +374,9 @@ typedef struct _dlg_callback {
/* data for dlg_add_callback_ref */ /* data for dlg_add_callback_ref */
struct _dlg_callback **caller; struct _dlg_callback **caller;
DIALOG_FREEBACK freeback; DIALOG_FREEBACK freeback;
/* 1.1-20110107 */
bool (*handle_input)(struct _dlg_callback *p);
bool input_ready;
} DIALOG_CALLBACK; } DIALOG_CALLBACK;
typedef struct _dlg_windows { typedef struct _dlg_windows {
@ -389,6 +409,8 @@ typedef struct {
#ifdef HAVE_DLG_TRACE #ifdef HAVE_DLG_TRACE
FILE *trace_output; /* option "--trace file" */ FILE *trace_output; /* option "--trace file" */
#endif #endif
/* 1.1-20110106 */
bool no_mouse; /* option "--no-mouse" */
} DIALOG_STATE; } DIALOG_STATE;
extern DIALOG_STATE 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 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_malloc(t,n) (t *) malloc((size_t)(n) * sizeof(t))
#define dlg_calloc(t,n) (t *) calloc((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)) #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_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_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_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_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_tailbox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/, int /*bg_task*/);
extern int dialog_textbox(const char * /*title*/, const char * /*file*/, int /*height*/, int /*width*/); extern int dialog_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_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_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_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 */ /* arrows.c */
extern void dlg_draw_arrows(WINDOW * /*dialog*/, int /*top_arrow*/, int /*bottom_arrow*/, int /*x*/, int /*top*/, int /*bottom*/); extern void dlg_draw_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 char * dlg_strempty(void);
extern chtype dlg_asciibox(chtype /*ch*/); extern chtype dlg_asciibox(chtype /*ch*/);
extern chtype dlg_boxchar(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 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_x_ordinate(int /*width*/);
extern int dlg_box_y_ordinate(int /*height*/); 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 #ifdef __cplusplus
} }
#endif #endif
/* *INDENT-ON* */
#endif /* DIALOG_H_included */ #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 * 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 * 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 * 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_BG_FORM_TEXT COLOR_CYAN
#define DLGC_HL_FORM_TEXT TRUE #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 */ /* 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 * 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 * 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; top = y - 1;
bottom = y + getmaxy(list->win); bottom = y + getmaxy(list->win);
dlg_draw_scrollbar(list->par, dlg_draw_scrollbar(list->par,
list->offset, (long) list->offset,
list->offset, (long) list->offset,
list->offset + getmaxy(list->win), (long) (list->offset + getmaxy(list->win)),
list->length, (long) (list->length),
x + 1, x + 1,
x + getmaxx(list->win), x + getmaxx(list->win),
top, top,
@ -289,7 +289,7 @@ fix_arrows(LIST * list)
} }
static int 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); int changed = keep || find_choice(target, list);
display_list(list); display_list(list);
@ -301,7 +301,7 @@ show_list(char *target, LIST * list, bool keep)
* to match. * to match.
*/ */
static int 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); char *leaf = leaf_of(input);
@ -427,7 +427,7 @@ complete(char *name, LIST * d_list, LIST * f_list, char **buff_ptr)
} }
static bool 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; DIR *dp;
DIRENT *de; DIRENT *de;
@ -528,7 +528,7 @@ usable_state(int state, LIST * dirs, LIST * files)
* Display a dialog box for entering a filename * Display a dialog box for entering a filename
*/ */
static int 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* */ /* *INDENT-OFF* */
static DLG_KEYS_BINDING binding[] = { 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_text = 0;
WINDOW *w_work = 0; WINDOW *w_work = 0;
const char **buttons = dlg_ok_labels(); const char **buttons = dlg_ok_labels();
char *d_label = _("Directories"); const char *d_label = _("Directories");
char *f_label = _("Files"); const char *f_label = _("Files");
char *partial; char *partial;
int min_wide = MIN_WIDE; int min_wide = MIN_WIDE;
int min_items = height ? 0 : 4; 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) { if (resized) {
resized = FALSE; resized = FALSE;
dlg_show_string(w_text, input, offset, inputbox_attr, dlg_show_string(w_text, input, offset, inputbox_attr,
0, 0, tbox_width, 0, first); 0, 0, tbox_width, (bool) 0, (bool) first);
} }
#endif #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 * 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 * it under the terms of the GNU Lesser General Public License, version 2.1
@ -33,12 +33,11 @@
#define MIN_HIGH (4) #define MIN_HIGH (4)
#define MIN_WIDE (10 + 2 * (2 + MARGIN)) #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 { typedef struct {
DIALOG_CALLBACK obj; DIALOG_CALLBACK obj;
WINDOW *text; WINDOW *text;
bool done;
const char *title; const char *title;
char *prompt; char *prompt;
char prompt_buf[MY_LEN]; char prompt_buf[MY_LEN];
@ -82,64 +81,70 @@ repaint_text(MY_OBJ * obj)
WINDOW *dialog = obj->obj.win; WINDOW *dialog = obj->obj.win;
int i, x; int i, x;
(void) werase(dialog); if (dialog != 0 && obj->obj.input != 0) {
dlg_draw_box(dialog, 0, 0, obj->height, obj->width, dialog_attr, border_attr); (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); wattrset(dialog, dialog_attr);
dlg_print_autowrap(dialog, obj->prompt, obj->height, obj->width); dlg_print_autowrap(dialog, obj->prompt, obj->height, obj->width);
dlg_draw_box(dialog, dlg_draw_box(dialog,
obj->height - 4, 2 + MARGIN, obj->height - 4, 2 + MARGIN,
2 + MARGIN, obj->width - 2 * (2 + MARGIN), 2 + MARGIN, obj->width - 2 * (2 + MARGIN),
dialog_attr, dialog_attr,
border_attr); border_attr);
/* /*
* Clear the area for the progress bar by filling it with spaces * Clear the area for the progress bar by filling it with spaces
* in the title-attribute, and write the percentage with that * in the title-attribute, and write the percentage with that
* attribute. * attribute.
*/ */
(void) wmove(dialog, obj->height - 3, 4); (void) wmove(dialog, obj->height - 3, 4);
wattrset(dialog, title_attr); wattrset(dialog, gauge_attr);
for (i = 0; i < (obj->width - 2 * (3 + MARGIN)); i++) for (i = 0; i < (obj->width - 2 * (3 + MARGIN)); i++)
(void) waddch(dialog, ' '); (void) waddch(dialog, ' ');
(void) wmove(dialog, obj->height - 3, (obj->width / 2) - 2); (void) wmove(dialog, obj->height - 3, (obj->width / 2) - 2);
(void) wprintw(dialog, "%3d%%", obj->percent); (void) wprintw(dialog, "%3d%%", obj->percent);
/* /*
* Now draw a bar in reverse, relative to the background. * Now draw a bar in reverse, relative to the background.
* The window attribute was useful for painting the background, * The window attribute was useful for painting the background,
* but requires some tweaks to reverse it. * but requires some tweaks to reverse it.
*/ */
x = (obj->percent * (obj->width - 2 * (3 + MARGIN))) / 100; x = (obj->percent * (obj->width - 2 * (3 + MARGIN))) / 100;
if ((title_attr & A_REVERSE) != 0) { if ((title_attr & A_REVERSE) != 0) {
wattroff(dialog, A_REVERSE); wattroff(dialog, A_REVERSE);
} else { } else {
wattrset(dialog, A_REVERSE); wattrset(dialog, A_REVERSE);
} }
(void) wmove(dialog, obj->height - 3, 4); (void) wmove(dialog, obj->height - 3, 4);
for (i = 0; i < x; i++) { for (i = 0; i < x; i++) {
chtype ch2 = winch(dialog); chtype ch2 = winch(dialog);
if (title_attr & A_REVERSE) { if (title_attr & A_REVERSE) {
ch2 &= ~A_REVERSE; ch2 &= ~A_REVERSE;
}
(void) waddch(dialog, ch2);
} }
(void) waddch(dialog, ch2);
}
(void) wrefresh(dialog); (void) wrefresh(dialog);
}
} }
static int static bool
handle_input(MY_OBJ * obj) handle_input(DIALOG_CALLBACK * cb)
{ {
MY_OBJ *obj = (MY_OBJ *) cb;
bool result;
int status; int status;
char buf[MY_LEN]; 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)) { if (isMarker(buf)) {
/* /*
@ -172,25 +177,32 @@ handle_input(MY_OBJ * obj)
obj->percent = atoi(buf); obj->percent = atoi(buf);
} }
} else { } 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 static bool
handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result) handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result)
{ {
MY_OBJ *obj = (MY_OBJ *) cb;
int status = TRUE; int status = TRUE;
*result = DLG_EXIT_OK; *result = DLG_EXIT_OK;
if (obj != 0) { if (cb != 0) {
if (!fkey && (ch == ERR)) { if (!fkey && (ch == ERR)) {
if (handle_input(obj) > 0) (void) handle_input(cb);
repaint_text(obj); status = (cb->input != 0);
else
status = FALSE;
} }
} else { } else {
status = FALSE; status = FALSE;
@ -265,12 +277,15 @@ dialog_gauge(const char *title,
obj->obj.keep_win = TRUE; obj->obj.keep_win = TRUE;
obj->obj.bg_task = TRUE; obj->obj.bg_task = TRUE;
obj->obj.handle_getc = handle_my_getc; obj->obj.handle_getc = handle_my_getc;
obj->obj.handle_input = handle_input;
obj->title = title; obj->title = title;
obj->prompt = prompt; obj->prompt = prompt;
obj->percent = percent; obj->percent = percent;
obj->height = height; obj->height = height;
obj->width = width; obj->width = width;
dlg_add_callback_ref((DIALOG_CALLBACK **) objref, my_cleanup); dlg_add_callback_ref((DIALOG_CALLBACK **) objref, my_cleanup);
} else {
obj->obj.win = dialog;
} }
repaint_text(obj); repaint_text(obj);

View File

@ -1,7 +1,7 @@
#! /bin/sh #! /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 # # Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), # # copy of this software and associated documentation files (the "Software"), #
@ -43,6 +43,7 @@
PACKAGE=@PACKAGE@ PACKAGE=@PACKAGE@
PKGNAME=@PACKAGE_PREFIX@ PKGNAME=@PACKAGE_PREFIX@
CONFIGH=@PACKAGE_CONFIG@ CONFIGH=@PACKAGE_CONFIG@
SUB_INC=@SUB_INC@
TMPSED=headers.sed TMPSED=headers.sed
@ -54,6 +55,8 @@ alnum=_${DIGIT}${alpha}
ALNUM=_${DIGIT}${ALPHA} ALNUM=_${DIGIT}${ALPHA}
MIXED=_${DIGIT}${ALPHA}${alpha} MIXED=_${DIGIT}${ALPHA}${alpha}
pkgname=`echo "$PKGNAME" | tr "$ALPHA" "$alpha"`
if test $# = 2 ; then if test $# = 2 ; then
rm -f $TMPSED rm -f $TMPSED
DST=$1 DST=$1
@ -71,7 +74,7 @@ if test $# = 2 ; then
done done
;; ;;
*) *)
echo "" >> $TMPSED touch $TMPSED
;; ;;
esac esac
@ -109,7 +112,8 @@ EOF
# pick up autoconf-defined symbols in the config.h file # pick up autoconf-defined symbols in the config.h file
for name in ` for name in `
egrep '^#define[ ][ ]*['$ALNUM']' $REF/$CONFIGH \ egrep '^#define[ ][ ]*['$ALNUM']' $REF/$CONFIGH \
| sed -e 's/^#define[ ][ ]*//' \ | sed \
-e 's/^#define[ ][ ]*//' \
-e 's/[ ].*//' \ -e 's/[ ].*//' \
| egrep -v "^${PACKAGE}_" \ | egrep -v "^${PACKAGE}_" \
| sort -u \ | sort -u \
@ -118,6 +122,11 @@ EOF
echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED
done 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 # reduce the count if possible, since some old sed's limit is 100 lines
sort -u $TMPSED >headers.tmp sort -u $TMPSED >headers.tmp
mv headers.tmp $TMPSED mv headers.tmp $TMPSED
@ -145,6 +154,24 @@ else
# Just in case someone gzip'd manpages, remove the conflicting copy. # Just in case someone gzip'd manpages, remove the conflicting copy.
test -f $DST/$NAME.gz && rm -f $DST/$NAME.gz 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 eval $PRG $TMPSRC $DST/$NAME
rm -f $TMPSRC rm -f $TMPSRC
fi 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 * 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 * 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 */ struct _cache *cache_at; /* unique: associate caches by CACHE */
const char *string_at; /* unique: associate caches by char* */ const char *string_at; /* unique: associate caches by char* */
#endif #endif
unsigned s_len; /* strlen(string) - we add 1 for EOS */ size_t s_len; /* strlen(string) - we add 1 for EOS */
unsigned i_len; /* length(list) - 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 */ char *string; /* a copy of the last-processed string */
int *list; /* indices into the string */ int *list; /* indices into the string */
} CACHE; } CACHE;
@ -95,9 +95,9 @@ compare_cache(const void *a, const void *b)
const CACHE *p = (const CACHE *) a; const CACHE *p = (const CACHE *) a;
const CACHE *q = (const CACHE *) b; const CACHE *q = (const CACHE *) b;
int result = 0; int result = 0;
result = p->cache_at - q->cache_at; result = (int) (p->cache_at - q->cache_at);
if (result == 0) if (result == 0)
result = p->string_at - q->string_at; result = (int) (p->string_at - q->string_at);
return result; return result;
} }
#endif #endif
@ -187,12 +187,12 @@ static bool
same_cache2(CACHE * cache, const char *string, unsigned i_len) same_cache2(CACHE * cache, const char *string, unsigned i_len)
{ {
unsigned need; unsigned need;
unsigned s_len = strlen(string); size_t s_len = strlen(string);
if (cache->s_len != 0 if (cache->s_len != 0
&& cache->s_len >= s_len && cache->s_len >= s_len
&& cache->list != 0 && cache->list != 0
&& SAME_CACHE(cache, string, s_len)) { && SAME_CACHE(cache, string, (size_t) s_len)) {
return TRUE; return TRUE;
} }
@ -222,12 +222,12 @@ same_cache2(CACHE * cache, const char *string, unsigned i_len)
* string and its associated length. * string and its associated length.
*/ */
static bool 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 if (cache->s_len == s_len
&& SAME_CACHE(cache, string, s_len)) { && SAME_CACHE(cache, string, (size_t) s_len)) {
return TRUE; return TRUE;
} }
@ -422,10 +422,10 @@ dlg_index_columns(const char *string)
result = wcwidth(temp[0]); result = wcwidth(temp[0]);
} }
if (result < 0) { if (result < 0) {
wchar_t *printable; const wchar_t *printable;
cchar_t temp2; cchar_t temp2, *temp2p = &temp2;
setcchar(&temp2, temp, 0, 0, 0); setcchar(temp2p, temp, 0, 0, 0);
printable = wunctrl(&temp2); printable = wunctrl(temp2p);
result = printable ? (int) wcslen(printable) : 1; 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 # 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 SHELL = /bin/sh
@ -34,12 +61,12 @@ MAN3DIR = $(MANDIR)/man3
localedir = $(prefix)/@DATADIRNAME@/locale localedir = $(prefix)/@DATADIRNAME@/locale
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@ @DEFS@ -I. -I$(srcdir) -DLOCALEDIR=\"$(localedir)\" CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLOCALEDIR=\"$(localedir)\"
EXTRA_CFLAGS = @EXTRA_CFLAGS@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
CC = @CC@ CC = @CC@
CPP = @CPP@ CPP = @CPP@
AR = @AR@ AR = @AR@
LDFLAGS = @LDFLAGS@ LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@
LIBS = @LIBS@ @INTLLIBS@ LIBS = @LIBS@ @INTLLIBS@
RANLIB = @LIB_PREP@ RANLIB = @LIB_PREP@
@ -65,7 +92,16 @@ INSTALL_DATA = @INSTALL_DATA@
LINK = $(LIBTOOL_LINK) 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. # Standard .c to .o compile line.
# #
@ -91,6 +127,7 @@ PACKAGE = `echo @PACKAGE@ |sed @program_transform_name@`
EXTRAOBJS = @EXTRAOBJS@ EXTRAOBJS = @EXTRAOBJS@
OBJECTS = $(EXTRAOBJS) \ OBJECTS = $(EXTRAOBJS) \
argv$o \
arrows$o \ arrows$o \
buttons$o \ buttons$o \
checklist$o \ checklist$o \
@ -118,14 +155,12 @@ HDRS = \
dlg_config.h \ dlg_config.h \
dlg_keys.h dlg_keys.h
LIB = @LIB_PREFIX@dialog$a ALL = $(LIB) $(PROG)
PROG = dialog$x
ALL = $(LIB) $(PROG)
BIN_DIRS = $(BINDIR) $(MAN1DIR) BIN_DIRS = $(BINDIR) $(MAN1DIR)
LIB_DIRS = $(LIBDIR) $(INCLUDEDIR) LIB_DIRS = $(LIBDIR) $(INCLUDEDIR)
PO_DIR = $(srcdir)/po PO_DIR = $(srcdir)/po
all :: $(ALL) all :: $(ALL)
@ -144,7 +179,7 @@ $(LIB) : $(LIB_OBJECT)
$(RANLIB) $@ $(RANLIB) $@
dialog$x : $(LIB) dialog$o @INTLDIR_MAKE@ @INTLLIBS@ 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 \ clean \
distclean \ distclean \
@ -186,22 +221,28 @@ uninstall :: uninstall-bin uninstall-man
uninstall-full :: uninstall-bin uninstall-man uninstall-lib uninstall-full :: uninstall-bin uninstall-man uninstall-lib
@echo "made $@" @echo "made $@"
install-bin : $(PROG) $(BINDIR) install-bin : $(PROG) $(BINDIR)
$(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(PACKAGE)$x $(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(ACTUAL_PROG)$x
uninstall-bin : uninstall-bin :
$(RM) $(BINDIR)/$(PACKAGE)$x $(RM) $(BINDIR)/$(ACTUAL_PROG)$x
install-man :: $(MAN1DIR) 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 :: 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. # most users do not want/need the library, so the install rules are distinct.
install-lib :: $(BINDIR) dialog-config install-lib :: $(BINDIR) dialog-config
@ echo "** installing config script in $(BINDIR)" @ 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 install-lib :: $(LIB_DIRS) $(LIB) headers.sed
@ echo "** installing library in $(LIBDIR)" @ 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 @ $(SHELL) $(srcdir)/headers-sh $(INSTALL_DATA) $(INCLUDEDIR) . dlg_config.h
uninstall-lib :: $(BINDIR) uninstall-lib :: $(BINDIR)
$(RM) $(BINDIR)/dialog-config $(RM) $(BINDIR)/$(LIB_CONFIG)
uninstall-lib :: $(LIB_DIRS) uninstall-lib :: $(LIB_DIRS)
- $(LIBTOOL_UNINSTALL) $(RM) $(LIBDIR)/$(LIB) - $(LIBTOOL_UNINSTALL) $(RM) $(LIBDIR)/$(LIB)
$(RM) $(INCLUDEDIR)/dialog.h @ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dialog.h
$(RM) $(INCLUDEDIR)/dlg_colors.h @ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_colors.h
$(RM) $(INCLUDEDIR)/dlg_keys.h @ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_keys.h
$(RM) $(INCLUDEDIR)/dlg_config.h @ $(SHELL) $(srcdir)/headers-sh $(RM) $(INCLUDEDIR) . dlg_config.h
install-lib :: $(MAN3DIR) 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 :: uninstall-lib ::
$(RM) $(MAN3DIR)/$(PACKAGE).3 $(RM) $(MAN3DIR)/@PACKAGE@.3
headers.sed : $(srcdir)/headers-sh headers.sed : $(srcdir)/headers-sh
$(SHELL) $(srcdir)/headers-sh $(INCLUDEDIR) $(srcdir) $(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 * 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 * 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 * it under the terms of the GNU Lesser General Public Licens, version 2.1e
@ -117,7 +117,7 @@ print_item(WINDOW *win,
Mode selected, Mode selected,
bool is_inputmenu) bool is_inputmenu)
{ {
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int n; int n;
int my_width = menu_width; int my_width = menu_width;
int my_x = item_x; int my_x = item_x;
@ -188,7 +188,7 @@ input_menu_edit(WINDOW *win,
int choice, int choice,
char **resultp) char **resultp)
{ {
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
char *result; char *result;
int offset = 0; int offset = 0;
int key = 0, fkey = 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 * 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 * 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 * 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; break;
} }
} else if (*given == '-') { } else if (*given == '-') {
unsigned need = strlen(++given); size_t need = strlen(++given);
char *temp = dlg_malloc(char, need); char *temp = dlg_malloc(char, need);
*freeMe = temp; *freeMe = temp;
sprintf(temp, "%3s%%", given); 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); dlg_draw_box(win, y, x, height, width, boxchar, borderchar);
{ {
chtype attr = A_NORMAL; chtype attr = A_NORMAL;
char *message = _("Overall Progress"); const char *message = _("Overall Progress");
chtype save2 = getattrs(win); chtype save2 = dlg_get_attrs(win);
wattrset(win, title_attr); wattrset(win, title_attr);
(void) wmove(win, y, x + 2); (void) wmove(win, y, x + 2);
dlg_print_text(win, message, width, &attr); dlg_print_text(win, message, width, &attr);
@ -223,7 +223,7 @@ dlg_update_mixedgauge(DIALOG_MIXEDGAUGE * dlg, int percent)
* attribute. * attribute.
*/ */
(void) wmove(dlg->dialog, dlg->height - 3, 4); (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++) for (i = 0; i < (dlg->width - 2 * (3 + MARGIN)); i++)
(void) waddch(dlg->dialog, ' '); (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 * 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 * 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 * 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 key = 0, fkey;
int result = DLG_EXIT_UNKNOWN; int result = DLG_EXIT_UNKNOWN;
int button_high = (have_buttons ? BTN_HIGH : MARGIN); int button_high = (have_buttons ? BTN_HIGH : MARGIN);
int guage_y; int gauge_y;
char *prompt = dlg_strclone(cprompt); char *prompt = dlg_strclone(cprompt);
curs_set(0); curs_set(0);
@ -104,7 +104,7 @@ dialog_pause(const char *title,
MIN_HIGH + MARGIN - BTN_HIGH, MIN_HIGH + MARGIN - BTN_HIGH,
MIN_WIDE); MIN_WIDE);
} }
guage_y = height - button_high - (1 + 2 * MARGIN); gauge_y = height - button_high - (1 + 2 * MARGIN);
dlg_print_size(height, width); dlg_print_size(height, width);
dlg_ctl_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_print_autowrap(dialog, prompt, height, width);
dlg_draw_box(dialog, dlg_draw_box(dialog,
guage_y, 2 + MARGIN, gauge_y, 2 + MARGIN,
2 + MARGIN, width - 2 * (2 + MARGIN), 2 + MARGIN, width - 2 * (2 + MARGIN),
dialog_attr, dialog_attr,
border_attr); border_attr);
@ -139,13 +139,13 @@ dialog_pause(const char *title,
* in the title-attribute, and write the percentage with that * in the title-attribute, and write the percentage with that
* attribute. * attribute.
*/ */
(void) wmove(dialog, guage_y + MARGIN, 4); (void) wmove(dialog, gauge_y + MARGIN, 4);
wattrset(dialog, title_attr); wattrset(dialog, title_attr);
for (i = 0; i < (width - 2 * (3 + MARGIN)); i++) for (i = 0; i < (width - 2 * (3 + MARGIN)); i++)
(void) waddch(dialog, ' '); (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); (void) wprintw(dialog, "%3d", seconds);
/* /*
@ -159,7 +159,7 @@ dialog_pause(const char *title,
} else { } else {
wattrset(dialog, A_REVERSE); wattrset(dialog, A_REVERSE);
} }
(void) wmove(dialog, guage_y + MARGIN, 4); (void) wmove(dialog, gauge_y + MARGIN, 4);
for (i = 0; i < x; i++) { for (i = 0; i < x; i++) {
chtype ch = winch(dialog); chtype ch = winch(dialog);
if (title_attr & A_REVERSE) { if (title_attr & A_REVERSE) {
@ -215,10 +215,7 @@ dialog_pause(const char *title,
FALSE, width); FALSE, width);
break; break;
case DLGK_ENTER: case DLGK_ENTER:
/* Do not use dlg_exit_buttoncode() since we want to return result = dlg_ok_buttoncode(button);
* a cancel rather than ok if the timeout has not expired.
*/
result = button ? DLG_EXIT_CANCEL : DLG_EXIT_OK;
break; break;
case DLGK_MOUSE(0): case DLGK_MOUSE(0):
result = DLG_EXIT_OK; result = DLG_EXIT_OK;
@ -229,7 +226,6 @@ dialog_pause(const char *title,
case ERR: case ERR:
break; break;
default: default:
result = DLG_EXIT_OK;
break; break;
} }
} }

View File

@ -7,62 +7,63 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Dialog 1.0-20050116\n" "Project-Id-Version: Dialog 1.0-20050116\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2004-07-21 00:22+0300\n"
"Last-Translator: Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>\n" "Last-Translator: Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n" "Language-Team: Arabic <support@arabeyes.org>\n"
"Language: ar\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3\n" "X-Generator: KBabel 1.3\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "نعم" msgstr "نعم"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "لا" msgstr "لا"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "موافق" msgstr "موافق"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "إلغاء" msgstr "إلغاء"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "" msgstr ""
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "" msgstr ""
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "" msgstr ""
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "" msgstr ""
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "" msgstr ""
@ -106,6 +107,6 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "" msgstr ""

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Dialog 1.0-20050116\n" "Project-Id-Version: Dialog 1.0-20050116\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2004-09-13 09:02+0300\n"
"Last-Translator: Ognyan Kulev <ogi@fmi.uni-sofia.bg>\n" "Last-Translator: Ognyan Kulev <ogi@fmi.uni-sofia.bg>\n"
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n" "Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
"Language: bg\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Да" msgstr "Да"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Не" msgstr "Не"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "" msgstr ""
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Отказ" msgstr "Отказ"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "" msgstr ""
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "" msgstr ""
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "" msgstr ""
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "" msgstr ""
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "" msgstr ""
@ -106,6 +107,6 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "" msgstr ""

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-06-10 00:50+0200\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n" "Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n" "Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Sí" msgstr "Sí"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "No" msgstr "No"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "D'acord" msgstr "D'acord"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Cancel·la" msgstr "Cancel·la"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "SURT" msgstr "SURT"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Ajuda" msgstr "Ajuda"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mes" msgstr "Mes"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Any" msgstr "Any"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Canvia el nom" msgstr "Canvia el nom"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Directoris" msgstr "Directoris"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Fitxers" msgstr "Fitxers"
@ -105,6 +106,6 @@ msgstr "N/D"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Progrés general" msgstr "Progrés general"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Cerca" msgstr "Cerca"

View File

@ -5,61 +5,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Dialog\n" "Project-Id-Version: Dialog\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2004-03-30 23:00+0100\n"
"Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n" "Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n"
"Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n" "Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n"
"Language: cy\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ie" msgstr "Ie"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Na" msgstr "Na"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Iawn" msgstr "Iawn"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Diddymu" msgstr "Diddymu"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "GADAEL" msgstr "GADAEL"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ychwanegol" msgstr "Ychwanegol"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Cymorth" msgstr "Cymorth"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mis" msgstr "Mis"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Blwyddyn" msgstr "Blwyddyn"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Ailenwy" msgstr "Ailenwy"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Cyfeiriaduron" msgstr "Cyfeiriaduron"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Ffeiliau" msgstr "Ffeiliau"
@ -104,7 +105,7 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
#, fuzzy #, fuzzy
msgid "Search" msgid "Search"
msgstr "Search" msgstr "Search"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog-1.1.20070704\n" "Project-Id-Version: dialog-1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-08-20 22:53+0200\n"
"Last-Translator: Keld Jørn Simonsen <keld@dkuug.dk>\n" "Last-Translator: Keld Jørn Simonsen <keld@dkuug.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nej" msgstr "Nej"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "O.K." msgstr "O.K."
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Anullér" msgstr "Anullér"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "AFSLUT" msgstr "AFSLUT"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ekstra" msgstr "Ekstra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Hjælp" msgstr "Hjælp"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Måned" msgstr "Måned"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "År" msgstr "År"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Omdøb" msgstr "Omdøb"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Kataloger" msgstr "Kataloger"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Filer" msgstr "Filer"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Samlet status" msgstr "Samlet status"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Søg" msgstr "Søg"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-11-08 23:48+0100\n"
"Last-Translator: Roland Illig <roland.illig@gmx.de>\n" "Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nein" msgstr "Nein"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "VERLASSEN" msgstr "VERLASSEN"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Hilfe" msgstr "Hilfe"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Monat" msgstr "Monat"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Jahr" msgstr "Jahr"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Verzeichnisse" msgstr "Verzeichnisse"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Dateien" msgstr "Dateien"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Gesamtfortschritt" msgstr "Gesamtfortschritt"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"

View File

@ -1,12 +1,12 @@
# Dialog # Dialog
# Copyright 2003-2007,2008 # Thomas Dickey # Copyright 2003-2010,2011 # Thomas Dickey
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080316\n" "Project-Id-Version: dialog 1.1.20110116\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -14,53 +14,53 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "" msgstr ""
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "" msgstr ""
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "" msgstr ""
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "" msgstr ""
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "" msgstr ""
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "" msgstr ""
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "" msgstr ""
@ -104,6 +104,6 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "" msgstr ""

View File

@ -6,61 +6,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-08-03 15:50-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:379 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Jes" msgstr "Jes"
#: buttons.c:387 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Ne" msgstr "Ne"
#: buttons.c:395 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Certe" msgstr "Certe"
#: buttons.c:403 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Rezigni" msgstr "Rezigni"
#: buttons.c:411 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "ELIRI" msgstr "ELIRI"
#: buttons.c:419 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Krome" msgstr "Krome"
#: buttons.c:427 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Helpo" msgstr "Helpo"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Monato" msgstr "Monato"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Jaro" msgstr "Jaro"
#: dialog.c:727 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Renomigi" msgstr "Renomigi"
#: fselect.c:548 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Dosierujoj" msgstr "Dosierujoj"
#: fselect.c:549 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Dosieroj" msgstr "Dosieroj"
@ -104,6 +105,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Tuta Evoluo" msgstr "Tuta Evoluo"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Serĉi" msgstr "Serĉi"

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2010-02-14 14:26+0100\n"
"Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n" "Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
"Language-Team: Spanish <es@li.org>\n" "Language-Team: Spanish <es@li.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Sí" msgstr "Sí"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "No" msgstr "No"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Aceptar" msgstr "Aceptar"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Salir" msgstr "Salir"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Ayuda" msgstr "Ayuda"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mes" msgstr "Mes"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Año" msgstr "Año"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Renombrar" msgstr "Renombrar"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Directorios" msgstr "Directorios"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Ficheros" msgstr "Ficheros"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Progreso total" msgstr "Progreso total"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Buscar" msgstr "Buscar"

View File

@ -7,62 +7,63 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog-1.1.20070704\n" "Project-Id-Version: dialog-1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-09-20 00:01+0200\n"
"Last-Translator: Piarres Beobide <pi@beobide.net>\n" "Last-Translator: Piarres Beobide <pi@beobide.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n" "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
"Language: eu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Bai" msgstr "Bai"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Ez" msgstr "Ez"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Ados" msgstr "Ados"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Utzi" msgstr "Utzi"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "IRTEN" msgstr "IRTEN"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Gehigarria" msgstr "Gehigarria"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Laguntza" msgstr "Laguntza"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Hilabetea" msgstr "Hilabetea"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Urtea" msgstr "Urtea"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Berizendatu" msgstr "Berizendatu"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Direktorioak" msgstr "Direktorioak"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Fitxategiak" msgstr "Fitxategiak"
@ -106,6 +107,6 @@ msgstr "E/G"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Aurrerapen nagusia" msgstr "Aurrerapen nagusia"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Bilaketa" msgstr "Bilaketa"

View File

@ -1,111 +1,114 @@
# Finnish translation for dialog. # Finnish translation for dialog.
# Copyright © 2010 Free Software Foundation, Inc.
# Copyright © 2005 Lauri Nurmi <lanurmi@iki.fi> # Copyright © 2005 Lauri Nurmi <lanurmi@iki.fi>
# This file is distributed under the same license as the dialog package. # This file is distributed under the same license as the dialog package.
# Lauri Nurmi <lanurmi@iki.fi>, 2005. # Lauri Nurmi <lanurmi@iki.fi>, 2005.
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.0-rel20041222\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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: 2005-03-07 19:15+0200\n" "PO-Revision-Date: 2010-09-06 21:24+0200\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Kyllä" msgstr "Kyllä"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Ei" msgstr "Ei"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "Valmis"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Peru" msgstr "Peru"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Poistu" msgstr "Poistu"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Painike" msgstr "Painike"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Ohje" msgstr "Opaste"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Kuukausi" msgstr "Kuukausi"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Vuosi" msgstr "Vuosi"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Nimeä" msgstr "Nimeä"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Kansiot" msgstr "Kansiot"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Tiedostot" msgstr "Tiedostot"
#: mixedgauge.c:58 #: mixedgauge.c:58
msgid "Succeeded" msgid "Succeeded"
msgstr "" msgstr "Onnistui"
#: mixedgauge.c:61 #: mixedgauge.c:61
#, fuzzy
msgid "Failed" msgid "Failed"
msgstr "Tiedostot" msgstr "Epäonnistui"
#: mixedgauge.c:64 #: mixedgauge.c:64
msgid "Passed" msgid "Passed"
msgstr "" msgstr "Hyväksytty"
#: mixedgauge.c:67 #: mixedgauge.c:67
msgid "Completed" msgid "Completed"
msgstr "" msgstr "Valmis"
#: mixedgauge.c:70 #: mixedgauge.c:70
msgid "Checked" msgid "Checked"
msgstr "" msgstr "Valittu"
#: mixedgauge.c:73 #: mixedgauge.c:73
msgid "Done" msgid "Done"
msgstr "" msgstr "Valmis"
#: mixedgauge.c:76 #: mixedgauge.c:76
msgid "Skipped" msgid "Skipped"
msgstr "" msgstr "Ohitettiin"
#: mixedgauge.c:79 #: mixedgauge.c:79
msgid "In Progress" msgid "In Progress"
msgstr "" msgstr "Edistyminen"
#: mixedgauge.c:85 #: mixedgauge.c:85
msgid "N/A" msgid "N/A"
msgstr "" msgstr "N/A"
#: mixedgauge.c:193 #: mixedgauge.c:193
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr "Kokonaisedistyminen"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Etsi" msgstr "Etsi"

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-03-28 23:14+0000\n"
"Last-Translator: François-Xavier Coudert <fxcoudert@gmail.com>\n" "Last-Translator: François-Xavier Coudert <fxcoudert@gmail.com>\n"
"Language-Team: French <traduc@traduc.org>\n" "Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Oui" msgstr "Oui"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Non" msgstr "Non"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Accepter" msgstr "Accepter"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "SORTIR" msgstr "SORTIR"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Aide" msgstr "Aide"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mois" msgstr "Mois"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Année" msgstr "Année"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Renommer" msgstr "Renommer"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Répertoires" msgstr "Répertoires"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Fichiers" msgstr "Fichiers"
@ -105,6 +106,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Avancement général" msgstr "Avancement général"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Rechercher" msgstr "Rechercher"

View File

@ -5,61 +5,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-07-20 11:57-0500\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"Language: ga\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Tá" msgstr "Tá"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Níl" msgstr "Níl"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Cealaigh" msgstr "Cealaigh"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "SCOIR" msgstr "SCOIR"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Breise" msgstr "Breise"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Cabhair" msgstr "Cabhair"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mí" msgstr "Mí"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Bliain" msgstr "Bliain"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Athainmnigh" msgstr "Athainmnigh"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Comhadlanna" msgstr "Comhadlanna"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Comhaid" msgstr "Comhaid"
@ -103,6 +104,6 @@ msgstr "N/A/F"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Dul Chun Cinn Iomlán" msgstr "Dul Chun Cinn Iomlán"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Cuardaigh" msgstr "Cuardaigh"

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-05-13 23:57+0100\n"
"Last-Translator: Diego Pérez Montes <kabute@gulo.org>\n" "Last-Translator: Diego Pérez Montes <kabute@gulo.org>\n"
"Language-Team: Galician <proxecto@trasno.net>\n" "Language-Team: Galician <proxecto@trasno.net>\n"
"Language: gl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Sí" msgstr "Sí"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Non" msgstr "Non"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Aceptar" msgstr "Aceptar"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "SAÍR" msgstr "SAÍR"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Suplementario" msgstr "Suplementario"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Axuda" msgstr "Axuda"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mes" msgstr "Mes"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Ano" msgstr "Ano"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Renomear" msgstr "Renomear"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Directorios" msgstr "Directorios"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Ficheiros" msgstr "Ficheiros"
@ -105,6 +106,6 @@ msgstr "Non Dispoñible"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Progreso Total" msgstr "Progreso Total"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Procurar" msgstr "Procurar"

View File

@ -6,61 +6,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Dialog 1.0-20050116\n" "Project-Id-Version: Dialog 1.0-20050116\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2004-07-25 14:52+0200\n"
"Last-Translator: Krunoslav Gernhard <kruno@linux.hr>\n" "Last-Translator: Krunoslav Gernhard <kruno@linux.hr>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n" "Language-Team: Croatian <lokalizacija@linux.hr>\n"
"Language: hr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Da" msgstr "Da"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Ne" msgstr "Ne"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "U redu" msgstr "U redu"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Otkaži" msgstr "Otkaži"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "" msgstr ""
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "" msgstr ""
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "" msgstr ""
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "" msgstr ""
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "" msgstr ""
@ -104,6 +105,6 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "" msgstr ""

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-07-21 13:40+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n" "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"Language: id\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ya" msgstr "Ya"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Tidak" msgstr "Tidak"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "KELUAR" msgstr "KELUAR"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ekstra" msgstr "Ekstra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Bantuan" msgstr "Bantuan"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Bulan" msgstr "Bulan"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Tahun" msgstr "Tahun"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Ganti Nama" msgstr "Ganti Nama"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Kamus" msgstr "Kamus"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Berkas" msgstr "Berkas"
@ -105,6 +106,6 @@ msgstr "Tak Tersedia"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Keseluruhan Proses" msgstr "Keseluruhan Proses"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Telusur" msgstr "Telusur"

View File

@ -7,62 +7,63 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog-1.1.20080819\n" "Project-Id-Version: dialog-1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-09-03 17:02+0000\n"
"Last-Translator: Sveinn í Felli <sveinki@nett.is>\n" "Last-Translator: Sveinn í Felli <sveinki@nett.is>\n"
"Language-Team: Icelandic <(nothing)>\n" "Language-Team: Icelandic <(nothing)>\n"
"Language: is\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Já" msgstr "Já"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nei" msgstr "Nei"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Í lagi" msgstr "Í lagi"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Hætta við" msgstr "Hætta við"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "LOKA" msgstr "LOKA"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Auka" msgstr "Auka"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Hjálp" msgstr "Hjálp"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mánuður" msgstr "Mánuður"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Ár" msgstr "Ár"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Endurnefna" msgstr "Endurnefna"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Möppur" msgstr "Möppur"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Skrár" msgstr "Skrár"
@ -106,6 +107,6 @@ msgstr "Ekki tiltækt"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Heildarframvinda" msgstr "Heildarframvinda"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Leita" msgstr "Leita"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-08-06 15:47+0100\n"
"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n" "Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
"Language-Team: Italian <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n" "Content-Transfer-Encoding: 8-bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Sì" msgstr "Sì"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "No" msgstr "No"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Esci" msgstr "Esci"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Aiuto" msgstr "Aiuto"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mese" msgstr "Mese"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Anno" msgstr "Anno"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Rinomina" msgstr "Rinomina"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Cartelle" msgstr "Cartelle"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "File" msgstr "File"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Progresso complessivo" msgstr "Progresso complessivo"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Ricerca" msgstr "Ricerca"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-07-24 00:12+0900\n"
"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n" "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
"Language: ja\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=EUC-JP\n" "Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "はい" msgstr "はい"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "いいえ" msgstr "いいえ"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "了解" msgstr "了解"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "終了" msgstr "終了"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "拡張" msgstr "拡張"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "ヘルプ" msgstr "ヘルプ"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "月" msgstr "月"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "年" msgstr "年"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "名前変更" msgstr "名前変更"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "ディレクトリ" msgstr "ディレクトリ"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "ファイル" msgstr "ファイル"
@ -106,6 +107,6 @@ msgstr "̵
msgid "Overall Progress" msgid "Overall Progress"
msgstr "全体の進行状況" msgstr "全体の進行状況"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "調査" msgstr "調査"

View File

@ -7,63 +7,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-04-25 16:51+0200\n"
"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" "Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
"Language-Team: Kurdish <translation-team-ku@ferheng.org>\n" "Language-Team: Kurdish <translation-team-ku@ferheng.org>\n"
"Language: ku\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KAider 0.1\n" "X-Generator: KAider 0.1\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Erê" msgstr "Erê"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Na" msgstr "Na"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "TEMAM" msgstr "TEMAM"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Betal" msgstr "Betal"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "DERKETIN" msgstr "DERKETIN"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ekstra" msgstr "Ekstra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Alîkarî" msgstr "Alîkarî"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Meh" msgstr "Meh"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Sal" msgstr "Sal"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Nav guherandin" msgstr "Nav guherandin"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Peldank" msgstr "Peldank"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Pel" msgstr "Pel"
@ -107,6 +108,6 @@ msgstr "Tune"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Pêşketina Giştî" msgstr "Pêşketina Giştî"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Lêgerîn" msgstr "Lêgerîn"

View File

@ -6,63 +6,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog-1.1.20070704\n" "Project-Id-Version: dialog-1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2008-05-14 02:51+0300\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n" "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n" "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
"Language: lt\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\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" "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" msgid "Yes"
msgstr "Taip" msgstr "Taip"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Ne" msgstr "Ne"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Atmesti" msgstr "Atmesti"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "IŠEITI" msgstr "IŠEITI"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Papildoma" msgstr "Papildoma"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Žinynas" msgstr "Žinynas"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mėnuo" msgstr "Mėnuo"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Metai" msgstr "Metai"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Pervadinti" msgstr "Pervadinti"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Aplankai" msgstr "Aplankai"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Failai" msgstr "Failai"
@ -106,6 +107,6 @@ msgstr "N/d"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Bendras progresas" msgstr "Bendras progresas"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Ieškoti" msgstr "Ieškoti"

View File

@ -1,6 +1,6 @@
# Dialog # Dialog
# Copyright 2003-2007,2008 # Thomas Dickey # Copyright 2003-2007,2008 # Thomas Dickey
# #
# This file is distributed under the same license as the dialog package. # This file is distributed under the same license as the dialog package.
# #
# Rihards Prieditis <RPrieditis@inbox.lv>, 2009. # Rihards Prieditis <RPrieditis@inbox.lv>, 2009.
@ -8,63 +8,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-04-11 20:50+0300\n"
"Last-Translator: Rihards Prieditis <RPrieditis@inbox.lv>\n" "Last-Translator: Rihards Prieditis <RPrieditis@inbox.lv>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n" "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
"Language: lv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 0.3\n" "X-Generator: Lokalize 0.3\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\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" msgid "Yes"
msgstr "Jā" msgstr "Jā"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nē" msgstr "Nē"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Labi" msgstr "Labi"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Atcelt" msgstr "Atcelt"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "IZIET" msgstr "IZIET"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Papildus" msgstr "Papildus"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Palīdzība" msgstr "Palīdzība"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mēnesis" msgstr "Mēnesis"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Gads" msgstr "Gads"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Pārdēvēt" msgstr "Pārdēvēt"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Direktorijas" msgstr "Direktorijas"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Faili" msgstr "Faili"
@ -108,6 +109,6 @@ msgstr "n/z"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Vispārējais progress" msgstr "Vispārējais progress"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Meklēt" msgstr "Meklēt"

View File

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

View File

@ -6,61 +6,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-08-14 01:22+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n" "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ya" msgstr "Ya"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Tidak" msgstr "Tidak"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "KELUAR" msgstr "KELUAR"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ekstra" msgstr "Ekstra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Bantuan" msgstr "Bantuan"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Bulan" msgstr "Bulan"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Tahun" msgstr "Tahun"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Tukar nama" msgstr "Tukar nama"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Direktori" msgstr "Direktori"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Fail" msgstr "Fail"
@ -104,6 +105,6 @@ msgstr "Tiada"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Kemajuan Keseluruhan" msgstr "Kemajuan Keseluruhan"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Cari" msgstr "Cari"

View File

@ -8,62 +8,63 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog-1.1.20070704\n" "Project-Id-Version: dialog-1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-10-08 12:42+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n" "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nee" msgstr "Nee"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Afsluiten" msgstr "Afsluiten"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Help" msgstr "Help"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Maand" msgstr "Maand"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Jaar" msgstr "Jaar"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Hernoemen" msgstr "Hernoemen"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Mappen" msgstr "Mappen"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Bestanden" msgstr "Bestanden"
@ -107,6 +108,6 @@ msgstr "Onbeschikbaar"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Voortgang" msgstr "Voortgang"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Zoeken" msgstr "Zoeken"

View File

@ -7,63 +7,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-03-11 10:32+0100\n"
"Last-Translator: Michał Trzebiatowski <hippie_1968@hotmail.com>\n" "Last-Translator: Michał Trzebiatowski <hippie_1968@hotmail.com>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Polish\n" "X-Poedit-Language: Polish\n"
"X-Poedit-Country: POLAND\n" "X-Poedit-Country: POLAND\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Tak" msgstr "Tak"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nie" msgstr "Nie"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "WYJDŹ" msgstr "WYJDŹ"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Ekstra" msgstr "Ekstra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Pomoc" msgstr "Pomoc"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Miesiąc" msgstr "Miesiąc"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Rok" msgstr "Rok"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Zmień nazwę" msgstr "Zmień nazwę"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Katalogi" msgstr "Katalogi"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Pliki" msgstr "Pliki"
@ -107,6 +108,6 @@ msgstr "Brak"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Ogólny postęp" msgstr "Ogólny postęp"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Szukaj" msgstr "Szukaj"

View File

@ -9,61 +9,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-01-06 23:48-0200\n"
"Last-Translator: Flamarion Jorge <flamarilinux@yahoo.com.br>\n" "Last-Translator: Flamarion Jorge <flamarilinux@yahoo.com.br>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n" "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Sim" msgstr "Sim"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Não" msgstr "Não"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Aceitar" msgstr "Aceitar"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Sair" msgstr "Sair"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Ajuda" msgstr "Ajuda"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mês" msgstr "Mês"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Ano" msgstr "Ano"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Renomear" msgstr "Renomear"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Diretórios" msgstr "Diretórios"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Arquivos" msgstr "Arquivos"
@ -107,6 +108,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Progresso Global" msgstr "Progresso Global"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Pesquisa" msgstr "Pesquisa"

View File

@ -9,63 +9,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-01-24 23:09+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n" "Language-Team: Russian <gnu@mx.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\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" "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" msgid "Yes"
msgstr "Да" msgstr "Да"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Нет" msgstr "Нет"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Выход" msgstr "Выход"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Дополнительно" msgstr "Дополнительно"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Справка" msgstr "Справка"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Месяц" msgstr "Месяц"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Год" msgstr "Год"
#: dialog.c:744 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Переименовать" msgstr "Переименовать"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Каталоги" msgstr "Каталоги"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Файлы" msgstr "Файлы"
@ -109,6 +110,6 @@ msgstr "Н/Д"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Всего выполнено" msgstr "Всего выполнено"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Поиск" 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 "" msgstr ""
"Project-Id-Version: Dialog 1.0-20050116\n" "Project-Id-Version: Dialog 1.0-20050116\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2004-11-18 02:28+0100\n"
"Last-Translator: Elian Myftiu <elian@lycos.com>\n" "Last-Translator: Elian Myftiu <elian@lycos.com>\n"
"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n" "Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
"Language: sq\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Po" msgstr "Po"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Jo" msgstr "Jo"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "mirë" msgstr "mirë"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Anullo" msgstr "Anullo"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Dal" msgstr "Dal"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "" msgstr ""
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "" msgstr ""
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "" msgstr ""
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "" msgstr ""
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "" msgstr ""
@ -105,6 +106,6 @@ msgstr ""
msgid "Overall Progress" msgid "Overall Progress"
msgstr "" msgstr ""
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "" msgstr ""

View File

@ -6,61 +6,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-07-23 00:02+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Nej" msgstr "Nej"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "AVSLUTA" msgstr "AVSLUTA"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Extra" msgstr "Extra"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Hjälp" msgstr "Hjälp"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Månad" msgstr "Månad"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "År" msgstr "År"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Byt namn" msgstr "Byt namn"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Kataloger" msgstr "Kataloger"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Filer" msgstr "Filer"
@ -104,6 +105,6 @@ msgstr "Inte tillgänglig"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Totalt förlopp" msgstr "Totalt förlopp"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Sök" msgstr "Sök"

View File

@ -7,61 +7,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20080819\n" "Project-Id-Version: dialog 1.1.20080819\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2009-05-01 03:07+0300\n"
"Last-Translator: Emanuel Feruzi <emanuel.feruzi@trilabs.co.tz>\n" "Last-Translator: Emanuel Feruzi <emanuel.feruzi@trilabs.co.tz>\n"
"Language-Team: Swahili <translation-team-sw@lists.sourceforge.net>\n" "Language-Team: Swahili <translation-team-sw@lists.sourceforge.net>\n"
"Language: sw\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "Ndio" msgstr "Ndio"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "Hapana" msgstr "Hapana"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "Sawa" msgstr "Sawa"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "Ghahiri" msgstr "Ghahiri"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "Funga" msgstr "Funga"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "Nyongeza" msgstr "Nyongeza"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "Msaada" msgstr "Msaada"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "Mwezi" msgstr "Mwezi"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "Mwaka" msgstr "Mwaka"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "Badili jina" msgstr "Badili jina"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "Masaraka" msgstr "Masaraka"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "Mafaili" msgstr "Mafaili"
@ -105,6 +106,6 @@ msgstr "Haitumiki"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "Maendeleo kwa ujumla" msgstr "Maendeleo kwa ujumla"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "Tafuta" msgstr "Tafuta"

View File

@ -6,63 +6,64 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-11-22 19:23+0700\n"
"Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n" "Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n"
"Language-Team: Thai <seksan.poltree@gmail.com>\n" "Language-Team: Thai <seksan.poltree@gmail.com>\n"
"Language: th\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Thai\n" "X-Poedit-Language: Thai\n"
"X-Poedit-Country: THAILAND\n" "X-Poedit-Country: THAILAND\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "ใช่" msgstr "ใช่"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "ไม่" msgstr "ไม่"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "ตกลง" msgstr "ตกลง"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "ยกเลิก" msgstr "ยกเลิก"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "ออก" msgstr "ออก"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "เพิ่มเติม" msgstr "เพิ่มเติม"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "ช่วยเหลือ" msgstr "ช่วยเหลือ"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "เดือน" msgstr "เดือน"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "ปี" msgstr "ปี"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "เปลี่ยนชื่อ" msgstr "เปลี่ยนชื่อ"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "ไดเร็กทอรี่" msgstr "ไดเร็กทอรี่"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "ไฟล์" msgstr "ไฟล์"
@ -106,6 +107,6 @@ msgstr "ไม่มีอยู่"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "ความก้าวหน้าทั้งสิ้น" msgstr "ความก้าวหน้าทั้งสิ้น"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "ค้นหา" msgstr "ค้นหา"

View File

@ -8,61 +8,62 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-08-20 07:25+0800\n"
"Last-Translator: Meng Jie <zuxy.meng@gmail.com>\n" "Last-Translator: Meng Jie <zuxy.meng@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: buttons.c:379 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "是" msgstr "是"
#: buttons.c:387 #: buttons.c:395
msgid "No" msgid "No"
msgstr "否" msgstr "否"
#: buttons.c:395 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "确认" msgstr "确认"
#: buttons.c:403 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: buttons.c:411 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "退出" msgstr "退出"
#: buttons.c:419 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "附加" msgstr "附加"
#: buttons.c:427 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "帮助" msgstr "帮助"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "月" msgstr "月"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "年" msgstr "年"
#: dialog.c:727 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "重命名" msgstr "重命名"
#: fselect.c:548 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "目录" msgstr "目录"
#: fselect.c:549 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "文件" msgstr "文件"
@ -106,6 +107,6 @@ msgstr "N/A"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "整体进度" msgstr "整体进度"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "搜索" msgstr "搜索"

View File

@ -7,62 +7,63 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dialog 1.1.20070704\n" "Project-Id-Version: dialog 1.1.20070704\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2007-12-19 23:39+0800\n"
"Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\n" "Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: buttons.c:385 #: buttons.c:387
msgid "Yes" msgid "Yes"
msgstr "是" msgstr "是"
#: buttons.c:393 #: buttons.c:395
msgid "No" msgid "No"
msgstr "否" msgstr "否"
#: buttons.c:401 #: buttons.c:403
msgid "OK" msgid "OK"
msgstr "確定" msgstr "確定"
#: buttons.c:409 #: buttons.c:411
msgid "Cancel" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: buttons.c:417 #: buttons.c:419
msgid "EXIT" msgid "EXIT"
msgstr "離開" msgstr "離開"
#: buttons.c:425 #: buttons.c:427
msgid "Extra" msgid "Extra"
msgstr "其他" msgstr "其他"
#: buttons.c:433 #: buttons.c:435
msgid "Help" msgid "Help"
msgstr "求助" msgstr "求助"
#. Headline "Month" #. Headline "Month"
#: calendar.c:273 #: calendar.c:298
msgid "Month" msgid "Month"
msgstr "月" msgstr "月"
#. Headline "Year" #. Headline "Year"
#: calendar.c:293 #: calendar.c:318
msgid "Year" msgid "Year"
msgstr "年" msgstr "年"
#: dialog.c:741 #: dialog.c:756
msgid "Rename" msgid "Rename"
msgstr "更名" msgstr "更名"
#: fselect.c:550 #: fselect.c:571
msgid "Directories" msgid "Directories"
msgstr "目錄" msgstr "目錄"
#: fselect.c:551 #: fselect.c:572
msgid "Files" msgid "Files"
msgstr "檔案" msgstr "檔案"
@ -106,6 +107,6 @@ msgstr "不明"
msgid "Overall Progress" msgid "Overall Progress"
msgstr "整體進度" msgstr "整體進度"
#: textbox.c:489 #: textbox.c:468
msgid "Search" msgid "Search"
msgstr "搜尋" 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 * progressbox.c -- implements the progress box
* *
* Copyright 2005 Valery Reznic * Copyright 2005 Valery Reznic
* Copyright 2006-2011 Thomas E. Dickey
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as * 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, ' '); (void) waddch(win, ' ');
} }
/* static int
* Display text from a stdin in a scrolling window. 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 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 i;
int x, y, thigh; int x, y, thigh;
WINDOW *dialog, *text; WINDOW *dialog, *text;
MY_OBJ *obj; MY_OBJ *obj;
FILE *fd = dialog_state.pipe_input;
char *prompt = dlg_strclone(cprompt); char *prompt = dlg_strclone(cprompt);
int result;
dlg_tab_correct_str(prompt); dlg_tab_correct_str(prompt);
dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, MIN_WIDE); 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); (void) wnoutrefresh(dialog);
obj = dlg_calloc(MY_OBJ, 1); 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->obj.win = dialog;
obj->text = text; obj->text = text;
@ -173,15 +233,41 @@ dialog_progressbox(const char *title, const char *cprompt, int height, int width
scrollok(text, FALSE); scrollok(text, FALSE);
print_line(obj, text, thigh - 1, width - (2 * MARGIN)); print_line(obj, text, thigh - 1, width - (2 * MARGIN));
} }
(void) wnoutrefresh(text);
(void) wrefresh(text); (void) wrefresh(text);
if (obj->is_eof) if (obj->is_eof)
break; 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); dlg_del_window(dialog);
free(prompt); free(prompt);
free(obj); free(obj);
return DLG_EXIT_OK; 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. # Run-time configuration file for dialog, matches Debian color scheme.
# (these are the default values for dialog) # (these are the default values for dialog)
#
# Types of values:
#
# Number - <number>
# String - "string"
# Boolean - <ON|OFF>
# Attribute - (foreground,background,highlight?)
# Set aspect-ration. # Set aspect-ration.
aspect = 0 aspect = 0
@ -115,3 +123,9 @@ form_active_text_color = (WHITE,BLUE,ON)
# Form text color # Form text color
form_text_color = (WHITE,CYAN,ON) 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 #! /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 # get rid of all flickering by constructing a script unroll the loop, leaving
# us in curses-mode until we're done counting. # us in curses-mode until we're done counting.
@ -21,7 +21,7 @@ do
cat >>$tempfile <<EOF cat >>$tempfile <<EOF
--sleep 1 \ --sleep 1 \
--begin 0 5 \ --begin 0 5 \
--title "INFO BOX" "$@" \ --title "INFO BOX" $* \
--infobox "Hi, this is an information box. It is --infobox "Hi, this is an information box. It is
different from a message box: it will different from a message box: it will
not pause waiting for input after displaying not pause waiting for input after displaying

View File

@ -1,5 +1,5 @@
#! /bin/sh #! /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 # get rid of all flickering by constructing a script unroll the loop, leaving
# us in curses-mode until we're done counting. # us in curses-mode until we're done counting.
# #
@ -23,7 +23,7 @@ do
cat >>$tempfile <<EOF cat >>$tempfile <<EOF
--sleep 1 \ --sleep 1 \
--begin $left `expr $left + 5` \ --begin $left `expr $left + 5` \
--title "INFO BOX" $last "$@" \ --title "INFO BOX" $* $last
--infobox "Hi, this is an information box. It is --infobox "Hi, this is an information box. It is
different from a message box: it will different from a message box: it will
not pause waiting for input after displaying 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 # 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=dialog}
: ${DIALOG_OK=0} : ${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. # Run-time configuration file for dialog, matches Slackware color scheme.
# #
# Types of values: # Types of values:
@ -122,3 +123,9 @@ form_active_text_color = (BLUE,WHITE,OFF)
# Form text color # Form text color
form_text_color = (CYAN,BLUE,ON) 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. # Run-time configuration file for dialog, matches SourceMage color scheme.
# #
# Types of values: # Types of values:
@ -121,3 +122,9 @@ form_active_text_color = (BLACK,WHITE,OFF)
# Form text color # Form text color
form_text_color = (RED,BLACK,ON) 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. # Run-time configuration file for dialog, matches SuSE color scheme.
# #
# Types of values: # Types of values:
@ -124,3 +125,6 @@ form_text_color = (WHITE,CYAN,ON)
# Readonly form item color # Readonly form item color
form_item_readonly_color = (CYAN,WHITE,ON) 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. # 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. # Set aspect-ration.
aspect = 0 aspect = 0
@ -114,3 +122,9 @@ form_active_text_color = (WHITE,BLUE,ON)
# Form text color # Form text color
form_text_color = (WHITE,CYAN,ON) 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 * 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 * it under the terms of the GNU Lesser General Public License, version 2.1
@ -26,6 +26,7 @@
#include <dialog.h> #include <dialog.h>
#include <dlg_keys.h> #include <dlg_keys.h>
#include <sys/stat.h>
typedef struct { typedef struct {
DIALOG_CALLBACK obj; DIALOG_CALLBACK obj;
@ -34,6 +35,7 @@ typedef struct {
int hscroll; int hscroll;
int old_hscroll; int old_hscroll;
char line[MAX_LEN + 1]; char line[MAX_LEN + 1];
off_t last_pos;
} MY_OBJ; } MY_OBJ;
/* /*
@ -106,14 +108,15 @@ static void
last_lines(MY_OBJ * obj, int target) last_lines(MY_OBJ * obj, int target)
{ {
FILE *fp = obj->obj.input; FILE *fp = obj->obj.input;
long inx; size_t inx;
int count = 0; int count = 0;
char buf[BUFSIZ + 1]; char buf[BUFSIZ + 1];
long size_to_read; size_t size_to_read;
size_t size_as_read;
long offset = 0; long offset = 0;
long fpos = 0; long fpos = 0;
if (fseek(fp, 0, SEEK_END) == -1 if (fseek(fp, 0L, SEEK_END) == -1
|| (fpos = ftell(fp)) < 0) || (fpos = ftell(fp)) < 0)
dlg_exiterr("Error moving file pointer in last_lines()."); dlg_exiterr("Error moving file pointer in last_lines().");
@ -123,21 +126,27 @@ last_lines(MY_OBJ * obj, int target)
if (fpos >= BUFSIZ) { if (fpos >= BUFSIZ) {
size_to_read = BUFSIZ; size_to_read = BUFSIZ;
} else { } 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) if (fseek(fp, fpos, SEEK_SET) == -1)
dlg_exiterr("Error moving file pointer in last_lines()."); 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)) if (ferror(fp))
dlg_exiterr("Error reading file in last_lines()."); dlg_exiterr("Error reading file in last_lines().");
offset += size_to_read; if (size_as_read == 0) {
for (inx = size_to_read - 1; inx >= 0; --inx) { fpos = 0;
offset = 0;
break;
}
offset += (long) size_as_read;
for (inx = size_as_read - 1; inx != 0; --inx) {
if (buf[inx] == '\n') { if (buf[inx] == '\n') {
if (++count > target) if (++count > target)
break; break;
offset = inx + 1; offset = (long) (inx + 1);
} }
} }
@ -181,15 +190,34 @@ print_last_page(MY_OBJ * obj)
static void static void
repaint_text(MY_OBJ * obj) repaint_text(MY_OBJ * obj)
{ {
FILE *fp = obj->obj.input;
int cur_y, cur_x; int cur_y, cur_x;
getyx(obj->obj.win, cur_y, cur_x); getyx(obj->obj.win, cur_y, cur_x);
obj->old_hscroll = obj->hscroll; obj->old_hscroll = obj->hscroll;
print_last_page(obj); print_last_page(obj);
obj->last_pos = ftell(fp);
(void) wmove(obj->obj.win, cur_y, cur_x); /* Restore cursor position */ (void) wmove(obj->obj.win, cur_y, cur_x); /* Restore cursor position */
wrefresh(obj->obj.win); 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 static bool
handle_my_getc(DIALOG_CALLBACK * cb, int ch, int fkey, int *result) 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); clearerr(cb->input);
ch = getc(cb->input); ch = getc(cb->input);
(void) ungetc(ch, cb->input); (void) ungetc(ch, cb->input);
if ((ch != EOF) || (obj->hscroll != obj->old_hscroll)) { if (ch != EOF) {
repaint_text(obj); handle_input(cb);
} }
break; break;
case ESC: 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.input = fd;
obj->obj.win = dialog; obj->obj.win = dialog;
obj->obj.handle_getc = handle_my_getc; 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.keep_bg = bg_task && dialog_vars.cant_kill;
obj->obj.bg_task = bg_task; obj->obj.bg_task = bg_task;
obj->text = text; 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 * 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 * 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 static long
ftell_obj(MY_OBJ * obj) ftell_obj(MY_OBJ * obj)
{ {
return lseek_obj(obj, 0, SEEK_CUR); return lseek_obj(obj, 0L, SEEK_CUR);
} }
static char * static char *
@ -309,7 +309,7 @@ back_lines(MY_OBJ * obj, long n)
/* Really possible to move backward BUF_SIZE/2 bytes? */ /* Really possible to move backward BUF_SIZE/2 bytes? */
if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) {
/* No, move less than */ /* No, move less than */
lseek_obj(obj, 0, SEEK_SET); lseek_obj(obj, 0L, SEEK_SET);
val_to_tabize = fpos - obj->fd_bytes_read; val_to_tabize = fpos - obj->fd_bytes_read;
} else { /* Move backward BUF_SIZE/2 bytes */ } else { /* Move backward BUF_SIZE/2 bytes */
lseek_obj(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read), SEEK_CUR); 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? */ /* Really possible to move backward BUF_SIZE/2 bytes? */
if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) { if (fpos < BUF_SIZE / 2 + obj->fd_bytes_read) {
/* No, move less than */ /* No, move less than */
lseek_obj(obj, 0, SEEK_SET); lseek_obj(obj, 0L, SEEK_SET);
val_to_tabize = fpos - obj->fd_bytes_read; val_to_tabize = fpos - obj->fd_bytes_read;
} else { /* Move backward BUF_SIZE/2 bytes */ } else { /* Move backward BUF_SIZE/2 bytes */
lseek_obj(obj, -(BUF_SIZE / 2 + obj->fd_bytes_read), SEEK_CUR); 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; int fkey = 0;
bool first = TRUE; bool first = TRUE;
int result = DLG_EXIT_UNKNOWN; int result = DLG_EXIT_UNKNOWN;
char *caption = _("Search"); const char *caption = _("Search");
int len_caption = dlg_count_columns(caption); int len_caption = dlg_count_columns(caption);
const int *indx; const int *indx;
int limit; 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) { while ((found = match_string(obj, search_term)) == FALSE) {
if (obj->begin_reached) if (obj->begin_reached)
break; break;
back_lines(obj, 2); back_lines(obj, 2L);
} }
} }
if (found == FALSE) { /* not found */ 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); back_lines(obj, obj->page_length);
} else { /* Search term found */ } else { /* Search term found */
back_lines(obj, 1); back_lines(obj, 1L);
} }
/* Reprint page */ /* Reprint page */
wattrset(obj->text, dialog_attr); 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, /* Get file size. Actually, 'file_size' is the real file size - 1,
since it's only the last byte offset from the beginning */ 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 */ /* 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); 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) { if (fpos > obj.fd_bytes_read) {
/* Yes, we have to read it in */ /* Yes, we have to read it in */
lseek_obj(&obj, 0, SEEK_SET); lseek_obj(&obj, 0L, SEEK_SET);
read_high(&obj, BUF_SIZE); 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); read_high(&obj, BUF_SIZE);
} }
obj.in_buf = obj.bytes_read; obj.in_buf = obj.bytes_read;
back_lines(&obj, PAGE_LENGTH); back_lines(&obj, (long) PAGE_LENGTH);
moved = TRUE; moved = TRUE;
break; break;
case DLGK_GRID_UP: /* Previous line */ 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 * 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 * 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 * 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 period, int value,
int code) int code)
{ {
(void) code;
data->parent = parent; data->parent = parent;
data->x = x; data->x = x;
data->y = y; data->y = y;
@ -210,6 +212,11 @@ dialog_timebox(const char *title,
dialog = dlg_new_window(height, width, dialog = dlg_new_window(height, width,
dlg_box_y_ordinate(height), dlg_box_y_ordinate(height),
dlg_box_x_ordinate(width)); 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_window(dialog, "timebox", binding);
dlg_register_buttons(dialog, "timebox", buttons); 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 * 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 * 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 * it under the terms of the GNU Lesser General Public License, version 2.1
@ -29,6 +29,13 @@
#define myFP dialog_state.trace_output #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 void
dlg_trace_msg(const char *fmt,...) dlg_trace_msg(const char *fmt,...)
{ {
@ -115,6 +122,8 @@ dlg_trace_chr(int ch, int fkey)
CASE(DLGK_TRACE); CASE(DLGK_TRACE);
} }
} }
} else if (ch == ERR) {
fkey_name = "ERR";
} else { } else {
fkey_name = unctrl((chtype) ch); fkey_name = unctrl((chtype) ch);
if (fkey_name == 0) if (fkey_name == 0)
@ -134,13 +143,11 @@ dlg_trace(const char *fname)
if (myFP == 0) { if (myFP == 0) {
myFP = fopen(fname, "a"); myFP = fopen(fname, "a");
if (myFP != 0) { if (myFP != 0) {
time_t now = time((time_t *) 0); dlg_trace_time("** opened at");
fprintf(myFP, "** opened at %s", ctime(&now));
} }
} }
} else if (myFP != 0) { } else if (myFP != 0) {
time_t now = time((time_t *) 0); dlg_trace_time("** closed at");
fprintf(myFP, "** closed at %s", ctime(&now));
fclose(myFP); fclose(myFP);
myFP = 0; 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 * 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 * 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 static int
dlg_getc_ready(DIALOG_CALLBACK * p) check_inputs(void)
{ {
DIALOG_CALLBACK *p;
fd_set read_fds; fd_set read_fds;
int fd = fileno(p->input);
struct timeval test; struct timeval test;
int last_fd = -1;
int fd;
int found;
int result = -1;
FD_ZERO(&read_fds); if ((p = dialog_state.getc_callbacks) != 0) {
FD_SET(fd, &read_fds); FD_ZERO(&read_fds);
test.tv_sec = 0; /* Seconds. */ while (p != 0) {
test.tv_usec = (isatty(fd) /* Microseconds. */ p->input_ready = FALSE;
? (WTIMEOUT_VAL * 1000) if (p->input != 0 && (fd = fileno(p->input)) >= 0) {
: 1); FD_SET(fd, &read_fds);
return (select(fd + 1, &read_fds, (fd_set *) 0, (fd_set *) 0, &test) == 1) if (last_fd < fd)
&& (FD_ISSET(fd, &read_fds)); 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 int
@ -146,14 +227,16 @@ dlg_getc_callbacks(int ch, int fkey, int *result)
DIALOG_CALLBACK *p, *q; DIALOG_CALLBACK *p, *q;
if ((p = dialog_state.getc_callbacks) != 0) { if ((p = dialog_state.getc_callbacks) != 0) {
do { if (check_inputs() >= 0) {
q = p->next; do {
if (dlg_getc_ready(p)) { q = p->next;
if (!(p->handle_getc(p, ch, fkey, result))) { if (p->input_ready) {
dlg_remove_callback(p); 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); code = (dialog_state.getc_callbacks != 0);
} }
return code; return code;
@ -219,6 +302,89 @@ valid_file(FILE *fp)
return code; 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 * 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, * 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; int result;
bool done = FALSE; bool done = FALSE;
bool literal = FALSE; bool literal = FALSE;
DIALOG_CALLBACK *p; DIALOG_CALLBACK *p = 0;
int interval = dialog_vars.timeout_secs; int interval = (dialog_vars.timeout_secs * 1000);
time_t expired = time((time_t *) 0) + dialog_vars.timeout_secs; time_t expired = time((time_t *) 0) + dialog_vars.timeout_secs;
time_t current; time_t current;
if (dialog_state.getc_callbacks != 0) if (may_handle_inputs())
wtimeout(win, WTIMEOUT_VAL); wtimeout(win, WTIMEOUT_VAL);
else if (interval > 0) else if (interval > 0)
wtimeout(win, interval); wtimeout(win, interval);
while (!done) { 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 * If there was no pending file-input, check the keyboard.
* having to change the rest of the code to use wide-characters.
*/ */
if (used_last_getc >= have_last_getc) { ch = really_getch(win, fkey);
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
if (literal) { if (literal) {
done = TRUE; done = TRUE;
continue; continue;
@ -320,32 +443,38 @@ dlg_getc(WINDOW *win, int *fkey)
&& current >= expired) { && current >= expired) {
dlg_exiterr("timeout"); dlg_exiterr("timeout");
} }
if (dlg_getc_callbacks(ch, *fkey, &result)) {
dlg_raise_window(win);
} else {
done = (interval <= 0);
}
if (!valid_file(stdin) if (!valid_file(stdin)
|| !valid_file(dialog_state.screen_output)) { || !valid_file(dialog_state.screen_output)) {
ch = ESC; ch = ESC;
done = TRUE; done = TRUE;
} else if (check_inputs()) {
if (handle_inputs(win))
dlg_raise_window(win);
else
done = TRUE;
} else {
done = (interval <= 0);
} }
break; break;
case DLGK_FIELD_PREV:
/* FALLTHRU */
case KEY_BTAB:
/* FALLTHRU */
case DLGK_FIELD_NEXT: case DLGK_FIELD_NEXT:
/* FALLTHRU */ /* FALLTHRU */
case TAB: case TAB:
/* Handle tab as a special case for traversing between the nominal /* Handle tab/backtab as a special case for traversing between the
* "current" window, and other windows having callbacks. If the * nominal "current" window, and other windows having callbacks.
* nominal (control) window closes, we'll close the windows with * If the nominal (control) window closes, we'll close the windows
* callbacks. * with callbacks.
*/ */
if (dialog_state.getc_callbacks != 0 && if (dialog_state.getc_callbacks != 0 &&
before_lookup == TAB) { (before_lookup == TAB ||
if ((p = dialog_state.getc_redirect) != 0) { before_lookup == KEY_BTAB)) {
p = p->next; if (before_lookup == TAB)
} else { p = next_callback(p);
p = dialog_state.getc_callbacks; else
} p = prev_callback(p);
if ((dialog_state.getc_redirect = p) != 0) { if ((dialog_state.getc_redirect = p) != 0) {
win = p->win; win = p->win;
} else { } 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 * 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 * 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 * 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_NORMAL, ITEMHELP, itemhelp, "Item help-text"),
DATA(A_BOLD, FORM_ACTIVE_TEXT, form_active_text, "Active form text"), DATA(A_BOLD, FORM_ACTIVE_TEXT, form_active_text, "Active form text"),
DATA(A_REVERSE, FORM_TEXT, form_text, "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* */ /* *INDENT-ON* */
@ -327,7 +328,11 @@ init_dialog(FILE *input, FILE *output)
(void) keypad(stdscr, TRUE); (void) keypad(stdscr, TRUE);
(void) cbreak(); (void) cbreak();
(void) noecho(); (void) noecho();
mouse_open();
if (!dialog_state.no_mouse) {
mouse_open();
}
dialog_state.screen_initialized = TRUE; dialog_state.screen_initialized = TRUE;
#ifdef HAVE_COLOR #ifdef HAVE_COLOR
@ -398,6 +403,24 @@ dlg_color_count(void)
return sizeof(dlg_color_table) / sizeof(dlg_color_table[0]); 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 * 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 * 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 static chtype
define_color(WINDOW *win, int foreground) define_color(WINDOW *win, int foreground)
{ {
chtype attrs = getattrs(win); chtype attrs = dlg_get_attrs(win);
int pair; int pair;
short fg, bg, background; short fg, bg, background;
@ -487,6 +510,34 @@ centered(int width, const char *string)
return left; 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 * Print up to 'cols' columns from 'text', optionally rendering our escape
* sequence for attributes and color. * sequence for attributes and color.
@ -501,6 +552,9 @@ dlg_print_text(WINDOW *win, const char *txt, int cols, chtype *attr)
bool thisTab; bool thisTab;
bool ended = FALSE; bool ended = FALSE;
chtype useattr; chtype useattr;
#ifdef USE_WIDE_CURSES
int combined = 0;
#endif
getyx(win, y_origin, x_origin); getyx(win, y_origin, x_origin);
while (cols > 0 && (*txt != '\0')) { 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); getyx(win, y_after, x_after);
if (thisTab && (y_after == y_origin)) if (thisTab && (y_after == y_origin))
tabbed += (x_after - x_before); 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; ended = TRUE;
} }
} }
@ -656,6 +715,14 @@ dlg_print_line(WINDOW *win,
wrap_inx = test_inx; wrap_inx = test_inx;
} }
wrap_ptr = prompt + indx[wrap_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 * 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 oldy, oldx;
int last = 0; int last = 0;
(void) pauseopt; /* used only for ncurses */
getyx(win, oldy, oldx); getyx(win, oldy, oldx);
#ifdef NCURSES_VERSION #ifdef NCURSES_VERSION
if (pauseopt) { if (pauseopt) {
@ -1105,12 +1174,12 @@ dlg_auto_sizefile(const char *title,
offset++; offset++;
if (offset > len) if (offset > len)
len = offset; len = (int) offset;
count++; 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); *height = MIN(SLINES, count + numlines + boxlines);
*width = MIN(SCOLS, MAX((len + nc), mincols)); *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) chtype boxchar, chtype borderchar)
{ {
int i, j; int i, j;
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
wattrset(win, 0); wattrset(win, 0);
for (i = 0; i < height; i++) { for (i = 0; i < height; i++) {
@ -1179,7 +1248,7 @@ static void
draw_childs_shadow(WINDOW *parent, WINDOW *child) draw_childs_shadow(WINDOW *parent, WINDOW *child)
{ {
if (has_colors()) { /* Whether terminal supports color? */ if (has_colors()) { /* Whether terminal supports color? */
chtype save = getattrs(parent); chtype save = dlg_get_attrs(parent);
dlg_draw_shadow(parent, dlg_draw_shadow(parent,
getbegy(child) - getbegy(parent), getbegy(child) - getbegy(parent),
@ -1254,7 +1323,7 @@ dlg_exit(int code)
if ((name = getenv(table[n].name)) != 0) { if ((name = getenv(table[n].name)) != 0) {
value = strtol(name, &temp, 0); value = strtol(name, &temp, 0);
if (temp != 0 && temp != name && *temp == '\0') { if (temp != 0 && temp != name && *temp == '\0') {
code = value; code = (int) value;
overridden = TRUE; overridden = TRUE;
} }
} }
@ -1509,7 +1578,7 @@ dlg_draw_title(WINDOW *win, const char *title)
{ {
if (title != NULL) { if (title != NULL) {
chtype attr = A_NORMAL; chtype attr = A_NORMAL;
chtype save = getattrs(win); chtype save = dlg_get_attrs(win);
int x = centered(getmaxx(win), title); int x = centered(getmaxx(win), title);
wattrset(win, title_attr); wattrset(win, title_attr);
@ -1920,7 +1989,7 @@ dlg_clr_result(void)
char * char *
dlg_set_result(const char *string) 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 */ /* inputstr.c needs a fixed buffer */
if (need < MAX_LEN) if (need < MAX_LEN)
@ -1953,9 +2022,9 @@ void
dlg_add_result(const char *string) dlg_add_result(const char *string)
{ {
unsigned have = (dialog_vars.input_result unsigned have = (dialog_vars.input_result
? strlen(dialog_vars.input_result) ? (unsigned) strlen(dialog_vars.input_result)
: 0); : 0);
unsigned want = strlen(string) + 1 + have; unsigned want = (unsigned) strlen(string) + 1 + have;
if ((want >= MAX_LEN) if ((want >= MAX_LEN)
|| (dialog_vars.input_length != 0) || (dialog_vars.input_length != 0)
@ -1964,14 +2033,14 @@ dlg_add_result(const char *string)
if (dialog_vars.input_length == 0 if (dialog_vars.input_length == 0
|| dialog_vars.input_result == 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_length = want * 2;
dialog_vars.input_result = dlg_malloc(char, dialog_vars.input_length); dialog_vars.input_result = dlg_malloc(char, dialog_vars.input_length);
assert_ptr(dialog_vars.input_result, "dlg_add_result malloc"); assert_ptr(dialog_vars.input_result, "dlg_add_result malloc");
dialog_vars.input_result[0] = 0; dialog_vars.input_result[0] = '\0';
if (save != 0) if (save_result != 0)
strcpy(dialog_vars.input_result, save); strcpy(dialog_vars.input_result, save_result);
} else if (want >= dialog_vars.input_length) { } else if (want >= dialog_vars.input_length) {
dialog_vars.input_length = want * 2; dialog_vars.input_length = want * 2;
dialog_vars.input_result = dlg_realloc(char, dialog_vars.input_result = dlg_realloc(char,
@ -2008,7 +2077,7 @@ must_quote(char *string)
bool code = FALSE; bool code = FALSE;
if (*string != '\0') { if (*string != '\0') {
unsigned len = strlen(string); size_t len = strlen(string);
if (strcspn(string, quote_delimiter()) != len) if (strcspn(string, quote_delimiter()) != len)
code = TRUE; code = TRUE;
else if (strcspn(string, "\n\t ") != len) else if (strcspn(string, "\n\t ") != len)
@ -2096,10 +2165,20 @@ dlg_save_vars(DIALOG_VARS * vars)
*vars = dialog_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 void
dlg_restore_vars(DIALOG_VARS * vars) 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 = *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 LIB= dialog
SHLIB_MAJOR= 7 SHLIB_MAJOR= 7
SRCS= arrows.c buttons.c calendar.c checklist.c columns.c dlg_keys.c \ SRCS= argv.c arrows.c buttons.c calendar.c checklist.c columns.c \
editbox.c fselect.c formbox.c guage.c inputbox.c inputstr.c \ dlg_keys.c editbox.c fselect.c formbox.c guage.c inputbox.c \
menubox.c mixedform.c mixedgauge.c mouse.c mousewget.c \ inputstr.c menubox.c mixedform.c mixedgauge.c mouse.c \
msgbox.c pause.c progressbox.c rc.c tailbox.c textbox.c \ mousewget.c msgbox.c pause.c prgbox.c progressbox.c rc.c \
timebox.c trace.c ui_getc.c util.c version.c yesno.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 INCS= dialog.h dlg_colors.h dlg_config.h dlg_keys.h
MAN= dialog.3 MAN= dialog.3