Re: [CODE] Better argument processing Sammy on Fri, Sep 19, 1997 at 10:30:06AM -0500

From: Ric Klaren (j.klaren@STUDENT.UTWENTE.NL)
Date: 09/19/97


On Fri, Sep 19, 1997 at 10:30:06AM -0500, Sammy wrote:
Sammy> With a few more similar argument processing functions, you can
Sammy> eliminate all the argX[MAX_INPUT_LENGTH] variables throughout the ACMD
Sammy> functions.

How about the following??? Little func I use for all argument processing.
It supllies an argc, argv lookalike thing... I prefer it a lot over the
old argument handling funcs.

typedef struct args ARGS;

struct args
{
        int argc;
        char **argv;
};

/* generate an array with pointers to args in s
 * s is destroyed by this (nulls on token separators)
 */
const char str_to_args[] = " \t";
#define MAXTOKEN         32

ARGS *string_to_args( char *s )
{
        char *tok;
        int ntok = 0;
        static char *args[MAXTOKEN+1];
        static ARGS arguments;

        tok = strtok( s, " \t" );

        while( tok != NULL && ntok < MAXTOKEN )
        {
                if( ntok > 0 )
                        tok[-1] = '\0';

                args[ntok++] = tok;
                tok = strtok( NULL, " \t" );
        }
        args[ntok] = NULL;
        arguments.argc = ntok;
        arguments.argv = args;

        return &arguments;
}

Ric
--


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/08/00 PST