diff --git a/src/gui/lua/Makefile.am b/src/gui/lua/Makefile.am
index e3861cb76..6b99ec4ce 100644
--- a/src/gui/lua/Makefile.am
+++ b/src/gui/lua/Makefile.am
@@ -32,6 +32,7 @@ libneutrino_gui_lua_a_SOURCES = \
lua_cc_window.cpp \
lua_configfile.cpp \
lua_curl.cpp \
+ lua_filehelpers.cpp \
lua_hintbox.cpp \
lua_menue.cpp \
lua_messagebox.cpp \
diff --git a/src/gui/lua/lua_filehelpers.cpp b/src/gui/lua/lua_filehelpers.cpp
new file mode 100644
index 000000000..8abffb9c3
--- /dev/null
+++ b/src/gui/lua/lua_filehelpers.cpp
@@ -0,0 +1,83 @@
+/*
+ * lua file helpers functions
+ *
+ * (C) 2016 M. Liebmann (micha-bbg)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+#include "luainstance.h"
+#include "lua_filehelpers.h"
+
+CLuaInstFileHelpers* CLuaInstFileHelpers::getInstance()
+{
+ static CLuaInstFileHelpers* LuaInstFileHelpers = NULL;
+
+ if (!LuaInstFileHelpers)
+ LuaInstFileHelpers = new CLuaInstFileHelpers();
+ return LuaInstFileHelpers;
+}
+
+CLuaFileHelpers *CLuaInstFileHelpers::FileHelpersCheckData(lua_State *L, int n)
+{
+ return *(CLuaFileHelpers **) luaL_checkudata(L, n, LUA_FILEHELPER_CLASSNAME);
+}
+
+void CLuaInstFileHelpers::LuaFileHelpersRegister(lua_State *L)
+{
+ luaL_Reg meth[] = {
+ { "new", CLuaInstFileHelpers::FileHelpersNew },
+ { "__gc", CLuaInstFileHelpers::FileHelpersDelete },
+ { NULL, NULL }
+ };
+
+ luaL_newmetatable(L, LUA_FILEHELPER_CLASSNAME);
+ luaL_setfuncs(L, meth, 0);
+ lua_pushvalue(L, -1);
+ lua_setfield(L, -1, "__index");
+ lua_setglobal(L, LUA_FILEHELPER_CLASSNAME);
+}
+
+int CLuaInstFileHelpers::FileHelpersNew(lua_State *L)
+{
+ CLuaFileHelpers **udata = (CLuaFileHelpers **) lua_newuserdata(L, sizeof(CLuaFileHelpers *));
+ *udata = new CLuaFileHelpers();
+ luaL_getmetatable(L, LUA_FILEHELPER_CLASSNAME);
+ lua_setmetatable(L, -2);
+ return 1;
+}
+
+
+
+
+
+int CLuaInstFileHelpers::FileHelpersDelete(lua_State *L)
+{
+ CLuaFileHelpers *D = FileHelpersCheckData(L, 1);
+ if (!D) return 0;
+ delete D;
+ return 0;
+}
diff --git a/src/gui/lua/lua_filehelpers.h b/src/gui/lua/lua_filehelpers.h
new file mode 100644
index 000000000..c086593bb
--- /dev/null
+++ b/src/gui/lua/lua_filehelpers.h
@@ -0,0 +1,45 @@
+/*
+ * lua file helpers functions
+ *
+ * (C) 2016 M. Liebmann (micha-bbg)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef _LUAFILEHELPERS_H
+#define _LUAFILEHELPERS_H
+
+class CLuaFileHelpers
+{
+ public:
+ CLuaFileHelpers() {};
+ ~CLuaFileHelpers() {};
+};
+
+class CLuaInstFileHelpers
+{
+ public:
+
+ CLuaInstFileHelpers() {};
+ ~CLuaInstFileHelpers() {};
+ static CLuaInstFileHelpers* getInstance();
+ static void LuaFileHelpersRegister(lua_State *L);
+
+ private:
+ static CLuaFileHelpers *FileHelpersCheckData(lua_State *L, int n);
+ static int FileHelpersNew(lua_State *L);
+ static int FileHelpersDelete(lua_State *L);
+};
+
+#endif //_LUAFILEHELPERS_H
diff --git a/src/gui/lua/luainstance.cpp b/src/gui/lua/luainstance.cpp
index d5de296b6..ad5ca34e8 100644
--- a/src/gui/lua/luainstance.cpp
+++ b/src/gui/lua/luainstance.cpp
@@ -44,6 +44,7 @@
#include "lua_cc_window.h"
#include "lua_configfile.h"
#include "lua_curl.h"
+#include "lua_filehelpers.h"
#include "lua_hintbox.h"
#include "lua_menue.h"
#include "lua_messagebox.h"
@@ -621,6 +622,7 @@ void LuaInstRegisterFunctions(lua_State *L, bool fromThreads/*=false*/)
CLuaInstCCWindow::getInstance()->CCWindowRegister(L);
CLuaInstConfigFile::getInstance()->LuaConfigFileRegister(L);
CLuaInstCurl::getInstance()->LuaCurlRegister(L);
+ CLuaInstFileHelpers::getInstance()->LuaFileHelpersRegister(L);
CLuaInstHintbox::getInstance()->HintboxRegister(L);
CLuaInstMenu::getInstance()->MenuRegister(L);
CLuaInstMessagebox::getInstance()->MessageboxRegister(L);
diff --git a/src/gui/lua/luainstance_helpers.h b/src/gui/lua/luainstance_helpers.h
index cf6b9ba30..fa54bb690 100644
--- a/src/gui/lua/luainstance_helpers.h
+++ b/src/gui/lua/luainstance_helpers.h
@@ -2,7 +2,7 @@
* lua instance helper functions
*
* (C) 2013 Stefan Seyfried (seife)
- * (C) 2014-2015 M. Liebmann (micha-bbg)
+ * (C) 2014-2016 M. Liebmann (micha-bbg)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -30,6 +30,7 @@
#define LUA_MISC_CLASSNAME "misc"
#define LUA_CURL_CLASSNAME "curl"
#define LUA_HEADER_CLASSNAME "header"
+#define LUA_FILEHELPER_CLASSNAME "filehelpers"
#define LUA_WIKI "https://wiki.neutrino-hd.de/wiki"
//#define LUA_WIKI "https://wiki.slknet.de/wiki"