projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
increase PC41 eph restime to 60 minutes
[spider.git]
/
perl
/
DXCommandmode.pm
diff --git
a/perl/DXCommandmode.pm
b/perl/DXCommandmode.pm
index 791256dc7090a45b864e1c1ca230565d43d207ee..4601ec21df0ca34d01ca99b7beb64f9f9996bdd8 100644
(file)
--- a/
perl/DXCommandmode.pm
+++ b/
perl/DXCommandmode.pm
@@
-63,7
+63,10
@@
sub new
my $pkg = shift;
my $call = shift;
my @rout = $main::routeroot->add_user($call, Route::here(1));
my $pkg = shift;
my $call = shift;
my @rout = $main::routeroot->add_user($call, Route::here(1));
- DXProt::route_pc16($main::me, $main::routeroot, @rout) if @rout;
+
+ # ALWAYS output the user
+ my $ref = Route::User::get($call);
+ DXProt::route_pc16($main::me, $main::routeroot, $ref) if $ref;
return $self;
}
return $self;
}
@@
-104,6
+107,7
@@
sub start
$self->{logininfo} = $user->wantlogininfo;
$self->{ann_talk} = $user->wantann_talk;
$self->{here} = 1;
$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) {
# sort out registration
if ($main::reqreg == 1) {
@@
-182,6
+186,9
@@
sub normal
my $self = shift;
my $cmdline = shift;
my @ans;
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/;
# remove leading and trailing spaces
$cmdline =~ s/^\s*(.*)\s*$/$1/;
@@
-270,7
+277,7
@@
sub normal
Log('DXCommand', "$self->{call} swore: $cmdline");
} else {
for (@{$self->{talklist}}) {
Log('DXCommand', "$self->{call} swore: $cmdline");
} else {
for (@{$self->{talklist}}) {
- $self->send_talks($_, $
cmd
line);
+ $self->send_talks($_, $
raw
line);
}
}
$self->send($self->talk_prompt) if $self->{state} eq 'talk';
}
}
$self->send($self->talk_prompt) if $self->{state} eq 'talk';
@@
-282,9
+289,9
@@
sub normal
no strict 'refs';
my @ans;
if (ref $self->{edit}) {
no strict 'refs';
my @ans;
if (ref $self->{edit}) {
- eval { @ans = $self->{edit}->$func($self, $
cmd
line)};
+ eval { @ans = $self->{edit}->$func($self, $
raw
line)};
} else {
} else {
- eval { @ans = &{$self->{func}}($self, $
cmd
line) };
+ eval { @ans = &{$self->{func}}($self, $
raw
line) };
}
if ($@) {
$self->send_ans("Syserr: on stored func $self->{func}", $@);
}
if ($@) {
$self->send_ans("Syserr: on stored func $self->{func}", $@);
@@
-495,13
+502,13
@@
sub disconnect
if ($uref) {
@rout = $main::routeroot->del_user($uref);
dbg("B/C PC17 on $main::mycall for: $call") if isdbg('route');
if ($uref) {
@rout = $main::routeroot->del_user($uref);
dbg("B/C PC17 on $main::mycall for: $call") if isdbg('route');
+
+ # issue a pc17 to everybody interested
+ DXProt::route_pc17($main::me, $main::routeroot, $uref);
} else {
confess "trying to disconnect a non existant user $call";
}
} else {
confess "trying to disconnect a non existant user $call";
}
- # issue a pc17 to everybody interested
- DXProt::route_pc17($main::me, $main::routeroot, @rout) if @rout;
-
# I was the last node visited
$self->user->node($main::mycall);
# I was the last node visited
$self->user->node($main::mycall);
@@
-520,7
+527,11
@@
sub disconnect
sub prompt
{
my $self = shift;
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]
}
# broadcast a message to all users [except those mentioned after buffer]