mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
* pythonrun.c: Print exception type+arg *after* stack trace instead of
before it. * ceval.c, object.c: moved testbool() to object.c (now extern visible) * stringobject.c: fix bugs in and rationalize string resize in formatstring() * tokenizer.[ch]: fix non-working code for lines longer than BUFSIZ
This commit is contained in:
parent
ad4fcd49fc
commit
6ac258d381
7 changed files with 95 additions and 81 deletions
|
@ -58,7 +58,6 @@ static int prtrace PROTO((object *, char *));
|
|||
static void call_exc_trace PROTO((object **, object**, frameobject *));
|
||||
static int call_trace
|
||||
PROTO((object **, object **, frameobject *, char *, object *));
|
||||
static int testbool PROTO((object *));
|
||||
static object *add PROTO((object *, object *));
|
||||
static object *sub PROTO((object *, object *));
|
||||
static object *mul PROTO((object *, object *));
|
||||
|
@ -1612,29 +1611,6 @@ flushline()
|
|||
}
|
||||
|
||||
|
||||
/* Test a value used as condition, e.g., in a for or if statement.
|
||||
Return -1 if an error occurred */
|
||||
|
||||
static int
|
||||
testbool(v)
|
||||
object *v;
|
||||
{
|
||||
int res;
|
||||
if (v == None)
|
||||
res = 0;
|
||||
else if (v->ob_type->tp_as_number != NULL)
|
||||
res = (*v->ob_type->tp_as_number->nb_nonzero)(v);
|
||||
else if (v->ob_type->tp_as_mapping != NULL)
|
||||
res = (*v->ob_type->tp_as_mapping->mp_length)(v);
|
||||
else if (v->ob_type->tp_as_sequence != NULL)
|
||||
res = (*v->ob_type->tp_as_sequence->sq_length)(v);
|
||||
else
|
||||
res = 1;
|
||||
if (res > 0)
|
||||
res = 1;
|
||||
return res;
|
||||
}
|
||||
|
||||
static object *
|
||||
or(v, w)
|
||||
object *v, *w;
|
||||
|
|
|
@ -245,6 +245,7 @@ print_error()
|
|||
if (f == NULL)
|
||||
fprintf(stderr, "lost sys.stderr\n");
|
||||
else {
|
||||
printtraceback(f);
|
||||
if (writeobject(exception, f, PRINT_RAW) != 0)
|
||||
err_clear();
|
||||
if (v != NULL && v != None) {
|
||||
|
@ -253,7 +254,6 @@ print_error()
|
|||
err_clear();
|
||||
}
|
||||
writestring("\n", f);
|
||||
printtraceback(f);
|
||||
}
|
||||
XDECREF(exception);
|
||||
XDECREF(v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue