Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15070 > unrolled thread

Re: command "cat /etc/localtime" breaks output on tty-terminal

Started byEli Schwartz <eschwartz@archlinux.org>
First post2019-06-23 13:00 -0400
Last post2019-06-23 13:00 -0400
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: command "cat /etc/localtime" breaks output on tty-terminal Eli Schwartz <eschwartz@archlinux.org> - 2019-06-23 13:00 -0400

#15070 — Re: command "cat /etc/localtime" breaks output on tty-terminal

FromEli Schwartz <eschwartz@archlinux.org>
Date2019-06-23 13:00 -0400
SubjectRe: command "cat /etc/localtime" breaks output on tty-terminal
Message-ID<mailman.810.1561309255.10840.bug-bash@gnu.org>

[Multipart message — attachments visible in raw view] — view raw

On 6/23/19 8:18 AM, bitfreak25 wrote:
> On Sun, 23 Jun 2019 06:04:29 -0500
> Dennis Williamson <dennistwilliamson@gmail.com> wrote:
> 
>> On Sun, Jun 23, 2019, 5:31 AM bitfreak25 <bitfreak25@gmx.de> wrote:
>>
>>> OS: Arch Linux 5.1.12-arch1-1-ARCH (tty1)
>>> Bash-Version: 5.0.7(1)-release
>>> localization: de_DE.UTF-8 UTF-8
>>> keymap: de-latin1-nodeadkeys
>>>
>>> Description:
>>> The command "cat /etc/localtime" was called in a tty-terminal. After that
>>> some characters will be printed incorrectly (mostly "cyrillic" chars
>>> instead of the correct ones). The typed chars seems to be handled correctly
>>> (e.g. calling "exit") but the output is broken at this point. This
>>> behaviour is reproducible on my other PC with Debian Stable (Bash-Version
>>> in Debian: 4.4-5), so it seems to be a old bug. Changing to another tty or
>>> rebooting the OS will fix this behaviour until the command is called again.
>>>
>>> Kind regards,
>>> bitfreak
>>>
>>>
>>
>>
>> /etc/localtime is symlinked to a file that contains time zone data. If you
>> enter the command
>>
>> file -L /etc/localtime
>>
>> you'll see that that's the case. It contains data that's not meant to be
>> displayed including control characters which cause the effect you observed.
>> If you cat any so-called binary file such as this you are likely to see the
>> same kind of thing happen. Entering the
>>
>> reset
>>
>> command in the affected terminal will correct the problem after it occurs.
> 
> I kind of thought that this could be the reason. It also happens with
> "cat /dev/urandom" which is stopped by [STRG] + [C].
> 
> It seems to be a very small bug thats only breaks the output with an
> unusual command and there are already 3 workarounds. But in my opinion
> it should be fixed some time as it isn't the correct behaviour like
> doing it with a gui-terminal e.g. xfce4-terminal.

All GUI terminals in my experience display the correct behavior. The
correct behavior is to:
- faithfully emit the output you requested
- thereby emit control characters which the terminal cannot properly
  parse
- break terminal output in some cases, depending on the control
  characters in question

Some programs, unlike cat, try to protect you from this effect. See for
example,

$ curl file:///etc/localtime
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.

-- 
Eli Schwartz
Arch Linux Bug Wrangler and Trusted User

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web