add various eph timings and variables to control them
[spider.git] / perl / DXCommandmode.pm
index 212b9a0c4a04c25c9a131f703ed213a0440cdda3..4601ec21df0ca34d01ca99b7beb64f9f9996bdd8 100644 (file)
@@ -107,6 +107,7 @@ sub start
        $self->{logininfo} = $user->wantlogininfo;
        $self->{ann_talk} = $user->wantann_talk;
        $self->{here} = 1;
+       $self->{prompt} = $user->prompt if $user->prompt;
 
        # sort out registration
        if ($main::reqreg == 1) {
@@ -185,6 +186,9 @@ sub normal
        my $self = shift;
        my $cmdline = shift;
        my @ans;
+
+       # save this for them's that need it
+       my $rawline = $cmdline;
        
        # remove leading and trailing spaces
        $cmdline =~ s/^\s*(.*)\s*$/$1/;
@@ -273,7 +277,7 @@ sub normal
                                Log('DXCommand', "$self->{call} swore: $cmdline");
                        } else {
                                for (@{$self->{talklist}}) {
-                                       $self->send_talks($_, $cmdline);
+                                       $self->send_talks($_, $rawline);
                                }
                        }
                        $self->send($self->talk_prompt) if $self->{state} eq 'talk';
@@ -285,9 +289,9 @@ sub normal
                no strict 'refs';
                my @ans;
                if (ref $self->{edit}) {
-                       eval { @ans = $self->{edit}->$func($self, $cmdline)};
+                       eval { @ans = $self->{edit}->$func($self, $rawline)};
                } else {
-                       eval {  @ans = &{$self->{func}}($self, $cmdline) };
+                       eval {  @ans = &{$self->{func}}($self, $rawline) };
                }
                if ($@) {
                        $self->send_ans("Syserr: on stored func $self->{func}", $@);
@@ -523,7 +527,11 @@ sub disconnect
 sub prompt
 {
        my $self = shift;
-       $self->send($self->msg($self->here ? 'pr' : 'pr2', $self->call, cldate($main::systime), ztime($main::systime)));
+       if ($self->{prompt}) {
+               $self->send($self->{prompt});
+       } else {
+               $self->send($self->msg($self->here ? 'pr' : 'pr2', $self->call, cldate($main::systime), ztime($main::systime)));
+       }
 }
 
 # broadcast a message to all users [except those mentioned after buffer]