de_ucstring *ucstring_clone(de_ucstring *src) { de_ucstring *dst; if(!src) return NULL; dst = ucstring_create(src->c); ucstring_append_ucstring(dst, src); return dst; }
static void extract_unknown_ole_obj(deark *c, lctx *d, i64 pos, i64 len, struct de_stringreaderdata *srd_typename) { de_finfo *fi = NULL; de_ucstring *s = NULL; fi = de_finfo_create(c); s = ucstring_create(c); ucstring_append_sz(s, "oleobj", DE_ENCODING_LATIN1); if(ucstring_isnonempty(srd_typename->str)) { ucstring_append_sz(s, ".", DE_ENCODING_LATIN1); ucstring_append_ucstring(s, srd_typename->str); } de_finfo_set_name_from_ucstring(c, fi, s, 0); dbuf_create_file_from_slice(c->infile, pos, len, "bin", fi, 0); ucstring_destroy(s); de_finfo_destroy(c, fi); }