X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=retrieval%2Fd1_if.c;h=62facc35d81cab74d667b4709d01092f2d43c648;hb=548d8ab9b0b5930db27643b47fc55afce5511219;hp=42790ec8bfb54139c7dd15f6ecc190f1a3035a03;hpb=809ef8947e98c402bdf0b57e730545525ce4e94a;p=yaz-moved-to-github.git diff --git a/retrieval/d1_if.c b/retrieval/d1_if.c index 42790ec..62facc3 100644 --- a/retrieval/d1_if.c +++ b/retrieval/d1_if.c @@ -1,12 +1,21 @@ /* - * Copyright (c) 1995-1999, Index Data. + * Copyright (c) 1995-2000, Index Data. * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * - * d1_if.c : A simple interface for extracting strings from data1_node tree structures + * d1_if.c : A simple interface for extracting strings from data1_node + * tree structures * * $Log: d1_if.c,v $ - * Revision 1.2 2000-01-04 17:46:17 ian + * Revision 1.5 2000-02-10 13:42:43 adam + * Removed C++ comment. + * + * Revision 1.4 2000/01/06 14:30:56 adam + * Minor change - to prevent warnings. + * + * Revision 1.3 2000/01/06 11:27:02 adam + * Minor fix so that this source compiles using Visual C++. + * + * Revision 1.2 2000/01/04 17:46:17 ian * Added function to count occurences of a tag spec in a data1 tree. * * Revision 1.1 1999/12/21 14:16:19 ian @@ -14,7 +23,6 @@ * Also added a simple interface for extracting values from data1 trees using * a string based tagpath. * - * */ #include @@ -54,7 +62,7 @@ char data1_ScanNextToken(char* pBuffer, else { if ( strchr(pWhitespaceChars, **pPosInBuffer) != NULL ) - *pPosInBuffer++; + (*pPosInBuffer)++; else *pBuff++ = *((*pPosInBuffer)++); } @@ -104,6 +112,9 @@ char *data1_getNodeValue(data1_node* node, char* pTagPath) } +/* Max length of a tag */ +#define MAX_TAG_SIZE 50 + /* * data1_LookupNode : Try and find a node as specified by a tagpath */ @@ -115,14 +126,11 @@ data1_node *data1_LookupNode(data1_node* node, char* pTagPath) /* Current Child node as we search for nodes matching the pattern in the tagpath */ data1_node* current_child = node->child; - /* Max length of a tag */ - int iMaxTagSize=50; - /* Current position in string */ char* pCurrCharInPath = pTagPath; /* Work buffer */ - char Buffer[iMaxTagSize]; + char Buffer[MAX_TAG_SIZE]; /* The tag type of this node */ int iTagType = 0; @@ -131,7 +139,7 @@ data1_node *data1_LookupNode(data1_node* node, char* pTagPath) int iTagValue = 0; /* for string tags, the tag value */ - char StringTagVal[iMaxTagSize]; + char StringTagVal[MAX_TAG_SIZE]; /* Which occurence of that tag under this node */ int iOccurences=0; @@ -211,12 +219,14 @@ data1_node *data1_LookupNode(data1_node* node, char* pTagPath) { if ( iOccurences ) { - // Everything matched, but not yet found the right occurence of the given tag + /* Everything matched, but not yet found the + right occurence of the given tag */ iOccurences--; } else { - /* We have matched a string tag... Is there more to process? */ + /* We have matched a string tag... Is there more to + process? */ matched_node = current_child; } }