9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Re: [9fans] blanks in file names
@ 2002-07-03  8:00 Fco.J.Ballesteros
  2002-07-03 12:00 ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-03  8:00 UTC (permalink / raw)
  To: 9fans

rog@vitanuova.com :
:  /sys/src/cmd/dossrv
:  /sys/src/cmd/9660srv
:  /sys/src/cmd/tapefs
:  /sys/src/cmd/unix/u9fs
:  /sys/src/cmd/ftpfs
:  	convert "space char" to/from external actual space on create,
:  	walk, wstat, stat and directory reads.

One crazy idea I had was to do that translation in the mount driver.
That way the server would be happy to think that it uses space, and
the client plan 9 program would be happy to see 00A0 or whatever
without confussion with the space character. 

lucio@proxima.alt.za : 
:  What I'm saying, is that I'd like to target a kernel that is entirely
:  delimiter agnostic and promote each user application in the same
:  direction as a long-term project.  In the interim, constructs that
:  cast delimiters in stone should be removed wherever possible.

IMHO, the problem is mostly the user programs and not the kernel.
AFAIK, the kernel is fine if you don't use / and \0 as delimiters
(which seems reasonable to me, although some guys might want to use it too). 

But the tradition that blanks separate arguments is deeply embedded in
user programs, perhaps most notably the shell.

Assume the kernel has changed to use openv[], what would the shell
do to deal with spaces vs 00A0s ?




^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-03  8:00 [9fans] blanks in file names Fco.J.Ballesteros
@ 2002-07-03 12:00 ` Lucio De Re
  2002-07-03 19:39   ` rob pike, esq.
  0 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-03 12:00 UTC (permalink / raw)
  To: 9fans

*** ramble alert! ***

On Wed, Jul 03, 2002 at 10:00:55AM +0200, Fco.J.Ballesteros wrote:
> 
> IMHO, the problem is mostly the user programs and not the kernel.
> AFAIK, the kernel is fine if you don't use / and \0 as delimiters
> (which seems reasonable to me, although some guys might want to use it too).
> 
Yes, it would be convenient for the delimiter to be soft, for example.

> But the tradition that blanks separate arguments is deeply embedded in
> user programs, perhaps most notably the shell.
> 
I certainly will not argue with this.

> Assume the kernel has changed to use openv[], what would the shell
> do to deal with spaces vs 00A0s ?
> 
Well, it's not as if I'm the genius here :-)
  
The command line (ignore the shell for a moment as its interpreter)
is a very clear expression of the user's intent, in that there is
a long tradition behind it and, eqaully important(ly), it is visually
unambiguous (within human limits).    The feature one often overlooks
of spaces is that they can be repeated with no change of semantics
or replaced by other whitespace with similar results (cf. sendmail's
configuration file and its tab/space madness).

So it would seem reasonable to retain the convention unchanged in
the familiar contexts and seek alternatives in the new, graphical
environments, for example.  Is there perhaps an undiscovered
technique to express a shell pipeline in a graphical format?  If
so, can new separator rules be brought to apply, escaping some of
the limitations of the traditional approach?

Maybe facetiously, I'd like to point out that the space is the
absence of a character to the eye, if we used a typescript interface
with pixel-dots in the character positions, drag-and-dropping
command line parameters would be automatically quoted by the
background pixel-dots.  That is, until you want a pixel-dot character
in an argument. Sigh.

Still, a background of single quotes would work and be horrendously
ugly, argument completion may become mandatory as the shell now no
longer can provide that function as everything is quoted.

In short, no, I do not have an answer for Nemo, but it seems to me
that bending the conventional interface is not going to work well,
we ought to be looking for new answers, not unlike the ingeniousness
that brought us Plan 9 in the first place and acme as the most
extreme example.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-03 12:00 ` Lucio De Re
@ 2002-07-03 19:39   ` rob pike, esq.
  2002-07-07  4:02     ` Dave
  0 siblings, 1 reply; 81+ messages in thread
From: rob pike, esq. @ 2002-07-03 19:39 UTC (permalink / raw)
  To: 9fans

You guys are all arguing about system stuff but it's the
*user interface* that you're really arguing about, and
breaking.  You are opening a can of worms you will never
get closed again.  Change space! Change the file delimiter!
The shell will never recover.  The system will break.
I will mourn.

-rob



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-03 19:39   ` rob pike, esq.
@ 2002-07-07  4:02     ` Dave
  2002-07-07  5:17       ` arisawa
  2002-07-08  9:48       ` Boyd Roberts
  0 siblings, 2 replies; 81+ messages in thread
From: Dave @ 2002-07-07  4:02 UTC (permalink / raw)
  To: 9fans

How about representing paths internally as connected structures (linked lists, if you will), each of which identifies a particular node.  The method of representation of a given node can be quite flexible (allowing node completion - or as I would term it, cannonization - to be done by the kernel), and user programs could establish their own conventions for dealing with user input and user output (which seems logical to me, since the kernel really isn't intended to be a human user interface, only a program "user" interface).

Here's an off-the-top-of-my-head example to illustrate what I mean.  I'm sure we can come up with a much better system if we all think about this a bit, and figure out how it can be improved (or how it can be replaced with something even better - the purpose of this example is simply to get us thinking in a particular direction that I believe is quite promising):

struct node_t {
 char* name; size_t name_l; /* the node name, and the length of the name */
 /* An error should probably be returned by the kernel if hint is ambiguous. */
 char* hint; /* a regexp that can be fed to attempt to "autocomplete" */
 size_t inode; /* another unique identifier for a node - should we allow it? */
 node_t* next_node;
};

/* canonize(2) converts a node_t chain into its canonical form, expanding all
 *  hints into the corresponding names.  If there are any possible
 *  canonizations and dst is not NULL, dst is filled with node_t chains
 *  representing all the possible canonizations of the node_t chain given.
 * PARAMETERS
 *  src is the node_t chain that you're attempting to canonize.  It's probably
 *   obtained by parsing the input to our shell, and deciding how to interpret
 *   it.
 *  On calling canonize(2), dst should point to a memory block large enough to
 *   accomodate *dst_l node_t structs.  canonize(2) will use the memory block to
 *   store all the nodes of all the node_t chains it creates.
 *  On return from canonize(2), dst_l will be changed to the number of node_t
 *   chains representing possible canonizations (i.e., it's a value-result
 *   parameter), and the first dst_l locations in dst will contain the starting
 *   nodes of the node_t chains representing the possible canonizations.
 * RETURN VALUE
 *  0 on success
 *  -1 on failure, with errno set appropriately
 *  Multiple matches is counted as an error condition, since canonize(2) failed
 *   to canonize the node_t chain.
 *  If dst is too small, dst will be filled as much as possible, but an error
 *   will still be returned.
 * NOTES
 *  Having the self-referencing pointer in node_t refer to the previous node
 *   instead of the next node would allow canonize(2) to save lots of buffer
 *   space in dst for ambiguities that occur deep inside a long node_t chain.
 *   However, I don't believe we should do that, since (a) ambiguities that
 *   occur relatively early in a long node_t chain allow canonize(2) to save
 *   lots of buffer space in dst in the current implementation; and more
 *   importantly, (b) any other routine in the kernel that deals with node_t
 *   chains will have to walk the entire linked list before processing anything
 *   if we implement that change, since the pointer it'll see won't be to the
 *   start of the "pathname," but rather to the end.
 */
int canonize (const node_t* src, node_t dst[], size_t* dst_l);

int new_open (const node_t* path, int flags, int mode);
/* The old open(2) can instead become open(3), with a rather trivial
 *  implementation:
 * int open (const char* path, int flags, int mode) {
 *  split path on unescaped '/' chars;
 *  create a node_t for each of the components obtained above;
 *  link the nodes together into a chain;
 *  return openv(our_node_t_chain,flags,mode);
 * };
 */

/* Here's one final example - the reason I resist the name openv(2): */
int new_execve (const node_t* path, char* const argv[], char* const envp[]);
/* The "v" here refers to a different aspect of the function.  I don't like
 *  overloading the meaning, because we'd have to call our new execve(2)
 *  execvev(2) or something, and that'd be a little insane, IMHO.  That's why I
 *  chose the "new_" prefix.
 * In reality, I'd much rather see the old open(2) be renamed to old_open(2),
 *  and have the new_open(2) be renamed to just plain open(2), damning backward
 *  compatibility (and likewise with the exec(2) family, as well as the stat(2)
 *  call, etc.).  Programs that expect open(2) to be the old open and don't feel
 *  like asking their authors for a rewrite can simply use a runtime library to
 *  rename old_open(2) to open(2) and hide our new open(2) entirely (since
 *  they're obviously not going to use it, anyway).  However, I'm afraid this
 *  type of drastic change may catch some people off-guard.
 */

Dave Cohen <dave@dave.tj>


rob pike, esq. wrote:
> 
> You guys are all arguing about system stuff but it's the
> *user interface* that you're really arguing about, and
> breaking.  You are opening a can of worms you will never
> get closed again.  Change space! Change the file delimiter!
> The shell will never recover.  The system will break.
> I will mourn.
> 
> -rob
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-07  4:02     ` Dave
@ 2002-07-07  5:17       ` arisawa
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
  2002-07-08  9:48       ` Boyd Roberts
  1 sibling, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-07  5:17 UTC (permalink / raw)
  To: 9fans

If '/' is prohibitted as an element of file name and directory name,
then no change to open is required.

Let's assume we accept '/' as an element of names,
then how do you express path in rc?

/bin/awk may be :
1. /bin/awk as it has been.
2. a file named "/bin/awk" in current directory.
3. a file named "bin/awk" in "/"
4. a file named "awk" in "/bin" and "/bin" is in current directory.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
@ 2002-07-07  5:38           ` Dave
  2002-07-07  6:04             ` arisawa
  2002-07-07 16:11           ` Dave
                             ` (5 subsequent siblings)
  6 siblings, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-07  5:38 UTC (permalink / raw)
  To: 9fans

For userland programs, I'd probably vote to simply escape "interesting"
characters that occur within filenames:

1) /bin/awk
2) \/bin\/awk
3) /bin\/awk
4) \/bin/awk

We'd still have to annoy sed, awk, sort, etc. with this approach, but I
don't think that's too bad.  (If we really want, we can establish escape
sequences that don't have these chars in them: e.g., \s for slash, \_
for space, etc.)

Just my penny pair,
Dave Cohen <dave@dave.tj>


arisawa@ar.aichi-u.ac.jp wrote:
> 
> If '/' is prohibitted as an element of file name and directory name,
> then no change to open is required.
> 
> Let's assume we accept '/' as an element of names,
> then how do you express path in rc?
> 
> /bin/awk may be :
> 1. /bin/awk as it has been.
> 2. a file named "/bin/awk" in current directory.
> 3. a file named "bin/awk" in "/"
> 4. a file named "awk" in "/bin" and "/bin" is in current directory.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-07  5:38           ` Dave
@ 2002-07-07  6:04             ` arisawa
  2002-07-07  7:16               ` arisawa
  0 siblings, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-07  6:04 UTC (permalink / raw)
  To: 9fans

Another escape may be a % of that is used in URI.

%	->	%25
/	->	%2f
space	->	%20

and if open can accept these, new_open is not reqired.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-07  6:04             ` arisawa
@ 2002-07-07  7:16               ` arisawa
  0 siblings, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-07  7:16 UTC (permalink / raw)
  To: 9fans

>new_open is not reqired.
I should have added:
But I prefer new_open for kernel interface.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
  2002-07-07  5:38           ` Dave
@ 2002-07-07 16:11           ` Dave
  2002-07-07 16:12           ` Dave
                             ` (4 subsequent siblings)
  6 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-07 16:11 UTC (permalink / raw)
  To: 9fans

The idea behind our new open(2) is to create a cleaner representation
for paths.  If we want, we can patch the old open(2) - which could
become a library function open2(3) - to support one or more of the
userland naming conventions we were discussing.  However, I don't think
the kernel should meddle with userland naming conventions; having the
kernel deal with binary data in linked lists is by far the cleanest
approach proposed thus far, IMHO.  It also opens the door to all sorts
of neat possibilities for path manipulation without string manipulation.
Finally, it gives us the capability of getting away from even the most
elementary requirements in a filesystem (like inodes) at some point in
the future without extensive code changes.  Basically, it's all about
flexibility, a long-time strength of the UNIX system which has only been
improved upon in Plan 9.

 - Dave


arisawa@ar.aichi-u.ac.jp wrote:
> 
> Another escape may be a % of that is used in URI.
> 
> %	->	%25
> /	->	%2f
> space	->	%20
> 
> and if open can accept these, new_open is not reqired.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
  2002-07-07  5:38           ` Dave
  2002-07-07 16:11           ` Dave
@ 2002-07-07 16:12           ` Dave
  2002-07-09 15:31           ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
                             ` (3 subsequent siblings)
  6 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-07 16:12 UTC (permalink / raw)
  To: 9fans

Oops ... I guess I replied a little too early ;-/

 - Dave


arisawa@ar.aichi-u.ac.jp wrote:
> 
> >new_open is not reqired.
> I should have added:
> But I prefer new_open for kernel interface.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-07  4:02     ` Dave
  2002-07-07  5:17       ` arisawa
@ 2002-07-08  9:48       ` Boyd Roberts
  2002-07-08 20:22         ` Dave
  2002-07-08 23:05         ` Berry Kercheval
  1 sibling, 2 replies; 81+ messages in thread
From: Boyd Roberts @ 2002-07-08  9:48 UTC (permalink / raw)
  To: 9fans

Dave wrote:
 > The method of representation of a given node can be quite flexible
 > (allowing node completion - or as I would term it, cannonization
 > - to be done by the kernel),

I thought the making of saints wasn't exactly in the kernel's job 
description.




^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-08  9:48       ` Boyd Roberts
@ 2002-07-08 20:22         ` Dave
  2002-07-09  8:24           ` Boyd Roberts
  2002-07-08 23:05         ` Berry Kercheval
  1 sibling, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-08 20:22 UTC (permalink / raw)
  To: 9fans

It's possible that cannonization should still be done by library routines,
but I'd vote to let the kernel do it anyway for whatever optimizations
it can make (since it's not restricted to the standard syscalls for
file handling).

 - Dave


