From 690c9e245e451dfd9723fd2dd86bac999228b4c9 Mon Sep 17 00:00:00 2001 From: crunchy Date: Fri, 13 Sep 2002 15:20:23 +0000 Subject: better signal handling, new command lpwd --- mpiosh/callback.c | 69 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 12 deletions(-) (limited to 'mpiosh/callback.c') 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 * - * $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 * @@ -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 } @@ -539,6 +572,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[]) { -- cgit v1.2.3