When the user creates files or directories with
localised names (eg Chinese, Korean) those files and
directories are not properly removed.
Proposed solution:
in Source\exehead\util.c, in the myDelete function
remove the files by their short filename.
void NSISCALL myDelete(char *buf, int flags)
{
static char lbuf[NSIS_MAX_STRLEN];
HANDLE h;
WIN32_FIND_DATA fd;
char *fn;
char *pFName; // <------ new line
int valid_dir=is_valid_instpath(buf);
...
...
pFName = fd.cAlternateFileName[0] == '\0' ?
fd.cFileName : fd.cAlternateFileName;
#ifdef NSIS_SUPPORT_RMDIR
if (pFName[0] != '.' ||
(pFName[1] != '.' && pFName[1]))
#endif//NSIS_SUPPORT_RMDIR
{
mystrcpy(fn,pFName);
My email is fuxiulian@yahoo.com if you want to contact me.
Logged In: YES
user_id=584402
Thanks, I'll take a look at this after 2.12.
Logged In: YES
user_id=584402
Thanks, fixed. However, instead of always using the short
name, as suggested, I've made it only use the short name for
files contains a question mark. This way, the logs stay nice
and clean of 8.3 names, unless absolutely necessary.