From cfaa8fbf1dee6757af90f0612eb9f96a64e6a61e Mon Sep 17 00:00:00 2001
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 3 Jan 2002 15:27:43 -0200
Subject: better check for option in `strfind'

---
 lstrlib.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'lstrlib.c')

diff --git a/lstrlib.c b/lstrlib.c
index 2172a09c..f2582cfe 100644
--- a/lstrlib.c
+++ b/lstrlib.c
@@ -449,8 +449,9 @@ static int str_find (lua_State *L) {
   const char *p = luaL_check_lstr(L, 2, &l2);
   sint32 init = posrelat(luaL_opt_long(L, 3, 1), l1) - 1;
   luaL_arg_check(L, 0 <= init && (size_t)(init) <= l1, 3, "out of range");
-  if (lua_gettop(L) > 3 ||  /* extra argument? */
+  if (lua_istrue(L, 4) ||  /* explicit request? */
       strpbrk(p, SPECIALS) == NULL) {  /* or no special characters? */
+    /* do a plain search */
     const char *s2 = lmemfind(s+init, l1-init, p, l2);
     if (s2) {
       lua_pushnumber(L, s2-s+1);
-- 
cgit v1.2.3-55-g6feb