summaryrefslogtreecommitdiff
path: root/Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-03-20 10:17:20 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-03-20 10:17:20 +0000
commit271d5c18b3f17c605d78fc469361c2413bd5e1e8 (patch)
tree7a86505144675c94f9b31e0aa044ded15e61c46a /Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl
parente8b20fd294c403053ac130d3f576c19b4c578b8b (diff)
new build system
git-svn-id: svn://tug.org/texlive/trunk@12460 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl')
-rw-r--r--Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl454
1 files changed, 0 insertions, 454 deletions
diff --git a/Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl b/Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl
deleted file mode 100644
index 8fbb68fd8eb..00000000000
--- a/Build/source/utils/dialog/dialog-1.1-20080819/dialog.pl
+++ /dev/null
@@ -1,454 +0,0 @@
-# Functions that handle calling dialog(1) -*-perl-*-
-# $Id: dialog.pl,v 1.4 2001/10/13 00:40:22 tom Exp $
-
-# Return values are 1 for success and 0 for failure (or cancel)
-# Resultant text (if any) is in dialog_result
-
-# Unfortunately, the gauge requires use of /bin/sh to get going.
-# I didn't bother to make the others shell-free, although it
-# would be simple to do.
-
-# Note that dialog generally returns 0 for success, so I invert the
-# sense of the return code for more readable boolean expressions.
-
-$scr_lines = 24;
-
-require "flush.pl";
-
-sub rhs_clear {
- return system("dialog --clear");
-}
-
-sub rhs_textbox {
- local ( $title, $file, $width, $height ) = @_;
-
- system("dialog --title \"$title\" --textbox $file $height $width");
-
- return 1;
-}
-
-sub rhs_msgbox {
- local ( $title, $message, $width ) = @_;
- local ( $tmp, $height, $message_len );
-
- $message = &rhs_wordwrap($message, $width);
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
- $height = 4 + $message_len;
-
- $tmp = system("dialog --title \"$title\" --msgbox \"$message\" $height $width");
- if ($tmp) {
- return 0;
- } else {
- return 1;
- }
-}
-
-sub rhs_infobox {
- local ( $title, $message, $width ) = @_;
- local ( $tmp, $height, $message_len );
-
- $message = &rhs_wordwrap($message, $width);
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
- $height = 2 + $message_len;
-
- return system("dialog --title \"$title\" --infobox \"$message\" $height $width");
-}
-
-sub rhs_yesno {
- local ( $title, $message, $width ) = @_;
- local ( $tmp, $height, $message_len );
-
- $message = &rhs_wordwrap($message, $width);
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
- $height = 4 + $message_len;
-
- $tmp = system("dialog --title \"$title\" --yesno \"$message\" $height $width");
- # Dumb: dialog returns 0 for "yes" and 1 for "no"
- if (! $tmp) {
- return 1;
- } else {
- return 0;
- }
-}
-
-sub rhs_gauge {
- local ( $title, $message, $width, $percent ) = @_;
- local ( $tmp, $height, $message_len );
-
- $gauge_width = $width;
-
- $message = &rhs_wordwrap($message, $width);
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
- $height = 5 + $message_len;
-
- open(GAUGE, "|dialog --title \"$title\" --gauge \"$message\" $height $width $percent");
-}
-
-sub rhs_update_gauge {
- local ( $percent ) = @_;
-
- &printflush(GAUGE, "$percent\n");
-}
-
-sub rhs_update_gauge_and_message {
- local ( $message, $percent ) = @_;
-
- $message = &rhs_wordwrap($message, $gauge_width);
- $message =~ s/\n/\\n/g;
- &printflush(GAUGE, "XXX\n$percent\n$message\nXXX\n");
-}
-
-sub rhs_stop_gauge {
- close GAUGE;
-}
-
-sub rhs_inputbox {
- local ( $title, $message, $width, $instr ) = @_;
- local ( $tmp, $height, $message_len );
-
- $message = &rhs_wordwrap($message, $width);
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
- $height = 7 + $message_len;
-
- return &return_output(0, "dialog --title \"$title\" --inputbox \"$message\" $height $width \"$instr\"");
-}
-
-sub rhs_menu {
- local ( $title, $message, $width, $numitems ) = @_;
- local ( $i, $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- for ($i = 0; $i < $numitems; $i++) {
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $ent = shift;
- $list[@list] = "\"$ent\"";
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output(0, "dialog --title \"$title\" --menu \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_menul {
- local ( $title, $message, $width, $numitems ) = @_;
- local ( $i, $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- for ($i = 0; $i < $numitems; $i++) {
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $list[@list] = "\"\"";
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output(0, "dialog --title \"$title\" --menu \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_menua {
- local ( $title, $message, $width, %items ) = @_;
- local ( $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- @list = ();
- foreach $ent (sort keys (%items)) {
- $list[@list] = "\"$ent\"";
- $list[@list] = "\"$items{$ent}\"";
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $numitems = keys(%items);
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output(0, "dialog --title \"$title\" --menu \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_checklist {
- local ( $title, $message, $width, $numitems ) = @_;
- local ( $i, $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- for ($i = 0; $i < $numitems; $i++) {
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $ent = shift;
- if ($ent) {
- $list[@list] = "ON";
- } else {
- $list[@list] = "OFF";
- }
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output("list", "dialog --title \"$title\" --separate-output --checklist \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_checklistl {
- local ( $title, $message, $width, $numitems ) = @_;
- local ( $i, $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- for ($i = 0; $i < $numitems; $i++) {
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $list[@list] = "\"\"";
- $list[@list] = "OFF";
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
- return &return_output("list", "dialog --title \"$title\" --separate-output --checklist \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_checklista {
- local ( $title, $message, $width, %items ) = @_;
- local ( $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- foreach $ent (sort keys (%items)) {
- $list[@list] = "\"$ent\"";
- $list[@list] = "\"$items{$ent}\"";
- $list[@list] = "OFF";
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $numitems = keys(%items);
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output("list", "dialog --title \"$title\" --separate-output --checklist \"$message\" $height $width $menuheight @list");
-}
-
-sub rhs_radiolist {
- local ( $title, $message, $width, $numitems ) = @_;
- local ( $i, $tmp, $ent, $height, $menuheight, @list, $message_len );
-
- shift; shift; shift; shift;
-
- @list = ();
- for ($i = 0; $i < $numitems; $i++) {
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $ent = shift;
- $list[@list] = "\"$ent\"";
- $ent = shift;
- if ($ent) {
- $list[@list] = "ON";
- } else {
- $list[@list] = "OFF";
- }
- }
-
- $message = &rhs_wordwrap($message, $width);
-
- $message_len = split(/^/, $message);
- $tmp = $message;
- if (chop($tmp) eq "\n") {
- $message_len++;
- }
-
- $height = $message_len + 6 + $numitems;
- if ($height <= $scr_lines) {
- $menuheight = $numitems;
- } else {
- $height = $scr_lines;
- $menuheight = $scr_lines - $message_len - 6;
- }
-
- return &return_output(0 , "dialog --title \"$title\" --radiolist \"$message\" $height $width $menuheight @list");
-}
-
-sub return_output {
- local ( $listp, $command ) = @_;
- local ( $res ) = 1;
-
- pipe(PARENT_READER, CHILD_WRITER);
- # We have to fork (as opposed to using "system") so that the parent
- # process can read from the pipe to avoid deadlock.
- my ($pid) = fork;
- if ($pid == 0) { # child
- close(PARENT_READER);
- open(STDERR, ">&CHILD_WRITER");
- exec($command);
- die("no exec");
- }
- if ($pid > 0) { # parent
- close( CHILD_WRITER );
- if ($listp) {
- @dialog_result = ();
- while (<PARENT_READER>) {
- chop;
- $dialog_result[@dialog_result] = $_;
- }
- }
- else { $dialog_result = <PARENT_READER>; }
- close(PARENT_READER);
- waitpid($pid,0);
- $res = $?;
- }
-
- # Again, dialog returns results backwards
- if (! $res) {
- return 1;
- } else {
- return 0;
- }
-}
-
-sub rhs_wordwrap {
- local ( $intext, $width ) = @_;
- local ( $outtext, $i, $j, @lines, $wrap, @words, $pos, $pad );
-
- $outtext = "";
- $pad = 3; # leave 3 spaces around each line
- $pos = $pad; # current insert position
- $wrap = 0; # 1 if we have been auto wraping
- $insert_nl = 0; # 1 if we just did an absolute
- # and we should preface any new text
- # with a new line
- @lines = split(/\n/, $intext);
- for ($i = 0; $i <= $#lines; $i++) {
- if ($lines[$i] =~ /^>/) {
- $outtext .= "\n" if ($insert_nl);
- $outtext .= "\n" if ($wrap);
- $lines[$i] =~ /^>(.*)$/;
- $outtext .= $1;
- $insert_nl = 1;
- $wrap = 0;
- $pos = $pad;
- } else {
- $wrap = 1;
- @words = split(/\s+/,$lines[$i]);
- for ($j = 0; $j <= $#words; $j++) {
- if ($insert_nl) {
- $outtext .= "\n";
- $insert_nl = 0;
- }
- if ((length($words[$j]) + $pos) > $width - $pad) {
- $outtext .= "\n";
- $pos = $pad;
- }
- $outtext .= $words[$j] . " ";
- $pos += length($words[$j]) + 1;
- }
- }
- }
-
- return $outtext;
-}
-
-############
-1;