summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/update.c
diff options
context:
space:
mode:
authorTobias Stoeckmann <tobias@cvs.openbsd.org>2008-02-06 12:42:47 +0000
committerTobias Stoeckmann <tobias@cvs.openbsd.org>2008-02-06 12:42:47 +0000
commit842bd0a76b332d51aaae786abe4728f00afd1c5d (patch)
treea2c4d7fc865b1addf537e528ec5489a3f82e0327 /usr.bin/cvs/update.c
parenta22efea4d090fdc83b0b742bae99b46150b9c19f (diff)
Sticky tags must have a 'T' in front of them in CVS/Entries.
OK joris@
Diffstat (limited to 'usr.bin/cvs/update.c')
-rw-r--r--usr.bin/cvs/update.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.bin/cvs/update.c b/usr.bin/cvs/update.c
index 0b787a9643c..f7c3f93ea67 100644
--- a/usr.bin/cvs/update.c
+++ b/usr.bin/cvs/update.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: update.c,v 1.120 2008/02/04 18:23:58 tobias Exp $ */
+/* $OpenBSD: update.c,v 1.121 2008/02/06 12:42:46 tobias Exp $ */
/*
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
*
@@ -445,6 +445,7 @@ update_clear_conflict(struct cvs_file *cf)
time_t now;
CVSENTRIES *entlist;
char *entry, revbuf[CVS_REV_BUFSZ], timebuf[CVS_TIME_BUFSZ];
+ char sticky[CVS_ENT_MAXLINELEN];
cvs_log(LP_TRACE, "update_clear_conflict(%s)", cf->file_path);
@@ -454,10 +455,15 @@ update_clear_conflict(struct cvs_file *cf)
rcsnum_tostr(cf->file_ent->ce_rev, revbuf, sizeof(revbuf));
+ sticky[0] = '\0';
+ if (cf->file_ent->ce_tag != NULL)
+ (void)xsnprintf(sticky, sizeof(sticky), "T%s",
+ cf->file_ent->ce_tag);
+
entry = xmalloc(CVS_ENT_MAXLINELEN);
(void)xsnprintf(entry, CVS_ENT_MAXLINELEN, "/%s/%s/%s/%s/%s",
cf->file_name, revbuf, timebuf, cf->file_ent->ce_opts ? : "",
- cf->file_ent->ce_tag ? : "");
+ sticky);
entlist = cvs_ent_open(cf->file_wd);
cvs_ent_add(entlist, entry);