From: John Darrington Date: Fri, 23 Dec 2005 13:02:55 +0000 (+0000) Subject: Seperated file_loc from error.c X-Git-Tag: v0.6.0~1109 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee4ecca176e94e9d40855e13091e2b8ec766c5db;p=pspp-builds.git Seperated file_loc from error.c --- diff --git a/src/ChangeLog b/src/ChangeLog index a3d2c4b3..9b73c477 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +Fri Dec 23 20:59:01 WST 2005 John Darrington + + * getl.c error.c: Separated file_loc functionality from error.c + Mon Dec 19 14:01:56 WST 2005 John Darrington * format.c: Additional error checking. diff --git a/src/error.c b/src/error.c index 5547261a..4caa4477 100644 --- a/src/error.c +++ b/src/error.c @@ -47,9 +47,6 @@ int err_already_flagged; int err_verbosity; -/* File locator stack. */ -static const struct file_locator **file_loc; -static int nfile_loc, mfile_loc; /* Fairly common public functions. */ @@ -114,46 +111,6 @@ err_cond_fail (void) } } -/* File locator stack functions. */ - -/* Pushes F onto the stack of file locations. */ -void -err_push_file_locator (const struct file_locator *f) -{ - if (nfile_loc >= mfile_loc) - { - if (mfile_loc == 0) - mfile_loc = 8; - else - mfile_loc *= 2; - - file_loc = xnrealloc (file_loc, mfile_loc, sizeof *file_loc); - } - - file_loc[nfile_loc++] = f; -} - -/* Pops F off the stack of file locations. - Argument F is only used for verification that that is actually the - item on top of the stack. */ -void -err_pop_file_locator (const struct file_locator *f) -{ - assert (nfile_loc >= 0 && file_loc[nfile_loc - 1] == f); - nfile_loc--; -} - -/* Puts the current file and line number in F, or NULL and -1 if - none. */ -void -err_location (struct file_locator *f) -{ - if (nfile_loc) - *f = *file_loc[nfile_loc - 1]; - else - getl_location (&f->filename, &f->line_number); -} - /* Obscure public functions. */ /* Writes a blank line to the error device(s). @@ -204,10 +161,6 @@ err_done (void) lex_done(); getl_uninitialize (); readln_uninitialize(); - - free(file_loc); - file_loc = NULL; - nfile_loc = mfile_loc = 0; } void diff --git a/src/getl.c b/src/getl.c index bd380abf..2b689696 100644 --- a/src/getl.c +++ b/src/getl.c @@ -57,14 +57,6 @@ getl_initialize (void) ds_init (&getl_buf, 256); } -/* Close getl. */ -void -getl_uninitialize (void) -{ - getl_close_all(); - ds_destroy (&getl_buf); - ds_destroy (&getl_include_path); -} struct getl_script *getl_head; @@ -333,3 +325,61 @@ getl_reading_script (void) return (getl_head != NULL); } +/* File locator stack. */ +static const struct file_locator **file_loc; +static int nfile_loc, mfile_loc; + +/* Close getl. */ +void +getl_uninitialize (void) +{ + getl_close_all(); + ds_destroy (&getl_buf); + ds_destroy (&getl_include_path); + free(file_loc); + file_loc = NULL; + nfile_loc = mfile_loc = 0; +} + + +/* File locator stack functions. */ + +/* Pushes F onto the stack of file locations. */ +void +err_push_file_locator (const struct file_locator *f) +{ + if (nfile_loc >= mfile_loc) + { + if (mfile_loc == 0) + mfile_loc = 8; + else + mfile_loc *= 2; + + file_loc = xnrealloc (file_loc, mfile_loc, sizeof *file_loc); + } + + file_loc[nfile_loc++] = f; +} + +/* Pops F off the stack of file locations. + Argument F is only used for verification that that is actually the + item on top of the stack. */ +void +err_pop_file_locator (const struct file_locator *f) +{ + assert (nfile_loc >= 0 && file_loc[nfile_loc - 1] == f); + nfile_loc--; +} + +/* Puts the current file and line number in F, or NULL and -1 if + none. */ +void +err_location (struct file_locator *f) +{ + if (nfile_loc) + *f = *file_loc[nfile_loc - 1]; + else + getl_location (&f->filename, &f->line_number); +} + +