[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[E-devel] Ecore_exe and shell metacharachters
Ecore_exe will try to avoid using "sh -c" to execute a program if it
can. If the command line contains shell meta characters (defined as any
combination of |&;<>$'\"'*?#) it will use the user's shell to execute
the command, otherwise it will execute it directly.
Unfortunately this causes a problem if the user's shell is csh/tcsh and
the command line contains a ? character. I noticed this problem because
dEvian's RSS face uses ecore_exe in order to launch a web browser with
the URL as the command line argument, and if the URL contains a ?
ecore_exe will try to use tcsh to execute it, and this will only work if
the ? is escaped with a \. Not even including the command line between
Not really sure what the best way to fix this would be though. The
simple solution of enclosing the command line in single quotes does not
work. I think if the command line is parsed and all meta characters are
escaped it will work with any shell, but I'm too lazy to implement that.
:( Just wanted to report it, I'll probably change my shell or edit
ecore_exe.c to use /bin/sh instead of my shell to work around it until
someone less lazy then myself can fix it. :)
ReadQ Systems, Inc.
(212) 425 3680 x105
Random quote of the last-time-I-ran-bash:
<rac> jstubbs: perl is garbage collected. however, circular references
will confuse it
<rac> jstubbs: so if you have circular references, you have to break the
<jstubbs> rac: so if references aren't being used and everything is
defined using "my" within a function that gets called from a loop, is it
normal for it to continuously eat memory?
<rac> jstubbs: why do i feel like if i say "no", i'm going to get a bug
filed on my head? :)