X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=wildcard.c;h=c1cb0b49e657169493aacb48a0d1454426a987e8;hb=7705fc4470b76ec7979dc00e5c97efd720d5e335;hp=a09f2c1dbff7b1c978b0efd3a70268902c54f83a;hpb=2f1e76e843e56d7adf5c71c110508e8cd26b02c0;p=PuTTY.git diff --git a/wildcard.c b/wildcard.c index a09f2c1d..c1cb0b49 100644 --- a/wildcard.c +++ b/wildcard.c @@ -29,6 +29,17 @@ * - All other characters are non-special and match themselves. */ +/* + * Some notes on differences from POSIX globs (IEEE Std 1003.1, 2003 ed.): + * - backslashes act as escapes even within [] bracket expressions + * - does not support [!...] for non-matching list (POSIX are weird); + * NB POSIX allows [^...] as well via "A bracket expression starting + * with an unquoted circumflex character produces unspecified + * results". If we wanted to allow [!...] we might want to define + * [^!] as having its literal meaning (match '^' or '!'). + * - none of the scary [[:class:]] stuff, etc + */ + /* * The wildcard matching technique we use is very simple and * potentially O(N^2) in running time, but I don't anticipate it @@ -315,7 +326,8 @@ int wc_unescape(char *output, const char *wildcard) wildcard++; } } - *output = '\0'; + if (output) + *output = '\0'; return 1; /* it's clean */ }