diff options
Diffstat (limited to 'devel/got/files/openbsd-compat')
-rw-r--r-- | devel/got/files/openbsd-compat/Makefile | 4 | ||||
-rw-r--r-- | devel/got/files/openbsd-compat/basename.c | 65 | ||||
-rw-r--r-- | devel/got/files/openbsd-compat/dirname.c | 71 | ||||
-rw-r--r-- | devel/got/files/openbsd-compat/openbsd-compat.h | 11 |
4 files changed, 1 insertions, 150 deletions
diff --git a/devel/got/files/openbsd-compat/Makefile b/devel/got/files/openbsd-compat/Makefile index 68efdd3bb100..b07dd011928c 100644 --- a/devel/got/files/openbsd-compat/Makefile +++ b/devel/got/files/openbsd-compat/Makefile @@ -1,9 +1,7 @@ LIB= openbsd-compat INTERNALLIB= -SRCS= basename.c \ - dirname.c \ - freezero.c \ +SRCS= freezero.c \ getdtablecount.c \ imsg.c \ imsg-buffer.c \ diff --git a/devel/got/files/openbsd-compat/basename.c b/devel/got/files/openbsd-compat/basename.c deleted file mode 100644 index 84e9d13de81e..000000000000 --- a/devel/got/files/openbsd-compat/basename.c +++ /dev/null @@ -1,65 +0,0 @@ -/* $OpenBSD: basename.c,v 1.16 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1997, 2004 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <errno.h> -#include <libgen.h> -#include <limits.h> -#include <string.h> - -#include <openbsd-compat.h> - -char * -basename(const char *path) -{ - static char bname[PATH_MAX]; - size_t len; - const char *endp, *startp; - - /* Empty or NULL string gets treated as "." */ - if (path == NULL || *path == '\0') { - bname[0] = '.'; - bname[1] = '\0'; - return (bname); - } - - /* Strip any trailing slashes */ - endp = path + strlen(path) - 1; - while (endp > path && *endp == '/') - endp--; - - /* All slashes becomes "/" */ - if (endp == path && *endp == '/') { - bname[0] = '/'; - bname[1] = '\0'; - return (bname); - } - - /* Find the start of the base */ - startp = endp; - while (startp > path && *(startp - 1) != '/') - startp--; - - len = endp - startp + 1; - if (len >= sizeof(bname)) { - errno = ENAMETOOLONG; - return (NULL); - } - memcpy(bname, startp, len); - bname[len] = '\0'; - return (bname); -} diff --git a/devel/got/files/openbsd-compat/dirname.c b/devel/got/files/openbsd-compat/dirname.c deleted file mode 100644 index 1973f82ef481..000000000000 --- a/devel/got/files/openbsd-compat/dirname.c +++ /dev/null @@ -1,71 +0,0 @@ -/* $OpenBSD: dirname.c,v 1.16 2019/01/25 00:19:25 millert Exp $ */ - -/* - * Copyright (c) 1997, 2004 Todd C. Miller <millert@openbsd.org> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <errno.h> -#include <libgen.h> -#include <limits.h> -#include <string.h> - -#include <openbsd-compat.h> - -/* A slightly modified copy of this file exists in libexec/ld.so */ - -char * -dirname(const char *path) -{ - static char dname[PATH_MAX]; - size_t len; - const char *endp; - - /* Empty or NULL string gets treated as "." */ - if (path == NULL || *path == '\0') { - dname[0] = '.'; - dname[1] = '\0'; - return (dname); - } - - /* Strip any trailing slashes */ - endp = path + strlen(path) - 1; - while (endp > path && *endp == '/') - endp--; - - /* Find the start of the dir */ - while (endp > path && *endp != '/') - endp--; - - /* Either the dir is "/" or there are no slashes */ - if (endp == path) { - dname[0] = *endp == '/' ? '/' : '.'; - dname[1] = '\0'; - return (dname); - } else { - /* Move forward past the separating slashes */ - do { - endp--; - } while (endp > path && *endp == '/'); - } - - len = endp - path + 1; - if (len >= sizeof(dname)) { - errno = ENAMETOOLONG; - return (NULL); - } - memcpy(dname, path, len); - dname[len] = '\0'; - return (dname); -} diff --git a/devel/got/files/openbsd-compat/openbsd-compat.h b/devel/got/files/openbsd-compat/openbsd-compat.h index 160184ac8bcd..30267cfab011 100644 --- a/devel/got/files/openbsd-compat/openbsd-compat.h +++ b/devel/got/files/openbsd-compat/openbsd-compat.h @@ -57,17 +57,6 @@ int open_posix(const char *path, int flags, ...); int openat_posix(int fd, const char *path, int flags, ...); /* - * <libgen.h> - */ -#undef basename -#undef dirname -#define basename(path) basename_const(path) -#define dirname(path) dirname_const(path) - -char *basename(const char *); -char *dirname(const char *); - -/* * <stdlib.h> */ void freezero(void *, size_t); |