From a829464b1939b2908e69c68d09c0d0ebdc7b3ba6 Mon Sep 17 00:00:00 2001
From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org>
Date: Sat, 28 Feb 1998 20:56:42 +0100
Subject: [PATCH] permute added

Rev: lib/modules/Array.pmod:1.17
Rev: lib/modules/Calendar.pmod/Swedish.pmod:1.11
---
 lib/modules/Array.pmod                 | 17 +++++++++++++++++
 lib/modules/Calendar.pmod/Swedish.pmod | 12 ++++--------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod
index 37248e3bd9..874950c843 100644
--- a/lib/modules/Array.pmod
+++ b/lib/modules/Array.pmod
@@ -74,6 +74,23 @@ array shuffle(array arr)
   return(arr);
 }
 
+array permute(array a,int n)
+{
+   int q=sizeof(a);
+   int i;
+   a=a[..]; // copy
+   
+   while (n && q)
+   {
+      int x=n%q; 
+      n/=q; 
+      q--; 
+      if (x) [a[i],a[i+x]]=({ a[i+x],a[i] });
+      i++;
+   }  
+   
+   return a;
+}
 
 int search_array(mixed *arr, mixed fun, mixed ... args)
 {
diff --git a/lib/modules/Calendar.pmod/Swedish.pmod b/lib/modules/Calendar.pmod/Swedish.pmod
index 97cc47fa3e..4e7e8bfcb4 100644
--- a/lib/modules/Calendar.pmod/Swedish.pmod
+++ b/lib/modules/Calendar.pmod/Swedish.pmod
@@ -1,4 +1,4 @@
-inherit Calendar.ISO;
+inherit Calendar.ISO:ISO;
 
 void create()
 {
@@ -11,13 +11,9 @@ void create()
 	"fredag","lördag","söndag"});
 }
 
-constant ISO_Week=::Week;
-constant ISO_Year=::Year;
-constant ISO_Day=::Day;
-
 class Week
 {
-   inherit ISO_Week;
+   inherit ISO::Week;
 
    string name()
    {
@@ -27,7 +23,7 @@ class Week
 
 class Year
 {
-   inherit ISO_Year;
+   inherit ISO::Year;
 
    array(array(string)) _namedays;
    mapping(string:int) _nameday_lookup;
@@ -88,7 +84,7 @@ class Year
 
 class Day
 {
-   inherit ISO_Day;
+   inherit ISO::Day;
 
    array(string) names()
    {
-- 
GitLab