diff --git a/src/modules/sprintf/sprintf.c b/src/modules/sprintf/sprintf.c index dc882dedda33e353c291adbe1fb87dc1526c5385..28eff0991df1caf5fbe8593a831cbf084ca11b14 100644 --- a/src/modules/sprintf/sprintf.c +++ b/src/modules/sprintf/sprintf.c @@ -96,7 +96,7 @@ */ #include "global.h" -RCSID("$Id: sprintf.c,v 1.15 1998/02/20 01:09:36 hubbe Exp $"); +RCSID("$Id: sprintf.c,v 1.16 1998/04/09 23:11:53 hubbe Exp $"); #include "error.h" #include "array.h" #include "svalue.h" @@ -642,7 +642,7 @@ static string low_pike_sprintf(char *format, s=sp; if(q) { - push_array(q->array); + ref_push_array(q->array); }else{ array_index_no_free(sp,w,tmp); sp++; diff --git a/src/modules/sprintf/testsuite.in b/src/modules/sprintf/testsuite.in index fc6f12afe51abbc323e5d1f372e1cde193f3e4d1..3e33ffa8fea782fffee42de993a3ebcd58b7ecf4 100644 --- a/src/modules/sprintf/testsuite.in +++ b/src/modules/sprintf/testsuite.in @@ -56,6 +56,12 @@ test_eq(sprintf("test \0"),"test \0") test_eq(sprintf("%~*n","f",5),"fffff") test_eq(sprintf("%'\000'*n",5),"\000\000\000\000\000") +test_true([[sprintf("%{%{%s%}\n%}",({({"hej"}),({"hop"})}))]]) +test_true([[sprintf("%{%{%s%}\n%}",({({"hej"}),({"hop"})}))]]) +test_true([[sprintf("%{%{%s%}\n%}",({({"hej"}),({"hop"})}))]]) +test_true([[sprintf("%{%{%s%}\n%}",({({"hej"}),({"hop"})}))]]) +test_true([[sprintf("%{%{%s%}\n%}",({({"hej"}),({"hop"})}))]]) + dnl . : and ; hasn't been tested dnl ^, @ and _ hasn't been tested yet test_eval_error(sprintf("%d"))