+ static FS::Path exe;
+
+ if(!argv0 || !*argv0)
+ {
+#ifdef _WIN32
+ argv0 = "application.exe";
+#else
+ argv0 = "./application";
+#endif
+ }
+
+ bool has_slash = strchr(argv0, FS::DIRSEP);
+ if(!has_slash)
+ exe = FS::path_lookup(argv0);
+ if(exe.empty())
+ exe = FS::realpath(argv0);
+
+ _argv0 = exe.c_str();
+ _data = data;
+}
+
+void *Application::get_data()
+{
+ return _data;
+}
+
+const char *Application::get_argv0()
+{
+ return _argv0;
+}
+
+const std::string &Application::get_name()
+{
+ return _name;