don't call from any of the l_*_tostring functions
| 111 | |
| 112 | //don't call from any of the l_*_tostring functions |
| 113 | void luabb_dumpcstack_(Lua lua) |
| 114 | { |
| 115 | int i; |
| 116 | int top = lua_gettop(lua); |
| 117 | |
| 118 | for (i = top; i; --i) { |
| 119 | logmsg(LOGMSG_USER, "%2d: ", i); |
| 120 | switch (lua_type(lua, i)) { |
| 121 | case LUA_TNIL: |
| 122 | logmsg(LOGMSG_USER, "nil\n"); |
| 123 | break; |
| 124 | case LUA_TBOOLEAN: |
| 125 | logmsg(LOGMSG_USER, "boolean: %s\n", lua_toboolean(lua, i) == 0 ? "false" : "true"); |
| 126 | break; |
| 127 | case LUA_TLIGHTUSERDATA: |
| 128 | logmsg(LOGMSG_USER, "lightuserdata\n"); |
| 129 | break; |
| 130 | case LUA_TNUMBER: |
| 131 | logmsg(LOGMSG_USER, "number: %f\n", lua_tonumber(lua, i)); |
| 132 | break; |
| 133 | case LUA_TSTRING: |
| 134 | logmsg(LOGMSG_USER, "string: \"%s\"\n", lua_tostring(lua, i)); |
| 135 | break; |
| 136 | case LUA_TTABLE: |
| 137 | logmsg(LOGMSG_USER, "table\n"); |
| 138 | break; |
| 139 | case LUA_TFUNCTION: |
| 140 | logmsg(LOGMSG_USER, "function\n"); |
| 141 | break; |
| 142 | case LUA_TTHREAD: |
| 143 | logmsg(LOGMSG_USER, "thread\n"); |
| 144 | break; |
| 145 | case LUA_TUSERDATA: { |
| 146 | dbtypes_enum luabb_dbtype(lua_State *, int index); |
| 147 | dbtypes_enum t = luabb_dbtype(lua, i); |
| 148 | if (t >= DBTYPES_MAXTYPE) { |
| 149 | logmsg(LOGMSG_USER, "invalid type\n"); |
| 150 | } else { |
| 151 | if (dbtypes_tostring[t]) { |
| 152 | logmsg(LOGMSG_USER, "%s: %s\n", dbtypes_str[t], luabb_tostring(lua, i)); |
| 153 | } else { |
| 154 | logmsg(LOGMSG_USER, "%s\n", dbtypes_str[t]); |
| 155 | } |
| 156 | } |
| 157 | break; |
| 158 | } |
| 159 | default: |
| 160 | logmsg(LOGMSG_USER, "unknown type %d\n",lua_type(lua, i)); |
| 161 | break; |
| 162 | |
| 163 | } |
| 164 | } |
| 165 | } |
| 166 | |
| 167 | int luabb_issql_type(lua_State *lua, int index, int sql_type) |
| 168 | { |
nothing calls this directly
no test coverage detected