From: Arseny S. <am...@ic...> - 2003-06-23 12:39:20
|
Hi, in pathname.d: local object directory_namestring (object pathname) { # The function DIRECTORY-NAMESTRING is totally underspecified. # It could return # a. just the string for the directory portion, # b. the string for the device + directory portions, # c. the string for the host + device + directory portions. # Before we used hosts, we have traditionally returned (b). # Now, with hosts, we still return (b) since HOST-NAMESTRING returns # the host part, while there is no way to return just the device # This makes most sense, given that CLHS says that programs # should not attempt to concatenate the resulting string with anything. return string_concat(directory_namestring_parts(pathname)); } problem: directory-namestring currenly includes device, but not host. On win32 I see no problem to include both since valid is either device or host. If smb. shares whole drive, sharename appears which may or may not be the same as drive name and goes into directory part of pathname. There's no way to address particular devices on network machines. Am I wrong here ? solution: make directory_namestring to use pathname-host. I.e. use device if it is valid or host if there's no device or nothing as long as both are NIL. problem2: what is the purpose of OSnamestring ? Shouldn't it be called rather 'whole_namestring_when_dir_namestring_is_already_known' (and not using host) ? # UP: Converts pathname into string. # whole_namestring(pathname) # > pathname: non-logical pathname # < result: Normal-Simple-String # can trigger GC local object whole_namestring (object pathname) { var uintC stringcount = host_namestring_parts(pathname); stringcount += directory_namestring_parts(pathname); stringcount += file_namestring_parts(pathname); return string_concat(stringcount); } # UP: returns a namestring of a pathname for the operating system. # OSnamestring(dir_namestring) # > STACK_0: non-logical pathname # > dir_namestring: directory-namestring (for DOS) # < result: namestring (for DOS) # can trigger GC local object OSnamestring (object dir_namestring) { var uintC stringcount; pushSTACK(dir_namestring); # Directory-Namestring as 1. String stringcount = file_namestring_parts(STACK_(0+1)); # Strings for the filename return string_concat(1+stringcount); # concatenate } -- Best regards, Arseny |
From: Sam S. <sd...@gn...> - 2003-06-23 13:44:23
|
> * In message <187...@ic...> > * On the subject of "directory-namestring and pathname-host" > * Sent on Mon, 23 Jun 2003 21:48:39 +1000 > * Honorable Arseny Slobodjuck <am...@ic...> writes: > > in pathname.d: > > local object directory_namestring (object pathname) { > # The function DIRECTORY-NAMESTRING is totally underspecified. > # It could return > # a. just the string for the directory portion, > # b. the string for the device + directory portions, > # c. the string for the host + device + directory portions. > # Before we used hosts, we have traditionally returned (b). > # Now, with hosts, we still return (b) since HOST-NAMESTRING returns > # the host part, while there is no way to return just the device > # This makes most sense, given that CLHS says that programs > # should not attempt to concatenate the resulting string with anything. > return string_concat(directory_namestring_parts(pathname)); > } > > problem: > > directory-namestring currenly includes device, but not host. On win32 > I see no problem to include both since valid is either device or host. > If smb. shares whole drive, sharename appears which may or may not be > the same as drive name and goes into directory part of pathname. > There's no way to address particular devices on network machines. Am I > wrong here ? I think you are right. > solution: > > make directory_namestring to use pathname-host. I.e. use device if it > is valid or host if there's no device or nothing as long as both are > NIL. I agree. Bruno? > problem2: > > what is the purpose of OSnamestring ? "returns a namestring of a pathname for the operating system" i.e., its return value should be acceptable to the OS as file name. > Shouldn't it be called rather > 'whole_namestring_when_dir_namestring_is_already_known' (and not using > host) ? actually, on for UNC pathnames on win32, it _should_ include the host. -- Sam Steingold (http://www.podval.org/~sds) running RedHat9 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> (lisp programmers do it better) |
From: Arseny S. <am...@ic...> - 2003-06-23 14:38:47
|
Hi, Monday, June 23, 2003, 11:39:59 PM, you wrote: >> problem2: >> >> what is the purpose of OSnamestring ? > "returns a namestring of a pathname for the operating system" > i.e., its return value should be acceptable to the OS as file name. But does it mean that result of whole_namestring is unacceptable for OS ? -- Best regards, Arseny |
From: Sam S. <sd...@gn...> - 2003-06-23 14:49:22
|
> * In message <172...@ic...> > * On the subject of "Re[2]: directory-namestring and pathname-host" > * Sent on Tue, 24 Jun 2003 01:44:45 +1000 > * Honorable Arseny Slobodjuck <am...@ic...> writes: > > Monday, June 23, 2003, 11:39:59 PM, you wrote: > > >> problem2: > >> > >> what is the purpose of OSnamestring ? > > > "returns a namestring of a pathname for the operating system" > > i.e., its return value should be acceptable to the OS as file name. > > But does it mean that result of whole_namestring is unacceptable for > OS ? look at the sources. it appears that the only time when OSnamestring() and whole_namestring() return different objects is on RiskOS, where name and type are swapped. right? -- Sam Steingold (http://www.podval.org/~sds) running RedHat9 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> I may be getting older, but I refuse to grow up! |
From: Arseny S. <am...@ic...> - 2003-06-24 07:33:47
|
Hi, What is the situation with host and device on UNIX ? I tend to change only win32 (well, os2 too) part however ugly and nongeneral this change would be. -- Best regards, Arseny mailto:am...@ic... |
From: Sam S. <sd...@gn...> - 2003-06-24 13:42:14
|
> * In message <552...@ic...> > * On the subject of "Re[4]: directory-namestring and pathname-host" > * Sent on Tue, 24 Jun 2003 18:32:50 +1100 > * Honorable Arseny Slobodjuck <am...@ic...> writes: > > What is the situation with host and device on UNIX ? see lispbibl.d:2100 and around. there are no hosts and devices on unix, but cygwin defines PATHNAME_UNIX_UNC which results in "//host/path/bar" being parsed as #s(pathname :directory (:absolute "" "host" "path") :name "bar"). > I tend to change only win32 (well, os2 too) part however ugly and > nongeneral this change would be. it's best to only do what one can test. do you have cygwin? -- Sam Steingold (http://www.podval.org/~sds) running RedHat9 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> Those who can't write, write manuals. |
From: Arseny S. <am...@ic...> - 2003-06-24 21:47:04
|
Hello Sam, Tuesday, June 24, 2003, 11:42:03 PM, you wrote: >> What is the situation with host and device on UNIX ? > see lispbibl.d:2100 and around. > there are no hosts and devices on unix, but cygwin defines > PATHNAME_UNIX_UNC which results in "//host/path/bar" being parsed as > #s(pathname :directory (:absolute "" "host" "path") :name "bar"). Aha. Got it. . > it's best to only do what one can test. > do you have cygwin? Yes (though I don't always understand its unixisms). -- Best regards, Arseny |
From: Sam S. <sd...@gn...> - 2003-06-24 21:51:14
|
> * In message <362...@ic...> > * On the subject of "Re[6]: directory-namestring and pathname-host" > * Sent on Wed, 25 Jun 2003 08:49:54 +1000 > * Honorable Arseny Slobodjuck <am...@ic...> writes: > > Tuesday, June 24, 2003, 11:42:03 PM, you wrote: > > > it's best to only do what one can test. > > do you have cygwin? > Yes (though I don't always understand its unixisms). Arseny, cygwin's unixisms are obscure to some unixoids too. :-( just ask - here or on the cygwin list <cy...@cy...> which is available via nntp and http at gmane.org. -- Sam Steingold (http://www.podval.org/~sds) running RedHat9 GNU/Linux <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.palestine-central.com/links.html> To a Lisp hacker, XML is S-expressions with extra cruft. |