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