X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=blobdiff_plain;f=cmd%2Freply.pl;h=c655b50588464f18b47e5614d06b0860d1d29efe;hp=a05e3cbed2c0731fe954cdcee1794e20989cbfd1;hb=6a0068ec3df1dca0c6ae2714af3c0a4a62998dcf;hpb=3f145290a93b39bf15b50269dd8be585d7b4bc9c diff --git a/cmd/reply.pl b/cmd/reply.pl index a05e3cbe..c655b505 100644 --- a/cmd/reply.pl +++ b/cmd/reply.pl @@ -1,7 +1,82 @@ # -# reply to a message +# send a message # +# this should handle +# +# send [ .. ] +# send private [ .. ] +# send private rr [ .. ] +# send rr [ .. ] +# send noprivate [ .. ] +# send b [ .. ] +# send copy [ .. ] +# send copy rr [ .. ] +# # Copyright (c) Dirk Koopman G1TLH # # $Id$ # +my ($self, $line) = @_; +my @out; +my $loc; + +#$DB::single = 1; + +if ($self->state eq "prompt") { + + my @f = split /\s+/, $line; + + # now deal with real message inputs + # parse out send line for various possibilities + $loc = $self->{loc} = {}; + + my $i = 0; + $f[0] = uc $f[0]; + $loc->{private} = '1'; + if ($f[0] eq 'B' || $f[0] =~ /^NOP/oi) { + $loc->{private} = '0'; + $i += 1; + } elsif ($f[0] eq 'P' || $f[0] =~ /^PRI/oi) { + $i += 1; + } + + $loc->{rrreq} = '0'; + if (uc $f[$i] eq 'RR') { + $loc->{rrreq} = '1'; + $i++; + } + + my $oref; + + # check we have a reply number + if ($i > @f) { + if (!($oref = DXMsg::get($self->lastread))) { + delete $self->{loc}; + #return (0, $self->msg('esend2')); + return (0, "need a message number"); + } + } else { + $oref = DXMsg::get($f[$i]); + if (!$oref) { + delete $self->{loc}; + return (0, "can't access message $i"); + } + } + + # now save all the 'to' callsigns for later + my $to = $oref->from; + $loc->{to} = [ $to ]; # to is an array + $loc->{subject} = $oref->subject; + $loc->{subject} = "Re: " . $loc->{subject} if !($loc->{subject} =~ /^Re/io); + + # find me and set the state and the function on my state variable to + # keep calling me for every line until I relinquish control + $self->func("DXMsg::do_send_stuff"); + $self->state('sendbody'); + #push @out, $self->msg('sendsubj'); + push @out, "Reply to: $to"; + push @out, "Subject : $loc->{subject}"; + push @out, "Enter Message /EX (^Z) to send or /ABORT (^Y) to exit"; +} + +return (1, @out);