| 177 | |
| 178 | |
| 179 | static void trydecpoint (LexState *ls, SemInfo *seminfo) { |
| 180 | /* format error: try to update decimal point separator */ |
| 181 | struct lconv *cv = localeconv(); |
| 182 | char old = ls->decpoint; |
| 183 | ls->decpoint = (cv ? cv->decimal_point[0] : '.'); |
| 184 | buffreplace(ls, old, ls->decpoint); /* try updated decimal separator */ |
| 185 | if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) { |
| 186 | /* format error with correct decimal point: no more options */ |
| 187 | buffreplace(ls, ls->decpoint, '.'); /* undo change (for error message) */ |
| 188 | luaX_lexerror(ls, "malformed number", TK_NUMBER); |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | |
| 193 | /* LUA_NUMBER */ |
no test coverage detected