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