diff Python/traceback.c @ 1831:216b755515e6 legacy-trunk

add function name to traceback info MPW fixes
author Guido van Rossum <guido@python.org>
date Mon, 29 Aug 1994 12:09:58 +0000
parents 72bddfad351a
children 0c232194a64f
line wrap: on
line diff
--- a/Python/traceback.c	Mon Aug 29 10:55:31 1994 +0000
+++ b/Python/traceback.c	Mon Aug 29 12:09:58 1994 +0000
@@ -1,5 +1,5 @@
 /***********************************************************
-Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
+Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
 Amsterdam, The Netherlands.
 
                         All Rights Reserved
@@ -74,9 +74,9 @@
 	"traceback",
 	sizeof(tracebackobject),
 	0,
-	tb_dealloc,	/*tp_dealloc*/
+	(destructor)tb_dealloc, /*tp_dealloc*/
 	0,		/*tp_print*/
-	tb_getattr,	/*tp_getattr*/
+	(getattrfunc)tb_getattr, /*tp_getattr*/
 	0,		/*tp_setattr*/
 	0,		/*tp_compare*/
 	0,		/*tp_repr*/
@@ -150,14 +150,22 @@
 }
 
 static void
-tb_displayline(f, filename, lineno)
+tb_displayline(f, filename, lineno, name)
 	object *f;
 	char *filename;
 	int lineno;
+	char *name;
 {
 	FILE *xfp;
 	char linebuf[1000];
 	int i;
+#ifdef MPW
+	/* This is needed by MPW's File and Line commands */
+#define FMT "  File \"%.900s\"; line %d # in %s\n"
+#else
+	/* This is needed by Emacs' compile command */
+#define FMT "  File \"%.900s\", line %d, in %s\n"
+#endif
 	xfp = fopen(filename, "r");
 	if (xfp == NULL) {
 		/* Search tail of filename in sys.path before giving up */
@@ -189,16 +197,7 @@
 			}
 		}
 	}
-	sprintf(linebuf, "  File \"%.900s\"%s line %d\n",
-		filename,
-#ifdef applec /* MPW */
-		/* This is needed by MPW's File and Line commands */
-		";",
-#else
-		/* This is needed by Emacs' compile command */
-		",",
-#endif
-		lineno);
+	sprintf(linebuf, FMT, filename, lineno, name);
 	writestring(linebuf, f);
 	if (xfp == NULL)
 		return;
@@ -234,7 +233,8 @@
 		if (depth <= limit)
 			tb_displayline(f,
 			    getstringvalue(tb->tb_frame->f_code->co_filename),
-			    tb->tb_lineno);
+			    tb->tb_lineno,
+			    getstringvalue(tb->tb_frame->f_code->co_name));
 		depth--;
 		tb = tb->tb_next;
 	}