diff options
Diffstat (limited to 'sysutils/xfsprogs/patches/patch-ah')
-rw-r--r-- | sysutils/xfsprogs/patches/patch-ah | 129 |
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) + { |