The Trunk: System-ar.343.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: System-ar.343.mcz

commits-2
Andreas Raab uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ar.343.mcz

==================== Summary ====================

Name: System-ar.343
Author: ar
Time: 21 June 2010, 8:36:36.846 pm
UUID: 178a99de-0c0e-7c42-bf93-a594eacce7aa
Ancestors: System-ar.342

Fixes an ancient issue when launching Squeak with a script as argument. The code the converted the script name to a file url was just utterly and horribly broken and could not possibly work. With the fix, one can now again start Squeak with arguments of the form:

        squeak mysqueak.image file.st
        squeak mysqueak.image scripts/file.st
        squeak mysqueak.image ../../svn/scripts/file.st

(and of course any kind of URL)

=============== Diff against System-ar.342 ===============

Item was changed:
  ----- Method: ProjectLauncher>>startUpAfterLogin (in category 'running') -----
  startUpAfterLogin
  | scriptName loader isUrl |
  self setupFlaps.
  Preferences readDocumentAtStartup ifTrue: [
  HTTPClient isRunningInBrowser ifTrue:[
  self setupFromParameters.
  scriptName := self parameterAt: 'src'.
  CodeLoader defaultBaseURL: (self parameterAt: 'Base').
  ] ifFalse:[
  scriptName := (Smalltalk documentPath) ifNil:[''].
  scriptName := scriptName convertFromSystemString.
  scriptName isEmpty ifFalse:[
  "figure out if script name is a URL by itself"
  isUrl := (scriptName asLowercase beginsWith:'http://') or:[
  (scriptName asLowercase beginsWith:'file://') or:[
  (scriptName asLowercase beginsWith:'ftp://')]].
+ isUrl ifFalse:[
+ "Allow for ../dir/scriptName arguments"
+ scriptName := (FileDirectory default uri
+ resolveRelativeURI: scriptName) asString]].
- isUrl ifFalse:[scriptName := 'file:',scriptName]].
  ]. ]
  ifFalse: [ scriptName := '' ].
 
  scriptName isEmptyOrNil
  ifTrue:[^Preferences eToyFriendly ifTrue: [self currentWorld addGlobalFlaps]].
  loader := CodeLoader new.
  loader loadSourceFiles: (Array with: scriptName).
  (scriptName asLowercase endsWith: '.pr')
  ifTrue:[self installProjectFrom: loader]
  ifFalse:[loader installSourceFiles].
  !