Added a utility res_clear which removes/clears all items in a
[idzebra-moved-to-github.git] / util / res.c
index 4714c68..15e65e5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: res.c,v 1.42 2005-06-13 10:27:52 adam Exp $
+/* $Id: res.c,v 1.44 2005-08-17 21:28:07 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -26,7 +26,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <assert.h>
 #ifdef WIN32
 #include <io.h>
-#else
+#endif
+#if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
@@ -270,10 +271,8 @@ Res res_open (const char *name, Res def_res, Res over_res)
     return r;
 }
 
-void res_close (Res r)
+void res_clear (Res r)
 {
-    if (!r)
-        return;
     if (r->init)
     {
         struct res_entry *re, *re1;
@@ -287,6 +286,16 @@ void res_close (Res r)
             xfree (re);
         }
     }
+    r->init = 0;
+    r->first = r->last = NULL;
+}
+
+void res_close (Res r)
+{
+    if (!r)
+        return;
+    res_clear(r);
+
     xfree (r->name);
     xfree (r);
 }