Bug 773961 - Append '\' only if a path does not end with '\'. r=daveryeo

Sometimes, initialDir.get() return a path with '\' at last. In this case, WinFileDlg() fails because of double '\' in a path.
This commit is contained in:
Ryan VanderMeulen 2012-07-21 14:32:25 -04:00
parent 8e80867af3
commit d54b168bf0

View File

@ -118,7 +118,9 @@ NS_IMETHODIMP nsFilePicker::Show(PRInt16 *retval)
if (mMode == modeGetFolder) {
PL_strncat(filedlg.szFullFile, initialDir.get(), MAX_PATH);
PL_strncat(filedlg.szFullFile, "\\", 1);
if (filedlg.szFullFile[0] &&
filedlg.szFullFile[strlen(filedlg.szFullFile) - 1] != '\\')
PL_strncat(filedlg.szFullFile, "\\", 1);
PL_strncat(filedlg.szFullFile, "^", 1);
filedlg.fl = FDS_OPEN_DIALOG | FDS_CENTER;
filedlg.pfnDlgProc = DirDialogProc;
@ -139,7 +141,9 @@ NS_IMETHODIMP nsFilePicker::Show(PRInt16 *retval)
}
else {
PL_strncpy(filedlg.szFullFile, initialDir.get(), MAX_PATH);
PL_strncat(filedlg.szFullFile, "\\", 1);
if (filedlg.szFullFile[0] &&
filedlg.szFullFile[strlen(filedlg.szFullFile) - 1] != '\\')
PL_strncat(filedlg.szFullFile, "\\", 1);
PL_strncat(filedlg.szFullFile, fileBuffer.get(), MAX_PATH);
filedlg.fl = FDS_CENTER;
if (mMode == modeSave) {