uvmac/setup/CMDARGT1.i
2019-07-22 22:50:34 -04:00

102 lines
1.9 KiB
OpenEdge ABL

/*
CMDARGT1.i
Copyright (C) 2009 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
*/
/*
CoMmandD ARGument Tool part 1
allows code used with CMDARGW1 to also be
used to make an MPW tool.
*/
LOCALVAR int The_argc;
LOCALVAR int The_argi;
typedef char **The_argvt;
LOCALVAR The_argvt The_argv;
LOCALVAR char *Cur_args;
LOCALVAR blnr The_arg_end;
GLOBALFUNC tMyErr AdvanceTheArg(void)
{
++The_argi;
if (The_argi < The_argc) {
Cur_args = The_argv[The_argi];
} else {
The_arg_end = trueblnr;
}
return kMyErr_noErr;
}
GLOBALFUNC blnr CurArgIsCStr_v2(char *s)
{
/* warning : assumes (! The_arg_end) */
return CStrEq(Cur_args, s);
}
GLOBALFUNC tMyErr CurArgIsCStrAdvance_v2(char *s)
{
tMyErr err;
/* warning : assumes (! The_arg_end) */
if (! CurArgIsCStr_v2(s)) {
err = kMyErrNoMatch;
} else {
err = AdvanceTheArg();
}
return err;
}
GLOBALPROC GetCurArgAsCStr(char *s, uimr MaxN)
{
/* warning : assumes (! The_arg_end) */
if (CStrLength(Cur_args) > MaxN) {
s[0] = 0;
} else {
CStrCopy(s, Cur_args);
}
}
GLOBALPROC GetCurArgAsPStr(ps3p s)
{
/* warning : assumes (! The_arg_end) */
PStrFromCStr(s, Cur_args);
}
GLOBALPROC BeginParseCommandLineArguments(int argc, The_argvt argv)
{
The_argi = 0;
The_argc = argc;
The_argv = argv;
The_arg_end = falseblnr;
(void) AdvanceTheArg();
}
GLOBALFUNC tMyErr ReportParseFailure(char *s)
{
fprintf(stderr, "%s\n", s);
return kMyErrReported;
}
GLOBALFUNC tMyErr ReportParseFailPStr(ps3p s)
{
char t[256];
CStrFromPStr(s, t);
return ReportParseFailure(t);
}