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);
455 if ((arcn->type != PAX_REG) && (arcn->type != PAX_CTG)) {
461 if ((arcn->type == PAX_HLK) ||
462 (arcn->type == PAX_HRG))
463 res = lnk_creat(arcn, &write_to_hard_link);
465 res = node_creat(arcn);
468 (void)rd_skip(arcn->skip + arcn->pad);
470 purg_lnk(arcn);
487 if ((fd = file_creat(arcn, write_to_hard_link)) < 0) {
489 (void)rd_skip(arcn->skip + arcn->pad);
490 purg_lnk(arcn);
498 res = (*frmt->rd_data)(arcn, fd, &cnt);
500 file_close(arcn, fd);
506 (void)rd_skip(cnt + arcn->pad);
511 if ((arcn->pat != NULL) && (arcn->pat->chdname != NULL))
536 wr_archive(ARCHD *arcn, int is_app)
577 while (next_file(arcn) == 0) {
581 if (sel_chk(arcn) != 0)
589 if ((res = mod_name(arcn, 0)) < 0)
599 if ((res = chk_ftime(arcn)) < 0)
609 ftree_sel(arcn);
610 if (hlk && (chk_lnk(arcn) < 0))
613 if ((arcn->type == PAX_REG) || (arcn->type == PAX_HRG) ||
614 (arcn->type == PAX_CTG)) {
621 if ((fd = open(arcn->org_name, O_RDONLY, 0)) < 0) {
623 arcn->org_name);
624 purg_lnk(arcn);
632 if ((res = mod_name(arcn, RENM)) < 0) {
637 rdfile_close(arcn, &fd);
638 purg_lnk(arcn);
642 if (arcn->name[0] == '/' && !check_Aflag()) {
643 memmove(arcn->name, arcn->name + 1, strlen(arcn->name));
646 if ((res > 0) || (docrc && (set_crc(arcn, fd) < 0))) {
651 rdfile_close(arcn, &fd);
652 purg_lnk(arcn);
658 ls_list(arcn, now, listf);
660 (void)safe_print(arcn->name, listf);
670 if ((res = (*wrf)(arcn)) < 0) {
671 arcn, &fd);
684 rdfile_close(arcn, &fd);
696 res = (*frmt->wr_data)(arcn, fd, &cnt);
697 rdfile_close(arcn, &fd);
709 ((arcn->pad > 0) && (wr_skip(arcn->pad) < 0)))
757 ARCHD *arcn;
763 arcn = &archd;
820 while (next_head(arcn) == 0) {
824 if (sel_chk(arcn) != 0) {
825 if (rd_skip(arcn->skip + arcn->pad) == 1)
835 if ((res = chk_ftime(arcn)) < 0)
838 if (rd_skip(arcn->skip + arcn->pad) == 1)
850 if ((udev && (add_dev(arcn) < 0)) ||
851 (rd_skip(arcn->skip + arcn->pad) == 1))
881 res = wr_archive(arcn, 1);
928 ARCHD *arcn;
938 arcn = &archd;
989 while (next_file(arcn) == 0) {
995 if (sel_chk(arcn) != 0)
1012 if (strlcpy(dest_pt, arcn->name + (*arcn->name == '/'),
1015 arcn->name);
1027 if ((arcn->sb.st_mtime<=sb.st_mtime) &&
1028 (arcn->sb.st_ctime<=sb.st_ctime))
1031 if (arcn->sb.st_ctime <= sb.st_ctime)
1033 } else if (arcn->sb.st_mtime <= sb.st_mtime)
1043 ftree_sel(arcn);
1044 if ((chk_lnk(arcn) < 0) || ((res = mod_name(arcn, RENM)) < 0))
1046 if ((res > 0) || (set_dest(arcn, dirbuf, dlen) < 0)) {
1050 purg_lnk(arcn);
1058 if ((Yflag || Zflag) && ((lstat(arcn->name, &sb) == 0))) {
1060 if ((arcn->sb.st_mtime <= sb.st_mtime) &&
1061 (arcn->sb.st_ctime <= sb.st_ctime))
1064 if (arcn->sb.st_ctime <= sb.st_ctime)
1066 } else if (arcn->sb.st_mtime <= sb.st_mtime)
1071 (void)safe_print(arcn->name, listf);
1081 res = cross_lnk(arcn);
1083 res = chk_same(arcn);
1095 if ((arcn->type != PAX_REG) && (arcn->type != PAX_CTG)) {
1099 if ((arcn->type == PAX_HLK) ||
1100 (arcn->type == PAX_HRG)) {
1103 res = lnk_creat(arcn, &payload);
1105 res = node_creat(arcn);
1108 purg_lnk(arcn);
1120 if ((fdsrc = open(arcn->org_name, O_RDONLY, 0)) < 0) {
1122 arcn->org_name);
1123 purg_lnk(arcn);
1126 if ((fddest = file_creat(arcn, 0)) < 0) {
1127 rdfile_close(arcn, &fdsrc);
1128 purg_lnk(arcn);
1137 if (cp_file(arcn, fdsrc, fddest) < 0)
1138 file_cleanup(arcn, fddest);
1140 file_close(arcn, fddest);
1141 rdfile_close(arcn, &fdsrc);
1182 next_head(ARCHD *arcn)
1259 if ((*frmt->rd)(arcn, hdbuf) == 0)
1315 if (frmt->inhead && ((*frmt->subtrail)(arcn) == 0)) {