summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
authorFlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-04-23 11:14:45 +0000
committerFlavioJS <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>2008-04-23 11:14:45 +0000
commitf09707bb9ea08e32d849ae2019d16cd7e14606a7 (patch)
tree0e081f4e99d4d99c9a2f96b5eade70924f7f65f9 /src/map/script.c
parent4e45ec34bb37eb515480cfc42dce7d7380a5e235 (diff)
downloadhercules-f09707bb9ea08e32d849ae2019d16cd7e14606a7.tar.gz
hercules-f09707bb9ea08e32d849ae2019d16cd7e14606a7.tar.bz2
hercules-f09707bb9ea08e32d849ae2019d16cd7e14606a7.tar.xz
hercules-f09707bb9ea08e32d849ae2019d16cd7e14606a7.zip
* Fixed script strings not being handled properly (only skipped the \).
* Added skip_escaped_c to strlib.c/h. * Fixed sv_unescape_c not handling hex/octal escapes properly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12639 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/script.c')
-rw-r--r--src/map/script.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 236bcf71e..6c2f30c55 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -921,7 +921,16 @@ const char* parse_simpleexpr(const char *p)
p++;
while( *p && *p != '"' ){
if( (unsigned char)p[-1] <= 0x7e && *p == '\\' )
- p++;
+ {
+ char buf[8];
+ size_t len = skip_escaped_c(p) - p;
+ size_t n = sv_unescape_c(buf, p, len);
+ if( n != 1 )
+ ShowDebug("parse_simpleexpr: unexpected length %d after unescape (\"%.*s\" -> %.*s)\n", (int)n, (int)len, p, (int)n, buf);
+ p += len;
+ add_scriptb(*buf);
+ continue;
+ }
else if( *p == '\n' )
disp_error_message("parse_simpleexpr: unexpected newline @ string",p);
add_scriptb(*p++);