Rev 4279 | Rev 4281 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4279 | Rev 4280 | ||
|---|---|---|---|
| Line 527... | Line 527... | ||
| 527 | } |
527 | } |
| 528 | 528 | ||
| 529 | dest[dest_off] = '\0'; |
529 | dest[dest_off] = '\0'; |
| 530 | } |
530 | } |
| 531 | 531 | ||
| - | 532 | /** Append one string to another. |
|
| - | 533 | * |
|
| - | 534 | * Append source string @a src to string in destination buffer @a dest. |
|
| - | 535 | * Size of the destination buffer is @a dest. If the size of the output buffer |
|
| - | 536 | * is at least one byte, the output string will always be well-formed, i.e. |
|
| - | 537 | * null-terminated and containing only complete characters. |
|
| - | 538 | * |
|
| - | 539 | * @param dst Destination buffer. |
|
| - | 540 | * @param count Size of the destination buffer. |
|
| - | 541 | * @param src Source string. |
|
| - | 542 | */ |
|
| - | 543 | void str_append(char *dest, size_t size, const char *src) |
|
| - | 544 | { |
|
| - | 545 | size_t dstr_size; |
|
| - | 546 | ||
| - | 547 | dstr_size = str_size(dest); |
|
| - | 548 | str_cpy(dest + dstr_size, size - dstr_size, src); |
|
| - | 549 | } |
|
| - | 550 | ||
| 532 | /** Copy NULL-terminated wide string to string |
551 | /** Copy NULL-terminated wide string to string |
| 533 | * |
552 | * |
| 534 | * Copy source wide string @a src to destination buffer @a dst. |
553 | * Copy source wide string @a src to destination buffer @a dst. |
| 535 | * No more than @a size bytes are written. NULL-terminator is always |
554 | * No more than @a size bytes are written. NULL-terminator is always |
| 536 | * written after the last succesfully copied character (i.e. if the |
555 | * written after the last succesfully copied character (i.e. if the |
| Line 818... | Line 837... | ||
| 818 | number = _strtoul(nptr, endptr, base, &sgn); |
837 | number = _strtoul(nptr, endptr, base, &sgn); |
| 819 | 838 | ||
| 820 | return (sgn ? -number : number); |
839 | return (sgn ? -number : number); |
| 821 | } |
840 | } |
| 822 | 841 | ||
| 823 | char *strcat(char *dest, const char *src) |
- | |
| 824 | { |
- | |
| 825 | char *orig = dest; |
- | |
| 826 | while (*dest++) |
- | |
| 827 | ; |
- | |
| 828 | --dest; |
- | |
| 829 | while ((*dest++ = *src++)) |
- | |
| 830 | ; |
- | |
| 831 | return orig; |
- | |
| 832 | } |
- | |
| 833 | - | ||
| 834 | char *str_dup(const char *src) |
842 | char *str_dup(const char *src) |
| 835 | { |
843 | { |
| 836 | size_t size = str_size(src); |
844 | size_t size = str_size(src); |
| 837 | void *dest = malloc(size + 1); |
845 | void *dest = malloc(size + 1); |
| 838 | 846 | ||