=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/checkout.c,v retrieving revision 1.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- src/usr.bin/cvs/checkout.c 2007/02/22 06:42:09 1.92 +++ src/usr.bin/cvs/checkout.c 2007/06/01 17:47:47 1.93 @@ -1,4 +1,4 @@ -/* $OpenBSD: checkout.c,v 1.92 2007/02/22 06:42:09 otto Exp $ */ +/* $OpenBSD: checkout.c,v 1.93 2007/06/01 17:47:47 niallo Exp $ */ /* * Copyright (c) 2006 Joris Vink * @@ -34,6 +34,7 @@ extern int prune_dirs; extern int build_dirs; extern int reset_stickies; +extern char *tag; static int flags = CR_REPO | CR_RECURSE_DIRS; @@ -76,6 +77,9 @@ break; case 'R': break; + case 'r': + tag = xstrdup(optarg); + break; default: fatal("%s", cvs_cmd_checkout.cmd_synopsis); } @@ -133,6 +137,8 @@ if (current_cvsroot->cr_method != CVS_METHOD_LOCAL) { cvs_client_connect_to_server(); + if (tag != NULL) + cvs_client_send_request("Argument -r%s", tag); if (reset_stickies == 1) cvs_client_send_request("Argument -A"); @@ -282,7 +288,12 @@ } if (co_flags & CO_SETSTICKY) - (void)xsnprintf(stickytag, sizeof(stickytag), "T%s", rev); + if (tag != NULL) + (void)xsnprintf(stickytag, sizeof(stickytag), "T%s", + tag); + else + (void)xsnprintf(stickytag, sizeof(stickytag), "T%s", + rev); else stickytag[0] = '\0';