From owner-p4-projects@FreeBSD.ORG Thu Jun 11 05:17:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED65E1065672; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADC80106564A for ; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 656C08FC20 for ; Thu, 11 Jun 2009 05:17:04 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5B5H46V055877 for ; Thu, 11 Jun 2009 05:17:04 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5B5H4Or055869 for perforce@freebsd.org; Thu, 11 Jun 2009 05:17:04 GMT (envelope-from dforsyth@FreeBSD.org) Date: Thu, 11 Jun 2009 05:17:04 GMT Message-Id: <200906110517.n5B5H4Or055869@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 164069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jun 2009 05:17:06 -0000 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 ==== //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);