From bcf96e5a496dc5b36f67a8a0c2cc15f7fc19cff5 Mon Sep 17 00:00:00 2001 From: riderkick Date: Thu, 11 Jun 2015 07:32:33 +0800 Subject: [PATCH] fix external program params --- mangadownloader/forms/frmMain.pas | 44 +++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/mangadownloader/forms/frmMain.pas b/mangadownloader/forms/frmMain.pas index fb6548362..24de086cd 100644 --- a/mangadownloader/forms/frmMain.pas +++ b/mangadownloader/forms/frmMain.pas @@ -2549,7 +2549,7 @@ procedure TMainForm.miFavoritesOpenFolderClick(Sender: TObject); Exit; OpenDocument(TrimRightChar( FavoriteManager.FavoriteItem(vtFavorites.FocusedNode^.Index).FavoriteInfo.SaveTo, - ['/', '\'])); + [PathDelim])); end; procedure TMainForm.miDownloadOpenFolderClick(Sender: TObject); @@ -2558,7 +2558,7 @@ procedure TMainForm.miDownloadOpenFolderClick(Sender: TObject); Exit; OpenDocument(TrimRightChar( DLManager.TaskItem(vtDownload.FocusedNode^.Index).DownloadInfo.SaveTo, - ['/', '\'])); + [PathDelim])); end; procedure TMainForm.miFavoritesOpenWithClick(Sender: TObject); @@ -2586,18 +2586,26 @@ procedure TMainForm.miFavoritesOpenWithClick(Sender: TObject); f := ''; FindCloseUTF8(Info); - if f = '' then - fd := TrimRightChar(fd, ['/', '\']); - ff := options.ReadString('general', 'ExternalProgramPath', ''); - s := options.ReadString('general', 'ExternalProgramParams', DEFAULT_EXPARAM); + fd := Trim(TrimRightChar(Trim(fd), [PathDelim])); + f := Trim(TrimChar(Trim(f), [PathDelim])); + + ff := Trim(options.ReadString('general', 'ExternalProgramPath', '')); + s := Trim(options.ReadString('general', 'ExternalProgramParams', DEFAULT_EXPARAM)); + if ff <> '' then begin - s := StringReplace(s, EXPARAM_CHAPTER, f, [rfReplaceAll]); + if (Pos(EXPARAM_PATH + EXPARAM_CHAPTER, s) <> 0) then + f := PathDelim + f; s := StringReplace(s, EXPARAM_PATH, fd, [rfReplaceAll]); + s := StringReplace(s, EXPARAM_CHAPTER, f, [rfReplaceAll]); RunExternalProcess(ff, s, True, False); end else - OpenDocument(fd + f); + begin + if (fd <> '') and (f <> '') then + s := fd + PathDelim + f; + OpenDocument(s); + end; except end; l.Free; @@ -2647,18 +2655,26 @@ procedure TMainForm.miDownloadOpenWithClick(Sender: TObject); FindCloseUTF8(Info); end; - if f = '' then - fd := TrimRightChar(fd, ['/', '\']); - ff := options.ReadString('general', 'ExternalProgramPath', ''); - s := options.ReadString('general', 'ExternalProgramParams', DEFAULT_EXPARAM); + fd := Trim(TrimRightChar(Trim(fd), [PathDelim])); + f := Trim(TrimChar(Trim(f), [PathDelim])); + + ff := Trim(options.ReadString('general', 'ExternalProgramPath', '')); + s := Trim(options.ReadString('general', 'ExternalProgramParams', DEFAULT_EXPARAM)); + if ff <> '' then begin - s := StringReplace(s, EXPARAM_CHAPTER, f, [rfReplaceAll]); + if (Pos(EXPARAM_PATH + EXPARAM_CHAPTER, s) <> 0) then + f := PathDelim + f; s := StringReplace(s, EXPARAM_PATH, fd, [rfReplaceAll]); + s := StringReplace(s, EXPARAM_CHAPTER, f, [rfReplaceAll]); RunExternalProcess(ff, s, True, False); end else - OpenDocument(fd + f); + begin + if (fd <> '') and (f <> '') then + s := fd + PathDelim + f; + OpenDocument(s); + end; except end; l.Free;