The change set included below fixes the same bug in FileList>>addNewFile and FileList>>addNewDirectory. The methods were so similar I felt obliged to parameterize them into one.
--------8<-------->8--------
'From Squeak2.7alpha of 13 November 1999 [latest update: #1660] on 28 November 1999 at 9:13:02 am'! "Change Set: FileListBugFixes Date: 28 November 1999 Author: Steve Elkins
Parameterizes 2 very similar FileList methods, #addNewDirectory and #addNewFile, as well as removing the same bug from each, that pushing the cancel button in the FillInTheBlank dialog gave a walkback."!
!FileList methodsFor: 'file list menu' stamp: 'sge 11/28/1999 09:03'! addNew: aString byEvaluating: aBlock "A parameterization of earlier versions of #addNewDirectory and #addNewFile. Fixes the bug in each that pushing the cancel button in the FillInTheBlank dialog gave a walkback."
| response newName index ending | self okToChange ifFalse: [^ self]. (response _ FillInTheBlank request: 'New ',aString,' Name?' initialAnswer: aString,'Name') isEmpty ifTrue: [^ self]. newName _ response asFileName. Cursor wait showWhile: [ aBlock value: newName]. self updateFileList. index _ list indexOf: newName. index = 0 ifTrue: [ending _ ') ',newName. index _ list findFirst: [:line | line endsWith: ending]]. self fileListIndex: index. ! !
!FileList methodsFor: 'file list menu' stamp: 'sge 11/28/1999 09:04'! addNewDirectory self addNew: 'Directory' byEvaluating: [:newName | directory createDirectory: newName] ! !
!FileList methodsFor: 'file list menu' stamp: 'sge 11/28/1999 09:04'! addNewFile self addNew: 'File' byEvaluating: [:newName | (directory newFileNamed: newName) close] ! !
squeak-dev@lists.squeakfoundation.org