Add v0.7 source

This commit is contained in:
TomW 2013-04-21 14:54:35 +01:00
commit 3c253c2cf8
188 changed files with 52566 additions and 0 deletions

166
src/config.c Normal file
View file

@ -0,0 +1,166 @@
#include <stdio.h>
#include <string.h>
#include "config.h"
static char config_file[256];
void set_config_file(char *s)
{
strcpy(config_file, s);
}
void config_new()
{
FILE *f = fopen(config_file, "wt");
fclose(f);
}
int get_config_int(char *head, char *name, int def)
{
char buffer[256];
char name2[256];
FILE *f = fopen(config_file, "rt");
int c, d;
int res = def;
if (!f)
return def;
pclog("Searching for %s\n", name);
while (1)
{
fgets(buffer, 255, f);
if (feof(f)) break;
c = d = 0;
while (buffer[c] == ' ' && buffer[c])
c++;
if (!buffer[c]) continue;
while (buffer[c] != '=' && buffer[c] != ' ' && buffer[c])
name2[d++] = buffer[c++];
if (!buffer[c]) continue;
name2[d] = 0;
pclog("Comparing %s and %s\n", name, name2);
if (strcmp(name, name2)) continue;
pclog("Found!\n");
while ((buffer[c] == '=' || buffer[c] == ' ') && buffer[c])
c++;
if (!buffer[c]) continue;
sscanf(&buffer[c], "%i", &res);
pclog("Reading value - %i\n", res);
break;
}
fclose(f);
return res;
}
char config_return_string[256];
char *get_config_string(char *head, char *name, char *def)
{
char buffer[256];
char name2[256];
FILE *f = fopen(config_file, "rt");
int c, d;
strcpy(config_return_string, def);
if (!f)
return config_return_string;
pclog("Searching for %s\n", name);
while (1)
{
fgets(buffer, 255, f);
if (feof(f)) break;
c = d = 0;
while (buffer[c] == ' ' && buffer[c])
c++;
if (!buffer[c]) continue;
while (buffer[c] != '=' && buffer[c] != ' ' && buffer[c])
name2[d++] = buffer[c++];
if (!buffer[c]) continue;
name2[d] = 0;
pclog("Comparing %s and %s\n", name, name2);
if (strcmp(name, name2)) continue;
pclog("Found!\n");
while ((buffer[c] == '=' || buffer[c] == ' ') && buffer[c])
c++;
if (!buffer[c]) continue;
strcpy(config_return_string, &buffer[c]);
c = strlen(config_return_string) - 1;
pclog("string len %i\n", c);
while (config_return_string[c] <= 32 && config_return_string[c])
config_return_string[c--] = 0;
pclog("Reading value - %s\n", config_return_string);
break;
}
fclose(f);
return config_return_string;
}
void set_config_int(char *head, char *name, int val)
{
FILE *f = fopen(config_file, "at");
if (!f) pclog("set_config_int - !f\n");
fprintf(f, "%s = %i\n", name, val);
pclog("Write %s = %i\n", name, val);
fclose(f);
pclog("fclose\n");
}
void set_config_string(char *head, char *name, char *val)
{
FILE *f = fopen(config_file, "at");
if (!f) pclog("set_config_string - !f\n");
fprintf(f, "%s = %s\n", name, val);
pclog("Write %s = %s\n", name, val);
fclose(f);
}
char *get_filename(char *s)
{
int c = strlen(s) - 1;
while (c > 0)
{
if (s[c] == '/' || s[c] == '\\')
return &s[c+1];
c--;
}
return s;
}
void append_filename(char *dest, char *s1, char *s2, int size)
{
sprintf(dest, "%s%s", s1, s2);
}
void put_backslash(char *s)
{
int c = strlen(s) - 1;
if (s[c] != '/' && s[c] != '\\')
s[c] = '/';
}