Lines Matching defs:arcn

159 path_check(ARCHD *arcn, int level)
164 if ((p = strrchr(arcn->name, '/')) == NULL)
168 if (realpath(arcn->name, buf) == NULL) {
170 error = path_check(arcn, level + 1);
175 syswarn(1, 0, "Cannot resolve `%s'", arcn->name);
182 arcn->name, buf, p + 1, cwdpath);
198 ARCHD *arcn;
202 arcn = &archd;
219 while (next_head(arcn) == 0) {
220 if (arcn->type == PAX_GLL || arcn->type == PAX_GLF) {
225 if (!(*frmt->rd_data)(arcn, -arcn->type, &cnt))
226 (void)rd_skip(cnt + arcn->pad);
234 if ((res = pat_match(arcn)) < 0)
237 if ((res == 0) && (sel_chk(arcn) == 0)) {
241 if (pat_sel(arcn) < 0)
248 if ((res = mod_name(arcn, RENM)) < 0)
251 if (arcn->name[0] == '/' && !check_Aflag()) {
252 memmove(arcn->name, arcn->name + 1,
253 strlen(arcn->name));
255 ls_list(arcn, now, stdout);
271 if (rd_skip(arcn->skip + arcn->pad) == 1)
296 ARCHD *arcn;
303 arcn = &archd;
330 while (next_head(arcn) == 0) {
333 if (arcn->type == PAX_GLL || arcn->type == PAX_GLF) {
337 if (!(*frmt->rd_data)(arcn, -arcn->type, &cnt))
338 (void)rd_skip(cnt + arcn->pad);
346 if ((res = pat_match(arcn)) < 0)
349 if ((res > 0) || (sel_chk(arcn) != 0)) {
355 (void)rd_skip(arcn->skip + arcn->pad);
359 if (kflag && (lstat(arcn->name, &sb) == 0)) {
360 (void)rd_skip(arcn->skip + arcn->pad);
374 if ((uflag || Dflag) && ((lstat(arcn->name, &sb) == 0))) {
376 if ((arcn->sb.st_mtime <= sb.st_mtime) &&
377 (arcn->sb.st_ctime <= sb.st_ctime)) {
378 (void)rd_skip(arcn->skip + arcn->pad);
382 if (arcn->sb.st_ctime <= sb.st_ctime) {
383 (void)rd_skip(arcn->skip + arcn->pad);
386 } else if (arcn->sb.st_mtime <= sb.st_mtime) {
387 (void)rd_skip(arcn->skip + arcn->pad);
395 if ((pat_sel(arcn) < 0) || ((res = mod_name(arcn, RENM)) < 0))
401 purg_lnk(arcn);
402 (void)rd_skip(arcn->skip + arcn->pad);
406 if (arcn->name[0] == '/' && !check_Aflag()) {
407 memmove(arcn->name, arcn->name + 1, strlen(arcn->name));
413 if ((Yflag || Zflag) && ((lstat(arcn->name, &sb) == 0))) {
415 if ((arcn->sb.st_mtime <= sb.st_mtime) &&
416 (arcn->sb.st_ctime <= sb.st_ctime)) {
417 (void)rd_skip(arcn->skip + arcn->pad);
421 if (arcn->sb.st_ctime <= sb.st_ctime) {
422 (void)rd_skip(arcn->skip + arcn->pad);
425 } else if (arcn->sb.st_mtime <= sb.st_mtime) {
426 (void)rd_skip(arcn->skip + arcn->pad);
433 ls_list(arcn, now, listf);
435 (void)safe_print(arcn->name, listf);
443 if ((arcn->pat != NULL) && (arcn->pat->chdname != NULL) &&
445 dochdir(arcn->pat->chdname);
447 if (secure && path_check(arcn, 0) != 0) {
448 (void)rd_skip(arcn->skip + arcn->pad);
456 if ((arcn->type != PAX_REG) && (arcn->type != PAX_CTG)) {
462 if ((arcn->type == PAX_HLK) ||
463 (arcn->type == PAX_HRG))
464 res = lnk_creat(arcn, &write_to_hard_link);
466 res = node_creat(arcn);
469 (void)rd_skip(arcn->skip + arcn->pad);
471 purg_lnk(arcn);
488 if ((fd = file_creat(arcn, write_to_hard_link)) < 0) {
490 (void)rd_skip(arcn->skip + arcn->pad);
491 purg_lnk(arcn);
499 res = (*frmt->rd_data)(arcn, fd, &cnt);
501 file_close(arcn, fd);
507 (void)rd_skip(cnt + arcn->pad);
512 if ((arcn->pat != NULL) && (arcn->pat->chdname != NULL))
537 wr_archive(ARCHD *arcn, int is_app)
578 while (next_file(arcn) == 0) {
582 if (sel_chk(arcn) != 0)
590 if ((res = mod_name(arcn, 0)) < 0)
600 if ((res = chk_ftime(arcn)) < 0)
610 ftree_sel(arcn);
611 if (hlk && (chk_lnk(arcn) < 0))
614 if ((arcn->type == PAX_REG) || (arcn->type == PAX_HRG) ||
615 (arcn->type == PAX_CTG)) {
622 if ((fd = open(arcn->org_name, O_RDONLY, 0)) < 0) {
624 arcn->org_name);
625 purg_lnk(arcn);
633 if ((res = mod_name(arcn, RENM)) < 0) {
638 rdfile_close(arcn, &fd);
639 purg_lnk(arcn);
643 if (arcn->name[0] == '/' && !check_Aflag()) {
644 memmove(arcn->name, arcn->name + 1, strlen(arcn->name));
647 if ((res > 0) || (docrc && (set_crc(arcn, fd) < 0))) {
652 rdfile_close(arcn, &fd);
653 purg_lnk(arcn);
659 ls_list(arcn, now, listf);
661 (void)safe_print(arcn->name, listf);
671 if ((res = (*wrf)(arcn)) < 0) {
672 rdfile_close(arcn, &fd);
685 rdfile_close(arcn, &fd);
697 res = (*frmt->wr_data)(arcn, fd, &cnt);
698 rdfile_close(arcn, &fd);
710 ((arcn->pad > 0) && (wr_skip(arcn->pad) < 0)))
758 ARCHD *arcn;
764 arcn = &archd;
821 while (next_head(arcn) == 0) {
825 if (sel_chk(arcn) != 0) {
826 if (rd_skip(arcn->skip + arcn->pad) == 1)
836 if ((res = chk_ftime(arcn)) < 0)
839 if (rd_skip(arcn->skip + arcn->pad) == 1)
851 if ((udev && (add_dev(arcn) < 0)) ||
852 (rd_skip(arcn->skip + arcn->pad) == 1))
882 res = wr_archive(arcn, 1);
929 ARCHD *arcn;
939 arcn = &archd;
990 while (next_file(arcn) == 0) {
996 if (sel_chk(arcn) != 0)
1013 if (strlcpy(dest_pt, arcn->name + (*arcn->name == '/'),
1016 arcn->name);
1028 if ((arcn->sb.st_mtime<=sb.st_mtime) &&
1029 (arcn->sb.st_ctime<=sb.st_ctime))
1032 if (arcn->sb.st_ctime <= sb.st_ctime)
1034 } else if (arcn->sb.st_mtime <= sb.st_mtime)
1044 ftree_sel(arcn);
1045 if ((chk_lnk(arcn) < 0) || ((res = mod_name(arcn, RENM)) < 0))
1047 if ((res > 0) || (set_dest(arcn, dirbuf, dlen) < 0)) {
1051 purg_lnk(arcn);
1059 if ((Yflag || Zflag) && ((lstat(arcn->name, &sb) == 0))) {
1061 if ((arcn->sb.st_mtime <= sb.st_mtime) &&
1062 (arcn->sb.st_ctime <= sb.st_ctime))
1065 if (arcn->sb.st_ctime <= sb.st_ctime)
1067 } else if (arcn->sb.st_mtime <= sb.st_mtime)
1072 (void)safe_print(arcn->name, listf);
1082 res = cross_lnk(arcn);
1084 res = chk_same(arcn);
1096 if ((arcn->type != PAX_REG) && (arcn->type != PAX_CTG)) {
1100 if ((arcn->type == PAX_HLK) ||
1101 (arcn->type == PAX_HRG)) {
1104 res = lnk_creat(arcn, &payload);
1106 res = node_creat(arcn);
1109 purg_lnk(arcn);
1121 if ((fdsrc = open(arcn->org_name, O_RDONLY, 0)) < 0) {
1123 arcn->org_name);
1124 purg_lnk(arcn);
1127 if ((fddest = file_creat(arcn, 0)) < 0) {
1128 rdfile_close(arcn, &fdsrc);
1129 purg_lnk(arcn);
1138 if (cp_file(arcn, fdsrc, fddest) < 0)
1139 file_cleanup(arcn, fddest);
1141 file_close(arcn, fddest);
1142 rdfile_close(arcn, &fdsrc);
1183 next_head(ARCHD *arcn)
1260 if ((*frmt->rd)(arcn, hdbuf) == 0)
1316 if (frmt->inhead && ((*frmt->subtrail)(arcn) == 0)) {