Boyd Roberts wrote:
> 
> Dave wrote:
>  > The method of representation of a given node can be quite flexible
>  > (allowing node completion - or as I would term it, cannonization
>  > - to be done by the kernel),
> 
> I thought the making of saints wasn't exactly in the kernel's job 
> description.
> 
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-08  9:48       ` Boyd Roberts
  2002-07-08 20:22         ` Dave
@ 2002-07-08 23:05         ` Berry Kercheval
  1 sibling, 0 replies; 81+ messages in thread
From: Berry Kercheval @ 2002-07-08 23:05 UTC (permalink / raw)
  To: 9fans

Boyd Roberts <boyd@strakt.com> writes:

> Dave wrote:
>  > The method of representation of a given node can be quite flexible
>  > (allowing node completion - or as I would term it, cannonization
>  > - to be done by the kernel),
> 
> I thought the making of saints wasn't exactly in the kernel's job
> description.


Naw, making saints is "canonization".  Making artillery is a perfectly
good kernel task.


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  7:50 Fco.J.Ballesteros
  2002-07-09  8:15 ` Lucio De Re
  2002-07-09  8:22 ` [9fans] acme question + diffs for kfs, fs and plumbing arisawa
  0 siblings, 2 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  7:50 UTC (permalink / raw)
  To: 9fans

> We need not distinguishing 'a b' from 'a_b' because there are
> no files that contains ' ' in their names.

I'm glad to be at home again ☺
Things are so easy now...



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
@ 2002-07-09  7:54 Fco.J.Ballesteros
       [not found] ` <Fco.J.Ballesteros@Jul>
  0 siblings, 1 reply; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  7:54 UTC (permalink / raw)
  To: 9fans

>> But above all, I will undo the changes made in this respect to my
>> local system if you guys or the system designers choose a different way.
...
> Undoing kernel-level changes won't be easy, especially when people start

9fs dump
cp blah blah

Sorry, couldn't resist. I just love this system :-)



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  7:50 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
@ 2002-07-09  8:15 ` Lucio De Re
  2002-07-09  8:42   ` arisawa
  2002-07-09  8:22 ` [9fans] acme question + diffs for kfs, fs and plumbing arisawa
  1 sibling, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-09  8:15 UTC (permalink / raw)
  To: 9fans

On Tue, Jul 09, 2002 at 09:50:10AM +0200, Fco.J.Ballesteros wrote:
> 
> > We need not distinguishing 'a b' from 'a_b' because there are
> > no files that contains ' ' in their names.
> 
> I'm glad to be at home again ?
> Things are so easy now...

Wrong!  What if files 'a b' and 'a_b' both exist on the foreign
system?  Back to the drawing board, everyone, the problem needs
another, slightly more focussed iteration.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  7:50 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
  2002-07-09  8:15 ` Lucio De Re
@ 2002-07-09  8:22 ` arisawa
  1 sibling, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-09  8:22 UTC (permalink / raw)
  To: 9fans

I guess that someone (probably nemo) has already fixed acme
so that we can enter into '/n/c/My Document/' using mouse.
Or already fixed in official update?

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-08 20:22         ` Dave
@ 2002-07-09  8:24           ` Boyd Roberts
  2002-07-09 15:25             ` Dave
  0 siblings, 1 reply; 81+ messages in thread
From: Boyd Roberts @ 2002-07-09  8:24 UTC (permalink / raw)
  To: 9fans

Dave wrote:

>It's possible that cannonization should still be done by library routines,
>
Yes, put it in libpope.




^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  8:42 Fco.J.Ballesteros
  2002-07-09  9:28 ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  8:42 UTC (permalink / raw)
  To: 9fans

: Wrong!  What if files 'a b' and 'a_b' both exist on the foreign
: system?  Back to the drawing board, everyone, the problem needs
: another, slightly more focussed iteration.

I'm renaming ' ' with ␣ in u9fs
There's no problem doing that since there's no ␣
in outside file names.


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  8:15 ` Lucio De Re
@ 2002-07-09  8:42   ` arisawa
  2002-07-09  9:21     ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-09  8:42 UTC (permalink / raw)
  To: 9fans

>What if files 'a b' and 'a_b' both exist on the foreign
>system?
Check before you copy, otherwise one is lost.
This problem is always happen when one to one mapping is
absent.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  8:42   ` arisawa
@ 2002-07-09  9:21     ` Lucio De Re
  2002-07-09  9:43       ` arisawa
  0 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-09  9:21 UTC (permalink / raw)
  To: 9fans

On Tue, Jul 09, 2002 at 05:42:47PM +0900, arisawa@ar.aichi-u.ac.jp wrote:
> 
> >What if files 'a b' and 'a_b' both exist on the foreign
> >system?
> Check before you copy, otherwise one is lost.
> This problem is always happen when one to one mapping is
> absent.
> 
Well, for DOS and derivative works, "\" ought to be a perfect
translation <evil grin>.

For Unix, there doesn't seem to be a natural replacement for space.
We could use the suggestion of using URL-style encoding, where %
becomes reserved and _any_ special character can be represented as
%XX.  In fact, is there _any_ service for a foreign filesystem that
would defeat such a scheme?

Would such a shim need to be an option in "mount"?

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  8:42 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
@ 2002-07-09  9:28 ` Lucio De Re
  2002-07-09 11:23   ` andrey mirtchovski
  0 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-09  9:28 UTC (permalink / raw)
  To: 9fans

On Tue, Jul 09, 2002 at 10:42:04AM +0200, Fco.J.Ballesteros wrote:
> 
> I'm renaming ' ' with ? in u9fs
> There's no problem doing that since there's no ?
> in outside file names.

There could be:

-rw-r--r--   1 lucio  staff         0 Jul  9 11:22 t?uch

produced by "touch t\?uch" on my NetBSD host.  This is from
"man 2 intro" on NetBSD 1.5.2:

     File Name
             Names consisting of up to 255 (MAXNAMELEN) characters may be used
             to name an ordinary file, special file, or directory.

             These characters may be selected from the set of all ASCII char-
             acter excluding 0 (NUL) and the ASCII code for `/' (slash).  (The
             parity bit, bit 7, must be 0.)

             Note that it is generally unwise to use `*', `?', `[' or `]' as
             part of file names because of the special meaning attached to
             these characters by the shell.

It needn't be up to date, but it's a safe indicator.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  9:21     ` Lucio De Re
@ 2002-07-09  9:43       ` arisawa
  2002-07-09 10:36         ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-09  9:43 UTC (permalink / raw)
  To: 9fans

>For Unix, there doesn't seem to be a natural replacement for space.
>We could use the suggestion of using URL-style encoding, where %
>becomes reserved and _any_ special character can be represented as
>%XX. In fact, is there _any_ service for a foreign filesystem that
>would defeat such a scheme?
URL-style encoding is powerfull enough and that is internet  
standard.
I believe no system defeats such a scheme.
I don't know why Plan9 rejects to accept this scheme,
if we must (probably we must) deal with outside system,

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  9:43       ` arisawa
@ 2002-07-09 10:36         ` Lucio De Re
  2002-07-09 10:54           ` matt
  0 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-09 10:36 UTC (permalink / raw)
  To: 9fans

On Tue, Jul 09, 2002 at 06:43:17PM +0900, arisawa@ar.aichi-u.ac.jp wrote:
> 
> >For Unix, there doesn't seem to be a natural replacement for space.
> >We could use the suggestion of using URL-style encoding, where %
> >becomes reserved and _any_ special character can be represented as
> >%XX. In fact, is there _any_ service for a foreign filesystem that
> >would defeat such a scheme?
> URL-style encoding is powerfull enough and that is internet  
> standard.
> I believe no system defeats such a scheme.
> I don't know why Plan9 rejects to accept this scheme,
> if we must (probably we must) deal with outside system,
> 
There are only three characters from a foreign system that need
translation: "%", "/" and " ".  Long filenames are already catered
for in 4ed, perhaps we can extend "lnfs" to deal, optionally, with
this translation.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09 10:36         ` Lucio De Re
@ 2002-07-09 10:54           ` matt
  2002-07-09 11:01             ` Liberating the filename (Was: [9fans] acme question + diffs for kfs, fs and plumbing) Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: matt @ 2002-07-09 10:54 UTC (permalink / raw)
  To: 9fans


> There are only three characters from a foreign system that need
> translation: "%", "/" and " ".  Long filenames are already catered
> for in 4ed, perhaps we can extend "lnfs" to deal, optionally, with
> this translation.

is # a consideration?  It's a valid filename char on FreeBSD



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Liberating the filename (Was: [9fans] acme question + diffs for kfs, fs and plumbing)
  2002-07-09 10:54           ` matt
@ 2002-07-09 11:01             ` Lucio De Re
  2002-07-09 11:07               ` arisawa
  0 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-09 11:01 UTC (permalink / raw)
  To: 9fans

On Tue, Jul 09, 2002 at 11:54:21AM +0100, matt wrote:
> 
> is # a consideration?  It's a valid filename char on FreeBSD

I think it's valid in a Plan 9 filename, but if not, it's easy to
expand the list to deal with it.

Which reminds me, if we use

fpath = (usr lucio fname)

as a future description of a filepath, how do we designate the
root?

fpath = ('' usr lucio fname)

perhaps?

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: Liberating the filename (Was: [9fans] acme question + diffs for kfs, fs and plumbing)
  2002-07-09 11:01             ` Liberating the filename (Was: [9fans] acme question + diffs for kfs, fs and plumbing) Lucio De Re
@ 2002-07-09 11:07               ` arisawa
  2002-07-11 14:57                 ` Liberating the filename (Was: [9fans] acme question + diffs forkfs, Douglas A. Gwyn
  0 siblings, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-09 11:07 UTC (permalink / raw)
  To: 9fans

>Which reminds me, if we use
>fpath = (usr lucio fname)
>as a future description of a filepath, how do we designate the
>root?
>fpath = ('' usr lucio fname)
>perhaps?
No, they should be:
fpath = /usr/lucio/fname
as it has been.
No change is required for rc.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09  9:28 ` Lucio De Re
@ 2002-07-09 11:23   ` andrey mirtchovski
  2002-07-09 12:05     ` matt
  0 siblings, 1 reply; 81+ messages in thread
From: andrey mirtchovski @ 2002-07-09 11:23 UTC (permalink / raw)
  To: 9fans

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: TEXT/PLAIN; charset=X-UNKNOWN, Size: 1490 bytes --]

umm,

were you reading this from a unix machine? i think nemo meant that he's
replacing ' ' with a non-ascii rune in p9 (maybe your font
mistranslated it to '?' in the terminal?)...

here's what the original looked like:

I'm renaming ' ' with â^У in u9fs
There's no problem doing that since there's no â^У
in outside file names.

andrey (who thinks nemo's solution looks quite ok)

On Tue, 9 Jul 2002, Lucio De Re wrote:

> On Tue, Jul 09, 2002 at 10:42:04AM +0200, Fco.J.Ballesteros wrote:
> >
> > I'm renaming ' ' with ? in u9fs
> > There's no problem doing that since there's no ?
> > in outside file names.
>
> There could be:
>
> -rw-r--r--   1 lucio  staff         0 Jul  9 11:22 t?uch
>
> produced by "touch t\?uch" on my NetBSD host.  This is from
> "man 2 intro" on NetBSD 1.5.2:
>
>      File Name
>              Names consisting of up to 255 (MAXNAMELEN) characters may be used
>              to name an ordinary file, special file, or directory.
>
>              These characters may be selected from the set of all ASCII char-
>              acter excluding 0 (NUL) and the ASCII code for `/' (slash).  (The
>              parity bit, bit 7, must be 0.)
>
>              Note that it is generally unwise to use `*', `?', `[' or `]' as
>              part of file names because of the special meaning attached to
>              these characters by the shell.
>
> It needn't be up to date, but it's a safe indicator.
>
> ++L
>



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09 11:23   ` andrey mirtchovski
@ 2002-07-09 12:05     ` matt
  0 siblings, 0 replies; 81+ messages in thread
From: matt @ 2002-07-09 12:05 UTC (permalink / raw)
  To: 9fans

>I'm renaming ' ' with â^У in u9fs
>There's no problem doing that since there's no â^У
>in outside file names.

can't see them either but "there is no" could possibly become "oops now
there is"?



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found] ` <Fco.J.Ballesteros@Jul>
@ 2002-07-09 15:23   ` Dave
  2002-07-09 15:29   ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-09 15:23 UTC (permalink / raw)
  To: 9fans

You're not going to do that every time you make a change to the
filesystem.  Besides, that won't undo all the "changes" to all the
new programs that lack complexity because they don't have to reinvent
the wheel.

 - Dave


Fco.J.Ballesteros wrote:
> 
> >> But above all, I will undo the changes made in this respect to my
> >> local system if you guys or the system designers choose a different way.
> ...
> > Undoing kernel-level changes won't be easy, especially when people start
> 
> 9fs dump
> cp blah blah
> 
> Sorry, couldn't resist. I just love this system :-)
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-09  8:24           ` Boyd Roberts
@ 2002-07-09 15:25             ` Dave
  0 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-09 15:25 UTC (permalink / raw)
  To: 9fans

Whoops ... I misspelled that one.  A more appropriate comment for you,
though, would have been to put it in libarms ;-P

 - Dave


Boyd Roberts wrote:
> 
> Dave wrote:
> 
> >It's possible that cannonization should still be done by library routines,
> >
> Yes, put it in libpope.
> 
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
       [not found] ` <Fco.J.Ballesteros@Jul>
  2002-07-09 15:23   ` Dave
@ 2002-07-09 15:29   ` Dave
  2002-07-10 15:57   ` Dave
  2002-07-10 16:02   ` [9fans] blanks in file names Dave
  3 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-09 15:29 UTC (permalink / raw)
  To: 9fans

AFAIK, VFAT uses Unicode for its long file names, so I see no reason
why ␣ shouldn't be allowed there.

 - Dave


Fco.J.Ballesteros wrote:
> 
> : Wrong!  What if files 'a b' and 'a_b' both exist on the foreign
> : system?  Back to the drawing board, everyone, the problem needs
> : another, slightly more focussed iteration.
> 
> I'm renaming ' ' with ␣ in u9fs
> There's no problem doing that since there's no ␣
> in outside file names.
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
                             ` (2 preceding siblings ...)
  2002-07-07 16:12           ` Dave
@ 2002-07-09 15:31           ` Dave
  2002-07-09 22:15             ` arisawa
  2002-07-10 21:58           ` [9fans] blanks in file names Dave
                             ` (2 subsequent siblings)
  6 siblings, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-09 15:31 UTC (permalink / raw)
  To: 9fans

I think that'll do more to break current conventions than redoing the
kernel to allow for analogues of our current conventions.

 - Dave


arisawa@ar.aichi-u.ac.jp wrote:
> 
> >What if files 'a b' and 'a_b' both exist on the foreign
> >system?
> Check before you copy, otherwise one is lost.
> This problem is always happen when one to one mapping is
> absent.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-09 15:31           ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
@ 2002-07-09 22:15             ` arisawa
  0 siblings, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-09 22:15 UTC (permalink / raw)
  To: 9fans

