summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'file.c')
-rw-r--r--file.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/file.c b/file.c
new file mode 100644
index 0000000..083384d
--- /dev/null
+++ b/file.c
@@ -0,0 +1,44 @@
+/*
+ * $Id: file.c,v 1.1 2004/06/02 20:43:05 lordjaxom Exp $
+ */
+
+#include "file.h"
+#include <unistd.h>
+
+cText2SkinFile::cText2SkinFile(const char *Skin) {
+ mSkin = Skin;
+}
+
+cText2SkinFile::~cText2SkinFile() {
+}
+
+bool cText2SkinFile::Load(const string &Filename) {
+ bool result = true;
+ if (access(Filename.c_str(), F_OK) == 0) {
+ isyslog("text2skin: loading %s", Filename.c_str());
+ FILE *f = fopen(Filename.c_str(), "r");
+ if (f) {
+ int line = 0;
+ char buffer[MAXPARSEBUFFER];
+ result = true;
+ while (fgets(buffer, sizeof(buffer), f) > 0) {
+ line++;
+ char *ptr = skipspace(stripspace(buffer));
+ if (!isempty(ptr) && ptr[0] != '#') {
+ if (!Parse(ptr)) {
+ esyslog("ERROR: error in %s, line %d\n", Filename.c_str(), line);
+ result = false;
+ break;
+ }
+ }
+ }
+ fclose(f);
+ } else {
+ LOG_ERROR_STR(Filename.c_str());
+ result = false;
+ }
+ }
+ return result;
+}
+
+