Op 07-12-16 om 19:02 schreef BartC: > On 07/12/2016 16:53, Michael Torrie wrote: >> On 12/07/2016 08:48 AM, BartC wrote: >>> I would prefer that the program "t" can be invoked exactly the same way >>> under both systems. I don't want different instructions for Linux, or >>> for the user (of my language) to have to write two lots of code, as that >>> is my job... >> >> Ahh now we come to the crux of your argument. You want all potential >> platforms to conform to your own idea of what is normal. And indeed >> this is the actual issue that started the original thread. But that's >> not the way it works for any platform. I develop a lot of code on Linux >> that I'd like to get running on Windows. I prefer the Linux way of >> doing things but I'm not going to make any headway if I just try to >> brow-beat Windows and Windows' users over the things that aren't >> implement the same way. > > There is a lack of balance. > > If I run a Linux program on Windows, then the application gets to see > parameters such as *.* and can expand them if it wants. > > If I want to run a Windows program on Linux, and that program needs to see > *.* unexpanded, then it can't undo that expansion. > The cat is already out of the bag.
You should stop trying to frame this as a need of the program. If it was just about the program needing to see *.* as an argument. That is possible. Just quote the argument. But this isn't about what a program would need, this is about how you would like things to work. You have some points I agree with, but I don't think those points weight heavy enough to get people changing things on the unix side. > It seems the only choice, if someone wants a cross-platform application that > is invoked in the same way, is to dumb it > down and make it assume that any parameters such as A* have been expanded, or > will be expanded by that extra step. cross-platform applications will always need to come to some kind of compromise. > Which means that input of A B* *C will all end up running together so that > you have no idea what is what or which file > corresponds to which expansion. That's assuming these parameters have any > connection to the current set of files at all; if not, then > the input you end up is going to be meaningless. Yes and the point is? If you write a cross-platform application and you don't consider how the environments differ then you might end up with something meaningless. > Now the problem is to determine whether processed input of U V W X Y Z are > intended bona fide inputs, or whether > they just happened to result from some random associations with the files in > the current directory. No it is not. Making this your problem is just an untractable mess and it is not limited to globbing. Suppose I have a file named -rf and want it among other files removed. I don't consider it more closely and just type: rm -rf ... How is your program going to decide between me wanting to remove the file '-rf' and me wanting the options? You don't like how it generally works on unix. Too bad for you when you have to work on a unix box. Me I don't like how it generally works on a windows. Too bad for me when I find myself without a choice but to work on a windows box. Life just isn't easy and fair. -- https://mail.python.org/mailman/listinfo/python-list