Lines Matching refs:pb
117 struct checkin_params pb; in checkin_main() local
119 pb.date = DATE_NOW; in checkin_main()
120 pb.file = NULL; in checkin_main()
121 pb.rcs_msg = pb.username = pb.author = pb.state = NULL; in checkin_main()
122 pb.description = pb.symbol = NULL; in checkin_main()
123 pb.deltatext = NULL; in checkin_main()
124 pb.newrev = NULL; in checkin_main()
125 pb.fmode = S_IRUSR|S_IRGRP|S_IROTH; in checkin_main()
135 pb.date = DATE_MTIME; in checkin_main()
136 else if ((pb.date = date_parse(rcs_optarg)) == -1) in checkin_main()
170 pb.rcs_msg = rcs_optarg; in checkin_main()
171 if (pb.rcs_msg == NULL) in checkin_main()
179 pb.symbol = rcs_optarg; in checkin_main()
180 if (rcs_sym_check(pb.symbol) != 1) in checkin_main()
181 errx(1, "invalid symbol `%s'", pb.symbol); in checkin_main()
191 pb.state = rcs_optarg; in checkin_main()
192 if (rcs_state_check(pb.state) < 0) in checkin_main()
193 errx(1, "invalid state `%s'", pb.state); in checkin_main()
202 pb.description = rcs_optarg; in checkin_main()
213 free(pb.author); in checkin_main()
214 pb.author = xstrdup(rcs_optarg); in checkin_main()
236 if ((pb.username = getlogin()) == NULL) in checkin_main()
244 pb.flags = base_flags; in checkin_main()
245 pb.openflags = base_openflags; in checkin_main()
247 pb.filename = argv[i]; in checkin_main()
248 rcs_strip_suffix(pb.filename); in checkin_main()
250 if ((workfile_fd = open(pb.filename, O_RDONLY)) == -1) in checkin_main()
251 err(1, "%s", pb.filename); in checkin_main()
254 fd = rcs_choosefile(pb.filename, pb.fpath, sizeof(pb.fpath)); in checkin_main()
257 if (pb.openflags & RCS_CREATE) in checkin_main()
258 pb.flags |= NEWFILE; in checkin_main()
267 if (pb.flags & CI_INIT) { in checkin_main()
268 warnx("%s already exists", pb.fpath); in checkin_main()
274 pb.openflags &= ~RCS_CREATE; in checkin_main()
277 pb.file = rcs_open(pb.fpath, fd, pb.openflags, pb.fmode); in checkin_main()
278 if (pb.file == NULL) in checkin_main()
279 errx(1, "failed to open rcsfile `%s'", pb.fpath); in checkin_main()
281 if ((pb.flags & DESCRIPTION) && in checkin_main()
282 rcs_set_description(pb.file, pb.description, pb.flags) == -1) in checkin_main()
283 err(1, "%s", pb.filename); in checkin_main()
285 if (!(pb.flags & QUIET)) in checkin_main()
287 "%s <-- %s\n", pb.fpath, pb.filename); in checkin_main()
290 if ((pb.newrev = rcs_getrevnum(rev_str, pb.file)) == in checkin_main()
294 if (!(pb.flags & NEWFILE)) in checkin_main()
295 pb.flags |= CI_SKIPDESC; in checkin_main()
298 if (pb.file->rf_ndelta == 0) { in checkin_main()
299 pb.flags |= NEWFILE; in checkin_main()
300 pb.file->rf_flags |= RCS_CREATE; in checkin_main()
307 if (pb.flags & NEWFILE) { in checkin_main()
308 if (checkin_init(&pb) == -1) in checkin_main()
311 if (checkin_update(&pb) == -1) in checkin_main()
315 rcs_close(pb.file); in checkin_main()
317 rcsnum_free(pb.newrev); in checkin_main()
318 pb.newrev = NULL; in checkin_main()
334 checkin_diff_file(struct checkin_params *pb) in checkin_diff_file() argument
342 if ((b1 = buf_load(pb->filename)) == NULL) { in checkin_diff_file()
343 warnx("failed to load file: `%s'", pb->filename); in checkin_diff_file()
347 if ((b2 = rcs_getrev(pb->file, pb->frev)) == NULL) { in checkin_diff_file()
351 b2 = rcs_kwexp_buf(b2, pb->file, pb->frev); in checkin_diff_file()
422 checkin_update(struct checkin_params *pb) in checkin_update() argument
433 pb->frev = pb->file->rf_head; in checkin_update()
436 if ((bp = buf_load(pb->filename)) == NULL) in checkin_update()
440 if (pb->newrev != NULL && RCSNUM_ZERO_ENDING(pb->newrev)) in checkin_update()
441 pb->newrev = rcsnum_inc(pb->newrev); in checkin_update()
443 if (checkin_checklock(pb) < 0) in checkin_update()
450 if (pb->newrev != NULL && in checkin_update()
451 rcsnum_cmp(pb->newrev, pb->frev, 0) != -1) { in checkin_update()
453 pb->file->rf_path, in checkin_update()
454 rcsnum_tostr(pb->newrev, numb1, sizeof(numb1)), in checkin_update()
455 rcsnum_tostr(pb->frev, numb2, sizeof(numb2))); in checkin_update()
463 if (pb->date == DATE_MTIME) in checkin_update()
464 checkin_mtimedate(pb); in checkin_update()
467 if (pb->date != DATE_NOW) { in checkin_update()
468 time_t head_date = rcs_rev_getdate(pb->file, pb->frev); in checkin_update()
469 if (pb->date <= head_date) { in checkin_update()
474 t = gmtime(&pb->date); in checkin_update()
480 pb->file->rf_path, dbuf1, dbuf2, in checkin_update()
481 rcsnum_tostr(pb->frev, numb2, sizeof(numb2))); in checkin_update()
486 if ((pb->deltatext = checkin_diff_file(pb)) == NULL) { in checkin_update()
495 if (!(pb->flags & FORCE) && (buf_len(pb->deltatext) < 1)) { in checkin_update()
496 if (checkin_revert(pb) == -1) in checkin_update()
503 if (pb->flags & INTERACTIVE) { in checkin_update()
504 if (pb->rcs_msg != NULL) { in checkin_update()
508 free(pb->rcs_msg); in checkin_update()
509 pb->rcs_msg = NULL; in checkin_update()
512 if (pb->rcs_msg == NULL) in checkin_update()
513 pb->rcs_msg = checkin_getlogmsg(pb->frev, pb->newrev, in checkin_update()
514 pb->flags); in checkin_update()
517 if ((rcs_lock_remove(pb->file, pb->username, pb->frev) < 0) && in checkin_update()
518 (rcs_lock_getmode(pb->file) != RCS_LOCK_LOOSE)) { in checkin_update()
521 else if (!(pb->flags & CO_LOCK)) in checkin_update()
527 if (rcs_deltatext_set(pb->file, pb->frev, pb->deltatext) == -1) in checkin_update()
531 if (rcs_rev_add(pb->file, in checkin_update()
532 (pb->newrev == NULL ? RCS_HEAD_REV : pb->newrev), in checkin_update()
533 pb->rcs_msg, pb->date, pb->author) != 0) { in checkin_update()
542 if (pb->newrev != NULL) { in checkin_update()
543 if (rcs_head_set(pb->file, pb->newrev) < 0) in checkin_update()
546 pb->newrev = pb->file->rf_head; in checkin_update()
549 if (rcs_deltatext_set(pb->file, pb->frev, bp) == -1) in checkin_update()
553 if (pb->symbol != NULL && in checkin_update()
554 (checkin_attach_symbol(pb) < 0)) in checkin_update()
558 if (pb->state != NULL) in checkin_update()
559 (void)rcs_state_set(pb->file, pb->newrev, pb->state); in checkin_update()
563 err(1, "%s", pb->filename); in checkin_update()
566 pb->file->rf_mode = st.st_mode & ~(S_IWUSR|S_IWGRP|S_IWOTH); in checkin_update()
569 (void)unlink(pb->filename); in checkin_update()
572 rcs_write(pb->file); in checkin_update()
575 if (((pb->flags & CO_LOCK) || (pb->flags & CO_UNLOCK)) && in checkin_update()
576 !(pb->flags & CI_DEFAULT)) in checkin_update()
577 checkout_rev(pb->file, pb->newrev, pb->filename, pb->flags, in checkin_update()
578 pb->username, pb->author, NULL, NULL); in checkin_update()
580 if ((pb->flags & INTERACTIVE) && (pb->rcs_msg[0] == '\0')) { in checkin_update()
581 free(pb->rcs_msg); /* free empty log message */ in checkin_update()
582 pb->rcs_msg = NULL; in checkin_update()
595 checkin_init(struct checkin_params *pb) in checkin_init() argument
603 if (pb->newrev != NULL && RCSNUM_ZERO_ENDING(pb->newrev)) { in checkin_init()
604 pb->frev = rcsnum_alloc(); in checkin_init()
605 rcsnum_cpy(pb->newrev, pb->frev, 0); in checkin_init()
606 pb->newrev = rcsnum_inc(pb->newrev); in checkin_init()
611 if ((bp = buf_load(pb->filename)) == NULL) in checkin_init()
615 if (pb->flags & CI_KEYWORDSCAN) in checkin_init()
616 checkin_keywordscan(bp, &pb->newrev, in checkin_init()
617 &pb->date, &pb->state, &pb->author); in checkin_init()
619 if (pb->flags & CI_SKIPDESC) in checkin_init()
623 if (pb->description == NULL && in checkin_init()
624 rcs_set_description(pb->file, NULL, pb->flags) == -1) { in checkin_init()
625 warn("%s", pb->filename); in checkin_init()
636 pb->rcs_msg = checkin_getlogmsg(pb->frev, pb->newrev, in checkin_init()
637 pb->flags); in checkin_init()
638 rcsnum_free(pb->frev); in checkin_init()
645 if (pb->date == DATE_MTIME) in checkin_init()
646 checkin_mtimedate(pb); in checkin_init()
649 if (rcs_rev_add(pb->file, in checkin_init()
650 (pb->newrev == NULL ? RCS_HEAD_REV : pb->newrev), in checkin_init()
651 (pb->rcs_msg == NULL ? "Initial revision" : pb->rcs_msg), in checkin_init()
652 pb->date, pb->author) != 0) { in checkin_init()
661 if (pb->newrev != NULL) { in checkin_init()
662 if (rcs_head_set(pb->file, pb->newrev) < 0) in checkin_init()
665 pb->newrev = pb->file->rf_head; in checkin_init()
668 if (rcs_deltatext_set(pb->file, pb->file->rf_head, bp) == -1) { in checkin_init()
674 if (pb->symbol != NULL && checkin_attach_symbol(pb) < 0) in checkin_init()
678 if (pb->state != NULL) in checkin_init()
679 (void)rcs_state_set(pb->file, pb->newrev, pb->state); in checkin_init()
683 err(1, "%s", pb->filename); in checkin_init()
686 pb->file->rf_mode = st.st_mode & ~(S_IWUSR|S_IWGRP|S_IWOTH); in checkin_init()
689 (void)unlink(pb->filename); in checkin_init()
692 rcs_write(pb->file); in checkin_init()
695 if (((pb->flags & CO_LOCK) || (pb->flags & CO_UNLOCK)) && in checkin_init()
696 !(pb->flags & CI_DEFAULT)) { in checkin_init()
697 checkout_rev(pb->file, pb->newrev, pb->filename, pb->flags, in checkin_init()
698 pb->username, pb->author, NULL, NULL); in checkin_init()
701 if (!(pb->flags & QUIET)) { in checkin_init()
703 rcsnum_tostr(pb->newrev, numb, sizeof(numb))); in checkin_init()
716 checkin_attach_symbol(struct checkin_params *pb) in checkin_attach_symbol() argument
720 if (!(pb->flags & QUIET)) in checkin_attach_symbol()
721 printf("symbol: %s\n", pb->symbol); in checkin_attach_symbol()
722 if (pb->flags & CI_SYMFORCE) { in checkin_attach_symbol()
723 if (rcs_sym_remove(pb->file, pb->symbol) < 0) { in checkin_attach_symbol()
726 pb->symbol); in checkin_attach_symbol()
731 if ((ret = rcs_sym_add(pb->file, pb->symbol, pb->newrev)) == -1 && in checkin_attach_symbol()
733 rcsnum_tostr(rcs_sym_getrev(pb->file, pb->symbol), in checkin_attach_symbol()
735 warnx("symbolic name %s already bound to %s", pb->symbol, rbuf); in checkin_attach_symbol()
738 warnx("problem adding symbol: %s", pb->symbol); in checkin_attach_symbol()
753 checkin_revert(struct checkin_params *pb) in checkin_revert() argument
757 rcsnum_tostr(pb->frev, rbuf, sizeof(rbuf)); in checkin_revert()
759 if (!(pb->flags & QUIET)) in checkin_revert()
764 if (pb->symbol != NULL) { in checkin_revert()
765 if (checkin_checklock(pb) == -1) in checkin_revert()
768 pb->newrev = pb->frev; in checkin_revert()
769 if (checkin_attach_symbol(pb) == -1) in checkin_revert()
773 pb->flags |= CO_REVERT; in checkin_revert()
775 (void)unlink(pb->filename); in checkin_revert()
778 if (pb->symbol != NULL) in checkin_revert()
779 rcs_write(pb->file); in checkin_revert()
781 if ((pb->flags & CO_LOCK) || (pb->flags & CO_UNLOCK)) in checkin_revert()
782 checkout_rev(pb->file, pb->frev, pb->filename, in checkin_revert()
783 pb->flags, pb->username, pb->author, NULL, NULL); in checkin_revert()
795 checkin_checklock(struct checkin_params *pb) in checkin_checklock() argument
799 if (rcs_lock_getmode(pb->file) == RCS_LOCK_LOOSE) in checkin_checklock()
802 TAILQ_FOREACH(lkp, &(pb->file->rf_locks), rl_list) { in checkin_checklock()
803 if (!strcmp(lkp->rl_name, pb->username) && in checkin_checklock()
804 !rcsnum_cmp(lkp->rl_num, pb->frev, 0)) in checkin_checklock()
808 warnx("%s: no lock set by %s", pb->file->rf_path, pb->username); in checkin_checklock()
819 checkin_mtimedate(struct checkin_params *pb) in checkin_mtimedate() argument
824 err(1, "%s", pb->filename); in checkin_mtimedate()
826 pb->date = sb.st_mtime; in checkin_mtimedate()