diff --git a/src/lparser.c b/src/lparser.c index cf2bee0..fc01ab8 100644 --- a/src/lparser.c +++ b/src/lparser.c @@ -1182,30 +1182,30 @@ static void constructor (LexState *ls, expdesc *t) { * be anchored somewhere else by the time parsing finishes */ static TString *user_defined_type_name(LexState *ls, TString *typename) { - size_t len = 0; - if (testnext(ls, '.')) { - char buffer[128] = { 0 }; - const char *str = getstr(typename); - len = strlen(str); - if (len >= sizeof buffer) { - luaX_syntaxerror(ls, "User defined type name is too long"); - return typename; - } - snprintf(buffer, sizeof buffer, "%s", str); - do { - typename = str_checkname(ls); - str = getstr(typename); - size_t newlen = len + strlen(str) + 1; - if (newlen >= sizeof buffer) { - luaX_syntaxerror(ls, "User defined type name is too long"); - return typename; - } - snprintf(buffer + len, sizeof buffer - len, ".%s", str); - len = newlen; - } while (testnext(ls, '.')); - typename = luaX_newstring(ls, buffer, strlen(buffer)); - } - return typename; + size_t len = 0; + if (testnext(ls, '.')) { + char buffer[128] = {0}; + const char *str = getstr(typename); + len = strlen(str); + if (len >= sizeof buffer) { + luaX_syntaxerror(ls, "User defined type name is too long"); + return typename; + } + snprintf(buffer, sizeof buffer, "%s", str); + do { + typename = str_checkname(ls); + str = getstr(typename); + size_t newlen = len + strlen(str) + 1; + if (newlen >= sizeof buffer) { + luaX_syntaxerror(ls, "User defined type name is too long"); + return typename; + } + snprintf(buffer + len, sizeof buffer - len, ".%s", str); + len = newlen; + } while (testnext(ls, '.')); + typename = luaX_newstring(ls, buffer, strlen(buffer)); + } + return typename; } /* RAVI Parse