After further investigation the $: does get converted to $#
in DosFileDirectory>>checkName:fixErrors:

The real cause of grief is the tab character immediately following the colon.

The method modification below should help, though I expect the list of invalid charaters is not exhaustive yet
and I'll see if I can find a complete set of them for Windows...

DosFileDirectory>>
checkName: aFileName fixErrors: fixing
"Check if the file name contains any invalid characters"
| fName badChars hasBadChars |
fName := super checkName: aFileName fixErrors: fixing.
badChars := (#( $: $< $> $| $/ $\ $? $* $"), String tab, String lf, String cr) asSet.
hasBadChars := fName includesAnyOf: badChars.
(hasBadChars and:[fixing not]) ifTrue:[^self error:'Invalid file name'].
hasBadChars ifFalse:[^ fName].
^ fName collect:
 [:char | (badChars includes: char)
   ifTrue:[$#]
   ifFalse:[char]]


Regards, Gary

----- Original Message ----- From: "Stéphane Ducasse" <[email protected]>
To: <[email protected]>
Sent: Tuesday, December 07, 2010 11:55 AM
Subject: Re: [Pharo-project] Bad characters in update package names



On Dec 7, 2010, at 12:46 PM, Gary Chambers wrote:

As Guillermo pointed out
'Issue 3191:    SparseLargeArray-MarcusDenker.2.mcz'


this is the name of the package!!!!
Argh jean-baptiste?

I will fix it now.

Stef



Amongst others...
Windows will fail to create the local file in package-cache due to the colon in the name...

Regards, Gary


----- Original Message ----- From: "Stéphane Ducasse" <[email protected]>
To: <[email protected]>
Sent: Tuesday, December 07, 2010 11:33 AM
Subject: Re: [Pharo-project] Bad characters in update package names


Gary do you have the name of the package?
And yes we should check that. I know that luc wrote some doc to make sure that package names would not contain stupid characters.

On Dec 6, 2010, at 5:02 PM, Gary Chambers wrote:

Seems didn't get sent...

Regards, Gary
----- Original Message -----
From: Gary Chambers
To: Pharo Development
Sent: Friday, December 03, 2010 4:02 PM
Subject: Bad characters in update package names

It seems that having $: in the package name for certain updates is causing
the save to local package cache to error on Windows (unsurprisingly).

Perhaps worth having a sanity check before the package name is accepted
since it eventually gets to the filesystem.

Regards, Gary






Reply via email to