nasmlib.c: Introduce nasm_get_word helper
authorCyrill Gorcunov <gorcunov@gmail.com>
Sat, 10 Apr 2010 21:03:20 +0000 (01:03 +0400)
committerCyrill Gorcunov <gorcunov@gmail.com>
Sun, 11 Apr 2010 08:58:09 +0000 (12:58 +0400)
For easier space separated words extraction
from a text stream.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
nasmlib.c
nasmlib.h

index 2351101..812f640 100644 (file)
--- a/nasmlib.c
+++ b/nasmlib.c
@@ -705,6 +705,27 @@ char *nasm_trim_spaces(char *p)
 }
 
 /*
+ * return the word extracted from a stream
+ * or NULL if nothing left
+ */
+char *nasm_get_word(char *p, char **tail)
+{
+    char *word = nasm_skip_spaces(p);
+    char *next = nasm_skip_word(word);
+
+    if (word && *word) {
+        if (*next)
+            *next++ = '\0';
+    } else
+        word = next = NULL;
+
+    /* NOTE: the tail may start with spaces */
+    *tail = next;
+
+    return word;
+}
+
+/*
  * extract option and value from a string formatted as "opt = val"
  * and return pointer to the next string or NULL on empty string
  * passed or if nothing left for handling
index f103e62..5efb0b4 100644 (file)
--- a/nasmlib.h
+++ b/nasmlib.h
@@ -394,6 +394,7 @@ char *nasm_skip_word(const char *p);
 char *nasm_zap_spaces_fwd(char *p);
 char *nasm_zap_spaces_rev(char *p);
 char *nasm_trim_spaces(char *p);
+char *nasm_get_word(char *p, char **tail);
 char *nasm_opt_val(char *p, char **opt, char **val);
 
 const char *prefix_name(int);