diff options
author | Joris Vink <joris@cvs.openbsd.org> | 2009-03-24 18:33:26 +0000 |
---|---|---|
committer | Joris Vink <joris@cvs.openbsd.org> | 2009-03-24 18:33:26 +0000 |
commit | 3863c573376a7bc1c94fe46e2c08d676043e3ea3 (patch) | |
tree | 58a9bda3ce896884953a7d5cb6356d78bb6f9b41 | |
parent | 86608296c496767a15037111383d92766a74e410 (diff) |
have CVS_OP_TAG and CVS_OP_RTAG use RCS_WRITE flag
when calling rcs_open(), so it gets automaticly synced
at the end of operations for that file instead of explicitly
calling rcs_write() when you're in RCS_READ mode only.
while here, make sure we do not try to free an uninitialized list.
-rw-r--r-- | usr.bin/cvs/file.c | 5 | ||||
-rw-r--r-- | usr.bin/cvs/tag.c | 10 |
2 files changed, 7 insertions, 8 deletions
diff --git a/usr.bin/cvs/file.c b/usr.bin/cvs/file.c index 49b30cff754..701aaff623d 100644 --- a/usr.bin/cvs/file.c +++ b/usr.bin/cvs/file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: file.c,v 1.254 2009/03/19 09:53:16 joris Exp $ */ +/* $OpenBSD: file.c,v 1.255 2009/03/24 18:33:25 joris Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org> @@ -695,13 +695,14 @@ cvs_file_classify(struct cvs_file *cf, const char *tag) rflags = RCS_READ; switch (cvs_cmdop) { case CVS_OP_COMMIT: + case CVS_OP_TAG: + case CVS_OP_RTAG: rflags = RCS_WRITE; break; case CVS_OP_ADMIN: case CVS_OP_IMPORT: case CVS_OP_LOG: case CVS_OP_RLOG: - case CVS_OP_RTAG: rflags |= RCS_PARSE_FULLY; break; default: diff --git a/usr.bin/cvs/tag.c b/usr.bin/cvs/tag.c index e15a09c0a0f..e78120deff0 100644 --- a/usr.bin/cvs/tag.c +++ b/usr.bin/cvs/tag.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tag.c,v 1.78 2009/03/22 18:41:25 tobias Exp $ */ +/* $OpenBSD: tag.c,v 1.79 2009/03/24 18:33:25 joris Exp $ */ /* * Copyright (c) 2006 Xavier Santolaria <xsa@openbsd.org> * @@ -226,7 +226,9 @@ cvs_tag(int argc, char **argv) } bad: - cvs_trigger_freeinfo(&files_info); + if (line_list != NULL) + cvs_trigger_freeinfo(&files_info); + return (0); } @@ -350,8 +352,6 @@ cvs_tag_local(struct cvs_file *cf) if (tag_del(cf) == 0) { if (verbosity > 0) cvs_printf("D %s\n", cf->file_path); - - rcs_write(cf->file_rcs); } return; } @@ -378,8 +378,6 @@ cvs_tag_local(struct cvs_file *cf) if (tag_add(cf) == 0) { if (verbosity > 0) cvs_printf("T %s\n", cf->file_path); - - rcs_write(cf->file_rcs); cvs_history_add(CVS_HISTORY_TAG, cf, tag_name); } break; |