That's interesting, now I learned something else too. As I said before, though, 
I want users to be able to enter paths in the XML file exactly the way they 
would be entered in a Windows shortcut.
(Actually, my program currently only has one Windows user, for whom I develop 
it [I don't even use it myself :-0].)

Since in a Windows shortcut you don't need to put quotes around a path that 
doesn't contain spaces, I want to follow that behavior in my program as well.

So actually, I see that the line:

<app name="LibreOffice Writer">"%ProgramFiles%\LibreOffice 
4\program\swriter.exe" "C:\Users\Timothy\Documents\myfile.odt"</app>

should instead be:

<app name="LibreOffice Writer">"%ProgramFiles%\LibreOffice 
4\program\swriter.exe" C:\Users\Timothy\Documents\myfile.odt</app>

because there are no spaces in the second path, but there is a space in the 
first one.

So I guess I'll still have to do my "shlex dance" (which for some reason I keep 
on mistyping as "shlex dane" :-)) unless I can learn a better way to do it.

Also, is my calling os.path.expandvars only on the first argument a good idea? 
I want to accept environment variables in my program, but I don't want to call 
os.path.expandvars on all the arguments, because I want to let other programs 
take care of parsing their own arguments.

I'm just wondering if I should relook at the whole way that I am doing things 
here. Maybe it would be better to just use shlex.split and subprocess.Popen and 
not try to follow the behavior of Windows shortcuts so closely? (But then it 
might be hard for some Windows users to understand how to use the program if I 
didn't.) What do you think?

Reply via email to