summaryrefslogtreecommitdiff
path: root/contrib/tsearch2/prs_dcfg.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-08-04 00:43:34 +0000
committerBruce Momjian <bruce@momjian.us>2003-08-04 00:43:34 +0000
commit089003fb462fcce46c02bf47322b429f73c33c50 (patch)
tree77d78bc3a149df06f5603f60200a6ab363336624 /contrib/tsearch2/prs_dcfg.c
parent63354a0228a1dbc4a0d5ddc8ecdd8326349d2100 (diff)
downloadpostgresql-089003fb462fcce46c02bf47322b429f73c33c50.tar.gz
pgindent run.
Diffstat (limited to 'contrib/tsearch2/prs_dcfg.c')
-rw-r--r--contrib/tsearch2/prs_dcfg.c200
1 files changed, 119 insertions, 81 deletions
diff --git a/contrib/tsearch2/prs_dcfg.c b/contrib/tsearch2/prs_dcfg.c
index 783cf43ceb..6b553e4525 100644
--- a/contrib/tsearch2/prs_dcfg.c
+++ b/contrib/tsearch2/prs_dcfg.c
@@ -1,5 +1,5 @@
-/*
- * Simple config parser
+/*
+ * Simple config parser
* Teodor Sigaev <teodor@sigaev.ru>
*/
#include <stdlib.h>
@@ -16,126 +16,164 @@
#define CS_WAITEQ 2
#define CS_WAITVALUE 3
#define CS_INVALUE 4
-#define CS_IN2VALUE 5
+#define CS_IN2VALUE 5
#define CS_WAITDELIM 6
#define CS_INESC 7
#define CS_IN2ESC 8
static char *
-nstrdup(char *ptr, int len) {
- char *res=palloc(len+1), *cptr;
- memcpy(res,ptr,len);
- res[len]='\0';
+nstrdup(char *ptr, int len)
+{
+ char *res = palloc(len + 1),
+ *cptr;
+
+ memcpy(res, ptr, len);
+ res[len] = '\0';
cptr = ptr = res;
- while(*ptr) {
- if ( *ptr == '\\' )
+ while (*ptr)
+ {
+ if (*ptr == '\\')
ptr++;
- *cptr=*ptr; ptr++; cptr++;
+ *cptr = *ptr;
+ ptr++;
+ cptr++;
}
- *cptr='\0';
+ *cptr = '\0';
return res;
}
void
-parse_cfgdict(text *in, Map **m) {
- Map *mptr;
- char *ptr=VARDATA(in), *begin=NULL;
- char num=0;
- int state=CS_WAITKEY;
+parse_cfgdict(text *in, Map ** m)
+{
+ Map *mptr;
+ char *ptr = VARDATA(in),
+ *begin = NULL;
+ char num = 0;
+ int state = CS_WAITKEY;
- while( ptr-VARDATA(in) < VARSIZE(in) - VARHDRSZ ) {
- if ( *ptr==',' ) num++;
+ while (ptr - VARDATA(in) < VARSIZE(in) - VARHDRSZ)
+ {
+ if (*ptr == ',')
+ num++;
ptr++;
}
- *m=mptr=(Map*)palloc( sizeof(Map)*(num+2) );
- memset(mptr, 0, sizeof(Map)*(num+2) );
- ptr=VARDATA(in);
- while( ptr-VARDATA(in) < VARSIZE(in) - VARHDRSZ ) {
- if (state==CS_WAITKEY) {
- if (isalpha(*ptr)) {
- begin=ptr;
- state=CS_INKEY;
- } else if ( !isspace(*ptr) )
+ *m = mptr = (Map *) palloc(sizeof(Map) * (num + 2));
+ memset(mptr, 0, sizeof(Map) * (num + 2));
+ ptr = VARDATA(in);
+ while (ptr - VARDATA(in) < VARSIZE(in) - VARHDRSZ)
+ {
+ if (state == CS_WAITKEY)
+ {
+ if (isalpha(*ptr))
+ {
+ begin = ptr;
+ state = CS_INKEY;
+ }
+ else if (!isspace(*ptr))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("syntax error"),
- errdetail("Syntax error in position %d near \"%c\"",
- (int) (ptr-VARDATA(in)), *ptr)));
- } else if (state==CS_INKEY) {
- if ( isspace(*ptr) ) {
- mptr->key=nstrdup(begin, ptr-begin);
- state=CS_WAITEQ;
- } else if ( *ptr=='=' ) {
- mptr->key=nstrdup(begin, ptr-begin);
- state=CS_WAITVALUE;
- } else if ( !isalpha(*ptr) )
+ errdetail("Syntax error in position %d near \"%c\"",
+ (int) (ptr - VARDATA(in)), *ptr)));
+ }
+ else if (state == CS_INKEY)
+ {
+ if (isspace(*ptr))
+ {
+ mptr->key = nstrdup(begin, ptr - begin);
+ state = CS_WAITEQ;
+ }
+ else if (*ptr == '=')
+ {
+ mptr->key = nstrdup(begin, ptr - begin);
+ state = CS_WAITVALUE;
+ }
+ else if (!isalpha(*ptr))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("syntax error"),
- errdetail("Syntax error in position %d near \"%c\"",
- (int) (ptr-VARDATA(in)), *ptr)));
- } else if ( state==CS_WAITEQ ) {
- if ( *ptr=='=' )
- state=CS_WAITVALUE;
- else if ( !isspace(*ptr) )
+ errdetail("Syntax error in position %d near \"%c\"",
+ (int) (ptr - VARDATA(in)), *ptr)));
+ }
+ else if (state == CS_WAITEQ)
+ {
+ if (*ptr == '=')
+ state = CS_WAITVALUE;
+ else if (!isspace(*ptr))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("syntax error"),
- errdetail("Syntax error in position %d near \"%c\"",
- (int) (ptr-VARDATA(in)), *ptr)));
- } else if ( state==CS_WAITVALUE ) {
- if ( *ptr=='"' ) {
- begin=ptr+1;
- state=CS_INVALUE;
- } else if ( !isspace(*ptr) ) {
- begin=ptr;
- state=CS_IN2VALUE;
+ errdetail("Syntax error in position %d near \"%c\"",
+ (int) (ptr - VARDATA(in)), *ptr)));
+ }
+ else if (state == CS_WAITVALUE)
+ {
+ if (*ptr == '"')
+ {
+ begin = ptr + 1;
+ state = CS_INVALUE;
+ }
+ else if (!isspace(*ptr))
+ {
+ begin = ptr;
+ state = CS_IN2VALUE;
}
- } else if ( state==CS_INVALUE ) {
- if ( *ptr=='"' ) {
- mptr->value = nstrdup(begin, ptr-begin);
+ }
+ else if (state == CS_INVALUE)
+ {
+ if (*ptr == '"')
+ {
+ mptr->value = nstrdup(begin, ptr - begin);
mptr++;
- state=CS_WAITDELIM;
- } else if ( *ptr=='\\' )
- state=CS_INESC;
- } else if ( state==CS_IN2VALUE ) {
- if ( isspace(*ptr) || *ptr==',' ) {
- mptr->value = nstrdup(begin, ptr-begin);
+ state = CS_WAITDELIM;
+ }
+ else if (*ptr == '\\')
+ state = CS_INESC;
+ }
+ else if (state == CS_IN2VALUE)
+ {
+ if (isspace(*ptr) || *ptr == ',')
+ {
+ mptr->value = nstrdup(begin, ptr - begin);
mptr++;
- state=( *ptr==',' ) ? CS_WAITKEY : CS_WAITDELIM;
- } else if ( *ptr=='\\' )
- state=CS_INESC;
- } else if ( state==CS_WAITDELIM ) {
- if ( *ptr==',' )
- state=CS_WAITKEY;
- else if ( !isspace(*ptr) )
+ state = (*ptr == ',') ? CS_WAITKEY : CS_WAITDELIM;
+ }
+ else if (*ptr == '\\')
+ state = CS_INESC;
+ }
+ else if (state == CS_WAITDELIM)
+ {
+ if (*ptr == ',')
+ state = CS_WAITKEY;
+ else if (!isspace(*ptr))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("syntax error"),
- errdetail("Syntax error in position %d near \"%c\"",
- (int) (ptr-VARDATA(in)), *ptr)));
- } else if ( state == CS_INESC ) {
- state=CS_INVALUE;
- } else if ( state == CS_IN2ESC ) {
- state=CS_IN2VALUE;
- } else
+ errdetail("Syntax error in position %d near \"%c\"",
+ (int) (ptr - VARDATA(in)), *ptr)));
+ }
+ else if (state == CS_INESC)
+ state = CS_INVALUE;
+ else if (state == CS_IN2ESC)
+ state = CS_IN2VALUE;
+ else
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("bad parser state"),
errdetail("%d at position %d near \"%c\"",
- state, (int) (ptr-VARDATA(in)), *ptr)));
+ state, (int) (ptr - VARDATA(in)), *ptr)));
ptr++;
}
- if (state==CS_IN2VALUE) {
- mptr->value = nstrdup(begin, ptr-begin);
+ if (state == CS_IN2VALUE)
+ {
+ mptr->value = nstrdup(begin, ptr - begin);
mptr++;
- } else if ( !(state==CS_WAITDELIM || state==CS_WAITKEY) )
+ }
+ else if (!(state == CS_WAITDELIM || state == CS_WAITKEY))
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("unexpected end of line")));
}
-
-