Mercurial > cpython-lru_cache-weakref
diff Python/getargs.c @ 2052:d7e91437f0a2 legacy-trunk
Lots of changes, most minor (fatal() instead of abort(), use of
err_fetch/err_restore and so on). But...
NOTE: import.c has been rewritten and all the DL stuff is now in the
new file importdl.c.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 02 Jan 1995 19:04:15 +0000 |
| parents | 7f8719a36662 |
| children | d0d0a69b5ca3 |
line wrap: on
line diff
--- a/Python/getargs.c Mon Jan 02 18:38:42 1995 +0000 +++ b/Python/getargs.c Mon Jan 02 19:04:15 1995 +0000 @@ -38,7 +38,7 @@ /* Forward */ -static int vgetargs1 PROTO((object *, char *, va_list, int)); +static int vgetargs1 PROTO((object *, char *, va_list *, int)); static void seterror PROTO((int, char *, int *, char *, char *)); static char *convertitem PROTO((object *, char **, va_list *, int *, char *)); static char *converttuple PROTO((object *, char **, va_list *, @@ -68,7 +68,7 @@ args = va_arg(va, object *); format = va_arg(va, char *); #endif - retval = vgetargs1(args, format, va, 1); + retval = vgetargs1(args, format, &va, 1); va_end(va); return retval; } @@ -95,7 +95,7 @@ args = va_arg(va, object *); format = va_arg(va, char *); #endif - retval = vgetargs1(args, format, va, 0); + retval = vgetargs1(args, format, &va, 0); va_end(va); return retval; } @@ -107,15 +107,23 @@ char *format; va_list va; { - return vgetargs1(args, format, va, 0); + va_list lva; + +#ifdef VA_LIST_IS_ARRAY + memcpy(lva, va, sizeof(va_list)); +#else + lva = va; +#endif + + return vgetargs1(args, format, &lva, 0); } static int -vgetargs1(args, format, va, compat) +vgetargs1(args, format, p_va, compat) object *args; char *format; - va_list va; + va_list *p_va; int compat; { char msgbuf[256]; @@ -186,7 +194,7 @@ err_setstr(TypeError, msgbuf); return 0; } - msg = convertitem(args, &format, &va, levels, msgbuf); + msg = convertitem(args, &format, p_va, levels, msgbuf); if (msg == NULL) return 1; seterror(levels[0], msg, levels+1, fname, message); @@ -226,7 +234,7 @@ for (i = 0; i < len; i++) { if (*format == '|') format++; - msg = convertitem(gettupleitem(args, i), &format, &va, + msg = convertitem(gettupleitem(args, i), &format, p_va, levels, msgbuf); if (msg) { seterror(i+1, msg, levels, fname, message);
