cvs-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Cvs-cvs] ccvs/src ChangeLog create_adm.c repos.c


From: Derek Robert Price
Subject: [Cvs-cvs] ccvs/src ChangeLog create_adm.c repos.c
Date: Thu, 25 Sep 2008 20:31:38 +0000

CVSROOT:        /cvsroot/cvs
Module name:    ccvs
Changes by:     Derek Robert Price <dprice>     08/09/25 20:31:38

Modified files:
        src            : ChangeLog create_adm.c repos.c 

Log message:
        * create_adm.c: Some quoting and cleanup.
        * repos.c (Short_Repository): Improve header comment.  Assert truths.
        Strip all trailing slashes.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/ChangeLog?cvsroot=cvs&r1=1.3615&r2=1.3616
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/create_adm.c?cvsroot=cvs&r1=1.57&r2=1.58
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/repos.c?cvsroot=cvs&r1=1.47&r2=1.48

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/ChangeLog,v
retrieving revision 1.3615
retrieving revision 1.3616
diff -u -b -r1.3615 -r1.3616
--- ChangeLog   25 Sep 2008 18:45:07 -0000      1.3615
+++ ChangeLog   25 Sep 2008 20:31:37 -0000      1.3616
@@ -1,5 +1,9 @@
 2008-09-25  Derek R. Price  <address@hidden>
 
+       * create_adm.c: Some quoting and cleanup.
+       * repos.c (Short_Repository): Improve header comment.  Assert truths.
+       Strip all trailing slashes.
+
        * checkout.c: Some Traces.  Some cleanup.
        (checkout_proc): Pass empty update_dir to build_one_dir.
        * create_adm.c: Some cleanup.

Index: create_adm.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/create_adm.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -b -r1.57 -r1.58
--- create_adm.c        25 Sep 2008 18:45:16 -0000      1.57
+++ create_adm.c        25 Sep 2008 20:31:38 -0000      1.58
@@ -45,8 +45,8 @@
               int dotemplate)
 {
     FILE *fout;
-    char *cp;
     char *reposcopy;
+    const char *short_repos;
     char *tmp, *ud;
 
     TRACE (TRACE_FUNCTION, "Create_Admin (%s, %s, %s, %s, %s, %d, %d, %d)",
@@ -59,7 +59,8 @@
     /* A leading "./" looks bad in error messages.  */
     tmp = dir_append (dir, CVSADM);
     if (isfile (tmp))
-       error (1, 0, "there is a version in %s already", quote (update_dir));
+       error (1, 0, "there is a version in %s already",
+              quote (NULL2DOT (update_dir)));
 
     ud = dir_append (update_dir, CVSADM);
     if (!cvs_mkdir (tmp, ud, warn ? 0 : MD_FATAL))
@@ -86,23 +87,12 @@
     reposcopy = xstrdup (repository);
     Sanitize_Repository_Name (reposcopy);
 
-    cp = reposcopy;
-
-    /*
-     * If the Repository file is to hold a relative path, try to strip off
-     * the leading CVSroot argument.
+    /* The Repository file is to hold a relative path, so strip off any
+     * leading CVSroot argument.
      */
-    if (STRNEQ (cp, current_parsed_root->directory,
-               strlen (current_parsed_root->directory)))
-    {
-       cp += strlen (current_parsed_root->directory);
-       if (ISSLASH (*cp))
-           cp += 1;
-       else if (*cp)
-           cp = reposcopy;
-    }
+    short_repos = Short_Repository (reposcopy);
 
-    if (fprintf (fout, "%s\n", NULL2DOT (cp)) < 0)
+    if (fprintf (fout, "%s\n", NULL2DOT (short_repos)) < 0)
        error (1, errno, "write to %s failed",
               quote (dir_append (update_dir, CVSADM_REP)));
     if (fclose (fout) == EOF)

Index: repos.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/repos.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- repos.c     25 Sep 2008 18:45:17 -0000      1.47
+++ repos.c     25 Sep 2008 20:31:38 -0000      1.48
@@ -133,26 +133,30 @@
 
 
 
-/*
- * Return a pointer to the repository name relative to CVSROOT from a
+/* Return a pointer to the repository name relative to CVSROOT from a
  * possibly fully qualified repository
+ *
+ * Given NULL, return NULL.
  */
 const char *
 Short_Repository (const char *repository)
 {
-    if (repository == NULL)
-       return NULL;
+    const char *rep;
 
-    /* If repository matches CVSroot at the beginning, strip off CVSroot */
-    /* And skip leading '/' in rep, in case CVSroot ended with '/'. */
-    if (STRNEQ (original_parsed_root->directory, repository,
-               strlen (original_parsed_root->directory)))
-    {
-       const char *rep = repository + strlen (original_parsed_root->directory);
-       return (*rep == '/') ? rep+1 : rep;
-    }
-    else
+    if (!repository || !ISABSOLUTE (repository))
        return repository;
+
+    /* Strip off a leading CVSroot from the beginning of repository.  */
+    assert (STRNEQ (original_parsed_root->directory, repository,
+                   strlen (original_parsed_root->directory)));
+
+    rep = repository + strlen (original_parsed_root->directory);
+    assert (!*rep || ISSLASH (*rep));
+
+    /* Skip leading slashes in rep, in case CVSroot ended with a slash.  */
+    while (ISSLASH (*rep)) rep++;
+
+    return rep;
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]