Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-10-10 18:57:48 +0400
committerCorinna Vinschen <corinna@vinschen.de>2011-10-10 18:57:48 +0400
commit92b499acff8a35d64ec0f9b27b5df06209656ca9 (patch)
tree028b13e0eb9c8522daa2a868f0593a76d32e5adb /winsup/utils/cygpath.cc
parent4fc8a5c90acb2501178613b04bca32492953884a (diff)
* Align usage output, version output, as well as usage and version
option handling to use the same style throughout all Cygwin utils. Throughout use program_invocation_short_name to refer to current process name in Cygwin executables. * utils.sgml: Align documentation to above change. Add missing sections for getconf, ldd, and setmetamode. * strace.cc (proc_child): Avoid compiler warning.
Diffstat (limited to 'winsup/utils/cygpath.cc')
-rw-r--r--winsup/utils/cygpath.cc100
1 files changed, 47 insertions, 53 deletions
diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc
index 76de6535b..0b4dae99e 100644
--- a/winsup/utils/cygpath.cc
+++ b/winsup/utils/cygpath.cc
@@ -22,6 +22,7 @@ details. */
#include <io.h>
#include <sys/fcntl.h>
#include <sys/cygwin.h>
+#include <cygwin/version.h>
#include <ctype.h>
#include <errno.h>
#include <ddk/ntddk.h>
@@ -30,8 +31,6 @@ details. */
#include "wide_path.h"
#include "loadlib.h"
-static const char version[] = "$Revision$";
-
static char *prog_name;
static char *file_arg, *output_arg;
static int path_flag, unix_flag, windows_flag, absolute_flag;
@@ -57,7 +56,7 @@ static struct option long_options[] = {
{(char *) "short-name", no_argument, NULL, 's'},
{(char *) "type", required_argument, NULL, 't'},
{(char *) "unix", no_argument, NULL, 'u'},
- {(char *) "version", no_argument, NULL, 'v'},
+ {(char *) "version", no_argument, NULL, 'V'},
{(char *) "windows", no_argument, NULL, 'w'},
{(char *) "allusers", no_argument, NULL, 'A'},
{(char *) "desktop", no_argument, NULL, 'D'},
@@ -71,27 +70,31 @@ static struct option long_options[] = {
{0, no_argument, 0, 0}
};
-static char options[] = "ac:df:hilmMopst:uvwAC:DHOPSWF:";
+static char options[] = "ac:df:hilmMopst:uVwAC:DHOPSWF:";
static void
usage (FILE * stream, int status)
{
if (!ignore_flag || !status)
fprintf (stream, "\
-Usage: %s (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME...\n\
- %s [-c HANDLE] \n\
- %s [-ADHOPSW] \n\
- %s [-F ID] \n\
+Usage: %1$s (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME...\n\
+ %1$s [-c HANDLE] \n\
+ %1$s [-ADHOPSW] \n\
+ %1$s [-F ID] \n\
+\n\
Convert Unix and Windows format paths, or output system path information\n\
\n\
Output type options:\n\
+\n\
-d, --dos print DOS (short) form of NAMEs (C:\\PROGRA~1\\)\n\
-m, --mixed like --windows, but with regular slashes (C:/WINNT)\n\
-M, --mode report on mode of file (binmode or textmode)\n\
-u, --unix (default) print Unix form of NAMEs (/cygdrive/c/winnt)\n\
-w, --windows print Windows form of NAMEs (C:\\WINNT)\n\
-t, --type TYPE print TYPE form: 'dos', 'mixed', 'unix', or 'windows'\n\
+\n\
Path conversion options:\n\
+\n\
-a, --absolute output absolute path\n\
-l, --long-name print Windows long form of NAMEs (with -w, -m only)\n\
-p, --path NAME is a PATH list (i.e., '/bin:/usr/bin')\n\
@@ -99,9 +102,11 @@ Path conversion options:\n\
-C, --codepage CP print DOS, Windows, or mixed pathname in Windows\n\
codepage CP. CP can be a numeric codepage identifier,\n\
or one of the reserved words ANSI, OEM, or UTF8.\n\
- If this option is missing, %s defaults to the\n\
+ If this option is missing, %1$s defaults to the\n\
character set defined by the current locale.\n\
+\n\
System information:\n\
+\n\
-A, --allusers use `All Users' instead of current user for -D, -O, -P\n\
-D, --desktop output `Desktop' directory and exit\n\
-H, --homeroot output `Profiles' directory (home root) and exit\n\
@@ -110,7 +115,7 @@ System information:\n\
-S, --sysdir output system directory and exit\n\
-W, --windir output `Windows' directory and exit\n\
-F, --folder ID output special folder with numeric ID and exit\n\
-", prog_name, prog_name, prog_name, prog_name, prog_name);
+", prog_name);
if (ignore_flag)
/* nothing to do */;
else if (stream != stdout)
@@ -118,14 +123,16 @@ System information:\n\
else
{
fprintf (stream, "\
+\n\
Other options:\n\
+\n\
-f, --file FILE read FILE for input; use - to read from STDIN\n\
-o, --option read options from FILE as well (for use with --file)\n\
-c, --close HANDLE close HANDLE (for use in captured process)\n\
-i, --ignore ignore missing argument\n\
-h, --help output usage information and exit\n\
- -v, --version output version information and exit\n\
-");
+ -V, --version output version information and exit\n\
+\n");
}
exit (ignore_flag ? 0 : status);
}
@@ -374,8 +381,8 @@ get_short_paths (char *path)
len = GetShortPathNameW (wpath, NULL, 0);
if (!len)
{
- fprintf (stderr, "%s: cannot create short name of %s\n", prog_name,
- next);
+ fprintf (stderr, "%s: cannot create short name of %s\n",
+ prog_name, next);
exit (2);
}
acc += len + 1;
@@ -393,8 +400,8 @@ get_short_paths (char *path)
len = GetShortPathNameW (wpath, sptr, acc);
if (!len)
{
- fprintf (stderr, "%s: cannot create short name of %s\n", prog_name,
- ptr);
+ fprintf (stderr, "%s: cannot create short name of %s\n",
+ prog_name, ptr);
exit (2);
}
@@ -426,8 +433,8 @@ get_short_name (const char *filename)
DWORD len = GetShortPathNameW (wpath, buf, 32768);
if (!len)
{
- fprintf (stderr, "%s: cannot create short name of %s\n", prog_name,
- filename);
+ fprintf (stderr, "%s: cannot create short name of %s\n",
+ prog_name, filename);
exit (2);
}
len = my_wcstombs (NULL, buf, 0) + 1;
@@ -515,8 +522,8 @@ get_long_name (const char *filename, DWORD& len)
if (err == ERROR_INVALID_PARAMETER)
{
- fprintf (stderr, "%s: cannot create long name of %s\n", prog_name,
- filename);
+ fprintf (stderr, "%s: cannot create long name of %s\n",
+ prog_name, filename);
exit (2);
}
else if (err == ERROR_FILE_NOT_FOUND)
@@ -698,7 +705,8 @@ do_sysfolders (char option)
if (!buf[0])
{
- fprintf (stderr, "%s: failed to retrieve special folder path\n", prog_name);
+ fprintf (stderr, "%s: failed to retrieve special folder path\n",
+ prog_name);
}
else if (!windows_flag)
{
@@ -733,8 +741,8 @@ report_mode (char *filename)
printf ("%s: text\n", filename);
break;
default:
- fprintf (stderr, "%s: file '%s' - %s\n", prog_name, filename,
- strerror (errno));
+ fprintf (stderr, "%s: file '%s' - %s\n", prog_name,
+ filename, strerror (errno));
break;
}
}
@@ -762,7 +770,8 @@ do_pathconv (char *filename)
exit (0);
else
{
- fprintf (stderr, "%s: can't convert empty path\n", prog_name);
+ fprintf (stderr, "%s: can't convert empty path\n",
+ prog_name);
exit (1);
}
}
@@ -863,25 +872,15 @@ do_pathconv (char *filename)
static void
print_version ()
{
- const char *v = strchr (version, ':');
- int len;
- if (!v)
- {
- v = "?";
- len = 1;
- }
- else
- {
- v += 2;
- len = strchr (v, ' ') - v;
- }
- printf ("\
-cygpath (cygwin) %.*s\n\
-Path Conversion Utility\n\
-Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, \n\
- 2007, 2008, 2009, 2010 Red Hat, Inc.\n\
-Compiled on %s\n\
-", len, v, __DATE__);
+ printf ("cygpath (cygwin) %d.%d.%d\n"
+ "Path Conversion Utility\n"
+ "Copyright (C) 1998 - %s Red Hat, Inc.\n"
+ "This is free software; see the source for copying conditions. There is NO\n"
+ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
+ CYGWIN_VERSION_DLL_MAJOR / 1000,
+ CYGWIN_VERSION_DLL_MAJOR % 1000,
+ CYGWIN_VERSION_DLL_MINOR,
+ strrchr (__DATE__, ' ') + 1);
}
static int
@@ -1035,13 +1034,14 @@ do_options (int argc, char **argv, int from_file)
usage (stdout, 0);
break;
- case 'v':
+ case 'V':
print_version ();
exit (0);
default:
- usage (stderr, 1);
- break;
+ fprintf (stderr, "Try `%s --help' for more information.\n",
+ prog_name);
+ exit (1);
}
}
@@ -1099,13 +1099,7 @@ main (int argc, char **argv)
int o;
setlocale (LC_CTYPE, "");
- prog_name = strrchr (argv[0], '/');
- if (!prog_name)
- prog_name = strrchr (argv[0], '\\');
- if (!prog_name)
- prog_name = argv[0];
- else
- prog_name++;
+ prog_name = program_invocation_short_name;
o = do_options (argc, argv, 0);