# # 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 #