Author: dylan
Date: 2004-06-28 00:40:07 -0400 (Mon, 28 Jun 2004)
New Revision: 270
Added:
trunk/clients/
trunk/clients/wxhaver/
Removed:
trunk/wxhaver/
Modified:
trunk/main/client/lib/Haver/Client/Command.pm
Log:
puting wxhaver in /trunk/clients/.
Copied: trunk/clients/wxhaver (from rev 269, trunk/wxhaver)
Modified: trunk/main/client/lib/Haver/Client/Command.pm
===================================================================
--- trunk/main/client/lib/Haver/Client/Command.pm 2004-06-28 04:38:48 UTC
(rev 269)
+++ trunk/main/client/lib/Haver/Client/Command.pm 2004-06-28 04:40:07 UTC
(rev 270)
@@ -45,80 +45,8 @@
}
-sub invoke {
- my ($me, $cmd, @args) = @_;
-
- if (exists $me->{command}{$cmd} and exists
$me->{command}{$cmd}{handler}) {
- $me->{command}{$cmd}{handler}->(@args);
- }
-}
-
-sub parse_args {
- my ($me, $cmd, $arg) = @_;
-
- if (exists $me->{command}{$cmd} and exists
$me->{command}{$cmd}{parser}) {
- return $me->{command}{$cmd}{parser}->($cmd, $arg);
- } else {
- return $arg;
- }
-}
-
-sub run_callback {
- my ($me, $cb, $args) = @_;
-
- if (not ref $args) {
- $args = [];
- }
- ASSERT: ref $cb;
- my $ref = ref $cb;
- if ($ref eq 'CODE') {
- return $cb->(@$args);
- } elsif (Scalar::Util::blessed($cb)) {
- return $cb->invoke(@$args);
- } elsif ($ref eq 'ARRAY') {
- my $c = shift @$cb;
- if (Scalar::Util::blessed($c)) {
- my $method = shift @$cb;
- return $c->$method(@$cb, @$args);
- } elsif (ref $c eq 'CODE') {
- return $c->(@$cb, @$args);
- } else {
- confess "I don't know how I got here!";
- }
- } else {
- confess "I don't know how I got here!";
- }
-}
-
-
-sub input {
+sub parse {
my ($me, $s) = @_;
- my ($cmd, $arg) = $me->parse_command($s);
-
- my $result = $me->resolve_command($cmd);
- die "Unknown command: $cmd" unless defined $result;
- die "Ambigous command: $cmd\nPossible matches:\n" . join("\n", map { "-
" } @$result) if ref $result;
- $cmd = $result;
-
- if ($me->is_alias($cmd) and $cmd ne $me->{builtin_cmd}) {
- my @lines = $me->eval_text($me->{alias}{$cmd}, $arg);
-
- foreach my $line (@lines) {
- $me->input($line);
- }
- } else {
- my @args;
- if ($cmd eq $me->{builtin_cmd}) {
- $arg =~ s/^\s*(\w+)\s+//;
- $cmd = $1;
- }
- @args = $me->parse_args($cmd, $arg);
- $me->invoke($cmd, @args);
- }
-}
-
-sub parse_command {
- my ($me, $s) = @_;
my $c = quotemeta $me->{chars};
my ($cmd, $arg);
@@ -133,6 +61,11 @@
return ($cmd, $arg);
}
+sub invoke {
+ my ($me, $cmd, $arg) = @_;
+
+}
+
sub resolve_command {
my ($me, $prefix) = @_;
my $len = length $prefix;