diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index c641f74dc..ad3be304a 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2001-08-14 Joerg Schaible + + * cygpath.cc (main): Support -w for Windows (System) directories and + return physical correct orthography for the Windows System dir. + 2001-07-14 Chris Genly * regtool.cc (find_key): Handle keys with only one subkey. diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index 8e2aa1d89..afe90ea7f 100644 --- a/winsup/utils/cygpath.cc +++ b/winsup/utils/cygpath.cc @@ -208,6 +208,7 @@ main (int argc, char **argv) int options_from_file_flag; char *filename; char buf[MAX_PATH], buf2[MAX_PATH]; + WIN32_FIND_DATA w32_fd; prog_name = strrchr (argv[0], '/'); if (prog_name == NULL) @@ -266,13 +267,21 @@ main (int argc, char **argv) case 'W': GetWindowsDirectory(buf, MAX_PATH); - cygwin_conv_to_posix_path(buf, buf2); + if (!windows_flag) + cygwin_conv_to_posix_path(buf, buf2); + else + strcpy(buf2, buf); printf("%s\n", buf2); exit(0); case 'S': GetSystemDirectory(buf, MAX_PATH); - cygwin_conv_to_posix_path(buf, buf2); + FindFirstFile(buf, &w32_fd); + strcpy(strrchr(buf, '\\')+1, w32_fd.cFileName); + if (!windows_flag) + cygwin_conv_to_posix_path(buf, buf2); + else + strcpy(buf2, buf); printf("%s\n", buf2); exit(0);