/* -*-c-*-
*
- * $Id: checkpath.c,v 1.2 1999/05/18 20:49:12 mdw Exp $
+ * $Id: checkpath.c,v 1.3 1999/05/21 22:07:20 mdw Exp $
*
* Check a path for safety
*
/*----- Revision history --------------------------------------------------*
*
* $Log: checkpath.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.
*
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 ---------------------------------------------------------*/
/* --- 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, "[ ");
struct stat st;
int bad = 0;
- /* --- Initialise stack pointer and path string --- */
+ /* --- Initialize stack pointer and path string --- */
sp = &rootnode;
dstr_destroy(&d);
/* --- 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");
/* -*-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
*
/*----- 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.
*
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 ---------------------------------------------------------*/
/* --- 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, "[ ");
struct stat st;
int bad = 0;
- /* --- Initialise stack pointer and path string --- */
+ /* --- Initialize stack pointer and path string --- */
sp = &rootnode;
dstr_destroy(&d);
/* --- 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");
/* -*-c-*-
*
- * $Id: tmpdir.c,v 1.2 1999/05/19 20:37:28 mdw Exp $
+ * $Id: tmpdir.c,v 1.3 1999/05/21 22:07:20 mdw Exp $
*
* Choose and check temporary directories
*
/*----- Revision history --------------------------------------------------*
*
* $Log: tmpdir.c,v $
+ * Revision 1.3 1999/05/21 22:07:20 mdw
+ * Take advantage of new dynamic string macros.
+ *
* Revision 1.2 1999/05/19 20:37:28 mdw
* Track gratuitous change in mdwopt interface.
*
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" };
char *p, *q;
char *qq;
- dstr d;
+ dstr d = DSTR_INIT;
int createflag = 1;
/* --- Make sure the parent directory is sane --- *
/* --- See whether the trivial version will work --- */
- dstr_create(&d);
dstr_putf(&d, "%s/%s", parent, base);
if (ok(d.buf, &createflag))
goto good;