I don't remember whether we use fake main for Cygwin or have another
mechanism to get the environment and the arguments.
You should try and add some print statements in the NSProcessInfo code
that parses the environment. In the end it may well be that Cygwin
itself already screws up the environment. Cygwin tries to convert
Windows path to Unix ones. The help on this subject
(http://www.cygwin.com/cygwin-ug-net/setup-env.html) really isn't much.
I think the simplest solution is just to unset TEMP
Fred
On 16.08.2011 19:55, Riccardo Mottola wrote:
I am looking at the cygwin problem with temporary directories:
I have
TEMP=/tmp
TMP=/tmp
the NSTemproraryDirectoy code first looks for these env. variables
before deciding to use /tmp
The problem is that:
baseTempDirName = [env objectForKey: @"TEMP"]
returns bogus stuff
If I unset TEMP and TMP it works.
So I think the processinfo parsing is wrong.
My env is:
HOMEPATH=\Documents and Settings\Riccardo Mottola
MANPATH=/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man
APPDATA=C:\Documents and Settings\Riccardo Mottola\Application Data
HOSTNAME=saruman
GNUSTEP_IS_FLATTENED=yes
TERM=cygwin
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel
WINDIR=C:\WINNT
GNUSTEP_LOCAL_ROOT=/Local
OLDPWD=/home/multix/modules/core/base
USERDOMAIN=SARUMAN
OS=Windows_NT
ALLUSERSPROFILE=C:\Documents and Settings\All Users
GNUSTEP_HOST=i686-pc-cygwin
Os2LibPath=C:\WINNT\system32\os2\dll;
USER=Riccardo Mottola
TEMP=/tmp
LD_LIBRARY_PATH=/home/multix/GNUstep/Library/Libraries:/Local/Library/Libraries:/System/Library/Libraries
COMMONPROGRAMFILES=C:\Program Files\Common Files
GUILE_LOAD_PATH=/home/multix/GNUstep/Library/Libraries/Guile:/Local/Library/Libr
aries/Guile:/System/Library/Libraries/Guile
GNUSTEP_MAKEFILES=/System/Library/Makefiles
GNUSTEP_NETWORK_ROOT=/Network
GNUSTEP_FLATTENED=yes
GNUSTEP_HOST_OS=cygwin
USERNAME=multix
PROCESSOR_LEVEL=15
GNUSTEP_HOST_VENDOR=pc
PATH=/home/multix/GNUstep/Tools:/Local/Tools:/System/Tools:/usr/local/bin:/usr/bin:/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:/cygdrive/c/WINNT/System32/Wbem:/cygdrive/c/Program
Files/ATI Technologies/ATI Control
Panel:/cygdrive/c/GNUstep/mingw/bin:/cygdrive/c/GNUstep/GNUstep/System/Tools
PWD=/home/multix/modules/core/base/Tests
SYSTEMDRIVE=C:
LANG=C.UTF-8
USERPROFILE=C:\Documents and Settings\Riccardo Mottola
GNUSTEP_HOST_CPU=ix86
PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
LOGONSERVER=\\SARUMAN
PROCESSOR_ARCHITECTURE=x86
!C:=C:\cygwin\bin
SHLVL=1
HOME=/home/multix
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
GNUSTEP_USER_ROOT=/home/multix/GNUstep
HOMEDRIVE=C:
GNUSTEP_SYSTEM_ROOT=/System
PROMPT=$P$G
COMSPEC=C:\WINNT\system32\cmd.exe
TMP=/tmp
SYSTEMROOT=C:\WINNT
GNUSTEP_PATHLIST=/System:/Network:/Local:/home/multix/GNUstep
PRINTER=Fax
PROCESSOR_REVISION=0207
CLASSPATH=/home/multix/GNUstep/Library/Libraries/Java:/Local/Library/Libraries/Java:/System/Library/Libraries/Java
LIBRARY_COMBO=gnu-gnu-gnu
INFOPATH=/usr/local/info:/usr/share/info:/usr/info::/System/Library/Documentation/info::/Local/Library/Documentation/info::/home/multix/GNUstep/Library/Documentation/info:
PROGRAMFILES=C:\Program Files
NUMBER_OF_PROCESSORS=1
COMPUTERNAME=SARUMAN
_=/usr/bin/env
But process info reports.
{"!C:" = "C:\\cygwin\\bin"; "ADDITIONAL_INCLUDE_DIRS" =
"-I/System/Library/Makefiles/TestFramework "; ALLUSERSPROFILE =
"C:\\Documents and Settings\\All Users"; APPDATA = "C:\\Documents and
Settings\\Riccardo Mottola\\Application Data"; CC = gcc; CLASSPATH =
"/home/multix/GNUstep/Library/Libraries/Java:/Local/Library/Libraries/Java:/System/Library/Libraries/Java";
COMMONPROGRAMFILES = "C:\\Program Files\\Common Files"; COMPUTERNAME =
SARUMAN; COMSPEC = "C:\\WINNT\\system32\\cmd.exe"; "CRASH_ON_ZOMBIE" =
YES; "GNUSTEP_FLATTENED" = yes; "GNUSTEP_HOST" = "i686-pc-cygwin";
"GNUSTEP_HOST_CPU" = ix86; "GNUSTEP_HOST_OS" = cygwin;
"GNUSTEP_HOST_VENDOR" = pc; "GNUSTEP_IS_FLATTENED" = yes;
"GNUSTEP_LOCAL_ROOT" = "/Local"; "GNUSTEP_MAKEFILES" =
"/System/Library/Makefiles"; "GNUSTEP_NETWORK_ROOT" = "/Network";
"GNUSTEP_PATHLIST" = "/System:/Network:/Local:/home/multix/GNUstep";
"GNUSTEP_SYSTEM_ROOT" = "/System"; "GNUSTEP_USER_ROOT" =
"/home/multix/GNUstep"; GSTESTDIR =
"/home/multix/modules/core/base/Tests"; GSTESTLOG =
"/home/multix/modules/core/base/Tests/tests.log"; GSTESTMODE = normal;
GSTESTROOT = base; GSTESTSUM =
"/home/multix/modules/core/base/Tests/tests.sum"; GSTESTTOP =
"/System/Library/Makefiles/TestFramework"; "GUILE_LOAD_PATH" =
"/home/multix/GNUstep/Library/Libraries/Guile:/Local/Library/Libraries/Guile:/System/Library/Libraries/Guile";
HOME = "/home/multix"; HOMEDRIVE = "C:"; HOMEPATH = "\\Documents and
Settings\\Riccardo Mottola"; HOSTNAME = saruman; INFOPATH =
"/usr/local/info:/usr/share/info:/usr/info::/System/Library/Documentation/info::/Local/Library/Documentation/info::/home/multix/GNUstep/Library/Documentation/info:";
LANG = "C.UTF-8"; "LD_LIBRARY_PATH" =
"/home/multix/GNUstep/Library/Libraries:/Local/Library/Libraries:/System/Library/Libraries";
"LIBRARY_COMBO" = "gnu-gnu-gnu"; LOGONSERVER = "\\\\SARUMAN"; MANPATH =
"/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man"; NSZombieEnabled
= YES; "NUMBER_OF_PROCESSORS" = 1; OLDPWD =
"/home/multix/modules/core/base/Tests"; OS = "Windows_NT"; Os2LibPath =
"C:\\WINNT\\system32\\os2\\dll;"; PATH =
"/home/multix/GNUstep/Tools:/Local/Tools:/System/Tools:/usr/local/bin:/usr/bin:/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:/cygdrive/c/WINNT/System32/Wbem:/cygdrive/c/Program
Files/ATI Technologies/ATI Control
Panel:/cygdrive/c/GNUstep/mingw/bin:/cygdrive/c/GNUstep/GNUstep/System/Tools";
PATHEXT = ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"; PRINTER =
Fax; "PROCESSOR_ARCHITECTURE" = x86; "PROCESSOR_IDENTIFIER" = "x86
Family 15 Model 2 Stepping 7, GenuineIntel"; "PROCESSOR_LEVEL" = 15;
"PROCESSOR_REVISION" = 0207; PROGRAMFILES = "C:\\Program Files"; PROMPT
= "$P$G"; PWD = "/home/multix/modules/core/base/Tests/base/Functions";
SHLVL = 2; SYSTEMDRIVE = "C:"; SYSTEMROOT = "C:\\WINNT"; TEMP =
"GNUmakefile base oldtests.log oldtests.sum tests.log tests.log.bz2
tests.sum"; TERM = cygwin; TMP = "/tmp"; USER = "Riccardo Mottola";
USERDOMAIN = SARUMAN; USERNAME = multix; USERPROFILE = "C:\\Documents
and Settings\\Riccardo Mottola"; WINDIR = "C:\\WINNT"; "_" =
"./obj/NSPathUtilities"; }
if you see, "TEMP" is screwed, but "TMP" is correct. It contains values
not even present in "env"... it is the content of the current directory
$ pwd
/home/multix/modules/core/base/Tests
$ ls
GNUmakefile oldtests.log tests.log tests.sum
base oldtests.sum tests.log.bz2
I really do wonder where the bug is.
_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev