From cb53e34e2dfd14333205491d3404f5ee20e37025 Mon Sep 17 00:00:00 2001
From: mysticbbs <mysticbbs@gmail.com>
Date: Fri, 24 Feb 2012 09:31:16 -0500
Subject: [PATCH] ExecuteArchive is no longer case sensitive during extention
 checking

---
 mystic/bbs_filebase.pas |  7 +++++--
 mystic/mbbsutil.pas     | 11 ++++++++---
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/mystic/bbs_filebase.pas b/mystic/bbs_filebase.pas
index ba22dfe..baa3574 100644
--- a/mystic/bbs_filebase.pas
+++ b/mystic/bbs_filebase.pas
@@ -975,7 +975,7 @@ Begin
       'L' : Temp := 'LZH';
       'R' : Temp := 'RAR';
       'Z' : Temp := 'ZIP';
-      '?' : Temp := strUpper(Copy(FName, Succ(Pos('.', FName)), Length(FName)));  //get ext function
+      '?' : Temp := strUpper(JustFileExt(FName));
     End;
 
   Reset (ArcFile);
@@ -985,9 +985,12 @@ Begin
       Close (ArcFile);
       Exit;
     End;
+
     Read (ArcFile, Arc);
+
     If (Not Arc.Active) or (Arc.OSType <> OSType) Then Continue;
-    If Arc.Ext = Temp Then Break;
+
+    If strUpper(Arc.Ext) = Temp Then Break;
   Until False;
 
   Close (ArcFile);
diff --git a/mystic/mbbsutil.pas b/mystic/mbbsutil.pas
index d213d4f..1bbc503 100644
--- a/mystic/mbbsutil.pas
+++ b/mystic/mbbsutil.pas
@@ -79,6 +79,8 @@ Type
 
 Function ShellDOS (ExecPath: String; Command: String) : LongInt;
 Begin
+  // needs to save/restore screen
+
   If ExecPath <> '' Then DirChange(ExecPath);
 
   {$IFDEF UNIX}
@@ -104,9 +106,12 @@ Var
   ArcFile : File of RecArchive;
   Arc     : RecArchive;
 Begin
-  Temp := JustFileExt(FName);
+  Temp := strUpper(JustFileExt(FName));
 
-  Reset (ArcFile);
+  Assign (ArcFile, Config.DataPath + 'archive.dat');
+  {$I-} Reset (ArcFile); {$I+}
+
+  If IoResult <> 0 Then Exit;
 
   Repeat
     If Eof(ArcFile) Then Begin
@@ -118,7 +123,7 @@ Begin
 
     If (Not Arc.Active) or (Arc.OSType <> OSType) Then Continue;
 
-    If Arc.Ext = Temp Then Break;
+    If strUpper(Arc.Ext) = Temp Then Break;
   Until False;
 
   Close (ArcFile);