Mercurial > cpython-lru_cache-weakref
view Python/getopt.c @ 12754:5213abfe5230 legacy-trunk
Py_Initialize(): Now that standard exceptions are builtin, we don't
need two phase init or fini of the builtin module. Change the call of
_PyBuiltin_Init_1() to _PyBuiltin_Init(). Add a call to
init_exceptions().
Py_Finalize(): Don't call _PyBuiltin_Fini_1(). Instead call
fini_exceptions() but move this to before the thread state is
cleared.
| author | Barry Warsaw <barry@python.org> |
|---|---|
| date | Thu, 25 May 2000 23:09:49 +0000 |
| parents | 3b981eacad7b |
| children | f79434ee41fa |
line wrap: on
line source
/*---------------------------------------------------------------------------* * <RCS keywords> * * C++ Library * * Copyright 1992-1994, David Gottner * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notice, this permission notice and * the following disclaimer notice appear unmodified in all copies. * * I DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL I * BE LIABLE FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Nevertheless, I would like to know about bugs in this library or * suggestions for improvment. Send bug reports and feedback to * davegottner@delphi.com. *---------------------------------------------------------------------------*/ #include <stdio.h> #include <string.h> #define bool int #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif bool opterr = TRUE; /* generate error messages */ int optind = 1; /* index into argv array */ char * optarg = NULL; /* optional argument */ #ifndef __BEOS__ int getopt(argc,argv,optstring) int argc; char *argv[]; char optstring[]; #else int getopt( int argc, char *const *argv, const char *optstring ) #endif { static char *opt_ptr = ""; register char *ptr; int option; if (*opt_ptr == '\0') { if (optind >= argc || argv[optind][0] != '-' || argv[optind][1] == '\0' /* lone dash */ ) return -1; else if (strcmp(argv[optind], "--") == 0) { ++optind; return -1; } opt_ptr = &argv[optind++][1]; } if ( (option = *opt_ptr++) == '\0') return -1; if ((ptr = strchr(optstring, option)) == NULL) { if (opterr) fprintf(stderr, "Unknown option: -%c\n", option); return '?'; } if (*(ptr + 1) == ':') { if (*opt_ptr != '\0') { optarg = opt_ptr; opt_ptr = ""; } else { if (optind >= argc) { if (opterr) fprintf(stderr, "Argument expected for the -%c option\n", option); return '?'; } optarg = argv[optind++]; } } return option; }
