From: Bruce Momjian Date: Sat, 23 Dec 2006 00:52:40 +0000 (+0000) Subject: For GUC values, check for partial string matches on 'on' and 'off', but X-Git-Tag: REL8_3_BETA1~1665 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=27eeca5c5be1f4d6cc585713ac94b83e6ee989ac;p=thirdparty%2Fpostgresql.git For GUC values, check for partial string matches on 'on' and 'off', but require at least two characters for uniqueness. This now matches the behavior of other boolean strings we support, per report from Gurjeet Singh. --- diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index d38bc6f9326..6c6ff1fb5a3 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.362 2006/12/13 05:54:48 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.363 2006/12/23 00:52:40 momjian Exp $ * *-------------------------------------------------------------------- */ @@ -3575,12 +3575,13 @@ parse_bool(const char *value, bool *result) *result = false; } - else if (pg_strcasecmp(value, "on") == 0) + /* 'o' is not unique enough */ + else if (pg_strncasecmp(value, "on", (len > 2 ? len : 2)) == 0) { if (result) *result = true; } - else if (pg_strcasecmp(value, "off") == 0) + else if (pg_strncasecmp(value, "off", (len > 2 ? len : 2)) == 0) { if (result) *result = false;