Whamcloud - gitweb
git://git.whamcloud.com
/
tools
/
e2fsprogs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update version tag to 1.47.1-rc1 for test builds
[tools/e2fsprogs.git]
/
misc
/
lsattr.c
diff --git
a/misc/lsattr.c
b/misc/lsattr.c
index
15b17ad
..
72f4c68
100644
(file)
--- a/
misc/lsattr.c
+++ b/
misc/lsattr.c
@@
-19,6
+19,7
@@
#define _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
+#include "config.h"
#include <sys/types.h>
#include <dirent.h>
#ifdef HAVE_ERRNO_H
#include <sys/types.h>
#include <dirent.h>
#ifdef HAVE_ERRNO_H
@@
-42,8
+43,8
@@
extern char *optarg;
#include "et/com_err.h"
#include "e2p/e2p.h"
#include "et/com_err.h"
#include "e2p/e2p.h"
+#include "support/nls-enable.h"
#include "../version.h"
#include "../version.h"
-#include "nls-enable.h"
#ifdef __GNUC__
#define EXT2FS_ATTR(x) __attribute__(x)
#ifdef __GNUC__
#define EXT2FS_ATTR(x) __attribute__(x)
@@
-59,6
+60,7
@@
static unsigned pf_options;
static int recursive;
static int verbose;
static int generation_opt;
static int recursive;
static int verbose;
static int generation_opt;
+static int project_opt;
#ifdef _LFS64_LARGEFILE
#define LSTAT lstat64
#ifdef _LFS64_LARGEFILE
#define LSTAT lstat64
@@
-70,7
+72,7
@@
static int generation_opt;
static void usage(void)
{
static void usage(void)
{
- fprintf(stderr, _("Usage: %s [-RVadlv] [files...]\n"), program_name);
+ fprintf(stderr, _("Usage: %s [-RVadl
p
v] [files...]\n"), program_name);
exit(1);
}
exit(1);
}
@@
-78,12
+80,22
@@
static int list_attributes (const char * name)
{
unsigned long flags;
unsigned long generation;
{
unsigned long flags;
unsigned long generation;
+ unsigned long project;
if (fgetflags (name, &flags) == -1) {
com_err (program_name, errno, _("While reading flags on %s"),
name);
return -1;
}
if (fgetflags (name, &flags) == -1) {
com_err (program_name, errno, _("While reading flags on %s"),
name);
return -1;
}
+ if (project_opt) {
+ if (fgetproject(name, &project) == -1) {
+ com_err (program_name, errno,
+ _("While reading project on %s"),
+ name);
+ return -1;
+ }
+ printf ("%5lu ", project);
+ }
if (generation_opt) {
if (fgetversion (name, &generation) == -1) {
com_err (program_name, errno,
if (generation_opt) {
if (fgetversion (name, &generation) == -1) {
com_err (program_name, errno,
@@
-91,7
+103,7
@@
static int list_attributes (const char * name)
name);
return -1;
}
name);
return -1;
}
- printf ("%
5
lu ", generation);
+ printf ("%
-10
lu ", generation);
}
if (pf_options & PFOPT_LONG) {
printf("%-28s ", name);
}
if (pf_options & PFOPT_LONG) {
printf("%-28s ", name);
@@
-132,6
+144,11
@@
static int lsattr_dir_proc (const char * dir_name, struct dirent * de,
int dir_len = strlen(dir_name);
path = malloc(dir_len + strlen (de->d_name) + 2);
int dir_len = strlen(dir_name);
path = malloc(dir_len + strlen (de->d_name) + 2);
+ if (!path) {
+ fputs(_("Couldn't allocate path variable in lsattr_dir_proc\n"),
+ stderr);
+ return -1;
+ }
if (dir_len && dir_name[dir_len-1] == '/')
sprintf (path, "%s%s", dir_name, de->d_name);
if (dir_len && dir_name[dir_len-1] == '/')
sprintf (path, "%s%s", dir_name, de->d_name);
@@
-166,10
+183,13
@@
int main (int argc, char ** argv)
setlocale(LC_CTYPE, "");
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
textdomain(NLS_CAT_NAME);
setlocale(LC_CTYPE, "");
bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
textdomain(NLS_CAT_NAME);
+ set_com_err_gettext(gettext);
#endif
if (argc && *argv)
program_name = *argv;
#endif
if (argc && *argv)
program_name = *argv;
- while ((c = getopt (argc, argv, "RVadlv")) != EOF)
+ else
+ usage();
+ while ((c = getopt (argc, argv, "RVadlvp")) != EOF)
switch (c)
{
case 'R':
switch (c)
{
case 'R':
@@
-190,6
+210,9
@@
int main (int argc, char ** argv)
case 'v':
generation_opt = 1;
break;
case 'v':
generation_opt = 1;
break;
+ case 'p':
+ project_opt = 1;
+ break;
default:
usage();
}
default:
usage();
}