From: Thomas G. Lockhart Date: Thu, 9 Oct 1997 05:06:12 +0000 (+0000) Subject: Allow 't', 'T', and even/odd ASCII characters to denote true/false X-Git-Tag: REL9_0_0~28171 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a21c3e353ad52ea34f76b908fa3382f656aa2449;p=pg-rex%2Fsyncrep.git Allow 't', 'T', and even/odd ASCII characters to denote true/false rather than just 't' and 'T'. This allows yes/no and 1/0 to be interpreted as one might expect. Clean up function declarations to use bool as the type for arguments and return values. --- diff --git a/src/backend/utils/adt/bool.c b/src/backend/utils/adt/bool.c index 82760cc8d7..4746e43619 100644 --- a/src/backend/utils/adt/bool.c +++ b/src/backend/utils/adt/bool.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.6 1997/09/08 02:30:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.7 1997/10/09 05:06:12 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -23,20 +23,23 @@ /* * boolin - converts "t" or "f" to 1 or 0 + * + * Check explicitly for "true/TRUE" and allow any odd ASCII value to be "true". + * This handles "true/false", "yes/no", "1/0". - thomas 1997-10-05 */ bool boolin(char *b) { if (b == NULL) elog(WARN, "Bad input string for type bool"); - return ((bool) (*b == 't') || (*b == 'T')); + return ((bool) (((*b) == 't') || ((*b) == 'T') || ((*b) & 1))); } /* * boolout - converts 1 or 0 to "t" or "f" */ -char * -boolout(long b) +char * +boolout(bool b) { char *result = (char *) palloc(2); @@ -50,25 +53,25 @@ boolout(long b) *****************************************************************************/ bool -booleq(int8 arg1, int8 arg2) +booleq(bool arg1, bool arg2) { return (arg1 == arg2); } bool -boolne(int8 arg1, int8 arg2) +boolne(bool arg1, bool arg2) { return (arg1 != arg2); } bool -boollt(int8 arg1, int8 arg2) +boollt(bool arg1, bool arg2) { return (arg1 < arg2); } bool -boolgt(int8 arg1, int8 arg2) +boolgt(bool arg1, bool arg2) { return (arg1 > arg2); }