XXX: win32, URL */
| 422 | |
| 423 | /* XXX: win32, URL */ |
| 424 | char *get_file_path(const char *base_filename, const char *filename) |
| 425 | { |
| 426 | int len, len1; |
| 427 | char *fname, *p; |
| 428 | |
| 429 | if (!base_filename) |
| 430 | goto done; |
| 431 | if (strchr(filename, ':')) |
| 432 | goto done; /* full URL */ |
| 433 | if (filename[0] == '/') |
| 434 | goto done; |
| 435 | p = strrchr(base_filename, '/'); |
| 436 | if (!p) { |
| 437 | done: |
| 438 | return strdup(filename); |
| 439 | } |
| 440 | len = p + 1 - base_filename; |
| 441 | len1 = strlen(filename); |
| 442 | fname = malloc(len + len1 + 1); |
| 443 | memcpy(fname, base_filename, len); |
| 444 | memcpy(fname + len, filename, len1 + 1); |
| 445 | return fname; |
| 446 | } |
| 447 | |
| 448 | |
| 449 | #ifdef EMSCRIPTEN |
no outgoing calls
no test coverage detected