Code

show more axonometric grid lines
[inkscape.git] / src / extension / dependency.cpp
index 109d5ed1211ab76d36d225666df8bc01f4276199..a83cac88d039cb430256fc76b00c7c0495a679c6 100644 (file)
@@ -1,8 +1,9 @@
 /*
- * Authors:
+ * Author:
  *   Ted Gould <ted@gould.cx>
  *
- * 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
  */
@@ -25,7 +26,6 @@ gchar const * Dependency::_type_str[] = {
     "executable",
     "file",
     "extension",
-    "plugin",
 };
 
 // These strings are for XML attribute comparisons and should not be translated
@@ -100,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
@@ -137,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,17 +198,29 @@ Dependency::check (void) const
                             g_free(orig_path);
                             return TRUE;
                         }
+
                         // give it a 2nd try with ".exe" added
-                        gchar * final_name_exe = g_strdup_printf ("%s.exe", final_name);                        
+                        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);
-                        g_free(final_name_exe);
                     }
 
                     g_free(orig_path);
@@ -245,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';