From: Mark Spencer Date: Tue, 18 Oct 2005 16:51:28 +0000 (+0000) Subject: Fix truth of strings X-Git-Tag: 1.2.0-beta2~106 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=68c2c01b1ca70e63ca3d6c4e1639af1a33ecdcea;p=thirdparty%2Fasterisk.git Fix truth of strings git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6817 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/pbx.c b/pbx.c index 51b3370187..d8747d5724 100755 --- a/pbx.c +++ b/pbx.c @@ -6029,7 +6029,21 @@ void pbx_builtin_clear_globals(void) static int pbx_checkcondition(char *condition) { - return condition ? atoi(condition) : 0; + if (condition) { + if (*condition == '\0') { + /* Empty strings are false */ + return 0; + } else if (*condition >= '0' && *condition <= '9') { + /* Numbers are evaluated for truth */ + return atoi(condition); + } else { + /* Strings are true */ + return 1; + } + } else { + /* NULL is also false */ + return 0; + } } static int pbx_builtin_gotoif(struct ast_channel *chan, void *data)