diff options
Diffstat (limited to 'contrib/cvs/src/recurse.c')
-rw-r--r-- | contrib/cvs/src/recurse.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/contrib/cvs/src/recurse.c b/contrib/cvs/src/recurse.c index e93afbf..1cb2fbb 100644 --- a/contrib/cvs/src/recurse.c +++ b/contrib/cvs/src/recurse.c @@ -173,6 +173,7 @@ start_recursion (fileproc, filesdoneproc, direntproc, dirleaveproc, callerdat, seems to be handled somewhere (else) but why should it be a separate case? Needs investigation... */ just_subdirs = 1; + free (root); } #endif @@ -590,7 +591,7 @@ do_recursion (frame) /* Add it to our list. */ Node *n = getnode (); - n->type = UNKNOWN; + n->type = NT_UNKNOWN; n->key = xstrdup (this_root); if (addnode (root_directories, n)) @@ -1015,7 +1016,7 @@ but CVS uses %s for its own purposes; skipping %s directory", /* Add it to our list. */ Node *n = getnode (); - n->type = UNKNOWN; + n->type = NT_UNKNOWN; n->key = xstrdup (this_root); if (addnode (root_directories, n)) @@ -1132,6 +1133,7 @@ addfile (listp, dir, file) char *file; { Node *n; + List *fl; /* add this dir. */ addlist (listp, dir); @@ -1144,7 +1146,9 @@ addfile (listp, dir, file) } n->type = DIRS; - addlist ((List **) &n->data, file); + fl = (List *) n->data; + addlist (&fl, file); + n->data = (char *) fl; return; } @@ -1204,6 +1208,7 @@ unroll_files_proc (p, closure) } dirlist = save_dirlist; - filelist = NULL; + if (filelist) + dellist (&filelist); return(err); } |