diff options
author | ShadowNinja <shadowninja@minetest.net> | 2015-06-01 17:08:43 -0400 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2015-06-01 17:08:43 -0400 |
commit | 90d6b3d23737eb410952c57622d010ff83b429bb (patch) | |
tree | d316796cdfcadb9eb37d5172cece00c57a7d6c87 /worldedit_commands | |
parent | 4bd5d569090b99d1e9e3b98f907af79b1abd2722 (diff) |
Allow more characters in file names
Diffstat (limited to 'worldedit_commands')
-rw-r--r-- | worldedit_commands/init.lua | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/worldedit_commands/init.lua b/worldedit_commands/init.lua index 612de62..83a127e 100644 --- a/worldedit_commands/init.lua +++ b/worldedit_commands/init.lua @@ -78,6 +78,10 @@ local function mkdir(path) end
end
+local function check_filename(name)
+ return name:find("^[%w%s%^&'@{}%[%],%$=!%-#%(%)%%%.%+~_]+$") ~= nil
+end
+
minetest.register_chatcommand("/about", {
params = "",
@@ -885,11 +889,10 @@ minetest.register_chatcommand("/save", { worldedit.player_notify(name, "invalid usage: " .. param)
return
end
- if not param:find("^[a-zA-Z0-9_%-.]+$") then
+ if not check_filename(param) then
worldedit.player_notify(name, "Disallowed file name: " .. param)
return
end
-
local result, count = worldedit.serialize(worldedit.pos1[name],
worldedit.pos2[name])
@@ -923,8 +926,8 @@ minetest.register_chatcommand("/allocate", { worldedit.player_notify(name, "invalid usage: " .. param)
return
end
- if not string.find(param, "^[%w \t.,+-_=!@#$%%^&*()%[%]{};'\"]+$") then
- worldedit.player_notify(name, "invalid file name: " .. param)
+ if not check_filename(param) then
+ worldedit.player_notify(name, "Disallowed file name: " .. param)
return
end
@@ -1056,7 +1059,7 @@ minetest.register_chatcommand("/mtschemcreate", { worldedit.player_notify(name, "No filename specified")
return
end
- if not param:find("^[a-zA-Z0-9_%-.]+$") then
+ if not check_filename(param) then
worldedit.player_notify(name, "Disallowed file name: " .. param)
return
end
@@ -1083,10 +1086,14 @@ minetest.register_chatcommand("/mtschemplace", { description = "Load nodes from \"(world folder)/schems/<file>.mts\" with position 1 of the current WorldEdit region as the origin",
privs = {worldedit=true},
func = function(name, param)
- if param == nil then
+ if param == "" then
worldedit.player_notify(name, "no filename specified")
return
end
+ if not check_filename(param) then
+ worldedit.player_notify(name, "Disallowed file name: " .. param)
+ return
+ end
local pos = get_position(name)
if pos == nil then return end
|