Whamcloud - gitweb
Fix up Andreas's 8k blocksize changes to fix a number of bugs,
[tools/e2fsprogs.git] / misc / lsattr.c
index 6b5a8eb..513b41a 100644 (file)
@@ -18,7 +18,6 @@
  */
 
 #define _LARGEFILE64_SOURCE
-#define _FILE_OFFSET_BITS 64
 
 #include <sys/types.h>
 #include <dirent.h>
@@ -55,6 +54,14 @@ static int recursive;
 static int verbose;
 static int generation_opt;
 
+#ifdef _LFS64_LARGEFILE
+#define LSTAT          lstat64
+#define STRUCT_STAT    struct stat64
+#else
+#define LSTAT          lstat
+#define STRUCT_STAT    struct stat
+#endif
+
 static void usage(void)
 {
        fprintf(stderr, _("Usage: %s [-RVadlv] [files...]\n"), program_name);
@@ -94,9 +101,9 @@ static int lsattr_dir_proc (const char *, struct dirent *, void *);
 
 static void lsattr_args (const char * name)
 {
-       struct stat st;
+       STRUCT_STAT     st;
 
-       if (lstat (name, &st) == -1)
+       if (LSTAT (name, &st) == -1)
                com_err (program_name, errno, _("while trying to stat %s"),
                         name);
        else {
@@ -109,13 +116,13 @@ static void lsattr_args (const char * name)
 
 static int lsattr_dir_proc (const char * dir_name, struct dirent * de, void * private)
 {
-       struct stat st;
+       STRUCT_STAT     st;
        char *path;
 
        path = malloc(strlen (dir_name) + 1 + strlen (de->d_name) + 1);
 
        sprintf (path, "%s/%s", dir_name, de->d_name);
-       if (lstat (path, &st) == -1)
+       if (LSTAT (path, &st) == -1)
                perror (path);
        else {
                if (de->d_name[0] != '.' || all) {
@@ -140,6 +147,7 @@ int main (int argc, char ** argv)
 
 #ifdef ENABLE_NLS
        setlocale(LC_MESSAGES, "");
+       setlocale(LC_CTYPE, "");
        bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
        textdomain(NLS_CAT_NAME);
 #endif
@@ -171,9 +179,8 @@ int main (int argc, char ** argv)
                }
 
        if (verbose)
-               fprintf (stderr, _("lsattr %s, %s for EXT2 FS %s, %s\n"),
-                        E2FSPROGS_VERSION, E2FSPROGS_DATE,
-                        EXT2FS_VERSION, EXT2FS_DATE);
+               fprintf (stderr, "lsattr %s (%s)\n",
+                        E2FSPROGS_VERSION, E2FSPROGS_DATE);
        if (optind > argc - 1)
                lsattr_args (".");
        else