extern char *solv_dupappend(const char *str1, const char *str2, const char *str3);
extern int solv_hex2bin(const char **strp, unsigned char *buf, int bufl);
extern char *solv_bin2hex(const unsigned char *buf, int l, char *str);
+extern size_t solv_validutf8(const char *buf);
+extern char *solv_latin1toutf8(const char *buf);
+extern char *solv_replacebadutf8(const char *buf, int replchar);
static inline void *solv_extend(void *buf, size_t len, size_t nmemb, size_t size, size_t block)
return buf;
}
+static inline void *solv_memdup(void *buf, size_t len)
+{
+ void *newbuf;
+ if (!buf)
+ return 0;
+ newbuf = solv_malloc(len);
+ if (len)
+ memcpy(newbuf, buf, len);
+ return newbuf;
+}
+
+static inline void *solv_memdup2(void *buf, size_t num, size_t len)
+{
+ void *newbuf;
+ if (!buf)
+ return 0;
+ newbuf = solv_malloc2(num, len);
+ if (num)
+ memcpy(newbuf, buf, num * len);
+ return newbuf;
+}
+
#ifdef __cplusplus
}
#endif