From 1dbc2f30d52b0666bcb88789f2f8f22a3a3f279b Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Thu, 9 Apr 2020 16:00:10 +0200 Subject: [PATCH] Address #9368 pdfview creates a temp pdf file to determine the standard pdf viewer, code simplification, reducing dll dependencies Patch by Eugene. --- .../packaging/installer/include/filelist.nsh | 2 - development/Win32/pdfview/pdfview.nsi | 58 +++++-------------- status.23x | 2 + 3 files changed, 17 insertions(+), 45 deletions(-) diff --git a/development/Win32/packaging/installer/include/filelist.nsh b/development/Win32/packaging/installer/include/filelist.nsh index 5447db01fa..2efd844b07 100644 --- a/development/Win32/packaging/installer/include/filelist.nsh +++ b/development/Win32/packaging/installer/include/filelist.nsh @@ -132,8 +132,6 @@ Lists of files to include in the installer !macro FileListPDFViewBin COMMAND DIRECTORY ${FILE}pdfview.exe" - ${FILE}System.dll" - ${FILE}Console.dll" !macroend diff --git a/development/Win32/pdfview/pdfview.nsi b/development/Win32/pdfview/pdfview.nsi index b8c5b1a0fa..5e49a1ee8d 100644 --- a/development/Win32/pdfview/pdfview.nsi +++ b/development/Win32/pdfview/pdfview.nsi @@ -10,9 +10,7 @@ but works around the file locking problems of Adobe Reader and Acrobat. */ -# FIXME -#Unicode true -#doesn't work with the Uniode system.dll of NSIS 3.0.2 +Unicode true !include LogicLib.nsh !include FileFunc.nsh @@ -34,11 +32,9 @@ RequestExecutionLevel user # Variables Var Character -Var RunAppReturn Var OriginalFile Var OriginalFileName -Var OriginalDir Var PDFFile Var ViewerFileName @@ -46,32 +42,6 @@ Var Viewer Var ViewerHandle Var ViewerVersion -#-------------------------------- -# Macros - -!macro SystemCall STACK - - # Call a Windows API function - - Push `${STACK}` - CallInstDLL "$EXEDIR\System.dll" Call - -!macroend - -!macro HideConsole COMMAND_LINE - - # Run an application and hide console output - - Push `${COMMAND_LINE}` - CallInstDLL "$EXEDIR\Console.dll" Exec - Pop $RunAppReturn - - ${If} $RunAppReturn == "error" - MessageBox MB_OK|MB_ICONSTOP "Error opening PDF file $PDFFile." - ${EndIf} - -!macroend - #-------------------------------- # PDF viewing @@ -80,30 +50,32 @@ Section "View PDF file" InitPluginsDir # Temporary directory for PDF file # Command line parameters - ${GetParameters} $OriginalFile + ${GetParameters} $OriginalFileName # Trim quotes - StrCpy $Character $OriginalFile 1 + StrCpy $Character $OriginalFileName 1 ${If} $Character == '"' - StrCpy $OriginalFile $OriginalFile "" 1 + StrCpy $OriginalFileName $OriginalFileName "" 1 ${EndIf} - StrCpy $Character $OriginalFile 1 -1 + StrCpy $Character $OriginalFileName 1 -1 ${If} $Character == '"' - StrCpy $OriginalFile $OriginalFile -1 + StrCpy $OriginalFileName $OriginalFileName -1 ${EndIf} - GetFullPathName $OriginalFile $OriginalFile - ${GetFileName} $OriginalFile $OriginalFileName - ${GetParent} $OriginalFile $OriginalDir # tmpbuf - ${GetParent} $OriginalDir $OriginalDir # tmpdir + GetFullPathName $OriginalFile $OriginalFileName SetOutPath $TEMP # The LyX tmpbuf should not be locked StrCpy $PDFFile $PLUGINSDIR\$OriginalFileName # Check whether the file will be opened with Adobe Reader or Adobe Acrobat - !insertmacro SystemCall "shell32::FindExecutable(t '$OriginalFile', t '', t .s)" - Pop $ViewerFileName + + FileOpen $R0 "$PLUGINSDIR\a.pdf" "w" #create a temp pdf file with a simple name + FileClose $R0 + + #find stadard executable for "a.pdf", writes result in $0 (".r0" below) + System::Call "shell32::FindExecutable(t '$PLUGINSDIR\a.pdf', t '', t .r0)" + StrCpy $ViewerFileName $0 ${GetFileName} $ViewerFileName $Viewer ${If} $Viewer == "" @@ -148,7 +120,7 @@ Section "View PDF file" CopyFiles /SILENT $OriginalFile $PDFFile # Open a new view - !insertmacro HideConsole '"$ViewerFileName" "$PDFFile"' + ExecWait '"$ViewerFileName" "$PDFFile"' ${Else} diff --git a/status.23x b/status.23x index 70faf48c06..ebfac89035 100644 --- a/status.23x +++ b/status.23x @@ -65,6 +65,8 @@ What's new - Use real typographic quotation marks in PDF TOC (with pdflatex). +- Fix problems with apostrophe in path on Windows (bug 9368). + * USER INTERFACE -- 2.39.5