aboutsummaryrefslogtreecommitdiffstats
path: root/config.c
diff options
context:
space:
mode:
authorreinelt <>2000-03-10 11:40:47 +0000
committerreinelt <>2000-03-10 11:40:47 +0000
commit105a7ce7020bc59816f12326bf1ae4470c85ee4c (patch)
treef347eaebea00b597a10ceecd1aa9bd762def3408 /config.c
parentadeb0346086c03c48c716d3551a8edafa366b299 (diff)
downloadlcd4linux-105a7ce7020bc59816f12326bf1ae4470c85ee4c.tar.gz
[lcd4linux @ 2000-03-10 11:40:47 by reinelt]
Diffstat (limited to 'config.c')
-rw-r--r--config.c169
1 files changed, 0 insertions, 169 deletions
diff --git a/config.c b/config.c
deleted file mode 100644
index 6841c20..0000000
--- a/config.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* $Id: config.c,v 1.3 2000/03/07 11:01:34 reinelt Exp $
- *
- * config file stuff
- *
- * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *
- * $Log: config.c,v $
- * Revision 1.3 2000/03/07 11:01:34 reinelt
- *
- * system.c cleanup
- *
- * Revision 1.2 2000/03/06 06:04:06 reinelt
- *
- * minor cleanups
- *
- *
- */
-
-/*
- * exported functions:
- *
- * cfg_set (key, value)
- * pre-set key's value
- * should be called before cfg_read()
- * so we can specify 'default values'
- *
- * cfg_get (key)
- * return the a value for a given key
- * or NULL if key does not exist
- *
- * cfg_read (file)
- * read configuration from file
- * returns 0 if successful
- * returns -1 in case of an error
- *
- * cfg_file (void)
- * returns the file the configuration was read from
- *
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "config.h"
-
-typedef struct {
- char *key;
- char *val;
-} ENTRY;
-
-static char *Config_File=NULL;
-static ENTRY *Config=NULL;
-static int nConfig=0;
-
-
-static char *strip (char *s)
-{
- char *p;
-
- while (isblank(*s)) s++;
- for (p=s; *p; p++) {
- if (*p=='"') do p++; while (*p && *p!='\n' && *p!='"');
- if (*p=='\'') do p++; while (*p && *p!='\n' && *p!='\'');
- if (*p=='#' || *p=='\n') {
- *p='\0';
- break;
- }
- }
- for (p--; p>s && isblank(*p); p--) *p='\0';
- return s;
-}
-
-
-void cfg_set (char *key, char *val)
-{
- int i;
-
- for (i=0; i<nConfig; i++) {
- if (strcasecmp(Config[i].key, key)==0) {
- if (Config[i].val) free (Config[i].val);
- Config[i].val=strdup(val);
- return;
- }
- }
- nConfig++;
- Config=realloc(Config, nConfig*sizeof(ENTRY));
- Config[i].key=strdup(key);
- Config[i].val=strdup(val);
-}
-
-
-char *cfg_get (char *key)
-{
- int i;
-
- for (i=0; i<nConfig; i++) {
- if (strcasecmp(Config[i].key, key)==0) {
- return Config[i].val;
- }
- }
- return NULL;
-}
-
-
-int cfg_read (char *file)
-{
- FILE *stream;
- char buffer[256];
- char *line, *p, *s;
-
- stream=fopen (file, "r");
- if (stream==NULL) {
- fprintf (stderr, "open(%s) failed: %s\n", file, strerror(errno));
- return-1;
- }
-
- if (Config_File) free (Config_File);
- Config_File=strdup(file);
-
- while ((line=fgets(buffer,256,stream))!=NULL) {
- if (*(line=strip(line))=='\0') continue;
- for (p=line; *p; p++) {
- if (isblank(*p)) {
- *p++='\0';
- break;
- }
- }
- p=strip(p);
- if (*p) for (s=p; *(s+1); s++);
- else s=p;
- if (*p=='"' && *s=='"') {
- *s='\0';
- p++;
- }
- else if (*p=='\'' && *s=='\'') {
- *s='\0';
- p++;
- }
- cfg_set (line, p);
- }
- fclose (stream);
- return 0;
-}
-
-
-char *cfg_file (void)
-{
- if (Config_File)
- return Config_File;
- else
- return "";
-}