From: Earnie B. <ea...@us...> - 2001-11-30 17:38:13
|
Update of /cvsroot/mingw/msys/rt/src/winsup/cygwin In directory usw-pr-cvs1:/tmp/cvs-serv28286/winsup/cygwin Modified Files: ChangeLog.MSYS path.cc path.h spawn.cc syscalls.cc Added Files: FIXME Log Message: 2001-11-30 Earnie Boyd <ea...@us...> * winsup/cygwin/spawn.cc (spawn_guts): Add path name translation for newargv. * winsup/cygwin/path.h: Add FIXME. * winsup/cygwin/path.cc: Ditto. (mkrelpath): Add debug_printf for entry and exit. * winsup/cygwin/spawn.cc: Ditto. * winsup/cygwin/FIXME: New file. * winsup/cygwin/include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Increment. * MSYS_VS_CYGWIN: Add new items for release 1.0.2 * MSYS_LICENSE: Reworded. * MSYS_MISSION: Add preamble. * config.guess: Newer version. * config.sub: Ditto. --- NEW FILE: FIXME --- File: FIXME Copyright (C): 2001 Earnie Boyd <ea...@us...> Distribution: See MSYS_LICENSE $Revision: 1.1 $ Revision $Date: 2001/11/30 16:41:09 $ FIXME-0.1: spawn.cc: Earnie Boyd <ea...@us...> FIXME-0.2: spawn.cc: Earnie Boyd <ea...@us...> FIXME-1.0: spawn.cc, path.h, path.cc: Earnie Boyd <ea...@us...> Index: ChangeLog.MSYS =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/cygwin/ChangeLog.MSYS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ChangeLog.MSYS 2001/10/14 14:57:52 1.1 --- ChangeLog.MSYS 2001/11/30 16:41:08 1.2 *************** *** 1,2 **** --- 1,12 ---- + 2001-11-30 Earnie Boyd <ea...@us...> + + * spawn.cc (spawn_guts): Add path name translation for newargv. + * path.h: Add FIXME. + * path.cc: Ditto. + (mkrelpath): Add debug_printf for entry and exit. + * spawn.cc: Ditto. + * FIXME: New file. + * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Increment. + 2001-09-28 Earnie Boyd <earnie@SF.net> Index: path.cc =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/cygwin/path.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** path.cc 2001/10/15 22:22:33 1.3 --- path.cc 2001/11/30 16:41:09 1.4 *************** *** 286,289 **** --- 286,290 ---- { char cwd_win32[MAX_PATH]; + debug_printf("entr %s", path); if (!cygheap->cwd.get (cwd_win32, 0)) return; *************** *** 306,309 **** --- 307,311 ---- if (!*path) strcpy (path, "."); + debug_printf("exit %s", path); } *************** *** 1587,1591 **** res = mount_table->add_item (RootPath, "/", mount_flags, FALSE); res = mount_table->add_item (RootPath, "/usr", mount_flags, FALSE); ! res = mount_table->add_item (DllPath, "/bin", mount_flags, FALSE); strcat(RootPath, "\\home"); --- 1589,1602 ---- res = mount_table->add_item (RootPath, "/", mount_flags, FALSE); res = mount_table->add_item (RootPath, "/usr", mount_flags, FALSE); ! //FIXME-1.0: ! // In order to pass Win32 paths to Win32 programs and POSIX paths to ! // MSYS programs we must know if we have MSYS programs. The flag ! // MOUNT_CYGWIN_EXEC is being used for this purpose. Once iscygexec ! // is fixed to know that we have an MSYS program based on the msys dll ! // being present then we can remove this. ! // NOTE: I added the /usr/bin mount point simply to mark it as ! // containing MSYS programs. It can be removed once fixed. ! res = mount_table->add_item (DllPath, "/bin", MOUNT_CYGWIN_EXEC | mount_flags, FALSE); ! res = mount_table->add_item (DllPath, "/usr/bin", MOUNT_CYGWIN_EXEC | mount_flags, FALSE); strcat(RootPath, "\\home"); Index: path.h =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/cygwin/path.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** path.h 2001/10/15 22:22:33 1.2 --- path.h 2001/11/30 16:41:15 1.3 *************** *** 80,83 **** --- 80,87 ---- int issymlink () const {return path_flags & PATH_SYMLINK;} int issocket () const {return path_flags & PATH_SOCKET;} + // FIXME-1.0: + // Need to change iscygexec based on whether or not the .exe contains + // a msys-1.0.dll or not. When this fix occurs, changes to spawn.cc + // with a FIXME-1.0 designator will need to occur. int iscygexec () const {return path_flags & PATH_CYGWIN_EXEC;} executable_states exec_state () Index: spawn.cc =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/cygwin/spawn.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** spawn.cc 2001/10/15 22:22:33 1.2 --- spawn.cc 2001/11/30 16:41:15 1.3 *************** *** 474,477 **** --- 474,510 ---- else { + // FIXME-1.0: + // When iscygexec is fixed to truely identify an msys executable + // the filter coding for an occurance of .*/bin.* needs to be + // removed. + for (int i = 0; i < newargv.argc; i++) + { + //convert argv to win32 + char tmpbuf[MAX_PATH]; + // FIXME-0.1: + // Need to add a filter so that if newargv[0] contains + // .*/bin.* it doesn't convert to a win32 path. + // NOTE: This is a temporary work around until the FIXME-1.0 + // can be developed. + // + // FIXME-0.2 + // Need to filter win32 one character switches of the type /x + // where / switch indicator and x is the switch operator. The + // condition for this is that the string length is exactly 2. + if (strchr(newargv[i], '/')) + { + if (strstr (newargv[i], "/bin") == 0 && + strstr (newargv[i], "/sbin") == 0 && + strlen (newargv[i]) != 2 + ) + { + cygwin_conv_to_win32_path(newargv[i], tmpbuf); + debug_printf("%d of %d, %s, %s", i, ac, newargv[i], tmpbuf); + { + strcpy(newargv[i], tmpbuf); + } + } + } + } for (int i = 0; i < newargv.argc; i++) { Index: syscalls.cc =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/cygwin/syscalls.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** syscalls.cc 2001/10/15 22:22:33 1.2 --- syscalls.cc 2001/11/30 16:41:16 1.3 *************** *** 1067,1071 **** MALLOC_CHECK; ! debug_printf ("%s (%s, %p)", caller, name, buf); path_conv real_path (name, (nofollow ? PC_SYM_NOFOLLOW : PC_SYM_FOLLOW) | --- 1067,1071 ---- MALLOC_CHECK; ! debug_printf ("%s (%s, %p) %s", caller, name, buf, buf); path_conv real_path (name, (nofollow ? PC_SYM_NOFOLLOW : PC_SYM_FOLLOW) | *************** *** 1089,1093 **** atts = real_path.file_attributes (); ! debug_printf ("%d = file_attributes for '%s'", atts, real_path.get_win32 ()); dtype = real_path.get_drive_type (); --- 1089,1093 ---- atts = real_path.file_attributes (); ! debug_printf ("%s %d = file_attributes for '%s'", caller, atts, real_path.get_win32 ()); dtype = real_path.get_drive_type (); |