On Mon, Sep 10, 2012 at 05:39:20PM +0200, michael.vancann...@wisa.be wrote: > The main problem is the Windows API, which has only 1 string in which > to pass all command-line options.
IMHO this is not a Windows problem. There are two problems as I see them, one being that APIs only accept one cleanly normalized form (be it as an array of arguments, or with exact quoting rules), and that the "common" notation must be rewritten to those rules. This always needs some filtering and cleaning. The second problem is that the "common" everything on one line notation is OS specific, and even within an OS is fragmented between shell and API rules. (windows too, shellexecute <> createprocess, though the differences are smaller) This significantly increases the need for rewriting (one could argue that notation like --xxx="yy xx" is an unixism) that is not strictly necessary. As already said in similar discussions on the FPC maillist: nearly _every_ FPC version had changes in quoting and new bugs/featurerequests. In 2.0.x/2.2.x times, some of those even have been a problem for lazarus. Most of these changes also have not been minor, and quite often newly introduced bugs have been fixed just barely in time, between the RC and release. Already in 1.9.2, executeprocess() was added that fixed this issue for the more procedural interface. All the older versions have slowly been deprecated and removed (a still ongoing process) So in short, the tprocess maintainers (mostly Michael and me) have said enough is enough. The primary, supported way to hand parameters to tprocess is to deliver them separated, and cleansed of unnecessary quoting. This mostly fixes the second problem. The first problem is more minor. (and can often be fixed by simply stripping quoting before passing it. We hope this will allow for a more stable interface, and I heartily recommend it for any non-trivial use. -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus