home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga ACS 1997 #2
/
amigaacscoverdisc
/
utilities
/
shareware
/
music
/
gfft-2.03
/
source
/
gfft-2.03-source.lha
/
bcommand.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-01-02
|
3KB
|
103 lines
/***************************************************************************
* Copyright (C) 1994 Charles P. Peterson *
* 4007 Enchanted Sun, San Antonio, Texas 78244-1254 *
* Email: Charles_P_Peterson@fcircus.sat.tx.us *
* *
* This is free software with NO WARRANTY. *
* See gfft.c, or run program itself, for details. *
* Support is available for a fee. *
***************************************************************************
*
* Program: gfft--General FFT analysis
* File: bcommand.c
* Purpose: process batch (i.e. shell) commands (noninteractively)
* Author: Charles Peterson (CPP)
* History: 4-November-1993 CPP; Created.
* Comment: error not caught here; must be caught by caller
* Special logic: If a READ command is given for which there
* is no following OK, GO, or WORKBENCH command, an OK command
* is executed before return by default. (Thus, OK is not
* required in batch mode.)
*/
#include <string.h>
#include "gfft.h"
extern Name_Info_St Gfft_Command[];
void batch_command (int argc, char *argv[])
{
int ntoken;
BOOLEAN ok_before_exit = FALSE;
Name_Info_St *command_invoked;
for (ntoken = 1; ntoken < argc; ntoken++)
{
/*
* Filter out 'set' commands
*/
Name_Info_St *name = identify_name (argv[ntoken], Gfft_Command,
FALSE);
if (!strcmp (name->full_string, "Set"))
{
continue;
}
/*
* Now see if the FOLLOWING
* token is a command too. If not, it must be an argument to this one.
*/
if (ntoken+1 < argc)
{
if (!identify_name (argv[ntoken+1], Gfft_Command, FALSE))
{
/*
* This command has one argument
*/
strcpy (Command, argv[ntoken]);
strcat (Command," ");
strcat (Command, argv[ntoken+1]);
ntoken++;
}
else
{
strcpy (Command, argv[ntoken]);
}
}
else
{
strcpy (Command, argv[ntoken]);
}
command_invoked = invoke_method (Command, Gfft_Command);
if ( !strcmp (command_invoked->full_string, "Read"))
{
ok_before_exit = TRUE;
}
else if ( !strcmp (command_invoked->full_string, "Write"))
{
ok_before_exit = TRUE;
}
else if ( !strcmp (command_invoked->full_string, "Append"))
{
ok_before_exit = TRUE;
}
else if ( !strcmp (command_invoked->full_string, "OK"))
{
ok_before_exit = FALSE;
}
else if ( !strcmp (command_invoked->full_string, "Go"))
{
ok_before_exit = FALSE;
}
#ifdef AMIGA
else if ( !strcmp (command_invoked->full_string, "Workbench"))
{
ok_before_exit = FALSE;
}
#endif
}
if (ok_before_exit)
{
ok (NullString);
}
}