Rev 4266 | Rev 4279 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4266 | Rev 4268 | ||
---|---|---|---|
Line 460... | Line 460... | ||
460 | 460 | ||
461 | return 0; |
461 | return 0; |
462 | 462 | ||
463 | } |
463 | } |
464 | 464 | ||
465 | /** Copy NULL-terminated string. |
465 | /** Copy string. |
466 | * |
466 | * |
467 | * Copy source string @a src to destination buffer @a dst. |
467 | * Copy source string @a src to destination buffer @a dest. |
468 | * No more than @a size bytes are written. NULL-terminator is always |
468 | * No more than @a size bytes are written. If the size of the output buffer |
469 | * written after the last succesfully copied character (i.e. if the |
469 | * is at least one byte, the output string will always be well-formed, i.e. |
470 | * destination buffer is has at least 1 byte, it will be always |
470 | * null-terminated and containing only complete characters. |
471 | * NULL-terminated). |
- | |
472 | * |
471 | * |
473 | * @param src Source string. |
- | |
474 | * @param dst Destination buffer. |
472 | * @param dst Destination buffer. |
475 | * @param count Size of the destination buffer. |
473 | * @param count Size of the destination buffer. |
476 | * |
474 | * @param src Source string. |
477 | */ |
475 | */ |
478 | void str_ncpy(char *dst, const char *src, size_t size) |
476 | void str_cpy(char *dest, size_t size, const char *src) |
479 | { |
477 | { |
- | 478 | wchar_t ch; |
|
- | 479 | size_t src_off; |
|
- | 480 | size_t dest_off; |
|
- | 481 | ||
480 | /* No space for the NULL-terminator in the buffer */ |
482 | /* No space for the NULL-terminator in the buffer. */ |
481 | if (size == 0) |
483 | if (size == 0) |
482 | return; |
484 | return; |
483 | 485 | ||
- | 486 | src_off = 0; |
|
- | 487 | dest_off = 0; |
|
- | 488 | ||
- | 489 | while ((ch = str_decode(src, &src_off, STR_NO_LIMIT)) != 0) { |
|
- | 490 | if (chr_encode(ch, dest, &dest_off, size - 1) != EOK) |
|
- | 491 | break; |
|
- | 492 | } |
|
- | 493 | ||
- | 494 | dest[dest_off] = '\0'; |
|
- | 495 | } |
|
- | 496 | ||
- | 497 | /** Copy size-limited substring. |
|
- | 498 | * |
|
- | 499 | * Copy source string @a src to destination buffer @a dest. |
|
- | 500 | * No more than @a size bytes are written. If the size of the output buffer |
|
- | 501 | * is at least one byte, the output string will always be well-formed, i.e. |
|
- | 502 | * null-terminated and containing only complete characters. |
|
- | 503 | * |
|
- | 504 | * No more than @a n bytes are read from the input string, so it does not |
|
- | 505 | * have to be null-terminated. |
|
- | 506 | * |
|
- | 507 | * @param dst Destination buffer. |
|
- | 508 | * @param count Size of the destination buffer. |
|
- | 509 | * @param src Source string. |
|
- | 510 | */ |
|
- | 511 | void str_ncpy(char *dest, size_t size, const char *src, size_t n) |
|
- | 512 | { |
|
484 | wchar_t ch; |
513 | wchar_t ch; |
485 | size_t str_off = 0; |
514 | size_t src_off; |
486 | size_t dst_off = 0; |
515 | size_t dest_off; |
- | 516 | ||
- | 517 | /* No space for the null terminator in the buffer. */ |
|
- | 518 | if (size == 0) |
|
- | 519 | return; |
|
487 | 520 | ||
- | 521 | src_off = 0; |
|
- | 522 | dest_off = 0; |
|
- | 523 | ||
488 | while ((ch = str_decode(src, &str_off, STR_NO_LIMIT)) != 0) { |
524 | while ((ch = str_decode(src, &src_off, n)) != 0) { |
489 | if (chr_encode(ch, dst, &dst_off, size) != EOK) |
525 | if (chr_encode(ch, dest, &dest_off, size - 1) != EOK) |
490 | break; |
526 | break; |
491 | } |
527 | } |
492 | 528 | ||
493 | if (dst_off >= size) |
- | |
494 | dst[size - 1] = 0; |
- | |
495 | else |
- | |
496 | dst[dst_off] = 0; |
529 | dest[dest_off] = '\0'; |
497 | } |
530 | } |
498 | 531 | ||
499 | /** Copy NULL-terminated wide string to string |
532 | /** Copy NULL-terminated wide string to string |
500 | * |
533 | * |
501 | * Copy source wide string @a src to destination buffer @a dst. |
534 | * Copy source wide string @a src to destination buffer @a dst. |
Line 796... | Line 829... | ||
796 | number = _strtoul(nptr, endptr, base, &sgn); |
829 | number = _strtoul(nptr, endptr, base, &sgn); |
797 | 830 | ||
798 | return (sgn ? -number : number); |
831 | return (sgn ? -number : number); |
799 | } |
832 | } |
800 | 833 | ||
801 | char *strcpy(char *dest, const char *src) |
- | |
802 | { |
- | |
803 | char *orig = dest; |
- | |
804 | - | ||
805 | while ((*(dest++) = *(src++))) |
- | |
806 | ; |
- | |
807 | return orig; |
- | |
808 | } |
- | |
809 | - | ||
810 | char *strcat(char *dest, const char *src) |
834 | char *strcat(char *dest, const char *src) |
811 | { |
835 | { |
812 | char *orig = dest; |
836 | char *orig = dest; |
813 | while (*dest++) |
837 | while (*dest++) |
814 | ; |
838 | ; |