]> mj.ucw.cz Git - libucw.git/commitdiff
Libucw: Split ff-string.c.
authorMichal Vaner <vorner@ucw.cz>
Wed, 23 Jul 2008 18:55:49 +0000 (20:55 +0200)
committerMartin Mares <mj@ucw.cz>
Sat, 26 Jul 2008 18:23:27 +0000 (20:23 +0200)
Stk strings now have their own file (ff-stkstring.c).

ucw/Makefile
ucw/ff-stkstring.c [new file with mode: 0644]
ucw/ff-string.c

index a10c465751b24d1ade2dd22a598d72e9034cffda..e2574f832da937a1e561963df8e06b30ad855ed4 100644 (file)
@@ -14,7 +14,7 @@ LIBUCW_MODS= \
        conf-alloc conf-dump conf-input conf-intr conf-journal conf-parse conf-section \
        ipaccess \
        profile \
-       fastbuf ff-binary ff-string ff-printf ff-unicode \
+       fastbuf ff-binary ff-string ff-printf ff-unicode ff-stkstring \
        fb-file carefulio fb-mem fb-temp tempfile fb-mmap fb-limfd fb-buffer fb-grow fb-pool fb-atomic fb-param fb-socket \
        char-cat char-upper char-lower unicode stkstring \
        wildmatch regex \
diff --git a/ucw/ff-stkstring.c b/ucw/ff-stkstring.c
new file mode 100644 (file)
index 0000000..50b2c3e
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ *     UCW Library -- Fast Buffered I/O: Strings on stack
+ *
+ *     (c) 2008 Michal Vaner <vorner@ucw.cz>
+ *
+ *     Code taken from ff-string.c by:
+ *
+ *     (c) 1997--2006 Martin Mares <mj@ucw.cz>
+ *     (c) 2006 Pavel Charvat <pchar@ucw.cz>
+ *
+ *     This software may be freely distributed and used according to the terms
+ *     of the GNU Lesser General Public License.
+ */
+
+#include "ucw/lib.h"
+#include "ucw/fastbuf.h"
+
+void
+bgets_stk_init(struct bgets_stk_struct *s)
+{
+  s->src_len = bdirect_read_prepare(s->f, &s->src);
+  if (!s->src_len)
+    {
+      s->cur_buf = NULL;
+      s->cur_len = 0;
+    }
+  else
+    {
+      s->old_buf = NULL;
+      s->cur_len = 256;
+    }
+}
+
+void
+bgets_stk_step(struct bgets_stk_struct *s)
+{
+  byte *buf = s->cur_buf;
+  uns buf_len = s->cur_len;
+  if (s->old_buf)
+    {
+      memcpy( s->cur_buf, s->old_buf, s->old_len);
+      buf += s->old_len;
+      buf_len -= s->old_len;
+    }
+  do
+    {
+      uns cnt = MIN(s->src_len, buf_len);
+      for (uns i = cnt; i--;)
+        {
+         byte v = *s->src++;
+         if (v == '\n')
+           {
+              bdirect_read_commit(s->f, s->src);
+             goto exit;
+           }
+         *buf++ = v;
+       }
+      if (cnt == s->src_len)
+        {
+         bdirect_read_commit(s->f, s->src);
+         s->src_len = bdirect_read_prepare(s->f, &s->src);
+       }
+      else
+       s->src_len -= cnt;
+      if (cnt == buf_len)
+        {
+         s->old_len = s->cur_len;
+         s->old_buf = s->cur_buf;
+         s->cur_len *= 2;
+         return;
+       }
+      else
+       buf_len -= cnt;
+    }
+  while (s->src_len);
+exit:
+  *buf = 0;
+  s->cur_len = 0;
+}
+
index 5b4b8b9c61316ed4a449c7ee961edd43f397494c..366092bf7568a90193bf0f55e097ecfc5dcacbec 100644 (file)
@@ -190,69 +190,6 @@ exit: ;
 #undef BLOCK_SIZE
 }
 
-void
-bgets_stk_init(struct bgets_stk_struct *s)
-{
-  s->src_len = bdirect_read_prepare(s->f, &s->src);
-  if (!s->src_len)
-    {
-      s->cur_buf = NULL;
-      s->cur_len = 0;
-    }
-  else
-    {
-      s->old_buf = NULL;
-      s->cur_len = 256;
-    }
-}
-
-void
-bgets_stk_step(struct bgets_stk_struct *s)
-{
-  byte *buf = s->cur_buf;
-  uns buf_len = s->cur_len;
-  if (s->old_buf)
-    {
-      memcpy( s->cur_buf, s->old_buf, s->old_len);
-      buf += s->old_len;
-      buf_len -= s->old_len;
-    }
-  do
-    {
-      uns cnt = MIN(s->src_len, buf_len);
-      for (uns i = cnt; i--;)
-        {
-         byte v = *s->src++;
-         if (v == '\n')
-           {
-              bdirect_read_commit(s->f, s->src);
-             goto exit;
-           }
-         *buf++ = v;
-       }
-      if (cnt == s->src_len)
-        {
-         bdirect_read_commit(s->f, s->src);
-         s->src_len = bdirect_read_prepare(s->f, &s->src);
-       }
-      else
-       s->src_len -= cnt;
-      if (cnt == buf_len)
-        {
-         s->old_len = s->cur_len;
-         s->old_buf = s->cur_buf;
-         s->cur_len *= 2;
-         return;
-       }
-      else
-       buf_len -= cnt;
-    }
-  while (s->src_len);
-exit:
-  *buf = 0;
-  s->cur_len = 0;
-}
-
 char *
 bgets0(struct fastbuf *f, char *b, uns l)
 {