Sunday, 7 April 2013

Re: [gccsdk] Name conversion catches

Hi Ron,

> 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.

Are you sure about that?

$ ls -l
total 0
-rw-r--r-- 1 ralph ralph 0 2013-04-07 12:58 a
-rw-r--r-- 1 ralph ralph 0 2013-04-07 12:58 back\slash
-rw-r--r-- 1 ralph ralph 0 2013-04-07 12:58 character
$
$ tar cvf - . | tar tvf -
./
./a
./character
./back\\slash
drwxr-xr-x ralph/ralph 0 2013-04-07 12:58 ./
-rw-r--r-- ralph/ralph 0 2013-04-07 12:58 ./a
-rw-r--r-- ralph/ralph 0 2013-04-07 12:58 ./character
-rw-r--r-- ralph/ralph 0 2013-04-07 12:58 ./back\\slash
$

I've lost track what problem is trying to be solved here but the normal
way is to find characters that can be paired and transliterated for each
other, e.g. `/' on Unix becomes `.' on RISC OS, and if there are some
that don't pair up then an escape mechanism is needed, e.g. ` ' would
become `?20', remembering to escape the escape character itself to
`?3f'. (I forget RISC OS's special characters so `?' was picked at
random.)

That then leaves the problem of filename and pathname length
differences, including expansion caused by the escape mechanism.

Cheers, Ralph.

_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

No comments:

Post a Comment