Questions about windows support
Nick Sabalausky
a at a.a
Tue Feb 21 16:45:36 PST 2012
"H. S. Teoh" <hsteoh at quickfur.ath.cx> wrote in message
news:mailman.829.1329869699.20196.digitalmars-d at puremagic.com...
> On Tue, Feb 21, 2012 at 06:49:45PM -0500, Nick Sabalausky wrote:
> [...]
>> I think that globbing should be done explicity by the app, *but* for
>> apps that don't play ball you should be able to *explicitly* do it at
>> the command line. Example:
>>
>> $someutil *.txt foo.html
>> ERROR: Can't find file '*.txt'
>> $glob *.txt
>> 'hello.txt' 'Modern File Name.txt' 'another.txt'
>> $someutil `glob *.txt` foo.html
>> Processing hello.txt...done
>> Processing Modern File Name.txt...done
>> Processing another.txt...done
>> Processing foo.html...done
>
> Hmm. I like that idea: have the shell *not* interpolate things by
> default, unless you explicitly say to do so. So by default typing:
>
> rm *.txt
>
> will pass "*.txt" to rm as a single argument, whereas:
>
> # Not real syntax:
> rm `*.txt`
>
> will expand "*.txt" as a glob and pass the result to rm.
>
>
> [...]
>> Which brings up another little nitpick: When bash displays a prompt,
>> it should first check to see if the last char output was a newline. If
>> not, it should...ADD ONE!
> [...]
>
> Yeah I agree with that one. Unfortunately I don't think it can tell,
> because the previous command writes to stdout directly (it doesn't go
> through bash -- else it's be too inefficient, you'd have processes
> copying stuff from each other all over the place). The terminal doesn't
> let you ask "what was the last char sent to you?".
>
> Having said that, though, the terminal *does* have an escape sequences
> (yeah, ugh) that bash *could* use to find out where the cursor is, and
> if it's not at column 0, insert a newline.
>
> Unfortunately, us old hands have gotten so used to this misbehaviour
> that we actually *use* it to detect whether something has a newline at
> the end or not. Another of those historical accidents calcified before
> it can be disinfected.
>
Windows's cmd.exe always inserts a newline right before a command prompt. So
you get the best of both worlds. Only issue is you end up with excess
newlines. For example, you get:
C:\>echo Hello > filea.txt
C:\>echo Hello > fileb.txt
C:\>
C:\>cd foo
C:\foo\>
C:\foo\>
Instead of:
~$echo Hello > filea.txt
~$echo Hello > fileb.txt
~$
~$cd foo
~/foo$
~/foo$
But maybe that's not quite as bad?
Come to think of it, bash should be able to do the same thing if you add a
newline to the beginning of $PS1...
Ha! It does work! Boy is that funny, it makes bash look like windows :)
That's just weird.
But, of course, it does mean a lot of extra blank lines. Which is ugly if
you're doing a lot of no-output commands. But then, it's also much easier to
read when there's a lot of heavy-output commands. It's a tradeoff :/
More information about the Digitalmars-d
mailing list