X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fextension%2Fdependency.cpp;h=a83cac88d039cb430256fc76b00c7c0495a679c6;hb=23f5c868ef859f55e8e9be34afe046fc520b689d;hp=6db57174cf97c0d65fca0811946ad44eed3eb56f;hpb=0a94db7164164d1ca32db61e4fa7c11116a3a124;p=inkscape.git diff --git a/src/extension/dependency.cpp b/src/extension/dependency.cpp index 6db57174c..a83cac88d 100644 --- a/src/extension/dependency.cpp +++ b/src/extension/dependency.cpp @@ -1,18 +1,20 @@ /* - * Authors: + * Author: * Ted Gould * - * Copyright (C) 2004 Authors + * Copyright (C) 2006 Johan Engelen, johan@shouraizou.nl + * Copyright (C) 2004 Author * * Released under GNU GPL, read the file 'COPYING' for more information */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include - #include "config.h" #include "path-prefix.h" - #include "dependency.h" #include "db.h" @@ -24,7 +26,6 @@ gchar const * Dependency::_type_str[] = { "executable", "file", "extension", - "plugin", }; // These strings are for XML attribute comparisons and should not be translated @@ -99,10 +100,6 @@ Dependency::~Dependency (void) looked up in the database. If the extension is found, and it is not deactivated, the dependency passes. - If the type is \c TYPE_PLUGIN then the path for the plugin is found - using the Glib::Module routines. When the path is found, then there - is a check to see if the file exists using the \c file_test function. - If the type is \c TYPE_EXECUTABLE or \c TYPE_FILE things are getting even more interesting because now the \c _location variable is also taken into account. First, the difference between the two is that @@ -136,16 +133,6 @@ Dependency::check (void) const if (myext->deactivated()) return FALSE; break; } - case TYPE_PLUGIN: { - if (!Glib::Module::get_supported()) { - return FALSE; - } - - std::string path = Glib::Module::build_path(INKSCAPE_PLUGINDIR, _string); - if (!Glib::file_test(path, Glib::FILE_TEST_EXISTS)) - return FALSE; - break; - } case TYPE_EXECUTABLE: case TYPE_FILE: { Glib::FileTest filetest = Glib::FILE_TEST_EXISTS; @@ -212,6 +199,27 @@ Dependency::check (void) const return TRUE; } + // give it a 2nd try with ".exe" added + gchar * final_name_exe = g_strdup_printf("%s.exe", final_name); + if (Glib::file_test(final_name_exe, filetest)) { + g_free(final_name); + g_free(final_name_exe); + g_free(orig_path); + return TRUE; + } + g_free(final_name_exe); + + // and a 3rd try with ".cmd" added (mainly for UniConvertor) + gchar * final_name_cmd = g_strdup_printf("%s.cmd", final_name); + if (Glib::file_test(final_name_cmd, filetest)) { + g_free(final_name); + g_free(final_name_cmd); + g_free(orig_path); + return TRUE; + } + g_free(final_name_cmd); + + // give up g_free(final_name); } @@ -235,7 +243,7 @@ Dependency::check (void) const std::ostream & operator<< (std::ostream &out_file, const Dependency & in_dep) { - out_file << _("Dependency::") << '\n'; + out_file << _("Dependency:") << '\n'; out_file << _(" type: ") << _(in_dep._type_str[in_dep._type]) << '\n'; out_file << _(" location: ") << _(in_dep._location_str[in_dep._location]) << '\n'; out_file << _(" string: ") << in_dep._string << '\n';