Subject: Re: Pathnames with trailing /
To: NetBSD Kernel Technical Discussion List <tech-kern@NetBSD.org>
From: Lord Isildur <mrfusion@uranium.vaxpower.org>
List: tech-kern
Date: 09/09/2003 08:51:08
> Reversion to tradition == de-evolution.  Time goes forward (except, it
<snip>
> UNIX systems" ( i.e.  something that makes actual progress!  Remember,
> tradition is non-progressive...) makes you look at it as stupid or


This is most definitely not an axiomatic truth. To the contrary, the
unwavering equation of chronological progress with improvement and 
advancement is a huge farce. It is an ideological artefact found in many 
parts of our society, i'll admit.. but it is nonetheless pretty dumb. 
Things must be considered on their own to see if they have merit, not 
just looking at the passage of time and deciding a newer version is 
without hesitation 'better'. 
Now, having said that, personally i consider trailing slashes to be 
fine and dandy when the shell generates them in filename completion, but
something to be kept totally out of the kernel. Should we accept an '@' 
at the end of a name if the file happens to be a symlink, just because 
many versions of ls and some shells use this convention in indicating 
things to users? Accepting a trailing /, or even further, converting a 
trailing / to /. , is something which _only_ works with one kind of file, 
namely, a directory. Ortherwise, the semantics are totally broken. To 
have any kind of special treatment of file types involved with the 
_names_ of files is a very ridiculous concept to me. There are some 
schools of thought which like to semantically bind a file's 'type' to
its name.. unix is not one of them. The kernel, which performs the 
translation, ultimately, of a name into a usable file descriptor, should 
make no special translations dependingon what type of file is being 
referenced. a trailing / should simply be removed: this is a convention 
which works 100% of the time with _all_ files. A / is an illegal 
character in a filename, and a trailing one should simply be ignored, not 
as the default directory translation of /. , but as the null directory 
translation, i.e. the truncation of the trailing / and no directory 
translation taking place. Someone please show me how this is somehow less 
sane than making special cases for the names of directories? We only have 
to deal with this so often because so many shells are in the  business of 
adding the / to names of directories.. 

my .02, 
Isildur