MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / luaO_chunkid

Function luaO_chunkid

third-party/lua-5.1.5/src/lobject.c:182–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180
181
182void luaO_chunkid (char *out, const char *source, size_t bufflen) {
183 if (*source == '=') {
184 strncpy(out, source+1, bufflen); /* remove first char */
185 out[bufflen-1] = '\0'; /* ensures null termination */
186 }
187 else { /* out = "source", or "...source" */
188 if (*source == '@') {
189 size_t l;
190 source++; /* skip the `@' */
191 bufflen -= sizeof(" '...' ");
192 l = strlen(source);
193 strcpy(out, "");
194 if (l > bufflen) {
195 source += (l-bufflen); /* get last part of file name */
196 strcat(out, "...");
197 }
198 strcat(out, source);
199 }
200 else { /* out = [string "string"] */
201 size_t len = strcspn(source, "\n\r"); /* stop at first newline */
202 bufflen -= sizeof(" [string \"...\"] ");
203 if (len > bufflen) len = bufflen;
204 strcpy(out, "[string \"");
205 if (source[len] != '\0') { /* must truncate? */
206 strncat(out, source, len);
207 strcat(out, "...");
208 }
209 else
210 strcat(out, source);
211 strcat(out, "\"]");
212 }
213 }
214}

Callers 4

luaX_lexerrorFunction · 0.70
funcinfoFunction · 0.70
info_tailcallFunction · 0.70
addinfoFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected