From f00c1d2ccd499cb0adfede255c9e704e65931623 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Fri, 19 May 2000 17:06:28 +0000 Subject: [PATCH] * cygpath.cc: add --windir/--sysdir options * utils.sgml: and document them --- winsup/utils/ChangeLog | 5 +++++ winsup/utils/cygpath.cc | 21 +++++++++++++++++++-- winsup/utils/utils.sgml | 3 +++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 3db3b7729..61633af1f 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2000-05-19 DJ Delorie + + * cygpath.cc: add --windir/--sysdir options + * utils.sgml: and document them + Thu May 18 14:38:26 2000 Christopher Faylor * Makefile.in: Eliminate WINSUP_DEPS. diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc index 0eab89d33..e1c5bcd7f 100644 --- a/winsup/utils/cygpath.cc +++ b/winsup/utils/cygpath.cc @@ -35,6 +35,8 @@ static struct option long_options[] = { (char *) "file", required_argument, (int *) &file_arg, 'f'}, { (char *) "version", no_argument, NULL, 'v' }, { (char *) "windows", no_argument, NULL, 'w' }, + { (char *) "windir", no_argument, NULL, 'W' }, + { (char *) "sysdir", no_argument, NULL, 'S' }, { 0, no_argument, 0, 0 } }; @@ -48,6 +50,8 @@ Usage: %s [-p|--path] (-u|--unix)|(-w|--windows) filename\n\ -f|--file file read file for path information\n\ -u|--unix print Unix form of filename\n\ -w|--windows print Windows form of filename\n\ + -W|--windir print `Windows' directory\n\ + -S|--sysdir print `system' directory\n\ -p|--path filename argument is a path\n", prog_name); exit (status); @@ -115,6 +119,7 @@ main (int argc, char **argv) int c; int options_from_file_flag; char *filename; + char buf[MAX_PATH], buf2[MAX_PATH]; prog_name = strrchr (argv[0], '/'); if (prog_name == NULL) @@ -126,7 +131,7 @@ main (int argc, char **argv) unix_flag = 0; windows_flag = 0; options_from_file_flag = 0; - while ((c = getopt_long (argc, argv, (char *) "hac:f:opuvw", long_options, (int *) NULL)) + while ((c = getopt_long (argc, argv, (char *) "hac:f:opSuvwW", long_options, (int *) NULL)) != EOF) { switch (c) @@ -163,13 +168,25 @@ main (int argc, char **argv) windows_flag = 1; break; + case 'W': + GetWindowsDirectory(buf, MAX_PATH); + cygwin_conv_to_posix_path(buf, buf2); + printf("%s\n", buf2); + exit(0); + + case 'S': + GetSystemDirectory(buf, MAX_PATH); + cygwin_conv_to_posix_path(buf, buf2); + printf("%s\n", buf2); + exit(0); + case 'h': usage (stdout, 0); break; case 'v': printf ("Cygwin pathconv version 1.0\n"); - printf ("Copyright 1998 Cygnus Solutions\n"); + printf ("Copyright 1998,1999,2000 Cygnus Solutions\n"); exit (0); default: diff --git a/winsup/utils/utils.sgml b/winsup/utils/utils.sgml index 5fe8cc846..44d5301a4 100644 --- a/winsup/utils/utils.sgml +++ b/winsup/utils/utils.sgml @@ -66,10 +66,13 @@ or if you know what everything is already, just leave this out. Usage: cygpath [-p|--path] (-u|--unix)|(-w|--windows) filename cygpath [-v|--version] + cygpath [-W|--windir|-S|--sysdir] -u|--unix print UNIX form of filename -w|--windows print Windows form of filename -p|--path filename argument is a path -v|--version print program version + -W|--windir print windows directory + -S|--sysdir print system directory The cygpath program is a utility that