Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: vinschen@redhat.com
Cc: dj@redhat.com, pinskia@gmail.com, brobecker@adacore.com,
	       gcc-patches@gcc.gnu.org, gdb-patches@sourceware.org
Subject: Re: [RFA/libiberty] Darwin has case-insensitive filesystems
Date: Wed, 15 Jun 2011 09:59:00 -0000	[thread overview]
Message-ID: <201106150958.p5F9wJ7x019158@glazunov.sibelius.xs4all.nl> (raw)
In-Reply-To: <20110615082236.GP12140@calimero.vinschen.de> (message from	Corinna Vinschen on Wed, 15 Jun 2011 10:22:36 +0200)

> Date: Wed, 15 Jun 2011 10:22:36 +0200
> From: Corinna Vinschen <vinschen@redhat.com>
> 
> On Jun 14 18:01, DJ Delorie wrote:
> > 
> > > This is wrong as not all FSs are case insensitive.  In fact HFS+ can
> > > be case sensitive too.  I think you need better check than just
> > > saying all Darwin is case insensitive.  This is just like using
> > > FAT32 on Linux.  In fact I think HAVE_DOS_BASED_FILE_SYSTEM is
> > > incorrect also for NTFS as it can also be case sensitive.
> > 
> > There's a difference between case preserving and case sensitive,
> > though, and we really don't have a portable way to detect
> > case-sensitivity on a per-directory basis, sow how can we do better?
> 
> As Andrew points out, NTFS can be case-sensitive as well, and on Windows
> the case-sensitivity vs. case-preserving behaviour can be chosen for
> each file or directory descriptor at the time the file is opened.
> 
> IMHO it's actually a pity that the filename comparison behaves differently
> on different systems.  I think it would make sense to behave identical on
> all systems.  What about this:  Always search case-sensitive.  If file has
> been found, return.  Otherwise, search case-insensitive.

Over my dead body.  On a proper operating system filenames are
case-sensitive.  Your suggestion would create spurious matches.

Even on case-preserving filesystems I'd argue that treating them as
case-sensitive is still the right approach.  If that creates problems,
it means somebody was sloppy and didn't type the proper name of the
file or some piece of code in the toolchain arbitrarily changed the
case of a filename.  I don't mind punishing people for that.  They
have to learn that on a proper operating system file names are
case-sensitive!

If you're still using an operating system with fully case-insensitive
filesystems, I feel very, very sorry for you.

> Talking about case-insensitive comparison, the filename_cmp and
> filename_ncmp functions don't work for multibyte codesets, only for
> singlebyte codesets.  Given that UTF-8 is standard nowadays, shouldn't
> these functions be replaced with multibyte-aware versions?

For UTF-8, that isn't necessary.  Normal string manipulation functions
work just fine on them, since UTF-8 strings don't contain any embedded
NUL characters.  It's only when you try to be too clever about
case-insensitivity that you run into problems.

> Along the same lines, the entire set of safe-ctype functions only
> work for ASCII and EBCDIC...

That really should only matter for displaying filenames.

Anyway.  I really don't care how deep a hole people have dug for
themselves in trying to support Windows in all its various broken
configurations.  But on a native debugger for a UNIX-like system, or a
cross debugger between such systems, filename_cmp() should simply do a
strcmp().


  reply	other threads:[~2011-06-15  9:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-14 21:33 Joel Brobecker
2011-06-14 21:38 ` DJ Delorie
2011-07-01 17:58   ` Joel Brobecker
2011-06-14 21:57 ` Andrew Pinski
2011-06-14 22:02   ` DJ Delorie
2011-06-15  4:25     ` Joel Brobecker
2011-06-15  8:23     ` Corinna Vinschen
2011-06-15  9:59       ` Mark Kettenis [this message]
2011-06-15 10:45         ` Corinna Vinschen
2011-06-15 10:55           ` Pedro Alves
2011-06-15 11:00         ` Robert Dewar
2011-06-15 17:30           ` Eli Zaretskii
2011-06-15 10:46       ` Joseph S. Myers
2011-06-15 10:59         ` Corinna Vinschen
2011-06-15 17:29       ` Eli Zaretskii
2011-06-15 19:42         ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201106150958.p5F9wJ7x019158@glazunov.sibelius.xs4all.nl \
    --to=mark.kettenis@xs4all.nl \
    --cc=brobecker@adacore.com \
    --cc=dj@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=pinskia@gmail.com \
    --cc=vinschen@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox