summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/cvs/history.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/usr.bin/cvs/history.c b/usr.bin/cvs/history.c
index 87c7df6985c..2f9201b14e5 100644
--- a/usr.bin/cvs/history.c
+++ b/usr.bin/cvs/history.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: history.c,v 1.14 2005/05/24 04:12:25 jfb Exp $ */
+/* $OpenBSD: history.c,v 1.15 2005/05/27 20:47:06 xsa Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -63,8 +63,9 @@ struct cvs_cmd cvs_cmd_history = {
CVS_OP_HISTORY, CVS_REQ_HISTORY, "history",
{ "hi", "his" },
"Show repository access history",
- "",
- "acelm:oTt:u:wx:z:",
+ "[-aceloTw] [-b str] [-D date] [-f file] [-m module] [-n module] "
+ "[-p path] [-r rev] [-t tag] [-u user] [-x ACEFGMORTUW] [-z tz]",
+ "ab:cD:ef:lm:n:op:r:Tt:u:wx:z:",
NULL,
0,
cvs_history_init,
@@ -94,14 +95,20 @@ cvs_history_init(struct cvs_cmd *cmd, int argc, char **argv, int *arg)
case 'a':
flags |= CVS_HF_A;
break;
+ case 'b':
+ break;
case 'c':
rep++;
flags |= CVS_HF_C;
break;
+ case 'D':
+ break;
case 'e':
rep++;
flags |= CVS_HF_E;
break;
+ case 'f':
+ break;
case 'l':
flags |= CVS_HF_L;
break;
@@ -114,6 +121,8 @@ cvs_history_init(struct cvs_cmd *cmd, int argc, char **argv, int *arg)
}
modules[nbmod++] = optarg;
break;
+ case 'n':
+ break;
case 'o':
rep++;
flags |= CVS_HF_O;
@@ -156,6 +165,8 @@ cvs_history_init(struct cvs_cmd *cmd, int argc, char **argv, int *arg)
static int
cvs_history_pre_exec(struct cvsroot *root)
{
+ if ((flags & CVS_HF_A) && (cvs_sendarg(root, "-a", 0) < 0))
+ return (CVS_EX_PROTO);
if ((flags & CVS_HF_C) && (cvs_sendarg(root, "-c", 0) < 0))
return (CVS_EX_PROTO);
@@ -169,11 +180,17 @@ cvs_history_pre_exec(struct cvsroot *root)
return (CVS_EX_PROTO);
}
- if (user != NULL) {
+ /* if no user is specified, get login name of command issuer */
+ if (!(flags & CVS_HF_A) && (user == NULL)) {
+ if ((user = getlogin()) == NULL) {
+ cvs_log(LP_ERRNO, "cannot get login name");
+ return (CVS_EX_DATA);
+ }
+ }
+ if (!(flags & CVS_HF_A))
if ((cvs_sendarg(root, "-u", 0) < 0) ||
(cvs_sendarg(root, user, 0) < 0))
return (CVS_EX_PROTO);
- }
if ((cvs_sendarg(root, "-z", 0) < 0) ||
(cvs_sendarg(root, zone, 0) < 0))