From 07aecb715ad9ddae61393bfa86920438f198f121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Sat, 5 Oct 1996 02:52:59 +0200 Subject: [PATCH] sprintf now handles zeros in format string Rev: src/modules/sprintf/sprintf.c:1.3 Rev: src/modules/sprintf/testsuite.in:1.6 --- src/modules/sprintf/sprintf.c | 2 +- src/modules/sprintf/testsuite.in | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c index 60525b2e35..851113b1e7 100644 --- a/src/modules/sprintf/sprintf.c +++ b/src/modules/sprintf/sprintf.c @@ -473,7 +473,7 @@ static string low_pike_sprintf(char *format, if(*a!='%') { - for(e=0;a[e] && a[e]!='%';e++); + for(e=0;a[e]!='%' && a+e<format+format_len;e++); fsp->b=a; fsp->len=e; fsp->width=e; diff --git a/src/modules/sprintf/testsuite.in b/src/modules/sprintf/testsuite.in index b45ca67b77..677322b3be 100644 --- a/src/modules/sprintf/testsuite.in +++ b/src/modules/sprintf/testsuite.in @@ -49,6 +49,8 @@ test_eq(sprintf("%d %<d %<d",2),"2 2 2") test_true(stringp(sprintf("%O",({1,2,"foo"})))) test_true(stringp(sprintf("%O",([1:2,"foo":"bar"])))) +test_eq(sprintf("test \0 \n"),"test \0 \n") + dnl . : and ; hasn't been tested dnl ^, @ and _ hasn't been tested yet test_eval_error(sprintf("%d")) -- GitLab