Copy Restriction:
	Check before you copy, otherwise some of them may be lost
Import Resrinction:
	Files containg spaces in name is harmful, so they may be  
lost.
Export Restriction:
	Winland is against freedom, so some of files may be lost.

>I think that'll do more to break current conventions than redoing  
the
>kernel to allow for analogues of our current conventions.
>
> - Dave
>
>
>arisawa@ar.aichi-u.ac.jp wrote:
>>
>> >What if files 'a b' and 'a_b' both exist on the foreign
>> >system?
>> Check before you copy, otherwise one is lost.
>> This problem is always happen when one to one mapping is
>> absent.
>>
>> Kenji Arisawa
>>



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-10  7:57 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-10  7:57 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 97 bytes --]

There's no reason.
I though of using ☺, but I think it's more
usual in file names than ␣.

[-- Attachment #2: Type: message/rfc822, Size: 2148 bytes --]

From: Dave <dave@dave.tj>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Tue, 09 Jul 2002 11:29:45 -0400 (EDT)
Message-ID: <200207091529.g69FTj832499@dave2.dave.tj>

AFAIK, VFAT uses Unicode for its long file names, so I see no reason
why ␣ shouldn't be allowed there.

 - Dave


Fco.J.Ballesteros wrote:
> 
> : Wrong!  What if files 'a b' and 'a_b' both exist on the foreign
> : system?  Back to the drawing board, everyone, the problem needs
> : another, slightly more focussed iteration.
> 
> I'm renaming ' ' with ␣ in u9fs
> There's no problem doing that since there's no ␣
> in outside file names.
> 

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
@ 2002-07-10  8:00 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-10  8:00 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 277 bytes --]

Really, I make changes now and then; many times after
trying the resulting binaries I change my mind and
use yesterday + cp to restore the source back to its
previous state. Some other times I bind temporary directories
on top of the sources and make the changes there.


[-- Attachment #2: Type: message/rfc822, Size: 2260 bytes --]

From: Dave <dave@dave.tj>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] blanks in file names
Date: Tue, 09 Jul 2002 11:23:25 -0400 (EDT)
Message-ID: <200207091523.g69FNP431828@dave2.dave.tj>

You're not going to do that every time you make a change to the
filesystem.  Besides, that won't undo all the "changes" to all the
new programs that lack complexity because they don't have to reinvent
the wheel.

 - Dave


Fco.J.Ballesteros wrote:
> 
> >> But above all, I will undo the changes made in this respect to my
> >> local system if you guys or the system designers choose a different way.
> ...
> > Undoing kernel-level changes won't be easy, especially when people start
> 
> 9fs dump
> cp blah blah
> 
> Sorry, couldn't resist. I just love this system :-)
> 

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
       [not found] ` <Fco.J.Ballesteros@Jul>
  2002-07-09 15:23   ` Dave
  2002-07-09 15:29   ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
@ 2002-07-10 15:57   ` Dave
  2002-07-10 16:02   ` [9fans] blanks in file names Dave
  3 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-10 15:57 UTC (permalink / raw)
  To: 9fans

...so clearly, there's no way to distinguish between a file 'a b' and a
file 'a␣b' in a remote filesystem if we replace ' ' with '␣' upon
importing to our system :-(

 - Dave


Fco.J.Ballesteros wrote:
> 
> This is a multi-part message in MIME format.
> --upas-gyhymjcadgjxkouzirlpoqbniv
> Content-Disposition: inline
> Content-Type: text/plain; charset="UTF-8"
> Content-Transfer-Encoding: 8bit
> 
> There's no reason.
> I though of using ☺, but I think it's more
> usual in file names than ␣.
> 
> --upas-gyhymjcadgjxkouzirlpoqbniv
> Content-Type: message/rfc822
> Content-Disposition: inline
> 
> Received: from mail.cse.psu.edu ([130.203.4.6]) by aquamar; Tue Jul  9 17:41:20 MDT 2002
> Received: from psuvax1.cse.psu.edu (psuvax1.cse.psu.edu [130.203.18.6])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP
> 	id 42B8F19A58; Tue,  9 Jul 2002 11:41:09 -0400 (EDT)
> Delivered-To: 9fans@cse.psu.edu
> Received: from mta9.srv.hcvlny.cv.net (mta9.srv.hcvlny.cv.net [167.206.5.133])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP id 3818A19980
> 	for <9fans@cse.psu.edu>; Tue,  9 Jul 2002 11:40:44 -0400 (EDT)
> Received: from dave2.dave.tj (ool-4351482a.dyn.optonline.net [67.81.72.42])
>  by mta9.srv.hcvlny.cv.net (iPlanet Messaging Server 5.2 (built Feb 21 2002))
>  with ESMTP id <0GYZ00D3UMV2XY@mta9.srv.hcvlny.cv.net> for 9fans@cse.psu.edu;
>  Tue, 09 Jul 2002 11:25:50 -0400 (EDT)
> Received: (from dave@localhost)	by dave2.dave.tj (8.10.2/8.10.2)
>  id g69FTj832499	for 9fans@cse.psu.edu; Tue, 09 Jul 2002 15:29:45 +0000 (GMT)
> From: Dave <dave@dave.tj>
> Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
> In-reply-to: <adc08ee0f9815311c935f3784f2ed48f@plan9.escet.urjc.es> from
>  <Fco.J.Ballesteros@Jul>
> To: 9fans@cse.psu.edu
> Message-id: <200207091529.g69FTj832499@dave2.dave.tj>
> MIME-version: 1.0
> X-Mailer: ELM [version 2.5 PL3]
> Content-type: text/plain; charset=iso-8859-1
> Content-transfer-encoding: 8BIT
> Sender: 9fans-admin@cse.psu.edu
> Errors-To: 9fans-admin@cse.psu.edu
> X-BeenThere: 9fans@cse.psu.edu
> X-Mailman-Version: 2.0.11
> Precedence: bulk
> Reply-To: 9fans@cse.psu.edu
> List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
> List-Archive: <https://lists.cse.psu.edu/archives/9fans/>
> Date: Tue, 09 Jul 2002 11:29:45 -0400 (EDT)
> 
> AFAIK, VFAT uses Unicode for its long file names, so I see no reason
> why ␣ shouldn't be allowed there.
> 
>  - Dave
> 
> 
> Fco.J.Ballesteros wrote:
> > 
> > : Wrong!  What if files 'a b' and 'a_b' both exist on the foreign
> > : system?  Back to the drawing board, everyone, the problem needs
> > : another, slightly more focussed iteration.
> > 
> > I'm renaming ' ' with ␣ in u9fs
> > There's no problem doing that since there's no ␣
> > in outside file names.
> > 
> 
> --upas-gyhymjcadgjxkouzirlpoqbniv--
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found] ` <Fco.J.Ballesteros@Jul>
                     ` (2 preceding siblings ...)
  2002-07-10 15:57   ` Dave
@ 2002-07-10 16:02   ` Dave
  2002-07-10 20:59     ` FJ Ballesteros
  3 siblings, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-10 16:02 UTC (permalink / raw)
  To: 9fans

You're missing the point: With the changes I propose to our kernel,
certain programs will be able to have much simpler logic.  In addition to
undoing the changes in the kernel, you'd have to rewrite the "offending"
program - only manual recoding can accomplish that.

 - Dave


Fco.J.Ballesteros wrote:
> 
> This is a multi-part message in MIME format.
> --upas-xuojoahyqverhjcrtrjsvosjtu
> Content-Disposition: inline
> Content-Type: text/plain; charset="US-ASCII"
> Content-Transfer-Encoding: 7bit
> 
> Really, I make changes now and then; many times after
> trying the resulting binaries I change my mind and
> use yesterday + cp to restore the source back to its
> previous state. Some other times I bind temporary directories
> on top of the sources and make the changes there.
> 
> 
> --upas-xuojoahyqverhjcrtrjsvosjtu
> Content-Type: message/rfc822
> Content-Disposition: inline
> 
> Received: from mail.cse.psu.edu ([130.203.4.6]) by aquamar; Tue Jul  9 17:22:23 MDT 2002
> Received: from psuvax1.cse.psu.edu (psuvax1.cse.psu.edu [130.203.18.6])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP
> 	id E683A19A1C; Tue,  9 Jul 2002 11:22:09 -0400 (EDT)
> Delivered-To: 9fans@cse.psu.edu
> Received: from mta1.srv.hcvlny.cv.net (mta1.srv.hcvlny.cv.net [167.206.5.4])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP id 437E71998C
> 	for <9fans@cse.psu.edu>; Tue,  9 Jul 2002 11:21:03 -0400 (EDT)
> Received: from dave2.dave.tj (ool-4351482a.dyn.optonline.net [67.81.72.42])
>  by mta1.srv.hcvlny.cv.net
>  (iPlanet Messaging Server 5.2 HotFix 0.3 (built May 13 2002))
>  with ESMTP id <0GYZ00FXXMNYMH@mta1.srv.hcvlny.cv.net> for 9fans@cse.psu.edu;
>  Tue, 09 Jul 2002 11:21:34 -0400 (EDT)
> Received: (from dave@localhost)	by dave2.dave.tj (8.10.2/8.10.2)
>  id g69FNP431828	for 9fans@cse.psu.edu; Tue, 09 Jul 2002 15:23:25 +0000 (GMT)
> From: Dave <dave@dave.tj>
> Subject: Re: [9fans] blanks in file names
> In-reply-to: <c55e55e304beec4b477c71af7fa9c712@plan9.escet.urjc.es> from
>  <Fco.J.Ballesteros@Jul>
> To: 9fans@cse.psu.edu
> Message-id: <200207091523.g69FNP431828@dave2.dave.tj>
> MIME-version: 1.0
> X-Mailer: ELM [version 2.5 PL3]
> Content-type: text/plain; charset=us-ascii
> Content-transfer-encoding: 7BIT
> Sender: 9fans-admin@cse.psu.edu
> Errors-To: 9fans-admin@cse.psu.edu
> X-BeenThere: 9fans@cse.psu.edu
> X-Mailman-Version: 2.0.11
> Precedence: bulk
> Reply-To: 9fans@cse.psu.edu
> List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
> List-Archive: <https://lists.cse.psu.edu/archives/9fans/>
> Date: Tue, 09 Jul 2002 11:23:25 -0400 (EDT)
> 
> You're not going to do that every time you make a change to the
> filesystem.  Besides, that won't undo all the "changes" to all the
> new programs that lack complexity because they don't have to reinvent
> the wheel.
> 
>  - Dave
> 
> 
> Fco.J.Ballesteros wrote:
> > 
> > >> But above all, I will undo the changes made in this respect to my
> > >> local system if you guys or the system designers choose a different way.
> > ...
> > > Undoing kernel-level changes won't be easy, especially when people start
> > 
> > 9fs dump
> > cp blah blah
> > 
> > Sorry, couldn't resist. I just love this system :-)
> > 
> 
> --upas-xuojoahyqverhjcrtrjsvosjtu--
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
@ 2002-07-10 18:27 David Gordon Hogan
  2002-07-10 20:56 ` arisawa
  0 siblings, 1 reply; 81+ messages in thread
From: David Gordon Hogan @ 2002-07-10 18:27 UTC (permalink / raw)
  To: 9fans

Isn't this thread dead yet?



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 18:27 [9fans] blanks in file names David Gordon Hogan
@ 2002-07-10 20:56 ` arisawa
  0 siblings, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-10 20:56 UTC (permalink / raw)
  To: 9fans

>Isn't this thread dead yet?
It seems ...
So I asked: Is it important?
So I said: My preference is just s/ /_/g
So I proposed: uq (unquote)
Any way, I dislike ' ' in file name.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 16:02   ` [9fans] blanks in file names Dave
@ 2002-07-10 20:59     ` FJ Ballesteros
  2002-07-10 21:51       ` Dave
  0 siblings, 1 reply; 81+ messages in thread
From: FJ Ballesteros @ 2002-07-10 20:59 UTC (permalink / raw)
  To: 9fans



Dave ha escrito:
> 
> You're missing the point: With the changes I propose to our kernel,
> certain programs will be able to have much simpler logic.  In addition to
> undoing the changes in the kernel, you'd have to rewrite the "offending"
> program - only manual recoding can accomplish that.
> 

No offending program if there's no native ' ' in file names. Just
have to cope with those still seen from the outside world.
I have a working trfs that deals with most cases here (still will miss
names
inside files). I'll send it tomorrow.

Changing open just because of this would mean to rethink many tools
and nobody knows (because there's no experience with your proposed
system)
if it would introduce other problems. So I'd vote no.


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 20:59     ` FJ Ballesteros
@ 2002-07-10 21:51       ` Dave
  2002-07-10 22:22         ` Dan Cross
  0 siblings, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-10 21:51 UTC (permalink / raw)
  To: 9fans

The "offending" program in this case is the program that's so much simpler
because it's using the new kernel interface rather than the old one.

Nothing has to be rethought because all my proposed changes do is restore
the strict seperation between nodes in a filename (something UNIX -
and therefore Plan 9 - likes to rely on).

There's plenty of experience with other systems working on linked lists
(including a huge amount of kernel code in my Linux box that I'm typing
from, ATM).  Most of the problems with linked lists have been pretty
well documented, by now.

 - Dave



FJ Ballesteros wrote:
> 
> 
> 
> Dave ha escrito:
> > 
> > You're missing the point: With the changes I propose to our kernel,
> > certain programs will be able to have much simpler logic.  In addition to
> > undoing the changes in the kernel, you'd have to rewrite the "offending"
> > program - only manual recoding can accomplish that.
> > 
> 
> No offending program if there's no native ' ' in file names. Just
> have to cope with those still seen from the outside world.
> I have a working trfs that deals with most cases here (still will miss
> names
> inside files). I'll send it tomorrow.
> 
> Changing open just because of this would mean to rethink many tools
> and nobody knows (because there's no experience with your proposed
> system)
> if it would introduce other problems. So I'd vote no.
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
                             ` (3 preceding siblings ...)
  2002-07-09 15:31           ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
