Andrew Eikum : regedit: Don't call ungetc() twice consecutively.

Alexandre Julliard julliard at winehq.org
Mon Aug 23 10:50:20 CDT 2010


Module: wine
Branch: master
Commit: 06f4532cf6b434e0027ae892620e23e944ed20f5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=06f4532cf6b434e0027ae892620e23e944ed20f5

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Mon Aug 23 07:39:26 2010 -0500

regedit: Don't call ungetc() twice consecutively.

Spotted by Sylvain Hitier.

---

 programs/regedit/regproc.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 82349f6..edf3d00 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -680,19 +680,18 @@ static void processRegLinesA(FILE *in, char* first_chars)
                 }
                 if(s[i] == '\r'){
                     /* read the next character iff it's \n */
+                    if(i+2 >= size_to_get){
+                        /* buffer too short, so put back the EOL char to
+                         * read next cycle */
+                        ungetc('\r', in);
+                        break;
+                    }
                     s[i+1] = fgetc(in);
                     if(s[i+1] != '\n'){
                         ungetc(s[i+1], in);
                         i = i+1;
-                    }else{
-                        if(i+2 >= size_to_get){
-                            /* buffer too short, so put back the EOL chars to
-                             * read next cycle */
-                            ungetc('\n', in);
-                            ungetc('\r', in);
-                        }else
-                            i = i+2;
-                    }
+                    }else
+                        i = i+2;
                     break;
                 }
                 if(s[i] == '\n'){




More information about the wine-cvs mailing list