[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:03751] MOJIBAKE on kterm



鍋谷です。

kterm で dialog, talk 等を使うと kterm が文字化けしてしまいます。
関係ありそうなもののバージョンは

kterm                   6.2.0-8
ncurses3.4,ncurses-*    1.9.9g-7

です。が、bo でも文字化けが起きるので terminfo の問題かと思いま
す。RedHat4.2 + PJE0.1 の

ncurses-1.9.9e-4
libtermcap-2.0.8-4
termcap-9.12.6-5
kterm-6.2.0-1.i386.rpm (PJE)

では文字化けしません。PJE の kterm は libtermcap を使っています
ので、試しに bo の kterm(6.2.0-4) のバイナリを RedHat で実行す
ると正しく dialog,talk 等の画面を表示できます。

PJE では、kterm のインストール時に terminfo を変更しているよう
ですので、これに従えばよさそうです。私はまだ試していません。
RedHat + PJE 環境で、
 
infocmp kterm した出力
/var/lib/ezinst/scripts/kterm.p の内容

を以下に添付します。私は terminfo についてはさっぱりなので皆さ
んの意見をお聞かせください。

# RedHat では ash は標準なんでしょうか?
#	Reconstructed via infocmp from file: /usr/lib/terminfo/k/kterm
kterm|kterm-color|kterm kanji terminal emulator (X window system), 
	am, eslok, hs, km, mir, msgr, xenl, xon, 
	colors#8, cols#80, it#8, lines#65, pairs#64, 
	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, 
	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M, 
	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
	dsl=\E[?H, ed=\E[J, el=\E[K, enacs=, fsl=\E[?F, 
	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, 
	il=\E[%p1%dL, il1=\E[L, ind=^J, 
	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, 
	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, 
	kcuu1=\EOA, kend=\EOe, kent=\EOM, kf1=\E[11~, 
	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, 
	kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, 
	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EO\200, 
	kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
	op=\E[30;49m, rc=\E8, rev=\E[7m, ri=\EM, 
	rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, 
	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, 
	rs1=^O, 
	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<, 
	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
	setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm, 
	sgr0=\E[m, smacs=\E(0, smam=\E[?7h, 
	smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, 
	smso=\E[7m, smul=\E[4m, tbc=\E[3k, 
	tsl=\E[?E\E[?%i%dT, u6=\E[%i%d;%dR, u7=\E[6n, 
	u8=\E[?1;2c, u9=\E[c, 
#!/bin/ash
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin

##if [ "$*" = "-install" ] ; then

cat << ENDINFO > /tmp/kterm.info
kterm|kterm-color|kterm kanji terminal emulator (X window system),
	enacs=,smacs=\E(0,rmacs=\E(B,
	hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?H, use=xterm,
        colors#8, pairs#64, op=\E[30;49m,
        setf=\E[%p1%{30}%+%dm, setb=\E[%p1%{40}%+%dm,
        setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
ENDINFO

cat << ENDCAP > /tmp/kterm.cap
vk|kterm|kterm-color|kterm kanji terminal emurator (X window system):\\
        :Co#8:NC#3:pa#64:AB=\E[4%dm:AF=\E[3%dm:op=\E[37;40m:\\
	:hs:es:ts=\E[?E\E[?%i%dT:fs=\E[?F:ds=\E[?H:tc=xterm:
ENDCAP

if [ -f /usr/lib/terminfo/k/kterm ] ; then
  mv /usr/lib/terminfo/k/kterm /usr/lib/terminfo/k/kterm.org
  tic /tmp/kterm.info
fi

SHELLTEST="`echo -E test`"  # examine ash or bash
case $SHELLTEST in
test) # bash (recognize echo -E)
shcatline (){
while read -r i
do
  case $i in
    \#*) echo -E "$i";;
    *\\) echo -nE "$HEAD$i" ; echo -n "" ; HEAD="	";;
    *)   echo -E "$HEAD$i" ; HEAD="";;
  esac
done < $1
}
;;
"-E test") # ash (can't recognize echo -E)
shcatline (){
while read i
do
  case $i in
    \#*) echo "$i";;
    *\\) echo -n "$HEAD$i" ; echo -n "" ; HEAD="	";;
    *)   echo "$HEAD$i" ; HEAD="";;
  esac
done < $1
}
;;
*)
echo 'Invalid shell!!' ; exit 1
esac

if fgrep -q kterm /etc/termcap ; then
  mv /etc/termcap /etc/termcap.org
  shcatline /etc/termcap.org | fgrep -v kterm | tr "" "\n" > /etc/termcap
fi
cat /tmp/kterm.cap >> /etc/termcap

rm /tmp/kterm.cap /tmp/kterm.info

## fi