strgen/strgen.c
changeset 2107 607a900aefa3
parent 2087 bedb167de57b
child 2186 461a2aff3486
equal deleted inserted replaced
2106:e0cbbec2e6e9 2107:607a900aefa3
   632 
   632 
   633 	memset(p, 0, sizeof(*p));
   633 	memset(p, 0, sizeof(*p));
   634 
   634 
   635 	for(;;) {
   635 	for(;;) {
   636 		// read until next command from a.
   636 		// read until next command from a.
   637 		ar = ParseCommandString(&s, param, &argno, &casei);
   637 		ar = ParseCommandString((const char **)&s, param, &argno, &casei);
   638 		if (ar == NULL)
   638 		if (ar == NULL)
   639 			break;
   639 			break;
   640 
   640 
   641 		// Sanity checking
   641 		// Sanity checking
   642 		if (argno != -1 && !ar->consumes) Fatal("Non consumer param can't have a paramindex");
   642 		if (argno != -1 && !ar->consumes) Fatal("Non consumer param can't have a paramindex");
   889 			hash ^= i * 0x717239;
   889 			hash ^= i * 0x717239;
   890 			if (hash & 1) hash = (hash>>1) ^ 0xDEADBEEF; else hash >>= 1;
   890 			if (hash & 1) hash = (hash>>1) ^ 0xDEADBEEF; else hash >>= 1;
   891 			hash = MyHashStr(hash, s + 1);
   891 			hash = MyHashStr(hash, s + 1);
   892 
   892 
   893 			s = ls->english;
   893 			s = ls->english;
   894 			while ((cs = ParseCommandString(&s, buf, &argno, &casei)) != NULL) {
   894 			while ((cs = ParseCommandString((const char **)&s, buf, &argno, &casei)) != NULL) {
   895 				if (cs->flags & C_DONTCOUNT)
   895 				if (cs->flags & C_DONTCOUNT)
   896 					continue;
   896 					continue;
   897 
   897 
   898 				hash ^= (cs - _cmd_structs) * 0x1234567;
   898 				hash ^= (cs - _cmd_structs) * 0x1234567;
   899 				if (hash & 1) hash = (hash>>1) ^ 0xF00BAA4; else hash >>= 1;
   899 				if (hash & 1) hash = (hash>>1) ^ 0xF00BAA4; else hash >>= 1;