aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cvs/cvs/root.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/cvs/cvs/root.c')
-rw-r--r--gnu/usr.bin/cvs/cvs/root.c182
1 files changed, 0 insertions, 182 deletions
diff --git a/gnu/usr.bin/cvs/cvs/root.c b/gnu/usr.bin/cvs/cvs/root.c
deleted file mode 100644
index e3cb979e31ff..000000000000
--- a/gnu/usr.bin/cvs/cvs/root.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 1992, Mark D. Baushke
- *
- * You may distribute under the terms of the GNU General Public License as
- * specified in the README file that comes with the CVS 1.4 kit.
- *
- * Name of Root
- *
- * Determine the path to the CVSROOT and set "Root" accordingly.
- * If this looks like of modified clone of Name_Repository() in
- * repos.c, it is...
- */
-
-#include "cvs.h"
-
-#ifndef lint
-static const char rcsid[] = "$CVSid: @(#)root.c,v 1.2 1994/09/15 05:32:17 zoo Exp";
-USE(rcsid);
-#endif
-
-char *
-Name_Root(dir, update_dir)
- char *dir;
- char *update_dir;
-{
- FILE *fpin;
- char *ret, *xupdate_dir;
- char root[PATH_MAX];
- char tmp[PATH_MAX];
- char cvsadm[PATH_MAX];
- char *cp;
-
- if (update_dir && *update_dir)
- xupdate_dir = update_dir;
- else
- xupdate_dir = ".";
-
- if (dir != NULL)
- {
- (void) sprintf (cvsadm, "%s/%s", dir, CVSADM);
- (void) sprintf (tmp, "%s/%s", dir, CVSADM_ROOT);
- }
- else
- {
- (void) strcpy (cvsadm, CVSADM);
- (void) strcpy (tmp, CVSADM_ROOT);
- }
-
- /*
- * Do not bother looking for a readable file if there is no cvsadm
- * directory present.
- *
- * It is possible that not all repositories will have a CVS/Root
- * file. This is ok, but the user will need to specify -d
- * /path/name or have the environment variable CVSROOT set in
- * order to continue.
- */
- if ((!isdir (cvsadm)) || (!isreadable (tmp)))
- {
- if (CVSroot == NULL)
- {
- error (0, 0, "in directory %s:", xupdate_dir);
- error (0, 0, "must set the CVSROOT environment variable");
- error (0, 0, "or specify the '-d' option to %s.", program_name);
- }
- return (NULL);
- }
-
- /*
- * The assumption here is that the CVS Root is always contained in the
- * first line of the "Root" file.
- */
- fpin = open_file (tmp, "r");
-
- if (fgets (root, PATH_MAX, fpin) == NULL)
- {
- error (0, 0, "in directory %s:", xupdate_dir);
- error (0, errno, "cannot read %s", CVSADM_ROOT);
- error (0, 0, "please correct this problem");
- return (NULL);
- }
- (void) fclose (fpin);
- if ((cp = strrchr (root, '\n')) != NULL)
- *cp = '\0'; /* strip the newline */
-
- /*
- * root now contains a candidate for CVSroot. It must be an
- * absolute pathname
- */
-
-#ifdef CLIENT_SUPPORT
- /* It must specify a server via remote CVS or be an absolute pathname. */
- if ((strchr (root, ':') == NULL)
- && ! isabsolute (root))
-#else
- if (root[0] != '/')
-#endif
- {
- error (0, 0, "in directory %s:", xupdate_dir);
- error (0, 0,
- "ignoring %s because it does not contain an absolute pathname.",
- CVSADM_ROOT);
- return (NULL);
- }
-
-#ifdef CLIENT_SUPPORT
- if ((strchr (root, ':') == NULL) && !isdir (root))
-#else
- if (!isdir (root))
-#endif
- {
- error (0, 0, "in directory %s:", xupdate_dir);
- error (0, 0,
- "ignoring %s because it specifies a non-existent repository %s",
- CVSADM_ROOT, root);
- return (NULL);
- }
-
- /* allocate space to return and fill it in */
- strip_path (root);
- ret = xstrdup (root);
- return (ret);
-}
-
-/*
- * Returns non-zero if the two directories have the same stat values
- * which indicates that they are really the same directories.
- */
-int
-same_directories (dir1, dir2)
- char *dir1;
- char *dir2;
-{
- struct stat sb1;
- struct stat sb2;
- int ret;
-
- if (stat (dir1, &sb1) < 0)
- return (0);
- if (stat (dir2, &sb2) < 0)
- return (0);
-
- ret = 0;
- if ( (memcmp( &sb1.st_dev, &sb2.st_dev, sizeof(dev_t) ) == 0) &&
- (memcmp( &sb1.st_ino, &sb2.st_ino, sizeof(ino_t) ) == 0))
- ret = 1;
-
- return (ret);
-}
-
-
-/*
- * Write the CVS/Root file so that the environment variable CVSROOT
- * and/or the -d option to cvs will be validated or not necessary for
- * future work.
- */
-void
-Create_Root (dir, rootdir)
- char *dir;
- char *rootdir;
-{
- FILE *fout;
- char tmp[PATH_MAX];
-
- if (noexec)
- return;
-
- /* record the current cvs root */
-
- if (rootdir != NULL)
- {
- if (dir != NULL)
- (void) sprintf (tmp, "%s/%s", dir, CVSADM_ROOT);
- else
- (void) strcpy (tmp, CVSADM_ROOT);
- fout = open_file (tmp, "w+");
- if (fprintf (fout, "%s\n", rootdir) < 0)
- error (1, errno, "write to %s failed", tmp);
- if (fclose (fout) == EOF)
- error (1, errno, "cannot close %s", tmp);
- }
-}