chiark / gitweb /
REORG Delete everything that's not innduct or build system or changed for innduct
[inn-innduct.git] / lib / conffile.c
diff --git a/lib/conffile.c b/lib/conffile.c
deleted file mode 100644 (file)
index 359a7e5..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*  $Id: conffile.c 6733 2004-05-16 23:01:23Z rra $
-**
-**  Routines for reading in incoming.conf-style config files.
-*/
-
-#include "config.h"
-#include "clibrary.h"
-#include "conffile.h"
-#include "libinn.h"
-
-static int getconfline(CONFFILE *F, char *buffer, int length) {
-  if (F->f) {
-    fgets(buffer, length, F->f);
-    if (ferror(F->f)) {
-      return 1;
-    }
-  } else if (F->array) {
-    strlcpy(buffer, F->array[F->lineno], F->sbuf);
-  }
-  F->lineno++;
-  if (strlen (F->buf) >= F->sbuf - 1) {
-    return 1; /* Line too long */
-  } else {
-    return 0;
-  }
-}
-
-static int cfeof(CONFFILE *F) {
-  if (F->f) {
-    return feof(F->f);
-  } else if (F->array) {
-    return (F->lineno == F->array_len);
-  } else {
-    return 1;
-  }
-}
-
-static char *CONFgetword(CONFFILE *F)
-{
-  char *p;
-  char *s;
-  char *t;
-  char *word;
-  bool flag, comment;
-
-  if (!F) return (NULL);       /* No conf file */
-  if (!F->buf || !F->buf[0]) {
-    if (cfeof (F)) return (NULL);
-    if (!F->buf) {
-      F->sbuf = BIG_BUFFER;
-      F->buf = xmalloc(F->sbuf);
-    }
-    if (getconfline(F, F->buf, F->sbuf) != 0)
-      return (NULL); /* Line too long */
-  }
-  do {
-     /* Ignore blank and comment lines. */
-     if ((p = strchr(F->buf, '\n')) != NULL)
-       *p = '\0';
-     for (p = F->buf; *p == ' ' || *p == '\t' ; p++);
-     flag = true;
-     if ((*p == '\0' || *p == '#') && !cfeof(F)) {
-       flag = false;
-       if (getconfline(F, F->buf, F->sbuf))
-         return (NULL); /* Line too long */
-       continue;
-     }
-     break;
-  } while (!cfeof(F) || !flag);
-
-  comment = false;
-  if (*p == '"') { /* double quoted string ? */
-    p++;
-    do {
-      for (t = p; (*t != '"' || (*t == '"' && *(t - 1) == '\\')) &&
-             *t != '\0'; t++);
-      if (*t == '\0') {
-        if (strlen(F->buf) >= F->sbuf - 2)
-          return (NULL); /* Line too long */
-        *t++ = '\n';
-        *t = '\0';
-        if (getconfline(F, t, F->sbuf - strlen(F->buf)))
-          return (NULL); /* Line too long */
-        if ((s = strchr(t, '\n')) != NULL)
-          *s = '\0';
-      }
-      else 
-        break;
-    } while (!cfeof(F));
-    if (*t != '"')
-      return (NULL);
-    *t++ = '\0';
-  }
-  else {
-    for (t = p; *t != ' ' && *t != '\t' && *t != '\0'; t++)
-      if (*t == '#' && (t == p || *(t - 1) != '\\')) {
-        comment = true;
-        break;
-      }
-    if (*t != '\0')
-      *t++ = '\0';
-  }
-  if (*p == '\0' && cfeof(F)) return (NULL);
-  word = xstrdup (p);
-  p = F->buf;
-  if (!comment)
-    for (; *t != '\0'; t++)
-      *p++ = *t;
-  *p = '\0';
-
-  return (word);
-}
-
-CONFFILE *CONFfopen(char *filename)
-{
-  FILE *f;
-  CONFFILE *ret;
-
-  f = fopen(filename, "r");
-  if (!f)
-    return(0);
-  ret = xmalloc(sizeof(CONFFILE));
-  if (!ret) {
-    fclose(f);
-    return(0);
-  }
-  ret->filename = xstrdup(filename);
-  ret->buf = 0;
-  ret->sbuf = 0;
-  ret->lineno = 0;
-  ret->f = f;
-  ret->array = NULL;
-  return(ret);
-}
-
-void CONFfclose(CONFFILE *f)
-{
-  if (!f) return;              /* No conf file */
-  fclose(f->f);
-  if (f->buf)
-    free(f->buf);
-  if (f->filename)
-    free(f->filename);
-  free(f);
-}
-
-CONFTOKEN *CONFgettoken(CONFTOKEN *toklist, CONFFILE *file)
-{
-  char *word;
-  static CONFTOKEN ret = {CONFstring, 0};
-  int i;
-
-  if (ret.name) {
-    free(ret.name);
-    ret.name = 0;
-  }
-  word = CONFgetword(file);
-  if (!word)
-    return(0);
-  if (toklist) {
-    for (i = 0; toklist[i].type; i++) {
-       if (strcmp(word, toklist[i].name) == 0) {
-         free(word);
-         return(&toklist[i]);
-       }
-    }
-  }
-  ret.name = word;
-  return(&ret);
-}