@marcov
That is greatly appreciated !!
I am, since long, struggling with special characters in directory names on Windows.
It was already planned for 3.0 (I did do executeprocess()), but I spend too much time waiting and experimenting with an unit with an unicodestring tstringlist.
Meanwhile, Mattias made tprocess unicode safe but only for lazarus utf8hack.
I saw the branch deadline approaching again for 3.2, so I decide to at least put a good effort in in fixing this.
My work builds on exposing Mattias work in the processunicode unit using unicodestrings. Note that process is unmodified wrt unicode status. (ok under lazarus, bad elsewhere).
Also note that this is only unicode modifications for commandlines. Probably readinputstream needs to be fixed to read arbitrary strings, but that is less intrusive I think.
There still is some discussion if the class in processunicode should have a different name or not. Opinion?
And besides, then processutils unit contains some very old and sometimes very ugly code. Again, the changes are appreciated.
I can't dis processutils too hard, since together with an own similar version it was the input for runcommand and a bunch of other TProcess improvements. Just like now it is again for a cleaned up version of e.g. events.
Note that you can now specify which derivative of TProcess the Run*commands use. This means you can make the run* classes use a derivative of your choosing.