summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/utils/ChangeLog5
-rw-r--r--winsup/utils/cygpath.cc13
2 files changed, 16 insertions, 2 deletions
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 <joerg.schaible@gmx.de>
+
+ * cygpath.cc (main): Support -w for Windows (System) directories and
+ return physical correct orthography for the Windows System dir.
+
2001-07-14 Chris Genly <chgenly@alum.mit.edu>
* 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);