Comment 5 for bug 792319

Revision history for this message
jazzynico (jazzynico) wrote :

According to the RELAX NG XML schema (see http://wiki.inkscape.org/wiki/index.php/INX_extension_descriptor_format#RELAX_NG_XML_schema), the interpreter attribute should accept python or perl only, without any command line parameter.

...
       element command {
         inx.reldir.attr,
         attribute interpreter { "python" | "perl" }?,
         text
       },
...

And thus the current behavior could be considered valid (except that the error message should be a bit more clear).

But src/extension/implementation/script.cpp uses a table to associate the interpreter name to the appropriate executable ("python" returns "pythonw" on win32, and "python" on other systems), and accepts some interpreters that are not in the XML schema, such as "ruby" (associated with "ruby") and "shell" ("sh").

That said, the interpreter value seems to be used to retrieve the full executable path only, and using another name (bash, java) should work correctly providing that the executable is in the user's path and that the name match the executable name on all the systems the extension is installed.

Patch in progress.