summaryrefslogtreecommitdiff
path: root/src/apk_blob.h
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2009-04-14 18:46:35 +0300
committerTimo Teras <timo.teras@iki.fi>2009-04-14 18:46:35 +0300
commit7cef96c30d2f2d585aa2edd7b6ab22e9e007cddc (patch)
tree1f3d552a5cb9396c7408b021e1acc739a90289a3 /src/apk_blob.h
parent024480aca02a5a81113cdf7a47aafa4c1c30de3d (diff)
downloadapk-tools-7cef96c30d2f2d585aa2edd7b6ab22e9e007cddc.tar.gz
apk-tools-7cef96c30d2f2d585aa2edd7b6ab22e9e007cddc.tar.bz2
apk-tools-7cef96c30d2f2d585aa2edd7b6ab22e9e007cddc.tar.xz
apk-tools-7cef96c30d2f2d585aa2edd7b6ab22e9e007cddc.zip
blob: add strspn helpers
Diffstat (limited to 'src/apk_blob.h')
-rw-r--r--src/apk_blob.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/apk_blob.h b/src/apk_blob.h
index fa7ad0f..7e63293 100644
--- a/src/apk_blob.h
+++ b/src/apk_blob.h
@@ -23,12 +23,20 @@ typedef struct apk_blob apk_blob_t;
#define APK_BLOB_IS_NULL(blob) (blob.ptr == NULL)
#define APK_BLOB_NULL ((apk_blob_t){0, NULL})
-#define APK_BLOB_STR(str) ((apk_blob_t){strlen(str), (void *)(str)})
#define APK_BLOB_BUF(buf) ((apk_blob_t){sizeof(buf), (char *)(buf)})
#define APK_BLOB_PTR_LEN(beg,len) ((apk_blob_t){(len), (beg)})
#define APK_BLOB_PTR_PTR(beg,end) APK_BLOB_PTR_LEN((beg),(end)-(beg)+1)
+static inline apk_blob_t APK_BLOB_STR(const char *str)
+{
+ if (str == NULL)
+ return APK_BLOB_NULL;
+ return ((apk_blob_t){strlen(str), (void *)(str)});
+}
+
char *apk_blob_cstr(apk_blob_t str);
+int apk_blob_spn(apk_blob_t blob, const char *accept, apk_blob_t *l, apk_blob_t *r);
+int apk_blob_cspn(apk_blob_t blob, const char *reject, apk_blob_t *l, apk_blob_t *r);
int apk_blob_splitstr(apk_blob_t blob, const char *split, apk_blob_t *l, apk_blob_t *r);
int apk_blob_rsplit(apk_blob_t blob, char split, apk_blob_t *l, apk_blob_t *r);
unsigned apk_blob_uint(apk_blob_t blob, int base);