summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/strace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/strace.cc')
-rw-r--r--winsup/cygwin/strace.cc32
1 files changed, 15 insertions, 17 deletions
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index beba5b335..4670f8a9a 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -52,11 +52,11 @@ strace::hello ()
__small_sprintf (pidbuf, "(pid %d, ppid %d)", myself->pid, myself->ppid ?: 1);
else
{
- GetModuleFileName (NULL, myself->progname, sizeof (myself->progname));
+ GetModuleFileNameW (NULL, myself->progname, sizeof (myself->progname));
__small_sprintf (pidbuf, "(windows pid %d)", GetCurrentProcessId ());
}
prntf (1, NULL, "**********************************************");
- prntf (1, NULL, "Program name: %s %s", myself->progname, pidbuf);
+ prntf (1, NULL, "Program name: %W %s", myself->progname, pidbuf);
prntf (1, NULL, "App version: %d.%d, api: %d.%d",
user_data->dll_major, user_data->dll_minor,
user_data->api_major, user_data->api_minor);
@@ -135,7 +135,7 @@ strace::vsprntf (char *buf, const char *func, const char *infmt, va_list ap)
int microsec = microseconds ();
lmicrosec = microsec;
- __small_sprintf (fmt, "%7d [%s] %s ", microsec, tn, "%s %s%s");
+ __small_sprintf (fmt, "%7d [%s] %s ", microsec, tn, "%W %s%s");
SetLastError (err);
@@ -143,34 +143,32 @@ strace::vsprntf (char *buf, const char *func, const char *infmt, va_list ap)
count = 0;
else
{
- char *pn;
+ PWCHAR pn = NULL;
+ WCHAR progname[NT_MAX_PATH];
if (!cygwin_finished_initializing)
- pn = myself ? myself->progname : NULL;
+ pn = (myself) ? myself->progname : NULL;
else if (__progname)
- pn = __progname;
- else
- pn = NULL;
+ sys_mbstowcs(pn = progname, NT_MAX_PATH, __progname);
- char *p;
- char progname[NT_MAX_PATH];
+ PWCHAR p;
if (!pn)
- GetModuleFileName (NULL, pn = progname, sizeof (progname));
+ GetModuleFileNameW (NULL, pn = progname, sizeof (progname));
if (!pn)
/* hmm */;
- else if ((p = strrchr (pn, '\\')) != NULL)
+ else if ((p = wcsrchr (pn, L'\\')) != NULL)
p++;
- else if ((p = strrchr (pn, '/')) != NULL)
+ else if ((p = wcsrchr (pn, L'/')) != NULL)
p++;
else
p = pn;
if (p != progname)
- strcpy (progname, p);
- if ((p = strrchr (progname, '.')) != NULL
- && ascii_strcasematch (p, ".exe"))
+ wcscpy (progname, p);
+ if ((p = wcsrchr (progname, '.')) != NULL
+ && !wcscasecmp (p, L".exe"))
*p = '\000';
p = progname;
char tmpbuf[20];
- count = __small_sprintf (buf, fmt, p && *p ? p : "?", mypid (tmpbuf),
+ count = __small_sprintf (buf, fmt, *p ? p : L"?", mypid (tmpbuf),
execing ? "!" : "");
if (func)
count += getfunc (buf + count, func);