version 1.6, 2003/10/29 23:00:28 |
version 1.7, 2004/02/07 10:37:52 |
Line 123 check_list(char *home, package_t *pkg, c |
|
Line 123 check_list(char *home, package_t *pkg, c |
|
struct stat st; |
struct stat st; |
plist_t *tmp; |
plist_t *tmp; |
plist_t *p; |
plist_t *p; |
char name[FILENAME_MAX]; |
|
char buf[ChecksumHeaderLen + LegibleChecksumLen]; |
char buf[ChecksumHeaderLen + LegibleChecksumLen]; |
|
char target[FILENAME_MAX + SymlinkHeaderLen]; |
|
char name[FILENAME_MAX]; |
char *cwd = home; |
char *cwd = home; |
char *srcdir = NULL; |
char *srcdir = NULL; |
int dirc; |
int dirc; |
|
int cc; |
|
|
/* Open Package Database for writing */ |
/* Open Package Database for writing */ |
if (update_pkgdb && !pkgdb_open(ReadWrite)) { |
if (update_pkgdb && !pkgdb_open(ReadWrite)) { |
Line 203 check_list(char *home, package_t *pkg, c |
|
Line 205 check_list(char *home, package_t *pkg, c |
|
if (RelativeLinks) { |
if (RelativeLinks) { |
CheckSymlink(name, cwd, strlen(cwd)); |
CheckSymlink(name, cwd, strlen(cwd)); |
} |
} |
|
(void) strlcpy(target, SYMLINK_HEADER, |
|
sizeof(target)); |
|
if ((cc = readlink(name, &target[SymlinkHeaderLen], |
|
sizeof(target) - SymlinkHeaderLen)) < 0) { |
|
warnx("can't readlink `%s'", name); |
|
continue; |
|
} |
|
target[SymlinkHeaderLen + cc] = 0x0; |
|
tmp = new_plist_entry(); |
|
tmp->name = strdup(target); |
|
tmp->type = PLIST_COMMENT; |
|
tmp->next = p->next; |
|
tmp->prev = p; |
|
if (p == pkg->tail) { |
|
pkg->tail = tmp; |
|
} |
|
p->next = tmp; |
|
p = tmp; |
break; |
break; |
case S_IFCHR: |
case S_IFCHR: |
warnx("Warning - char special device `%s' in PLIST", name); |
warnx("Warning - char special device `%s' in PLIST", name); |