On 3/5/2006, at 20:28, Fred B. wrote:
eval "$TM_HG" log -v $HG_LIMIT --style "'$HG_STYLE'" $TM_SELECTED_FILES 2>&1
I’m not sure why Ollivier gets an error, would indicate that there is a ' in the value of HG_STYLE.
However, there are some problems with this line. First, $TM_SELECTED_FILES should be quoted. Second, the eval causes the line to be re-interpreted after initial variable expansion, this is why you get an error without the single quotes.
So, the two solutions which spring to mind is 1) keep the single quotes and escape any potential single quotes in HG_STYLE, if bash wasn’t broken (to the best of my knowledge) that would make it "'$ {HG_STYLE//'/'''}'", or 2) use one level of indirection, like this:
dummy='$HG_STYLE' eval "$TM_HG" log -v $HG_LIMIT --style "$dummy" "$TM_SELECTED_FILES" 2>&1
Now $dummy will expand to $HG_STYLE, and the eval will again expand that to the actual value.
There is a potential similar problem with TM_HG, if that variable contains shell special characters.