Modify LibScriptSearch to replace "$$s/" with an appropriate path.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7070 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2003-05-31 09:24:46 +00:00
parent 00495d0c10
commit a565043e68
2 changed files with 33 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2003-05-30 Angus Leeming <leeming@lyx.org>
* filetools.C (LibScriptSearch): make it search for "$$s/" and replace
this with the path to the script. If the script is not found, the "$$s/"
string is removed.
2003-05-22 Lars Gullik Bjønnes <larsbj@gullik.net>
* lstrings.[Ch] (prefixIs,suffixIs,subst): remove variants taking

View File

@ -333,18 +333,35 @@ i18nLibFileSearch(string const & dir, string const & name,
}
string const LibScriptSearch(string const & command)
string const LibScriptSearch(string const & command_in)
{
string script;
string args = command;
args = split(args, script, ' ');
script = LibFileSearch("scripts", script);
if (script.empty())
string const token_scriptpath("$$s/");
string command = command_in;
// Find the starting position of "$$s/"
string::size_type const pos1 = command.find(token_scriptpath);
if (pos1 == string::npos)
return command;
else if (args.empty())
return script;
else
return script + ' ' + args;
// Find the end of the "$$s/some_script" word within command
string::size_type const start_script = pos1 + 4;
string::size_type const pos2 = command.find(' ', start_script);
string::size_type const size_script = pos2 == string::npos?
(command.size() - start_script) : pos2 - start_script;
// Does this script file exist?
string const script =
LibFileSearch("scripts", command.substr(start_script, size_script));
if (script.empty()) {
// Replace "$$s/" with ""
command.erase(pos1, 4);
} else {
// Replace "$$s/some_script" with "$LYX_SCRIPT_PATH/some_script"
string::size_type const size_replace = size_script + 4;
command.replace(pos1, size_replace, script);
}
return command;
}