-OPTION options[] = {
- "!", T_NOT, c_not, O_ZERO,
- "(", T_OPENPAREN, c_openparen, O_ZERO,
- ")", T_CLOSEPAREN, c_closeparen, O_ZERO,
- "a", T_AND, NULL, O_NONE|O_OLD,
- "and", T_AND, NULL, O_NONE|O_NEW,
- "atime", T_ATIME, c_atime, O_ARGV,
- "ctime", T_CTIME, c_ctime, O_ARGV,
- "depth", T_DEPTH, c_depth, O_ZERO|O_OLD,
- "exec", T_EXEC, c_exec, O_ARGVP,
- "follow", T_FOLLOW, c_follow, O_ZERO|O_OLD,
- "fstype", T_FSTYPE, c_fstype, O_ARGV,
- "group", T_GROUP, c_group, O_ARGV,
- "inum", T_INUM, c_inum, O_ARGV,
- "links", T_LINKS, c_links, O_ARGV,
- "ls", T_LS, c_ls, O_ZERO,
- "mtime", T_MTIME, c_mtime, O_ARGV,
- "name", T_NAME, c_name, O_ARGV,
- "newer", T_NEWER, c_newer, O_ARGV,
- "nogroup", T_NOGROUP, c_nogroup, O_ZERO,
- "nouser", T_NOUSER, c_nouser, O_ZERO,
- "o", T_OR, c_or, O_ZERO|O_OLD,
- "ok", T_OK, c_exec, O_ARGVP,
- "or", T_OR, c_or, O_ZERO|O_NEW,
- "perm", T_PERM, c_perm, O_ARGV,
- "print", T_PRINT, c_print, O_ZERO,
- "prune", T_PRUNE, c_prune, O_ZERO,
- "size", T_SIZE, c_size, O_ARGV,
- "type", T_TYPE, c_type, O_ARGV,
- "user", T_USER, c_user, O_ARGV,
- "xdev", T_XDEV, c_xdev, O_ZERO|O_OLD,
- { NULL },
+/* NB: the following table must be sorted lexically. */
+static OPTION options[] = {
+ { "!", N_NOT, c_not, O_ZERO },
+ { "(", N_OPENPAREN, c_openparen, O_ZERO },
+ { ")", N_CLOSEPAREN, c_closeparen, O_ZERO },
+ { "-a", N_AND, NULL, O_NONE },
+ { "-and", N_AND, NULL, O_NONE },
+ { "-atime", N_ATIME, c_atime, O_ARGV },
+ { "-ctime", N_CTIME, c_ctime, O_ARGV },
+ { "-depth", N_DEPTH, c_depth, O_ZERO },
+ { "-exec", N_EXEC, c_exec, O_ARGVP },
+ { "-follow", N_FOLLOW, c_follow, O_ZERO },
+ { "-fstype", N_FSTYPE, c_fstype, O_ARGV },
+ { "-group", N_GROUP, c_group, O_ARGV },
+ { "-inum", N_INUM, c_inum, O_ARGV },
+ { "-links", N_LINKS, c_links, O_ARGV },
+ { "-ls", N_LS, c_ls, O_ZERO },
+ { "-mtime", N_MTIME, c_mtime, O_ARGV },
+ { "-name", N_NAME, c_name, O_ARGV },
+ { "-newer", N_NEWER, c_newer, O_ARGV },
+ { "-nogroup", N_NOGROUP, c_nogroup, O_ZERO },
+ { "-nouser", N_NOUSER, c_nouser, O_ZERO },
+ { "-o", N_OR, c_or, O_ZERO },
+ { "-ok", N_OK, c_exec, O_ARGVP },
+ { "-or", N_OR, c_or, O_ZERO },
+ { "-path", N_PATH, c_path, O_ARGV },
+ { "-perm", N_PERM, c_perm, O_ARGV },
+ { "-print", N_PRINT, c_print, O_ZERO },
+ { "-prune", N_PRUNE, c_prune, O_ZERO },
+ { "-size", N_SIZE, c_size, O_ARGV },
+ { "-type", N_TYPE, c_type, O_ARGV },
+ { "-user", N_USER, c_user, O_ARGV },
+ { "-xdev", N_XDEV, c_xdev, O_ZERO },