| 6888 | |
| 6889 | |
| 6890 | static void trydecpoint (LexState *ls, SemInfo *seminfo) { |
| 6891 | /* format error: try to update decimal point separator */ |
| 6892 | struct lconv *cv = localeconv(); |
| 6893 | char old = ls->decpoint; |
| 6894 | ls->decpoint = (cv ? cv->decimal_point[0] : '.'); |
| 6895 | buffreplace(ls, old, ls->decpoint); /* try updated decimal separator */ |
| 6896 | if (!luaO_str2d(luaZ_buffer(ls->buff), &seminfo->r)) { |
| 6897 | /* format error with correct decimal point: no more options */ |
| 6898 | buffreplace(ls, ls->decpoint, '.'); /* undo change (for error message) */ |
| 6899 | luaX_lexerror(ls, "malformed number", TK_NUMBER); |
| 6900 | } |
| 6901 | } |
| 6902 | |
| 6903 | |
| 6904 | /* LUA_NUMBER */ |
no test coverage detected