Date: Thu, 11 Jun 2009 05:17:04 GMT From: David Forsythe <dforsyth@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 164069 for review Message-ID: <200906110517.n5B5H4Or055869@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=164069 Change 164069 by dforsyth@squirrel on 2009/06/11 05:16:06 Working on pkgdb overhaul. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#13 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#5 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.c#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_hierdb_pkgdb_sub.h#1 add .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.h#2 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#4 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#13 (text+ko) ==== @@ -13,6 +13,16 @@ /* Create a new pkg. */ struct pkg * +pkg_new() +{ + struct pkg *p; + + p = calloc(1, sizeof(*p)); + return (p); +} + +#if 0 +struct pkg * pkg_new(const char *ident) { struct pkg *p; @@ -34,6 +44,7 @@ return (p); } +#endif /* TODO: Can't copy string for some _set_ functions and then just point to * the passed pkg_plist for _set_pkg_plist. */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_plist.c#8 (text+ko) ==== @@ -100,6 +100,7 @@ pl->text = textp; + /* XXX: Use fgets(), dummy. */ pkg_plist_pkg_file_list_init(pl); set_parse_state_default(&st); for (p = textp; *p != '\0'; p++) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_private.h#8 (text+ko) ==== @@ -13,8 +13,6 @@ char *comment; /* Mmmmm, should be 70 or less, right? */ struct pkg_plist *plist; - int legal; /* Soon to be used for pkg verification. */ - TAILQ_ENTRY(pkg) next; }; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#5 (text+ko) ==== @@ -10,7 +10,8 @@ int subdir_sel(struct dirent *ent) { - if (strcmp(ent->d_name, ".") != 0 && strcmp(ent->d_name, "..") != 0) + if (strcmp(ent->d_name, ".") != 0 && strcmp(ent->d_name, "..") != 0 && + (ent->d_type & DT_DIR) && !(ent->d_type & DT_LNK)) return (1); return (0); } @@ -18,7 +19,7 @@ char * path_strdup(const char *path) { - int l; + size_t l; char *new_path; l = strlen(path); @@ -35,6 +36,29 @@ return (new_path); } +char * +path_build(const char *prefix, const char *suffix) +{ + size_t l; + int slash; + char *new_path; + + slash = 0; + l = strlen(prefix); + if (prefix[l - 1] != '/') + slash = 1; + l += strlen(suffix) + slash; + new_path = malloc(l + 1); + if (new_path == NULL) + return (NULL); + strcpy(new_path, prefix); + if (slash) + strcat(new_path, '/'); + strcat(new_path, suffix); + + return (new_path); +} + void argument_rage_quit(const char *function, const char *message, int ret) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#5 (text+ko) ==== @@ -6,7 +6,6 @@ int subdir_sel(struct dirent *ent); char *path_strdup(const char *name); -void argument_rage_quit(const char *function, const char *message, - int ret); +void arg_rage_quit(const char *function, const char *message, int ret); #endif ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkgdb_old.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ -#ifndef __PKGDB_H__ -#define __PKGDB_H__ +#ifndef __PKGDB_OLD_H__ +#define __PKGDB_OLD_H__ #include "pkg_plist.h" #include <sys/queue.h> ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#8 (text+ko) ==== @@ -5,9 +5,6 @@ #include "pkg.h" #include "pkg_info.h" -#define PKG_DBDIR_DEFAULT "/var/db/pkg" /* Move this. */ -#define BAD_OR_UNKNOWN_VALUE "???" - short opt_all = 0; short opt_glob = 0; short opt_show_all_info = 0; ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/pkg_info.h#4 (text+ko) ==== @@ -1,6 +1,9 @@ #ifndef __PKG_INFO_H__ #define __PKG_INFO_H__ +#define PKG_DBDIR_DEFAULT "/var/db/pkg" /* Move this. */ +#define BAD_OR_UNKNOWN_VALUE "???" + void perform_on_db(struct pkgdb *db); void print_pkg_information(struct pkg *p); void parse_opts(int argc, char **argv);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906110517.n5B5H4Or055869>