Changed isolated for loops to while loops (based on a patch by Andreas
Mohr).

diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c
index a23b36f..87eada8 100644
--- a/dlls/winmm/mmio.c
+++ b/dlls/winmm/mmio.c
@@ -591,7 +591,10 @@
     LPWINE_MMIO*	m;
 
     EnterCriticalSection(&iData->cs);
-    for (m = &(iData->lpMMIO); *m && *m != wm; m = &(*m)->lpNext);
+    /* search for the matching one... */
+    m = &(iData->lpMMIO);
+    while (*m && *m != wm) m = &(*m)->lpNext;
+    /* ...and destroy */
     if (*m) {
 	*m = (*m)->lpNext;
 	HeapFree(GetProcessHeap(), 0, wm);
diff --git a/files/dos_fs.c b/files/dos_fs.c
index 5735c95..400223e 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -261,10 +261,12 @@
     char *p;
 
     memcpy( buffer, name, 8 );
-    for (p = buffer + 8; (p > buffer) && (p[-1] == ' '); p--);
+    p = buffer + 8;
+    while ((p > buffer) && (p[-1] == ' ')) p--;
     *p++ = '.';
     memcpy( p, name + 8, 3 );
-    for (p += 3; p[-1] == ' '; p--);
+    p += 3;
+    while (p[-1] == ' ') p--;
     if (p[-1] == '.') p--;
     *p = '\0';
 }
diff --git a/files/drive.c b/files/drive.c
index 6dc727a..d5a62f6 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -1422,7 +1422,7 @@
     if (label)
     {
        lstrcpynA( label, DRIVE_GetLabel(drive), label_len );
-       for (cp = label; *cp; cp++);
+       cp = label + strlen(label);
        while (cp != label && *(cp-1) == ' ') cp--;
        *cp = '\0';
     }
diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c
index b47d43b..579fc8f 100644
--- a/graphics/x11drv/xfont.c
+++ b/graphics/x11drv/xfont.c
@@ -957,11 +957,9 @@
 
    if (uRelax <= 4)
    {
-       fontEncodingTemplate* boba;
-       
-       i = fo->fi->fi_encoding >> 8;
-       for( boba = fETTable; i; i--, boba = boba->next );
-       
+       fontEncodingTemplate* boba = fETTable;
+
+       for(i = fo->fi->fi_encoding >> 8; i; i--) boba = boba->next;
        aLFD.charset_registry = boba->prefix ? boba->prefix : any;
        
        i = fo->fi->fi_encoding & 255;
diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c
index 92cd6c0..c30621d 100644
--- a/programs/winhelp/hlpfile.c
+++ b/programs/winhelp/hlpfile.c
@@ -649,7 +649,8 @@
 	  lstrcpy(p, (LPSTR) ptr + 4);
 	  macro->lpszMacro = p;
 	  macro->next = 0;
-	  for (m = &hlpfile->first_macro; *m; m = &(*m)->next);
+          m = &hlpfile->first_macro;
+          while (*m) m = &(*m)->next;
 	  *m = macro;
 	  break;
 
diff --git a/server/debugger.c b/server/debugger.c
index f68cdf2..eb86efe 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -443,7 +443,8 @@
         generate_debug_event( thread, CREATE_THREAD_DEBUG_EVENT, NULL );
 
     /* generate dll events (in loading order, i.e. reverse list order) */
-    for (dll = &process->exe; dll->next; dll = dll->next);
+    dll = &process->exe;
+    while (dll->next) dll = dll->next;
     while (dll != &process->exe)
     {
         generate_debug_event( process->thread_list, LOAD_DLL_DEBUG_EVENT, dll );
diff --git a/server/registry.c b/server/registry.c
index 5905aba..f6a3f5e 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -1305,7 +1305,8 @@
 
     while (read_next_line( &info ) == 1)
     {
-        for (p = info.buffer; *p && isspace(*p); p++);
+        p = info.buffer;
+        while (*p && isspace(*p)) p++;
         switch(*p)
         {
         case '[':   /* new key */
diff --git a/tools/specmaker/misc.c b/tools/specmaker/misc.c
index cdb3ae7..6223131 100644
--- a/tools/specmaker/misc.c
+++ b/tools/specmaker/misc.c
@@ -120,12 +120,12 @@
 {
   assert(str && match && found);
 
-  for (; *str == ' '; str++);
+  while (*str == ' ') str++;
   if (!strncmp (str, match, strlen (match)))
   {
     *found = 1;
     str += strlen (match);
-    for (; *str == ' '; str++);
+    while (*str == ' ') str++;
   }
   else
     *found = 0;