Force an over-the-wire transaction when resolving the root of an NFS mount
[dragonfly.git] / gnu / usr.bin / cvs / cvs / parseinfo.c.patch
1 $DragonFly: src/gnu/usr.bin/cvs/cvs/Attic/parseinfo.c.patch,v 1.4 2005/12/07 01:16:30 corecode Exp $
2 Index: src/parseinfo.c
3 ===================================================================
4 RCS file: /space/cvs/dragonfly/src/contrib/cvs-1.12/src/parseinfo.c,v
5 retrieving revision 1.1.1.1
6 diff -u -r1.1.1.1 parseinfo.c
7 --- src/parseinfo.c     7 Dec 2005 00:15:19 -0000       1.1.1.1
8 +++ src/parseinfo.c     7 Dec 2005 01:04:02 -0000
9 @@ -384,6 +384,7 @@
10      size_t len;
11      char *p;
12      struct config *retval;
13 +    int rescan = 0;
14      /* PROCESSING      Whether config keys are currently being processed for
15       *                 this root.
16       * PROCESSED       Whether any keys have been processed for this root.
17 @@ -429,6 +430,7 @@
18  
19      retval = new_config ();
20  
21 +again:
22      fp_info = CVS_FOPEN (infopath, "r");
23      if (!fp_info)
24      {
25 @@ -553,9 +555,11 @@
26             readBool (infopath, "SystemAuth", p, &dummy);
27         }
28  #endif
29 -       else if (strcmp (line, "LocalKeyword") == 0)
30 +       else if (strcmp (line, "LocalKeyword") == 0 ||
31 +                strcmp (line, "tag") == 0)
32             RCS_setlocalid (infopath, ln, &retval->keywords, p);
33 -       else if (strcmp (line, "KeywordExpand") == 0)
34 +       else if (strcmp (line, "KeywordExpand") == 0 ||
35 +                strcmp (line, "tagexpand") == 0)
36             RCS_setincexc (&retval->keywords, p);
37         else if (strcmp (line, "PreservePermissions") == 0)
38         {
39 @@ -719,5 +723,12 @@
40      if (freeinfopath) free (freeinfopath);
41      if (buf) free (buf);
42  
43 +    if (path == NULL && !rescan++) {
44 +       infopath = freeinfopath =
45 +           Xasprintf ("%s/%s/%s", cvsroot, CVSROOTADM, CVSROOTADM_OPTIONS);
46 +       buf = NULL;
47 +       goto again;
48 +    }
49 +
50      return retval;
51  }