<div dir="ltr"><div><div><div>Hello,<br><br><br></div>There were still some printf(...) in tuxtype code, so I replaced them using the fprintf(stderr, ...) that are used elsewhere. Here is the diff :<br><br>From 0724d11278b50c4abfa8c7f91fdc7e76a635644c Mon Sep 17 00:00:00 2001<br>
From: Jerome Portal <<a href="mailto:jerome.portal.2@gmail.com">jerome.portal.2@gmail.com</a>><br>Date: Fri, 12 Apr 2013 18:44:29 +0200<br>Subject: [PATCH 3/3] Replace the printf(...) by fprintf(stderr, ...)<br><br>
---<br> src/SDL_extras.c |    4 ++--<br> src/alphabet.c   |   10 +++++-----<br> src/loaders.c    |    4 ++--<br> src/practice.c   |    8 ++++----<br> src/scandir.c    |    8 ++++----<br> src/setup.c      |    6 +++---<br>
 6 files changed, 20 insertions(+), 20 deletions(-)<br><br>diff --git a/src/SDL_extras.c b/src/SDL_extras.c<br>index b1ebe97..2cd747a 100644<br>--- a/src/SDL_extras.c<br>+++ b/src/SDL_extras.c<br>@@ -312,9 +312,9 @@ SDL_Surface* Blend(SDL_Surface* S1, SDL_Surface* S2, float gamma)<br>
     // Check that both images have the same width dimension<br>     if (S1->w != S2->w)<br>     {<br>-      printf("S1->w %d, S2->w %d;  S1->h %d, S2->h %d\n",<br>+      fprintf(stderr, "S1->w %d, S2->w %d;  S1->h %d, S2->h %d\n",<br>
              S1->w, S2->w, S1->h, S2->h);<br>-      printf("Both images must have the same width dimensions\n");<br>+      fprintf(stderr, "Both images must have the same width dimensions\n");<br>
       return S1;<br>     }<br>   }<br>diff --git a/src/alphabet.c b/src/alphabet.c<br>index a6ddbd7..a6ad2f2 100644<br>--- a/src/alphabet.c<br>+++ b/src/alphabet.c<br>@@ -1190,18 +1190,18 @@ void GenerateKeyboard(SDL_Surface* keyboard)<br>
   char buf[8];<br> //  TTF_Font* smallfont = NULL;<br> <br>-  DEBUGCODE { printf("Entering GenerateKeyboard\n"); }<br>+  DEBUGCODE { fprintf(stderr, "Entering GenerateKeyboard\n"); }<br> <br>   if(!keyboard)<br>
   {<br>-    DEBUGCODE { printf("Error - keyboard SDL_Surface ptr null\n"); }<br>+    DEBUGCODE { fprintf(stderr, "Error - keyboard SDL_Surface ptr null\n"); }<br>     return;<br>   }<br> <br> //   smallfont = LoadFont(settings.theme_font_name, 15);<br>
 //   if(!smallfont)<br> //   {<br>-//     DEBUGCODE { printf("Error loading font\n"); }<br>+//     DEBUGCODE { fprintf(stderr, "Error loading font\n"); }<br> //     return;<br> //   }<br> <br>@@ -1247,7 +1247,7 @@ void GenerateKeyboard(SDL_Surface* keyboard)<br>
         new.y -= 9;<br>     }<br> <br>-    DEBUGCODE { printf("Making %d : %C\n",i,keyboard_list[i].unicode_value); }<br>+    DEBUGCODE { fprintf(stderr, "Making %d : %C\n",i,keyboard_list[i].unicode_value); }<br>
     ConvertToUTF8(t, buf, 8);<br>     tmp = SimpleText(buf, 15, &black);<br> //    tmp = TTF_RenderUNICODE_Blended((TTF_Font*)smallfont, t, black);<br>@@ -1261,7 +1261,7 @@ void GenerateKeyboard(SDL_Surface* keyboard)<br>
   //Know this is safe - if NULL would have returned above:<br> //  TTF_CloseFont(smallfont);<br> <br>-  DEBUGCODE { printf("Leaving GenerateKeyboard\n"); }<br>+  DEBUGCODE { fprintf(stderr, "Leaving GenerateKeyboard\n"); }<br>
 }<br> <br> <br>diff --git a/src/loaders.c b/src/loaders.c<br>index 0f1b252..4663d91 100644<br>--- a/src/loaders.c<br>+++ b/src/loaders.c<br>@@ -368,7 +368,7 @@ int LoadBothBkgds(const char* datafile)<br> <br>   DEBUGCODE<br>
   {<br>-     printf("Scaling %dx%d to: %dx%d, %dx%d\n", <br>+     fprintf(stderr, "Scaling %dx%d to: %dx%d, %dx%d\n", <br>            orig->w, orig->h, RES_X, RES_Y, fs_res_x, fs_res_y);<br>   }<br>
 <br>@@ -397,7 +397,7 @@ int LoadBothBkgds(const char* datafile)<br>     <br>   DEBUGCODE<br>   {<br>-    printf("%d images scaled\nLeaving LoadBothBkgds()\n", ret);<br>+    fprintf(stderr, "%d images scaled\nLeaving LoadBothBkgds()\n", ret);<br>
   }<br>   return ret;<br> }<br>diff --git a/src/practice.c b/src/practice.c<br>index 603a2e5..b57bd9e 100644<br>--- a/src/practice.c<br>+++ b/src/practice.c<br>@@ -861,7 +861,7 @@ static int practice_load_media(void)<br>
   int load_failed = 0;<br>   int labels_ok = 0;<br> <br>-  DEBUGCODE { printf("Entering practice_load_media\n"); }<br>+  DEBUGCODE { fprintf(stderr, "Entering practice_load_media\n"); }<br> <br> <br>   /* load needed SDL_Surfaces: */<br>
