X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/820ebe3b54a21cfb8d42e43c567d952415c1d05d..33f07e9636e80bb17f25f97145ca2e0eb262db30:/cmdline.c diff --git a/cmdline.c b/cmdline.c index eb98f606..a67b0132 100644 --- a/cmdline.c +++ b/cmdline.c @@ -51,6 +51,14 @@ static void cmdline_save_param(char *p, char *value, int pri) saves[pri].nsaved++; } +void cmdline_cleanup(void) +{ + int pri; + + for (pri = 0; pri < NPRIORITIES; pri++) + sfree(saves[pri].params); +} + #define SAVEABLE(pri) do { \ if (need_save) { cmdline_save_param(p, value, pri); return ret; } \ } while (0) @@ -103,6 +111,12 @@ static int cmdline_check_unavailable(int flag, char *p) * Process a standard command-line parameter. `p' is the parameter * in question; `value' is the subsequent element of argv, which * may or may not be required as an operand to the parameter. + * If `need_save' is 1, arguments which need to be saved as + * described at this top of this file are, for later execution; + * if 0, they are processed normally. (-1 is a special value used + * by pterm to count arguments for a preliminary pass through the + * argument list; it causes immediate return with an appropriate + * value with no action taken.) * Return value is 2 if both arguments were used; 1 if only p was * used; 0 if the parameter wasn't one we recognised; -2 if it * should have been 2 but value was NULL.