Merge branch 'master' of ssh://mgg/mudlib-public
diff --git a/obj/tools/btool.c b/obj/tools/btool.c
index 8795d9d..be31c6a 100644
--- a/obj/tools/btool.c
+++ b/obj/tools/btool.c
@@ -3,7 +3,7 @@
 #pragma pedantic,range_check,warn_deprecated
 #pragma warn_empty_casts,warn_missing_return,warn_function_inconsistent
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
 
 #include <properties.h>
 #include <defines.h>
diff --git a/obj/tools/dancetool.c b/obj/tools/dancetool.c
index dcf3b9a..82d5941 100644
--- a/obj/tools/dancetool.c
+++ b/obj/tools/dancetool.c
@@ -4,7 +4,7 @@
 //
 //
  
-inherit "std/thing";
+inherit "/std/secure_thing";
  
 #include <properties.h>
 #include <defines.h>
diff --git a/obj/tools/explorer.c b/obj/tools/explorer.c
index 72da8ac..44aec2b 100644
--- a/obj/tools/explorer.c
+++ b/obj/tools/explorer.c
@@ -5,14 +5,18 @@
 // $Id: explorer.c 8357 2013-02-09 11:16:14Z Zesstra $
 
 inherit "/std/secure_thing";
+protected functions virtual inherit "/std/util/path";
 
 #include <properties.h>
 #include <exploration.h>
 #include <wizlevels.h>
 
