Take advantage of new dynamic string macros.
[checkpath] / path.c
diff --git a/path.c b/path.c
index 4a136b8..657abd1 100644 (file)
--- a/path.c
+++ b/path.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: path.c,v 1.2 1999/05/18 20:49:12 mdw Exp $
+ * $Id: path.c,v 1.3 1999/05/21 22:07:20 mdw Exp $
  *
  * Check a path for safety
  *
@@ -29,6 +29,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: path.c,v $
+ * Revision 1.3  1999/05/21 22:07:20  mdw
+ * Take advantage of new dynamic string macros.
+ *
  * Revision 1.2  1999/05/18 20:49:12  mdw
  * Use a dynamic string for reading symlinks.
  *
@@ -84,7 +87,7 @@ enum {
 
 static struct elt rootnode = { 0, 0, 0 }; /* Root of the list */
 static struct elt *sp;                 /* Stack pointer for list */
-static dstr d;                         /* Current path string */
+static dstr d = DSTR_INIT;             /* Current path string */
 
 /*----- Main code ---------------------------------------------------------*/
 
@@ -214,13 +217,12 @@ static void report(struct chkpath *cp, int what, int verbose,
   /* --- Format the message nicely --- */
 
   if (cp->cp_what & CP_REPORT) {
-    dstr d;
+    dstr d = DSTR_INIT;
     va_list ap;
     const char *q = msg;
     size_t n;
     int e = errno;
 
-    dstr_create(&d);
     va_start(ap, msg);
     if (verbose > 1)
       dstr_puts(&d, "[ ");
@@ -355,7 +357,7 @@ int path_check(const char *p, struct chkpath *cp)
   struct stat st;
   int bad = 0;
 
-  /* --- Initialise stack pointer and path string --- */
+  /* --- Initialize stack pointer and path string --- */
 
   sp = &rootnode;
   dstr_destroy(&d);
@@ -421,12 +423,11 @@ int path_check(const char *p, struct chkpath *cp)
     /* --- Handle symbolic links specially --- */
 
     if (S_ISLNK(st.st_mode)) {
-      dstr buf;
+      dstr buf = DSTR_INIT;
       int i;
 
       /* --- Resolve the link --- */
 
-      dstr_create(&buf);
       dstr_ensure(&buf, st.st_size + 1);
       if ((i = readlink(d.buf, buf.buf, buf.sz)) < 0) {
        report(cp, CP_ERROR, 0, d.buf, "can't readlink: %e");