Mercurial > cpython-lru_cache-weakref
diff Python/modsupport.c @ 1252:c4cd0d9d8281 legacy-trunk
* Changed many files to use mkvalue() instead of newtupleobject().
* Fixcprt.py: added [-y file] option, do only files younger than file.
* modsupport.[ch]: added vmkvalue().
* intobject.c: use mkvalue().
* stringobject.c: added "formatstring"; renamed string* to string_*;
ceval.c: call formatstring for string % value.
* longobject.c: close memory leak in divmod.
* parsetok.c: set result node to NULL when returning an error.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 16 Mar 1993 12:15:04 +0000 |
| parents | 406860dfaac7 |
| children | cd397266dc1c |
line wrap: on
line diff
--- a/Python/modsupport.c Tue Mar 02 12:16:56 1993 +0000 +++ b/Python/modsupport.c Tue Mar 16 12:15:04 1993 +0000 @@ -28,17 +28,6 @@ #include "modsupport.h" #include "import.h" -#ifdef HAVE_PROTOTYPES -#define USE_STDARG -#endif - -#ifdef USE_STDARG -#include <stdarg.h> -#else -#include <varargs.h> -#endif - - object * initmodule(name, methods) char *name; @@ -454,7 +443,7 @@ case '(': return do_mktuple(p_format, p_va, ')', countformat(*p_format, ')')); - + case 'b': case 'h': case 'i': @@ -466,7 +455,7 @@ case 'f': case 'd': return newfloatobject((double)va_arg(*p_va, double)); - + case 'c': { char p[1]; @@ -532,32 +521,34 @@ object *mkvalue(va_alist) va_dcl #endif { - int n; - char *f; va_list va; object* retval; #ifdef USE_STDARG va_start(va, format); #else char *format; - va_start(va); format = va_arg(va, char *); #endif - f = format; - n = countformat(f, '\0'); - if (n < 0) - retval = NULL; /* Error in the format */ - else if (n == 0) { - retval = None; - INCREF(retval); - } - else if (n == 1) - retval = do_mkvalue(&f, &va); - else - retval = do_mktuple(&f, &va, '\0', n); + retval = vmkvalue(format, va); va_end(va); - if (retval == NULL) - fprintf(stderr, "format \"%s\", f \"%s\"\n", format, f); return retval; } + +object * +vmkvalue(format, va) + char *format; + va_list va; +{ + char *f = format; + int n = countformat(f, '\0'); + if (n < 0) + return NULL; + if (n == 0) { + INCREF(None); + return None; + } + if (n == 1) + return do_mkvalue(&f, &va); + return do_mktuple(&f, &va, '\0', n); +}
