*: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/
[oweals/busybox.git] / e2fsprogs / chattr.c
index 35424f842cf386cff2e05bbad2f15dc2a830f633..e783d3e89481ef04c764ae2b3184ed9a01caf485 100644 (file)
@@ -37,27 +37,9 @@ struct globals {
 
 static unsigned long get_flag(char c)
 {
-       /* Two separate vectors take less space than vector of structs */
-       static const char flags_letter[] ALIGN1 = "ASDacdijsutT";
-       static const unsigned long flags_val[] = {
-               /* A */ EXT2_NOATIME_FL,
-               /* S */ EXT2_SYNC_FL,
-               /* D */ EXT2_DIRSYNC_FL,
-               /* a */ EXT2_APPEND_FL,
-               /* c */ EXT2_COMPR_FL,
-               /* d */ EXT2_NODUMP_FL,
-               /* i */ EXT2_IMMUTABLE_FL,
-               /* j */ EXT3_JOURNAL_DATA_FL,
-               /* s */ EXT2_SECRM_FL,
-               /* u */ EXT2_UNRM_FL,
-               /* t */ EXT2_NOTAIL_FL,
-               /* T */ EXT2_TOPDIR_FL,
-       };
-       const char *fp;
-
-       for (fp = flags_letter; *fp; fp++)
-               if (*fp == c)
-                       return flags_val[fp - flags_letter];
+       const char *fp = strchr(e2attr_flags_sname_chattr, c);
+       if (fp)
+               return e2attr_flags_value_chattr[fp - e2attr_flags_sname_chattr];
        bb_show_usage();
 }
 
@@ -142,8 +124,8 @@ static void change_attributes(const char *name, struct globals *gp)
                iterate_on_dir(name, chattr_dir_proc, gp);
 }
 
-int chattr_main(int argc, char **argv);
-int chattr_main(int argc, char **argv)
+int chattr_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+int chattr_main(int argc ATTRIBUTE_UNUSED, char **argv)
 {
        struct globals g;
        char *arg;