[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: simulation advice



On 4/4/07, David Kerber <dkerber@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
I guess I should stop arguing this; I can live and work with either one as
long as I know what's expected, even if it's not how I would have designed
it...

It's strongly preferred that .cc be used for C++ programs instead of .C.

Even so, case-sensitive filesystems have one thing that
case-insensitive filesystems lack: virtually automatic support for
UTF-8-encoded names with an absolute minimum of code to do it.  It can
implement this with dumb byte-by-byte comparisons.  Either a chunk of
memory matches, or it doesn't.

Otherwise, you'll need to support crazy internationalization APIs when
doing even the simplest of directory manipulations.  For example,
using toupper() to uppercase a filename for comparison purposes in
OS/2 was _strongly_ discouraged because it failed to properly handle
internationalization.  Instead, they had a custom API just for this
one, and only one, purpose: DosMapCase() if I recall correctly.  I
suspect Windows will have something similar.  And I'm willing to bet
you that the code behind DosMapCase() is more than a kilobyte in size,
not counting all the internationalization tables.

This leads to an interesting conundrum: if you need crazy
internationalization functions to properly match filenames, but the
internationalization database resides on disk, now you need a
_default_ locale for the filesystem layer, thus now duplicating data
and code further, something with which to bootstrap the desired locale
with!  Ouch.

I agree that case preservation is a good thing; however, a full
case-insensitive implementation is not worth the time investment to
"Get It Right For Everyone."(tm)

--
Samuel A. Falvo II


_______________________________________________ geda-user mailing list geda-user@xxxxxxxxxxxxxx http://www.seul.org/cgi-bin/mailman/listinfo/geda-user