'From Squeak3.1beta of 8 October 2001 [latest update: #4411] on 9 October 2001 at 5:01:53 pm'! "Change Set: ChangeSetFileoutFix Date: 9 October 2001 Author: tim@sumeru.stanford.edu ChangeSet>fileOut carefuly checks to see if the filename is too long for Mac OS. If it is, it refuses to do the fileout. This is ridiculous behaviour. This changeset provides a FillInTheBlank that offers a suggested suitable name but allows anything the user chooses to type."! !ChangeSet methodsFor: 'fileIn/Out' stamp: 'tpr 10/9/2001 16:58'! fileOut "File out the receiver, to a file whose name is a function of the change-set name and either of the date & time or chosen to have a unique numeric tag, depending on the preference 'changeSetVersionNumbers'" | file slips nameToUse | self checkForConversionMethods. nameToUse _ Preferences changeSetVersionNumbers ifTrue: [FileDirectory default nextNameFor: self name extension: 'cs'] ifFalse: [(self name, FileDirectory dot, Utilities dateTimeSuffix, FileDirectory dot, 'cs') asFileName]. nameToUse size > 31 ifTrue: [nameToUse _ FillInTheBlank request: (nameToUse , '\has ' , nameToUse size asString , ' letters - too long for Mac OS.\Suggested replacement is:') withCRs initialAnswer: (nameToUse contractTo:30). nameToUse = '' ifTrue:[^self]]. Cursor write showWhile: [[file _ FileStream newFileNamed: nameToUse. file header; timeStamp. self fileOutPreambleOn: file. self fileOutOn: file. self fileOutPostscriptOn: file. file trailer] ensure: [file close]]. Preferences checkForSlips ifFalse: [^ self]. slips _ self checkForSlips. (slips size > 0 and: [(PopUpMenu withCaption: 'Methods in this fileOut have halts or references to the Transcript or other ''slips'' in them. Would you like to browse them?' chooseFrom: 'Ignore\Browse slips') = 2]) ifTrue: [Smalltalk browseMessageList: slips name: 'Possible slips in ', name]! !