dead code und unbenutzte Variablen entfernt

Change-Id: I18b5d6a8cdf221d3a376541c01e82a1c64f10508
diff --git a/secure/awmaster.c b/secure/awmaster.c
index d9f0bbc..0cb902f 100644
--- a/secure/awmaster.c
+++ b/secure/awmaster.c
@@ -117,7 +117,7 @@
 void RegisterArmour()
 {   object  ob;
     string  id;
-    int     flag,h;
+    int     h;
 
     if (!objectp(ob=previous_object()) || 
       member(inherit_list(ob),"/std/armour.c")==-1)
@@ -126,26 +126,21 @@
     if (member(armours,id))
     {
         armours[id][AWM_TIME]=time();
-        flag=0;
         if ((h=({int})ob->QueryProp(P_AC)) > armours[id][AWM_CLASS])
         {
             armours[id][AWM_CLASS]=h;
-            flag=1;
         }
         if ((h=({int})ob->QueryProp(P_EFFECTIVE_AC)) > armours[id][AWM_EFF_CLASS])
         {
             armours[id][AWM_EFF_CLASS]=h;
-            flag=1;
         }
         if ((h=({int})ob->QueryProp(P_NR_HANDS)) < armours[id][AWM_HANDS])
         {
             armours[id][AWM_HANDS]=h;
-            flag=1;
         }
         if ((h=xflags(ob)) != armours[id][AWM_FLAGS])
         {
             armours[id][AWM_FLAGS]=h;
-            flag=1;
         }
     }
     else
@@ -171,7 +166,7 @@
 void RegisterWeapon()
 {   object  ob;
     string  id;
-    int     flag,h;
+    int     h;
 
     if (!objectp(ob=previous_object()) ||
       member(inherit_list(ob),"/std/weapon.c")==-1)
@@ -180,26 +175,21 @@
     if (member(weapons,id))
     {
         weapons[id][AWM_TIME] = time();
-        flag=0;
         if ((h=({int})ob->QueryProp(P_WC)) > weapons[id][AWM_CLASS])
         {
             weapons[id][AWM_CLASS]=h;
-            flag=1;
         }
         if ((h=({int})ob->QueryProp(P_EFFECTIVE_WC)) > weapons[id][AWM_EFF_CLASS])
         {
             weapons[id][AWM_EFF_CLASS]=h;
-            flag=1;
         }
         if ((h=({int})ob->QueryProp(P_NR_HANDS)) < weapons[id][AWM_HANDS])
         {
             weapons[id][AWM_HANDS]=h;
-            flag=1;
         }
         if ((h=xflags(ob)) != weapons[id][AWM_FLAGS])
         {
             weapons[id][AWM_FLAGS]=h;
-            flag=1;
         }
     }
     else
diff --git a/secure/errord.c b/secure/errord.c
index e257338..32977b1 100644
--- a/secure/errord.c
+++ b/secure/errord.c
@@ -1163,7 +1163,6 @@
       // Zeit alle ab Vollmagier
       case M_WRITE:
         return LEARNER_SECURITY;
-        break;
       // Loeschen und Fixen duerfen zur Zeit nur Zustaendige.
       case M_DELETE:
       case M_REASSIGN:
diff --git a/secure/explorationmaster.c b/secure/explorationmaster.c
index ecc6ee9..3b21587 100644
--- a/secure/explorationmaster.c
+++ b/secure/explorationmaster.c
@@ -294,14 +294,14 @@
 
 private string validOb(mixed ob)
 {
-  string fn, fpart;
+  string fn;
 
   if (!objectp(ob))
     return 0;
 
   fn = old_explode(object_name(ob),"#")[0];
-  fpart = old_explode(fn,"/")[<1];
  /*
+  string fpart = old_explode(fn,"/")[<1];
   if (query_once_interactive(ob))
     return 0;
 
@@ -346,7 +346,7 @@
        else bonus = clear_bit(bonus, obs[fn, MPOS_NUM]);
   }
   else {
-    int nr, i;
+    int nr;
 
     nr = 0;
     while (test_bit(alloc,nr))
@@ -642,10 +642,10 @@
     lastfound[name, 0] = time();
 
     if ( lastfound[name, 1] >= LF_WARN ){
-        object *u;
         int i;
         string *tmp;
 
+//        object *u;
 //        u = filter( users(), "check_arch" );
 //        map( u, #'tell_object/*'*/, "**** FP-Liste/Script " +
 //                   capitalize(name) + " (" + dtime(time()) + ") ****\n" );
@@ -900,12 +900,11 @@
 
   output="";
   if (!pattern || pattern=="")
-    teststring="%s";
-  else teststring="%s"+pattern+"%s";
+    teststring="%~s";
+  else teststring="%~s"+pattern+"%~s";
   walk_mapping( obs, function void (string fn, string* v1, int v2, int v3)
       {
-        string unused;
-        if ( test_bit(ep, v2) && sscanf(fn, teststring, unused, unused) )
+        if ( test_bit(ep, v2) && sscanf(fn, teststring) )
           printep(v2, fn, v3, v1);
       });
   ({void})this_interactive()->More(output);
@@ -918,7 +917,6 @@
 nomask int QueryLEP(int lep) {
     raise_error("Bitte QueryLEP() im LEPMASTER abfragen, nicht im "
        "EPMASTER!");
-    return(-1); //never reached
 }
 
 string QueryForschung()
diff --git a/secure/gildenmaster.c b/secure/gildenmaster.c
index 6018d9f..2954ce8 100644
--- a/secure/gildenmaster.c
+++ b/secure/gildenmaster.c
@@ -128,8 +128,6 @@
 }
 
 nomask int AddGuild(string gildob) {
-  object tp;
-
   if (!stringp(gildob) || !sizeof(gildob) || !security_check() 
       || file_size(GUILD_DIR+gildob+".c")<0)
       return 0;
@@ -141,8 +139,6 @@
 }
 
 nomask int RemoveGuild(string gildob) {
-  object tp;
-
   if (!stringp(gildob) || !sizeof(gildob) 
       || !security_check())
       return 0;
diff --git a/secure/inetd.c b/secure/inetd.c
index 23ab51c..ecf4943 100644
--- a/secure/inetd.c
+++ b/secure/inetd.c
@@ -91,7 +91,6 @@
 #define RETRY                "_RETRY"
 
 private nosave mapping hosts, pending_data, incoming_packets;
-private nosave mapping static_host_list;
 private nosave string *received_ids;
 private nosave int packet_id;
 
@@ -202,9 +201,6 @@
   if (!static_hosts)
       return; // retain the old list(s)
 
-  // remember the static hosts
-  static_host_list = m_reallocate(static_hosts,0);
-  
   // read the last host file dump and add the static hosts. Then the static
   // hosts have precedence over the ones from the dump.
   hosts = (read_host_list(HOST_FILE".dump") || ([])) + static_hosts;
@@ -601,7 +597,7 @@
 string encode_packet(mapping data) {
     int i;
     mixed indices;
-    string header, body, t1, t2;
+    string header, body;
     string *ret;
     status data_flag;
 
@@ -616,8 +612,8 @@
         // dabei nach ASCII wandeln und ggf. transliterieren. Aber sscanf
         // braucht wieder strings, daher muss es spaeter passieren (direkt vor
         // Senden).
-        if (sscanf(header, "%s:%s", t1, t2) ||
-            sscanf(header + body, "%s" + DELIMITER + "%s", t1, t2)
+        if (sscanf(header, "%~s:%~s") ||
+            sscanf(header + body, "%~s" + DELIMITER + "%~s")
         )
             return 0;
 
@@ -766,8 +762,6 @@
     mapping data;
 
     if (data = pending_data[id]) {
-        object ob;
-
 #ifdef INETD_DIAGNOSTICS
         data[PACKET_LOSS]++;
 #endif
diff --git a/secure/krautmaster.c b/secure/krautmaster.c
index 2c0dcba..0818d0c 100644
--- a/secure/krautmaster.c
+++ b/secure/krautmaster.c
@@ -43,16 +43,6 @@
 // krautprops[0] = 0; ID 0 darf nicht existieren
 private mixed *krautprops;
 
-// hier wird gespeichert welche Version einer Zutat fuer einen Spieler ist.
-// AN/TODO: Wenn das fuer Nichtseher nutzbar sein soll, sollte hier besser
-// mit getuuid() gearbeitet werden, statt getuid() zu verwenden.
-// player enthaelt fuer jede Spieler-UID einen Bitstring. Gesetztes Bit
-// bedeutet, dass der Spieler ueber das Kraut mit dieser ID etwas ueber
-// die Verwendung und Wirkung weiss. Es gibt jedoch noch keine Lernmoeglich-
-// keit und INSBESONDERE keine Funktionalitaet im Master, ueber die man 
-// die Bits setzen koennte.
-private mapping player;
-
 // verstuemmeltes mapping fuer den VC in service (Save-Dummy)
 private mapping map_ldfied;
 
@@ -129,7 +119,7 @@
       id2key=({});
       key2id=([]);
       krautprops=({});
-      player=([]);
+      //player=([]);
       map_ldfied=([]);
       rooms=([]);
    }
@@ -199,40 +189,11 @@
 // verwenden kann. Laut Kommentar unten muss man dafuer wohl was ueber das
 // Kraut gelernt haben, von wem ist mir gerade noch nicht klar.
 // AN/TODO: Es ist bisher keine Funktionalitaet vorhanden, um die IDs fuer
-// den Spieler freizuschalten. Die Funktionsweise muss aus dem Beispielcode
-// unten fuer das Learn-On-Demand abgelesen werden.
+// den Spieler freizuschalten.
 nomask int CanUseIngredient(object pl, int id)
 {
   // Ich mach mal den harten Weg. -- Humni
   return 1;
-  // Bitstring des Spielers aus der Liste auslesen.
-   string str=player[getuid(pl)];
-   if (!stringp(str)) str="";
-   if (test_bit(str, id))
-      return 1; // make the common case fast
-   else {
-     // letztenendes habe ich mich entschlossen einzubauen, das man nur die
-     // Kraeuter verwenden kann, ueber die man schonmal etwas gelesen/gelernt
-     // hat, aus diesem Grund, ist folgender Block auskommentiert.
-     // Dieser Block bedeutet quasi ein "auto learning on demand" d.h.
-     // wird ein Kraut verwendet wird geprueft ob fuer diese Gruppe bereits
-     // eine ID freigeschaltet wurde - ansonsten wird eine freigeschaltet.
-     /*
-         // pruefen ob fuer den Key bereits ein Bit gesetzt ist, ggf. setzen
-         if (id>=sizeof(id2key)) return 0; // illegale Id
-         int idlist=key2id[id2key[id]];
-         int i;
-         for (i=sizeof(idlist)-1; i>=0; i--) {
-           if (test_bit(str, idlist[i])) return 0; // Key bereits vorhanden
-         }
-         // Zufaellig ein Bit fuer den Key setzen
-         i=random(sizeof(idlist));
-         player[getuid(pl)]=set_bit(str, idlist[i]);
-         save_object(object_name());
-         return (i==id);
-     */
-     return 0;
-   }
 }
 
 // Diese Funktion wird vom Metzelorakel aufgerufen, um die Belohnungen zu
@@ -340,7 +301,6 @@
    // Allerdings muesste das vor dem explode() zur Zeilentrennung passieren.
    for ( ;si>=0; si--) 
    {
-     string lili=lines[si];
      if (strstr(lines[si],"##ende##")>=0) break;
    }
    si--;
@@ -708,9 +668,10 @@
 // angesteuert ueber das Planttool.
 int _showrooms(string str)
 {
-   int i, j, id;
-   string *list, dummy;
+   int i, id;
+   string *list;
    mixed *arr;
+
    if (!allowed()) return 0;
    notify_fail("Syntax: showrooms <id> oder showrooms all\n");
    if (str!="all") {
@@ -1152,7 +1113,7 @@
 // Fehler "index out of bounds", aber man muesste hier (TODO) sowieso mal
 // von explode() auf strstr() umbauen, denke ich.
 string _findplant(string str) {
-  int i, k;
+  int i;
   string *ind, *tmp;
 
   if(!str) return "";
@@ -1179,9 +1140,8 @@
   if (extern_call() && !allowed())
     return 0;
 
-  string *ind, *args, name;
+  string *ind, name;
   object *objs;
-  int k, l;
 
   objs = ({});
   if(!str) return "Keine Kraeuter uebergeben!";
diff --git a/secure/lepmaster.c b/secure/lepmaster.c
index 592b624..6cc4f60 100644
--- a/secure/lepmaster.c
+++ b/secure/lepmaster.c
@@ -163,7 +163,6 @@
 #else
   return lep/100;
 #endif // __PFOERKL__
-  return 0;
 }
 
 // Wieviele LEP fehlen zum naechsten Level?
diff --git a/secure/mailer.c b/secure/mailer.c
index bc22db9..0201079 100644
--- a/secure/mailer.c
+++ b/secure/mailer.c
@@ -264,7 +264,7 @@
 
 public string *DeliverMail( mixed msg, int expa )
 {
-    string sender, *recipients, *recok, t, *tmp;
+    string sender, *recipients, *recok, *tmp;
     <string|string*>* newmsg;
     int i;
 #ifdef INTERNET_MAIL_ENABLED
@@ -275,7 +275,6 @@
         return 0;
 
     DEBUG( sprintf( "DeliverMail: %O %O\n", msg[0..4] +({0})+ msg[6..7], expa ) );
-    t = ctime(time());
 
     // Ohne Empfaenger wird abgebrochen
     if (!stringp(msg[MSG_RECIPIENT]))
@@ -365,6 +364,7 @@
 #ifdef INTERNET_MAIL_ENABLED
             // Zustellung in den Rest des Internets.
             else {
+                string t = ctime(time());
                 ext = 1;
                 sender = explode( sender, "%" )[0];
                 rec = explode( regreplace( rec, "@", "%", 1 ), "%" )[0];
@@ -419,7 +419,7 @@
 
 public int FingerMail( string user )
 {
-    int newfolder, i;
+    int newfolder;
 
     //Zugriff beschraenken, Zahl der gelesenen Mails ist Privatsphaere
     if (!objectp(this_interactive()) || !stringp(user) || !sizeof(user)) 
diff --git a/secure/master/cidr.c b/secure/master/cidr.c
index c35ba21..d6c36cd 100644
--- a/secure/master/cidr.c
+++ b/secure/master/cidr.c
@@ -90,9 +90,7 @@
       default: // ungueltige Adresse
         return __INT_MAX__;
     }
-
     // hier sollte man gar nicht ankommen.
-    return __INT_MAX__;
 }
 
 string IPv4_int2addr(int ip) {
diff --git a/secure/materialdb.c b/secure/materialdb.c
index 94c57b6..a1240a8 100644
--- a/secure/materialdb.c
+++ b/secure/materialdb.c
@@ -216,6 +216,7 @@
       casus=0;
     return names[casus];
   }
+  return 0;
 }
 
 varargs string ConvMaterialList(mixed mats, int casus, mixed idinf) {
@@ -240,6 +241,7 @@
     }
     return ml;
   }
+  return 0;
 }
 
 int MaterialGroup(mapping mats, string grp) {
@@ -265,6 +267,7 @@
        res=100;
      return res;
    }
+   return 0;
 }
 
 string *AllMaterials() {
@@ -318,6 +321,7 @@
     else
       return "Unbekanntes";
   }
+  return 0;
 }
 
 string GroupDescription(string grp) {
@@ -327,6 +331,7 @@
     else
       return "Gruppe unbekannt";
   }
+  return 0;
 }
 
 //==================== Generieren von Headerfile und Manpages
@@ -369,7 +374,7 @@
 }
 private string gen_material_h_materials()
 {
-  string txt, last_grp;
+  string txt;
   string *grps, *mats;
   txt = "// ****************************** Materialien ******************************\n";
   // Gruppenweise ordnen
@@ -470,7 +475,6 @@
 varargs void GenMatList(string fn)
 {
   if (initialized) {
-    string txt;
     if (!stringp(fn) || !sizeof(fn))
       fn = DOC_DIR("materialliste");
     if (file_size(fn) >= 0) {
@@ -501,7 +505,6 @@
 varargs void GenMatGroupList(string fn)
 {
   if (initialized) {
-    string txt;
     if (!stringp(fn) || !sizeof(fn))
       fn = DOC_DIR("materialgruppen");
     if (file_size(fn) >= 0) {
@@ -533,7 +536,6 @@
 varargs void GenHeaderFile(string fn)
 {
   if (initialized) {
-    string txt;
     if (!stringp(fn) || !sizeof(fn))
       fn = HEADERFILE;
     if (file_size(fn) >= 0)
@@ -680,7 +682,6 @@
   fn = MAT_DIR+"/groups/"+id;
   if (file_size(fn) > 0) {
     mapping parts;
-    string desc;
     parts = getDescParts(read_file(fn));
     m = ([P_NAME:parts["Name"],
           P_MEMBERS:({})]);
@@ -808,7 +809,7 @@
      ...)
   */
   mapping m;
-  mixed val, val2;
+  mixed val;
   m = ([]);
   // Der string fuer das #define zuerst:
   val = convMatId(desc["Materialid"]);
@@ -856,7 +857,6 @@
   fn = MAT_DIR+"/materials/"+id;
   if (file_size(fn) > 0) {
     mapping parts;
-    string desc;
     parts = getDescParts(read_file(fn));
     m = convMaterialDesc(id, parts);
   } else {
@@ -891,7 +891,7 @@
 }
 
 private varargs void doScanMaterials(string* mats, int i, int step) {
-  int ticks, start;
+  int start;
   string matid;
   start = get_eval_cost();
   if (step < 2) {
diff --git a/secure/news.c b/secure/news.c
index f435089..c587dcb 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -151,8 +151,6 @@
 
 int RemoveGroup(string name)
 {
-  int num;
-
   if (!name) return 0;
 
   if (!security(name) || process_call()) return -1; // Darf nicht
@@ -170,8 +168,6 @@
 
 int SetGroup(string name,int dlevel,int        wlevel,int rlevel,int maxmessages,int expire)
 {
-  mixed *group;
-  
   if (!member(grouplist,name)) return -2;
   if (grouplist[name,G_OWNER]!=user_euid() &&
       (!security(name) || process_call())) return -1;
@@ -188,8 +184,6 @@
 
 int AddAllowed(string name,mixed deleters,mixed writers,mixed readers)
 {
-  mixed *group;
-
   if (!member(grouplist,name)) return -2;
 
   if ( grouplist[name,G_OWNER]!=user_euid() &&
@@ -214,8 +208,6 @@
 
 int RemoveAllowed(string name,mixed deleters,mixed writers,mixed readers)
 {
-  mixed *group;
-
   if (!member(grouplist,name)) return -2;
 
   if (grouplist[name,G_OWNER]!=user_euid() &&
@@ -298,7 +290,6 @@
 int WriteNote(mixed message,mixed keepname)
 {
   mixed group;
-  int uidok,tmp;
   string name;
 
   if (!pointerp(message) || sizeof(message)!=6) return 0;
@@ -325,7 +316,6 @@
 
 int RemoveNote(string name, int note)
 {
-  int num;
   mixed group;
 
   if ((note<0) && (name=="dwnews"))
@@ -429,7 +419,7 @@
 
 void dump_group(string grp)
 {
-  int to_expire,size,last;
+  int size,last;
   mixed group;
 
   if (!ARCH_SECURITY || process_call()) return;
@@ -476,7 +466,6 @@
 
 static mixed load_group(string name)
 {
-  int num;
   mixed *ret;
 
   if(!member(grouplist,name)) return -1;
@@ -498,7 +487,7 @@
 mixed GetGroups()
 {
   mixed *returnlist;
-  int i,group,slevel;
+  int i,slevel;
   string seuid;
 
   returnlist=sort_array(m_indices(grouplist),#'>); //');
diff --git a/secure/potionmaster.c b/secure/potionmaster.c
index e2aa300..2be898f 100644
--- a/secure/potionmaster.c
+++ b/secure/potionmaster.c
@@ -161,7 +161,6 @@
   if ( file_size( TIPS(to_string(nextroom)+".zt") ) < 0 ) {
     raise_error("Potionmaster: Tipfile missing, please create "+
       to_string(nextroom)+".zt");
-    return POT_NO_SUCH_FILE;
   }
   // Neuer Raum darf noch nicht in der Liste enthalten sein.
   if ( member(m_values(potions,POT_ROOMNAME), room)!=-1)
diff --git a/secure/questmaster.c b/secure/questmaster.c
index e142acf..e89c5a4 100644
--- a/secure/questmaster.c
+++ b/secure/questmaster.c
@@ -164,7 +164,7 @@
 
 private int RecalculateQP() {
   int i;
-  mixed q,n;
+  mixed q;
 
   if (!allowed_write_access())
     return -1;
@@ -172,7 +172,6 @@
   max_QP=0;
   opt_QP=0;
 
-  n=m_indices(quests);
   q=m_values(quests);
     for (i=sizeof(q)-1;i>=0;i--)
       if (q[i][Q_ACTIVE]) {
@@ -189,7 +188,6 @@
       string *allowedobj, string hint, int difficulty, int questclass,
       int active, string wiz, string scndwiz, int questattribute)
 {
-  mixed *quest;
   int i;
 
   if (!allowed_write_access()) return 0;
@@ -229,8 +227,6 @@
 }
 
 int RemoveQuest(string name) {
-  mixed *quest;
-
   if (!allowed_write_access()) return 0;
   if (!quests[name]) return -1;
   QMLOG(sprintf("remove: %s %O (%s)",name,quests[name],
@@ -431,7 +427,7 @@
 #define FILTER_UNGELOEST 2
 varargs string liste(mixed pl, int geloest_filter)
 {
-  int qgroups, i, j, qrfw;
+  int qgroups, i, j;
   mixed *qlists, *qgrouped, *qtmp;
   string str;
   string ja, nein, format, ueberschrift;
@@ -809,7 +805,6 @@
   }
 
   mixed *altemq = m_entry(miniquests, mq_obj);
-  int nummer = miniquests[mq_obj,MQ_DATA_QUESTNO];
   miniquests[mq_obj, param] = newvalue;
 
   save_info();
diff --git a/secure/scoremaster.c b/secure/scoremaster.c
index 83dc466..004e341 100644
--- a/secure/scoremaster.c
+++ b/secure/scoremaster.c
@@ -762,7 +762,6 @@
 {
   mixed info;
   object po;
-  int drin;
   string pls, ek;
 
 
@@ -1161,10 +1160,6 @@
 // return valid tips from database or existing 
 public string getTip(mixed key)
 {
-  string fn;
-  string tip;
-  string* path;
-  
   if (!ektipAllowed())
     return "";
   
diff --git a/secure/telnetneg.c b/secure/telnetneg.c
index c5da0d2..8cbc7a9 100644
--- a/secure/telnetneg.c
+++ b/secure/telnetneg.c
@@ -232,28 +232,24 @@
       if (opt->state->localside)
         return -2;
       return send_telnet_neg( ({ WILL, option }) );
-      break;
     case WONT:
       if (opt->lo_wishes->localside != 0)
         return -1;
       if (!opt->state->localside)
         return -2;
       return send_telnet_neg( ({ WONT, option }) );
-      break;
     case DO:
       if (opt->lo_wishes->remoteside != 0)
         return -1;
       if (opt->state->remoteside)
         return -2;
       return send_telnet_neg( ({ DO, option }) );
-      break;
     case DONT:
       if (opt->lo_wishes->remoteside != 0)
         return -1;
       if (!opt->state->remoteside)
         return -2;
       return send_telnet_neg( ({ DONT, option }) );
-      break;
   }
   raise_error(sprintf("Unsupported telnet negotation action in "
       "do_telnet_neg(): %d\n",action));
diff --git a/secure/udp/reply.c b/secure/udp/reply.c
index 43b70ce..e60f618 100644
--- a/secure/udp/reply.c
+++ b/secure/udp/reply.c
@@ -12,7 +12,7 @@
 
 void udp_reply(mapping data)
 {
-  string err,recpt,serv;
+  string serv;
   object ob;
   
   if (pointerp(data[SYSTEM])&&member(data[SYSTEM],TIME_OUT)>-1)
diff --git a/secure/udp_mail.c b/secure/udp_mail.c
index 4bd8d74..2f13f1d 100644
--- a/secure/udp_mail.c
+++ b/secure/udp_mail.c
@@ -59,9 +59,7 @@
 
 static void remove_from_spool(string spool_file)
 {
-  int idx;
-
-  if(spool && (idx=member(spool,spool_file))!=-1)
+  if(spool && (member(spool,spool_file))!=-1)
     {
       spool -= ({ spool_file });
       if(!sizeof(spool))
diff --git a/secure/zweities.c b/secure/zweities.c
index dfc4c2e..afcef41 100644
--- a/secure/zweities.c
+++ b/secure/zweities.c
@@ -273,7 +273,6 @@
   }
   else
     return QueryFamilie(previous_object());
-  return 0;
 }
 
 // Die Familienaliase abfragen. Entweder ein bestimmtes oder alle. Eine