From 1bd4b1c686ba63f685fc0195fa76ada49680d219 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 28 Apr 2008 10:28:59 +0200 Subject: [PATCH] Indentation. --- src/cqltransform.c | 111 +++++++++++++++++++++++++------------------------ test/cql2xcqlsample | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ test/cqlsample | 114 --------------------------------------------------- test/tstcql.sh | 54 ------------------------ test/tstcql2xcql.sh | 54 ++++++++++++++++++++++++ 5 files changed, 223 insertions(+), 224 deletions(-) create mode 100644 test/cql2xcqlsample delete mode 100644 test/cqlsample delete mode 100755 test/tstcql.sh create mode 100755 test/tstcql2xcql.sh diff --git a/src/cqltransform.c b/src/cqltransform.c index ebbed7a..59b74b9 100644 --- a/src/cqltransform.c +++ b/src/cqltransform.c @@ -40,7 +40,7 @@ struct cql_transform_t_ { cql_transform_t cql_transform_open_FILE(FILE *f) { char line[1024]; - cql_transform_t ct = (cql_transform_t) xmalloc (sizeof(*ct)); + cql_transform_t ct = (cql_transform_t) xmalloc(sizeof(*ct)); struct cql_prop_entry **pp = &ct->entry; ct->error = 0; @@ -81,15 +81,15 @@ cql_transform_t cql_transform_open_FILE(FILE *f) if (cp_value_end != cp_value_start && strchr(" \t\r\n", cp_value_end[-1])) cp_value_end--; - *pp = (struct cql_prop_entry *) xmalloc (sizeof(**pp)); + *pp = (struct cql_prop_entry *) xmalloc(sizeof(**pp)); (*pp)->pattern = (char *) xmalloc(cp_pattern_end-cp_pattern_start + 1); - memcpy ((*pp)->pattern, cp_pattern_start, - cp_pattern_end-cp_pattern_start); + memcpy((*pp)->pattern, cp_pattern_start, + cp_pattern_end-cp_pattern_start); (*pp)->pattern[cp_pattern_end-cp_pattern_start] = '\0'; - (*pp)->value = (char *) xmalloc (cp_value_end-cp_value_start + 1); + (*pp)->value = (char *) xmalloc(cp_value_end-cp_value_start + 1); if (cp_value_start != cp_value_end) - memcpy ((*pp)->value, cp_value_start, cp_value_end-cp_value_start); + memcpy((*pp)->value, cp_value_start, cp_value_end-cp_value_start); (*pp)->value[cp_value_end - cp_value_start] = '\0'; pp = &(*pp)->next; } @@ -106,14 +106,13 @@ void cql_transform_close(cql_transform_t ct) while (pe) { struct cql_prop_entry *pe_next = pe->next; - xfree (pe->pattern); - xfree (pe->value); - xfree (pe); + xfree(pe->pattern); + xfree(pe->value); + xfree(pe); pe = pe_next; } - if (ct->addinfo) - xfree (ct->addinfo); - xfree (ct); + xfree(ct->addinfo); + xfree(ct); } cql_transform_t cql_transform_open_fname(const char *fname) @@ -135,13 +134,13 @@ static const char *cql_lookup_property(cql_transform_t ct, struct cql_prop_entry *e; if (pat1 && pat2 && pat3) - sprintf (pattern, "%.39s.%.39s.%.39s", pat1, pat2, pat3); + sprintf(pattern, "%.39s.%.39s.%.39s", pat1, pat2, pat3); else if (pat1 && pat2) - sprintf (pattern, "%.39s.%.39s", pat1, pat2); + sprintf(pattern, "%.39s.%.39s", pat1, pat2); else if (pat1 && pat3) - sprintf (pattern, "%.39s.%.39s", pat1, pat3); + sprintf(pattern, "%.39s.%.39s", pat1, pat3); else if (pat1) - sprintf (pattern, "%.39s", pat1); + sprintf(pattern, "%.39s", pat1); else return 0; @@ -208,7 +207,7 @@ int cql_pr_attr_uri(cql_transform_t ct, const char *category, cp1++; if (cp1 - cp0 >= sizeof(buf)) break; - memcpy (buf, cp0, cp1 - cp0); + memcpy(buf, cp0, cp1 - cp0); buf[cp1-cp0] = 0; (*pr)("@attr ", client_data); @@ -254,9 +253,9 @@ int cql_pr_attr(cql_transform_t ct, const char *category, } -static void cql_pr_int (int val, - void (*pr)(const char *buf, void *client_data), - void *client_data) +static void cql_pr_int(int val, + void (*pr)(const char *buf, void *client_data), + void *client_data) { char buf[21]; /* enough characters to 2^64 */ sprintf(buf, "%d", val); @@ -276,55 +275,61 @@ static int cql_pr_prox(cql_transform_t ct, struct cql_node *mods, int proxrel = 2; /* less than or equal */ int unit = 2; /* word */ - while (mods != 0) { - char *name = mods->u.st.index; - char *term = mods->u.st.term; - char *relation = mods->u.st.relation; + while (mods) + { + const char *name = mods->u.st.index; + const char *term = mods->u.st.term; + const char *relation = mods->u.st.relation; if (!strcmp(name, "distance")) { distance = strtol(term, (char**) 0, 0); distance_defined = 1; - if (!strcmp(relation, "=")) { + if (!strcmp(relation, "=")) proxrel = 3; - } else if (!strcmp(relation, ">")) { + else if (!strcmp(relation, ">")) proxrel = 5; - } else if (!strcmp(relation, "<")) { + else if (!strcmp(relation, "<")) proxrel = 1; - } else if (!strcmp(relation, ">=")) { + else if (!strcmp(relation, ">=")) proxrel = 4; - } else if (!strcmp(relation, "<=")) { + else if (!strcmp(relation, "<=")) proxrel = 2; - } else if (!strcmp(relation, "<>")) { + else if (!strcmp(relation, "<>")) proxrel = 6; - } else { + else + { ct->error = YAZ_SRW_UNSUPP_PROX_RELATION; ct->addinfo = xstrdup(relation); return 0; } - } else if (!strcmp(name, "ordered")) { + } + else if (!strcmp(name, "ordered")) ordered = 1; - } else if (!strcmp(name, "unordered")) { + else if (!strcmp(name, "unordered")) ordered = 0; - } else if (!strcmp(name, "unit")) { - if (!strcmp(term, "word")) { + else if (!strcmp(name, "unit")) + { + if (!strcmp(term, "word")) unit = 2; - } else if (!strcmp(term, "sentence")) { + else if (!strcmp(term, "sentence")) unit = 3; - } else if (!strcmp(term, "paragraph")) { + else if (!strcmp(term, "paragraph")) unit = 4; - } else if (!strcmp(term, "element")) { + else if (!strcmp(term, "element")) unit = 8; - } else { + else + { ct->error = YAZ_SRW_UNSUPP_PROX_UNIT; ct->addinfo = xstrdup(term); return 0; } - } else { + } + else + { ct->error = YAZ_SRW_UNSUPP_BOOLEAN_MODIFIER; ct->addinfo = xstrdup(name); return 0; } - mods = mods->u.st.modifiers; } @@ -613,27 +618,24 @@ void cql_transform_r(cql_transform_t ct, cql_pr_attr(ct, "structure", cn->u.st.relation, 0, pr, client_data, YAZ_SRW_UNSUPP_COMBI_OF_RELATION_AND_TERM); if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "all")) - { emit_wordlist(ct, cn, pr, client_data, "and"); - } else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "any")) - { emit_wordlist(ct, cn, pr, client_data, "or"); - } else - { emit_terms(ct, cn, pr, client_data, "and"); - } break; case CQL_NODE_BOOL: (*pr)("@", client_data); (*pr)(cn->u.boolean.value, client_data); (*pr)(" ", client_data); mods = cn->u.boolean.modifiers; - if (!strcmp(cn->u.boolean.value, "prox")) { + if (!strcmp(cn->u.boolean.value, "prox")) + { if (!cql_pr_prox(ct, mods, pr, client_data)) return; - } else if (mods) { + } + else if (mods) + { /* Boolean modifiers other than on proximity not supported */ ct->error = YAZ_SRW_UNSUPP_BOOLEAN_MODIFIER; ct->addinfo = xstrdup(mods->u.st.index); @@ -650,8 +652,7 @@ void cql_transform_r(cql_transform_t ct, } } -int cql_transform(cql_transform_t ct, - struct cql_node *cn, +int cql_transform(cql_transform_t ct, struct cql_node *cn, void (*pr)(const char *buf, void *client_data), void *client_data) { @@ -659,8 +660,7 @@ int cql_transform(cql_transform_t ct, NMEM nmem = nmem_create(); ct->error = 0; - if (ct->addinfo) - xfree (ct->addinfo); + xfree(ct->addinfo); ct->addinfo = 0; for (e = ct->entry; e ; e = e->next) @@ -670,7 +670,7 @@ int cql_transform(cql_transform_t ct, else if (!cql_strcmp(e->pattern, "set")) cql_apply_prefix(nmem, cn, 0, e->value); } - cql_transform_r (ct, cn, pr, client_data); + cql_transform_r(ct, cn, pr, client_data); nmem_destroy(nmem); return ct->error; } @@ -681,8 +681,7 @@ int cql_transform_FILE(cql_transform_t ct, struct cql_node *cn, FILE *f) return cql_transform(ct, cn, cql_fputs, f); } -int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, - char *out, int max) +int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, char *out, int max) { struct cql_buf_write_info info; int r; diff --git a/test/cql2xcqlsample b/test/cql2xcqlsample new file mode 100644 index 0000000..9bc2819 --- /dev/null +++ b/test/cql2xcqlsample @@ -0,0 +1,114 @@ +# CQL queries for testing. +# from http://www.loc.gov/z3950/agency/zing/cql/sample-queries.html +# Simple Term + +cat +"cat" +comp.os.linux +ml:element +"" +"=" +"prox/distance<3/unit=word" +("cat") +((dog)) +all +prox + +# Index Relation Term + +title = "fish" +title == fish +title any fish +title all fish +title > 9 +title >= 23 +dc.title any "fish chips" +dc.title any/stem fish +dc.fish all/stem/fuzzy "fish chips" +(title any frog) +((dc.title any/stem "frog pond")) +dc.title = "fish frog chicken" +dc.title =/rel.algorithm=CORI squid +creator any/f.foo/b.bar>1 "sanderson taylor" + +# Simple Boolean + +cat or dog +cat and fish +cat not frog +(cat not frog) +"cat" not "fish food" +xml and "prox///" +fred and any +((fred or all)) +a or b and c not d + +# Index Relation Term plus Boolean + +bath.uniformTitle any fish and dc.title any "cat dog" +(title any/stem "fish dog" or and) + +# Proximity and Boolean Modifiers + +cat prox hat +cat prox/distance=3/unit=word/ordered hat +cat prox/distance<3 hat +"fish food" prox/unit=sentence and +title all "chips frog" prox/distance<=5 exact +(dc.author == "jones" prox/distance>5/unit=element title >= "smith") +a and/rel.SumOfScores b +a and/rel.algorithm=CORI b + +# Special Characters + +(cat^) +"cat" +"^cat says \"fish\"" +"cat*fish" +cat?dog +(("^cat*fishdog\"horse?")) + +# Nesting Parentheses + +(((cat or dog) or horse) and frog) +(cat and dog) or (horse and frog) +(cat and (horse or frog)) and chips + +# Prefix Maps + +> foo="info:srw/cql-context-set/1/dc-v1.1" dc.title="fish" +> "info:srw/cql-context-set/1/dc-v1.1" title="fish" +> foo="info:srw/cql-context-set/1/dc-v1.1" > ccg = "http://srw.cheshire3.org/contextSets/ccg/1.1/" foo.title="fish" and ccg.force=3 + +# Lame Searches + +any or all:stem and all == any prox prox=fuzzy +(((((((((any))))))))) +"" +> any > any = exact any > any + +# Invalid searches [should error] + +< +=== +missingClause or +missingTerm any +() +(missingParen +missingParen any fish) +(emptyParens or ()) +title = ("illegal parentheses") +> illegal="urn:missingQuery" + +# free-form term OK) +a b +a b c +a.b c +and b c +all a +a any b +dc.title a b c and d + +# free-form term (Syntax error) +a b.c +a and diff --git a/test/cqlsample b/test/cqlsample deleted file mode 100644 index 9bc2819..0000000 --- a/test/cqlsample +++ /dev/null @@ -1,114 +0,0 @@ -# CQL queries for testing. -# from http://www.loc.gov/z3950/agency/zing/cql/sample-queries.html -# Simple Term - -cat -"cat" -comp.os.linux -ml:element -"" -"=" -"prox/distance<3/unit=word" -("cat") -((dog)) -all -prox - -# Index Relation Term - -title = "fish" -title == fish -title any fish -title all fish -title > 9 -title >= 23 -dc.title any "fish chips" -dc.title any/stem fish -dc.fish all/stem/fuzzy "fish chips" -(title any frog) -((dc.title any/stem "frog pond")) -dc.title = "fish frog chicken" -dc.title =/rel.algorithm=CORI squid -creator any/f.foo/b.bar>1 "sanderson taylor" - -# Simple Boolean - -cat or dog -cat and fish -cat not frog -(cat not frog) -"cat" not "fish food" -xml and "prox///" -fred and any -((fred or all)) -a or b and c not d - -# Index Relation Term plus Boolean - -bath.uniformTitle any fish and dc.title any "cat dog" -(title any/stem "fish dog" or and) - -# Proximity and Boolean Modifiers - -cat prox hat -cat prox/distance=3/unit=word/ordered hat -cat prox/distance<3 hat -"fish food" prox/unit=sentence and -title all "chips frog" prox/distance<=5 exact -(dc.author == "jones" prox/distance>5/unit=element title >= "smith") -a and/rel.SumOfScores b -a and/rel.algorithm=CORI b - -# Special Characters - -(cat^) -"cat" -"^cat says \"fish\"" -"cat*fish" -cat?dog -(("^cat*fishdog\"horse?")) - -# Nesting Parentheses - -(((cat or dog) or horse) and frog) -(cat and dog) or (horse and frog) -(cat and (horse or frog)) and chips - -# Prefix Maps - -> foo="info:srw/cql-context-set/1/dc-v1.1" dc.title="fish" -> "info:srw/cql-context-set/1/dc-v1.1" title="fish" -> foo="info:srw/cql-context-set/1/dc-v1.1" > ccg = "http://srw.cheshire3.org/contextSets/ccg/1.1/" foo.title="fish" and ccg.force=3 - -# Lame Searches - -any or all:stem and all == any prox prox=fuzzy -(((((((((any))))))))) -"" -> any > any = exact any > any - -# Invalid searches [should error] - -< -=== -missingClause or -missingTerm any -() -(missingParen -missingParen any fish) -(emptyParens or ()) -title = ("illegal parentheses") -> illegal="urn:missingQuery" - -# free-form term OK) -a b -a b c -a.b c -and b c -all a -a any b -dc.title a b c and d - -# free-form term (Syntax error) -a b.c -a and diff --git a/test/tstcql.sh b/test/tstcql.sh deleted file mode 100755 index 7bcda25..0000000 --- a/test/tstcql.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -srcdir=${srcdir:-.} -oIFS="$IFS" -IFS=' -' -secno=0 -testno=0 -comment=0 -ecode=0 -test -f ${srcdir}/cqlsample || exit 1 -test -d cql || mkdir cql -for f in `cat ${srcdir}/cqlsample`; do - if echo $f | grep '^#' >/dev/null; then - comment=1 - else - if test "$comment" = "1"; then - secno=`expr $secno + 1` - testno=0 - fi - comment=0 - testno=`expr $testno + 1` - OUT1=${srcdir}/cql/$secno.$testno.out - ERR1=${srcdir}/cql/$secno.$testno.err - OUT2=cql/$secno.$testno.out.tmp - ERR2=cql/$secno.$testno.err.tmp - DIFF=cql/$secno.$testno.diff - ../util/cql2xcql "$f" >$OUT2 2>$ERR2 - if test -f $OUT1 -a -f $ERR1; then - if diff $OUT1 $OUT2 >$DIFF; then - rm $DIFF - rm $OUT2 - else - echo "diff out $secno $testno $f" - cat $DIFF - ecode=1 - fi - if diff $ERR1 $ERR2 >$DIFF; then - rm $DIFF - rm $ERR2 - else - echo "diff err $secno $testno $f" - cat $DIFF - ecode=1 - fi - else - echo "making test $secno $testno $f" - mv $OUT2 $OUT1 - mv $ERR2 $ERR1 - ecode=1 - fi - fi -done -IFS="$oIFS" -exit $ecode diff --git a/test/tstcql2xcql.sh b/test/tstcql2xcql.sh new file mode 100755 index 0000000..7bcda25 --- /dev/null +++ b/test/tstcql2xcql.sh @@ -0,0 +1,54 @@ +#!/bin/sh +srcdir=${srcdir:-.} +oIFS="$IFS" +IFS=' +' +secno=0 +testno=0 +comment=0 +ecode=0 +test -f ${srcdir}/cqlsample || exit 1 +test -d cql || mkdir cql +for f in `cat ${srcdir}/cqlsample`; do + if echo $f | grep '^#' >/dev/null; then + comment=1 + else + if test "$comment" = "1"; then + secno=`expr $secno + 1` + testno=0 + fi + comment=0 + testno=`expr $testno + 1` + OUT1=${srcdir}/cql/$secno.$testno.out + ERR1=${srcdir}/cql/$secno.$testno.err + OUT2=cql/$secno.$testno.out.tmp + ERR2=cql/$secno.$testno.err.tmp + DIFF=cql/$secno.$testno.diff + ../util/cql2xcql "$f" >$OUT2 2>$ERR2 + if test -f $OUT1 -a -f $ERR1; then + if diff $OUT1 $OUT2 >$DIFF; then + rm $DIFF + rm $OUT2 + else + echo "diff out $secno $testno $f" + cat $DIFF + ecode=1 + fi + if diff $ERR1 $ERR2 >$DIFF; then + rm $DIFF + rm $ERR2 + else + echo "diff err $secno $testno $f" + cat $DIFF + ecode=1 + fi + else + echo "making test $secno $testno $f" + mv $OUT2 $OUT1 + mv $ERR2 $ERR1 + ecode=1 + fi + fi +done +IFS="$oIFS" +exit $ecode -- 1.7.10.4