version 1.150, 2008/07/21 14:19:24 |
version 1.151, 2008/10/06 22:09:21 |
|
|
break; |
break; |
case 'T': |
case 'T': |
if (argvalue == NULL) goto noarg; |
if (argvalue == NULL) goto noarg; |
tracefile = estrdup(argvalue); |
tracefile = bmake_strdup(argvalue); |
Var_Append(MAKEFLAGS, "-T", VAR_GLOBAL); |
Var_Append(MAKEFLAGS, "-T", VAR_GLOBAL); |
Var_Append(MAKEFLAGS, argvalue, VAR_GLOBAL); |
Var_Append(MAKEFLAGS, argvalue, VAR_GLOBAL); |
break; |
break; |
|
|
Punt("illegal (null) argument."); |
Punt("illegal (null) argument."); |
if (*argv[1] == '-' && !dashDash) |
if (*argv[1] == '-' && !dashDash) |
goto rearg; |
goto rearg; |
(void)Lst_AtEnd(create, estrdup(argv[1])); |
(void)Lst_AtEnd(create, bmake_strdup(argv[1])); |
} |
} |
|
|
return; |
return; |
Line 588 Main_ParseArgLine(char *line) |
|
Line 588 Main_ParseArgLine(char *line) |
|
if (!*line) |
if (!*line) |
return; |
return; |
|
|
buf = emalloc(len = strlen(line) + strlen(argv0) + 2); |
buf = bmake_malloc(len = strlen(line) + strlen(argv0) + 2); |
(void)snprintf(buf, len, "%s %s", argv0, line); |
(void)snprintf(buf, len, "%s %s", argv0, line); |
if (p1) |
if (p1) |
free(p1); |
free(p1); |
Line 943 main(int argc, char **argv) |
|
Line 943 main(int argc, char **argv) |
|
if (syspath == NULL || *syspath == '\0') |
if (syspath == NULL || *syspath == '\0') |
syspath = defsyspath; |
syspath = defsyspath; |
else |
else |
syspath = estrdup(syspath); |
syspath = bmake_strdup(syspath); |
|
|
for (start = syspath; *start != '\0'; start = cp) { |
for (start = syspath; *start != '\0'; start = cp) { |
for (cp = start; *cp != '\0' && *cp != ':'; cp++) |
for (cp = start; *cp != '\0' && *cp != ':'; cp++) |
Line 1159 ReadMakefile(ClientData p, ClientData q |
|
Line 1159 ReadMakefile(ClientData p, ClientData q |
|
char *fname = p; /* makefile to read */ |
char *fname = p; /* makefile to read */ |
int fd; |
int fd; |
size_t len = MAXPATHLEN; |
size_t len = MAXPATHLEN; |
char *name, *path = emalloc(len); |
char *name, *path = bmake_malloc(len); |
int setMAKEFILE; |
int setMAKEFILE; |
|
|
if (!strcmp(fname, "-")) { |
if (!strcmp(fname, "-")) { |
Line 1172 ReadMakefile(ClientData p, ClientData q |
|
Line 1172 ReadMakefile(ClientData p, ClientData q |
|
if (strcmp(curdir, objdir) && *fname != '/') { |
if (strcmp(curdir, objdir) && *fname != '/') { |
size_t plen = strlen(curdir) + strlen(fname) + 2; |
size_t plen = strlen(curdir) + strlen(fname) + 2; |
if (len < plen) |
if (len < plen) |
path = erealloc(path, len = 2 * plen); |
path = bmake_realloc(path, len = 2 * plen); |
|
|
(void)snprintf(path, len, "%s/%s", curdir, fname); |
(void)snprintf(path, len, "%s/%s", curdir, fname); |
fd = open(path, O_RDONLY); |
fd = open(path, O_RDONLY); |
Line 1184 ReadMakefile(ClientData p, ClientData q |
|
Line 1184 ReadMakefile(ClientData p, ClientData q |
|
/* If curdir failed, try objdir (ala .depend) */ |
/* If curdir failed, try objdir (ala .depend) */ |
plen = strlen(objdir) + strlen(fname) + 2; |
plen = strlen(objdir) + strlen(fname) + 2; |
if (len < plen) |
if (len < plen) |
path = erealloc(path, len = 2 * plen); |
path = bmake_realloc(path, len = 2 * plen); |
(void)snprintf(path, len, "%s/%s", objdir, fname); |
(void)snprintf(path, len, "%s/%s", objdir, fname); |
fd = open(path, O_RDONLY); |
fd = open(path, O_RDONLY); |
if (fd != -1) { |
if (fd != -1) { |
Line 1535 Cmd_Exec(const char *cmd, const char **e |
|
Line 1535 Cmd_Exec(const char *cmd, const char **e |
|
} |
} |
return res; |
return res; |
bad: |
bad: |
res = emalloc(1); |
res = bmake_malloc(1); |
*res = '\0'; |
*res = '\0'; |
return res; |
return res; |
} |
} |
Line 1666 Finish(int errors) |
|
Line 1666 Finish(int errors) |
|
Fatal("%d error%s", errors, errors == 1 ? "" : "s"); |
Fatal("%d error%s", errors, errors == 1 ? "" : "s"); |
} |
} |
|
|
#ifndef HAVE_EMALLOC |
#ifndef USE_EMALLOC |
/* |
/* |
* emalloc -- |
* enomem -- |
|
* die when out of memory. |
|
*/ |
|
static void |
|
enomem(void) |
|
{ |
|
(void)fprintf(stderr, "%s: %s.\n", progname, strerror(errno)); |
|
exit(2); |
|
} |
|
|
|
/* |
|
* bmake_malloc -- |
* malloc, but die on error. |
* malloc, but die on error. |
*/ |
*/ |
void * |
void * |
emalloc(size_t len) |
bmake_malloc(size_t len) |
{ |
{ |
void *p; |
void *p; |
|
|
Line 1682 emalloc(size_t len) |
|
Line 1693 emalloc(size_t len) |
|
} |
} |
|
|
/* |
/* |
* estrdup -- |
* bmake_strdup -- |
* strdup, but die on error. |
* strdup, but die on error. |
*/ |
*/ |
char * |
char * |
estrdup(const char *str) |
bmake_strdup(const char *str) |
{ |
{ |
|
size_t len; |
char *p; |
char *p; |
|
|
if ((p = strdup(str)) == NULL) |
len = strlen(str) + 1; |
|
if ((p = malloc(len)) == NULL) |
enomem(); |
enomem(); |
return(p); |
return memcpy(p, str, len); |
} |
} |
|
|
/* |
/* |
* estrndup -- |
* bmake_strndup -- |
* strndup, but die on error. |
* strndup, but die on error. |
*/ |
*/ |
char * |
char * |
estrndup(const char *str, size_t len) |
bmake_strndup(const char *str, size_t max_len) |
{ |
{ |
|
size_t len; |
char *p; |
char *p; |
|
|
if ((p = strndup(str, len)) == NULL) |
if (str == NULL) |
enomem(); |
return NULL; |
|
|
|
len = strlen(str); |
|
if (len > max_len) |
|
len = max_len; |
|
p = bmake_malloc(len + 1); |
|
memcpy(p, str, len); |
|
p[len] = '\0'; |
|
|
return(p); |
return(p); |
} |
} |
|
|
/* |
/* |
* erealloc -- |
* bmake_realloc -- |
* realloc, but die on error. |
* realloc, but die on error. |
*/ |
*/ |
void * |
void * |
erealloc(void *ptr, size_t size) |
bmake_realloc(void *ptr, size_t size) |
{ |
{ |
if ((ptr = realloc(ptr, size)) == NULL) |
if ((ptr = realloc(ptr, size)) == NULL) |
enomem(); |
enomem(); |
return(ptr); |
return(ptr); |
} |
} |
|
|
/* |
|
* enomem -- |
|
* die when out of memory. |
|
*/ |
|
void |
|
enomem(void) |
|
{ |
|
(void)fprintf(stderr, "%s: %s.\n", progname, strerror(errno)); |
|
exit(2); |
|
} |
|
#endif |
#endif |
|
|
/* |
/* |