commit e861c3e298244256e8efad1225d371f597f37a22
parent f2a887fd242027fbc5834076300070f82708b410
Author: Aurimas Vinckevicius <aurimas.dev@gmail.com>
Date: Tue, 13 May 2014 13:22:59 -0500
Fix slash direction on Windows for absolute paths
E.g. Mendeley exports something like `C:/some/path/test.pdf`
Diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/chrome/content/zotero/xpcom/translation/translate_item.js b/chrome/content/zotero/xpcom/translation/translate_item.js
@@ -329,11 +329,16 @@ Zotero.Translate.ItemSaver.prototype = {
var file;
// First, try to parse as absolute path
- if(((/^[a-zA-Z]:\\|^\\\\/.test(path) && Zotero.isWin) // Paths starting with drive letter or network shares starting with \\
- || (path[0] === "/" && !Zotero.isWin))
- && (file = this._parseAbsolutePath(path))) {
- Zotero.debug("Translate: Got file "+path+" as absolute path");
- return file;
+ if((/^[a-zA-Z]:[\\\/]|^\\\\/.test(path) && Zotero.isWin) // Paths starting with drive letter or network shares starting with \\
+ || (path[0] === "/" && !Zotero.isWin)) {
+ // Forward slashes on Windows are not allowed in filenames, so we can
+ // assume they're meant to be backslashes. Backslashes are technically
+ // allowed on Linux, so the reverse cannot be done reliably.
+ var nativePath = Zotero.isWin ? path.replace('/', '\\', 'g') : path;
+ if (file = this._parseAbsolutePath(nativePath)) {
+ Zotero.debug("Translate: Got file "+nativePath+" as absolute path");
+ return file;
+ }
}
// Next, try to parse as URI