受信文字コードShift_JIS時、場合によって改行を2回行ってしまう
次の状態にしておきます
次のシェルスクリプトを実行します
# "あ"を40個出力して、カーソルが行末(wrap状態) for ((i=0; i<40; i++)); do echo -en "\x82\xa0" done # 2バイト文字(0x82a2="い")の1バイト目を出力した後、改行(0d 0a) echo -en "\x82" echo -en "\x0d\x0a" # 改行後、2バイト文字の2バイト目を出力 echo -e "\xa2"
「あ」の行のあとに1行改行したのち「い」が出力されます。
「あ」の行の次の行に「い」を出力されるように修正します。
Tera Termでは2バイト文字の途中に別の文字が入った場合でもなるべく表示す る方針だと思います (CtrlInKanji)。(UTF-8では不正な文字として扱います。)
このチケットで修正しようとするのは、カーソルが行末にあって2バイト文字 の1バイト目の後に改行が入ったとき、改行が余分に行われるのをなくそうと いうものです。
カーソルが行末で2バイト文字の間に改行が入るというのはレアケースではな いかと思います。
何も指摘がなければ2,3日で修正を入れようと思います。
修正しました。r10781です。
クローズします。
再現方法
次の状態にしておきます
次のシェルスクリプトを実行します
「あ」の行のあとに1行改行したのち「い」が出力されます。
変更しようとする内容
「あ」の行の次の行に「い」を出力されるように修正します。
Tera Termでは2バイト文字の途中に別の文字が入った場合でもなるべく表示す る方針だと思います (CtrlInKanji)。(UTF-8では不正な文字として扱います。)
このチケットで修正しようとするのは、カーソルが行末にあって2バイト文字 の1バイト目の後に改行が入ったとき、改行が余分に行われるのをなくそうと いうものです。
カーソルが行末で2バイト文字の間に改行が入るというのはレアケースではな いかと思います。
何も指摘がなければ2,3日で修正を入れようと思います。