diff options
author | Brian Cully <bjc@kublai.com> | 2008-04-14 21:54:00 -0400 |
---|---|---|
committer | Brian Cully <github.20.shmit@spamgourmet.com> | 2008-04-14 21:54:00 -0400 |
commit | 79d65188b1c1578a36403c0e5756c81dcc93d816 (patch) | |
tree | 2903ed400cd0ebd13350397d402c1d9d5b9f869d /libconfig/.svn/text-base/DictData.m.svn-base | |
parent | 6ba98a9f9f48e13738d9736cba9c45b5e94f42f2 (diff) | |
download | nastd-79d65188b1c1578a36403c0e5756c81dcc93d816.tar.gz nastd-79d65188b1c1578a36403c0e5756c81dcc93d816.zip |
Remove svn files
Diffstat (limited to 'libconfig/.svn/text-base/DictData.m.svn-base')
-rw-r--r-- | libconfig/.svn/text-base/DictData.m.svn-base | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/libconfig/.svn/text-base/DictData.m.svn-base b/libconfig/.svn/text-base/DictData.m.svn-base deleted file mode 100644 index 8620d7c..0000000 --- a/libconfig/.svn/text-base/DictData.m.svn-base +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) 1998, Brian Cully <shmit@kublai.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The names of contributers to this software may not be used to endorse - * or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#include "DictData.h" -#include "Parser.h" -#include "String.h" - -#include <ctype.h> -#include <errno.h> -#include <limits.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> - -@implementation DictData --init -{ - self = [super init]; - - numChildren = 0; - curObj = 0; - data = malloc(MALLOC_GRANULARITY * sizeof(DataObject *)); - if (!data) { - fprintf(stderr, "ERROR: couldn't allocate memory: %s.\n", - strerror(errno)); - return nil; - } - - return self; -} - --free -{ - int i; - - fprintf(stderr, "DEBUG: freeing dict\n"); - for (i = 0; i < numChildren; i++) - [data[i] free]; - free(data); - [super free]; - - return nil; -} - --addChild: child -{ - /* Allocate additional space for children pointers, if required. */ - if (numChildren % MALLOC_GRANULARITY == 0) { - /* TODO: fail gracefully. */ - data = realloc(data, (numChildren+MALLOC_GRANULARITY) * - sizeof(DictEntry *)); - if (!data) { - fprintf(stderr, - "ERROR: couldn't allocate memory: %s.\n", - strerror(errno)); - return nil; - } - } - - data[numChildren] = child; - - numChildren++; - return self; -} - --setFromBuffer: (const char *)buffer withLength: (int)len -{ - Parser *parser; - String *string; - const char *offset; - - self = [super init]; - parser = [Parser new]; - string = [[String new] init]; - if (parser == nil || string == nil) - return nil; - - if (buffer[len] == '\0') - len--; - - /* Skip any leading white space. */ - for (offset = buffer; offset <= buffer+len && isspace((int)*offset); - offset++); - /* Kill any ending white space. */ - for (; len >= 0 && isspace((int)buffer[len]); len--); - - /* If there's a leading brace, kill it and the ending one. */ - if (offset[0] == '{') { - if (buffer[len] != '}') { - fprintf(stderr, "ERROR: Unbalanced braces.\n"); - [parser free]; [string free]; - return nil; - } - offset++; len--; - - /* Do the whitespace shuffle again. */ - for (; len >= 0 && isspace((int)buffer[len]); len--); - } - - while (offset < buffer+len) { - DataObject *dataObj; - DictEntry *dictEntry; - String *key; - char *sep; - int strLen; - - /* Do the whitespace shuffle. */ - for (; offset <= buffer+len && isspace((int)*offset); offset++); - - /* Get the key element. */ - sep = strchr(offset, '='); - if (!sep) { - fprintf(stderr, "ERROR: No equals sign!\n"); - return nil; - } - for (sep--; sep > offset && isspace((int)*sep); sep--); - key = [[[String new] init] setStr: offset - withLength: (sep-offset+1)]; - - /* Get the data element. */ - offset = strchr(offset, '='); - for(offset++; offset < buffer+len && isspace((int)*offset); - offset++); - strLen = [parser getLineLenFrom: offset to: buffer+len]; - [string setStr: offset withLength: strLen]; - offset += strLen + 1; - - /* Parse the data element, then add it to our list. */ - dataObj = [parser getDataFrom: string]; - if (dataObj == nil) { - fprintf(stderr, - "ERROR: Couldn't parse data for node `%s'.\n", - [key getStr]); - [parser free]; [string free]; - return nil; - } - - dictEntry = [[DictEntry new] setKey: key]; - if (dictEntry == nil) { - fprintf(stderr, - "ERROR: Couldn't create node `%s'.\n", - [key getStr]); - [parser free]; [string free]; - return nil; - } - [dictEntry setData: dataObj]; - [self addChild: dictEntry]; - } - - [parser free]; [string free]; - return self; -} - --delChild: (const char *)keyName -{ - return self; -} - --findChild: (const char *)keyName -{ - int i; - - for (i = 0; i < numChildren; i++) - if (!strcmp([[data[i] getKey] getStr], keyName)) - return data[i]; - return nil; -} - --firstObject -{ - curObj = 0; - return [self nextObject]; -} - --nextObject -{ - DictEntry *obj; - - if (curObj >= numChildren) - return nil; - obj = data[curObj]; - curObj++; - return obj; -} -@end |