/*********************************************************************** * * * This software is part of the ast package * * Copyright (c) 1985-2009 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * * * * A copy of the License is available at * * http://www.opensource.org/licenses/cpl1.0.txt * * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * * * * Information and Software Systems Research * * AT&T Research * * Florham Park NJ * * * * Glenn Fowler * * David Korn * * Phong Vo * * * ***********************************************************************/ #pragma prototyped #include #undef _lib_getopt /* we can satisfy the api */ #if _lib_getopt NoN(getopt) #else #undef _BLD_ast /* enable ast imports since we're user static */ #include #include int opterr = 1; int optind = 1; int optopt = 0; char* optarg = 0; static int lastoptind; extern int getopt(int argc, char* const* argv, const char* optstring) { int n; NoP(argc); opt_info.index = (optind > 1 || optind == lastoptind) ? optind : 0; if (opt_info.index >= argc) return -1; switch (n = optget((char**)argv, optstring)) { case ':': n = '?'; /*FALLTHROUGH*/ case '?': if (opterr && (!optstring || *optstring != ':')) { if (!error_info.id) error_info.id = argv[0]; errormsg(NiL, 2, opt_info.arg); } optopt = opt_info.option[1]; break; case 0: n = -1; break; } optarg = opt_info.arg; lastoptind = optind = opt_info.index; return n; } #endif