Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/str.h

    r1c9bf292 r28a5ebd  
    3838#define _LIBC_STR_H_
    3939
    40 #ifdef __cplusplus
    41 extern "C" {
    42 #endif
    43 
    4440#include <errno.h>
    4541#include <stdbool.h>
     
    4844
    4945#include <mem.h>
     46#include <_bits/decls.h>
     47
     48#ifndef __cplusplus
    5049
    5150/* Common Unicode characters */
     
    6463#define SPASCII_STR_BUFSIZE(spa_size) ((spa_size) + 1)
    6564
    66 extern wchar_t str_decode(const char *str, size_t *offset, size_t sz);
    67 extern wchar_t str_decode_reverse(const char *str, size_t *offset, size_t sz);
    68 extern errno_t chr_encode(wchar_t ch, char *str, size_t *offset, size_t sz);
     65#endif
     66
     67__HELENOS_DECLS_BEGIN;
     68
     69extern char32_t str_decode(const char *str, size_t *offset, size_t sz);
     70extern char32_t str_decode_reverse(const char *str, size_t *offset, size_t sz);
     71extern errno_t chr_encode(char32_t ch, char *str, size_t *offset, size_t sz);
    6972
    7073extern size_t str_size(const char *str);
    71 extern size_t wstr_size(const wchar_t *str);
     74extern size_t wstr_size(const char32_t *str);
    7275
    7376extern size_t str_nsize(const char *str, size_t max_size);
    74 extern size_t wstr_nsize(const wchar_t *str, size_t max_size);
     77extern size_t wstr_nsize(const char32_t *str, size_t max_size);
    7578
    7679extern size_t str_lsize(const char *str, size_t max_len);
    77 extern size_t wstr_lsize(const wchar_t *str, size_t max_len);
     80extern size_t wstr_lsize(const char32_t *str, size_t max_len);
    7881
    7982extern size_t str_length(const char *str);
    80 extern size_t wstr_length(const wchar_t *wstr);
     83extern size_t wstr_length(const char32_t *wstr);
    8184
    8285extern size_t str_nlength(const char *str, size_t size);
    83 extern size_t wstr_nlength(const wchar_t *str, size_t size);
     86extern size_t wstr_nlength(const char32_t *str, size_t size);
    8487
    85 extern size_t chr_width(wchar_t ch);
     88extern size_t chr_width(char32_t ch);
    8689extern size_t str_width(const char *str);
    8790
    88 extern bool ascii_check(wchar_t ch);
    89 extern bool chr_check(wchar_t ch);
     91extern bool ascii_check(char32_t ch);
     92extern bool chr_check(char32_t ch);
    9093
    9194extern int str_cmp(const char *s1, const char *s2);
     
    9598
    9699extern bool str_test_prefix(const char *s, const char *p);
     100extern const char *str_suffix(const char *s, size_t prefix_length);
    97101
    98102extern void str_cpy(char *dest, size_t size, const char *src);
     
    101105
    102106extern errno_t spascii_to_str(char *dest, size_t size, const uint8_t *src, size_t n);
    103 extern void wstr_to_str(char *dest, size_t size, const wchar_t *src);
    104 extern char *wstr_to_astr(const wchar_t *src);
    105 extern void str_to_wstr(wchar_t *dest, size_t dlen, const char *src);
    106 extern wchar_t *str_to_awstr(const char *src);
     107extern void wstr_to_str(char *dest, size_t size, const char32_t *src);
     108extern char *wstr_to_astr(const char32_t *src);
     109extern void str_to_wstr(char32_t *dest, size_t dlen, const char *src);
     110extern char32_t *str_to_awstr(const char *src);
    107111extern errno_t utf16_to_str(char *dest, size_t size, const uint16_t *src);
    108112extern errno_t str_to_utf16(uint16_t *dest, size_t dlen, const char *src);
    109113extern size_t utf16_wsize(const uint16_t *ustr);
    110114
    111 extern char *str_chr(const char *str, wchar_t ch);
    112 extern char *str_rchr(const char *str, wchar_t ch);
     115extern char *str_chr(const char *str, char32_t ch);
     116extern char *str_rchr(const char *str, char32_t ch);
    113117extern char *str_str(const char *hs, const char *n);
    114118
    115 extern void str_rtrim(char *str, wchar_t ch);
    116 extern void str_ltrim(char *str, wchar_t ch);
     119extern void str_rtrim(char *str, char32_t ch);
     120extern void str_ltrim(char *str, char32_t ch);
    117121
    118 extern bool wstr_linsert(wchar_t *str, wchar_t ch, size_t pos, size_t max_pos);
    119 extern bool wstr_remove(wchar_t *str, size_t pos);
     122extern bool wstr_linsert(char32_t *str, char32_t ch, size_t pos, size_t max_pos);
     123extern bool wstr_remove(char32_t *str, size_t pos);
    120124
    121125extern char *str_dup(const char *src);
     
    147151extern unsigned long strtoul(const char *, char **, int);
    148152
    149 #ifdef __cplusplus
    150 }
    151 #endif
     153__HELENOS_DECLS_END;
    152154
    153155#endif
Note: See TracChangeset for help on using the changeset viewer.