Better cover support for 'local' (File) support
[fanfix.git] / src / be / nikiroo / fanfix / supported / BasicSupport.java
index 97338ba4b1d8fca449c16b5799e5d4d8a23b13ed..b230bc3252e249caf57560b9c394cefa5fd135f8 100644 (file)
@@ -156,13 +156,13 @@ public abstract class BasicSupport {
        private URL currentReferer; // with only one 'r', as in 'HTTP'...
 
        // quote chars
-       private char openQuote = Instance.getTrans().getChar(
+       private char openQuote = Instance.getTrans().getCharacter(
                        StringId.OPEN_SINGLE_QUOTE);
-       private char closeQuote = Instance.getTrans().getChar(
+       private char closeQuote = Instance.getTrans().getCharacter(
                        StringId.CLOSE_SINGLE_QUOTE);
-       private char openDoubleQuote = Instance.getTrans().getChar(
+       private char openDoubleQuote = Instance.getTrans().getCharacter(
                        StringId.OPEN_DOUBLE_QUOTE);
-       private char closeDoubleQuote = Instance.getTrans().getChar(
+       private char closeDoubleQuote = Instance.getTrans().getCharacter(
                        StringId.CLOSE_DOUBLE_QUOTE);
 
        /**
@@ -874,19 +874,35 @@ public abstract class BasicSupport {
 
                if (line != null) {
                        // try for files
-                       String path = null;
                        if (source != null) {
-                               path = new File(source.getFile()).getParent();
                                try {
-                                       String basePath = new File(new File(path), line.trim())
-                                                       .getAbsolutePath();
+
+                                       String relPath = null;
+                                       String absPath = null;
+                                       try {
+                                               String path = new File(source.getFile()).getParent();
+                                               relPath = new File(new File(path), line.trim())
+                                                               .getAbsolutePath();
+                                       } catch (Exception e) {
+                                               // Cannot be converted to path (one possibility to take
+                                               // into account: absolute path on Windows)
+                                       }
+                                       try {
+                                               absPath = new File(line.trim()).getAbsolutePath();
+                                       } catch (Exception e) {
+                                               // Cannot be converted to path (at all)
+                                       }
+
                                        for (String ext : getImageExt(true)) {
-                                               if (new File(basePath + ext).exists()) {
-                                                       url = new File(basePath + ext).toURI().toURL();
+                                               if (absPath != null && new File(absPath + ext).exists()) {
+                                                       url = new File(absPath + ext).toURI().toURL();
+                                               } else if (relPath != null
+                                                               && new File(relPath + ext).exists()) {
+                                                       url = new File(relPath + ext).toURI().toURL();
                                                }
                                        }
                                } catch (Exception e) {
-                                       // Nothing to do here
+                                       // Should not happen since we control the correct arguments
                                }
                        }