changeset 12175:a8461c552ea5 draft

(svn r16591) -Codechange: some coding style in strgen
author rubidium <rubidium@openttd.org>
date Thu, 18 Jun 2009 11:17:55 +0000
parents 1f14f0dd0ca0
children 3e420ecefa97 11f0c0521003 3b9a928aa66c
files src/strgen/strgen.cpp
diffstat 1 files changed, 57 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -238,7 +238,7 @@
 {
 	char *err;
 	int x = strtol(buf, &err, 0);
-	if (*err != 0) error("SetX param invalid");
+	if (*err != '\0') error("SetX param invalid");
 	PutUtf8(SCC_SETX);
 	PutByte((byte)x);
 }
@@ -247,12 +247,10 @@
 static void EmitSetXY(char *buf, int value)
 {
 	char *err;
-	int x;
-	int y;
 
-	x = strtol(buf, &err, 0);
+	int x = strtol(buf, &err, 0);
 	if (*err != ' ') error("SetXY param invalid");
-	y = strtol(err + 1, &err, 0);
+	int y = strtol(err + 1, &err, 0);
 	if (*err != 0) error("SetXY param invalid");
 
 	PutUtf8(SCC_SETXY);
@@ -271,14 +269,13 @@
 	const char *s = *buf;
 	char *end;
 	bool rel = false;
-	int v;
 
 	while (*s == ' ' || *s == '\t') s++;
 	if (*s == '+') {
 		rel = true;
 		s++;
 	}
-	v = strtol(s, &end, 0);
+	int v = strtol(s, &end, 0);
 	if (end == s) return false;
 	if (rel || v < 0) {
 		*value += v;
@@ -329,13 +326,10 @@
 
 static void EmitWordList(const char * const *words, uint nw)
 {
-	uint i;
-	uint j;
-
 	PutByte(nw);
-	for (i = 0; i < nw; i++) PutByte(strlen(words[i]));
-	for (i = 0; i < nw; i++) {
-		for (j = 0; words[i][j] != '\0'; j++) PutByte(words[i][j]);
+	for (uint i = 0; i < nw; i++) PutByte(strlen(words[i]));
+	for (uint i = 0; i < nw; i++) {
+		for (uint j = 0; words[i][j] != '\0'; j++) PutByte(words[i][j]);
 	}
 }
 
@@ -354,8 +348,9 @@
 		if (words[nw] == NULL) break;
 	}
 
-	if (nw == 0)
+	if (nw == 0) {
 		error("%s: No plural words", _cur_ident);
+	}
 
 	if (_plural_forms[_lang_pluralform].plural_count != nw) {
 		if (_translated) {
@@ -389,20 +384,20 @@
 
 		/* This is a {G=DER} command */
 		for (nw = 0; ; nw++) {
-			if (nw >= 8) error("G argument '%s' invalid", buf);
+			if (nw >= MAX_NUM_GENDER) error("G argument '%s' invalid", buf);
 			if (strcmp(buf, _genders[nw]) == 0) break;
 		}
 		/* now nw contains the gender index */
 		PutUtf8(SCC_GENDER_INDEX);
 		PutByte(nw);
 	} else {
-		const char *words[8];
+		const char *words[MAX_NUM_GENDER];
 
 		/* This is a {G 0 foo bar two} command.
 		 * If no relative number exists, default to +0 */
 		if (!ParseRelNum(&buf, &argidx)) {}
 
-		for (nw = 0; nw < 8; nw++) {
+		for (nw = 0; nw < MAX_NUM_GENDER; nw++) {
 			words[nw] = ParseWord(&buf);
 			if (words[nw] == NULL) break;
 		}
@@ -415,9 +410,7 @@
 
 static const CmdStruct *FindCmd(const char *s, int len)
 {
-	const CmdStruct *cs;
-
-	for (cs = _cmd_structs; cs != endof(_cmd_structs); cs++) {
+	for (const CmdStruct *cs = _cmd_structs; cs != endof(_cmd_structs); cs++) {
 		if (strncmp(cs->cmd, s, len) == 0 && cs->cmd[len] == '\0') return cs;
 	}
 	return NULL;
@@ -425,9 +418,7 @@
 
 static uint ResolveCaseName(const char *str, uint len)
 {
-	uint i;
-
-	for (i = 0; i < MAX_NUM_CASES; i++) {
+	for (uint i = 0; i < MAX_NUM_CASES; i++) {
 		if (memcmp(_cases[i], str, len) == 0 && _cases[i][len] == 0) return i + 1;
 	}
 	error("Invalid case-name '%s'", str);
@@ -439,8 +430,7 @@
 static const CmdStruct *ParseCommandString(const char **str, char *param, int *argno, int *casei)
 {
 	const char *s = *str, *start;
-	const CmdStruct *cmd;
-	byte c;
+	char c;
 
 	*argno = -1;
 	*casei = -1;
@@ -465,7 +455,7 @@
 		c = *s++;
 	} while (c != '}' && c != ' ' && c != '=' && c != '.' && c != 0);
 
-	cmd = FindCmd(start, s - start - 1);
+	const CmdStruct *cmd = FindCmd(start, s - start - 1);
 	if (cmd == NULL) {
 		strgen_error("Undefined command '%.*s'", (int)(s - start - 1), start);
 		return NULL;
@@ -474,10 +464,13 @@
 	if (c == '.') {
 		const char *casep = s;
 
-		if (!(cmd->flags & C_CASE))
+		if (!(cmd->flags & C_CASE)) {
 			error("Command '%s' can't have a case", cmd->cmd);
+		}
 
-		do c = *s++; while (c != '}' && c != ' ' && c != '\0');
+		do {
+			c = *s++;
+		} while (c != '}' && c != ' ' && c != '\0');
 		*casei = ResolveCaseName(casep, s - casep - 1);
 	}
 
@@ -636,7 +629,6 @@
 {
 	ParsedCommandStruct templ;
 	ParsedCommandStruct lang;
-	uint i, j;
 	bool result = true;
 
 	ExtractCommandString(&templ, b, true);
@@ -648,10 +640,10 @@
 		result = false;
 	}
 
-	for (i = 0; i < templ.np; i++) {
+	for (uint i = 0; i < templ.np; i++) {
 		/* see if we find it in lang, and zero it out */
 		bool found = false;
-		for (j = 0; j < lang.np; j++) {
+		for (uint j = 0; j < lang.np; j++) {
 			if (templ.pairs[i].a == lang.pairs[j].a &&
 					strcmp(templ.pairs[i].v, lang.pairs[j].v) == 0) {
 				/* it was found in both. zero it out from lang so we don't find it again */
@@ -669,7 +661,7 @@
 
 	/* if we reach here, all non consumer commands match up.
 	 * Check if the non consumer commands match up also. */
-	for (i = 0; i < lengthof(templ.cmd); i++) {
+	for (uint i = 0; i < lengthof(templ.cmd); i++) {
 		if (TranslateCmdForCompare(templ.cmd[i]) != TranslateCmdForCompare(lang.cmd[i])) {
 			strgen_warning("%s: Param idx #%d '%s' doesn't match with template command '%s'", name, i,
 				lang.cmd[i]  == NULL ? "<empty>" : lang.cmd[i]->cmd,
@@ -683,10 +675,6 @@
 
 static void HandleString(char *str, bool master)
 {
-	char *s, *t;
-	LangString *ent;
-	char *casep;
-
 	if (*str == '#') {
 		if (str[1] == '#' && str[2] != '#') HandlePragma(str + 2);
 		return;
@@ -695,35 +683,34 @@
 	/* Ignore comments & blank lines */
 	if (*str == ';' || *str == ' ' || *str == '\0') return;
 
-	s = strchr(str, ':');
+	char *s = strchr(str, ':');
 	if (s == NULL) {
 		strgen_error("Line has no ':' delimiter");
 		return;
 	}
 
+	char *t;
 	/* Trim spaces.
 	 * After this str points to the command name, and s points to the command contents */
-	for (t = s; t > str && (t[-1] == ' ' || t[-1] == '\t'); t--);
+	for (t = s; t > str && (t[-1] == ' ' || t[-1] == '\t'); t--) {}
 	*t = 0;
 	s++;
 
 	/* Check string is valid UTF-8 */
-	{
-		const char *tmp;
-		for (tmp = s; *tmp != '\0';) {
-			size_t len = Utf8Validate(tmp);
-			if (len == 0) error("Invalid UTF-8 sequence in '%s'", s);
-			tmp += len;
-		}
+	const char *tmp;
+	for (tmp = s; *tmp != '\0';) {
+		size_t len = Utf8Validate(tmp);
+		if (len == 0) error("Invalid UTF-8 sequence in '%s'", s);
+		tmp += len;
 	}
 
 	/* Check if the string has a case..
 	 * The syntax for cases is IDENTNAME.case */
-	casep = strchr(str, '.');
-	if (casep) *casep++ = 0;
+	char *casep = strchr(str, '.');
+	if (casep) *casep++ = '\0';
 
 	/* Check if this string already exists.. */
-	ent = HashFind(str);
+	LangString *ent = HashFind(str);
 
 	if (master) {
 		if (ent != NULL && casep == NULL) {
@@ -897,18 +884,16 @@
 
 bool CompareFiles(const char *n1, const char *n2)
 {
-	FILE *f1, *f2;
-	char b1[4096];
-	char b2[4096];
-	size_t l1, l2;
-
-	f2 = fopen(n2, "rb");
+	FILE *f2 = fopen(n2, "rb");
 	if (f2 == NULL) return false;
 
-	f1 = fopen(n1, "rb");
+	FILE *f1 = fopen(n1, "rb");
 	if (f1 == NULL) error("can't open %s", n1);
 
+	size_t l1, l2;
 	do {
+		char b1[4096];
+		char b2[4096];
 		l1 = fread(b1, 1, sizeof(b1), f1);
 		l2 = fread(b2, 1, sizeof(b2), f2);
 
@@ -927,18 +912,16 @@
 
 static void WriteStringsH(const char *filename)
 {
-	FILE *out;
-	int i;
 	int next = -1;
 
-	out = fopen("tmp.xxx", "w");
+	FILE *out = fopen("tmp.xxx", "w");
 	if (out == NULL) error("can't open tmp.xxx");
 
 	fprintf(out, "/* This file is automatically generated. Do not modify */\n\n");
 	fprintf(out, "#ifndef TABLE_STRINGS_H\n");
 	fprintf(out, "#define TABLE_STRINGS_H\n");
 
-	for (i = 0; i != lengthof(_strings); i++) {
+	for (int i = 0; i != lengthof(_strings); i++) {
 		if (_strings[i] != NULL) {
 			if (next != i) fprintf(out, "\n");
 			fprintf(out, "static const StringID %s = 0x%X;\n", _strings[i]->name, i);
@@ -973,12 +956,13 @@
 
 static int TranslateArgumentIdx(int argidx)
 {
-	int i, sum;
+	int sum;
 
-	if (argidx < 0 || (uint)argidx >= lengthof(_cur_pcs.cmd))
+	if (argidx < 0 || (uint)argidx >= lengthof(_cur_pcs.cmd)) {
 		error("invalid argidx %d", argidx);
+	}
 
-	for (i = sum = 0; i < argidx; i++) {
+	for (int i = sum = 0; i < argidx; i++) {
 		const CmdStruct *cs = _cur_pcs.cmd[i];
 		sum += (cs != NULL) ? cs->consumes : 1;
 	}
@@ -995,11 +979,6 @@
 
 static void PutCommandString(const char *str)
 {
-	const CmdStruct *cs;
-	char param[256];
-	int argno;
-	int casei;
-
 	_cur_argidx = 0;
 
 	while (*str != '\0') {
@@ -1008,7 +987,11 @@
 			PutByte(*str++);
 			continue;
 		}
-		cs = ParseCommandString(&str, param, &argno, &casei);
+
+		char param[256];
+		int argno;
+		int casei;
+		const CmdStruct *cs = ParseCommandString(&str, param, &argno, &casei);
 		if (cs == NULL) break;
 
 		if (casei != -1) {
@@ -1050,17 +1033,14 @@
 
 static void WriteLangfile(const char *filename)
 {
-	FILE *f;
 	uint in_use[32];
 	LanguagePackHeader hdr;
-	uint i;
-	uint j;
 
-	f = fopen(filename, "wb");
+	FILE *f = fopen(filename, "wb");
 	if (f == NULL) error("can't open %s", filename);
 
 	memset(&hdr, 0, sizeof(hdr));
-	for (i = 0; i != 32; i++) {
+	for (int i = 0; i != 32; i++) {
 		uint n = CountInUse(i);
 
 		in_use[i] = n;
@@ -1082,8 +1062,8 @@
 
 	fwrite(&hdr, sizeof(hdr), 1, f);
 
-	for (i = 0; i != 32; i++) {
-		for (j = 0; j != in_use[i]; j++) {
+	for (int i = 0; i != 32; i++) {
+		for (int j = 0; j != in_use[i]; j++) {
 			const LangString *ls = _strings[(i << 11) + j];
 			const Case *casep;
 			const char *cmdp;
@@ -1179,10 +1159,9 @@
  * does not already end with a seperator */
 static inline char *mkpath(char *buf, size_t buflen, const char *path, const char *file)
 {
-	char *p;
 	ttd_strlcpy(buf, path, buflen); // copy directory into buffer
 
-	p = strchr(buf, '\0'); // add path seperator if necessary
+	char *p = strchr(buf, '\0'); // add path seperator if necessary
 	if (p[-1] != PATHSEPCHAR && (size_t)(p - buf) + 1 < buflen) *p++ = PATHSEPCHAR;
 	ttd_strlcpy(p, file, buflen - (size_t)(p - buf)); // catenate filename at end of buffer
 	return buf;
@@ -1196,9 +1175,7 @@
  */
 static inline char *replace_pathsep(char *s)
 {
-	char *c;
-
-	for (c = s; *c != '\0'; c++) if (*c == '/') *c = '\\';
+	for (char *c = s; *c != '\0'; c++) if (*c == '/') *c = '\\';
 	return s;
 }
 #else