@ 2002-07-10 21:58           ` Dave
  2002-07-10 22:38             ` arisawa
  2002-07-10 22:42             ` [9fans] " Jim Choate
  2002-07-11  5:10           ` [9fans] " Dave
  2002-07-14 18:32           ` Dave
  6 siblings, 2 replies; 81+ messages in thread
From: Dave @ 2002-07-10 21:58 UTC (permalink / raw)
  To: 9fans

If I had to vote a priori, blanks would certainly be a no-go for
filenames.  However, the pressure cooker has already burst, and our
chicken is headed straight towards the ceiling.  Getting rid of spaces in
filenames is not much of an option, if we want to be able to get along
in the wide world of non-space-restricted systems.  (One simple way to
realize that s/ /anything/g isn't a very clean option is to note that
different domains are going to require humans to determine how to do the
conversion (and its inverse) and in what contexts to do each of the above.
Maintaining an FTP mirror, for instance, is not going to be easy at all.)
Rethinking our system to fully support blanks, IMHO, is the only way to
keep our chicken from splattering all over the kitchen ;-/

 - Dave


arisawa@ar.aichi-u.ac.jp wrote:
> 
> >Isn't this thread dead yet?
> It seems ...
> So I asked: Is it important?
> So I said: My preference is just s/ /_/g
> So I proposed: uq (unquote)
> Any way, I dislike ' ' in file name.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 21:51       ` Dave
@ 2002-07-10 22:22         ` Dan Cross
  2002-07-10 23:01           ` Dave
  0 siblings, 1 reply; 81+ messages in thread
From: Dan Cross @ 2002-07-10 22:22 UTC (permalink / raw)
  To: 9fans

> The "offending" program in this case is the program that's so much simpler
> because it's using the new kernel interface rather than the old one.

I don't think it would be simpler; I think it would be more
complicated.  You're replacing a simple, textual representation of an
object with a binary representation; you have to have some way to do
canonicalization in the common case, but even that path is thrwat with
danger.

> Nothing has to be rethought because all my proposed changes do is restore
> the strict seperation between nodes in a filename (something UNIX -
> and therefore Plan 9 - likes to rely on).

But they change an already well-established interface.  Have you
thought through the implications of this, in all their macabre glory?
What you propose--changing the most basic interface for opening a file
in a system where everything looks more or less like a file--has huge
implications.  And all this just to support a strange edge-case, which
is adequately solved by substitutions in the filename.  Sure, it's not
perfect in some weird pathological case, but how often is this going to
come up in practice?  Remember: Optimize for the common case.

> There's plenty of experience with other systems working on linked lists
> (including a huge amount of kernel code in my Linux box that I'm typing
> from, ATM).  Most of the problems with linked lists have been pretty
> well documented, by now.

It's the huge amount of kernel code that Plan 9 is trying to avoid.

Being forced to conform to a lot of external interfaces *will* kill the
system.

Besides, the point Nemo was trying to make umpteen posts ago was that,
yes, you can roll back changes using the dump filesystem, which gives
you temporal mobility.  He is right.

	- Dan C.



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 21:58           ` [9fans] blanks in file names Dave
@ 2002-07-10 22:38             ` arisawa
  2002-07-10 22:42             ` [9fans] " Jim Choate
  1 sibling, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-10 22:38 UTC (permalink / raw)
  To: 9fans

Dave wrote:
>If I had to vote a priori, blanks would certainly be a no-go for
>filenames.  However, the pressure cooker has already burst, and our
>...
>keep our chicken from splattering all over the kitchen ;-/

Important or not? That is the problem.
If we agree it is important, we must eat spaes.
Then my chice is to cook spaces so that stomach is not broken.
How to cook?
I believe the first discussion should be forcussed
to expression of path considering in future needs.
I believe you and I share much opinion.

Kenji Arisawa




^ permalink raw reply	[flat|nested] 81+ messages in thread

* [9fans] Re: blanks in file names
  2002-07-10 21:58           ` [9fans] blanks in file names Dave
  2002-07-10 22:38             ` arisawa
@ 2002-07-10 22:42             ` Jim Choate
  2002-07-11  5:08               ` Dave
  1 sibling, 1 reply; 81+ messages in thread
From: Jim Choate @ 2002-07-10 22:42 UTC (permalink / raw)
  To: 9fans; +Cc: hangar18-general


On Wed, 10 Jul 2002, Dave wrote:

> If I had to vote a priori, blanks would certainly be a no-go for
> filenames.  However, the pressure cooker has already burst, and our
> chicken is headed straight towards the ceiling.  Getting rid of spaces in
> filenames is not much of an option, if we want to be able to get along
> in the wide world of non-space-restricted systems.

Um, strictly speaking for most OS'es (and logically in general) the
'string' that represents the filename canonicaly -should- be (usually) ""
delimited.

In other words,

ls filename.foo

should really be,

ls "filename.foo"

or perhaps,

ls "file/"Bill/".foo"

The fact that the OS allows one to drop them (assuming you don't use
things like blanks in filenames) is really a courtesy of the shell
implimentation. That's where it should stay. Why the filesystem would
-ever- need the filename for internal operations would, at least to my
mind, be a major error in implimentation. Other than in 'friendly name'
situations (ie UI related) the system should be oblivious of the filename.

If it's a valid character in the character set, it should be allowed in a
string (except for logical issues - eg printing some non-printable) should
print some sort of symbol allowing one to recognize this. This
'conversion' should also stay strictly in the UI related code. To do
otherwise raises a host of issues about side effects and special cases w/
regard to sting handling libraries. To not allow spaces in filenames only
makes the world more complicated. It also destroys a layer of generality,
and that is -almost always- a BAD thing.

With respect to filenames, it's a string of -reasonably- unique (re issues
of location and such) 1's and 0's to the OS. It doesn't really 'mean'
anything to the OS::File System. It's the User::UI that it matters to.

User::UI::OS::File System

Leave the problem where it belongs, in the cli/shell.


 --
    ____________________________________________________________________

              When I die, I would like to be born again as me.

                                            Hugh Hefner
     ravage@ssz.com                                         www.ssz.com
     jchoate@open-forge.org                          www.open-forge.org

    --------------------------------------------------------------------




^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 22:22         ` Dan Cross
@ 2002-07-10 23:01           ` Dave
  2002-07-11  2:00             ` Dan Cross
  2002-07-11 10:43             ` Ish Rattan
  0 siblings, 2 replies; 81+ messages in thread
From: Dave @ 2002-07-10 23:01 UTC (permalink / raw)
  To: 9fans

Reply inline:

 - Dave

Dan Cross wrote:
> 
> > The "offending" program in this case is the program that's so much simpler
> > because it's using the new kernel interface rather than the old one.
> 
> I don't think it would be simpler; I think it would be more
> complicated.  You're replacing a simple, textual representation of an
> object with a binary representation; you have to have some way to do
> canonicalization in the common case, but even that path is thrwat with
> danger.
Manipulating text with all sorts of dynamic buffers is substantially
more complicated than simply replacing a node in a linked list.
The canonicalization is all being done by the kernel, or a library.

> 
> > Nothing has to be rethought because all my proposed changes do is restore
> > the strict seperation between nodes in a filename (something UNIX -
> > and therefore Plan 9 - likes to rely on).
> 
> But they change an already well-established interface.  Have you
> thought through the implications of this, in all their macabre glory?
> What you propose--changing the most basic interface for opening a file
> in a system where everything looks more or less like a file--has huge
> implications.  And all this just to support a strange edge-case, which
> is adequately solved by substitutions in the filename.  Sure, it's not
> perfect in some weird pathological case, but how often is this going to
> come up in practice?  Remember: Optimize for the common case.
Optimization for the common case is good, but creating a system where the
uncommon case will cause major mayhem at the system level is evidence
of a very unclean approach.  (When you consider the reasoning behind
the problem (namely, spaces and slashes in filenames kill our ability
to seperate nodes easily), it makes perfect sense that our solution
isn't very clean.  The only clean solution is to restore the ancient
UNIX ideal of being able to easily seperate nodes.  In other words,
either kill spaces altogether and damn interoperability, or promote
spaces to full citizenship.)

> 
> > There's plenty of experience with other systems working on linked lists
> > (including a huge amount of kernel code in my Linux box that I'm typing
> > from, ATM).  Most of the problems with linked lists have been pretty
> > well documented, by now.
> 
> It's the huge amount of kernel code that Plan 9 is trying to avoid.
String manipulation is more complex than linked list manipulation.

> 
> Being forced to conform to a lot of external interfaces *will* kill the
> system.
I don't dispute that point, but the interface I propose is most unlike
any other interface currently known to man (not trying to conform to any
external interface).  I'm simply pointing out that failing to provide
at least a 1-1 mapping with capabilities that are already widely used
in external systems that must interoperate with ours *will* kill us.

> 
> Besides, the point Nemo was trying to make umpteen posts ago was that,
> yes, you can roll back changes using the dump filesystem, which gives
> you temporal mobility.  He is right.
You can do a lot of things if you're prepared to get involved in the
functions that your OS should be doing automatically.  Try running an FTP
mirror to a busy site that way, though, and you'll quickly discover why
automation is a good thing.  The worst part about our system is that the
"solution" you eventually find for an FTP mirror will be useless on an
HTTP proxy.  When "solutions" need to be modified for each individual
application, you know that the system isn't clean.

> 
> 	- Dan C.
> 
 - Dave C. :-)



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 23:01           ` Dave
@ 2002-07-11  2:00             ` Dan Cross
  2002-07-11  6:14               ` Dave
  2002-07-11 10:43             ` Ish Rattan
  1 sibling, 1 reply; 81+ messages in thread
From: Dan Cross @ 2002-07-11  2:00 UTC (permalink / raw)
  To: 9fans

> > I don't think it would be simpler; I think it would be more
> > complicated.  You're replacing a simple, textual representation of an
> > object with a binary representation; you have to have some way to do
> > canonicalization in the common case, but even that path is thrwat with
> > danger.
> 
> Manipulating text with all sorts of dynamic buffers is substantially
> more complicated than simply replacing a node in a linked list.
> The canonicalization is all being done by the kernel, or a library.

How could this possibly be in the kernel?  After all, you're talking
about changing the interface to open a file; I pass a file name via
some mechanism to a user level application that wants to call open on
it.  What's it supposed to do?  Does the shell now pass a linked list
as an argument to main somehow?  How does the system know that it's a
file?  Do we have to replace the argument vector with some more complex
representation that encapsulates type information (e.g., this argument
is a file, this next one is a string, etc)?  Does the shell change to
represent file names as lists?  Does the user suffer the indignation of
having to specify a list of path components to represent a file?  Or do
we provide a canonicalization library for shell arguments, in which
case, you have the exact same problem as supporting spaces now, since
most programs are going to expect to get file name arguments in the
canonical representation?  If you do that, who calls it?  The shell or
the library?

I for one am going to be *very* unhappy if I have to type:

	cat ('' 'usr' 'cross' 'file')

Instead of:

	cat /usr/cross/file

Or do you make every program that wants to open a file call a function
to canonicalize a filename into the internal format before it calls
open?

> > But they change an already well-established interface.  Have you
> > thought through the implications of this, in all their macabre glory?
> > What you propose--changing the most basic interface for opening a file
> > in a system where everything looks more or less like a file--has huge
> > implications.  And all this just to support a strange edge-case, which
> > is adequately solved by substitutions in the filename.  Sure, it's not
> > perfect in some weird pathological case, but how often is this going to
> > come up in practice?  Remember: Optimize for the common case.
> 
> Optimization for the common case is good, but creating a system where the
> uncommon case will cause major mayhem at the system level is evidence
> of a very unclean approach.  (When you consider the reasoning behind
> the problem (namely, spaces and slashes in filenames kill our ability
> to seperate nodes easily), it makes perfect sense that our solution
> isn't very clean.  The only clean solution is to restore the ancient
> UNIX ideal of being able to easily seperate nodes.  In other words,
> either kill spaces altogether and damn interoperability, or promote
> spaces to full citizenship.)

But Plan 9 can handle this.

One of the beautiful things about Plan 9 is that it provides a solution
that's workable with little effort.  The various substitution file
systems provide a workable solution without introducing any additional
complexity.  If you want a total--100% complete--solution, then a
`urlifyfs' can be written that uses URL escaping as a canonical
representation, or something similar.  The system interface doesn't
have to be changed, though.  *That* is the mark of a clean system
design.

