[Patch]: path.cc

Pierre A. Humblet pierre@phumblet.no-ip.org
Sat Apr 10 03:23:00 GMT 2004

At 08:51 PM 4/9/2004 -0400, Christopher Faylor wrote:
>I've checked both of these in and am generating a snapshot now.
>Could you advertise its existence on cygwin at cygwin, Pierre?  I think
>we need feedback on these changes before we go live with a new release.

O.K. Chris, will do. However I have noticed two or three more things
(which I resisted including in the other patches).
- normalize_win32_path does not remove a trailing dot (xxxx\. )
  is that by design?
- and it does not handle names consisting only of ....
- and thus there is still a test for that in chdir, with an obsolete
- Also, if we agree that the FIXME around line 757 is not needed,
  should we remove the comment?
- and around line 1490, in the else clause of "if (i < nmounts)",
  is it possible to have anything but a "C:" or UNC path (assuming
  that the root / is defined)? If so we could remove all tests and
  simply backslashify. That wouldn't really hurt when / isn't defined.   

Should I thus wait to advertise the snapshot until that's fixed?
(I won't touch any of that this evening).

Looking to the future, now that fs_info::update isn't really doing an
update (a better name would be fs_info::get), it turns out that the
  char name_storage[CYG_MAX_PATH];
  char root_dir_storage[CYG_MAX_PATH];
fields in fs_info can be removed (that requires a few other minor changes). 
Doing that would cut down the size of a fhandler from about 920 bytes
to 400, which looks like a good thing.

But coincidentally Corinna has also worked on related stuff today.
With her edit an even more efficient option would be to change
  fs_info fs; 
  fs_info * fs_ptr;
in path_conv. Corinna, are you heading that way?

I am somewhat concerned that the update of fsinfo isn't thread safe.
I don't know how the overhead of making it thread safe compares with
the overhead of the old method (not caching the fs_info).


More information about the Cygwin-patches mailing list