SCO UNIX (3.2.2) 'ls' is broken... what a shame
Larry Philps
larryp at sco.COM
Fri Jan 4 01:37:42 AEST 1991
pizzi at esacs.UUCP (Riccardo Pizzi) writes:
>
>We installed recently the new SCO UNIX release, i.e. 3.2.2.
>
>Please, look at the output of the 'lc' command on my home directory:
>
>AAA house.c mbox remind22.5 sps.2
>active.uunet hv at uwasa.fi mte215.zip.1 s.c sps.3
>alt.groups hv at uwasa.fi.h mte215.zip.2 sb.1 sucker
>anonftp.sites i2u.info.h nws sb.2 TTT
>batchout.c i2u.info.i periodic sb.3 T1500.uunet
>casa maild prog sb.5 uunet.games
>ciuccia maild.c remind22.1 sb.6 uunet.unix
>conq4 Makefila remind22.2 sb.7 uunet.x
>ftp-server.h makefile remind22.3 sig
>gifhelp Makefile remind22.4 sps.1
>
>In the ASCII character set, I have always thought the capital (upper case)
>letters should come *before* the lower case letters, but this seems not true
>for SCO...
>If we look at the following files: maild.c, Makefile, makefile e Makefila,
>we would expect to see the following:
>
> Makefila
> Makefile
> maild.c
> makefile
>
>now, take a look and see how SCO sorted the files...
>The first problem that comes to my mind is that the old habit of giving
>important files an uppercase name (or capitalized, as you prefer) does not
>work here... what a shame!
>I thought the bug could depend on the internationalization stuff, but never
Bingo.
>had the time to dig into it to debug the problem (I don't like SCO UNIX
>at all, agreeing with most developers out there so I don't want to do it, too).
>
>BTW: today I found that the numbers always come *after* all other letters:
This is not a bug, rather a feature :-). Under the ANSI and XPG3
internationalization (I18N for short), practically everything is
variable. There are languages out there in which words are sorted by the
*first vowel in a word* rather than the first letter. Some letters have
to be treated as 2, some strings have to be treated as a single letter.
It goes on and on. The whole thing is incredibly complicated.
Anyway, what you have done is set your default environment to
english_us.8859, rather than english_us.ascii. Thus you have asked for
ISO 8859 sorting rules rather than ascii sorting rules, and are getting
case independent sorting among other things. I was also confused when
this happened the first time.
You can do lots of things to solve this (as is typical in I18N)
1) Edit /etc/default/lang, and change the 8859 to ascii. This changes
the default behaviour for the *entire* system.
2) Set the environment variable LANG from your shell
% setenv LANG english_us.ascii
to change just the behaviour you see, but leave everything else alone.
3) Set the environment variable LC_COLLATE (it controls sorting criteria)
from your shell
% setenv LC_COLLATE english_us.ascii
Then your environment will use 8859 rules except for sorting, which
will change to the ascii conventions.
Have fun.
---
I am not an I18N expert, but have actually written code during a project
to use this stuff. I found myself confused for months about the *right*
way to do things.
If anyone else out there has done any I18N programming (under SCO or any
other system) and has some *pearls of wisdom* (complaints?) to impart, I
would be happy to listen to them. I don't promise to be able to solve,
fix or change anything, but I18N is virtually certain to affect my life
as a programmer more and more as time goes on, and I would not mind getting
a bit of a head start.
---
Larry Philps, SCO Canada, Inc (Formerly: HCR Corporation)
Postman: 130 Bloor St. West, 10th floor, Toronto, Ontario. M5S 1N5
InterNet: larryp at sco.COM or larryp%scocan at uunet.uu.net
UUCP: {uunet,utcsri,sco}!scocan!larryp
Phone: (416) 922-1937
Fax: (416) 922-8397
More information about the Comp.unix.sysv386
mailing list