The Unix `ideal' was eliminated because it was overly complex, without
a commensurate gain in functionality.  Besides, the inode system didn't
really fit in well with the idea of 9p.

> > > There's plenty of experience with other systems working on linked lists
> > > (including a huge amount of kernel code in my Linux box that I'm typing
> > > from, ATM).  Most of the problems with linked lists have been pretty
> > > well documented, by now.
> > 
> > It's the huge amount of kernel code that Plan 9 is trying to avoid.
> 
> String manipulation is more complex than linked list manipulation.

No, it's really not.  Consider passing a linked list as an argument to
a function you're calling, versus passing an argument vector of
strings.  How do you do that?  Do you muck with all the C startup code
to make sure you get the linking and so right in such a way that the
list is in a contiguous memory block so it doesn't get stomped by the
image read by exec?  Do you pass each node in the list to main as a
seperate string in the argument vector?  If so, how do you tell when
a file name ends and another begins?  Do we introduce some convention
for delineating the beginning and ends of a filename in a list
representation, effectively creating a protocol that every program has
to follow to take a filename as an argument?  Surely the former option
is significantly easier....

Consider a possible canonicalization routine that might be used in
a substitution FS:

char *
canonical(char *str)
{
	char	*p, *s, *t;
 
	if (str == nil || (p = malloc(2 * strlen(str) + 1)) == nil) {
		return(nil);
	}
	for (s = str, t = p; *s != '\0'; s++, t++) {
		if (isspace(*s)) {
			*t++ = '+';	/*  Or whatever.  */
			*t = '2';
			continue;
		}
		*t = *s;
	}
	if ((s = realloc(p, strlen(p) + 1)) == nil) {
		free(p);
	}
 
	return(s);
}

That's pretty straight-forward; just inserting into a linked list
would be just as hard.  Doing so in a contiguous memory block would
be, I think harder (you'd have to step over the list, keep a count
of how much memory you needed, then allocate the list, copy each
node and set the links.  That's a pain).

> > Being forced to conform to a lot of external interfaces *will* kill the
> > system.
> 
> I don't dispute that point, but the interface I propose is most unlike
> any other interface currently known to man (not trying to conform to any
> external interface).  I'm simply pointing out that failing to provide
> at least a 1-1 mapping with capabilities that are already widely used
> in external systems that must interoperate with ours *will* kill us.

Well, if you *really* want 100% 1 to 1 mappings, use the URL encoding
others have mentioned, or something similar.  As it is, it seems that
this mostly works; about 80% of what's needed is there.

> > Besides, the point Nemo was trying to make umpteen posts ago was that,
> > yes, you can roll back changes using the dump filesystem, which gives
> > you temporal mobility.  He is right.
> 
> You can do a lot of things if you're prepared to get involved in the
> functions that your OS should be doing automatically.  Try running an FTP
> mirror to a busy site that way, though, and you'll quickly discover why
> automation is a good thing.  The worst part about our system is that the
> "solution" you eventually find for an FTP mirror will be useless on an
> HTTP proxy.  When "solutions" need to be modified for each individual
> application, you know that the system isn't clean.

Yesterday is a wonderful tool, and can be scripted to do whatever you
want.  Eg, copying all files that changed on June 14th back to the
cache isn't very diffcult.

I don't see what running a big FTP mirror has to do with it.  netlib is
a big FTP site; it runs on Plan 9.  Maybe it's not a mirror, but so what?
I also don't see how you can't leverage whatever you did for FTP with
HTTP.  The substitution-style FS gives you a *lot* of flexibility in this
area.

	- Dan C.



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] Re: blanks in file names
  2002-07-10 22:42             ` [9fans] " Jim Choate
@ 2002-07-11  5:08               ` Dave
  0 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-11  5:08 UTC (permalink / raw)
  To: 9fans

If you're going to rewrite the UI programs (like ls) to print filenames
in human-readable format, you'll need to make an option in each program
that outputs filenames to make it output the names in human-readable or
other-program-readable format ... yucky. . .

 - Dave


Jim Choate wrote:
> 
> 
> On Wed, 10 Jul 2002, Dave wrote:
> 
> > If I had to vote a priori, blanks would certainly be a no-go for
> > filenames.  However, the pressure cooker has already burst, and our
> > chicken is headed straight towards the ceiling.  Getting rid of spaces in
> > filenames is not much of an option, if we want to be able to get along
> > in the wide world of non-space-restricted systems.
> 
> Um, strictly speaking for most OS'es (and logically in general) the
> 'string' that represents the filename canonicaly -should- be (usually) ""
> delimited.
> 
> In other words,
> 
> ls filename.foo
> 
> should really be,
> 
> ls "filename.foo"
> 
> or perhaps,
> 
> ls "file/"Bill/".foo"
> 
> The fact that the OS allows one to drop them (assuming you don't use
> things like blanks in filenames) is really a courtesy of the shell
> implimentation. That's where it should stay. Why the filesystem would
> -ever- need the filename for internal operations would, at least to my
> mind, be a major error in implimentation. Other than in 'friendly name'
> situations (ie UI related) the system should be oblivious of the filename.
> 
> If it's a valid character in the character set, it should be allowed in a
> string (except for logical issues - eg printing some non-printable) should
> print some sort of symbol allowing one to recognize this. This
> 'conversion' should also stay strictly in the UI related code. To do
> otherwise raises a host of issues about side effects and special cases w/
> regard to sting handling libraries. To not allow spaces in filenames only
> makes the world more complicated. It also destroys a layer of generality,
> and that is -almost always- a BAD thing.
> 
> With respect to filenames, it's a string of -reasonably- unique (re issues
> of location and such) 1's and 0's to the OS. It doesn't really 'mean'
> anything to the OS::File System. It's the User::UI that it matters to.
> 
> User::UI::OS::File System
> 
> Leave the problem where it belongs, in the cli/shell.
> 
> 
>  --
>     ____________________________________________________________________
> 
>               When I die, I would like to be born again as me.
> 
>                                             Hugh Hefner
>      ravage@ssz.com                                         www.ssz.com
>      jchoate@open-forge.org                          www.open-forge.org
> 
>     --------------------------------------------------------------------
> 
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
                             ` (4 preceding siblings ...)
  2002-07-10 21:58           ` [9fans] blanks in file names Dave
@ 2002-07-11  5:10           ` Dave
  2002-07-14 18:32           ` Dave
  6 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-11  5:10 UTC (permalink / raw)
  To: 9fans

Eh, I tire of the discussion ... let's just make a userland fix or
whatever ... if it bugs me too much, I'll just patch up the kernel,
or something. . .

 - Dave


arisawa@ar.aichi-u.ac.jp wrote:
> 
> Dave wrote:
> >If I had to vote a priori, blanks would certainly be a no-go for
> >filenames.  However, the pressure cooker has already burst, and our
> >...
> >keep our chicken from splattering all over the kitchen ;-/
> 
> Important or not? That is the problem.
> If we agree it is important, we must eat spaes.
> Then my chice is to cook spaces so that stomach is not broken.
> How to cook?
> I believe the first discussion should be forcussed
> to expression of path considering in future needs.
> I believe you and I share much opinion.
> 
> Kenji Arisawa
> 
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11  2:00             ` Dan Cross
@ 2002-07-11  6:14               ` Dave
  2002-07-11  6:38                 ` Lucio De Re
                                   ` (2 more replies)
  0 siblings, 3 replies; 81+ messages in thread
From: Dave @ 2002-07-11  6:14 UTC (permalink / raw)
  To: 9fans

Reply inline:

 - Dave

Dan Cross wrote:
> 
> > > I don't think it would be simpler; I think it would be more
> > > complicated.  You're replacing a simple, textual representation of an
> > > object with a binary representation; you have to have some way to do
> > > canonicalization in the common case, but even that path is thrwat with
> > > danger.
> > 
> > Manipulating text with all sorts of dynamic buffers is substantially
> > more complicated than simply replacing a node in a linked list.
> > The canonicalization is all being done by the kernel, or a library.
> 
> How could this possibly be in the kernel?  After all, you're talking
> about changing the interface to open a file; I pass a file name via
> some mechanism to a user level application that wants to call open on
> it.  What's it supposed to do?  Does the shell now pass a linked list
> as an argument to main somehow?  How does the system know that it's a
> file?  Do we have to replace the argument vector with some more complex
> representation that encapsulates type information (e.g., this argument
> is a file, this next one is a string, etc)?  Does the shell change to
> represent file names as lists?  Does the user suffer the indignation of
> having to specify a list of path components to represent a file?  Or do
> we provide a canonicalization library for shell arguments, in which
> case, you have the exact same problem as supporting spaces now, since
> most programs are going to expect to get file name arguments in the
> canonical representation?  If you do that, who calls it?  The shell or
> the library?
That's an interesting point I didn't quite consider ... we'll have to
change the exec interface a lot more than I suspected at first glance.
I wasn't planning that until much later, because it'll require very
fundamental changes to the shell.  (/me hates proposing incremental
changes, because they invariably depend on other fundamental changes in
order for people to see their utility.)

> 
> I for one am going to be *very* unhappy if I have to type:
> 
> 	cat ('' 'usr' 'cross' 'file')
> 
> Instead of:
> 
> 	cat /usr/cross/file
> 
> Or do you make every program that wants to open a file call a function
> to canonicalize a filename into the internal format before it calls
> open?
My image of a shell is a user interface.  It should translate
all output from programs into a format that's easy for a human to
understand, and should offer to translate data entered by the user
from an easy-for-a-human-to-input format into the machine format.
If you want to print /"usr"/"cross"/"file", you should be able to
type something like "cat /usr/cross/file" and have the shell translate
that into the collection of lists (/usr/bin/cat and /usr/cross/file)
required for the underlying system.  The shell should also translate
the output of the ls command, for instance, so it prints filenames
in an easy-for-humans-to-understand format.  The ls command, though,
should only print filenames in an easy-for-machine-to-understand
format.  Basically, the shell is the bidirectional translator between
computer-speak and human-speak.  That's it's raison d'étre (spelling?).
Getting the kernel away from plain text doesn't mean getting the shell
away from plain text.  The shell can choose to support any method(s)
it wants to represent filenames in an "easy-for-machine-to-understand"
format, since it'll be converting the filenames into linked lists for
the kernel.  Utilities like find or ls or whatever output filenames in
a format that your shell can read.  (I envision an rc file supplied by
the shell to let other programs know what formats it supports.)

> 
> > > But they change an already well-established interface.  Have you
> > > thought through the implications of this, in all their macabre glory?
> > > What you propose--changing the most basic interface for opening a file
> > > in a system where everything looks more or less like a file--has huge
> > > implications.  And all this just to support a strange edge-case, which
> > > is adequately solved by substitutions in the filename.  Sure, it's not
> > > perfect in some weird pathological case, but how often is this going to
> > > come up in practice?  Remember: Optimize for the common case.
> > 
> > Optimization for the common case is good, but creating a system where the
> > uncommon case will cause major mayhem at the system level is evidence
> > of a very unclean approach.  (When you consider the reasoning behind
> > the problem (namely, spaces and slashes in filenames kill our ability
> > to seperate nodes easily), it makes perfect sense that our solution
> > isn't very clean.  The only clean solution is to restore the ancient
> > UNIX ideal of being able to easily seperate nodes.  In other words,
> > either kill spaces altogether and damn interoperability, or promote
> > spaces to full citizenship.)
> 
> But Plan 9 can handle this.
> 
> One of the beautiful things about Plan 9 is that it provides a solution
> that's workable with little effort.  The various substitution file
> systems provide a workable solution without introducing any additional
> complexity.  If you want a total--100% complete--solution, then a
> `urlifyfs' can be written that uses URL escaping as a canonical
> representation, or something similar.  The system interface doesn't
> have to be changed, though.  *That* is the mark of a clean system
> design.
The only way to have the urlifyfs concept providing a 100% complete
solution is to use it as the default filesystem for your own stuff.
The reason?  imagine downloading a file "blah%apos;" from an FTP server;
now, you download a file "blah'" from an FTP server (which your urlifyfs
faithfully translates into "blah%apos;" without realizing that it's
destroying a different file).  Guess what?  You've just clobbered your
original.  Now, if you're going to use urlifyfs for your own stuff
on your Plan 9 system, you're going to have to deal with the same
shell-interaction issues that my system has to deal with.  The only
difference is that my system doesn't break if somebody forgets to use
urlifyfs on a new filesystem, because my system moves text representation
of filenames over to the shell, where it belongs, rather than dumping
that burden on a filesystem translation hack.

> 
> The Unix `ideal' was eliminated because it was overly complex, without
> a commensurate gain in functionality.  Besides, the inode system didn't
> really fit in well with the idea of 9p.
> 
> > > > There's plenty of experience with other systems working on linked lists
> > > > (including a huge amount of kernel code in my Linux box that I'm typing
> > > > from, ATM).  Most of the problems with linked lists have been pretty
> > > > well documented, by now.
> > > 
> > > It's the huge amount of kernel code that Plan 9 is trying to avoid.
> > 
> > String manipulation is more complex than linked list manipulation.
> 
> No, it's really not.  Consider passing a linked list as an argument to
> a function you're calling, versus passing an argument vector of
> strings.  How do you do that?  Do you muck with all the C startup code
> to make sure you get the linking and so right in such a way that the
> list is in a contiguous memory block so it doesn't get stomped by the
> image read by exec?  Do you pass each node in the list to main as a
> seperate string in the argument vector?  If so, how do you tell when
> a file name ends and another begins?  Do we introduce some convention
> for delineating the beginning and ends of a filename in a list
> representation, effectively creating a protocol that every program has
> to follow to take a filename as an argument?  Surely the former option
> is significantly easier....
This is only true with our current exec family, which has been essentially
carried over unchanged from UNIX.  It's based on strings, not on lists.
IMHO, arguments should be objects.  Those objects can be filenames,
options with or without arguments of their own, subcommands, just plain
strings, etc.  This makes arguments a lot more representitive of what
they actually are, and eliminates the need for complex argument-handling
libraries.  Obviously, this whole change can be totally transparent to
the user, because his shell is doing the necessary translations back
and forth.  However, you get an extremely powerful system as the payoff,
a system that makes it rather easy to reimplement all our current syscalls
as tiny library functions, possibly in an emulation library.

> 
> Consider a possible canonicalization routine that might be used in
> a substitution FS:
> 
> char *
> canonical(char *str)
> {
> 	char	*p, *s, *t;
>  
> 	if (str == nil || (p = malloc(2 * strlen(str) + 1)) == nil) {
> 		return(nil);
> 	}
> 	for (s = str, t = p; *s != '\0'; s++, t++) {
> 		if (isspace(*s)) {
> 			*t++ = '+';	/*  Or whatever.  */
> 			*t = '2';
> 			continue;
> 		}
> 		*t = *s;
> 	}
> 	if ((s = realloc(p, strlen(p) + 1)) == nil) {
> 		free(p);
> 	}
>  
> 	return(s);
> }
> 
> That's pretty straight-forward; just inserting into a linked list
> would be just as hard.  Doing so in a contiguous memory block would
> be, I think harder (you'd have to step over the list, keep a count
> of how much memory you needed, then allocate the list, copy each
> node and set the links.  That's a pain).
strlen() is an expensive operation.  realloc() sucks in a multithreaded
environment.  To top it all off, that algorithm doesn't take into account
the expansion which is ABSOLUTELY NECESSARY in order to achieve 100%
coverage.  (If you're not going to achieve a 1-1 mapping, it's silly to
even bother with this.)  Also, I'd like to mention again that I'm not
asking the kernel to allocate memory.  The userland program provides
a block of memory, and the kernel manipulates that block, returning an
error if the block is too small.

> 
> > > Being forced to conform to a lot of external interfaces *will* kill the
> > > system.
> > 
> > I don't dispute that point, but the interface I propose is most unlike
> > any other interface currently known to man (not trying to conform to any
> > external interface).  I'm simply pointing out that failing to provide
> > at least a 1-1 mapping with capabilities that are already widely used
> > in external systems that must interoperate with ours *will* kill us.
> 
> Well, if you *really* want 100% 1 to 1 mappings, use the URL encoding
> others have mentioned, or something similar.  As it is, it seems that
> this mostly works; about 80% of what's needed is there.
URL encoding _will_ work if it's implemented right (except for the
uncleanliness I mentioned above, and some more problems I mention below).
However, using URL encoding makes the resulting system just as ugly as
the one I'm proposing from the user's perspective, but much much uglier
from a system perspective.

> 
> > > Besides, the point Nemo was trying to make umpteen posts ago was that,
> > > yes, you can roll back changes using the dump filesystem, which gives
> > > you temporal mobility.  He is right.
> > 
> > You can do a lot of things if you're prepared to get involved in the
> > functions that your OS should be doing automatically.  Try running an FTP
> > mirror to a busy site that way, though, and you'll quickly discover why
> > automation is a good thing.  The worst part about our system is that the
> > "solution" you eventually find for an FTP mirror will be useless on an
> > HTTP proxy.  When "solutions" need to be modified for each individual
> > application, you know that the system isn't clean.
> 
> Yesterday is a wonderful tool, and can be scripted to do whatever you
> want.  Eg, copying all files that changed on June 14th back to the
> cache isn't very diffcult.
Yesterday can't be used to update the relative references in all the
README files in the FTP archives to the urlified versions.

> 
> I don't see what running a big FTP mirror has to do with it.  netlib is
> a big FTP site; it runs on Plan 9.  Maybe it's not a mirror, but so what?
Since it's not a mirror, it doesn't have to contend with all the spaceful
filenames you find in the non-Plan9 world.

> I also don't see how you can't leverage whatever you did for FTP with
> HTTP.  The substitution-style FS gives you a *lot* of flexibility in this
> area.
What you did in FTP was scanning the README files for references.
What you do in HTTP is updating all the href and src attributes in HTML
files (and hope none of the JAVA programs have embedded URLs that you
can't change at all), so you don't get broken links everywhere.

...unless you want to implement the transformation/detransformation
code in the FTP and HTTP servers, as well ... in which case your
system becomes one step worse than my system, because you have
transformation/detransformation code in two places on your system :-(

> 
> 	- Dan C.
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11  6:14               ` Dave
@ 2002-07-11  6:38                 ` Lucio De Re
  2002-07-14 18:00                   ` Dave
  2002-07-11 13:14                 ` arisawa
  2002-07-11 16:23                 ` Dan Cross
  2 siblings, 1 reply; 81+ messages in thread
