remove the NOMALLOC macro from vpinit.c; even the rest of the legacy code depends on malloc
This commit is contained in:
parent
489ed93805
commit
40d2c44daf
@ -42,12 +42,7 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "constants.h"
|
#include "constants.h"
|
||||||
|
|
||||||
#if !falseMALLOC
|
|
||||||
char **vpdirs; /* directories (including current) in view path */
|
char **vpdirs; /* directories (including current) in view path */
|
||||||
#else
|
|
||||||
char vpdirs[MAXDIR][DIRLEN + 1];
|
|
||||||
# define MAXVPATH (MAXDIR * (DIRLEN + 1))
|
|
||||||
#endif
|
|
||||||
int vpndirs; /* number of directories in view path */
|
int vpndirs; /* number of directories in view path */
|
||||||
|
|
||||||
void vpinit(char *current_dir) {
|
void vpinit(char *current_dir) {
|
||||||
@ -56,19 +51,13 @@ void vpinit(char *current_dir) {
|
|||||||
char buf[MAXPATH + 1];
|
char buf[MAXPATH + 1];
|
||||||
int i;
|
int i;
|
||||||
char *s;
|
char *s;
|
||||||
#if falseMALLOC
|
|
||||||
char *node; /* view path node */
|
|
||||||
char vpathbuf[MAXVPATH + 1];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* if an existing directory list is to be updated, free it */
|
/* if an existing directory list is to be updated, free it */
|
||||||
if(current_dir != NULL && vpndirs > 0) {
|
if(current_dir != NULL && vpndirs > 0) {
|
||||||
#if !falseMALLOC
|
|
||||||
for(i = 0; i < vpndirs; ++i) {
|
for(i = 0; i < vpndirs; ++i) {
|
||||||
free(vpdirs[i]);
|
free(vpdirs[i]);
|
||||||
}
|
}
|
||||||
free(vpdirs);
|
free(vpdirs);
|
||||||
#endif
|
|
||||||
vpndirs = 0;
|
vpndirs = 0;
|
||||||
}
|
}
|
||||||
/* return if the directory list has been computed */
|
/* return if the directory list has been computed */
|
||||||
@ -88,7 +77,6 @@ void vpinit(char *current_dir) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
suffix = ¤t_dir[i];
|
suffix = ¤t_dir[i];
|
||||||
#if !falseMALLOC
|
|
||||||
|
|
||||||
/* count the nodes in the view path */
|
/* count the nodes in the view path */
|
||||||
vpndirs = 1;
|
vpndirs = 1;
|
||||||
@ -117,45 +105,4 @@ void vpinit(char *current_dir) {
|
|||||||
vpdirs[i] = s;
|
vpdirs[i] = s;
|
||||||
}
|
}
|
||||||
free(vpath);
|
free(vpath);
|
||||||
#else
|
|
||||||
/* don't change VPATH in the environment */
|
|
||||||
if(strlen(vpath) > MAXVPATH) {
|
|
||||||
(void)fprintf(stderr,
|
|
||||||
"%s: VPATH is longer than %d characters: %s\n",
|
|
||||||
argv0,
|
|
||||||
MAXVPATH,
|
|
||||||
vpath);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
(void)strcpy(vpathbuf, vpath);
|
|
||||||
s = vpathbuf;
|
|
||||||
|
|
||||||
/* convert the view path nodes to directories */
|
|
||||||
while(*s != '\0') {
|
|
||||||
|
|
||||||
/* get the next node */
|
|
||||||
node = s;
|
|
||||||
while(*s != '\0' && *++s != ':') {
|
|
||||||
if(*s == '\n') { *s = '\0'; }
|
|
||||||
}
|
|
||||||
if(*s != '\0') { *s++ = '\0'; }
|
|
||||||
/* ignore a directory that is too long */
|
|
||||||
if(strlen(node) + strlen(suffix) > DIRLEN) {
|
|
||||||
(void)fprintf(stderr,
|
|
||||||
"%s: VPATH directory is longer than %d characters: %s%s\n",
|
|
||||||
argv0,
|
|
||||||
DIRLEN,
|
|
||||||
node,
|
|
||||||
suffix);
|
|
||||||
} else if(vpndirs >= MAXDIR) {
|
|
||||||
(void)fprintf(stderr, "%s: VPATH has more than %d nodes\n", argv0, vpndirs);
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
/* create the view path directory */
|
|
||||||
(void)strcpy(vpdirs[vpndirs], node);
|
|
||||||
(void)strcat(vpdirs[vpndirs], suffix);
|
|
||||||
++vpndirs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user