# New Ticket Created by  Leopold Toetsch 
# Please include the string:  [perl #17876]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=17876 >


I didn't look, if this is really intended, but I wouldn't like to behave 
Parrot_snprintf different then snprintf(3).

It would also be nice, if we could have a return value, consistent with 
glibc 2.1.

leo


-- attachment  1 ------------------------------------------------------
url: http://rt.perl.org/rt2/attach/39675/32138/4b302e/snprintf.patch

--- parrot/misc.c       Fri Oct 11 10:00:38 2002
+++ parrot-leo/misc.c   Sat Oct 12 13:11:01 2002
@@ -65,15 +65,22 @@
 Parrot_vsnprintf(struct Parrot_Interp *interpreter, char *targ,
                  size_t len, const char *pat, va_list args)
 {
-    STRING *ret = Parrot_vsprintf_c(interpreter, pat, args);
+    STRING *ret;
+    if (len == 0)
+        return;
+    len--;
+    if (len) {
+        ret = Parrot_vsprintf_c(interpreter, pat, args);
     string_transcode(interpreter, ret, NULL, NULL, &ret);
 
     if (len > ret->bufused) {
         len = ret->bufused;
     }
 
+        if (len)
     memcpy(targ, ret->strstart, len);
-    targ[len + 1] = 0;
+    }
+    targ[len] = 0;
 }
 
 STRING *
--- parrot/t/src/sprintf.t      Fri Oct 11 10:00:43 2002
+++ parrot-leo/t/src/sprintf.t  Sat Oct 12 13:14:00 2002
@@ -21,11 +21,15 @@
             double dval;
             FLOATVAL fltval;
             char *fmt;
+           char dest[20];
                struct Parrot_Interp * interpreter;
 
                interpreter = Parrot_new();
                Parrot_init(interpreter, (void*) &dummy_var);
 
+               Parrot_snprintf(interpreter, dest, 2, "%s", "CERT");
+               printf("%s\n",dest);
+
                S = Parrot_sprintf_c(interpreter, "Hello, %s\n", "Parrot!");
                printf(string_to_cstring(interpreter, S));
                
@@ -81,6 +85,7 @@
                return 0;
        }
 CODE
+C
 Hello, Parrot!
 PerlHash[0x100]
 PerlHash[0x100]

Reply via email to