libaacs | branch: master | npzacs <[email protected]> | Wed Oct 27 14:21:25 2010 
+0300| [77b112c365b42cb7fbe16894409bb7d81b1ed196] | committer: npzacs 

Added str_next_line() and str_get_hex_string()

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=77b112c365b42cb7fbe16894409bb7d81b1ed196
---

 src/util/strutl.c |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/util/strutl.h |    3 +++
 2 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/src/util/strutl.c b/src/util/strutl.c
index cf3f2b0..fb49f42 100644
--- a/src/util/strutl.c
+++ b/src/util/strutl.c
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <ctype.h>
 
 
 /* Function to assigns proper hex value of character to uint8_t pointer */
@@ -193,3 +194,51 @@ char *str_printf(const char *fmt, ...)
     }
 }
 
+const char *str_next_line(const char *p)
+{
+    while (*p && *p != '\r' && *p != '\n') {
+        p++;
+    }
+    while (*p && (*p == '\r' || *p == '\n')) {
+        p++;
+    }
+
+    return p;
+}
+
+static int _str_is_hex_string(const char *str, int len)
+{
+    int ii;
+
+    for (ii = 0; ii < len; ii++) {
+        if (!isxdigit(str[ii])) {
+            return 0;
+        }
+    }
+
+    return 1;
+}
+
+static const char *_str_skip_space(const char *p)
+{
+    while (*p && (*p == ' ' || *p == '\r' || *p == '\n' || *p == '\t')) {
+        p++;
+    }
+
+    return p;
+}
+
+char *str_get_hex_string(const char *p, int n)
+{
+    p = _str_skip_space(p);
+
+    if (!_str_is_hex_string(p, n)) {
+        return NULL;
+    }
+
+    char *s = malloc(n + 1);
+    memcpy(s, p, n);
+    s[n] = 0;
+
+    return s;
+}
diff --git a/src/util/strutl.h b/src/util/strutl.h
index aa39459..0bfff73 100644
--- a/src/util/strutl.h
+++ b/src/util/strutl.h
@@ -30,4 +30,7 @@ AACS_PRIVATE int hex_array_to_hexstring(char *str, const 
uint8_t *hex_array, uin
 
 AACS_PRIVATE char *str_printf(const char *fmt, ...) 
AACS_ATTR_FORMAT_PRINTF(1,2) AACS_ATTR_MALLOC;
 
+AACS_PRIVATE const char * str_next_line     (const char *str);
+AACS_PRIVATE char *       str_get_hex_string(const char *str, int len) 
AACS_ATTR_MALLOC;
+
 #endif // STRUTL_H_

_______________________________________________
libaacs-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to