[vlc-commits] vlsub: fixes creation of cache directory if it doesn't exist

Aakash Singh git at videolan.org
Thu Mar 28 09:57:55 CET 2019


vlc | branch: master | Aakash Singh <17aakashsingh1999 at gmail.com> | Tue Mar 26 18:34:57 2019 +0530| [583dded749fb3078a8cad495efcd5f4bcef0a875] | committer: Thomas Guillem

vlsub: fixes creation of cache directory if it doesn't exist

When VLSub asks for the cache directory and it doesn't exist an error is
thrown. This patch makes sure that the directory is created before it is
accessed for writing.

Fixes #21595
Signed-off-by: Thomas Guillem <thomas at gllm.fr>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=583dded749fb3078a8cad495efcd5f4bcef0a875
---

 share/lua/extensions/VLSub.lua | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/share/lua/extensions/VLSub.lua b/share/lua/extensions/VLSub.lua
index ee9e5f84a9..00167a9960 100644
--- a/share/lua/extensions/VLSub.lua
+++ b/share/lua/extensions/VLSub.lua
@@ -1488,6 +1488,22 @@ function download_subtitles()
 
   subfileName = subfileName.."."..item.SubFormat
   local tmp_dir = vlc.config.cachedir()
+  -- create the cache directory if it doesn't already exist
+  local separator = ""
+  local current_dir = ""
+  if package.config:sub(1, 1):match("/") then
+    -- unix based systems
+    separator = "/"
+    current_dir = "/"
+  else
+    -- windows systems
+    separator = "\\"
+  end
+  for dir in tmp_dir:gmatch("[^"..separator.."]+") do
+    current_dir = current_dir..dir..separator
+    local vars = vlc.io.mkdir(current_dir, "0700")
+  end
+
   local file_target_access = true
 
   local tmpFileName = dump_zip(



More information about the vlc-commits mailing list