From: Lucio De Re @ 2002-07-11  6:38 UTC (permalink / raw)
  To: 9fans

On Thu, Jul 11, 2002 at 02:14:59AM -0400, Dave wrote:
> 
> Reply inline:
> 
You make some valid points, but I think they are well in excess of
present requirements.  Not to say that a future OS/GUI will not (have
to) take them into consideration.

You do however confuse URI and HTML and you really shouldn't:


> The only way to have the urlifyfs concept providing a 100% complete
> solution is to use it as the default filesystem for your own stuff.
> The reason?  imagine downloading a file "blah%apos;" from an FTP server;
> now, you download a file "blah'" from an FTP server (which your urlifyfs
> faithfully translates into "blah%apos;" without realizing that it's
> destroying a different file).  Guess what?  You've just clobbered your
> original.  Now, if you're going to use urlifyfs for your own stuff

URI: blah%apos; -> blah%25pos%3b

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-10 23:01           ` Dave
  2002-07-11  2:00             ` Dan Cross
@ 2002-07-11 10:43             ` Ish Rattan
  2002-07-14 18:49               ` Dave
  1 sibling, 1 reply; 81+ messages in thread
From: Ish Rattan @ 2002-07-11 10:43 UTC (permalink / raw)
  To: 9fans

Probably it is time for this thread to go away.

An OS design is a reflection of what the designer considers
important -- who gives a hoot if it not a clean design. My
response: if you do not like it either desgin your "own" OR
use one that you consider a clean OS!!

-ishwar

On Wed, 10 Jul 2002, Dave wrote:

> Reply inline:
>
>  - Dave
>
> Dan Cross wrote:
> >
> > > The "offending" program in this case is the program that's so much simpler
> > > because it's using the new kernel interface rather than the old one.
> >
> > I don't think it would be simpler; I think it would be more
> > complicated.  You're replacing a simple, textual representation of an
> > object with a binary representation; you have to have some way to do
> > canonicalization in the common case, but even that path is thrwat with
> > danger.
> Manipulating text with all sorts of dynamic buffers is substantially
> more complicated than simply replacing a node in a linked list.
> The canonicalization is all being done by the kernel, or a library.
>
> >
> > > Nothing has to be rethought because all my proposed changes do is restore
> > > the strict seperation between nodes in a filename (something UNIX -
> > > and therefore Plan 9 - likes to rely on).
> >
> > But they change an already well-established interface.  Have you
> > thought through the implications of this, in all their macabre glory?
> > What you propose--changing the most basic interface for opening a file
> > in a system where everything looks more or less like a file--has huge
> > implications.  And all this just to support a strange edge-case, which
> > is adequately solved by substitutions in the filename.  Sure, it's not
> > perfect in some weird pathological case, but how often is this going to
> > come up in practice?  Remember: Optimize for the common case.
> Optimization for the common case is good, but creating a system where the
> uncommon case will cause major mayhem at the system level is evidence
> of a very unclean approach.  (When you consider the reasoning behind
> the problem (namely, spaces and slashes in filenames kill our ability
> to seperate nodes easily), it makes perfect sense that our solution
> isn't very clean.  The only clean solution is to restore the ancient
> UNIX ideal of being able to easily seperate nodes.  In other words,
> either kill spaces altogether and damn interoperability, or promote
> spaces to full citizenship.)
>
> >
> > > There's plenty of experience with other systems working on linked lists
> > > (including a huge amount of kernel code in my Linux box that I'm typing
> > > from, ATM).  Most of the problems with linked lists have been pretty
> > > well documented, by now.
> >
> > It's the huge amount of kernel code that Plan 9 is trying to avoid.
> String manipulation is more complex than linked list manipulation.
>
> >
> > Being forced to conform to a lot of external interfaces *will* kill the
> > system.
> I don't dispute that point, but the interface I propose is most unlike
> any other interface currently known to man (not trying to conform to any
> external interface).  I'm simply pointing out that failing to provide
> at least a 1-1 mapping with capabilities that are already widely used
> in external systems that must interoperate with ours *will* kill us.
>
> >
> > Besides, the point Nemo was trying to make umpteen posts ago was that,
> > yes, you can roll back changes using the dump filesystem, which gives
> > you temporal mobility.  He is right.
> You can do a lot of things if you're prepared to get involved in the
> functions that your OS should be doing automatically.  Try running an FTP
> mirror to a busy site that way, though, and you'll quickly discover why
> automation is a good thing.  The worst part about our system is that the
> "solution" you eventually find for an FTP mirror will be useless on an
> HTTP proxy.  When "solutions" need to be modified for each individual
> application, you know that the system isn't clean.
>
> >
> > 	- Dan C.
> >
>  - Dave C. :-)
>



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11  6:14               ` Dave
  2002-07-11  6:38                 ` Lucio De Re
