1
0
Fork 0
mirror of git://git.psyc.eu/libpsyc synced 2024-08-15 03:19:02 +00:00

added parsing of empty variables

This commit is contained in:
Marenz 2010-02-20 19:50:10 +01:00
parent 89a08aad15
commit 02feee8458
2 changed files with 33 additions and 26 deletions

View file

@ -245,8 +245,9 @@ inline int PSYC_parseElement(
* so checking for \n too here
* We dont check if cursor inside length, because
* the last loop iteration did that already. */
if(data[*cursor] == '\t' || (data[*cursor] == '\n' && method==1))
* the last loop iteration did that already.
*/
if(data[*cursor] == '\t' || data[*cursor] == '\n') // && method==1))
{
/* after the \t the arg-data follows, which is
* anything but \n. arg-data can be of length 0
@ -259,9 +260,14 @@ inline int PSYC_parseElement(
* to the first potential arg-data byte.
* If there is no arg-data, we still have
* the length attribute on 0. */
if(method == 0 && data[*cursor] == '\n') // emptyvar
{
*value=data+*cursor;
*vlength=0;
}else
{
*value=data+*cursor+1;
*vlength=0;
while(1)
{
if(dlength<=++(*cursor)) // incremented cursor inside lenght?
@ -270,7 +276,7 @@ inline int PSYC_parseElement(
return 1; // return insufficient
}
if(1 != method && data[*cursor] == '\n')
if(0 == method && data[*cursor] == '\n')
break;
if(1 == method && data[*cursor] == '|')
@ -290,7 +296,7 @@ inline int PSYC_parseElement(
}
++(*vlength);
}
}
}

View file

@ -7,6 +7,7 @@ _request_context_enter
:_target psyc://p5B084547.dip.t-dialin.net/@test
:_more vars
:_nocontent
:_entity variablevalue
_notice_context_leave
|