> I think your partA patch makes sense.
I can fix part A and B in two commits.
> It would benefit from fsencode/fsdecode functions rather
> than manually doing the 'surrogateescape' thing everywhere.
I choosed to drop the idea of fsdecode() (patch for part A doesn't decode bytes anymore, it only encodes str). #8514 has now a short and simple patch. I'm waiting for the final decision on #8514 to commit the part A.
> Also, could you add a unittest for os._execvpe to test its behavior?
os._execvpe() is a protected function. issue8513_partA.patch includes a test for subprocess. test_subprocess in two twices: with _posixsubprocess (C module) and with the pure Python implementation. The pure Python implementation calls os._execvpe(), that's why I patched also this function in my patch ;-) |