bin/170651: On 9.0-RELEASE#0 and master sh(1) gobbles high bit
Steffen "Daode" Nurpmeso
sdaoden at gmail.com
Sat Aug 18 14:30:13 UTC 2012
The following reply was made to PR bin/170651; it has been noted by GNATS.
From: sdaoden at gmail.com (Steffen "Daode" Nurpmeso)
To: freebsd-gnats-submit at FreeBSD.org
Subject: Re: bin/170651: On 9.0-RELEASE#0 and master sh(1) gobbles high bit at first
Date: Sat, 18 Aug 2012 16:20:05 +0200
|>Synopsis: On 9.0-RELEASE#0 and master sh(1) gobbles high bit at first
|>Confidential: no no no!
|>Arrival-Date: Wed Aug 15 15:10:09 UTC 2012
|>Release: 9.0-REALEASE, and git master branch
|If /bin/sh is the login shell, starting it won't allow input of
|german umlauts in ISO8859-15 locale with fonts plus well set up.
|Issue a set with arguments ($set +o, $set -o), and it'll work
|So it turns out the problem is the histedit() function.
|If it isn't called from within optschanged() then everything is fine.
|Now i've spend some hours trying to adjust that, but i've no idea
|on sh(1) and libedit(3) internals, so i still don't understand the
|problem, though i've found a getaround.
|The problem occurs when 'el' must be initialized. If that actually
|happens (upon sh(1) startup), then it'll change handling of the high
|bit (or say, i'm just fiddling around with german umlauts here).
|I've split up histedit() in individual parts, i've used sleeps and
|recursive calls and whatever, but it didn't help.
|The only solution i've found is to call histedit() from within main()
|again (or outsource the pure initialization code to histedit_init(),
|but anyway call it once from within main()).
An update: i've compiled the shell again, linked against libedit
as of today (master branch, 493ac26f0cdccc, [Add mvts(4) driver
for internal thermal sensor.., 2012-08-18]), and the problem
persists. (I'm still using 9.0-RELEASE#0, just in case it's even
deeper than libedit.)
More information about the freebsd-bugs