Lines Matching +full:cs +full:- +full:0
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
61 _ConversionState *cs; in mbrtocXX_l() local
68 ps = &(XLOCALE_CTYPE(locale)->mbrtocXX); in mbrtocXX_l()
69 cs = (_ConversionState *)ps; in mbrtocXX_l()
70 handle = &cs->iconv; in mbrtocXX_l()
73 if (s == NULL || !cs->initialized) { in mbrtocXX_l()
75 nl_langinfo_l(CODESET, locale), UTF_XX_INTERNAL) != 0) { in mbrtocXX_l()
76 cs->initialized = false; in mbrtocXX_l()
78 return (-1); in mbrtocXX_l()
80 cs->srcbuf_len = cs->dstbuf_len = 0; in mbrtocXX_l()
81 cs->initialized = true; in mbrtocXX_l()
83 return (0); in mbrtocXX_l()
87 if (cs->dstbuf_len > 0) { in mbrtocXX_l()
88 retval = (size_t)-3; in mbrtocXX_l()
93 if (n > sizeof(cs->srcbuf) - cs->srcbuf_len) in mbrtocXX_l()
94 n = sizeof(cs->srcbuf) - cs->srcbuf_len; in mbrtocXX_l()
95 memcpy(cs->srcbuf + cs->srcbuf_len, s, n); in mbrtocXX_l()
98 for (i = 0; ; i++) { in mbrtocXX_l()
103 src = cs->srcbuf; in mbrtocXX_l()
104 srcleft = cs->srcbuf_len + n; in mbrtocXX_l()
105 dst = cs->dstbuf.bytes; in mbrtocXX_l()
107 assert(srcleft <= sizeof(cs->srcbuf) && in mbrtocXX_l()
108 dstleft <= sizeof(cs->dstbuf.bytes)); in mbrtocXX_l()
111 cs->dstbuf_len = (dst - cs->dstbuf.bytes) / sizeof(charXX_t); in mbrtocXX_l()
114 if (cs->dstbuf_len > 0) { in mbrtocXX_l()
115 assert(src - cs->srcbuf > cs->srcbuf_len); in mbrtocXX_l()
116 retval = src - cs->srcbuf - cs->srcbuf_len; in mbrtocXX_l()
117 cs->srcbuf_len = 0; in mbrtocXX_l()
126 if (invlen > 0) { in mbrtocXX_l()
127 cs->srcbuf_len = 0; in mbrtocXX_l()
129 return ((size_t)-1); in mbrtocXX_l()
133 memmove(cs->srcbuf, src, srcleft); in mbrtocXX_l()
134 cs->srcbuf_len = srcleft; in mbrtocXX_l()
135 return ((size_t)-2); in mbrtocXX_l()
139 retchar = cs->dstbuf.widechar[0]; in mbrtocXX_l()
140 memmove(&cs->dstbuf.widechar[0], &cs->dstbuf.widechar[1], in mbrtocXX_l()
141 --cs->dstbuf_len * sizeof(charXX_t)); in mbrtocXX_l()
144 if (retchar == 0) in mbrtocXX_l()
145 return (0); in mbrtocXX_l()