summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2007-12-05 16:16:56 +0000
committerobrien <obrien@FreeBSD.org>2007-12-05 16:16:56 +0000
commit1463d968d4c78c8f2ec75e67ae543c26ad903a89 (patch)
treeec6c57b3520ba8b99ee650bd4bfe6f78132628d4
parentf4308c36bd85c3c72770d43b2eb2455475aa0709 (diff)
downloadFreeBSD-src-1463d968d4c78c8f2ec75e67ae543c26ad903a89.zip
FreeBSD-src-1463d968d4c78c8f2ec75e67ae543c26ad903a89.tar.gz
2005-10-02 Erez Zadok <ezk@cs.sunysb.edu>
* libamu/strutil.c: rename from util.c to explain better purpose of file.
-rw-r--r--contrib/amd/libamu/util.c176
1 files changed, 0 insertions, 176 deletions
diff --git a/contrib/amd/libamu/util.c b/contrib/amd/libamu/util.c
deleted file mode 100644
index ad16b15..0000000
--- a/contrib/amd/libamu/util.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 1997-2004 Erez Zadok
- * Copyright (c) 1990 Jan-Simon Pendry
- * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Jan-Simon Pendry at Imperial College, London.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * %W% (Berkeley) %G%
- *
- * $Id: util.c,v 1.3.2.4 2004/01/06 03:15:24 ezk Exp $
- *
- */
-
-/*
- * General Utilities.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif /* HAVE_CONFIG_H */
-#include <am_defs.h>
-#include <amu.h>
-
-
-char *
-strnsave(const char *str, int len)
-{
- char *sp = (char *) xmalloc(len + 1);
- memmove(sp, str, len);
- sp[len] = 0;
-
- return sp;
-}
-
-
-/*
- * Concatenate three strings and store in buffer pointed to
- * by p, making p large enough to hold the strings
- */
-char *
-str3cat(char *p, char *s1, char *s2, char *s3)
-{
- int l1 = strlen(s1);
- int l2 = strlen(s2);
- int l3 = strlen(s3);
-
- p = (char *) xrealloc(p, l1 + l2 + l3 + 1);
- memmove(p, s1, l1);
- memmove(p + l1, s2, l2);
- memmove(p + l1 + l2, s3, l3 + 1);
- return p;
-}
-
-
-/*
- * Make all the directories in the path.
- */
-int
-mkdirs(char *path, int mode)
-{
- /*
- * take a copy in case path is in readonly store
- */
- char *p2 = strdup(path);
- char *sp = p2;
- struct stat stb;
- int error_so_far = 0;
-
- /*
- * Skip through the string make the directories.
- * Mostly ignore errors - the result is tested at the end.
- *
- * This assumes we are root so that we can do mkdir in a
- * mode 555 directory...
- */
- while ((sp = strchr(sp + 1, '/'))) {
- *sp = '\0';
- if (mkdir(p2, mode) < 0) {
- error_so_far = errno;
- } else {
-#ifdef DEBUG
- dlog("mkdir(%s)", p2);
-#endif /* DEBUG */
- }
- *sp = '/';
- }
-
- if (mkdir(p2, mode) < 0) {
- error_so_far = errno;
- } else {
-#ifdef DEBUG
- dlog("mkdir(%s)", p2);
-#endif /* DEBUG */
- }
-
- XFREE(p2);
-
- return stat(path, &stb) == 0 &&
- (stb.st_mode & S_IFMT) == S_IFDIR ? 0 : error_so_far;
-}
-
-
-/*
- * Remove as many directories in the path as possible.
- * Give up if the directory doesn't appear to have
- * been created by Amd (not mode dr-x) or an rmdir
- * fails for any reason.
- */
-void
-rmdirs(char *dir)
-{
- char *xdp = strdup(dir);
- char *dp;
-
- do {
- struct stat stb;
- /*
- * Try to find out whether this was
- * created by amd. Do this by checking
- * for owner write permission.
- */
- if (stat(xdp, &stb) == 0 && (stb.st_mode & 0200) == 0) {
- if (rmdir(xdp) < 0) {
- if (errno != ENOTEMPTY &&
- errno != EBUSY &&
- errno != EEXIST &&
- errno != EINVAL)
- plog(XLOG_ERROR, "rmdir(%s): %m", xdp);
- break;
- } else {
-#ifdef DEBUG
- dlog("rmdir(%s)", xdp);
-#endif /* DEBUG */
- }
- } else {
- break;
- }
-
- dp = strrchr(xdp, '/');
- if (dp)
- *dp = '\0';
- } while (dp && dp > xdp);
-
- XFREE(xdp);
-}
OpenPOWER on IntegriCloud