From 05e379b6247a36512e1d6c83c4fedbf958bd61b1 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Tue, 19 Apr 2016 13:49:06 +0000 Subject: [PATCH] Allow ~ to be used as $HOME path in custom formats (GUI only) --- source/net/filebot/ui/rename/ExpressionFormatter.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/net/filebot/ui/rename/ExpressionFormatter.java b/source/net/filebot/ui/rename/ExpressionFormatter.java index 62787210..f7cf3909 100644 --- a/source/net/filebot/ui/rename/ExpressionFormatter.java +++ b/source/net/filebot/ui/rename/ExpressionFormatter.java @@ -11,6 +11,7 @@ import java.util.logging.Level; import javax.script.ScriptException; +import net.filebot.Settings.ApplicationFolder; import net.filebot.format.ExpressionFormat; import net.filebot.format.MediaBindingBean; import net.filebot.similarity.Match; @@ -69,10 +70,15 @@ class ExpressionFormatter implements MatchFormatter { // resolve against parent folder File parent = new File(destination).getParentFile(); - if (parent == null || parent.isAbsolute() || parent.getPath().startsWith(".")) { + if (parent == null || parent.isAbsolute() || destination.startsWith(".")) { return destination; } + // resolve against home folder + if (destination.startsWith("~")) { + return ApplicationFolder.UserHome.resolve(destination.substring(1)).getAbsolutePath(); + } + // try to resolve against structure root folder by default try { File structureRoot = getStructureRoot(source); @@ -85,7 +91,7 @@ class ExpressionFormatter implements MatchFormatter { structureRoot = structureRoot.getParentFile(); } } - return new File(structureRoot, destination).getPath(); + return new File(structureRoot, destination).getAbsolutePath(); } } catch (Exception e) { debug.log(Level.SEVERE, "Failed to resolve structure root: " + source, e);