[Python-checkins] CVS: python/dist/src/Parser parsetok.c,2.27,2.28
Guido van Rossum
gvanrossum@users.sourceforge.net
2001年10月20日 07:27:58 -0700
Update of /cvsroot/python/python/dist/src/Parser
In directory usw-pr-cvs1:/tmp/cvs-serv5547
Modified Files:
parsetok.c
Log Message:
Patch from SF bug #472956: UMR when there is a syntax error (Neal Norwitz)
perrdetail.token is unitialized when there is a syntax
error in a file.
Index: parsetok.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Parser/parsetok.c,v
retrieving revision 2.27
retrieving revision 2.28
diff -C2 -d -r2.27 -r2.28
*** parsetok.c 2001年07月17日 16:53:11 2.27
--- parsetok.c 2001年10月20日 14:27:56 2.28
***************
*** 15,18 ****
--- 15,19 ----
/* Forward */
static node *parsetok(struct tok_state *, grammar *, int, perrdetail *, int);
+ static void initerr(perrdetail *err_ret);
/* Parse input coming from a string. Return error code, print some errors. */
***************
*** 29,39 ****
struct tok_state *tok;
! err_ret->error = E_OK;
! err_ret->filename = NULL;
! err_ret->lineno = 0;
! err_ret->offset = 0;
! err_ret->text = NULL;
! err_ret->token = -1;
! err_ret->expected = -1;
if ((tok = PyTokenizer_FromString(s)) == NULL) {
--- 30,34 ----
struct tok_state *tok;
! initerr(err_ret);
if ((tok = PyTokenizer_FromString(s)) == NULL) {
***************
*** 69,77 ****
struct tok_state *tok;
! err_ret->error = E_OK;
! err_ret->filename = filename;
! err_ret->lineno = 0;
! err_ret->offset = 0;
! err_ret->text = NULL;
if ((tok = PyTokenizer_FromFile(fp, ps1, ps2)) == NULL) {
--- 64,68 ----
struct tok_state *tok;
! initerr(err_ret);
if ((tok = PyTokenizer_FromFile(fp, ps1, ps2)) == NULL) {
***************
*** 185,187 ****
--- 176,190 ----
return n;
+ }
+
+ static void
+ initerr(perrdetail *err_ret)
+ {
+ err_ret->error = E_OK;
+ err_ret->filename = NULL;
+ err_ret->lineno = 0;
+ err_ret->offset = 0;
+ err_ret->text = NULL;
+ err_ret->token = -1;
+ err_ret->expected = -1;
}