merlyn@xxxxxxxxxxxxxx (Randal L. Schwartz) writes: >>>>>> "Matthieu" == Matthieu Moy <Matthieu.Moy@xxxxxxx> writes: > > Matthieu> C does not have tilde expansion or "eval", but it has "system()": > > Matthieu> int main () { > Matthieu> system("~/bin/scripts/moy-editor.sh foo.txt"); > Matthieu> } > > Matthieu> works as you'd expect. > > And that's because it forks a /bin/sh to process that. And your modern > /bin/sh apparently understands tilde expansion. *that* wouldn't have worked > back when /bin/sh was really the bourne shell and not some cheap over-featured > (read "GNU") clone. Yes. That's a good reason not to use system() on hardcoded values. I wouldn't write the line of code above in a real-life program. But here, the argument of system() comes from the user-configuration. If he's running on a machine whose shell does tilde expansion, he can use tilde-expansion in his configuration. On windows, I believe system() has some windows-specific things, but the user probably expects to be able to use them if he runs windows. -- Matthieu - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html