Fixed and committed to the SVN. Thanks for reporting. Best, Scuri
Em sáb, 25 de mai de 2019 às 10:45, Ranier VF <ranier_...@hotmail.com> escreveu: > Hi, > Multiple fixes in iupwin_newfiledlg.c: > > --- ..\..\a\srcfiledlg\iupwin_newfiledlg.cpp Fri Sep 14 17:33:33 2018 > +++ iupwin_newfiledlg.cpp Sat May 25 10:43:31 2019 > @@ -334,48 +334,25 @@ > COMDLG_FILTERSPEC* filters = > (COMDLG_FILTERSPEC*)malloc((buffSize)*sizeof(COMDLG_FILTERSPEC)); > > /* replace symbols "|" by terminator "\0" */ > - > - while (*name) > + if (name && *name) > { > - char *filter; > - filter = name; > - while (*filter) > - { > - if (*filter == '|') > - { > - *filter = 0; > - filters[i].pszName = iupwinStrToSystem(name); > - break; > - } > - filter++; > - } > - > - if (!filter) > - break; > - > - name = ++filter; > - > - while (*filter) > + char *filter = name; > + while (filter && *filter) > { > if (*filter == '|') > { > - *filter = 0; > - filters[i].pszSpec = iupwinStrToSystem(name); > - break; > + *filter = '\0'; > + filters[i].pszName = iupwinStrToSystem(name); > } > - filter++; > + ++filter; > + ++i; > + if (i == 50) > + break; > } > - > if (!filter) > - break; > - > - i++; > + break; > name = ++filter; > - > - if (i == 50) > - break; > } > - > *size = i; > return filters; > } > @@ -646,8 +623,8 @@ > si = winNewFileDlgParseName(wdir); > if (si) > hr = pfd->SetFolder(si); > - free(directory); > } > + free(directory); > > value = iupAttribGet(ih, "TITLE"); > if (value) > @@ -695,13 +672,8 @@ > dir_len = 0; > > iupAttribSetStrId(ih, "MULTIVALUE", 1, filename + dir_len); > - > iupAttribSetStr(ih, "VALUE", filename); /* here value is not > separated by '|' */ > - > iupAttribSetInt(ih, "MULTIVALUECOUNT", 2); > - free(dir); > - CoTaskMemFree(pszFilePath); > - > if (winIsFile(pszFilePath)) /* check if file exists */ > { > iupAttribSet(ih, "FILEEXIST", "YES"); > @@ -712,6 +684,8 @@ > iupAttribSet(ih, "FILEEXIST", "NO"); > iupAttribSet(ih, "STATUS", "1"); > } > + free(dir); > + CoTaskMemFree(pszFilePath); > } > else > iupAttribSet(ih, "STATUS", "-1"); > @@ -719,7 +693,7 @@ > psiResult->Release(); > } > } > - else > + else if (opfd != NULL) > { > IShellItemArray *psiaResult; > > @@ -798,8 +772,8 @@ > char *fname = iupStrFileGetTitle(filename); > sprintf(nameid, "MULTIVALUE%d", i + 1); > iupAttribSetStrf(ih, nameid, "%s%s", dir, fname); > - > iupAttribSetStrf(ih, "VALUE", "%s%s|", value, > iupAttribGetId(ih, "MULTIVALUE", i + 1)); > + free(fname); > } > else > { > > Best regards, > Ranier Vilela_______________________________________________ > Iup-users mailing list > Iup-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/iup-users >
_______________________________________________ Iup-users mailing list Iup-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iup-users