git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
check for freetype-config also in /opt/local/bin, /sw/bin.
[swftools.git]
/
src
/
parser.lex
diff --git
a/src/parser.lex
b/src/parser.lex
index
6314203
..
337da1e
100644
(file)
--- a/
src/parser.lex
+++ b/
src/parser.lex
@@
-101,6
+101,7
@@
static void unescapeString(string_t * tmp)
case 't': p[0] = '\t'; break;
case 'x': {
int num=0;
case 't': p[0] = '\t'; break;
case 'x': {
int num=0;
+ char*utf8;
while(strchr("0123456789abcdefABCDEF", p[nr])) {
num <<= 4;
if(p[nr]>='0' && p[nr]<='9') num |= p[nr] - '0';
while(strchr("0123456789abcdefABCDEF", p[nr])) {
num <<= 4;
if(p[nr]>='0' && p[nr]<='9') num |= p[nr] - '0';
@@
-108,7
+109,7
@@
static void unescapeString(string_t * tmp)
if(p[nr]>='A' && p[nr]<='F') num |= p[nr] - 'A' + 10;
nr++;
}
if(p[nr]>='A' && p[nr]<='F') num |= p[nr] - 'A' + 10;
nr++;
}
- char*utf8 = getUTF8(num);
+ utf8 = getUTF8(num);
new = strlen(utf8);
memcpy(p, utf8, new); // do not copy the terminating zero
new = strlen(utf8);
memcpy(p, utf8, new); // do not copy the terminating zero
@@
-118,12
+119,14
@@
static void unescapeString(string_t * tmp)
continue;
}
tmp->len -= (nr-new);
continue;
}
tmp->len -= (nr-new);
- int t;
- char*to=p+new,*from=p+nr;
- while(*from) {
- *to = *from;
- to++;
- from++;
+ {
+ int t;
+ char*to=p+new,*from=p+nr;
+ while(*from) {
+ *to = *from;
+ to++;
+ from++;
+ }
}
}
}
}
}
}
@@
-241,6
+244,7
@@
NUMBER -?[0-9]+(\.[0-9]*)?
PERCENT {NUMBER}%
STRING (\\.|[^\\"\n])*
S [ \n\r\t]
PERCENT {NUMBER}%
STRING (\\.|[^\\"\n])*
S [ \n\r\t]
+NS [^ \n\r\t]
RVALUE \"{STRING}\"|([^ \n\r\t]+)
%%
RVALUE \"{STRING}\"|([^ \n\r\t]+)
%%
@@
-262,7
+266,7
@@
RVALUE \"{STRING}\"|([^ \n\r\t]+)
}
\.include{S}.*\n {handleInclude(yytext, yyleng);}
\.{NAME} {s(COMMAND);c();}
}
\.include{S}.*\n {handleInclude(yytext, yyleng);}
\.{NAME} {s(COMMAND);c();}
-:([^.]|\.[^e]|\.e[^n]|\.en[^d]|[ \n\r\t])*\.end {s(RAWDATA);c();}
+:({NS}|{S}[^.]|{S}\.[^e]|{S}\.e[^n]|{S}\.en[^d]|{S}\.end{NS})*{S}\.end {s(RAWDATA);c();}
{NAME} {s(IDENTIFIER);c();}
"[" {c();BEGIN(BINARY);}
{S} {c();}
{NAME} {s(IDENTIFIER);c();}
"[" {c();BEGIN(BINARY);}
{S} {c();}