summaryrefslogtreecommitdiff
path: root/sysutils/xfsprogs/patches/patch-ah
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/xfsprogs/patches/patch-ah')
-rw-r--r--sysutils/xfsprogs/patches/patch-ah129
1 files changed, 129 insertions, 0 deletions
diff --git a/sysutils/xfsprogs/patches/patch-ah b/sysutils/xfsprogs/patches/patch-ah
new file mode 100644
index 00000000000..51921aac0ed
--- /dev/null
+++ b/sysutils/xfsprogs/patches/patch-ah
@@ -0,0 +1,129 @@
+$NetBSD: patch-ah,v 1.1.1.1 2005/12/30 23:03:06 agc Exp $
+
+--- libxcmd/input.c 2005/12/30 10:39:51 1.1
++++ libxcmd/input.c 2005/12/30 10:41:49
+@@ -40,6 +40,124 @@
+ # include <histedit.h>
+ #endif
+
++#ifndef HAVE_FTW_H
++/* NetBSD */
++
++/* From OpenBSD: nftw.c,v 1.2 2003/07/21 21:15:32 millert Exp */
++
++/*
++ * Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com>
++ *
++ * 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.
++ *
++ * Sponsored in part by the Defense Advanced Research Projects
++ * Agency (DARPA) and Air Force Research Laboratory, Air Force
++ * Materiel Command, USAF, under agreement number F39502-99-1-0512.
++ */
++
++#include <sys/cdefs.h>
++
++#ifndef lint
++__RCSID("From NetBSD");
++#endif
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <errno.h>
++#include <fts.h>
++#include <ftw.h>
++#include <limits.h>
++
++int
++nftw(const char *path, int (*fn)(const char *, const struct stat *, int,
++ struct FTW *), int nfds, int ftwflags)
++{
++ const char *paths[2];
++ struct FTW f;
++ FTSENT *cur;
++ FTS *ftsp;
++ int ftsflags, fnflag, error, postorder, sverrno;
++
++ /* XXX - nfds is currently unused */
++ if (nfds < 1 || nfds > OPEN_MAX) {
++ errno = EINVAL;
++ return (-1);
++ }
++
++ ftsflags = FTS_COMFOLLOW;
++ if (!(ftwflags & FTW_CHDIR))
++ ftsflags |= FTS_NOCHDIR;
++ if (ftwflags & FTW_MOUNT)
++ ftsflags |= FTS_XDEV;
++ if (ftwflags & FTW_PHYS)
++ ftsflags |= FTS_PHYSICAL;
++ postorder = (ftwflags & FTW_DEPTH) != 0;
++ paths[0] = path;
++ paths[1] = NULL;
++ ftsp = fts_open((char * const *)paths, ftsflags, NULL);
++ if (ftsp == NULL)
++ return (-1);
++ error = 0;
++ while ((cur = fts_read(ftsp)) != NULL) {
++ switch (cur->fts_info) {
++ case FTS_D:
++ if (postorder)
++ continue;
++ fnflag = FTW_D;
++ break;
++ case FTS_DNR:
++ fnflag = FTW_DNR;
++ break;
++ case FTS_DP:
++ if (!postorder)
++ continue;
++ fnflag = FTW_DP;
++ break;
++ case FTS_F:
++ case FTS_DEFAULT:
++ fnflag = FTW_F;
++ break;
++ case FTS_NS:
++ case FTS_NSOK:
++ fnflag = FTW_NS;
++ break;
++ case FTS_SL:
++ fnflag = FTW_SL;
++ break;
++ case FTS_SLNONE:
++ fnflag = FTW_SLN;
++ break;
++ case FTS_DC:
++ errno = ELOOP;
++ /* FALLTHROUGH */
++ default:
++ error = -1;
++ goto done;
++ }
++ f.base = cur->fts_pathlen - cur->fts_namelen;
++ f.level = cur->fts_level;
++ error = fn(cur->fts_path, cur->fts_statp, fnflag, &f);
++ if (error != 0)
++ break;
++ }
++done:
++ sverrno = errno;
++ (void) fts_close(ftsp);
++ errno = sverrno;
++ return (error);
++}
++#endif
++
+ static char *
+ get_prompt(void)
+ {