diff options
author | crunchy <crunchy> | 2002-09-13 15:20:23 +0000 |
---|---|---|
committer | crunchy <crunchy> | 2002-09-13 15:20:23 +0000 |
commit | 690c9e245e451dfd9723fd2dd86bac999228b4c9 (patch) | |
tree | 34926f17a13e765ee8f2356c611eb82872ba5810 /mpiosh/callback.c | |
parent | c0c5a77e8220f9d1bcdb46f46527d0ef0ca50359 (diff) | |
download | mpiosh-690c9e245e451dfd9723fd2dd86bac999228b4c9.tar.gz mpiosh-690c9e245e451dfd9723fd2dd86bac999228b4c9.tar.bz2 mpiosh-690c9e245e451dfd9723fd2dd86bac999228b4c9.zip |
better signal handling, new command lpwd
Diffstat (limited to 'mpiosh/callback.c')
-rw-r--r-- | mpiosh/callback.c | 69 |
1 files changed, 57 insertions, 12 deletions
diff --git a/mpiosh/callback.c b/mpiosh/callback.c index b84dea1..020b03f 100644 --- a/mpiosh/callback.c +++ b/mpiosh/callback.c @@ -2,7 +2,7 @@ * * Author: Andreas Büsching <crunchy@tzi.de> * - * $Id: callback.c,v 1.2 2002/09/13 13:07:06 germeier Exp $ + * $Id: callback.c,v 1.3 2002/09/13 15:20:25 crunchy Exp $ * * Copyright (C) 2001 Andreas Büsching <crunchy@tzi.de> * @@ -76,19 +76,34 @@ void mpiosh_cmd_help(char *args[]) { mpiosh_cmd_t *cmd = commands; + int ignore; - UNUSED(args); - while (cmd->cmd) { - printf("%s", cmd->cmd); - if (cmd->args) - printf(" %s\n", cmd->args); - else - printf("\n"); - if (cmd->info) - printf(" %s\n", cmd->info); - else - printf("\n"); + if (args[0] != NULL) { + char ** walk = args; + ignore = 1; + + while(*walk) { + if (!strcmp(*walk, cmd->cmd)) { + ignore = 0; + break; + } + walk++; + } + } else + ignore = 0; + + if (!ignore) { + printf("%s", cmd->cmd); + if (cmd->args) + printf(" %s\n", cmd->args); + else + printf("\n"); + if (cmd->info) + printf(" %s\n", cmd->info); + else + printf("\n"); + } cmd++; } } @@ -206,6 +221,12 @@ mpiosh_callback_get(int read, int total) { printf("\rretrieved %.2f %%", ((double) read / total) * 100.0 ); fflush(stdout); + + if (mpiosh_cancel) { + mpiosh_cancel = 0; + return 1; + } + return 0; // continue } @@ -271,6 +292,12 @@ mpiosh_callback_put(int read, int total) { printf("\rwrote %.2f %%", ((double) read / total) * 100.0 ); fflush(stdout); + + if (mpiosh_cancel) { + mpiosh_cancel = 0; + return 1; + } + return 0; // continue } @@ -339,6 +366,12 @@ mpiosh_callback_del(int read, int total) { printf("\rdeleted %.2f %%", ((double) read / total) * 100.0 ); fflush(stdout); + + if (mpiosh_cancel) { + mpiosh_cancel = 0; + return 1; + } + return 0; // continue } @@ -540,6 +573,18 @@ mpiosh_cmd_ldir(char *args[]) } void +mpiosh_cmd_lpwd(char *args[]) +{ + char dir_buf[NAME_MAX]; + + UNUSED(args); + + getcwd(dir_buf, NAME_MAX); + + printf("%s\n", dir_buf); +} + +void mpiosh_cmd_lcd(char *args[]) { MPIOSH_CHECK_ARG; |