summaryrefslogtreecommitdiffstats
path: root/Objects/stringobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/stringobject.c')
-rw-r--r--Objects/stringobject.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index efb0d14..c47d32f 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -360,9 +360,15 @@ PyString_FromFormatV(const char *format, va_list vargs)
break;
case 's':
p = va_arg(vargs, char*);
- i = strlen(p);
- if (n > 0 && i > n)
- i = n;
+ if (n <= 0) {
+ i = strlen(p);
+ }
+ else {
+ i = 0;
+ while (i < n && p[i]) {
+ i++;
+ }
+ }
Py_MEMCPY(s, p, i);
s += i;
break;