changeset 235:4a672d96978f

Add dmfgets() function.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 08 Oct 2012 15:45:38 +0300
parents a2abd0b991b6
children 8189be40ed7c
files dmres.c dmres.h
diffstat 2 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dmres.c	Mon Oct 08 15:21:59 2012 +0300
+++ b/dmres.c	Mon Oct 08 15:45:38 2012 +0300
@@ -783,6 +783,28 @@
     return f->fops->fwrite(ptr, size, nmemb, f);
 }
 
+char *dmfgets(char *s, int size, DMResource * f)
+{
+    char *p = s, c;
+    int n = 0;
+
+    while ((c = f->fops->fgetc(f)) != EOF)
+    {
+        if (c == '\n')
+            break;
+        else
+        if (n < size - 1)
+        {
+            *p++ = c;
+            size--;
+        }
+    }
+    *p = 0;
+    
+    return s;
+}
+
+
 
 int dmres_ref(DMResource *node)
 {
--- a/dmres.h	Mon Oct 08 15:21:59 2012 +0300
+++ b/dmres.h	Mon Oct 08 15:45:38 2012 +0300
@@ -146,6 +146,7 @@
 int          dmfputc(int, DMResource *);
 size_t       dmfread(void *, const size_t, const size_t, DMResource *);
 size_t       dmfwrite(void *, const size_t, const size_t, DMResource *);
+char *       dmfgets(char *s, int size, DMResource * f);
 
 
 // Specialized functions for endianess based reading etc