Lines Matching defs:as

203 archive_string_append(struct archive_string *as, const char *p, size_t s)
205 if (archive_string_ensure(as, as->length + s + 1) == NULL)
208 memmove(as->s + as->length, p, s);
209 as->length += s;
210 as->s[as->length] = 0;
211 return (as);
215 archive_wstring_append(struct archive_wstring *as, const wchar_t *p, size_t s)
217 if (archive_wstring_ensure(as, as->length + s + 1) == NULL)
220 wmemmove(as->s + as->length, p, s);
221 as->length += s;
222 as->s[as->length] = 0;
223 return (as);
227 archive_array_append(struct archive_string *as, const char *p, size_t s)
229 return archive_string_append(as, p, s);
248 archive_string_free(struct archive_string *as)
250 as->length = 0;
251 as->buffer_length = 0;
252 free(as->s);
253 as->s = NULL;
257 archive_wstring_free(struct archive_wstring *as)
259 as->length = 0;
260 as->buffer_length = 0;
261 free(as->s);
262 as->s = NULL;
266 archive_wstring_ensure(struct archive_wstring *as, size_t s)
269 archive_string_ensure((struct archive_string *)as,
275 archive_string_ensure(struct archive_string *as, size_t s)
281 if (as->s && (s <= as->buffer_length))
282 return (as);
291 if (as->buffer_length < 32)
294 else if (as->buffer_length < 8192)
296 new_length = as->buffer_length + as->buffer_length;
299 new_length = as->buffer_length + as->buffer_length / 4;
301 if (new_length < as->buffer_length) {
303 archive_string_free(as);
316 p = (char *)realloc(as->s, new_length);
319 archive_string_free(as);
324 as->s = p;
325 as->buffer_length = new_length;
326 return (as);
337 archive_strncat(struct archive_string *as, const void *_p, size_t n)
351 if ((as = archive_string_append(as, p, s)) == NULL)
353 return (as);
357 archive_wstrncat(struct archive_wstring *as, const wchar_t *p, size_t n)
369 if ((as = archive_wstring_append(as, p, s)) == NULL)
371 return (as);
375 archive_strcat(struct archive_string *as, const void *p)
383 return archive_strncat(as, p, 0x1000000);
387 archive_wstrcat(struct archive_wstring *as, const wchar_t *p)
390 return archive_wstrncat(as, p, 0x1000000);
394 archive_strappend_char(struct archive_string *as, char c)
396 if ((as = archive_string_append(as, &c, 1)) == NULL)
398 return (as);
402 archive_wstrappend_wchar(struct archive_wstring *as, wchar_t c)
404 if ((as = archive_wstring_append(as, &c, 1)) == NULL)
406 return (as);
483 * to UTF-16 as wchar_t.
671 archive_string_append_from_wcs(struct archive_string *as,
674 return archive_string_append_from_wcs_in_codepage(as, w, len, NULL);
678 archive_string_append_from_wcs_in_codepage(struct archive_string *as,
698 if (NULL == archive_string_ensure(as,
699 as->length + wslen +1))
701 p = as->s + as->length;
717 archive_string_ensure(as, as->length + len * 2 + 2))
719 u16 = (uint16_t *)(as->s + as->length);
739 archive_string_ensure(as, as->length + len * 2 + 1))
748 as->s + as->length,
749 (int)as->buffer_length - (int)as->length - 1, NULL, dp);
753 if (NULL == archive_string_ensure(as,
754 as->buffer_length + len))
763 as->length += count;
764 as->s[as->length] = '\0';
776 archive_string_append_from_wcs(struct archive_string *as,
782 * converts a character at a time and resizes the string as
799 * as->s is still NULL.
801 if (archive_string_ensure(as, as->length + len + 1) == NULL)
804 p = as->s + as->length;
805 end = as->s + as->buffer_length - MB_CUR_MAX -1;
808 as->length = p - as->s;
809 as->s[as->length] = '\0';
811 if (archive_string_ensure(as,
812 as->length + max(len * 2,
815 p = as->s + as->length;
816 end = as->s + as->buffer_length - MB_CUR_MAX -1;
836 as->length = p - as->s;
837 as->s[as->length] = '\0';
850 archive_string_append_from_wcs(struct archive_string *as,
853 (void)as;/* UNUSED */
1349 * Translate Charset name (as used by iconv) into CodePage (as used by Windows)
1956 archive_strncpy_l(struct archive_string *as, const void *_p, size_t n,
1959 as->length = 0;
1960 return (archive_strncat_l(as, _p, n, sc));
1964 archive_strncat_l(struct archive_string *as, const void *_p, size_t n,
1984 if (archive_string_ensure(as, as->length + tn) == NULL)
1986 as->s[as->length] = 0;
1988 as->s[as->length+1] = 0;
1996 if (archive_string_append(as, _p, length) == NULL)
2014 r2 = sc->converter[i](as, s, length, sc);
2026 iconv_strncat_in_locale(struct archive_string *as, const void *_p,
2046 if (archive_string_ensure(as, as->length + length*2+to_size) == NULL)
2052 outp = as->s + as->length;
2053 avail = as->buffer_length - as->length - to_size;
2074 as->length = outp - as->s;
2075 bs = as->buffer_length +
2078 archive_string_ensure(as, bs))
2080 outp = as->s + as->length;
2081 avail = as->buffer_length
2082 - as->length - to_size;
2103 as->length = outp - as->s;
2104 bs = as->buffer_length + remaining * 2;
2105 if (NULL == archive_string_ensure(as, bs))
2107 outp = as->s + as->length;
2108 avail = as->buffer_length - as->length - to_size;
2111 as->length = outp - as->s;
2112 as->s[as->length] = 0;
2114 as->s[as->length+1] = 0;
2128 strncat_in_codepage(struct archive_string *as,
2144 archive_string_append(as, s, length);
2148 l = as->length;
2150 as, aws.s, aws.length, sc);
2151 if (r != 0 && errno != ENOMEM && l == as->length)
2152 archive_string_append(as, s, length);
2230 best_effort_strncat_in_locale(struct archive_string *as, const void *_p,
2242 if (archive_string_append(as, _p, length) == NULL)
2260 if (archive_string_append(as, utf8_replacement_char, sizeof(utf8_replacement_char)) == NULL) {
2264 archive_strappend_char(as, '?');
2268 archive_strappend_char(as, *itp);
2649 strncat_from_utf8_to_utf8(struct archive_string *as, const void *_src,
2657 if (archive_string_ensure(as, as->length + len + 1) == NULL)
2661 * been copied to the destination `as`. */
2675 if (archive_string_append(as, src, e - src) == NULL)
2702 if (archive_string_append(as, t, w) == NULL)
2709 archive_string_append_unicode(struct archive_string *as, const void *_p,
2757 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
2761 p = as->s + as->length;
2762 endp = as->s + as->buffer_length - ts;
2774 as->length = p - as->s;
2775 if (archive_string_ensure(as,
2776 as->buffer_length + len * tm + ts) == NULL)
2778 p = as->s + as->length;
2779 endp = as->s + as->buffer_length - ts;
2783 as->length = p - as->s;
2784 as->s[as->length] = '\0';
2786 as->s[as->length+1] = '\0';
2848 as->length = p - as->s; \
2849 if (archive_string_ensure(as, \
2850 as->buffer_length + len * tm + ts) == NULL)\
2852 p = as->s + as->length; \
2853 endp = as->s + as->buffer_length - ts; \
2924 archive_string_normalize_C(struct archive_string *as, const void *_p,
2982 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
2985 p = as->s + as->length;
2986 endp = as->s + as->buffer_length - ts;
2999 * this should be treated as a changed code. */
3016 * this should be treated as a changed code. */
3175 as->length = p - as->s;
3176 as->s[as->length] = '\0';
3178 as->s[as->length+1] = '\0';
3231 archive_string_normalize_D(struct archive_string *as, const void *_p,
3289 if (archive_string_ensure(as, as->length + len * tm + ts) == NULL)
3292 p = as->s + as->length;
3293 endp = as->s + as->buffer_length - ts;
3315 * this should be treated as a changed code. */
3390 as->length = p - as->s;
3391 as->s[as->length] = '\0';
3393 as->s[as->length+1] = '\0';
3412 strncat_from_utf8_libarchive2(struct archive_string *as,
3432 * as->s is still NULL.
3434 if (archive_string_ensure(as, as->length + len + 1) == NULL)
3438 p = as->s + as->length;
3439 end = as->s + as->buffer_length - MB_CUR_MAX -1;
3444 as->length = p - as->s;
3446 if (archive_string_ensure(as,
3447 as->length + max(len * 2,
3450 p = as->s + as->length;
3451 end = as->s + as->buffer_length - MB_CUR_MAX -1;
3478 as->length = p - as->s;
3479 as->s[as->length] = '\0';
3497 win_strncat_from_utf16(struct archive_string *as, const void *_p, size_t bytes,
3509 if (archive_string_ensure(as, as->length + bytes +1) == NULL)
3512 mbs = as->s + as->length;
3513 mbs_size = as->buffer_length - as->length -1;
3534 as->length += ll;
3535 as->s[as->length] = '\0';
3581 if (archive_string_ensure(as, ll +1) == NULL)
3583 mbs = as->s + as->length;
3584 mbs_size = as->buffer_length - as->length -1;
3587 as->length += ll;
3588 as->s[as->length] = '\0';
3595 win_strncat_from_utf16be(struct archive_string *as, const void *_p,
3598 return (win_strncat_from_utf16(as, _p, bytes, sc, 1));
3602 win_strncat_from_utf16le(struct archive_string *as, const void *_p,
3605 return (win_strncat_from_utf16(as, _p, bytes, sc, 0));
3726 best_effort_strncat_from_utf16(struct archive_string *as, const void *_p,
3741 if (archive_string_ensure(as, as->length + bytes +1) == NULL)
3743 mbs = as->s + as->length;
3760 as->length = mbs - as->s;
3761 as->s[as->length] = '\0';
3766 best_effort_strncat_from_utf16be(struct archive_string *as, const void *_p,
3769 return (best_effort_strncat_from_utf16(as, _p, bytes, sc, 1));
3773 best_effort_strncat_from_utf16le(struct archive_string *as, const void *_p,
3776 return (best_effort_strncat_from_utf16(as, _p, bytes, sc, 0));
4221 /* On failure, make an effort to convert UTF8 to WCS as the active code page