summaryrefslogtreecommitdiffstats
path: root/misc-utils/namei.c
diff options
context:
space:
mode:
authorKarel Zak2007-11-26 14:58:29 +0100
committerKarel Zak2007-11-26 15:00:16 +0100
commite27a08abb743d32c8834d79fc7741c32e618e476 (patch)
tree1b7b0249f40f5e2cd32aa13630f210986558bfbe /misc-utils/namei.c
parentwall: cleanup MAXHOSTNAMELEN (diff)
downloadkernel-qcow2-util-linux-e27a08abb743d32c8834d79fc7741c32e618e476.tar.gz
kernel-qcow2-util-linux-e27a08abb743d32c8834d79fc7741c32e618e476.tar.xz
kernel-qcow2-util-linux-e27a08abb743d32c8834d79fc7741c32e618e476.zip
namei: non-linux support (get_current_dir_name() and PATH_MAX)
Co-Author: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/namei.c')
-rw-r--r--misc-utils/namei.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/misc-utils/namei.c b/misc-utils/namei.c
index 0db176a68..e8f7a8bd8 100644
--- a/misc-utils/namei.c
+++ b/misc-utils/namei.c
@@ -73,6 +73,10 @@ int xflag = 0;
#define MAXSYMLINKS 256
#endif
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
static char *pperm(unsigned short);
static void namei(char *, int, mode_t *);
static void usage(void);
@@ -81,7 +85,11 @@ int
main(int argc, char **argv) {
extern int optind;
int c;
- char curdir[MAXPATHLEN];
+#ifdef HAVE_GET_CURRENT_DIR_NAME
+ char *curdir;
+#else
+ char curdir[PATH_MAX];
+#endif
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
@@ -106,7 +114,12 @@ main(int argc, char **argv) {
}
}
- if(getcwd(curdir, sizeof(curdir)) == NULL){
+#ifdef HAVE_GET_CURRENT_DIR_NAME
+ if (!(curdir = get_current_dir_name()))
+#else
+ if(getcwd(curdir, sizeof(curdir)) == NULL)
+#endif
+ {
(void)fprintf(stderr,
_("namei: unable to get current directory - %s\n"),
curdir);
@@ -140,8 +153,6 @@ usage(void) {
#define NODEV (dev_t)(-1)
#endif
-int kzak;
-
static void
namei(char *file, int lev, mode_t *lastmode) {
char *cp;