All additions to SS have been made. Convert its offsets to pointers, and return the resulting argument vector. */
| 327 | /* All additions to SS have been made. Convert its offsets to pointers, |
| 328 | and return the resulting argument vector. */ |
| 329 | static char ** |
| 330 | splitbuf_finishup (struct splitbuf *ss) |
| 331 | { |
| 332 | int argc = ss->argc; |
| 333 | char **argv = ss->argv; |
| 334 | char *stringbase = (char *) (ss->argv + ss->half_alloc); |
| 335 | for (int i = 1; i < argc; i++) |
| 336 | argv[i] = stringbase + (intptr_t) argv[i]; |
| 337 | return argv; |
| 338 | } |
| 339 | |
| 340 | /* Return a newly-allocated argv-like array, |
| 341 | by parsing and splitting the input 'str'. |