Carlo Bramini : msvcrt: Use return value of *printf() instead of calling strlen() and simplify code.

Alexandre Julliard julliard at winehq.org
Wed Feb 22 15:42:03 CST 2017


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

Author: Carlo Bramini <carlo.bramix at libero.it>
Date:   Sun Feb 19 15:17:57 2017 +0100

msvcrt: Use return value of *printf() instead of calling strlen() and simplify code.

Signed-off-by: Carlo Bramini <carlo_bramini at users.sourceforge.net>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/math.c   | 12 ++++--------
 dlls/msvcrt/printf.h |  3 +--
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index af3aa2a..0bb006d 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -1580,7 +1580,7 @@ char * CDECL MSVCRT__fcvt( double number, int ndigits, int *decpt, int *sign )
 	number = -number;
     } else *sign = 0;
 
-    snprintf(buf, 80, "%.*f", ndigits < 0 ? 0 : ndigits, number);
+    stop = snprintf(buf, 80, "%.*f", ndigits < 0 ? 0 : ndigits, number);
     ptr1 = buf;
     ptr2 = data->efcvt_buffer;
     first = NULL;
@@ -1597,9 +1597,7 @@ char * CDECL MSVCRT__fcvt( double number, int ndigits, int *decpt, int *sign )
     /* If requested digits is zero or less, we will need to truncate
      * the returned string */
     if (ndigits < 1) {
-	stop = strlen(buf) + ndigits;
-    } else {
-	stop = strlen(buf);
+	stop += ndigits;
     }
 
     while (*ptr1 == '0') ptr1++; /* Skip leading zeroes */
@@ -1665,7 +1663,7 @@ int CDECL MSVCRT__fcvt_s(char* outbuffer, MSVCRT_size_t size, double number, int
 	number = -number;
     } else *sign = 0;
 
-    snprintf(buf, 80, "%.*f", ndigits < 0 ? 0 : ndigits, number);
+    stop = snprintf(buf, 80, "%.*f", ndigits < 0 ? 0 : ndigits, number);
     ptr1 = buf;
     ptr2 = outbuffer;
     first = NULL;
@@ -1682,9 +1680,7 @@ int CDECL MSVCRT__fcvt_s(char* outbuffer, MSVCRT_size_t size, double number, int
     /* If requested digits is zero or less, we will need to truncate
      * the returned string */
     if (ndigits < 1) {
-	stop = strlen(buf) + ndigits;
-    } else {
-	stop = strlen(buf);
+	stop += ndigits;
     }
 
     while (*ptr1 == '0') ptr1++; /* Skip leading zeroes */
diff --git a/dlls/msvcrt/printf.h b/dlls/msvcrt/printf.h
index 392ead8..8bb3382 100644
--- a/dlls/msvcrt/printf.h
+++ b/dlls/msvcrt/printf.h
@@ -242,8 +242,7 @@ static inline void FUNC_NAME(pf_rebuild_format_string)(char *p, FUNC_NAME(pf_fla
     if(flags->Alternate)
         *p++ = flags->Alternate;
     if(flags->Precision >= 0) {
-        sprintf(p, ".%d", flags->Precision);
-        p += strlen(p);
+        p += sprintf(p, ".%d", flags->Precision);
     }
     *p++ = flags->Format;
     *p++ = 0;




More information about the wine-cvs mailing list