fix spelling mistakes
[lcore.git] / blinklist.pas
old mode 100755 (executable)
new mode 100644 (file)
index 27232f4..ca05847
@@ -1,10 +1,9 @@
-\r
 { Copyright (C) 2005 Bas Steendijk\r
   For conditions of distribution and use, see copyright notice in zlib_license.txt\r
-    which is included in the package\r
-      ----------------------------------------------------------------------------- }\r
-\r
+  which is included in the package\r
+  ----------------------------------------------------------------------------- }\r
 unit blinklist;\r
+\r
 {$ifdef fpc}\r
   {$mode delphi}\r
 {$endif}\r
@@ -32,11 +31,11 @@ type
   end;\r
 \r
   tstringlinklist=class(tlinklist)\r
-    s:string;\r
+    s:ansistring;\r
   end;\r
 \r
   tthing=class(tlinklist)\r
-    name:string;      {name/nick}\r
+    name:ansistring;      {name/nick}\r
     hashname:integer; {hash of name}\r
   end;\r
 \r
@@ -55,10 +54,13 @@ var
 \r
 implementation\r
 \r
+uses sysutils;\r
+\r
 procedure linklistadd(var baseptr:tlinklist;newptr:tlinklist);\r
 var\r
   p:tlinklist;\r
 begin\r
+  if (newptr=baseptr) or assigned(newptr.prev) then raise exception.create('linklist double insertion detected');\r
   p := baseptr;\r
   baseptr := newptr;\r
   baseptr.prev := nil;\r
@@ -71,12 +73,15 @@ begin
   if item = baseptr then baseptr := item.next;\r
   if item.prev <> nil then item.prev.next := item.next;\r
   if item.next <> nil then item.next.prev := item.prev;\r
+  item.prev := nil;\r
+  item.next := nil;\r
 end;\r
 \r
 procedure linklist2add(var baseptr,newptr:tlinklist2);\r
 var\r
   p:tlinklist2;\r
 begin\r
+  if (newptr=baseptr) or assigned(newptr.prev2) then raise exception.create('linklist2 double insertion detected');\r
   p := baseptr;\r
   baseptr := newptr;\r
   baseptr.prev2 := nil;\r
@@ -89,6 +94,8 @@ begin
   if item = baseptr then baseptr := item.next2;\r
   if item.prev2 <> nil then item.prev2.next2 := item.next2;\r
   if item.next2 <> nil then item.next2.prev2 := item.prev2;\r
+  item.prev2 := nil;\r
+  item.next2 := nil;\r
 end;\r
 \r
 constructor tlinklist.create;\r