From: "Vadim (vadcx)" <[email protected]> Inspired by https://stackoverflow.com/q/4090301
If other known actions have easy aliases, runas should have one too and hint at its existence. --- src/cygstart/cygstart.1 | 4 ++++ src/cygstart/cygstart.c | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/cygstart/cygstart.1 b/src/cygstart/cygstart.1 index c641a4c..7701115 100644 --- a/src/cygstart/cygstart.1 +++ b/src/cygstart/cygstart.1 @@ -56,6 +56,10 @@ Short for: \fB\-\-action\fP \fIfind\fP \fB\-p\fP, \fB\-\-print\fP Short for: \fB\-\-action\fP \fIprint\fP +.TP +\fB\-r\fP, \fB\-\-runas\fP +Short for: \fB\-\-action\fP \fIrunas\fP + .TP \fIDirectory options\fP diff --git a/src/cygstart/cygstart.c b/src/cygstart/cygstart.c index 7e5bf3a..d995d9b 100644 --- a/src/cygstart/cygstart.c +++ b/src/cygstart/cygstart.c @@ -41,6 +41,7 @@ #define ACTION_EDIT "edit" #define ACTION_FIND "find" #define ACTION_PRINT "print" +#define ACTION_RUNAS "runas" /* MSDN reference URL */ #define MSDN_URL "http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx" @@ -150,6 +151,8 @@ main (int argc, const char **argv) "Short for: --action find", NULL}, {"print", 'p', POPT_ARG_NONE, NULL, 'p', "Short for: --action print", NULL}, + {"runas", 'r', POPT_ARG_NONE, NULL, 'r', + "Short for: --action runas", NULL}, {NULL, '\0', 0, NULL, 0, NULL, NULL} }; @@ -223,7 +226,7 @@ main (int argc, const char **argv) "Display version information", NULL}, {"license", '\0', POPT_ARG_NONE, NULL, 'l', "Display licensing information", NULL}, - {"reference", '\0', POPT_ARG_NONE, NULL, 'r', + {"reference", '\0', POPT_ARG_NONE, NULL, 'W', "Open MSDN reference for ShellExecute", NULL}, {NULL, '\0', 0, NULL, 0, NULL, NULL} }; @@ -294,7 +297,7 @@ main (int argc, const char **argv) if (workDir) free (workDir); return (0); - case 'r': + case 'W': cygStart (MSDN_URL, NULL, NULL, NULL, SW_NORMAL, startFlags); poptFreeContext (optCon); free (program_name); @@ -350,6 +353,13 @@ main (int argc, const char **argv) exit (1); } break; + case 'r': + if ((action = mbstowcs_dup (ACTION_RUNAS)) == NULL) + { + fprintf (stderr, "%s: memory allocation error\n", argv[0]); + exit (1); + } + break; /* Directory options */ case 'd': -- 2.50.1
