only truncate when the console appears limited, fixes #364

I don't know if there are function pointers in C#, but this would probably run more smoothly by replacing the if check in the for loop with a pointer to either the `User.WriteLine` function or a function which wraps the padding and truncation code.

Works for me though. grep and less handle the list correctly now.