mirror of
https://github.com/python/cpython.git
synced 2025-11-03 11:23:31 +00:00
printobject now returns an error code
This commit is contained in:
parent
909336104b
commit
d783a46d73
4 changed files with 14 additions and 9 deletions
|
|
@ -162,7 +162,7 @@ typedef struct _typeobject {
|
||||||
/* Methods to implement standard operations */
|
/* Methods to implement standard operations */
|
||||||
|
|
||||||
void (*tp_dealloc) FPROTO((object *));
|
void (*tp_dealloc) FPROTO((object *));
|
||||||
void (*tp_print) FPROTO((object *, FILE *, int));
|
int (*tp_print) FPROTO((object *, FILE *, int));
|
||||||
object *(*tp_getattr) FPROTO((object *, char *));
|
object *(*tp_getattr) FPROTO((object *, char *));
|
||||||
int (*tp_setattr) FPROTO((object *, char *, object *));
|
int (*tp_setattr) FPROTO((object *, char *, object *));
|
||||||
int (*tp_compare) FPROTO((object *, object *));
|
int (*tp_compare) FPROTO((object *, object *));
|
||||||
|
|
@ -180,7 +180,7 @@ extern typeobject Typetype; /* The type of type objects */
|
||||||
#define is_typeobject(op) ((op)->ob_type == &Typetype)
|
#define is_typeobject(op) ((op)->ob_type == &Typetype)
|
||||||
|
|
||||||
/* Generic operations on objects */
|
/* Generic operations on objects */
|
||||||
extern void printobject PROTO((object *, FILE *, int));
|
extern int printobject PROTO((object *, FILE *, int));
|
||||||
extern object * reprobject PROTO((object *));
|
extern object * reprobject PROTO((object *));
|
||||||
extern int cmpobject PROTO((object *, object *));
|
extern int cmpobject PROTO((object *, object *));
|
||||||
extern object *getattr PROTO((object *, char *));
|
extern object *getattr PROTO((object *, char *));
|
||||||
|
|
|
||||||
|
|
@ -1286,13 +1286,14 @@ window_dealloc(wp)
|
||||||
free((char *)wp);
|
free((char *)wp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
window_print(wp, fp, flags)
|
window_print(wp, fp, flags)
|
||||||
windowobject *wp;
|
windowobject *wp;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int flags;
|
int flags;
|
||||||
{
|
{
|
||||||
fprintf(fp, "<window titled '%s'>", getstringvalue(wp->w_title));
|
fprintf(fp, "<window titled '%s'>", getstringvalue(wp->w_title));
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static object *
|
static object *
|
||||||
|
|
|
||||||
|
|
@ -289,10 +289,12 @@ print_error()
|
||||||
object *exception, *v;
|
object *exception, *v;
|
||||||
err_get(&exception, &v);
|
err_get(&exception, &v);
|
||||||
fprintf(stderr, "Unhandled exception: ");
|
fprintf(stderr, "Unhandled exception: ");
|
||||||
printobject(exception, stderr, PRINT_RAW);
|
if (printobject(exception, stderr, PRINT_RAW) != 0)
|
||||||
|
err_clear();
|
||||||
if (v != NULL && v != None) {
|
if (v != NULL && v != None) {
|
||||||
fprintf(stderr, ": ");
|
fprintf(stderr, ": ");
|
||||||
printobject(v, stderr, PRINT_RAW);
|
if (printobject(v, stderr, PRINT_RAW) != 0)
|
||||||
|
err_clear();
|
||||||
}
|
}
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
XDECREF(exception);
|
XDECREF(exception);
|
||||||
|
|
|
||||||
|
|
@ -186,12 +186,14 @@ tb_printinternal(tb, fp)
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
{
|
{
|
||||||
while (tb != NULL) {
|
while (tb != NULL) {
|
||||||
if (intrcheck()) {
|
if (intrcheck())
|
||||||
fprintf(fp, "[interrupted]\n");
|
break;
|
||||||
|
fprintf(fp, " File \"");
|
||||||
|
if (printobject(tb->tb_frame->f_code->co_filename,
|
||||||
|
fp, PRINT_RAW) != 0) {
|
||||||
|
err_clear();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
fprintf(fp, " File \"");
|
|
||||||
printobject(tb->tb_frame->f_code->co_filename, fp, PRINT_RAW);
|
|
||||||
fprintf(fp, "\", line %d\n", tb->tb_lineno);
|
fprintf(fp, "\", line %d\n", tb->tb_lineno);
|
||||||
tb_displayline(fp,
|
tb_displayline(fp,
|
||||||
getstringvalue(tb->tb_frame->f_code->co_filename),
|
getstringvalue(tb->tb_frame->f_code->co_filename),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue