int ul_dbuff_strcpy(ul_dbuff_t *buf, const char *str);
int ul_dbuff_strcat(ul_dbuff_t *buf, const char *str);
int ul_dbuff_append_byte(ul_dbuff_t *buf, unsigned char b);
+int ul_dbuff_export(ul_dbuff_t *srcdb, void *dest, int maxlen);
void ul_dbuff_cut_pos(ul_dbuff_t *fromdb, ul_dbuff_t *todb, int n);
void ul_dbuff_cut_delimited(ul_dbuff_t *fromdb, ul_dbuff_t *todb, char delimiter, char quote);
ul_dbuff_cut_pos(fromdb, todb, pos);
ul_dbuff_trim(todb);
}
+
+/**
+ * ul_dbuff_export - Copies data from %srcdb to the buffer %dest.
+ * @srcdb: source dbuff
+ * @dest: destination buffer
+ * @maxlen: maximum number of bytes to copy
+ *
+ * Returns: the number of bytes copied.
+ */
+int ul_dbuff_export(ul_dbuff_t *srcdb, void *dest, int maxlen)
+{
+ int len;
+ if (!dest) return 0;
+ len = srcdb->len < maxlen ? srcdb->len : maxlen;
+ memcpy(dest, srcdb->data, len);
+ return len;
+}
return 0;
}
-void
+void
gsa_cust_delete_all(gsa_array_field_t *array)
{
if(array->items && array->alloc_count)
va_start(ap, format); \
ul_vloglev(UL_LOGL_DEB, format, ap); \
va_end(ap); \
+}\
+\
+static inline \
+void ul_logtrash(const char *format, ...) UL_ATTR_PRINTF (1, 2);\
+static inline \
+void ul_logtrash(const char *format, ...) \
+{ \
+ va_list ap; \
+ va_start(ap, format); \
+ ul_vloglev(UL_LOGL_TRASH, format, ap); \
+ va_end(ap); \
}
#endif /*__GNUC__*/
#endif /*UL_CONTAINEROF*/
+#ifndef ul_cyclic_gt
+#define ul_cyclic_gt(x,y) \
+ ((sizeof(x)>=sizeof(long long))&&(sizeof(y)>=sizeof(long long))? \
+ (long long)((long long)(x)-(long long)(y))>0: \
+ (sizeof(x)>=sizeof(long))&&(sizeof(y)>=sizeof(long))? \
+ (long)((long)(x)-(long)(y))>0: /* x,y casts to suppress warnings only*/ \
+ (sizeof(x)>=sizeof(int))&&(sizeof(y)>=sizeof(int))?(int)((x)-(y))>0: \
+ (sizeof(x)>=sizeof(short))&&(sizeof(y)>=sizeof(short))?(short)((x)-(y))>0: \
+ (signed char)((x)-(y))>0 \
+ )
+#endif /*ul_cyclic_gt*/
+
+#ifndef ul_cyclic_ge
+#define ul_cyclic_ge(x,y) \
+ ((sizeof(x)>=sizeof(long long))&&(sizeof(y)>=sizeof(long long))? \
+ (long long)((long long)(x)-(long long)(y))>=0: \
+ (sizeof(x)>=sizeof(long))&&(sizeof(y)>=sizeof(long))? \
+ (long)((long)(x)-(long)(y))>=0: /* x,y casts to suppress warnings only*/ \
+ (sizeof(x)>=sizeof(int))&&(sizeof(y)>=sizeof(int))?(int)((x)-(y))>=0: \
+ (sizeof(x)>=sizeof(short))&&(sizeof(y)>=sizeof(short))?(short)((x)-(y))>=0: \
+ (signed char)((x)-(y))>=0 \
+ )
+#endif /*ul_cyclic_ge*/
+
/* GNUC neat features */
#ifdef __GNUC__