[gccsdk] Name conversion catches

Ron beeb at woosh.co.nz
Thu Apr 4 05:30:36 PDT 2013

In message <80a4493553.beeb at ron1954.woosh.co.nz>
          Ron <beeb at woosh.co.nz> wrote:
> >
> > I checked Linux and you cant create "." or ".." but you can
> > create "..."
> > I have experimented and found I have my own conversion for the
> > parsed top directory doing an 'up directory' when named "/" and on
> > the subdirectories/files (tar internally) unixlib is just skipping
> > everything below a "/" or "//"
> >
> <snip>
> An easy way to examine the current unixlib conversion is to have
> !Moonfish running and the shared directory open in RISC OS and Linux
> simultaneously
> I think the most natural way to allow "./." ".//." is to escape them
> with the "\" character as this can be entered from the Linux side
> in a normal way.
> "\.\." as a name is OK under Linux and would allow creation of this
> legitimate in RISC OS name, but the escape character "\" is being
> converted to "?5C" at the moment.
> Given that "\" is not allowed in a RISC OS name, I think all
> occurrences of it could simply be removed at riscosifying time.
> Instances of "./." or any number of purely "/" characters in a name
> would be a special case requiring them to be preceded by as many
> "\" as needed at unixifying time.
> I am looking for the most likely way it would be implemented in
> unixlib permanently so it would give all programs using ,xyz
> compatibility one day.
> Ron M.

Unfortunately it is not so simple, the linux tar does not allow
the '\' character in a name the way !moonfish and the linux filer
can, possibly because it conflicts with Dos separators, I don't know.
So the only possibility would be to subsitute the '/' '//'
with a tar compatible character that can't be used in a RISC OS name.
But it may be better just to abide by a few rules and maintain
proper cross platform compatibility without the strange characters.

Ron M.

More information about the gcc mailing list