-create()
+protected void create()
 {
-  if (!clonep(this_object())) return;
+  if (!clonep(this_object())) {
+      set_next_reset(-1);
+      return;
+  }
   ::create();
   SetProp(P_SHORT, "Der Erforscher");
   SetProp(P_NAME, "Erforscher");
@@ -114,8 +118,9 @@
     ob = present(str, this_player());
 
   if (!ob) {
-    str = "/secure/master"->_get_path(str, getuid(this_player()));
-    catch(call_other(str, "???"));
+    // Pfadexpansion fuer die UID vom aktuellen Benutzer.
+    str = normalize_path(str, getuid(this_interactive()||this_player()), 1);
+    catch(load_object(str));
     ob = find_object(str);
   }
   return ob;
diff --git a/obj/tools/lupe.c b/obj/tools/lupe.c
index b3734fb..105b602 100644
--- a/obj/tools/lupe.c
+++ b/obj/tools/lupe.c
@@ -2,7 +2,8 @@
 //
 // Some changes/extensions by Jof@MorgenGrauen
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
+protected functions virtual inherit "/std/util/path";
 
 #include <language.h>
 #include <properties.h>
@@ -11,6 +12,7 @@
 #include <defines.h>
 #include <questmaster.h>
 #include <userinfo.h>
+#include <strings.h>
 
 #define add(s) commands+=({s});functions+=({s});ncmds++
 #define add2(s,f) commands+=({s});functions+=({f});ncmds++
@@ -33,12 +35,15 @@
 void cleanof(string str,object ob);
 
 
-void create()
+protected void create()
 {
   object owner;
   string str;
-  
-  if (!clonep(ME)) return;
+
+  if (!clonep(ME)) {
+      set_next_reset(-1);
+      return;
+  }
   ::create();
   owner=environment()||this_player();
   if (owner)
@@ -182,7 +187,8 @@
   for (i=0;i<maxverb;i++)
     if (commands[i]==verb[0..sizeof(commands[i])-1])
       if (ret=evalcmd(str))
-	return ret;
+          return ret;
+
   return(0); // non-void function, Zesstra
 }
 
@@ -236,10 +242,7 @@
 
 string strip(string str)
 {
-  string temp;
-  if(!str) return "";
-  while (sscanf(str," %s",temp)==1) str=temp;
-  return str;
+  return trim(str,TRIM_BOTH);
 }
 
 int arglen;
@@ -470,7 +473,8 @@
 
 string make_path(string path)
 {
-  return "secure/master"->_get_path( path, geteuid( this_player() ) );
+  // Pfadexpansion fuer Nutzer des Tools
+  return normalize_path(path, getuid( RPL || PL ), 1);
 }
 
 string new(string arg)
diff --git a/obj/tools/mudlink.c b/obj/tools/mudlink.c
index 209d546..3f9ca54 100644
--- a/obj/tools/mudlink.c
+++ b/obj/tools/mudlink.c
@@ -13,7 +13,7 @@
 #include <config.h>
 #include <properties.h>
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
 
 create() {
   string name, foo;
diff --git a/obj/tools/newstool.c b/obj/tools/newstool.c
index f91eeb6..d41827e 100644
--- a/obj/tools/newstool.c
+++ b/obj/tools/newstool.c
@@ -1,4 +1,4 @@
-inherit "std/thing";
+inherit "/std/secure_thing";
 
 #include <properties.h>
 #include <language.h>
diff --git a/obj/tools/projekttool.c b/obj/tools/projekttool.c
index f61a9dd..f6adb70 100644
--- a/obj/tools/projekttool.c
+++ b/obj/tools/projekttool.c
@@ -6,7 +6,7 @@
 #include "/secure/wizlevels.h"
 #include <moving.h>
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
 string hilfe;
 static int changetime;
 static int suppressinfos;
diff --git a/obj/tools/ptool.c b/obj/tools/ptool.c
index c836cae..98ffd8f 100644
--- a/obj/tools/ptool.c
+++ b/obj/tools/ptool.c
@@ -7,7 +7,7 @@
 #include <properties.h>
 #include <language.h>
 
-inherit "std/thing";
+inherit "/std/secure_thing";
 
 int dump();
 
diff --git a/obj/tools/pubtool.c b/obj/tools/pubtool.c
index a85afc9..42e43b3 100644
--- a/obj/tools/pubtool.c
+++ b/obj/tools/pubtool.c
@@ -4,7 +4,7 @@
 #include <properties.h>
 #include <language.h>
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
 
 create()
 {
diff --git a/obj/tools/questtool.c b/obj/tools/questtool.c
index 264fa7c..dd71fcf 100644
--- a/obj/tools/questtool.c
+++ b/obj/tools/questtool.c
@@ -14,8 +14,8 @@
  *		erweitert.
  */
 
-inherit "std/thing";
-inherit "std/more";
+inherit "/std/secure_thing";
+inherit "/std/more";
 
 #include <defines.h>
 #include <properties.h>
diff --git a/obj/tools/teller/teller.c b/obj/tools/teller/teller.c
index fdc9ae4..bcbb9f4 100644
--- a/obj/tools/teller/teller.c
+++ b/obj/tools/teller/teller.c
@@ -2,11 +2,15 @@
 // Tellerstapel, ein Stackorientiertes magiertool.
 // Rumata 15.09.93
 // ----------------------------------------------------------------------
+
 #include "teller.h"
-inherit "std/secure_thing";
+
+inherit "/std/secure_thing";
+protected functions virtual inherit "/std/util/path";
+
 inherit T_CMDS;
 inherit T_EFUN;
-inherit "std/more";
+inherit "/std/more";
 
 #include "/secure/wizlevels.h"
 
@@ -515,7 +519,7 @@
 		push( i );
 	else
 	{
-		filename = MASTER->_get_path(str,getuid());
+		filename = normalize_path(str, getuid(), 1);
 		if( filename[<1] == '.' )
 			filename = filename[0..<2];
 		if( file_size( filename+".c" ) != -1 )
diff --git a/obj/tools/tester/test.c b/obj/tools/tester/test.c
index df4d00b..14fbf5a 100644
--- a/obj/tools/tester/test.c
+++ b/obj/tools/tester/test.c
@@ -108,7 +108,7 @@
 
 #pragma strong_types
 
-inherit "/std/thing";
+inherit "/std/secure_thing";
 
 // Allgemein benoetigte globale Variablen
 
diff --git a/obj/tools/xxtool.c b/obj/tools/xxtool.c
index fa3fb6c..5733041 100644
--- a/obj/tools/xxtool.c
+++ b/obj/tools/xxtool.c
@@ -1,15 +1,15 @@
 #include <properties.h>

 #include <language.h>

 

-inherit "obj/tools/MGtool";

-inherit "std/thing";

+inherit "/obj/tools/MGtool";

+inherit "/std/secure_thing";

 

-void create()

+protected void create()

 {

   if(!clonep(this_object()))

     return;

   thing::create();

-  ::create();

+  MGtool::create();

   SetProp(P_NAME,"Ankh");

   SetProp(P_GENDER,NEUTER);

   SetProp(P_IDS,({"ankh","xxtool"}));