# # File: BBSStartup # # Written by: Kurt Clark # # Copyright: © 1993 by Apple Computer, Inc., all rights reserved. # # Change History (most recent first): # # 10/13/93 IH Check shell variable BlockSuperMarioSetKeys and do not call # setkeys if it is set (I was already using these keys). # 6/14/93 kc Fix some quoting problems # 5/21/93 kc Move UseToolServer check to after the control keys are set, fix # lookup entrypoint so that it will work with Ludwig sources. # 3/3/93 kc Fix toolserver so that it isn't launched by default. # 2/24/93 kc Change default tools server worksheet to TSWorkSheet. # 2/19/93 kc Rewrite existing BBSStartup. # # # # Variables # Set TheNameFile "{Sources}SuperMarioSources:Names" Export TheNameFile If !"{ToolServer}" Set ToolServer "ToolServer" Export ToolServer End If !{TSWorkSheet} Set TSWorkSheet "{MPW}TSWorkSheet" Export TSWorkSheet End # # Aliases # Alias Nothing "Set Status 0" # For convenience. Alias ToolServer "RShell -r ¶"{ToolServer}¶" ·· ¶"{TSWorkSheet}¶"" # # Keys # # # Give a chance to block these keys if we don't want them. # If !{BlockSuperMarioSetKeys} # Make sure the MPW Shell supports SetKeys. Which SetKey · dev:null ¶ || Begin Which SetKeys · dev:null ¶ && Begin Alias SetKey SetKeys End ¶ || Begin Alias SetKey '#' End End # Execute in background. SetKey Control-Return ¶ '(Evaluate "`Position "{active}"`" =~ ¶ /([0-9]*)¨1 ([0-9]+)¨2,([0-9]+)¨3/ ) · Dev:Null ;¶ If {¨2} == {¨3} ; Find {¨1} "{active}" ; End ;¶ ToolServer < "{active}".¤ ;¶ Find ¥!{¨2}:¥!{¨3} "{active}" ' # Kill running background task. SetKey Control-. ¶ 'Set pid 0 ;¶ Loop ;¶ RShell -k {pid} && Break ; || Nothing ;¶ Evaluate pid += 1 ;¶ Break If {pid} >= 16 ;¶ End · Dev:Null ' # Kill all background tasks. SetKey Control-Shift-. ¶ 'Set pid 0 ;¶ Loop ;¶ RShell -k {pid} || Nothing ;¶ Evaluate pid += 1 ;¶ Break If {pid} >= 16 ;¶ End · Dev:Null ' # Locate the source for the selected entrypoint. SetKey Command-Option-D '"{sources}"Tools:LookupEntryPoint' End # # Check Switch # If !{UseToolServer} Exit 0 End # # Patch the shell so that you can issue multiple commands # {sources}Tools:PatchShell # # Launch the ToolServer if running local, or locate it otherwise. # Open -n -t "{TSWorkSheet}" If "{ToolServer}" =~ /"ToolServer"/ # running local If `Exists "{MPW}ToolServer"` Execute "{MPW}ToolServer" ¶ || Begin Alert "I couldnÕt launch tool server." Exit 0 End ToolServer '"{MPW}MPWÊShell"' Else Exit 0 End Else ToolServer 'Nothing' · Dev:Null ¶ || Begin Alert "I couldnÕt locate your tool server." Exit 0 End End # # Initialize ToolServer # Set | ToolServer Export | ToolServer Alias | ToolServer # # Done # Exit 0 # # End of BBSStartup #