@ 2002-07-11 13:14                 ` arisawa
  2002-07-12 12:28                   ` arisawa
  2002-07-11 16:23                 ` Dan Cross
  2 siblings, 1 reply; 81+ messages in thread
From: arisawa @ 2002-07-11 13:14 UTC (permalink / raw)
  To: 9fans

Hello,

> One of the beautiful things about Plan 9 is that it provides a  
solution
> that's workable with little effort.  The various substitution file
> systems provide a workable solution without introducing any  
additional
> complexity.  If you want a total--100% complete--solution, then a
> `urlifyfs' can be written that uses URL escaping as a canonical
> representation, or something similar.  The system interface  
doesn't
> have to be changed, though.  *That* is the mark of a clean system
> design.
The idea was born from the discussion between Dave and I.
Dave proposed '\' escape.
Until that time, I had been tied to quoting strategy.
%XX looks ugly as Dave says, but it works cleanly.
That is the beauty.
We must be patient with this ugliness because we are in textual
environment. Full GUI environment, I believe Plan9 also have it
in future, will remove this ugliness.
Thanks Dave.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: Liberating the filename (Was: [9fans] acme question + diffs forkfs,
  2002-07-09 11:07               ` arisawa
@ 2002-07-11 14:57                 ` Douglas A. Gwyn
  0 siblings, 0 replies; 81+ messages in thread
From: Douglas A. Gwyn @ 2002-07-11 14:57 UTC (permalink / raw)
  To: 9fans

arisawa@ar.aichi-u.ac.jp wrote:
> [Lucio De Re wrote:]
> >Which reminds me, if we use
> >fpath = (usr lucio fname)
> >as a future description of a filepath, how do we designate the
> >root?
> >fpath = ('' usr lucio fname)
> >perhaps?
> No, they should be:
> fpath = /usr/lucio/fname
> as it has been.
> No change is required for rc.

Wrong!  If we use lists instead of embedded / characters, as stipulated.

The '' member (without quotes in the actual list member, which has
0 characters) would certainly be analogous to the current method
of differentiating between relative and absolute paths.  Is there
some way of getting rid of absolute paths?  What if first member
"bin" or "dev" etc. were bound to "float" to the current dir.?


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11  6:14               ` Dave
  2002-07-11  6:38                 ` Lucio De Re
  2002-07-11 13:14                 ` arisawa
@ 2002-07-11 16:23                 ` Dan Cross
  2 siblings, 0 replies; 81+ messages in thread
From: Dan Cross @ 2002-07-11 16:23 UTC (permalink / raw)
  To: 9fans

I want to let this thread die, but I just have one last thing to say:

> Getting the kernel away from plain text doesn't mean getting the shell

But....  It took 20 years to get the kernel to plain text.  I don't want
to go back.

	- Dan C.



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11 13:14                 ` arisawa
@ 2002-07-12 12:28                   ` arisawa
  0 siblings, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-12 12:28 UTC (permalink / raw)
  To: 9fans

Hello,

I should have added to my previous thread:
I think `urlifyfs' or similar stuff is good idea.
I didn't have that idea.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11  6:38                 ` Lucio De Re
@ 2002-07-14 18:00                   ` Dave
  0 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-14 18:00 UTC (permalink / raw)
  To: 9fans

Lucio De Re wrote:
> 
> On Thu, Jul 11, 2002 at 02:14:59AM -0400, Dave wrote:
> > 
> > Reply inline:
> > 
> You make some valid points, but I think they are well in excess of
> present requirements.  Not to say that a future OS/GUI will not (have
> to) take them into consideration.
Okay, fair enough ... I'll just wait a few more years until some OS
agrees to go out on a limb with me (Release 5, maybe?) ;-)

> 
> You do however confuse URI and HTML and you really shouldn't:
> 
> 
> > The only way to have the urlifyfs concept providing a 100% complete
> > solution is to use it as the default filesystem for your own stuff.
> > The reason?  imagine downloading a file "blah%apos;" from an FTP server;
> > now, you download a file "blah'" from an FTP server (which your urlifyfs
> > faithfully translates into "blah%apos;" without realizing that it's
> > destroying a different file).  Guess what?  You've just clobbered your
> > original.  Now, if you're going to use urlifyfs for your own stuff
> 
> URI: blah%apos; -> blah%25pos%3b
Whoopsies ... my brain must've been half mush when I typed that :-(

> 
> ++L
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
       [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
                             ` (5 preceding siblings ...)
  2002-07-11  5:10           ` [9fans] " Dave
@ 2002-07-14 18:32           ` Dave
  2002-07-14 18:51             ` Jim Choate
  2002-07-14 23:27             ` arisawa
  6 siblings, 2 replies; 81+ messages in thread
From: Dave @ 2002-07-14 18:32 UTC (permalink / raw)
  To: 9fans

/me shudders at the thought that GUIs might someday take over the
world :-(

 - Dave

BTW - The point I was trying to make is that if the kernel doesn't use
any particular filename-rewriting rule, then user programs and libraries
are free to use URL, HTML, quoting, C-style escaping, or any other
system that suits the application at hand, without having to rewrite
their versions into whatever rewriting rule the kernel decides to use.
(I guess you can say I'm "pro choice.")


arisawa@ar.aichi-u.ac.jp wrote:
> 
> Hello,
> 
> > One of the beautiful things about Plan 9 is that it provides a  
> solution
> > that's workable with little effort.  The various substitution file
> > systems provide a workable solution without introducing any  
> additional
> > complexity.  If you want a total--100% complete--solution, then a
> > `urlifyfs' can be written that uses URL escaping as a canonical
> > representation, or something similar.  The system interface  
> doesn't
> > have to be changed, though.  *That* is the mark of a clean system
> > design.
> The idea was born from the discussion between Dave and I.
> Dave proposed '\' escape.
> Until that time, I had been tied to quoting strategy.
> %XX looks ugly as Dave says, but it works cleanly.
> That is the beauty.
> We must be patient with this ugliness because we are in textual
> environment. Full GUI environment, I believe Plan9 also have it
> in future, will remove this ugliness.
> Thanks Dave.
> 
> Kenji Arisawa
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-11 10:43             ` Ish Rattan
@ 2002-07-14 18:49               ` Dave
  0 siblings, 0 replies; 81+ messages in thread
From: Dave @ 2002-07-14 18:49 UTC (permalink / raw)
  To: 9fans

Okay, I think we might have enough votes to finally kill the thread ;-)

 - Dave


Ish Rattan wrote:
> 
> Probably it is time for this thread to go away.
> 
> An OS design is a reflection of what the designer considers
> important -- who gives a hoot if it not a clean design. My
> response: if you do not like it either desgin your "own" OR
> use one that you consider a clean OS!!
> 
> -ishwar
> 
> On Wed, 10 Jul 2002, Dave wrote:
> 
> > Reply inline:
> >
> >  - Dave
> >
> > Dan Cross wrote:
> > >
> > > > The "offending" program in this case is the program that's so much simpler
> > > > because it's using the new kernel interface rather than the old one.
> > >
> > > I don't think it would be simpler; I think it would be more
> > > complicated.  You're replacing a simple, textual representation of an
> > > object with a binary representation; you have to have some way to do
> > > canonicalization in the common case, but even that path is thrwat with
> > > danger.
> > Manipulating text with all sorts of dynamic buffers is substantially
> > more complicated than simply replacing a node in a linked list.
> > The canonicalization is all being done by the kernel, or a library.
> >
> > >
> > > > Nothing has to be rethought because all my proposed changes do is restore
> > > > the strict seperation between nodes in a filename (something UNIX -
> > > > and therefore Plan 9 - likes to rely on).
> > >
> > > But they change an already well-established interface.  Have you
> > > thought through the implications of this, in all their macabre glory?
> > > What you propose--changing the most basic interface for opening a file
> > > in a system where everything looks more or less like a file--has huge
> > > implications.  And all this just to support a strange edge-case, which
> > > is adequately solved by substitutions in the filename.  Sure, it's not
> > > perfect in some weird pathological case, but how often is this going to
> > > come up in practice?  Remember: Optimize for the common case.
> > Optimization for the common case is good, but creating a system where the
> > uncommon case will cause major mayhem at the system level is evidence
> > of a very unclean approach.  (When you consider the reasoning behind
> > the problem (namely, spaces and slashes in filenames kill our ability
> > to seperate nodes easily), it makes perfect sense that our solution
> > isn't very clean.  The only clean solution is to restore the ancient
> > UNIX ideal of being able to easily seperate nodes.  In other words,
> > either kill spaces altogether and damn interoperability, or promote
> > spaces to full citizenship.)
> >
> > >
> > > > There's plenty of experience with other systems working on linked lists
> > > > (including a huge amount of kernel code in my Linux box that I'm typing
> > > > from, ATM).  Most of the problems with linked lists have been pretty
> > > > well documented, by now.
> > >
> > > It's the huge amount of kernel code that Plan 9 is trying to avoid.
> > String manipulation is more complex than linked list manipulation.
> >
> > >
> > > Being forced to conform to a lot of external interfaces *will* kill the
> > > system.
> > I don't dispute that point, but the interface I propose is most unlike
> > any other interface currently known to man (not trying to conform to any
> > external interface).  I'm simply pointing out that failing to provide
> > at least a 1-1 mapping with capabilities that are already widely used
> > in external systems that must interoperate with ours *will* kill us.
> >
> > >
> > > Besides, the point Nemo was trying to make umpteen posts ago was that,
> > > yes, you can roll back changes using the dump filesystem, which gives
> > > you temporal mobility.  He is right.
> > You can do a lot of things if you're prepared to get involved in the
> > functions that your OS should be doing automatically.  Try running an FTP
> > mirror to a busy site that way, though, and you'll quickly discover why
> > automation is a good thing.  The worst part about our system is that the
> > "solution" you eventually find for an FTP mirror will be useless on an
> > HTTP proxy.  When "solutions" need to be modified for each individual
> > application, you know that the system isn't clean.
> >
> > >
> > > 	- Dan C.
> > >
> >  - Dave C. :-)
> >
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-14 18:32           ` Dave
@ 2002-07-14 18:51             ` Jim Choate
  2002-07-14 23:27             ` arisawa
  1 sibling, 0 replies; 81+ messages in thread
From: Jim Choate @ 2002-07-14 18:51 UTC (permalink / raw)
  To: 9fans


On Sun, 14 Jul 2002, Dave wrote:

> /me shudders at the thought that GUIs might someday take over the
> world :-(

I also, it means that mankind will have missed the entire point of
computing.


 --
    ____________________________________________________________________

              When I die, I would like to be born again as me.

                                            Hugh Hefner
     ravage@ssz.com                                         www.ssz.com
     jchoate@open-forge.org                          www.open-forge.org

    --------------------------------------------------------------------




^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] blanks in file names
  2002-07-14 18:32           ` Dave
  2002-07-14 18:51             ` Jim Choate
@ 2002-07-14 23:27             ` arisawa
  1 sibling, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-14 23:27 UTC (permalink / raw)
  To: 9fans

Hello,

Dave, you should be aware that you started from wrong place.
As I said, your new_open is not required.
You speek too much about that is not required.
And I am surprised to see:
>then user programs and libraries
>are free to use URL, HTML, quoting, C-style escaping,
>or any other system that suits the application at hand

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09 12:24 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09 12:24 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 242 bytes --]

The rune I was talking about is "open box, visible space"
(0x2423) I'm sorry, but I thought all of us could accept utf mails. 
If there's ever such a rune being used in outside
systems, you can always pick a different one (still unused).

[-- Attachment #2: Type: message/rfc822, Size: 1823 bytes --]

From: "matt" <matt@proweb.co.uk>
To: <9fans@cse.psu.edu>
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Tue, 9 Jul 2002 13:05:30 +0100
Message-ID: <022201c22740$ecbec270$6501a8c0@xpire>

>I'm renaming ' ' with â^У in u9fs
>There's no problem doing that since there's no â^У
>in outside file names.

can't see them either but "there is no" could possibly become "oops now
there is"?

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  9:37 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  9:37 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 117 bytes --]

It's ok if the name contains '?', it's just inconvenient but
it's ok. It's like that inconvenient "'chk" name I had.

[-- Attachment #2: Type: message/rfc822, Size: 2762 bytes --]

From: Lucio De Re <lucio@proxima.alt.za>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Tue, 9 Jul 2002 11:28:57 +0200
Message-ID: <20020709112856.L20312@cackle.proxima.alt.za>

On Tue, Jul 09, 2002 at 10:42:04AM +0200, Fco.J.Ballesteros wrote:
> 
> I'm renaming ' ' with ? in u9fs
> There's no problem doing that since there's no ?
> in outside file names.

There could be:

-rw-r--r--   1 lucio  staff         0 Jul  9 11:22 t?uch

produced by "touch t\?uch" on my NetBSD host.  This is from
"man 2 intro" on NetBSD 1.5.2:

     File Name
             Names consisting of up to 255 (MAXNAMELEN) characters may be used
             to name an ordinary file, special file, or directory.

             These characters may be selected from the set of all ASCII char-
             acter excluding 0 (NUL) and the ASCII code for `/' (slash).  (The
             parity bit, bit 7, must be 0.)

             Note that it is generally unwise to use `*', `?', `[' or `]' as
             part of file names because of the special meaning attached to
             these characters by the shell.

It needn't be up to date, but it's a safe indicator.

++L

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  8:40 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  8:40 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 88 bytes --]

Yes, but did an undo and will never redo it.
Had enough blanks for the rest of my life.

[-- Attachment #2: Type: message/rfc822, Size: 1381 bytes --]

From: arisawa@ar.aichi-u.ac.jp
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Tue,  9 Jul 2002 17:22:03 +0900
Message-ID: <20020709082218.AB50B199EE@mail.cse.psu.edu>

I guess that someone (probably nemo) has already fixed acme
so that we can enter into '/n/c/My Document/' using mouse.
Or already fixed in official update?

Kenji Arisawa

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  7:46 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-09  7:46 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 205 bytes --]

Just to clarify, I'm no longer pursuing blanks on Plan 9.
As a matter of fact, I never liked them. Now that I'm happy
to see that Rob does not want them on native files I can just
rename them in u9fs.

[-- Attachment #2: Type: message/rfc822, Size: 1485 bytes --]

From: okamoto@granite.cias.osakafu-u.ac.jp
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Tue, 9 Jul 2002 09:38:32 +0900
Message-ID: <20020709003915.580A719991@mail.cse.psu.edu>

>I would just like an acme window to be able to hold
>"/a/b x/d/e/f x"

Why, nemo, are you so eager to permit blank as a file name?
Does it come from European language nature?
IMHO:  our language, yes Japanese has no such blank as a delimiter
of words, so I have no such interest to that.  :-)

Kenji

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-09  0:38 okamoto
  0 siblings, 0 replies; 81+ messages in thread
From: okamoto @ 2002-07-09  0:38 UTC (permalink / raw)
  To: 9fans

>I would just like an acme window to be able to hold
>"/a/b x/d/e/f x"

Why, nemo, are you so eager to permit blank as a file name?
Does it come from European language nature?
IMHO:  our language, yes Japanese has no such blank as a delimiter
of words, so I have no such interest to that.  :-)

Kenji



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-08 20:58 ` Dave
@ 2002-07-08 22:18   ` arisawa
  0 siblings, 0 replies; 81+ messages in thread
From: arisawa @ 2002-07-08 22:18 UTC (permalink / raw)
  To: 9fans

>...not even ... if you s/ /_/g all incoming filenames, you'll have  
no
>way of distinguishing 'a b' from 'a_b' ... or am I wrong?
> - Dave
You misunderstand something.
We need not distinguishing 'a b' from 'a_b' because there are
no files that contains ' ' in their names.

Kenji Arisawa


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-08 16:07 rob pike, esq.
@ 2002-07-08 20:58 ` Dave
  2002-07-08 22:18   ` arisawa
  0 siblings, 1 reply; 81+ messages in thread
From: Dave @ 2002-07-08 20:58 UTC (permalink / raw)
  To: 9fans

...not even ... if you s/ /_/g all incoming filenames, you'll have no
way of distinguishing 'a b' from 'a_b' ... or am I wrong?

 - Dave


rob pike, esq. wrote:
> 
> This is a multi-part message in MIME format.
> --upas-hysbwqswxskaflauqaypshypxy
> Content-Disposition: inline
> Content-Type: text/plain; charset="US-ASCII"
> Content-Transfer-Encoding: 7bit
> 
> 99% only.  You'd still have the problem of names that arrive surreptitiously,
> such as in tar files.
> 
> -rob
> 
> --upas-hysbwqswxskaflauqaypshypxy
> Content-Type: message/rfc822
> Content-Disposition: inline
> 
> Received: from plan9.cs.bell-labs.com ([135.104.9.2]) by plan9; Mon Jul  8 12:06:16 EDT 2002
> Received: from mail.cse.psu.edu ([130.203.4.6]) by plan9; Mon Jul  8 12:06:15 EDT 2002
> Received: from psuvax1.cse.psu.edu (psuvax1.cse.psu.edu [130.203.18.6])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP
> 	id 7F994199BC; Mon,  8 Jul 2002 12:06:08 -0400 (EDT)
> Delivered-To: 9fans@cse.psu.edu
> Received: from nautilus.escet.urjc.es (nautilus.escet.urjc.es [212.128.4.207])
> 	by mail.cse.psu.edu (CSE Mail Server) with SMTP id C8D81199B9
> 	for <9fans@cse.psu.edu>; Mon,  8 Jul 2002 12:05:05 -0400 (EDT)
> Message-ID: <8aeb5e383c12f6b44b043e969d203fb5@plan9.escet.urjc.es>
> From: Fco.J.Ballesteros <nemo@plan9.escet.urjc.es>
> To: 9fans@cse.psu.edu
> Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
> MIME-Version: 1.0
> Content-Type: multipart/mixed;
> 	boundary="upas-gtvahntgehtrsxxskbyfbulvvm"
> Sender: 9fans-admin@cse.psu.edu
> Errors-To: 9fans-admin@cse.psu.edu
> X-BeenThere: 9fans@cse.psu.edu
> X-Mailman-Version: 2.0.11
> Precedence: bulk
> Reply-To: 9fans@cse.psu.edu
> List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
> List-Archive: <https://lists.cse.psu.edu/archives/9fans/>
> Date: Mon, 8 Jul 2002 18:05:03 +0200
> 
> This is a multi-part message in MIME format.
> --upas-gtvahntgehtrsxxskbyfbulvvm
> Content-Disposition: inline
> Content-Type: text/plain; charset="US-ASCII"
> Content-Transfer-Encoding: 7bit
> 
> Renaming them would get us quickly up to 100%, with no need
> to fix anything. Am I wrong?
> --upas-gtvahntgehtrsxxskbyfbulvvm
> Content-Type: message/rfc822
> Content-Disposition: inline
> 
> Received: from mail.cse.psu.edu ([130.203.4.6]) by aquamar; Mon Jul  8 18:01:23 MDT 2002
> Received: from psuvax1.cse.psu.edu (psuvax1.cse.psu.edu [130.203.16.6])
> 	by mail.cse.psu.edu (CSE Mail Server) with ESMTP
> 	id 1D95B19995; Mon,  8 Jul 2002 12:01:13 -0400 (EDT)
> Delivered-To: 9fans@cse.psu.edu
> Received: from plan9.cs.bell-labs.com (ampl.com [204.178.31.2])
> 	by mail.cse.psu.edu (CSE Mail Server) with SMTP id 7A9F519991
> 	for <9fans@cse.psu.edu>; Mon,  8 Jul 2002 12:00:11 -0400 (EDT)
> Message-ID: <a5b373bbdc70b762911c083da046ca5f@plan9.bell-labs.com>
> To: 9fans@cse.psu.edu
> Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
> From: "rob pike, esq." <rob@plan9.bell-labs.com>
> MIME-Version: 1.0
> Content-Type: text/plain; charset="US-ASCII"
> Content-Transfer-Encoding: 7bit
> Sender: 9fans-admin@cse.psu.edu
> Errors-To: 9fans-admin@cse.psu.edu
> X-BeenThere: 9fans@cse.psu.edu
> X-Mailman-Version: 2.0.11
> Precedence: bulk
> Reply-To: 9fans@cse.psu.edu
> List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
> List-Archive: <https://lists.cse.psu.edu/archives/9fans/>
> Date: Mon, 8 Jul 2002 12:00:09 -0400
> 
> > Glub! My first view of all this blank thing was just to forbid
> > them and maybe rename them just to avoid them (They make things more
> > complex for our programs). 
> 
> I encounter a dozen blank-containing names a day, but only from
> interacting with foreign systems.  I find the current setup covers about
> 80% of what I need; fixing a few other simple things would probably
> get us to 99%.  But upon reflection I don't think it's wise to push for
> blanks to be first-class citizens in file names.  As long as we continue
> to use linguistic rather than graphical interfaces to most of our tools,
> that would be a mistake.
> 
> -rob
> 
> --upas-gtvahntgehtrsxxskbyfbulvvm--
> --upas-hysbwqswxskaflauqaypshypxy--
> 



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 16:14 rob pike, esq.
  0 siblings, 0 replies; 81+ messages in thread
From: rob pike, esq. @ 2002-07-08 16:14 UTC (permalink / raw)
  To: 9fans

> 99% only.  You'd still have the problem of names that arrive surreptitiously,
> such as in tar files.

Expanding a bit....

This is why I decided (mea maxima culpa) to admit blanks in file names.
They show up, you don't know where from, and if the basic tools have
ways of coping (as opposed to being graceful and perfect in handling them)
you can get by without mystery error messages caused by the operating
system rejecting them deep down.

I think the setup is sufficient, and sufficient unto the day is the evil thereof.

-rob



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 16:07 rob pike, esq.
  2002-07-08 20:58 ` Dave
  0 siblings, 1 reply; 81+ messages in thread
From: rob pike, esq. @ 2002-07-08 16:07 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 110 bytes --]

99% only.  You'd still have the problem of names that arrive surreptitiously,
such as in tar files.

-rob

[-- Attachment #2: Type: message/rfc822, Size: 3446 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 89 bytes --]

Renaming them would get us quickly up to 100%, with no need
to fix anything. Am I wrong?

[-- Attachment #2.1.2: Type: message/rfc822, Size: 1779 bytes --]

From: "rob pike, esq." <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Mon, 8 Jul 2002 12:00:09 -0400
Message-ID: <a5b373bbdc70b762911c083da046ca5f@plan9.bell-labs.com>

> Glub! My first view of all this blank thing was just to forbid
> them and maybe rename them just to avoid them (They make things more
> complex for our programs). 

I encounter a dozen blank-containing names a day, but only from
interacting with foreign systems.  I find the current setup covers about
80% of what I need; fixing a few other simple things would probably
get us to 99%.  But upon reflection I don't think it's wise to push for
blanks to be first-class citizens in file names.  As long as we continue
to use linguistic rather than graphical interfaces to most of our tools,
that would be a mistake.

-rob

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 16:05 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-08 16:05 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 89 bytes --]

Renaming them would get us quickly up to 100%, with no need
to fix anything. Am I wrong?

[-- Attachment #2: Type: message/rfc822, Size: 1779 bytes --]

From: "rob pike, esq." <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Mon, 8 Jul 2002 12:00:09 -0400
Message-ID: <a5b373bbdc70b762911c083da046ca5f@plan9.bell-labs.com>

> Glub! My first view of all this blank thing was just to forbid
> them and maybe rename them just to avoid them (They make things more
> complex for our programs). 

I encounter a dozen blank-containing names a day, but only from
interacting with foreign systems.  I find the current setup covers about
80% of what I need; fixing a few other simple things would probably
get us to 99%.  But upon reflection I don't think it's wise to push for
blanks to be first-class citizens in file names.  As long as we continue
to use linguistic rather than graphical interfaces to most of our tools,
that would be a mistake.

-rob

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 16:00 rob pike, esq.
  0 siblings, 0 replies; 81+ messages in thread
From: rob pike, esq. @ 2002-07-08 16:00 UTC (permalink / raw)
  To: 9fans

> Glub! My first view of all this blank thing was just to forbid
> them and maybe rename them just to avoid them (They make things more
> complex for our programs). 

I encounter a dozen blank-containing names a day, but only from
interacting with foreign systems.  I find the current setup covers about
80% of what I need; fixing a few other simple things would probably
get us to 99%.  But upon reflection I don't think it's wise to push for
blanks to be first-class citizens in file names.  As long as we continue
to use linguistic rather than graphical interfaces to most of our tools,
that would be a mistake.

-rob



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 15:51 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-08 15:51 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

Glub! My first view of all this blank thing was just to forbid
them and maybe rename them just to avoid them (They make things more
complex for our programs). 

But then I (mis)understood that the plan for the system was to give
them a chance; thus I tried to find a simple way to get them working.

Now that I finally see that the agreement is on 
`blanks would mess up things', I think I'll just add them to isfrog and
rename them in u9fs (the only place were I get blanks into the system).

Thanks for your answer and sorry about the mess.

[-- Attachment #2: Type: message/rfc822, Size: 1319 bytes --]

From: "rob pike, esq." <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Mon, 8 Jul 2002 11:42:05 -0400
Message-ID: <7b9a9eaaf34e6773065104024b7696c2@plan9.bell-labs.com>

> So all the effort to handle ' ' was just for foreign files?

Yes.  And that is the main reason I don't want to trash the
system to support blanks in file names.

-rob

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 15:42 rob pike, esq.
  0 siblings, 0 replies; 81+ messages in thread
From: rob pike, esq. @ 2002-07-08 15:42 UTC (permalink / raw)
  To: 9fans

> So all the effort to handle ' ' was just for foreign files?

Yes.  And that is the main reason I don't want to trash the
system to support blanks in file names.

-rob



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 15:18 Fco.J.Ballesteros
  0 siblings, 0 replies; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-08 15:18 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 61 bytes --]

So all the effort to handle ' ' was just for foreign files?

[-- Attachment #2: Type: message/rfc822, Size: 1265 bytes --]

From: "rob pike, esq." <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] acme question + diffs for kfs, fs and plumbing
Date: Mon, 8 Jul 2002 11:16:57 -0400
Message-ID: <53a4b2914a2d14090c0f2bc46f48ce8a@plan9.bell-labs.com>

You don't want blanks in native files, I promise you.  The kfs changes
(at least) are ill-advised.

-rob

^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 15:16 rob pike, esq.
  0 siblings, 0 replies; 81+ messages in thread
From: rob pike, esq. @ 2002-07-08 15:16 UTC (permalink / raw)
  To: 9fans

You don't want blanks in native files, I promise you.  The kfs changes
(at least) are ill-advised.

-rob



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-08 15:10 Fco.J.Ballesteros
@ 2002-07-08 15:16 ` Lucio De Re
  0 siblings, 0 replies; 81+ messages in thread
From: Lucio De Re @ 2002-07-08 15:16 UTC (permalink / raw)
  To: 9fans

On Mon, Jul 08, 2002 at 05:10:00PM +0200, Fco.J.Ballesteros wrote:
> 
> ??
> 
> I would just like an acme window to be able to hold
> "/a/b x/d/e/f x"
> in its tag line. Currently, it would stop at the first
> blank and eat the rest of the file name. I'm not talking
> about metacharacters.
> 
> I think that a couple of changes in wind.c could do the effect.

It would seem more consistent, in the tag _name_ to use quoting
<duck!>.

I was thinking of presenting the above as /a/b?x/d/e/f?x, but I wasn't
considering the tag name, I was thinking of a specification in the tag
tail.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 15:10 Fco.J.Ballesteros
  2002-07-08 15:16 ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-08 15:10 UTC (permalink / raw)
  To: 9fans

> I'm not familiar with ACME's innards, but wouldn't it be more
> consistent to have ACME understand the "?" wild character in the
> tag?  Of course this has other drawbacks, but it strikes me as a good
> starting point for discussion.

??

I would just like an acme window to be able to hold
"/a/b x/d/e/f x"
in its tag line. Currently, it would stop at the first
blank and eat the rest of the file name. I'm not talking
about metacharacters.

I think that a couple of changes in wind.c could do the effect.



^ permalink raw reply	[flat|nested] 81+ messages in thread

* Re: [9fans] acme question + diffs for kfs, fs and plumbing
  2002-07-08 14:54 Fco.J.Ballesteros
@ 2002-07-08 15:05 ` Lucio De Re
  0 siblings, 0 replies; 81+ messages in thread
From: Lucio De Re @ 2002-07-08 15:05 UTC (permalink / raw)
  To: 9fans

On Mon, Jul 08, 2002 at 04:54:24PM +0200, Fco.J.Ballesteros wrote:
> 
> Could we change the acme tag so that the file name is terminated by
> `|' and not by space?  Otherwise I don't know how to let acme edit
> files that have blanks on their names (It would eat part of the name).
> 
I'm not familiar with ACME's innards, but wouldn't it be more
consistent to have ACME understand the "?" wild character in the
tag?  Of course this has other drawbacks, but it strikes me as a good
starting point for discussion.

++L


^ permalink raw reply	[flat|nested] 81+ messages in thread

* [9fans] acme question + diffs for kfs, fs and plumbing
@ 2002-07-08 14:54 Fco.J.Ballesteros
  2002-07-08 15:05 ` Lucio De Re
  0 siblings, 1 reply; 81+ messages in thread
From: Fco.J.Ballesteros @ 2002-07-08 14:54 UTC (permalink / raw)
  To: 9fans

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 1113 bytes --]

Could we change the acme tag so that the file name is terminated by
`|' and not by space?  Otherwise I don't know how to let acme edit
files that have blanks on their names (It would eat part of the name).


Now the diffs. I had to make them to let my system handle
blanks on file names; i.e. to
	- let the plumber config know of blanks
	- permit blanks in kfs
	- permit blanks in fs
	- permit blanks in acme tags (I don't include this one).

/sys/lib/plumb/basic:
	- add space as a valid char for file names.
	  eg. '[ a-zA-Z¡-￿0-9_\-./]+' instead of '[ a-zA-Z¡-￿0-9_\-./]+'


Permit blanks in kfs servers:

diff /n/dump/2002/0708/sys/src/cmd/disk/kfs/sub.c sub.c
382c382
< 		if(c <= 040)
---
> 		if(c < 040)
diff /n/dump/2002/0708/sys/src/cmd/disk/kfs/9p2.c 9p2.c
795c795
< 		if((*p & 0xFF) <= 040)
---
> 		if((*p & 0xFF) < 040)

Permit blanks in real file servers:

diff ./port/9p2.c /sys/src/fs/port/9p2.c
155c155
< 		if((*p & 0xFF) <= 040)
---
> 		if((*p & 0xFF) < 040)
diff ./port/sub.c /sys/src/fs/port/sub.c
496c496
< 		if(c <= 040)
---
> 		if(c < 040)



^ permalink raw reply	[flat|nested] 81+ messages in thread

end of thread, other threads:[~2002-07-14 23:27 UTC | newest]

Thread overview: 81+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-09  8:42 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
2002-07-09  9:28 ` Lucio De Re
2002-07-09 11:23   ` andrey mirtchovski
2002-07-09 12:05     ` matt
  -- strict thread matches above, loose matches on Subject: below --
2002-07-10 18:27 [9fans] blanks in file names David Gordon Hogan
2002-07-10 20:56 ` arisawa
2002-07-10  8:00 Fco.J.Ballesteros
2002-07-10  7:57 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
2002-07-09 12:24 Fco.J.Ballesteros
2002-07-09  9:37 Fco.J.Ballesteros
2002-07-09  8:40 Fco.J.Ballesteros
2002-07-09  7:54 [9fans] blanks in file names Fco.J.Ballesteros
     [not found] ` <Fco.J.Ballesteros@Jul>
2002-07-09 15:23   ` Dave
2002-07-09 15:29   ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
2002-07-10 15:57   ` Dave
2002-07-10 16:02   ` [9fans] blanks in file names Dave
2002-07-10 20:59     ` FJ Ballesteros
2002-07-10 21:51       ` Dave
2002-07-10 22:22         ` Dan Cross
2002-07-10 23:01           ` Dave
2002-07-11  2:00             ` Dan Cross
2002-07-11  6:14               ` Dave
2002-07-11  6:38                 ` Lucio De Re
2002-07-14 18:00                   ` Dave
2002-07-11 13:14                 ` arisawa
2002-07-12 12:28                   ` arisawa
2002-07-11 16:23                 ` Dan Cross
2002-07-11 10:43             ` Ish Rattan
2002-07-14 18:49               ` Dave
2002-07-09  7:50 [9fans] acme question + diffs for kfs, fs and plumbing Fco.J.Ballesteros
2002-07-09  8:15 ` Lucio De Re
2002-07-09  8:42   ` arisawa
2002-07-09  9:21     ` Lucio De Re
2002-07-09  9:43       ` arisawa
2002-07-09 10:36         ` Lucio De Re
2002-07-09 10:54           ` matt
2002-07-09 11:01             ` Liberating the filename (Was: [9fans] acme question + diffs for kfs, fs and plumbing) Lucio De Re
2002-07-09 11:07               ` arisawa
2002-07-11 14:57                 ` Liberating the filename (Was: [9fans] acme question + diffs forkfs, Douglas A. Gwyn
2002-07-09  8:22 ` [9fans] acme question + diffs for kfs, fs and plumbing arisawa
2002-07-09  7:46 Fco.J.Ballesteros
2002-07-09  0:38 okamoto
2002-07-08 16:14 rob pike, esq.
2002-07-08 16:07 rob pike, esq.
2002-07-08 20:58 ` Dave
2002-07-08 22:18   ` arisawa
2002-07-08 16:05 Fco.J.Ballesteros
2002-07-08 16:00 rob pike, esq.
2002-07-08 15:51 Fco.J.Ballesteros
2002-07-08 15:42 rob pike, esq.
2002-07-08 15:18 Fco.J.Ballesteros
2002-07-08 15:16 rob pike, esq.
2002-07-08 15:10 Fco.J.Ballesteros
2002-07-08 15:16 ` Lucio De Re
2002-07-08 14:54 Fco.J.Ballesteros
2002-07-08 15:05 ` Lucio De Re
2002-07-03  8:00 [9fans] blanks in file names Fco.J.Ballesteros
2002-07-03 12:00 ` Lucio De Re
2002-07-03 19:39   ` rob pike, esq.
2002-07-07  4:02     ` Dave
2002-07-07  5:17       ` arisawa
     [not found]         ` <"arisawa@ar.aichi-u.ac.jp"@Jul>
2002-07-07  5:38           ` Dave
2002-07-07  6:04             ` arisawa
2002-07-07  7:16               ` arisawa
2002-07-07 16:11           ` Dave
2002-07-07 16:12           ` Dave
2002-07-09 15:31           ` [9fans] acme question + diffs for kfs, fs and plumbing Dave
2002-07-09 22:15             ` arisawa
2002-07-10 21:58           ` [9fans] blanks in file names Dave
2002-07-10 22:38             ` arisawa
2002-07-10 22:42             ` [9fans] " Jim Choate
2002-07-11  5:08               ` Dave
2002-07-11  5:10           ` [9fans] " Dave
2002-07-14 18:32           ` Dave
2002-07-14 18:51             ` Jim Choate
2002-07-14 23:27             ` arisawa
2002-07-08  9:48       ` Boyd Roberts
2002-07-08 20:22         ` Dave
2002-07-09  8:24           ` Boyd Roberts
2002-07-09 15:25             ` Dave
2002-07-08 23:05         ` Berry Kercheval

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).