Index: Modules/main.c =================================================================== --- Modules/main.c (revision 66962) +++ Modules/main.c (working copy) @@ -564,8 +562,17 @@ if (sts==-1 && filename!=NULL) { if ((fp = _wfopen(filename, L"r")) == NULL) { - fprintf(stderr, "%ls: can't open file '%ls': [Errno %d] %s\n", - argv[0], filename, errno, strerror(errno)); + char cfilename[PATH_MAX]; + size_t r = wcstombs(cfilename, filename, PATH_MAX); + if (r == PATH_MAX) + /* cfilename is not null-terminated; + * forcefully null-terminating it + * might break the shift state */ + strcpy(cfilename, ""); + if (r == -1) + strcpy(cfilename, ""); + fprintf(stderr, "%ls: can't open file '%s': [Errno %d] %s\n", + argv[0], cfilename, errno, strerror(errno)); return 2; }