Lines Matching refs:as

202 archive_string_append(struct archive_string *as, const char *p, size_t s)
204 if (archive_string_ensure(as, as->length + s + 1) == NULL)
206 memcpy(as->s + as->length, p, s);
207 as->length += s;
208 as->s[as->length] = 0;
209 return (as);
213 archive_wstring_append(struct archive_wstring *as, const wchar_t *p, size_t s)
215 if (archive_wstring_ensure(as, as->length + s + 1) == NULL)
217 wmemcpy(as->s + as->length, p, s);
218 as->length += s;
219 as->s[as->length] = 0;
220 return (as);
239 archive_string_free(struct archive_string *as)
241 as->length = 0;
242 as->buffer_length = 0;
243 free(as->s);
244 as->s = NULL;
248 archive_wstring_free(struct archive_wstring *as)
250 as->length = 0;
251 as->buffer_length = 0;
252 free(as->s);
253 as->s = NULL;
257 archive_wstring_ensure(struct archive_wstring *as, size_t s)
260 archive_string_ensure((struct archive_string *)as,
266 archive_string_ensure(struct archive_string *as, size_t s)
272 if (as->s && (s <= as->buffer_length))
273 return (as);
282 if (as->buffer_length < 32)
285 else if (as->buffer_length < 8192)
287 new_length = as->buffer_length + as->buffer_length;
290 new_length = as->buffer_length + as->buffer_length / 4;
292 if (new_length < as->buffer_length) {
294 archive_string_free(as);
307 p = (char *)realloc(as->s, new_length);
310 archive_string_free(as);
315 as->s = p;
316 as->buffer_length = new_length;
317 return (as);
328 archive_strncat(struct archive_string *as, const void *_p, size_t n)
342 if ((as = archive_string_append(as, p, s)) == NULL)
344 return (as);
348 archive_wstrncat(struct archive_wstring *as, const wchar_t *p, size_t n)
360 if ((as = archive_wstring_append(as, p, s)) == NULL)
362 return (as);
366 archive_strcat(struct archive_string *as, const void *p)
374 return archive_strncat(as, p, 0x1000000);
378 archive_wstrcat(struct archive_wstring *as, const wchar_t *p)
381 return archive_wstrncat(as, p, 0x1000000);
385 archive_strappend_char(struct archive_string *as, char c)
387 if ((as = archive_string_append(as, &c, 1)) == NULL)
389 return (as);
393 archive_wstrappend_wchar(struct archive_wstring *as, wchar_t c)
395 if ((as = archive_wstring_append(as, &c, 1)) == NULL)
397 return (as);
474 * to UTF-16 as wchar_t.
653 archive_string_append_from_wcs(struct archive_string *as,
656 return archive_string_append_from_wcs_in_codepage(as, w, len, NULL);
660 archive_string_append_from_wcs_in_codepage(struct archive_string *as,
680 if (NULL == archive_string_ensure(as,
681 as->length + wslen +1))
683 p = as->s + as->length;
699 archive_string_ensure(as, as->length + len * 2 + 2))
701 u16 = (uint16_t *)(as->s + as->length);
721 archive_string_ensure(as, as->length + len * 2 + 1))
730 as->s + as->length, (int)as->buffer_length-1, NULL, dp);
734 if (NULL == archive_string_ensure(as,
735 as->buffer_length + len))
743 as->length += count;
744 as->s[as->length] = '\0';
756 archive_string_append_from_wcs(struct archive_string *as,
762 * converts a character at a time and resizes the string as
779 * as->s is still NULL.
781 if (archive_string_ensure(as, as->length + len + 1) == NULL)
784 p = as->s + as->length;
785 end = as->s + as->buffer_length - MB_CUR_MAX -1;
788 as->length = p - as->s;
789 as->s[as->length] = '\0';
791 if (archive_string_ensure(as,
792 as->length + len * 2 + 1) == NULL)
794 p = as->s + as->length;
795 end = as->s + as->buffer_length - MB_CUR_MAX -1;
815 as->length = p - as->s;
816 as->s[as->length] = '\0';
829 archive_string_append_from_wcs(struct archive_string *as,
832 (void)as;/* UNUSED */
1324 * Translate Charset name (as used by iconv) into CodePage (as used by Windows)
1929 archive_strncpy_l(struct archive_string *as, const void *_p, size_t n,
1932 as->length = 0;
1933 return (archive_strncat_l(as, _p, n, sc));
1937 archive_strncat_l(struct archive_string *as, const void *_p, size_t n,
1950 if (archive_string_ensure(as, as->length + tn) == NULL)
1952 as->s[as->length] = 0;
1954 as->s[as->length+1] = 0;
1963 if (archive_string_append(as, _p, length) == NULL)
1985 r2 = sc->converter[i](as, s, length, sc);
1997 iconv_strncat_in_locale(struct archive_string *as, const void *_p,
2017 if (archive_string_ensure(as, as->length + length*2+to_size) == NULL)
2023 outp = as->s + as->length;
2024 avail = as->buffer_length - as->length - to_size;
2045 as->length = outp - as->s;
2046 bs = as->buffer_length +
2049 archive_string_ensure(as, bs))
2051 outp = as->s + as->length;
2052 avail = as->buffer_length
2053 - as->length - to_size;
2074 as->length = outp - as->s;
2075 bs = as->buffer_length + remaining * 2;
2076 if (NULL == archive_string_ensure(as, bs))
2078 outp = as->s + as->length;
2079 avail = as->buffer_length - as->length - to_size;
2082 as->length = outp - as->s;
2083 as->s[as->length] = 0;
2085 as->s[as->length+1] = 0;
2099 strncat_in_codepage(struct archive_string *as,
2115 archive_string_append(as, s, length);
2119 l = as->length;
2121 as, aws.s, aws.length, sc);
2122 if (r != 0 && errno != ENOMEM && l == as->length)
2123 archive_string_append(as, s, length);
2201 best_effort_strncat_in_locale(struct archive_string *as, const void *_p,
2215 if (archive_string_append(as, _p, length) == NULL)
2226 if (archive_string_ensure(as, as->length + length + 1) == NULL)
2231 otp = as->s + as->length;
2232 avail = as->buffer_length - as->length -1;
2236 as->length = otp - as->s;
2237 if (NULL == archive_string_ensure(as,
2238 as->buffer_length + remaining +
2241 otp = as->s + as->length;
2242 avail = as->buffer_length - as->length -1;
2264 as->length = otp - as->s;
2265 as->s[as->length] = '\0';
2647 strncat_from_utf8_to_utf8(struct archive_string *as, const void *_p,
2656 if (archive_string_ensure(as, as->length + len + 1) == NULL)
2660 p = as->s + as->length;
2661 endp = as->s + as->buffer_length -1;
2676 as->length = p - as->s;
2677 if (archive_string_ensure(as,
2678 as->buffer_length + len + 1) == NULL)
2680 p = as->s + as->length;
2681 endp = as->s + as->buffer_length -1;
2703 as->length = p - as->s;
2704 if (archive_string_ensure(as,
2705 as->buffer_length + len + 1) == NULL)
2707 p = as->s + as->length;
2708 endp = as->s + as->buffer_length -1;
2715 as->length = p - as->s;
2716 as->s[as->length] = '\0';
2721 archive_string_append_unicode(struct archive_string *as, const void *_p,
2769 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
2773 p = as->s + as->length;
2774 endp = as->s + as->buffer_length - ts;
2786 as->length = p - as->s;
2787 if (archive_string_ensure(as,
2788 as->buffer_length + len * tm + ts) == NULL)
2790 p = as->s + as->length;
2791 endp = as->s + as->buffer_length - ts;
2795 as->length = p - as->s;
2796 as->s[as->length] = '\0';
2798 as->s[as->length+1] = '\0';
2860 as->length = p - as->s; \
2861 if (archive_string_ensure(as, \
2862 as->buffer_length + len * tm + ts) == NULL)\
2864 p = as->s + as->length; \
2865 endp = as->s + as->buffer_length - ts; \
2936 archive_string_normalize_C(struct archive_string *as, const void *_p,
2994 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
2997 p = as->s + as->length;
2998 endp = as->s + as->buffer_length - ts;
3011 * this should be treated as a changed code. */
3028 * this should be treated as a changed code. */
3187 as->length = p - as->s;
3188 as->s[as->length] = '\0';
3190 as->s[as->length+1] = '\0';
3243 archive_string_normalize_D(struct archive_string *as, const void *_p,
3301 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
3304 p = as->s + as->length;
3305 endp = as->s + as->buffer_length - ts;
3327 * this should be treated as a changed code. */
3402 as->length = p - as->s;
3403 as->s[as->length] = '\0';
3405 as->s[as->length+1] = '\0';
3424 strncat_from_utf8_libarchive2(struct archive_string *as,
3444 * as->s is still NULL.
3446 if (archive_string_ensure(as, as->length + len + 1) == NULL)
3450 p = as->s + as->length;
3451 end = as->s + as->buffer_length - MB_CUR_MAX -1;
3456 as->length = p - as->s;
3458 if (archive_string_ensure(as,
3459 as->length + len * 2 + 1) == NULL)
3461 p = as->s + as->length;
3462 end = as->s + as->buffer_length - MB_CUR_MAX -1;
3489 as->length = p - as->s;
3490 as->s[as->length] = '\0';
3508 win_strncat_from_utf16(struct archive_string *as, const void *_p, size_t bytes,
3520 if (archive_string_ensure(as, as->length + bytes +1) == NULL)
3523 mbs = as->s + as->length;
3524 mbs_size = as->buffer_length - as->length -1;
3545 as->length += ll;
3546 as->s[as->length] = '\0';
3589 if (archive_string_ensure(as, ll +1) == NULL)
3591 mbs = as->s + as->length;
3592 mbs_size = as->buffer_length - as->length -1;
3597 as->length += ll;
3598 as->s[as->length] = '\0';
3605 win_strncat_from_utf16be(struct archive_string *as, const void *_p,
3608 return (win_strncat_from_utf16(as, _p, bytes, sc, 1));
3612 win_strncat_from_utf16le(struct archive_string *as, const void *_p,
3615 return (win_strncat_from_utf16(as, _p, bytes, sc, 0));
3735 best_effort_strncat_from_utf16(struct archive_string *as, const void *_p,
3750 if (archive_string_ensure(as, as->length + bytes +1) == NULL)
3752 mbs = as->s + as->length;
3769 as->length = mbs - as->s;
3770 as->s[as->length] = '\0';
3775 best_effort_strncat_from_utf16be(struct archive_string *as, const void *_p,
3778 return (best_effort_strncat_from_utf16(as, _p, bytes, sc, 1));
3782 best_effort_strncat_from_utf16le(struct archive_string *as, const void *_p,
3785 return (best_effort_strncat_from_utf16(as, _p, bytes, sc, 0));