From ced42637087b386df99cfd017262afad03b809ce Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 6 Sep 2015 17:48:55 +0100 Subject: Parse file URIs on Windows --- lib/docx/files.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/docx/files.js b/lib/docx/files.js index 4e3a820..e17bd45 100644 --- a/lib/docx/files.js +++ b/lib/docx/files.js @@ -1,5 +1,6 @@ var fs = require("fs"); var url = require("url"); +var os = require("os"); var promises = require("../promises"); @@ -21,10 +22,19 @@ function Files() { var readFile = promises.promisify(fs.readFile.bind(fs)); -function uriToPath(uriString) { +function uriToPath(uriString, platform) { + if (!platform) { + platform = os.platform(); + } + var uri = url.parse(uriString); if (uri.protocol === "file:" && (!uri.host || uri.host === "localhost")) { - return decodeURIComponent(uri.path); + var path = decodeURIComponent(uri.path); + if (platform === "win32" && /^\/[a-z]:/i.test(path)) { + return path.slice(1); + } else { + return path; + } } else { throw new Error("Could not convert URI to path: " + uriString); } -- cgit v1.2.3