Argsiter.c
Click here to get the file
Size
1.4 kB
-
File type
text/plain
File contents
/*ident "@(#)Args:Argsiter.c 3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc. The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/
#include "Argslib.h"
Optsiter::Optsiter(const Args& args_) :
begin(1),
opt(0),
args(&args_) {
}
int
Optsiter::next(const Opt*& x) {
if (begin == 1) {
begin = 0;
opt = args->firstopt;
}
else if (opt != 0) {
opt = opt->next;
}
x = opt;
return x != 0;
}
Suboptsiter::Suboptsiter(const Opt& opt_) :
begin(1),
subopt(0),
opt(&opt_) {
}
int
Suboptsiter::next(const Subopt*& x) {
if (begin == 1) {
begin = 0;
if (opt != 0)
subopt = opt->firstsubopt;
else
subopt = 0;
}
else if (subopt != 0) {
subopt = subopt->next;
}
x = subopt;
return x != 0;
}
Argsiter::Argsiter(const Args& args_) :
begin(1),
arg(0),
args(&args_) {
}
int
Argsiter::next(const char*& x) {
if (begin == 1) {
begin = 0;
arg = args->firstarg;
}
else if (arg != 0) {
arg = arg->next;
}
if (arg != 0)
x = arg->p;
else
x = 0;
return x != 0;
}