Add a compile-time assertion that the slack_codes
authorJim Meyering <jim@meyering.net>
Mon, 24 Oct 2005 09:43:01 +0000 (09:43 +0000)
committerJim Meyering <jim@meyering.net>
Mon, 24 Oct 2005 09:43:01 +0000 (09:43 +0000)
and ls_codes arrays have the same number of elements.  This would
have prevented the above-fixed bug.

src/dircolors.c

index ace0d78..9534d26 100644 (file)
@@ -62,7 +62,6 @@ enum Shell_syntax
    variable.  */
 static struct obstack lsc_obstack;
 
-/* FIXME: associate with ls_codes? */
 static const char *const slack_codes[] =
 {
   "NORMAL", "NORM", "FILE", "DIR", "LNK", "LINK",
@@ -78,6 +77,8 @@ static const char *const ls_codes[] =
   "so", "bd", "bd", "cd", "cd", "do", "ex", "lc", "lc", "rc", "rc", "ec", "ec"
   "su", "su", "sg", "sg", "st", "ow", "ow", "tw", "tw", NULL
 };
+#define array_cardinality(Array) (sizeof (Array) / sizeof *(Array))
+verify (array_cardinality (slack_codes) == array_cardinality (ls_codes));
 
 static struct option const long_options[] =
   {