summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortholo <tholo@openbsd.org>1997-04-26 08:33:28 +0000
committertholo <tholo@openbsd.org>1997-04-26 08:33:28 +0000
commit9db208e9116b6e610049f518624078b6c638fc3f (patch)
treea0bc4c28d9889192941dc4fda0486c3240fc92a3
parentCool. Drop oversized packets rather than splitting into mbufs. NetBSD log: (diff)
downloadwireguard-openbsd-9db208e9116b6e610049f518624078b6c638fc3f.tar.xz
wireguard-openbsd-9db208e9116b6e610049f518624078b6c638fc3f.zip
Allow a private tag when we expand RCS identifiers ourselves as well.
-rw-r--r--gnu/usr.bin/cvs/src/cvs.h1
-rw-r--r--gnu/usr.bin/cvs/src/main.c16
-rw-r--r--gnu/usr.bin/cvs/src/rcs.c12
3 files changed, 24 insertions, 5 deletions
diff --git a/gnu/usr.bin/cvs/src/cvs.h b/gnu/usr.bin/cvs/src/cvs.h
index 60a8e8aefa9..d8a3ca3f9cb 100644
--- a/gnu/usr.bin/cvs/src/cvs.h
+++ b/gnu/usr.bin/cvs/src/cvs.h
@@ -363,6 +363,7 @@ extern int really_quiet, quiet;
extern int use_editor;
extern int cvswrite;
extern mode_t cvsumask;
+extern char *RCS_citag;
/* Access method specified in CVSroot. */
typedef enum {
diff --git a/gnu/usr.bin/cvs/src/main.c b/gnu/usr.bin/cvs/src/main.c
index be606cefda2..8b5a7bb81b7 100644
--- a/gnu/usr.bin/cvs/src/main.c
+++ b/gnu/usr.bin/cvs/src/main.c
@@ -43,6 +43,7 @@ int noexec = FALSE;
int readonlyfs = FALSE;
int logoff = FALSE;
mode_t cvsumask = UMASK_DFLT;
+char *RCS_citag = NULL;
char *CurDir;
@@ -956,9 +957,18 @@ parseopts(root)
*q = '\0';
if (!strncmp(buf, "tag=", 4)) {
- char *RCS_citag = strdup(buf+4);
- char *what = malloc(sizeof("RCSLOCALID")+1+strlen(RCS_citag)+1);
-
+ char *what;
+
+ RCS_citag = strdup(buf+4);
+ if (RCS_citag == NULL) {
+ printf("no memory for local tag\n");
+ return;
+ }
+ what = malloc(sizeof("RCSLOCALID")+1+strlen(RCS_citag)+1);
+ if (what == NULL) {
+ printf("no memory for local tag\n");
+ return;
+ }
sprintf(what, "RCSLOCALID=%s", RCS_citag);
putenv(what);
} else if (!strncmp(buf, "umask=", 6)) {
diff --git a/gnu/usr.bin/cvs/src/rcs.c b/gnu/usr.bin/cvs/src/rcs.c
index 1d0d38a4b89..a56f312c498 100644
--- a/gnu/usr.bin/cvs/src/rcs.c
+++ b/gnu/usr.bin/cvs/src/rcs.c
@@ -2162,7 +2162,7 @@ struct rcs_keyword
size_t len;
};
#define KEYWORD_INIT(s) (s), sizeof (s) - 1
-static const struct rcs_keyword keywords[] =
+static struct rcs_keyword keywords[] =
{
{ KEYWORD_INIT ("Author") },
{ KEYWORD_INIT ("Date") },
@@ -2175,6 +2175,7 @@ static const struct rcs_keyword keywords[] =
{ KEYWORD_INIT ("Revision") },
{ KEYWORD_INIT ("Source") },
{ KEYWORD_INIT ("State") },
+ { NULL, 0 },
{ NULL, 0 }
};
enum keyword
@@ -2189,7 +2190,8 @@ enum keyword
KEYWORD_RCSFILE,
KEYWORD_REVISION,
KEYWORD_SOURCE,
- KEYWORD_STATE
+ KEYWORD_STATE,
+ KEYWORD_LOCALID
};
/* Convert an RCS date string into a readable string. This is like
@@ -2326,6 +2328,11 @@ expand_keywords (rcs, ver, name, log, loglen, expand, buf, len, retbuf, retlen)
return;
}
+ if (RCS_citag != NULL && keywords[KEYWORD_LOCALID].string == NULL) {
+ keywords[KEYWORD_LOCALID].string = RCS_citag;
+ keywords[KEYWORD_LOCALID].len = strlen(RCS_citag);
+ }
+
/* If we are using -kkvl, dig out the locker information if any. */
locker = NULL;
if (expand == KFLAG_KVL && rcs->other != NULL)
@@ -2450,6 +2457,7 @@ expand_keywords (rcs, ver, name, log, loglen, expand, buf, len, retbuf, retlen)
case KEYWORD_HEADER:
case KEYWORD_ID:
+ case KEYWORD_LOCALID:
{
char *path;
int free_path;