| string_pool API |
| =============== |
| |
| The string_pool API provides facilities for replacing strings |
| with integer keys that can be more easily compared and stored. |
| The facilities are designed so that one could teach Git without |
| too much trouble to store the information needed for these keys to |
| remain valid over multiple executions. |
| |
| Functions |
| --------- |
| |
| pool_intern:: |
| Include a string in the string pool and get its key. |
| If that string is already in the pool, retrieves its |
| existing key. |
| |
| pool_fetch:: |
| Retrieve the string associated to a given key. |
| |
| pool_tok_r:: |
| Extract the key of the next token from a string. |
| Interface mimics strtok_r. |
| |
| pool_print_seq:: |
| Print a sequence of strings named by key to a file, using the |
| specified delimiter to separate them. |
| |
| If NULL (key ~0) appears in the sequence, the sequence ends |
| early. |
| |
| pool_tok_seq:: |
| Split a string into tokens, storing the keys of segments |
| into a caller-provided array. |
| |
| Unless sz is 0, the array will always be ~0-terminated. |
| If there is not enough room for all the tokens, the |
| array holds as many tokens as fit in the entries before |
| the terminating ~0. Return value is the index after the |
| last token, or sz if the tokens did not fit. |
| |
| pool_reset:: |
| Deallocate storage for the string pool. |