Revision: 13491
          http://sourceforge.net/p/skim-app/code/13491
Author:   hofman
Date:     2023-06-19 17:57:48 +0000 (Mon, 19 Jun 2023)
Log Message:
-----------
Use ps2pdf or pstopdf ommand line tool on macOS 14.0 as the CGPS functions are 
not supported anymore on 14.0. Hidden pref to pass the conversion tool path.

Modified Paths:
--------------
    trunk/SKConversionProgressController.m

Modified: trunk/SKConversionProgressController.m
===================================================================
--- trunk/SKConversionProgressController.m      2023-06-19 09:00:46 UTC (rev 
13490)
+++ trunk/SKConversionProgressController.m      2023-06-19 17:57:48 UTC (rev 
13491)
@@ -53,6 +53,7 @@
 
 #define SKDviConversionCommandKey @"SKDviConversionCommand"
 #define SKXdvConversionCommandKey @"SKXdvConversionCommand"
+#define SKPSConversionCommandKey @"SKPSConversionCommand"
 
 #define SKTouchBarItemIdentifierCancel 
@"net.sourceforge.skim-app.touchbar-item.cancel"
 
@@ -252,8 +253,11 @@
     NSWorkspace *ws = [NSWorkspace sharedWorkspace];
     CGDataProviderRef provider = NULL;
     
-    if ([ws type:fileType conformsToType:SKPostScriptDocumentType] == NO) {
+    BOOL isCGPSSupported = YES;
+    if (@available(macOS 14.0, *)) { isCGPSSupported = NO; }
         
+    if (isCGPSSupported == NO || [ws type:fileType 
conformsToType:SKPostScriptDocumentType] == NO) {
+        
         NSString *toolPath = nil;
         if ([ws type:fileType conformsToType:SKDVIDocumentType]) {
             static NSString *dviToolPath = nil;
@@ -265,6 +269,11 @@
             if (xdvToolPath == nil)
                 xdvToolPath = 
createToolPathForCommand(SKXdvConversionCommandKey, @[@"xdvipdfmx", 
@"xdv2pdf"]);
             toolPath = xdvToolPath;
+        } else if ([ws type:fileType conformsToType:SKPostScriptDocumentType]) 
{
+            static NSString *psToolPath = nil;
+            if (psToolPath == nil)
+                psToolPath = 
createToolPathForCommand(SKPSConversionCommandKey, @[@"ps2pdf", @"pstopdf"]);
+            toolPath = psToolPath;
         }
         if (toolPath) {
             NSString *commandName = [toolPath lastPathComponent];
@@ -271,7 +280,7 @@
             NSURL *tmpDirURL = [[NSFileManager defaultManager] 
URLForDirectory:NSItemReplacementDirectory inDomain:NSUserDomainMask 
appropriateForURL:aURL create:YES error:NULL];
             BOOL outputPS = [commandName isEqualToString:@"dvips"];
             NSURL *outFileURL = [tmpDirURL URLByAppendingPathComponent:[aURL 
lastPathComponentReplacingPathExtension:outputPS ? @"ps" : @"pdf"] 
isDirectory:NO];
-            NSArray *arguments = [commandName isEqualToString:@"dvipdf"] ? 
@[[aURL path], [outFileURL path]] : @[@"-o", [outFileURL path], [aURL path]];
+            NSArray *arguments = [commandName isEqualToString:@"dvipdf"] || 
[commandName isEqualToString:@"ps2pdf"] ? @[[aURL path], [outFileURL path]] : 
@[@"-o", [outFileURL path], [aURL path]];
             
             task = [[NSTask alloc] init];
             [task setLaunchPath:toolPath];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to