Index: loop.c =================================================================== --- loop.c (revision 64516) +++ loop.c (working copy) @@ -8,6 +8,7 @@ { int count = -1; char *command; + wchar_t *name_copy; /* Used to copy the argv[0] */ if (argc < 2 || argc > 3) { fprintf(stderr, "usage: loop [count]\n"); @@ -19,8 +20,19 @@ count = atoi(argv[2]); } - Py_SetProgramName(argv[0]); + /* Returns the number of chars minus the '\0' */ + size_t nameSize = mbstowcs(NULL, argv[0], 0); + if (nameSize == (size_t) -1){ + fprintf(stderr, "\nCould not convert argument 0 to wideCharString: %s\n", argv[0]); + return 1; + } + name_copy = PyMem_Malloc((nameSize + 1) * sizeof(wchar_t)); + /* Copies (nameSize + 1) chars from argv[0] to name_copy */ + mbstowcs(name_copy, argv[0], nameSize + 1); + + Py_SetProgramName(name_copy); + /* uncomment this if you don't want to load site.py */ /* Py_NoSiteFlag = 1; */