PERFORCE change 179028 for review
Julien Laffaye
jlaffaye at FreeBSD.org
Tue Jun 1 00:24:36 UTC 2010
http://p4web.freebsd.org/@@179028?ac=10
Change 179028 by jlaffaye at gsoc on 2010/06/01 00:24:08
Integrate from gcooper's branch.
Affected files ...
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/file.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/global.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/match.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/pen.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/pkg.h#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/plist.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/lib/libpkg/url.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/usr.sbin/pkg_install/add/perform.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/usr.sbin/pkg_install/create/perform.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/usr.sbin/pkg_install/delete/perform.c#2 integrate
.. //depot/projects/soc2010/pkg_complete/usr.sbin/pkg_install/info/perform.c#2 integrate
Differences ...
==== //depot/projects/soc2010/pkg_complete/lib/libpkg/file.c#2 (text+ko) ====
@@ -269,32 +269,29 @@
* Return the number of bytes successfully written out to str or -1 on
* failure.
*/
-size_t
+off_t
write_file(const char *name, const char *str)
{
- FILE *fp = NULL;
+ int fd = -1;
+ int serrno;
off_t written_len = -1;
size_t len;
- int serrno;
errno = 0;
- fp = fopen(name, "w");
- if (fp != NULL) {
+ len = strlen(str);
- len = strlen(str);
- written_len = fwrite(str, 1, len, fp);
+ if ((fd = open(name, O_WRONLY | O_CREAT)) != -1) {
- if (fp != NULL) {
- serrno = errno;
- (void) fclose(fp);
- if (serrno != 0)
- errno = serrno;
- }
+ written_len = write(fd, str, len);
+ serrno = errno;
+ (void) close(fd);
+ if (serrno != 0)
+ errno = serrno;
}
- return (size_t) (errno == 0 && written_len > 0 ? written_len : -1);
+ return (off_t) (errno == 0 && written_len > 0 ? written_len : -1);
}
@@ -335,10 +332,8 @@
ARCHIVE_EXTRACT_FFLAGS|ARCHIVE_EXTRACT_XATTR)
/*
- * Unpack a single file, denoted by file, to a buffer; this call uses
- * unpack_to_fd to first open the file, and once that has been completed
- * it opens the file and proceeds to read it into the buffer which will
- * need to be freed by the user at a later date.
+ * Unpack a single file, denoted by file, to a buffer. It proceeds to read it
+ * into the buffer which will need to be freed by the user at a later date.
*
* Returns an address to a buffer with the contents of *file if successful, or
* returns NULL on failure.
@@ -347,41 +342,100 @@
unpack_to_buffer(const char *pkg, const char *file)
{
- struct stat sb;
+ struct archive *archive;
+ struct archive_entry *archive_entry;
+ Boolean found_match = FALSE;
+
+ int64_t buf_size;
+
char *buf = NULL;
- int fd;
- int serrno;
+ const char *entry_pathname = NULL;
+ const char *error = NULL;
+ int archive_fd = -1;
+ int r;
+
+ errno = 0;
+
+ if ((archive = archive_read_new()) != NULL) {
+
+ if (archive_read_support_compression_all(archive)
+ != ARCHIVE_OK ||
+ archive_read_support_format_tar(archive) != ARCHIVE_OK)
+ error = archive_error_string(archive);
+ /*
+ * Avoid potential race conditions with
+ * archive_read_open_filename(3), by opening the file
+ * beforehand.
+ */
+ else if (pkg == NULL)
+ archive_fd = fileno(stdin);
+ else
+ archive_fd = open(pkg, O_RDONLY);
+
+ }
+
+ /* The initial open failed or archive(3) failed to open the file. */
+ if (archive_fd == -1 || archive == NULL) ;
+ /* archive(3) failed to open the file descriptor. */
+ else if (archive_read_open_fd(archive, archive_fd,
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
+ error = archive_error_string(archive);
+ else
+ while (error == NULL && found_match == FALSE &&
+ (r = archive_read_next_header(archive, &archive_entry)) ==
+ ARCHIVE_OK) {
+
+ entry_pathname = archive_entry_pathname(archive_entry);
+
+ if (strncmp(file, entry_pathname, PATH_MAX) == 0) {
+
+ /*
+ * Regardless of whether or not extract passes,
+ * we found our target file so let's exit
+ * quickly because the underlying issue is most
+ * likely unrecoverable.
+ */
+ found_match = TRUE;
+
+ buf_size = archive_entry_size(archive_entry);
+
+ if (buf_size == 0)
+ errno = EINVAL;
+ else {
+
+ buf = malloc(sizeof(char)*buf_size);
+
+ if (buf == NULL)
+ error = strerror(errno);
+ else {
- if ((fd = unpack_to_fd(pkg, file)) != -1) {
+ r = archive_read_data(archive,
+ buf, buf_size);
- if (fstat(fd, &sb) == 0) {
+ if (r != ARCHIVE_OK)
+ error = archive_error_string(archive);
- /*
- * User either passed in a non-NULL value or we need
- * to malloc on the fly and let the user deal with it
- * later.
- */
- buf = malloc(sb.st_size);
- if (buf != NULL) {
+ }
- if (read(fd, buf, sb.st_size) != sb.st_size) {
- free(buf);
- buf = NULL;
}
}
}
- }
+
+#if 0
+ /*
+ * This should be stored in a global buffer or something similar that's
+ * retrievable via pkg_error or something of that flavor.
+ */
+ if (errno != 0)
+ error = strerror(errno);
+#endif
- if (0 <= fd) {
- serrno = errno;
- close(fd);
- if (serrno != 0)
- errno = serrno;
- }
+ if (archive != NULL)
+ archive_read_finish(archive);
- return buf;
+ return (buf);
}
@@ -402,7 +456,8 @@
Boolean extract_whole_archive = FALSE;
const char *entry_pathname = NULL;
const char *error = NULL;
- int archive_fd = -1, r;
+ int archive_fd = -1;
+ int r;
errno = 0;
@@ -490,9 +545,8 @@
const char *entry_pathname = NULL;
const char *error = NULL;
+ int archive_fd = -1, r;
int fd = -1;
- /* int fd = -1; */
- int archive_fd = -1, r;
errno = 0;
@@ -563,7 +617,7 @@
if (0 <= archive_fd)
close(archive_fd);
- return fd;
+ return (fd);
}
==== //depot/projects/soc2010/pkg_complete/lib/libpkg/global.c#2 (text+ko) ====
@@ -28,4 +28,4 @@
Boolean Quiet = FALSE;
Boolean Fake = FALSE;
Boolean Force = FALSE;
-int Verbose = 0; /* Allow multiple levels of verbose. */
+int Verbose = 0; /* Allow multiple levels of verbose. */
==== //depot/projects/soc2010/pkg_complete/lib/libpkg/match.c#2 (text+ko) ====
@@ -57,136 +57,154 @@
char **
matchinstalled(match_t MatchType, char **patterns, int *retval)
{
- int i, errcode, len;
- char *matched;
- const char *paths[2] = {LOG_DIR, NULL};
- static struct store *store = NULL;
- FTS *ftsp;
- FTSENT *f;
- Boolean *lmatched = NULL;
+ static struct store *store = NULL;
+ FTS *ftsp;
+ FTSENT *f;
+ char *matched;
+ const char *paths[2] = {LOG_DIR, NULL};
+ int i;
+ int errcode;
+ int len;
+ Boolean *lmatched = NULL;
+
+ store = storecreate(store);
+ if (store == NULL) {
+ if (retval != NULL)
+ *retval = 1;
+ return (NULL);
+ }
- store = storecreate(store);
- if (store == NULL) {
if (retval != NULL)
- *retval = 1;
- return NULL;
- }
+ *retval = 0;
+
+ if (!isdir(paths[0])) {
+ if (retval != NULL)
+ *retval = 1;
+ return (NULL);
+ }
+
+ /* Count number of patterns */
+ if (patterns != NULL) {
- if (retval != NULL)
- *retval = 0;
+ for (len = 0; patterns[len]; len++) ;
- if (!isdir(paths[0])) {
- if (retval != NULL)
- *retval = 1;
- return NULL;
- /* Not reached */
- }
+ lmatched = alloca(sizeof(*lmatched) * len);
+ if (lmatched == NULL) {
+ warn("%s(): alloca() failed", __func__);
+ if (retval != NULL)
+ *retval = 1;
+ return (NULL);
+ }
- /* Count number of patterns */
- if (patterns != NULL) {
- for (len = 0; patterns[len]; len++) {}
- lmatched = alloca(sizeof(*lmatched) * len);
- if (lmatched == NULL) {
- warnx("%s(): alloca() failed", __func__);
- if (retval != NULL)
- *retval = 1;
- return NULL;
- }
- } else
- len = 0;
+ } else
+ len = 0;
- for (i = 0; i < len; i++)
- lmatched[i] = FALSE;
+ for (i = 0; i < len; i++)
+ lmatched[i] = FALSE;
+
+ ftsp = fts_open((char * const *)(uintptr_t)paths,
+ FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, fname_cmp);
+
+ if (ftsp != NULL) {
+
+ while ((f = fts_read(ftsp)) != NULL) {
+
+ if (f->fts_info == FTS_D && f->fts_level == 1) {
+
+ fts_set(ftsp, f, FTS_SKIP);
+ matched = NULL;
+ errcode = 0;
+
+ if (MatchType == MATCH_ALL)
+ matched = f->fts_name;
+ else
+ for (i = 0; patterns[i]; i++) {
+ errcode = pattern_match(
+ MatchType, patterns[i],
+ f->fts_name);
+ if (errcode == 1) {
+ matched = f->fts_name;
+ lmatched[i] = TRUE;
+ errcode = 0;
+ }
+ if (matched != NULL ||
+ errcode != 0)
+ break;
+ }
+
+ if (errcode == 0 && matched != NULL)
+ errcode = storeappend(store, matched);
+ if (errcode != 0) {
+ if (retval != NULL)
+ *retval = 1;
+ return (NULL);
+ }
- ftsp = fts_open((char * const *)(uintptr_t)paths, FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, fname_cmp);
- if (ftsp != NULL) {
- while ((f = fts_read(ftsp)) != NULL) {
- if (f->fts_info == FTS_D && f->fts_level == 1) {
- fts_set(ftsp, f, FTS_SKIP);
- matched = NULL;
- errcode = 0;
- if (MatchType == MATCH_ALL)
- matched = f->fts_name;
- else
- for (i = 0; patterns[i]; i++) {
- errcode = pattern_match(MatchType, patterns[i], f->fts_name);
- if (errcode == 1) {
- matched = f->fts_name;
- lmatched[i] = TRUE;
- errcode = 0;
}
- if (matched != NULL || errcode != 0)
- break;
- }
- if (errcode == 0 && matched != NULL)
- errcode = storeappend(store, matched);
- if (errcode != 0) {
- if (retval != NULL)
- *retval = 1;
- return NULL;
- /* Not reached */
+
}
- }
+
+ fts_close(ftsp);
+
}
- fts_close(ftsp);
- }
- if (MatchType == MATCH_GLOB) {
- for (i = 0; i < len; i++)
- if (lmatched[i] == FALSE)
- storeappend(store, patterns[i]);
- }
+ /* XXX (gcooper): check for return code from storeappend here? */
+ if (MatchType == MATCH_GLOB)
+ for (i = 0; i < len; i++)
+ if (lmatched[i] == FALSE)
+ storeappend(store, patterns[i]);
- if (store->used == 0)
- return NULL;
- else
- return store->store;
+ if (store->used == 0)
+ return (NULL);
+ else
+ return (store->store);
}
int
pattern_match(match_t MatchType, char *pattern, const char *pkgname)
{
- int errcode = 0;
- const char *fname = pkgname;
- char basefname[PATH_MAX];
- char condchar = '\0';
- char *condition;
+ char basefname[PATH_MAX];
+ char condchar = '\0';
+ char *condition;
+ const char *ch;
+ const char *fname = pkgname;
+ int errcode = 0;
- /* do we have an appended condition? */
- condition = strpbrk(pattern, "<>=");
- if (condition) {
- const char *ch;
- /* yes, isolate the pattern from the condition ... */
- if (condition > pattern && condition[-1] == '!')
- condition--;
- condchar = *condition;
- *condition = '\0';
- /* ... and compare the name without version */
- ch = strrchr(fname, '-');
- if (ch && ch - fname < PATH_MAX) {
- strlcpy(basefname, fname, ch - fname + 1);
- fname = basefname;
+ /* do we have an appended condition? */
+ condition = strpbrk(pattern, "<>=");
+ if (condition) {
+ /* yes, isolate the pattern from the condition ... */
+ if (condition > pattern && condition[-1] == '!')
+ condition--;
+ condchar = *condition;
+ *condition = '\0';
+ /* ... and compare the name without version */
+ ch = strrchr(fname, '-');
+ if (ch != NULL && ch - fname < PATH_MAX) {
+ strlcpy(basefname, fname, ch - fname + 1);
+ fname = basefname;
+ }
}
- }
- switch (MatchType) {
- case MATCH_EREGEX:
- case MATCH_REGEX:
- errcode = rex_match(pattern, fname, MatchType == MATCH_EREGEX ? 1 : 0);
- break;
- case MATCH_NGLOB:
- case MATCH_GLOB:
- errcode = (csh_match(pattern, fname, 0) == 0) ? 1 : 0;
- break;
- case MATCH_EXACT:
- errcode = (strcmp(pattern, fname) == 0) ? 1 : 0;
- break;
- case MATCH_ALL:
- errcode = 1;
- break;
- default:
- break;
- }
+ switch (MatchType) {
+ case MATCH_EREGEX:
+ case MATCH_REGEX:
+ errcode = rex_match(pattern, fname,
+ MatchType == MATCH_EREGEX ? 1 : 0);
+ break;
+ case MATCH_NGLOB:
+ case MATCH_GLOB:
+ errcode = (csh_match(pattern, fname, 0) == 0) ? 1 : 0;
+ break;
+ case MATCH_EXACT:
+ errcode = (strcmp(pattern, fname) == 0) ? 1 : 0;
+ break;
+ case MATCH_ALL:
+ errcode = 1;
+ break;
+ default:
+ break;
+ }
/* loop over all appended conditions */
while (condition) {
@@ -366,53 +384,53 @@
int
isinstalledpkg(const char *name)
{
- int result;
- char *buf, *buf2;
- struct iip_memo *memo;
+ struct iip_memo *memo;
+ int result;
+ char *buf, *buf2;
+
+ LIST_FOREACH(memo, &iip_memo, iip_link) {
+ if (strcmp(memo->iip_name, name) == 0)
+ return (memo->iip_result);
+ }
- LIST_FOREACH(memo, &iip_memo, iip_link) {
- if (strcmp(memo->iip_name, name) == 0)
- return memo->iip_result;
- }
-
- buf2 = NULL;
- asprintf(&buf, "%s/%s", LOG_DIR, name);
- if (buf == NULL)
- goto errout;
- if (!isdir(buf) || access(buf, R_OK) == -1) {
- result = 0;
- } else {
- asprintf(&buf2, "%s/%s", buf, CONTENTS_FNAME);
- if (buf2 == NULL)
- goto errout;
+ buf2 = NULL;
+ asprintf(&buf, "%s/%s", LOG_DIR, name);
+ if (buf == NULL)
+ goto errout;
+ if (!isdir(buf) || access(buf, R_OK) == -1)
+ result = 0;
+ else {
+ asprintf(&buf2, "%s/%s", buf, CONTENTS_FNAME);
+ if (buf2 == NULL)
+ goto errout;
- if (!isfile(buf2) || access(buf2, R_OK) == -1)
- result = -1;
- else
- result = 1;
- }
+ if (!isfile(buf2) || access(buf2, R_OK) == -1)
+ result = -1;
+ else
+ result = 1;
+ }
- free(buf);
- buf = strdup(name);
- if (buf == NULL)
- goto errout;
- free(buf2);
- buf2 = NULL;
+ free(buf);
+ buf = strdup(name);
+ if (buf == NULL)
+ goto errout;
+ free(buf2);
+ buf2 = NULL;
- memo = malloc(sizeof *memo);
- if (memo == NULL)
- goto errout;
- memo->iip_name = buf;
- memo->iip_result = result;
- LIST_INSERT_HEAD(&iip_memo, memo, iip_link);
- return result;
+ memo = malloc(sizeof *memo);
+ if (memo == NULL)
+ goto errout;
+ memo->iip_name = buf;
+ memo->iip_result = result;
+ LIST_INSERT_HEAD(&iip_memo, memo, iip_link);
+ return (result);
errout:
- if (buf != NULL)
- free(buf);
- if (buf2 != NULL)
- free(buf2);
- return -1;
+ if (buf != NULL)
+ free(buf);
+ if (buf2 != NULL)
+ free(buf2);
+ return (-1);
}
/*
@@ -423,28 +441,30 @@
static int
rex_match(const char *pattern, const char *pkgname, int extended)
{
- char errbuf[128];
- int errcode;
- int retval;
- regex_t rex;
+ char errbuf[128];
+ int errcode;
+ int retval;
+ regex_t rex;
+
+ retval = 0;
- retval = 0;
+ errcode = regcomp(&rex, pattern,
+ (extended ? REG_EXTENDED : REG_BASIC) | REG_NOSUB);
+ if (errcode == 0)
+ errcode = regexec(&rex, pkgname, 0, NULL, 0);
- errcode = regcomp(&rex, pattern, (extended ? REG_EXTENDED : REG_BASIC) | REG_NOSUB);
- if (errcode == 0)
- errcode = regexec(&rex, pkgname, 0, NULL, 0);
+ if (errcode == 0)
+ retval = 1;
+ else if (errcode != REG_NOMATCH) {
+ regerror(errcode, &rex, errbuf, sizeof(errbuf));
+ warnx("%s: %s", pattern, errbuf);
+ retval = -1;
+ }
- if (errcode == 0) {
- retval = 1;
- } else if (errcode != REG_NOMATCH) {
- regerror(errcode, &rex, errbuf, sizeof(errbuf));
- warnx("%s: %s", pattern, errbuf);
- retval = -1;
- }
+ regfree(&rex);
- regfree(&rex);
+ return (retval);
- return retval;
}
/*
@@ -455,89 +475,106 @@
static int
csh_match(const char *pattern, const char *string, int flags)
{
- int ret = FNM_NOMATCH;
+
+ Boolean quoted;
+
+ const char *current = NULL;
+ const char *eb;
+ const char *nextchoice = pattern;
+ const char *pos;
+ const char *postfix;
+ char buf[FILENAME_MAX];
+
+ int prefixlen = -1;
+ int currentlen = 0;
+ int level = 0;
+ int ret = FNM_NOMATCH;
+
+ do {
+
+ pos = nextchoice;
+ postfix = NULL;
+
+ quoted = FALSE;
+
+ nextchoice = NULL;
+
+ do {
+
+ if (*pos == '\0')
+ postfix = pos;
+ else if (quoted == TRUE)
+ quoted = FALSE;
+ else {
+
+ switch (*pos) {
+ case '{':
+ ++level;
+ if (level == 1) {
+ current = pos + 1;
+ prefixlen = pos - pattern;
+ }
+ break;
+ case ',':
+ if (level == 1 && !nextchoice) {
+ nextchoice = pos + 1;
+ currentlen = pos - current;
+ }
+ break;
+ case '}':
+ if (level == 1) {
+ postfix = pos+1;
+ if (!nextchoice) {
+ currentlen =
+ pos - current;
+ }
+ }
+ level--;
+ break;
+ case '[':
+ eb = pos + 1;
+ if (*eb == '!' || *eb == '^')
+ eb++;
+ if (*eb == ']')
+ eb++;
+ while (*eb && *eb != ']')
+ eb++;
+ if (*eb)
+ pos = eb;
+ break;
+ case '\\':
+ quoted = TRUE;
+ break;
+ default:
+ break;
+ }
+
+ }
+ pos++;
- const char *nextchoice = pattern;
- const char *current = NULL;
+ } while (postfix == NULL);
- int prefixlen = -1;
- int currentlen = 0;
+ if (current) {
- int level = 0;
+ snprintf(buf, sizeof(buf), "%.*s%.*s%s",
+ prefixlen, pattern, currentlen, current, postfix);
- do {
- const char *pos = nextchoice;
- const char *postfix = NULL;
+ ret = csh_match(buf, string, flags);
- Boolean quoted = FALSE;
+ if (ret) {
+ current = nextchoice;
+ level = 1;
+ } else
+ current = NULL;
- nextchoice = NULL;
+ } else
+ ret = fnmatch(pattern, string, flags);
- do {
- const char *eb;
- if (!*pos) {
- postfix = pos;
- } else if (quoted) {
- quoted = FALSE;
- } else {
- switch (*pos) {
- case '{':
- ++level;
- if (level == 1) {
- current = pos+1;
- prefixlen = pos-pattern;
- }
- break;
- case ',':
- if (level == 1 && !nextchoice) {
- nextchoice = pos+1;
- currentlen = pos-current;
- }
- break;
- case '}':
- if (level == 1) {
- postfix = pos+1;
- if (!nextchoice)
- currentlen = pos-current;
- }
- level--;
- break;
- case '[':
- eb = pos+1;
- if (*eb == '!' || *eb == '^')
- eb++;
- if (*eb == ']')
- eb++;
- while(*eb && *eb != ']')
- eb++;
- if (*eb)
- pos=eb;
- break;
- case '\\':
- quoted = TRUE;
- break;
- default:
- ;
- }
- }
- pos++;
- } while (!postfix);
+ } while (current);
- if (current) {
- char buf[FILENAME_MAX];
- snprintf(buf, sizeof(buf), "%.*s%.*s%s", prefixlen, pattern, currentlen, current, postfix);
- ret = csh_match(buf, string, flags);
- if (ret) {
- current = nextchoice;
- level = 1;
- } else
- current = NULL;
- } else
- ret = fnmatch(pattern, string, flags);
- } while (current);
+ return (ret);
- return ret;
}
/*
@@ -547,57 +584,74 @@
struct store *
storecreate(struct store *store)
{
- int i;
+ int i;
- if (store == NULL) {
- store = malloc(sizeof *store);
if (store == NULL) {
- warnx("%s(): malloc() failed", __func__);
- return NULL;
+ store = malloc(sizeof *store);
+ if (store == NULL) {
+ warn("%s(): malloc() failed", __func__);
+ return (NULL);
+ }
+ store->currlen = 0;
+ store->store = NULL;
+ } else if (store->store != NULL) {
+ /* Free previously allocated memory */
+ for (i = 0; store->store[i] != NULL; i++)
+ free(store->store[i]);
+ store->store[0] = NULL;
}
- store->currlen = 0;
- store->store = NULL;
- } else if (store->store != NULL) {
- /* Free previously allocated memory */
- for (i = 0; store->store[i] != NULL; i++)
- free(store->store[i]);
- store->store[0] = NULL;
- }
- store->used = 0;
+ store->used = 0;
- return store;
+ return (store);
}
/*
* Append specified element to the provided store.
+ *
+ * Return 0 on success, return 1 on error.
*/
static int
storeappend(struct store *store, const char *item)
{
- if (store->used + 2 > store->currlen) {
- store->currlen += 16;
- store->store = reallocf(store->store,
- store->currlen * sizeof(*(store->store)));
- if (store->store == NULL) {
- store->currlen = 0;
- warnx("%s(): reallocf() failed", __func__);
- return 1;
+ int retcode = 0;
+
+ if (store->used + 2 > store->currlen) {
+
+ store->currlen += 16;
+ store->store = reallocf(store->store,
+ store->currlen * sizeof(*(store->store)));
+
+ if (store->store == NULL) {
+ store->currlen = 0;
+ warn("%s(): reallocf() failed", __func__);
+ retcode = -1;
+ }
+
+ }
+
+ if (retcode == 0) {
+
+ asprintf(&(store->store[store->used]), "%s", item);
+ /*
+ * XXX (gcooper): should the entire store be invalidated here,
+ * i.e. free store->store?
+ */
+ if (store->store[store->used] == NULL) {
+ warn("%s(): malloc() failed", __func__);
+ retcode = -1;
+ } else {
+ store->used++;
+ store->store[store->used] = NULL;
+ }
+
}
- }
- asprintf(&(store->store[store->used]), "%s", item);
- if (store->store[store->used] == NULL) {
- warnx("%s(): malloc() failed", __func__);
- return 1;
- }
- store->used++;
- store->store[store->used] = NULL;
+ return (retcode);
- return 0;
}
static int
fname_cmp(const FTSENT * const *a, const FTSENT * const *b)
{
- return strcmp((*a)->fts_name, (*b)->fts_name);
+ return (strcmp((*a)->fts_name, (*b)->fts_name));
}
==== //depot/projects/soc2010/pkg_complete/lib/libpkg/pen.c#2 (text+ko) ====
@@ -37,7 +37,7 @@
char *
where_playpen(void)
{
- return PenLocation;
+ return (PenLocation);
}
/* Find a good place to play. */
@@ -49,7 +49,7 @@
if (pen[0] != '\0' && isdir(dirname(pen)) == TRUE &&
(min_free(dirname(pen)) >= sz))
- return pen;
+ return (pen);
else if ((cp = getenv("PKG_TMPDIR")) != NULL && stat(cp, &sb) == 0 &&
(min_free(cp) >= sz))
sprintf(pen, "%s/instmp.XXXXXX", cp);
@@ -65,9 +65,9 @@
strcpy(pen, "/usr/tmp/instmp.XXXXXX");
else {
errno = ENOSPC;
- return NULL;
+ return (NULL);
}
- return pen;
+ return (pen);
}
#define MAX_STACK 20
@@ -81,7 +81,7 @@
errx(2, "%s: stack overflow.\n", __func__);
pstack[pdepth] = strdup(pen);
- return pstack[pdepth];
+ return (pstack[pdepth]);
}
static void
@@ -118,7 +118,7 @@
}
- return pen_location;
+ return (pen_location);
}
@@ -155,7 +155,7 @@
}
- return rc;
+ return (rc);
}
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list