Package: mksh
Version: 40.9.20120630-4
Severity: normal
Tags: upstream

$ cat <<EOF
> <CTRL+C>
mksh: here document 'EOF' unclosed
$ <ENTER>
mksh: local: not found
mksh: local: not found
1|nik@keks: $


After CTRL+C-ing the cat command, the local alias is not resoved anymore. The 
same is true for all other aliases:

$ alias foo=echo
$ foo hi
hi
$ cat <<EOF
> <ENTER>
mksh: here document 'EOF' unclosed
$ <ENTER>
mksh: local: not found
mksh: local: not found
$ foo hi
mksh: foo: not found
mksh: local: not found
mksh: local: not found


However it is stil defined in the environment.

$ alias | grep foo
foo=echo 

mksh: local: not found
mksh: local: not found
$


Also note how the prompt is broken on the first output after CTRL-Cing cat.

Just an idea, but not sure if this has any truth to it:

This somehow feels like being dropped into another subshell that was
used to read the here document and this subshell's environment is
broken. Not that the user should be dropped there in the first place
anyway.

But again, this is just a guess, but still an educated one: Form the
fact that cat <<EOF is SIGINTable, but cat /dev/zero isn't, I conclude
that the CTRL-C does not SIGINT the cat but rather something else
started by the here document thing.

Upstream found that this guess might be correct as:

$ x=$(
> 
mksh: local: not found
mksh: local: not found
130|$

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (800, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages mksh depends on:
ii  libc6    2.13-35
ii  libgcc1  1:4.7.2-2

mksh recommends no packages.

Versions of packages mksh suggests:
pn  ed  <none>

-- no debconf information


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to