You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
2.2 KiB
110 lines
2.2 KiB
/*
|
|
* History
|
|
* 17-SEP-90 w-barry Ported to Cruiser
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <conio.h>
|
|
#include <ctype.h>
|
|
#include <string.h>
|
|
#include <process.h>
|
|
#include <windows.h>
|
|
#include <tools.h>
|
|
|
|
#define BS 0x08
|
|
#define CTRLC 0x03
|
|
#define ENTER 0x0d
|
|
|
|
// Define external function calls..
|
|
extern flagType delnode( char * );
|
|
|
|
void
|
|
Usage (
|
|
void
|
|
)
|
|
{
|
|
fputs("Usage: delnode [/q] nodes\n"
|
|
" /q quiet, no confirm\n",
|
|
stderr);
|
|
exit (1);
|
|
}
|
|
|
|
flagType
|
|
fConfirm (
|
|
char *psz
|
|
)
|
|
{
|
|
int ch, chLast;
|
|
|
|
chLast = 0;
|
|
printf ("\nDELNODE: Delete node \"%s\" and all its subdirectories? [yn] ", psz);
|
|
while ( TRUE ) {
|
|
|
|
ch = _getch();
|
|
ch = tolower( ch );
|
|
|
|
if (ch == 0x03) {
|
|
printf( "^C Aborted\n" );
|
|
exit( 1 );
|
|
}
|
|
if (ch == ENTER && (chLast == 'y' || chLast == 'n')) {
|
|
putchar('\n');
|
|
return (flagType)(chLast == 'y');
|
|
}
|
|
|
|
if (ch != 0) {
|
|
if (ch == 'y' || ch == 'n') {
|
|
putchar(ch);
|
|
putchar('\b');
|
|
}
|
|
}
|
|
chLast = ch;
|
|
}
|
|
|
|
}
|
|
|
|
int
|
|
__cdecl
|
|
main(
|
|
int c,
|
|
char *v[]
|
|
)
|
|
{
|
|
char sz[MAX_PATH];
|
|
flagType fAsk = TRUE;
|
|
|
|
ConvertAppToOem( c, v );
|
|
SHIFT (c, v);
|
|
while (c && fSwitChr (**v)) {
|
|
if (!strcmp (*v+1, "q"))
|
|
fAsk = FALSE;
|
|
else
|
|
Usage ();
|
|
SHIFT (c, v);
|
|
}
|
|
if (c == 0)
|
|
Usage ();
|
|
|
|
while (c) {
|
|
if (strlen( *v ) == 0) {
|
|
printf( "DELNODE: invalid null argument\n" );
|
|
} else if (!fAsk || fConfirm (*v)) {
|
|
if (!fileext (*v, sz)) {
|
|
upd ("*.*", *v, sz);
|
|
} else {
|
|
strcpy (sz, *v);
|
|
if (!strcmp ("..", sz) || !strcmp (".", sz)) {
|
|
pathcat (sz, "*.*");
|
|
}
|
|
}
|
|
if (fAsk) {
|
|
printf( "DELNODE: deleting ... \n", sz );
|
|
}
|
|
delnode (sz);
|
|
} else if (fAsk) {
|
|
printf("DELNODE: ** nothing ** deleted\n");
|
|
}
|
|
SHIFT (c, v);
|
|
}
|
|
return( 0 );
|
|
}
|