-/* Store the lockable_boolean {2, 1, 0, -1} value from VAL to CLOSURE.
- COM is ignored, except for error messages. Values 2 and -1
- indicate that once defined, the value may not be changed by
- successive wgetrc files or command-line arguments.
-
- Values: 2 - Enable a particular option for good ("always")
- 1 - Enable an option ("on")
- 0 - Disable an option ("off")
- -1 - Disable an option for good ("never") */
-static int
-cmd_lockable_boolean (const char *com, const char *val, void *closure)
-{
- int lockable_boolean_value;
-
- int oldval = *(int *)closure;
-
- /*
- * If a config file said "always" or "never", don't allow command line
- * arguments to override the config file.
- */
- if (oldval == -1 || oldval == 2)
- return 1;
-
- if (0 == strcasecmp (val, "always") || CMP1 (val, '2'))
- lockable_boolean_value = 2;
- else if (CMP2 (val, 'o', 'n') || CMP3 (val, 'y', 'e', 's') || CMP1 (val, '1'))
- lockable_boolean_value = 1;
- else if (CMP3 (val, 'o', 'f', 'f') || CMP2 (val, 'n', 'o') || CMP1 (val, '0'))
- lockable_boolean_value = 0;
- else if (0 == strcasecmp (val, "never") || CMP2 (val, '-', '1'))
- lockable_boolean_value = -1;
- else
- {
- fprintf (stderr,
- _("%s: %s: Invalid boolean `%s', use always, on, off, or never.\n"),
- exec_name, com, val);
- return 0;
- }
-
- *(int *)closure = lockable_boolean_value;
- return 1;
-}
-
-static int simple_atoi PARAMS ((const char *, const char *, int *));
-
-/* Set the non-negative integer value from VAL to CLOSURE. With