changeset 4200:de110fe3f268 draft

(svn r5684) - Codechange: create an strtolower() function that uses tolower() on a whole string and apply it in the places this was used.
author Darkvater <Darkvater@openttd.org>
date Mon, 31 Jul 2006 22:11:34 +0000
parents 62d509647d94
children 29a0c19df3fb
files fileio.c gfxinit.c string.c string.h
diffstat 4 files changed, 24 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/fileio.c
+++ b/fileio.c
@@ -4,11 +4,9 @@
 #include "openttd.h"
 #include "fileio.h"
 #include "functions.h"
+#include "string.h"
 #include "macros.h"
 #include "variables.h"
-#if defined(UNIX) || defined(__OS2__)
-#include <ctype.h> // required for tolower()
-#endif
 
 /*************************************************/
 /* FILE IO ROUTINES ******************************/
@@ -114,20 +112,16 @@
 
 	f = fopen(buf, "rb");
 #if !defined(WIN32)
-	if (f == NULL) {
-		char *s;
-		// Make lower case and try again
-		for (s = buf + strlen(_path.data_dir) - 1; *s != 0; s++)
-			*s = tolower(*s);
+	if (f == NULL) { // Make lower case and try again
+		strtolower(buf + strlen(_path.data_dir) - 1);
 		f = fopen(buf, "rb");
 
 #if defined SECOND_DATA_DIR
-	// tries in the 2nd data directory
+		// tries in the 2nd data directory
 		if (f == NULL) {
 			sprintf(buf, "%s%s", _path.second_data_dir, filename);
-			for (s = buf + strlen(_path.second_data_dir) - 1; *s != 0; s++)
-			*s = tolower(*s);
-		f = fopen(buf, "rb");
+			strtolower(buf + strlen(_path.second_data_dir) - 1);
+			f = fopen(buf, "rb");
 		}
 #endif
 	}
@@ -151,18 +145,14 @@
 	f = fopen(buf, "rb");
 #if !defined(WIN32)
 	if (f == NULL) {
-		char *s;
-		// Make lower case and try again
-		for (s = buf + strlen(_path.data_dir) - 1; *s != 0; s++)
-			*s = tolower(*s);
+		strtolower(buf + strlen(_path.data_dir) - 1);
 		f = fopen(buf, "rb");
 
 #if defined SECOND_DATA_DIR
 		// tries in the 2nd data directory
 		if (f == NULL) {
 			sprintf(buf, "%s%s", _path.second_data_dir, filename);
-			for (s = buf + strlen(_path.second_data_dir) - 1; *s != 0; s++)
-				*s = tolower(*s);
+			strtolower(buf + strlen(_path.second_data_dir) - 1);
 			f = fopen(buf, "rb");
 		}
 #endif
@@ -182,19 +172,15 @@
 	f = fopen(buf, "rb");
 #if !defined(WIN32)
 	if (f == NULL) {
-		char *s;
-		// Make lower case and try again
-		for (s = buf + strlen(_path.data_dir) - 1; *s != 0; s++)
-			*s = tolower(*s);
+		strtolower(buf + strlen(_path.data_dir) - 1);
 		f = fopen(buf, "rb");
 
 #if defined SECOND_DATA_DIR
 	// tries in the 2nd data directory
 		if (f == NULL) {
 			sprintf(buf, "%s%s", _path.second_data_dir, filename);
-			for (s = buf + strlen(_path.second_data_dir) - 1; *s != 0; s++)
-			*s = tolower(*s);
-		f = fopen(buf, "rb");
+			strtolower(buf + strlen(_path.second_data_dir) - 1);
+			f = fopen(buf, "rb");
 		}
 
 	if (f == NULL)
--- a/gfxinit.c
+++ b/gfxinit.c
@@ -9,6 +9,7 @@
 #include "spritecache.h"
 #include "table/sprites.h"
 #include "fileio.h"
+#include "string.h"
 #include "newgrf.h"
 #include "md5.h"
 #include "variables.h"
@@ -123,10 +124,7 @@
 
 #if !defined(WIN32)
 	if (f == NULL) {
-		char *s;
-	// make lower case and check again
-		for (s = buf + strlen(_path.data_dir) - 1; *s != '\0'; s++)
-			*s = tolower(*s);
+		strtolower(buf + strlen(_path.data_dir) - 1);
 		f = fopen(buf, "rb");
 	}
 #endif
--- a/string.c
+++ b/string.c
@@ -4,6 +4,9 @@
 #include "string.h"
 
 #include <stdarg.h>
+#if defined(UNIX) || defined(__OS2__)
+#include <ctype.h> // required for tolower()
+#endif
 
 void ttd_strlcat(char *dst, const char *src, size_t size)
 {
@@ -63,3 +66,8 @@
 	for (; *str != '\0'; str++)
 		if (!IsValidAsciiChar(*str)) *str = '?';
 }
+
+void strtolower(char *str)
+{
+	for (; *str != '\0'; str++) *str = tolower(*str);
+}
--- a/string.h
+++ b/string.h
@@ -29,6 +29,9 @@
  * replaces them with a question mark '?' */
 void str_validate(char *str);
 
+/** Convert the given string to lowercase */
+void strtolower(char *str);
+
 /** Only allow valid ascii-function codes. Filter special codes like BELL and
  * so on [we need a special filter here later]
  * @param key character to be checked