Changeset 14449 for misc/runpugs
- Timestamp:
- 10/22/06 01:37:16 (2 years ago)
- Location:
- misc/runpugs
- Files:
-
- 9 modified
-
bin/termdispatcher2.pl (modified) (1 diff)
-
cgi-bin/runpugs2 (modified) (3 diffs)
-
data/runpugs2.html (modified) (3 diffs)
-
htdocs/index.html (modified) (3 diffs)
-
htdocs/runpugs.css (modified) (1 diff)
-
lib/Web/Terminal/Dispatcher.pm (modified) (4 diffs)
-
lib/Web/Terminal/Server.pm (modified) (5 diffs)
-
lib/Web/Terminal/Server/Session.pm (modified) (4 diffs)
-
lib/Web/Terminal/Settings.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
misc/runpugs/bin/termdispatcher2.pl
r14430 r14449 18 18 print "Sending msg $id: $cmd\n"; 19 19 my $ip="127.0.0.1"; 20 (my $reply,my $ histref) = &Web::Terminal::Dispatcher::send($id,$ip,$prompt.$cmd);20 (my $reply,my $prompt,my $histref) = &Web::Terminal::Dispatcher::send($id,$ip,$prompt.$cmd); 21 21 print $reply; 22 22 print "\nHistory\n"; -
misc/runpugs/cgi-bin/runpugs2
r14430 r14449 30 30 if ($MAX_SIZE_UPLOAD) { $CGI::POST_MAX=1024 * $MAX_SIZE_UPLOAD; } 31 31 use CGI::Carp qw(fatalsToBrowser); 32 use HTML::Entities; 32 33 33 34 CGI::nph(); # Treat script as a non-parsed-header script … … 61 62 #$ip='127.'.int(rand(100)).'.'.int(rand(100)).'.'.int(rand(100)); 62 63 #} 64 my $prompt=$Web::Terminal::Settings::prompt; 63 65 ######### MAIN SITEMANAGER PROGRAM ################### 64 66 65 67 if ( $query->param()) { # an action has been chosen 66 my $cmd=$query->param("cmd ");68 my $cmd=$query->param("cmdline"); 67 69 my $action = $query->param("action")||'runpugs'; 68 70 if ($action =~ /^(\w+)$/) { … … 94 96 my $sessionid=shift; 95 97 my $ip=shift; 96 # my $reply='pugs> '; 98 # my $prompt=$Web::Terminal::Settings::prompt; 99 my $nprompt=$query->param('prompt')||$prompt; 100 my $preply=''; 101 if($query->param('output')) { 102 $preply=$query->param('output'); 103 } 97 104 my $reply=$Web::Terminal::Settings::prompt; 98 105 my @history=(); 106 my $prevcmd=''; 99 107 my $testing=$query->param('testing')||1; 100 108 if (not $testing) { 101 $reply = "Sorry, runpugs is not available at the moment.";109 $reply = "Sorry, runpugs is not available at the moment."; 102 110 } else { 103 # $cmd=~s/^.+?pugs([\>\.])/pugs$1/s; 104 if(not $query->param('history') or ($query->param('history') eq '')) { 105 $cmd=~s/^.+?${Web::Terminal::Settings::prompt_pattern}/$1/s; 106 } else { 107 $cmd=$Web::Terminal::Settings::prompt; 108 $cmd.=$query->param('history'); 109 } 110 #NO UNICODE! 111 # $cmd=tr/\0-\x{10ffff}/\0-\xff_/; 112 if ($cmd=~/clear/) { 113 $cmd=''; 114 } elsif ($cmd!~/^\p{IsASCII}*$/) { 115 $cmd=''; 116 $reply = "Sorry, Unicode is not yet 117 supported.\n".$Web::Terminal::Settings::prompt; 118 } else { 119 if ($cmd=~/>\s+(\:*help)\b/) { 120 $cmd=~s/$1/:h/; 121 } elsif ($cmd=~/>\s+(\:*(quit|bye))\b/) { 122 $cmd=~s/$1/:q/; 123 } 124 ($reply, my $histref) = &Web::Terminal::Dispatcher::send($sessionid,$ip,$cmd); 125 @history=@{$histref}; 126 $reply="\n".$reply; 127 } 128 } 129 #$reply.="\n$ip\n$sessionid\n"; 130 my $historylist='<select name="history" id="hist">'."\n".'<option value="">--- Recent commands ---</option>'."\n"; 111 if(not $query->param('history') or ($query->param('history') eq '')) { 112 # $cmd=~s/^.+?${Web::Terminal::Settings::prompt_pattern}/$1/s; 113 } else { 114 # $cmd=$Web::Terminal::Settings::prompt; 115 # $cmd.=$query->param('history'); 116 $cmd=$query->param('history'); 117 } 118 if ($cmd=~/clear/) { 119 $cmd=''; 120 $preply=''; 121 } elsif ($cmd!~/^\p{IsASCII}*$/) { #NO UNICODE! 122 $cmd=''; 123 $reply = "Sorry, Unicode is not yet supported.\n".$Web::Terminal::Settings::prompt; 124 } else { 125 if ($cmd=~/>\s+(\:*help)\b/) { 126 $cmd=~s/$1/:h/; 127 } elsif ($cmd=~/>\s+(\:*(quit|bye))\b/) { 128 $cmd=~s/$1/:q/; 129 } 130 ($reply, $nprompt, my $histref) = &Web::Terminal::Dispatcher::send($sessionid,$ip,$cmd); 131 if (defined $histref) { 132 @history=@{$histref}; 133 $prevcmd=$history[-1]; 134 } 135 #$cmd=$prompt.$history[-1]; 136 $prompt=$nprompt; 137 #$reply="\n".$reply.$prompt; 138 } 139 } 140 # my $promptw=HTML::Entities::encode_entities($prompt); 141 my $npromptw=HTML::Entities::encode_entities($nprompt); 142 # my $prevcmdw=HTML::Entities::encode_entities($prevcmd); 143 # my $preplyw=HTML::Entities::encode_entities($preply); 144 145 #my $replyw=HTML::Entities::encode_entities("$preplyw\n$promptw$prevcmdw\n$reply"); 146 my $replyw="$preply$prompt$prevcmd\n$reply"; 147 # $prompt=$nprompt; 148 if($preply eq '' and $cmd eq '') { 149 $replyw=''; 150 } 151 my $nrows=scalar split("\n",$replyw); 152 # $nrows++; 153 ($replyw=~/^\s*$/) && ($nrows=1); 154 if ($nrows>20) {$nrows=20;} 155 my $historylist="\n"; 131 156 for my $entry (@history) { 132 $entry=~s/\>/\>\;/g; 133 $historylist.='<option value="'.$entry.'">'.$entry.'</option>'."\n"; 134 } 135 $historylist.='</select>'."\n"; 157 $entry=~s/\>/\>\;/g; 158 $historylist.='<option value="'.$entry.'">'.$entry.'</option>'."\n"; 159 } 136 160 my $html=''; 137 161 open(HTML,"<../data/runpugs2.html"); 138 162 while(<HTML>) { 139 /_HIST_/ && do { 140 $html.=$historylist; 141 next; 142 }; 143 s/_TESTING_/$testing/; 144 /input.*name=\"sessionid\"/ && do {$html.='<input type="hidden" name="sessionid" value="'.$sessionid.'">'."\n";next }; 145 /(pugs\>\;\ \;)/ && do {$html.=$cmd.$reply;next}; 146 147 /([^\`\\]+$)/ && do {$html.=$1}; 148 149 } 163 /_HIST_/ && do { 164 $html.=$historylist; 165 next; 166 }; 167 s/_TESTING_/$testing/; 168 /input.*name=\"sessionid\"/ && do { 169 $html.='<input type="hidden" name="sessionid" value="'.$sessionid.'">'."\n"; 170 next; 171 }; 172 s/_PROMPTW_/$npromptw/; 173 =not_now 174 /_PREPLYW_/ && do { 175 # $html.=$preplyw; 176 next; 177 }; 178 /_CMDW_/ && do { 179 # chomp $html; 180 # $html.=$prevcmdw."\n\n"; 181 next; 182 }; 183 /_BSKIP_/ && do { 184 # ($replyw=~/^\s*$/) && ($html.='<!--'); 185 next; 186 }; 187 /_ESKIP_/ && do { 188 # ($replyw=~/^\s*$/) && ($html.='-->'); 189 next; 190 }; 191 =cut 192 /_REPLYW_/ && do { 193 chomp $html; 194 $html.=$replyw; 195 next; 196 }; 197 /_NPROMPTW_/ && do { 198 chomp $html; 199 $html.=$npromptw; 200 next; 201 }; 202 s/_NROWS_/$nrows/; 203 /([^\`\\]+$)/ && do {$html.=$1}; 204 } 150 205 close HTML; 151 206 &printhttpheader(); -
misc/runpugs/data/runpugs2.html
r14430 r14449 22 22 return true; 23 23 } 24 25 function select_enter() 26 { 27 document.terminal.cmdline.value=document.terminal.hist.options[document.terminal.hist.selectedIndex].value; 28 document.terminal.hist.selectedIndex=0; 29 document.terminal.cmdline.focus(); 30 } 31 32 function select_enter_OFF(myfield,e) 33 { 34 var keycode; 35 if (window.event) keycode = window.event.keyCode; 36 else if (e) keycode = e.which; 37 else return true; 38 if (keycode == 13) 39 { 40 //document.terminal.submit(); 41 document.terminal.cmdline.value=document.terminal.hist.options[document.terminal.hist.selectedIndex].value; 42 return false; 43 } 44 else 45 return true; 46 } 24 47 </script> 25 48 </head> … … 32 55 href="http://feather.perl6.nl/~andara/runpugs/">info page</a>. 33 56 </p> 34 <form style="text-align: center" id="term" name="terminal"57 <form style="text-align: left" id="term" name="terminal" 35 58 action="/cgi-bin/runpugs2" method="POST"> 36 59 37 60 <input type="hidden" name="testing" value="_TESTING_"> 61 <input type="hidden" name="prompt" value="_PROMPTW_"> 38 62 <input type="hidden" name="sessionid" value=""> 39 63 <input type="hidden" name="action" value="runpugs"> 40 <!--<textarea id="history" name="history" rows="1" cols="1" 41 style="overflow: hidden; border: 0px; width: 0px; 42 font-size:0px">_CMD_</textarea>--> 43 <label for="cmd">Interactive Pugs Session<br> 64 <!--<label for="cmd">Interactive Pugs Session<br>--> 65 <h2>Interactive Pugs Session</h2> 66 <div id="termwindow"> 67 <select name="history" id="hist" onChange="select_enter()"><!--onKeyPress="return 68 select_enter(this,event)">--> 69 <option value="">--- Recent commands ---</option> 44 70 _HIST_ 45 <textarea id="cmd" name="cmd" rows="24" cols="80" wrap="virtual" onKeyPress="return submitenter(this,event)"> 46 pugs> 71 </select> 72 <br> 73 <!-- 74 <span class="prompt"> 75 _PROMPTW_ 76 </span> 77 <span class="termfont"> 78 _CMDW_ 79 </span> 80 <br> 81 --> 82 <textarea readonly id="output" name="output" rows="_NROWS_" cols="80" wrap="virtual"> 83 _REPLYW_ 47 84 </textarea> 85 <br> 86 <label for="cmdline"><span class="prompt"> 87 _NPROMPTW_ 88 </span> 89 <input type="text" size="74" id="cmdline" name="cmdline" value="" 90 onKeyPress="return submitenter(this,event)"> 48 91 </label> 92 </div> 49 93 <br> 50 94 <input id="enter" type="submit" value="Submit"> … … 52 96 <script language="JavaScript"> 53 97 document.terminal.enter.style.display='none'; 54 document.terminal.cmd.focus() 98 document.terminal.cmdline.focus() 99 document.terminal.output.scrollTop =document.terminal.output.scrollHeight; 100 if (document.terminal.output.rows==1) { 101 //document.terminal.output.style.height="2ex"; 102 } 55 103 </script> 56 104 <p class="copyright">© Copyright 2006 by Wim Vanderbauwhede</p> -
misc/runpugs/htdocs/index.html
r14374 r14449 15 15 href="http://feather.perl6.nl:8080/cgi-bin/runpugs">here</a>.</p> 16 16 <p><em>Instructions:</em> <tt>runpugs</tt> presents the pugs interactive shell. Only 17 the line typed at the last prompt is sent to pugs. Type <code>:h</code> for 18 help, <code>:q</code> to quit. <br><em>Please</em> be considerate and do close your 19 pugs session with <code>:q</code> before you close the browser window.<br>Type <code>clear</code> to clear the web terminal (this command is not sent to pugs).</p> 17 the line typed at the last prompt is sent to pugs. Type <code>:h</code> or 18 <code>help</code> for 19 help, <code>:q</code> (or <code>quit</code> or <code>bye</code>) to quit. 20 <br><em>Please</em> be considerate and do <em>quit</em> your 21 pugs session before you close the browser window.<br>Type <code>clear</code> to clear the web terminal (this command is not sent to pugs).</p> 20 22 <p>Because this is a web terminal, a number of restrictions apply:</p> 21 23 … … 29 31 <p>The current values relating to the above restrictions are:</p> 30 32 <ul> 31 <li> Total number of sessions:50</li>33 <li>Maximum number of lines of output: 250</li> 32 34 <li>Inactivity time-out: 10 minutes</li> 33 35 <li>"Long" call time-out: 10 seconds</li> 36 <li>Total number of sessions: 50</li> 34 37 <li>Sessions per IP: 10</li> 35 38 <li>Available memory: 64M.</li> … … 41 44 <li>There is no command history.</li> 42 45 </ul> 43 <p>You can find the source code for <tt>runpugs</tt> (in Perl 5) in the <a href="http://svn.openfoundry.org/pugs/">pugs subversion repository</a> under <code>/misc/runpugs</code>. 46 <p>You can find the source code for <tt>runpugs</tt> (in Perl 5) in the <a 47 href="http://svn.openfoundry.org/pugs/">pugs subversion repository</a> under 48 <code><a href="http://svn.openfoundry.org/pugs/misc/runpugs">/misc/runpugs</a></code>. 44 49 <p>Thank you for trying <tt>pugs</tt> and <tt>runpugs</tt>!</p> 45 50 <p class="copyright">© Copyright 2006 by Wim Vanderbauwhede</p> -
misc/runpugs/htdocs/runpugs.css
r14430 r14449 15 15 } 16 16 #mainwindow { 17 width: 750px17 width: 85ex; /*750px */ 18 18 } 19 19 #hist { 20 width: 750px; 21 border: solid 2px #204a87; 20 width: 100%; /*750px; */ 22 21 font-family: "Andale Mono", courier, fixed, monospace; 22 font-weight: normal; 23 23 font-size: 10pt; 24 color: #204a87; 24 color: #204a87; 25 border: solid 0px #204a87; 25 26 background-color: #f2f2f0; 26 27 padding-bottom: 5px; 28 } 29 #termwindow { 30 height: 45ex; /*400px;*/ 31 background-color: #f2f2f0; 32 border: solid 2px #204a87; 33 padding: 5px; 34 } 35 .prompt { 36 font-family: "Andale Mono", courier, fixed, monospace; 37 font-size: 11pt; 38 font-weight: bold; 39 line-height: 12pt; 40 color: #204a87; 41 background-color: #f2f2f0; 42 /* border: solid 0px #f2f2f0;*/ 43 } 44 .termfont { 45 font-family: "Andale Mono", courier, fixed, monospace; 46 font-size: 11pt; 47 font-weight: normal; 48 line-height: 12pt; 49 color: #204a87; 50 background-color: #f2f2f0; 51 /* border: solid 0px #f2f2f0;*/ 52 } 53 #cmdline { 54 width: 90%; /* sadly, Safari would need 92% */ 55 font-family: "Andale Mono", courier, fixed, monospace; 56 font-size: 11pt; 57 font-weight: normal; 58 line-height: 12pt; 59 color: #204a87; 60 background-color: #f2f2f0; 61 border: solid 0px #f2f2f0; 62 } 63 #output { 64 width: 100%; 65 font-family: "Andale Mono", courier, fixed, monospace; 66 font-size: 11pt; 67 font-weight: normal; 68 line-height: 12pt; 69 color: #204a87; 70 background-color: #f2f2f0; 71 border: solid 0px #f2f2f0; 72 /* for IE */ 73 overflow: visible; 27 74 } 28 75 #cmd { 29 76 font-family: "Andale Mono", courier, fixed, monospace; 30 77 font-size: 11pt; 78 font-weight: normal; 31 79 line-height: 12pt; 32 80 color: #204a87; -
misc/runpugs/lib/Web/Terminal/Dispatcher.pm
r14430 r14449 27 27 my $host = $Web::Terminal::Settings::host; 28 28 my $port = $Web::Terminal::Settings::port; 29 my $cmd=''; 29 my $cmd=$cmds;#''; 30 =old 30 31 # we only consider the last line with a prompt 31 32 my @cmdlines=split("\n",$cmds); … … 41 42 }; 42 43 } 44 =cut 45 43 46 # We're using PUGS_SAFEMODE=1 instead 44 47 # if ($Web::Terminal::Settings::filter and … … 71 74 my $reply=$rmesgref->{msg}; 72 75 my $histref=$rmesgref->{recent}; 76 my $prompt=$rmesgref->{prompt}; 73 77 $conn->disconnect(); 74 78 if ( "$id" ne "$rid" ) { … … 76 80 return "Sorry, the pugs session died."; 77 81 } 78 return ($reply,$ histref);82 return ($reply,$prompt,$histref); 79 83 } 80 84 } -
misc/runpugs/lib/Web/Terminal/Server.pm
r14430 r14449 46 46 $terminals{$id}->{called}=time; 47 47 my $term = $terminals{$id}; 48 push @{$term->{recent}},$cmd ;48 push @{$term->{recent}},$cmd unless $cmd=~/^\s*$/; 49 49 if (scalar @{$term->{recent}}> $Web::Terminal::Settings::nrecent) { 50 50 shift @{$term->{recent}}; … … 59 59 } 60 60 $sessions_per_ip{$ip}--; 61 return $lines; 61 62 # } 62 63 #if ($lines=~/Aborted/s) { … … 71 72 return $lines; 72 73 } else { 73 return "pugs> ";74 return $Web::Terminal::Settings::prompt; 74 75 } 75 76 } else { … … 84 85 $terminals{$id}->{ip}=$ip; 85 86 my $term = $terminals{$id}; 86 my $init= $term->{' init'};87 my $init= $term->{'output'}; 87 88 my $error= $term->{'error'}; 88 89 if ($error==1) { # Failed to create a new terminal … … 115 116 print LOG2 scalar(localtime)," : $nsess : $ip : $id : $pid > ",$cmd,"\n"; 116 117 my $lines = &termhandler( $id, $ip, $cmd ); 117 my @history=('--- Recent commands ---'); 118 my @history=(''); # --- Recent commands ---'); 119 my $prompt=$Web::Terminal::Settings::prompt; 120 if (exists $terminals{$id}){ 121 $prompt=$terminals{$id}->{prompt}; 118 122 if (defined $terminals{$id}->{recent}) { 119 123 @history=@{$terminals{$id}->{recent}}; 120 124 } 125 } 121 126 my 122 $replyref=YAML::Syck::Dump({id=>$id,msg=>$lines,recent=>\@history });127 $replyref=YAML::Syck::Dump({id=>$id,msg=>$lines,recent=>\@history,prompt=>$prompt}); 123 128 $conn->send_now($replyref); 124 129 -
misc/runpugs/lib/Web/Terminal/Server/Session.pm
r14430 r14449 19 19 my $class = ref($invocant) || $invocant; 20 20 my $self = {@_}; 21 # my $prompt = '/\>\ /'; 22 my $prompt= '/'.$Web::Terminal::Settings::init_pattern.'/'; 21 #my $prompt = '/\>\ /'; 22 my $prompt ='/'.$Web::Terminal::Settings::prompt.'/'; 23 $self->{'prompt'}=$prompt; 24 # my $prompt= '/'.$Web::Terminal::Settings::init_pattern.'/'; 25 #my $prompt= '/'.$Web::Terminal::Settings::prompt_pattern.'/'; 23 26 $self->{'error'}=0; 24 27 $self->{'recent'}=[]; … … 28 31 &spawn($Web::Terminal::Settings::command); # spawn() defined below 29 32 if ( $self->{'pty'}==-1 and $self->{'pid'}==0) { 30 $self->{' init'}= "\nThere was a problem starting pugs. Please try again later.";33 $self->{'output'}= "\nThere was a problem starting pugs. Please try again later."; 31 34 $self->{'error'}=1; 32 35 } else { … … 40 43 -cmd_remove_mode => 0, 41 44 ); 42 #( $self->{'init'}, my $m ) = $self->{'pugs'}->waitfor(43 45 my $error=''; 44 ( my $p, my $m ) = $self->{'pugs'}->waitfor( 45 -match => $self->{'pugs'}->prompt, 46 -errmode => "return" 47 ) or do { 48 $self->{'error'}=1; 49 $error="\nThere was a problem starting pugs. Please try again later."; 50 # should close the TTY 51 $self->{'pugs'}->close(); 52 }; 46 # ( my $p, my $m ) = $self->{'pugs'}->waitfor( 47 # -match => $self->{'pugs'}->prompt, 48 # -errmode => "return" 49 # ) or do { 50 # $self->{'error'}=1; 51 # $error="\nThere was a problem starting pugs. Please try again later."; 52 # # should close the TTY 53 # $self->{'pugs'}->close(); 54 # }; 55 bless($self,$class); 56 my $m=$self->readlines(); 53 57 #die "starting pugs failed: ", $self->{'pugs'}->lastline; 54 $self->{' init'}=$p.$m.$error;#$self->{'pugs'}->prompt;55 } 56 bless($self,$class);58 $self->{'output'}= $m; #$p.$m.$error;#$self->{'pugs'}->prompt; 59 } 60 #bless($self,$class); 57 61 return $self; 58 62 } 63 64 sub readlines { 65 my $obj = shift; 66 my $ps = ''; 67 68 my $i = 1; 69 my $lline = ''; 70 my $pugs=$obj->{'pugs'}; 71 $pugs->errmode(sub {kill 9,$obj->{'pid'};}); 72 73 while ($i<$Web::Terminal::Settings::nlines) { 74 my $char=''; 75 my $line=''; 76 while ($char ne "\n") { 77 $char=$pugs->get; 78 $line.=$char; 79 last if $line eq $Web::Terminal::Settings::prompt; 80 } 81 # my $line = $pugs->getline; 82 # chomp $line; 83 print $line; 84 my $msg=$pugs->errmsg; 85 if($msg=~/timed/) { 86 $msg=''; 87 $pugs->errmsg([]); 88 $lline="${Web::Terminal::Settings::prompt} Sorry, that took too long! Aborted.\n"; 89 $pugs->close(); 90 $ps=$Web::Terminal::Settings::prompt; 91 $obj->{'error'}=1; 92 last; 93 } 94 $msg=''; 95 if ( ($line =~ /$Web::Terminal::Settings::prompt_pattern/ or 96 ($line=~/$Web::Terminal::Settings::quit_pattern/)) and $i > 1 ) { $ps = $1; last } 97 $lline .= $line unless $line =~ 98 /$Web::Terminal::Settings::prompt_pattern/; 99 $i++; 100 } 101 102 if ($i>=$Web::Terminal::Settings::nlines-1) { 103 $obj->{pugs}->close(); 104 kill 9, $obj->{'pid'}; 105 $lline.="Generated output is limited to $Web::Terminal::Settings::nlines lines. Aborted.\npugs"; 106 $obj->{'error'}=1; 107 } 108 chomp $ps; # a hack! 109 #$lline .= $ps; 110 $obj->{prompt}=$ps; 111 return $lline; 112 } # end readlines method 59 113 60 114 sub write { … … 109 163 110 164 chomp $ps; # a hack! 111 $lline .= $ps; 165 # $lline .= $ps; 166 $obj->{prompt}=$ps; 112 167 return $lline; 113 168 } # end write method -
misc/runpugs/lib/Web/Terminal/Settings.pm
r14430 r14449 35 35 ); 36 36 37 =ghci 38 #GHCi 37 39 our $command='/usr/local/bin/ghci'; 38 40 our $prompt='Prelude> '; … … 40 42 our $quit_pattern='^Leaving\ GHCi\.'; 41 43 our $quit_message='Leaving GHCi.'; 44 =cut 42 45 46 #Pugs 47 our $command='/usr/bin/nice /usr/bin/pugs'; 48 our $prompt='pugs> '; 49 our $prompt_pattern='(^(pugs|\.\.\.\.)>\s+)'; 50 our $quit_pattern='^Leaving\ pugs\.'; 51 our $quit_message='Leaving pugs.'; 43 52 44 #our $command='/usr/bin/nice /usr/bin/pugs'; 53 our $init_pattern='(\>\s+)'; 54 our $quit_command=':q'; 45 55 our $server='termserv2.pl'; 46 #our $prompt='pugs> ';47 our $init_pattern='(\>\s+)';48 #our $prompt_pattern='(^(pugs|\.\.\.\.)>\s+)';49 our $quit_command=':q';50 #our $quit_pattern='^Leaving\ pugs\.';51 #our $quit_message='Leaving pugs.';52 56 53 57 our $filter=0;
