diff 10/german.h 11/german.h
50c50
<         = "Offizielle deutsche Inform-Library, Release 10, Serial 020605";
---
>         = "Offizielle deutsche Inform-Library, Release 11, Serial 020717";
288a289
> #ifdef NO_PUNCTUATION;
294a296
> #endif; ! NO_PUNCTUATION
866c868,872
<               36: "Du hast etwas ausgeschlossen, was ohnehin nicht inbegriffen war.";
---
>               #ifdef R_NEU;
>                   39: "Das ist nichts, worauf du dich in diesem Spiel beziehen musst.";
>               #ifnot;
>                   39: "Das ist nichts, worauf du dich in diesem Spiel beziehen mußt.";
>               #endif;
1165a1172,1175
>                4: !Bugfix, Inform Patches [LEAVE tries too hard]
>                   print "Aber du bist doch gerade gar nicht ";
>                   if (x1 has supporter) print "auf"; else print "in"; 
>                   print_ret " ", (dem) x1, ".";
diff 10/inform_de_aenderungen.txt 11/inform_de_aenderungen.txt
3a4,223
> * Deutsche Inform Library: Änderungsliste 11 (17.07.2002)
> ***********************************************************************
> ***********************************************************************
> ***********************************************************************
> 
> Vorschläge von: Dennis Brakhane, Max Kalus, Inform-Bugfixes, if-Liste
> 
> ***********************************************************************
> * Alle
> ***********************************************************************
> Bugfixes nach Patch-Library mit entsprechenden Referenzen versehen
> 
> ***********************************************************************
> * parserm.h
> ***********************************************************************
> 
> Alt:
>                l = multiple_object-->k;
>                PronounNotice(l);
>                print (name) l, ": ";
>                if (inp1 == 0)
> Neu:
>                l = multiple_object-->k;
>                PronounNotice(l);
>                print (_en) l, ": ";
>                if (inp1 == 0)
> 
> ***********************************************************************
> 
> Alt:
> [ DisplayStatus;
>    if (the_time==NULL)
>    {   sline1=score; sline2=turns; }
>    else
>    {   sline1=the_time/60; sline2=the_time%60; }
> ];
> Neu:
> [ DisplayStatus;
>    if ((0->1)&2 == 0)	!Bugfix, Inform Patches [Implementing a clock]
>    {   sline1=score; sline2=turns; }
>    else
>    {   sline1=the_time/60; sline2=the_time%60; }
> ];
> 
> ***********************************************************************
> 
> Alt:
>       obj = match_list-->i; its_owner = parent(obj); its_score=0;
> Neu:
>       obj = match_list-->i; its_owner = parent(obj); its_score=0;
>       met = 0; !Bugfix, Inform Patches [Match list handled incorrectly]
> 
> ***********************************************************************
> 
> Alt:
> [ ParseToken__ given_ttype given_tdata token_n
>              token l o i j k and_parity single_object desc_wn many_flag
>              token_allows_multiple;
> Neu:
> [ ParseToken__ given_ttype given_tdata token_n
>              token l o i j k and_parity single_object desc_wn many_flag
>              token_allows_multiple;
> 
>    !Bugfix, Inform Patches ["Read" verb on out-of-scope objects]
>    if (o==-1 && (line_ttype-->(token_n+1) == PREPOSITION_TT))
>        return GPR_FAIL;    ! don't infer if required preposition is absent
> 
> ***********************************************************************
> * verblibm.h
> ***********************************************************************
> 
> Alt:
> [ ListEqual o1 o2;
>   if (child(o1)~=0 && WillRecurs(o1)~=0) rfalse;
>   if (child(o2)~=0 && WillRecurs(o2)~=0) rfalse;
> 
>   if (c_style & (FULLINV_BIT + PARTINV_BIT) ~= 0)
>   {   if ((o1 hasnt worn && o2 has worn)
>           || (o2 hasnt worn && o1 has worn)) rfalse;
>       if ((o1 hasnt light && o2 has light)
>           || (o2 hasnt light && o1 has light)) rfalse;
>   }
> 
>   return Identical(o1,o2);
> ];
> Neu:
> [ ListEqual o1 o2;
>   if (child(o1)~=0 && WillRecurs(o1)~=0) rfalse;
>   if (child(o2)~=0 && WillRecurs(o2)~=0) rfalse;
> 
>   if (c_style & (FULLINV_BIT + PARTINV_BIT) ~= 0)
>   {   if ((o1 hasnt worn && o2 has worn)
>           || (o2 hasnt worn && o1 has worn)) rfalse;
>       if ((o1 hasnt light && o2 has light)
>           || (o2 hasnt light && o1 has light)) rfalse;
> 
>       !Bugfix, Inform Patches [Plural containers listed wrong]
>       if (o1 has container)
>       {    if (o2 hasnt container) rfalse;
>            if ((o1 has open && o2 hasnt open)
>                 || (o2 has open && o1 hasnt open))
>                     rfalse;
>       }
>       else if (o2 has container) rfalse;
>   }
> 
>   return Identical(o1,o2);
> ];
> 
> ***********************************************************************
> 
> Alt:
>   if (noun has container && noun hasnt transparent	!geändert Max Kalus
>       && IndirectlyContains(noun,player)==0)
> Neu:
>   !Bugfix, Inform Patches [Revealing contents in darkness]
>   if (noun has container && noun hasnt transparent && child(noun)~=0
>       && location ~= thedark
>       && IndirectlyContains(noun,player)==0)
>       return L__M(##Open,4,noun);
> 
> ***********************************************************************
> 
> Alt:
>   if (noun has scenery)  return L__M(##Push,2,noun);
>   if (noun has animate)  return L__M(##Pull,4,noun);
> Neu:
>   if (noun has scenery)  return L__M(##Push,2,noun);
>   !Bugfix, Inform Patches [Wrong messages for PUSH/TURN]
>   if (noun has animate)  return L__M(##Push,4,noun);
> 
> ***********************************************************************
> 
> Alt:
>   if (noun has scenery)  return L__M(##Turn,2,noun);
>   if (noun has animate)  return L__M(##Pull,4,noun);
> Neu:
>   if (noun has scenery)  return L__M(##Turn,2,noun);
>   !Bugfix, Inform Patches [Wrong messages for PUSH/TURN]
>   if (noun has animate)  return L__M(##Turn,4,noun);
> 
> ***********************************************************************
> 
> Alt:
> [ ExitSub p;
>   p=parent(player);
> Neu:
> [ ExitSub p;
>   p=parent(player);
>   !Bugfix, Inform Patches [LEAVE tries too hard]
>   if (noun ~= nothing && noun ~= p) return L__M(##Exit,4,noun);
> 
> ***********************************************************************
> 
> Alt:
>   if (second == d_obj || player in second) <<Drop noun>>;
> Neu:
>   if (second == d_obj || player in second) <<Drop noun>>;
>   !Bugfix, Inform Patches [Object already in/on another]
>   if (parent(noun) == second) return L__M(##Drop,1,noun);
> 
> ***********************************************************************
> 
> Alt:
>   if (second==d_obj || player in second) <<Drop noun>>;
> Neu:
>   if (second==d_obj || player in second) <<Drop noun>>;
>   !Bugfix, Inform Patches [Object already in/on another]
>   if (parent(noun) == second) return L__M(##Drop,1,noun);
> 
> ***********************************************************************
> 
> Alt:
>              if (o hasnt moved || o.describe~=NULL || f2==1)
>              {   if (o.describe~=NULL && RunRoutines(o,describe)~=0)
> Neu:
>              !Bugfix, Inform Patches [Problem with additive 'describe' property]
>              if (o hasnt moved || o.describe~=0 || f2==1)
>              {   if (o.describe~=0 && RunRoutines(o,describe)~=0)
> 
> ***********************************************************************
> 
> Alt:
>       {   if (location.describe~=NULL) RunRoutines(location,describe);
> Neu:
>       !Bugfix, Inform Patches [Problem with additive 'describe' property]
>       {   if (location.describe~=0) RunRoutines(location,describe);
> 
> ***********************************************************************
> * german.h
> ***********************************************************************
> 
> Alt:
>               39: "Ein flüchtiger Blick auf ", (den) x1, " sagt dir, ", (string) C_DASS,
>                     (er) x1, " für das Spiel nicht wichtig ", (isorare) x1, ".";
> Neu:
>               #ifdef R_NEU;
>                   39: "Das ist nichts, worauf du dich in diesem Spiel beziehen musst.";
>               #ifnot;
>                   39: "Das ist nichts, worauf du dich in diesem Spiel beziehen mußt.";
>               #endif;
> 
> ***********************************************************************
> 
> Alt:
>                3: print "Du gelangst ";
>                   if (x1 has supporter) print "runter von "; 
>                   else print "hinaus aus "; print_ret (dem) x1, ".";
> Neu:
>                3: print "Du gelangst ";
>                   if (x1 has supporter) print "runter von "; 
>                   else print "hinaus aus "; print_ret (dem) x1, ".";
>                4: !Bugfix, Inform Patches [LEAVE tries too hard]
>                   print "Aber du bist doch gerade gar nicht ";
>                   if (x1 has supporter) print "auf"; else print "in"; 
>                   print_ret " ", (dem) x1, ".";
> 
> ***********************************************************************
> ***********************************************************************
> ***********************************************************************
678a899,921
> * german.h
> ***********************************************************************
> 
> Alt:
> #ifdef TARGET_ZCODE;
> !Eingefügt von Max Kalus
> !ändert alle "?", "!" und Anführungszeichen in Leerzeichen
>    for (x=2:x<2+buffer->1:x++)
>    {   
>       if (buffer->x == '?' or '!' or '"' or 39) buffer->x = ' ';
>    }
> Neu:
> #ifdef TARGET_ZCODE;
> #ifdef NO_PUNCTUATION;
> !Eingefügt von Max Kalus
> !ändert alle "?", "!" und Anführungszeichen in Leerzeichen
>    for (x=2:x<2+buffer->1:x++)
>    {   
>       if (buffer->x == '?' or '!' or '"' or 39) buffer->x = ' ';
>    }
> #endif; ! NO_PUNCTUATION
> 
> ***********************************************************************
diff 10/parserm.h 11/parserm.h
388c388
< !Bugfix nach Inform_Patches: Puffer "123" nicht korrekt definiert!
---
> !Bugfix, Inform Patches [Buffers declared incorrectly]
988a989
>     !Bugfix, Inform Patches [Plural containers listed wrong]
1719c1720
<                   !Bugfix nach Inform_Patches: Berichtigt Problem mit "it", etc.
---
>                   !Bugfix, Inform Patches ["IT" handled suboptimally]
2027c2028,2032
< !  **** (A) ****
---
>    !Bugfix, Inform Patches ["Read" verb on out-of-scope objects]
>    if (o==-1 && (line_ttype-->(token_n+1) == PREPOSITION_TT))
>        return GPR_FAIL;    ! don't infer if required preposition is absent
>    
>    !  **** (A) ****
3093a3099
>       met = 0; !Bugfix, Inform Patches [Match list handled incorrectly]
3297c3303
<       !Bugfix nach Inform_Patches: Berichtigt "gehe [richtung] [irgendwas]"
---
>       !Bugfix, Inform Patches [Wrong message for GO [dir] [anything]]
4416c4422
<                print (name) l, ": ";
---
>                print (_en) l, ": ";
4785c4791
<    if (the_time==NULL)
---
>    if ((0->1)&2 == 0)	!Bugfix, Inform Patches [Implementing a clock]
diff 10/verblibm.h 11/verblibm.h
175a176,184
> 
>       !Bugfix, Inform Patches [Plural containers listed wrong]
>       if (o1 has container)
>       {    if (o2 hasnt container) rfalse;
>            if ((o1 has open && o2 hasnt open)
>                 || (o2 has open && o1 hasnt open))
>                     rfalse;
>       }
>       else if (o2 has container) rfalse;
409,410c418
< !	WriteAfterEntry(j,depth,stack_pointer);
< 	!Bugfix nach Inform_Patches: berichtigt Pluralnamen beim Listwriter
---
> 	!Bugfix, Inform Patches [Plural containers listed wrong]
1522a1531,1532
>   !Bugfix, Inform Patches [Object already in/on another]
>   if (parent(noun) == second) return L__M(##Drop,1,noun);
1559a1570,1571
>   !Bugfix, Inform Patches [Object already in/on another]
>   if (parent(noun) == second) return L__M(##Drop,1,noun);
1717a1730,1731
>   !Bugfix, Inform Patches [LEAVE tries too hard]
>   if (noun ~= nothing && noun ~= p) return L__M(##Exit,4,noun);
1860,1861c1874,1876
<              if (o hasnt moved || o.describe~=NULL || f2==1)
<              {   if (o.describe~=NULL && RunRoutines(o,describe)~=0)
---
>              !Bugfix, Inform Patches [Problem with additive 'describe' property]
>              if (o hasnt moved || o.describe~=0 || f2==1)
>              {   if (o.describe~=0 && RunRoutines(o,describe)~=0)
1942c1957
< !Bugfix nach Inform_Patches: berichtigt Spacing, wenn man in einem Container ist
---
> !Bugfix, Inform Patches [Strange spacing on inside_description]
1987c2002,2003
<       {   if (location.describe~=NULL) RunRoutines(location,describe);
---
>       !Bugfix, Inform Patches [Problem with additive 'describe' property]
>       {   if (location.describe~=0) RunRoutines(location,describe);
2109,2110c2125,2128
<   if (noun has container && noun hasnt transparent	!geändert Max Kalus
<       && IndirectlyContains(noun,player)==0)
---
>   !Bugfix, Inform Patches [Revealing contents in darkness]
>   if (noun has container && noun hasnt transparent && child(noun)~=0
>       && location ~= thedark
>       && IndirectlyContains(noun,player)==0)
2221c2239,2240
<   if (noun has animate)  return L__M(##Pull,4,noun);
---
>   !Bugfix, Inform Patches [Wrong messages for PUSH/TURN]
>   if (noun has animate)  return L__M(##Push,4,noun);
2228c2247,2248
<   if (noun has animate)  return L__M(##Pull,4,noun);
---
>   !Bugfix, Inform Patches [Wrong messages for PUSH/TURN]
>   if (noun has animate)  return L__M(##Turn,4,noun);