@@ -916,7 +916,7 @@ static int practice_load_media(void)<br>   GenerateKeyboard(keyboard);<br> <br>   LOG("DONE - Loading practice media\n");<br>-  DEBUGCODE { printf("Leaving practice_load_media\n"); }<br>
+  DEBUGCODE { fprintf(stderr, "Leaving practice_load_media\n"); }<br>   return 1;<br> }<br> <br>@@ -1237,7 +1237,7 @@ static int load_phrases(const char* phrase_file)<br>     return 0;<br>   }<br> <br>-  DEBUGCODE { printf("load_phrases(): phrases file is '%s'\n", fn ); }<br>
+  DEBUGCODE { fprintf(stderr, "load_phrases(): phrases file is '%s'\n", fn ); }<br> <br>   /* We know it will open OK because we already ran CheckFile() on it */ <br>   fp = fopen(fn, "r");<br>
@@ -1251,7 +1251,7 @@ static int load_phrases(const char* phrase_file)<br>     if (EOF != fscanf(fp, "%[^\n]\n", buf))<br>     {<br>       ConvertFromUTF8(phrases[num_phrases], buf, MAX_PHRASE_LENGTH);<br>-      DEBUGCODE {printf("phrase %d:\t%S\n", num_phrases, phrases[num_phrases]);}<br>
+      DEBUGCODE {fprintf(stderr, "phrase %d:\t%S\n", num_phrases, phrases[num_phrases]);}<br>       num_phrases++;<br>     }<br>   }<br>diff --git a/src/scandir.c b/src/scandir.c<br>index c6996f1..e4f5452 100644<br>
--- a/src/scandir.c<br>+++ b/src/scandir.c<br>@@ -206,7 +206,7 @@ int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(stru<br>   len    = strlen(dirname);<br>   findIn = (char *)malloc(len+5);<br>   strcpy(findIn, dirname);<br>
-  printf("scandir : findIn orign=%s\n", findIn);<br>+  fprintf(stderr, "scandir : findIn orign=%s\n", findIn);<br>   for (d = findIn; *d; d++)<br>     if (*d=='/')<br>       *d='\\';<br>
@@ -234,10 +234,10 @@ int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(stru<br>     *d = 0;<br>   }<br> <br>-  printf("scandir : findIn processed=%s\n", findIn);<br>+  fprintf(stderr, "scandir : findIn processed=%s\n", findIn);<br>
   if ((h=FindFirstFile(findIn, &find))==INVALID_HANDLE_VALUE)<br>   {<br>-    printf("scandir : FindFirstFile error\n");<br>+    fprintf(stderr, "scandir : FindFirstFile error\n");<br>     ret = GetLastError();<br>
     if (ret != ERROR_NO_MORE_FILES)<br>     {<br>@@ -248,7 +248,7 @@ int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(stru<br>   }<br>   do<br>   {<br>-    printf("scandir : findFile=%s\n", find.cFileName);<br>
+    fprintf(stderr, "scandir : findFile=%s\n", find.cFileName);<br>     selectDir=(struct dirent*)malloc(sizeof(struct dirent)+strlen(find.cFileName));<br>     strcpy(selectDir->d_name, find.cFileName);<br>     if (!sdfilter || (*sdfilter)(selectDir))<br>
diff --git a/src/setup.c b/src/setup.c<br>index 47a5e89..2318258 100644<br>--- a/src/setup.c<br>+++ b/src/setup.c<br>@@ -245,7 +245,7 @@ int LoadSettings(void)<br>   LOG("WIN32 not defined\n");<br> #endif<br> <br>
-  DEBUGCODE { printf("LoadSettings: settings file is '%s'\n", fn ); }<br>+  DEBUGCODE { fprintf(stderr, "LoadSettings: settings file is '%s'\n", fn ); }<br> <br>   LOG("LoadSettings: trying to open settings file\n");<br>
 <br>@@ -403,14 +403,14 @@ void SaveSettings(void)<br>     snprintf( fn, FNLEN-1, (const char*)"%s/settings.txt", settings.user_settings_path );<br> <br> <br>-    DEBUGCODE { printf("SaveSettings: settings file is '%s'\n", fn ); }<br>
+    DEBUGCODE { fprintf(stderr, "SaveSettings: settings file is '%s'\n", fn ); }<br>     <br>     LOG("SaveSettings: trying to open settings file\n");<br>     <br>     settingsFile = fopen( fn, "w" );<br>
 <br>     if (settingsFile == NULL) {<br>-        printf("SaveSettings: Settings file cannot be created!\n");<br>+        fprintf(stderr, "SaveSettings: Settings file cannot be created!\n");<br>         return;<br>
     }<br>     <br>-- <br>1.7.9.5<br><br><br><br></div><div>I also saw that some parts of the code are using a #ifdef DEBUG { ... } structure to log messages. Wouldn't it be better to replace them with DEBUGCODE { ... } (or LOG { ... }, if possible) ?<br>
</div><div><br><br><br></div>Regards,<br></div>Jérôme<br></div>