<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>I would like to propose some changes in&nbsp;OSSolverService.cpp to solve the issues I have posted on Monday.&nbsp;</div><div>In my mind it is not necessary to change&nbsp;OSParseosss.l because the regular expression&nbsp;<i>optionValue ([-a-zA-Z./~:_0-9$\?+\\!@#&amp;*()]+|\"[^"\n]*\")</i> allows to use double quotes for an option.&nbsp;</div><div><br></div><div>If one defines an OSiL file name embedded in double quotes in a config file&nbsp;<i>diet.conf:</i></div><div><i><span class="Apple-tab-span" style="white-space:pre">        </span>-osil "folder 1/diet.osil"</i></div><div>and executes OSSOlverService with <i>-config diet.conf &nbsp;</i>then&nbsp;</div><div>the variable&nbsp;<i>osoptions-&gt;osilFile</i> is assigned <i>"folder 1/diet.osil" &nbsp;</i>(including the double quotes). &nbsp;This is the problem; OSSolverService can't find the file&nbsp;<i>"folder 1/diet.osil". </i>The only thing that is to do is to clean up the double quotes.&nbsp;</div><div><br></div><div>Therefore I have created a patch of OSSolverService.cpp. &nbsp;(All changes are marked by a comment //stegger)&nbsp;</div><div>I have created two function to clean up the double quotes for the relevant options:&nbsp;</div><div><i>void cleanDoubleQuotes(string &amp;str);<br>void cleanOptions();</i></div><div><br></div><div>This works for all (relevant) arguments that are defined in a config file.</div><div><br></div><div>A different problem is a "normal" command line argument. If one defines &nbsp;-<i>osil "folder 1/diet.osil" &nbsp;</i>then an <i>argV[i] </i>is assigned&nbsp;<i>folder 1/diet.osil </i>(w/o double quotes). The problem is that in&nbsp;OSSolverService.cpp &nbsp;all command line arguments are concatenated in one string (&nbsp;<i>strcat(osss, argV[i]);</i>&nbsp;) and separated by blanks (&nbsp;strcat(osss, space); &nbsp;). The parser interprets white spaces as separators for the options. Therefore&nbsp;<i>folder 1/diet.osil </i>is<i> </i>interpreted as two different elements and causes an error. A possible workaround in&nbsp;OSSolverService.cpp&nbsp;could be to enclose the file names in double quotes, to execute <i>ossslex</i> and after that to clean up the &nbsp;double quotes for the relevant options as described above.&nbsp;</div><div><br></div><div>If you are interested then you can download my patch for&nbsp;OSSolverService.cpp.&nbsp;</div><div><a href="http://www.coliop.org/download/OSSolverService.cpp">www.coliop.org/download/OSSolverService.cpp</a></div></div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div></div><div><br></div><div>I didn't test it for all possible variants. It works with all relevant options in combination with CMPL. &nbsp;</div><div>I hope all of this makes sense. Please take it as a proposal. If you don't like this simple approach then please ignore it.</div><div><br></div><div>Cheers&nbsp;</div><div><br></div><div><br></div><div>Mike</div></div></div></div><br></body></html>