Seperated file_loc from error.c
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 23 Dec 2005 13:02:55 +0000 (13:02 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 23 Dec 2005 13:02:55 +0000 (13:02 +0000)
src/ChangeLog
src/error.c
src/getl.c

index a3d2c4b3ebee90a15af8457890b5010f7bc45ff1..9b73c4773b38df110afa43ded52ff5df9312496e 100644 (file)
@@ -1,3 +1,7 @@
+Fri Dec 23 20:59:01 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+       * getl.c error.c: Separated file_loc functionality from error.c
+
 Mon Dec 19 14:01:56 WST 2005 John Darrington <john@darrington.wattle.id.au>
 
        * format.c: Additional error checking.
index 5547261a0943174e06d76d6a1e56ce7b37684f82..4caa44777624640d7abe55380f51ec8221825db6 100644 (file)
@@ -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;
 \f
 /* Fairly common public functions. */
 
@@ -114,46 +111,6 @@ err_cond_fail (void)
     }
 }
 \f
-/* 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);
-}
-\f
 /* 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
index bd380abf7b5b5ab2bb4643651597b4eb8a547be8..2b689696a60eb3f480b20375f285f7caea483e95 100644 (file)
@@ -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;
+\f
+/* 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);
+}
+
+