mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
Accept additional values for TRUE: y, Y, 1.
Leave all other input values to return FALSE. In next version, do more checking for valid inputs for both TRUE and FALSE.
This commit is contained in:
parent
9c800b8e48
commit
962c8bd66d
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.7 1997/10/09 05:06:12 thomas Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.8 1997/10/17 05:38:32 thomas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -24,16 +24,50 @@
|
||||
/*
|
||||
* 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
|
||||
* Check explicitly for "true/false" and TRUE/FALSE, 1/0, YES/NO.
|
||||
* Reject other values. - thomas 1997-10-05
|
||||
* For now, allow old behavior of everything FALSE if not TRUE.
|
||||
* After v6.2.1 release, then enable code to reject goofy values.
|
||||
* Also, start checking the entire string rather than just the first character.
|
||||
* - thomas 1997-10-16
|
||||
*
|
||||
* In the switch statement, check the most-used possibilities first.
|
||||
*/
|
||||
bool
|
||||
boolin(char *b)
|
||||
{
|
||||
if (b == NULL)
|
||||
elog(WARN, "Bad input string for type bool");
|
||||
return ((bool) (((*b) == 't') || ((*b) == 'T') || ((*b) & 1)));
|
||||
}
|
||||
switch(*b) {
|
||||
case 't':
|
||||
case 'T':
|
||||
return (TRUE);
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
case 'F':
|
||||
return (FALSE);
|
||||
break;
|
||||
|
||||
case 'y':
|
||||
case 'Y':
|
||||
case '1':
|
||||
return (TRUE);
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
case 'N':
|
||||
case '0':
|
||||
return (FALSE);
|
||||
break;
|
||||
|
||||
default:
|
||||
#if FALSE
|
||||
elog(WARN,"Invalid input string '%s'\n", b);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
} /* boolin() */
|
||||
|
||||
/*
|
||||
* boolout - converts 1 or 0 to "t" or "f"
|
||||
@ -46,7 +80,7 @@ boolout(bool b)
|
||||
*result = (b) ? 't' : 'f';
|
||||
result[1] = '\0';
|
||||
return (result);
|
||||
}
|
||||
} /* boolout() */
|
||||
|
||||
/*****************************************************************************
|
||||
* PUBLIC ROUTINES *
|
||||
|
Loading…
Reference in New Issue
Block a user