From d64f1bf785a33a1e706545fe96458e66f0e098d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Fri, 1 Nov 1996 16:10:59 -0800 Subject: [PATCH] implode_nicely added Rev: lib/include/string.pre.pike:1.4 --- lib/include/string.pre.pike | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/include/string.pre.pike b/lib/include/string.pre.pike index 407b50f906..5d1f5f2b5e 100644 --- a/lib/include/string.pre.pike +++ b/lib/include/string.pre.pike @@ -1,5 +1,19 @@ #define BEGIN 32 +/* + * Implode an array of strings to an english 'list' + * ie. ({"foo","bar","gazonk"}) beomces "foo, bar and gazonk" + */ +string implode_nicely(string *foo, string|void and) +{ + if(!and) and="and"; + switch(sizeof(foo)) + { + case 0: return ""; + case 1: return foo[0]; + default: return foo[0..sizeof(foo)-2]*", "+" "+and+" "+foo[-1]; + } +} string strmult(string str, int num) { @@ -16,6 +30,7 @@ string strmult(string str, int num) void create() { add_constant("strmult",strmult); + add_constant("implode_nicely",implode_nicely); master()->add_precompiled_program("/precompiled/string_buffer", class { string *buffer=allocate(BEGIN); -- GitLab