From ccc10c99a5bf61c077f66a7acf67620ef8d27db0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:10:50 +0000 Subject: [PATCH 01/11] Initial plan From 001a0d5e8721ea1d7d527195a5d221cea57f8e34 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:21:55 +0000 Subject: [PATCH 02/11] Adjust SVG export menu handling Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 106 +++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 508c341e0f..390e7baf59 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -11,6 +11,10 @@ /// @file MIES_MiesUtilities_GUI.ipf /// @brief This file holds MIES utility functions for GUI +Menu "GraphPopup" + "Export graph to SVG", /Q, ExportGraphToSVG(GetCurrentWindow()) +End + /// @brief Return the dimension label for the special, aka non-unique, controls Function/S GetSpecialControlLabel(variable channelType, variable controlType) @@ -845,3 +849,105 @@ Function StoreWindowCoordinatesHook(STRUCT WMWinHookStruct &s) return 0 End + +/// @brief Get Downloads folder path using PowerShell (Windows only) +/// +/// Returns a colon-separated Igor path, including a terminating colon. +/// +/// @return Igor-formatted path to Downloads folder, or empty string on failure +static Function/S GetDownloadsPathIgor() + + string ps, cmd, native, igorPath + + ps = "(New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path" + cmd = "powershell.exe -nologo -noprofile -command \"" + ps + "\"" + + ExecuteScriptText/B/Z/W=10 cmd + if(V_flag != 0) + return "" + endif + + native = S_value + + // Strip CR/LF aggressively + native = ReplaceString("\r", native, "") + native = ReplaceString("\n", native, "") + + if(IsEmpty(native)) + return "" + endif + + igorPath = GetHFSPath(native) + if(IsEmpty(igorPath)) + return "" + endif + + if(cmpstr(igorPath[strlen(igorPath) - 1], ":") != 0) + igorPath += ":" + endif + + return igorPath +End + +/// @brief Export a graph to SVG format +/// +/// Saves the graph as SVG to: +/// - Windows: Downloads folder (falls back to Documents if Downloads doesn't exist) +/// - Mac: Documents folder +/// @param winName Name of the window (graph) to export +/// @return 0 on success, NaN on failure +Function ExportGraphToSVG(string winName) + + string savePath, fileName, fullPath, baseName, timeStamp, documentsPath + + ASSERT(!IsEmpty(winName), "Window name must not be empty") + ASSERT(WindowExists(winName), "Window does not exist: " + winName) + + // Get Documents folder path as fallback + documentsPath = SpecialDirPath("Documents", 0, 0, 0) + ASSERT(!IsEmpty(documentsPath), "Could not determine Documents folder location.") + if(IsEmpty(documentsPath)) + return NaN + endif + + savePath = documentsPath + +#ifdef WINDOWS + // On Windows, prefer Downloads folder over Documents + string downloadsPath = GetDownloadsPathIgor() + if(!IsEmpty(downloadsPath) && FolderExists(downloadsPath)) + savePath = downloadsPath + elseif(IsEmpty(downloadsPath)) + print "Could not determine Downloads folder, using Documents: " + documentsPath + else + print "Downloads folder not accessible, using Documents: " + documentsPath + endif +#endif // WINDOWS + + // Generate file name from window name and timestamp + baseName = CleanupName(winName, 0) + timeStamp = GetISO8601TimeStamp(localTimeZone = 1) + ASSERT(!IsEmpty(timeStamp), "Timestamp must not be empty") + // Replace colons and other problematic characters with underscores for filename + timeStamp = ReplaceString(":", timeStamp, "_") + timeStamp = ReplaceString("-", timeStamp, "_") + // Ensure filename doesn't exceed OS limits (leave room for path and .svg extension) + fileName = baseName + "_" + timeStamp + if(strlen(fileName) > 240) + fileName = fileName[0, 239] + endif + fileName = fileName + ".svg" + ASSERT(!IsEmpty(fileName), "File name must not be empty") + fullPath = savePath + fileName + + // Save graph as SVG (E=-9 is SVG format) + try + SavePICT/O/E=-9/WIN=$winName as fullPath + print "Graph exported to SVG: " + fullPath + catch + ASSERT(0, "Failed to save SVG file: " + fullPath) + return NaN + endtry + + return 0 +End From 7c6e15a3cd8efd9e09cb399bcab292dcd837e809 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:22:58 +0000 Subject: [PATCH 03/11] Refine SVG export assertions Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 390e7baf59..241877526b 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -862,6 +862,7 @@ static Function/S GetDownloadsPathIgor() ps = "(New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path" cmd = "powershell.exe -nologo -noprofile -command \"" + ps + "\"" + // 10s timeout to avoid hanging on PowerShell invocation ExecuteScriptText/B/Z/W=10 cmd if(V_flag != 0) return "" @@ -906,9 +907,6 @@ Function ExportGraphToSVG(string winName) // Get Documents folder path as fallback documentsPath = SpecialDirPath("Documents", 0, 0, 0) ASSERT(!IsEmpty(documentsPath), "Could not determine Documents folder location.") - if(IsEmpty(documentsPath)) - return NaN - endif savePath = documentsPath @@ -931,7 +929,7 @@ Function ExportGraphToSVG(string winName) // Replace colons and other problematic characters with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") - // Ensure filename doesn't exceed OS limits (leave room for path and .svg extension) + // Keep filename under 240 chars to leave headroom for full path (<260 incl. extension on Windows) fileName = baseName + "_" + timeStamp if(strlen(fileName) > 240) fileName = fileName[0, 239] From 63e6c09f323d4d5a438095bea92310812fe4639c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:24:26 +0000 Subject: [PATCH 04/11] Clarify SVG export diagnostics Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 241877526b..68e5fec8c9 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -852,7 +852,7 @@ End /// @brief Get Downloads folder path using PowerShell (Windows only) /// -/// Returns a colon-separated Igor path, including a terminating colon. +/// Returns a colon-delimited HFS path, including a terminating colon. /// /// @return Igor-formatted path to Downloads folder, or empty string on failure static Function/S GetDownloadsPathIgor() @@ -865,6 +865,7 @@ static Function/S GetDownloadsPathIgor() // 10s timeout to avoid hanging on PowerShell invocation ExecuteScriptText/B/Z/W=10 cmd if(V_flag != 0) + DEBUGPRINT("Failed to determine Downloads folder via PowerShell") return "" endif @@ -878,6 +879,7 @@ static Function/S GetDownloadsPathIgor() return "" endif + // Convert native Windows path to Igor's HFS format igorPath = GetHFSPath(native) if(IsEmpty(igorPath)) return "" @@ -915,10 +917,8 @@ Function ExportGraphToSVG(string winName) string downloadsPath = GetDownloadsPathIgor() if(!IsEmpty(downloadsPath) && FolderExists(downloadsPath)) savePath = downloadsPath - elseif(IsEmpty(downloadsPath)) - print "Could not determine Downloads folder, using Documents: " + documentsPath else - print "Downloads folder not accessible, using Documents: " + documentsPath + print "Downloads folder unavailable, using Documents: " + documentsPath endif #endif // WINDOWS @@ -926,7 +926,7 @@ Function ExportGraphToSVG(string winName) baseName = CleanupName(winName, 0) timeStamp = GetISO8601TimeStamp(localTimeZone = 1) ASSERT(!IsEmpty(timeStamp), "Timestamp must not be empty") - // Replace colons and other problematic characters with underscores for filename + // Replace colons and hyphens with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") // Keep filename under 240 chars to leave headroom for full path (<260 incl. extension on Windows) @@ -944,7 +944,6 @@ Function ExportGraphToSVG(string winName) print "Graph exported to SVG: " + fullPath catch ASSERT(0, "Failed to save SVG file: " + fullPath) - return NaN endtry return 0 From 704432aba41dfdf3c589bbcfd86ddf2debd76de0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:25:29 +0000 Subject: [PATCH 05/11] Refine SVG export messages Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 68e5fec8c9..c21cfd7809 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -885,7 +885,7 @@ static Function/S GetDownloadsPathIgor() return "" endif - if(cmpstr(igorPath[strlen(igorPath) - 1], ":") != 0) + if(strlen(igorPath) > 0 && cmpstr(igorPath[strlen(igorPath) - 1], ":") != 0) igorPath += ":" endif @@ -904,7 +904,7 @@ Function ExportGraphToSVG(string winName) string savePath, fileName, fullPath, baseName, timeStamp, documentsPath ASSERT(!IsEmpty(winName), "Window name must not be empty") - ASSERT(WindowExists(winName), "Window does not exist: " + winName) + ASSERT(WindowExists(winName), "Graph window does not exist or is not accessible: " + winName) // Get Documents folder path as fallback documentsPath = SpecialDirPath("Documents", 0, 0, 0) @@ -925,7 +925,7 @@ Function ExportGraphToSVG(string winName) // Generate file name from window name and timestamp baseName = CleanupName(winName, 0) timeStamp = GetISO8601TimeStamp(localTimeZone = 1) - ASSERT(!IsEmpty(timeStamp), "Timestamp must not be empty") + ASSERT(!IsEmpty(timeStamp), "Failed to generate timestamp for filename") // Replace colons and hyphens with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") From bd2f128f4b9adf4740e576dd0be09be2a8d4ba66 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:26:41 +0000 Subject: [PATCH 06/11] Tidy SVG export helpers Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index c21cfd7809..93cbbaf053 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -858,6 +858,7 @@ End static Function/S GetDownloadsPathIgor() string ps, cmd, native, igorPath + variable igorPathLen ps = "(New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path" cmd = "powershell.exe -nologo -noprofile -command \"" + ps + "\"" @@ -885,7 +886,8 @@ static Function/S GetDownloadsPathIgor() return "" endif - if(strlen(igorPath) > 0 && cmpstr(igorPath[strlen(igorPath) - 1], ":") != 0) + igorPathLen = strlen(igorPath) + if(igorPathLen > 0 && cmpstr(igorPath[igorPathLen - 1], ":") != 0) igorPath += ":" endif @@ -902,6 +904,7 @@ End Function ExportGraphToSVG(string winName) string savePath, fileName, fullPath, baseName, timeStamp, documentsPath + variable maxFileNameLen ASSERT(!IsEmpty(winName), "Window name must not be empty") ASSERT(WindowExists(winName), "Graph window does not exist or is not accessible: " + winName) @@ -915,6 +918,7 @@ Function ExportGraphToSVG(string winName) #ifdef WINDOWS // On Windows, prefer Downloads folder over Documents string downloadsPath = GetDownloadsPathIgor() + // Verify Downloads path exists in case the shell lookup returns an unavailable location if(!IsEmpty(downloadsPath) && FolderExists(downloadsPath)) savePath = downloadsPath else @@ -930,9 +934,10 @@ Function ExportGraphToSVG(string winName) timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") // Keep filename under 240 chars to leave headroom for full path (<260 incl. extension on Windows) + maxFileNameLen = 240 fileName = baseName + "_" + timeStamp - if(strlen(fileName) > 240) - fileName = fileName[0, 239] + if(strlen(fileName) > maxFileNameLen) + fileName = fileName[0, maxFileNameLen - 1] endif fileName = fileName + ".svg" ASSERT(!IsEmpty(fileName), "File name must not be empty") From 6c56911d1362c4d0c20910562fd02279a599ead0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:27:34 +0000 Subject: [PATCH 07/11] Clarify SVG export comments Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 93cbbaf053..3d45fd18d3 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -906,7 +906,7 @@ Function ExportGraphToSVG(string winName) string savePath, fileName, fullPath, baseName, timeStamp, documentsPath variable maxFileNameLen - ASSERT(!IsEmpty(winName), "Window name must not be empty") + ASSERT(!IsEmpty(winName), "Window name must not be empty (menu invocation failed)") ASSERT(WindowExists(winName), "Graph window does not exist or is not accessible: " + winName) // Get Documents folder path as fallback @@ -928,12 +928,13 @@ Function ExportGraphToSVG(string winName) // Generate file name from window name and timestamp baseName = CleanupName(winName, 0) + // localTimeZone is a boolean flag in GetISO8601TimeStamp timeStamp = GetISO8601TimeStamp(localTimeZone = 1) ASSERT(!IsEmpty(timeStamp), "Failed to generate timestamp for filename") // Replace colons and hyphens with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") - // Keep filename under 240 chars to leave headroom for full path (<260 incl. extension on Windows) + // Keep filename under 240 chars to leave headroom for Windows MAX_PATH; this caps only the filename maxFileNameLen = 240 fileName = baseName + "_" + timeStamp if(strlen(fileName) > maxFileNameLen) From 60796e2c7a8f064a50807442b3fd306a2d1b03b4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:28:38 +0000 Subject: [PATCH 08/11] Polish SVG export output Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 3d45fd18d3..1b0d3317e3 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -904,7 +904,7 @@ End Function ExportGraphToSVG(string winName) string savePath, fileName, fullPath, baseName, timeStamp, documentsPath - variable maxFileNameLen + variable maxFileNameLen = 240 ASSERT(!IsEmpty(winName), "Window name must not be empty (menu invocation failed)") ASSERT(WindowExists(winName), "Graph window does not exist or is not accessible: " + winName) @@ -922,7 +922,7 @@ Function ExportGraphToSVG(string winName) if(!IsEmpty(downloadsPath) && FolderExists(downloadsPath)) savePath = downloadsPath else - print "Downloads folder unavailable, using Documents: " + documentsPath + print "Info: Downloads folder unavailable, using Documents: " + documentsPath endif #endif // WINDOWS @@ -935,7 +935,6 @@ Function ExportGraphToSVG(string winName) timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") // Keep filename under 240 chars to leave headroom for Windows MAX_PATH; this caps only the filename - maxFileNameLen = 240 fileName = baseName + "_" + timeStamp if(strlen(fileName) > maxFileNameLen) fileName = fileName[0, maxFileNameLen - 1] From 41c76bd4041e21b5369cedd1f6e2fc4019fead73 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:29:24 +0000 Subject: [PATCH 09/11] Clarify SVG export limits Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 1b0d3317e3..9b4d6a6725 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -863,7 +863,7 @@ static Function/S GetDownloadsPathIgor() ps = "(New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path" cmd = "powershell.exe -nologo -noprofile -command \"" + ps + "\"" - // 10s timeout to avoid hanging on PowerShell invocation + // 10s timeout to avoid hanging on PowerShell invocation; ample for a shell lookup ExecuteScriptText/B/Z/W=10 cmd if(V_flag != 0) DEBUGPRINT("Failed to determine Downloads folder via PowerShell") @@ -934,7 +934,7 @@ Function ExportGraphToSVG(string winName) // Replace colons and hyphens with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") - // Keep filename under 240 chars to leave headroom for Windows MAX_PATH; this caps only the filename + // Keep filename under 240 chars to leave ~20 chars for directory path under Windows MAX_PATH; this caps only the filename fileName = baseName + "_" + timeStamp if(strlen(fileName) > maxFileNameLen) fileName = fileName[0, maxFileNameLen - 1] From 317b9241a569bbe3c2de9c7ff069fa9075470003 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:30:11 +0000 Subject: [PATCH 10/11] Improve SVG export error detail Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 9b4d6a6725..0b80e6ce3b 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -934,7 +934,7 @@ Function ExportGraphToSVG(string winName) // Replace colons and hyphens with underscores for filename timeStamp = ReplaceString(":", timeStamp, "_") timeStamp = ReplaceString("-", timeStamp, "_") - // Keep filename under 240 chars to leave ~20 chars for directory path under Windows MAX_PATH; this caps only the filename + // Cap filename at 240 chars to avoid extreme lengths; full path may still exceed Windows MAX_PATH fileName = baseName + "_" + timeStamp if(strlen(fileName) > maxFileNameLen) fileName = fileName[0, maxFileNameLen - 1] @@ -948,7 +948,7 @@ Function ExportGraphToSVG(string winName) SavePICT/O/E=-9/WIN=$winName as fullPath print "Graph exported to SVG: " + fullPath catch - ASSERT(0, "Failed to save SVG file: " + fullPath) + ASSERT(0, "Failed to save SVG file: " + fullPath + "\r" + GetRTErrMessage()) endtry return 0 From 11c6d24645ee409589bce3851c857ad3d49170c3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:30:54 +0000 Subject: [PATCH 11/11] Add SVG export debug notes Co-authored-by: timjarsky <5693697+timjarsky@users.noreply.github.com> --- Packages/MIES/MIES_MiesUtilities_GUI.ipf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Packages/MIES/MIES_MiesUtilities_GUI.ipf b/Packages/MIES/MIES_MiesUtilities_GUI.ipf index 0b80e6ce3b..cc7ba740e4 100644 --- a/Packages/MIES/MIES_MiesUtilities_GUI.ipf +++ b/Packages/MIES/MIES_MiesUtilities_GUI.ipf @@ -883,6 +883,7 @@ static Function/S GetDownloadsPathIgor() // Convert native Windows path to Igor's HFS format igorPath = GetHFSPath(native) if(IsEmpty(igorPath)) + DEBUGPRINT("Failed to convert Downloads path to HFS format") return "" endif @@ -928,7 +929,7 @@ Function ExportGraphToSVG(string winName) // Generate file name from window name and timestamp baseName = CleanupName(winName, 0) - // localTimeZone is a boolean flag in GetISO8601TimeStamp + // localTimeZone is a boolean flag in GetISO8601TimeStamp; use local time for filenames timeStamp = GetISO8601TimeStamp(localTimeZone = 1) ASSERT(!IsEmpty(timeStamp), "Failed to generate timestamp for filename") // Replace colons and hyphens with underscores for filename