From f9e077664c53800a8ea97f743323c2eba92cdc60 Mon Sep 17 00:00:00 2001 From: obrien Date: Wed, 19 Mar 2008 15:05:27 +0000 Subject: [PATCH] Merge rev 1.2 (extensions to the $CVSROOT/config syntax) and rev 1.4 (1.12 CVSROOT/config keyword expansion forward compatability) into version 1.11-20080310. Note the vendor has also added some forward compatability support. We should determine if we can live with just the vendor's method. --- contrib/cvs/src/parseinfo.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/contrib/cvs/src/parseinfo.c b/contrib/cvs/src/parseinfo.c index c206fb7ff914..bf1e095fdd10 100644 --- a/contrib/cvs/src/parseinfo.c +++ b/contrib/cvs/src/parseinfo.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1986-2005 The Free Software Foundation, Inc. + * Copyright (C) 1986-2008 The Free Software Foundation, Inc. * * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot , * and others. @@ -247,6 +247,7 @@ parse_config (cvsroot) /* FIXME-reentrancy: If we do a multi-threaded server, this would need to go to the per-connection data structures. */ static int parsed = 0; + int ignore_unknown_config_keys = 0; /* Authentication code and serve_root might both want to call us. Let this happen smoothly. */ @@ -446,6 +447,23 @@ warning: this CVS does not support PreservePermissions"); /* Recognize cvs-1.12-style keyword control rather than erroring out. */ RCS_setincexc(p); } + else if (strcmp (line, "IgnoreUnknownConfigKeys") == 0) + { + if (strcmp (p, "no") == 0 || strcmp (p, "false") == 0 + || strcmp (p, "off") == 0 || strcmp (p, "0") == 0) + ignore_unknown_config_keys = 0; + else if (strcmp (p, "yes") == 0 || strcmp (p, "true") == 0 + || strcmp (p, "on") == 0 || strcmp (p, "1") == 0) + ignore_unknown_config_keys = 1; + else + { + error (0, 0, "%s: unrecognized value '%s' for '%s'", + infopath, p, line); + goto error_return; + } + } + else if (ignore_unknown_config_keys) + ; else { /* We may be dealing with a keyword which was added in a