Bladeren bron

- Merged FlavioJS's script patch which should fix stuff like "mes ();" causing crashes.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8867 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 jaren geleden
bovenliggende
commit
1bdee644f1
2 gewijzigde bestanden met toevoegingen van 11 en 1 verwijderingen
  1. 2 0
      Changelog-Trunk.txt
  2. 9 1
      src/map/script.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/09/25
+	* Merged FlavioJS's script patch which should fix stuff like "mes ();"
+	  causing crashes. [Skotlex]
 	* Item group reading will now complain when a line doesn't has enough
 	  fields. [Skotlex]
 	* Fixed #baselevelup adding instead of substracting status points when used

+ 9 - 1
src/map/script.c

@@ -671,7 +671,9 @@ unsigned char* parse_subexpr(unsigned char *p,int limit)
 				exit(0);
 			}
 			func=parse_cmd;
-
+			if( *p == '(' && *(plist[i]=(char *)skip_space(p+1)) == ')' ){
+				p=(char *)plist[i]+1; // empty argument list
+			} else
 			while(*p && *p!=')' && i<128) {
 				plist[i]=(char *) p;
 				p=parse_subexpr(p,-1);
@@ -726,12 +728,14 @@ unsigned char* parse_expr(unsigned char *p)
 		disp_error_message("unexpected char",p);
 		exit(1);
 	}
+	/*
 	if(*p == '(') {
 		unsigned char *p2 = skip_space(p + 1);
 		if(*p2 == ')') {
 			return p2 + 1;
 		}
 	}
+	*/
 	p=parse_subexpr(p,-1);
 #ifdef DEBUG_FUNCIN
 	if(battle_config.etc_log)
@@ -800,6 +804,10 @@ unsigned char* parse_line(unsigned char *p)
 	} else {
 		end = ';';
 	}
+
+	if( p && *p == '(' && *(p2=(char *)skip_space(p+1)) == ')' ){
+		p= p2+1; // empty argument list
+	} else
 	while(p && *p && *p != end && i<128){
 		plist[i]=(char *) p;