Subject: re: Upper/lower case - FAT32 partition [OT]
To: 'netbsd-users@netbsd.org' <netbsd-users@netbsd.org>
From: Schwerzmann, Stephan <stephan.schwerzmann@schmid-telecom.ch>
List: netbsd-users
Date: 01/13/2005 15:56:46
>
>Is there a way to mount a FAT32 partition in such 
>way that filenames are interpreted the same way 
>as Windows?
>

  sorry for the noise coming below...

  are you really sure you want it "the same way as windows?"
pleas read along: don't be afraid, no questions there  ;-)


  these days I'm writing a little application which 
should be a specialized, trimmed down GUI frontend 
to SourceSafe (revision control system from M$): the
program internally calls the CLI version of the
SourceSafe client for a usecase where the original
VisualSourceSafe GUI client is not suitable

  while at it, I discovered following strange behaviour
which I'm fairly sure is related to windows filesystem 
behaviour

  the machine running the command is is fitted with
W2k, it runs only client versions of the SSafe programs
  the file effectively resides on a server fitted with
W2003Server - I don't know what filesystem exactly
is in use, but it's one of M$-flavor

  the shell in use is 4NT, not command.com

  the command queries status of a particular directory
(a project in SSafe jargon)

  the last level of directory (SZIPKiosk) has been 
created only a few weeks ago, whereas the forelast
(NTDS) surely is older than 6 years, thus was created
with an older combo of win/SSafe versions -probably 
NT3.5 or NT4- and even on older machines no more in 
operation here

  watch the caseness of the parameter on the command 
line and compare it with the first line of the output:

[w:\projects\ics] alias ss
\\szusers\sourcesafe\win32\ss.exe

[w:\projects\ics] ss
Microsoft (R) Visual SourceSafe Version 6.0d
Copyright (C) Microsoft Corp. 1994-2002. All rights reserved.
Visual SourceSafe Version 6.0d (Build 31222)

[w:\projects\ics] ss Dir -E "$/Projects/NTDS/SZIPKiosk/"
$/Projects/NTDS/SZIPKiosk:
$_net
$_prog

2 item(s)

[w:\projects\ics] ss Dir -E "$/Projects/NTDS/szipkiosk/"
$/Projects/NTDS/SZIPKiosk:
$_net
$_prog

2 item(s)

[w:\projects\ics] ss Dir -E "$/Projects/ntds/SZIPKiosk/"
$/Projects/ntds/SZIPKiosk:
$_net
$_prog

2 item(s)

[w:\projects\ics]


  summing up for the not-so-alert observer:

case 'NTDS':
  input UC		-> output UC
  input lc		-> output lc
  input CaMeL	-> output CaMeL
=> output _always_ idetical to input - out=f(in)

case 'SZIPKiosk':
  input CaMeL	-> output CaMeL
  input lc		-> output CaMeL	!!!
  input UC		-> output CaMeL	!!!
=> output differs from input: it's constant - out=f(k)

hint:
  for some permuted cases of caseness, output is 
not shown above, but has been verified.


AGAIN:
  are you really sure you want case handling for 
M$ filesystems "the same way as windows?"

  this means that not all directory levels behave
the same way...


  three terms come up for describing filesystem 
behaviour in this area:
 - case-sensitive  and its opposite  case-insensitive
 - case-retentive

  no useful combination of them describes the 
behaviour documented above

  put in my words: the above is chaos, and
me dont' like that  :-/


Stephan