• merge latest version of rannotate code from corecode
[alioth/cvs.git] / src / import.c
index 0ced5ee..c09473a 100644 (file)
@@ -238,6 +238,23 @@ import (int argc, char **argv)
        regfree (&pat);
     }
 
+    /*
+     * If you use even vendor branches, something evil[TM] can happen.
+     */
+    {
+       regex_t pat;
+       assert (!regcomp (&pat, "^[1-9][0-9]*\\.[1-9][0-9]*\\.[0-9]*[13579]$",
+                         REG_EXTENDED));
+       if (regexec (&pat, vbranch, 0, NULL, 0))
+       {
+           error (0, 0,
+                  "warning: you are using an even vendor branch, which can\n"
+                  "lead to problems: '%s'.  Use for example: '1.1.3' or '1.1.5'.",
+                  vbranch);
+       }
+       regfree (&pat);
+    }
+
     /* Set vhead to the branch's parent.  */
     vhead = xstrdup (vbranch);
     cp = strrchr (vhead, '.');
@@ -311,6 +328,7 @@ import (int argc, char **argv)
        free (vhead);
        send_to_server ("import\012", 0);
        err += get_responses_and_close ();
+       logmsg_cleanup(err);
        return err;
     }
 #endif
@@ -436,6 +454,7 @@ import (int argc, char **argv)
     free (vbranch);
     free (vhead);
 
+    logmsg_cleanup(err);
     return err;
 }
 
@@ -595,7 +614,7 @@ process_import_file (char *message, char *vfile, char *vtag, int targc,
                /* Attempt to make the Attic directory, in case it
                   does not exist.  */
                (void) sprintf (rcs, "%s/%s", repository, CVSATTIC);
-               if (CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
+               if (noexec == 0 && CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
                    error (1, errno, "cannot make directory `%s'", rcs);
 
                /* Note that the above clobbered the path name, so we
@@ -1253,7 +1272,7 @@ add_rcs_file (const char *message, const char *rcs, const char *user,
        (void) time (&now);
     ftm = gmtime (&now);
     (void) sprintf (altdate1, DATEFORM,
-                   ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
+                   (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
                    ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
                    ftm->tm_min, ftm->tm_sec);
     author = getcaller ();