パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Bash 3.0 リリース」記事へのコメント

  • known bug (スコア:3, 参考になる)

    by Anonymous Coward
    プロンプト (PS1 など) において、文字幅の計算にバイト数を使ってしまっています。

    このため、UTF-8 ロケールでプロンプトにロシア文字や漢字などを設定すると、 行の折り返しがおかしくなります。 いま、Debian unstable (Sid) の bash 3.0-1 を使ってみましたが、 なおっていません。 すでに1年以上も放置されているバグ [debian.org]らしいです。

    EUC-JP ロケールでは、(ASCII と

    • by Anonymous Coward
      >このため、UTF-8 ロケールでプロンプトにロシア文字や漢字などを設定すると、行の折り返しがおかしくなります。

      貴殿にこのやっつけパッチを進呈しよう。

      --- bash-3.0/lib/readline/display.c.org 2004-05-28 11:57:51.000000000 +0900
      +++ bash-3.0/lib/readline/display.c 2004-07-30 22:51:06.392651768 +0900
      @@ -342,6 +342,7 @@
                        &prompt_invis_chars_first_line,
                        &prompt_physical_chars);
      • by Anonymous Coward on 2004年08月01日 14時28分 (#599293)
        上の簡易パッチがあっさりスルーされて悔しいので
        もう少しきちんと仕上げてみました。暇で親切な人は
        検証してみてよさそうなら、本家に送って欲しい。
        私は英語だめなんでね。

        --- bash-3.0/lib/readline/display.c.org 2004-05-28 11:57:51.000000000 +0900
        +++ bash-3.0/lib/readline/display.c 2004-08-01 14:05:23.807209824 +0900
        @@ -253,6 +253,9 @@
                              else
                          ninvis += ind - pind;
                              p--; /* compensate for later increment */
        +
        + if (ignoring == 0)
        + physchars += _rl_col_width(pmt, pind, ind);
                          }
                      else
          #endif
        @@ -262,13 +265,13 @@
                          rl++; /* visible length byte counter */
                              else
                          ninvis++; /* invisible chars byte counter */
        +
        + if (ignoring == 0)
        + physchars++;
                          }
         
                      if (rl >= _rl_screenwidth)
                          invfl = ninvis;
        -
        - if (ignoring == 0)
        - physchars++;
                  }
                  }
        親コメント
        • 紹介してみました [debian.org]。ただし Debian の bash メンテナに対してですが。

          こんな英語でいいのかな

          親コメント
        • ためしてみました。うまくいっているようです。ただし、プロンプト自身が80カラムを超える場合はだめなようです。
          • まだ見ている人いるかな。

            >ためしてみました。うまくいっているようです。ただし、プロンプト自身が80カラムを超える場合はだめなようです。
            一応対処してみましたが、手抜きで無駄に効率が悪いし、ソースを読みきれてないので副作用があるかも。
            パッチのままだと書き込めないので、見れば分かるけど、BASE64でエンコードしてます。

            begin-base64 644 rl2.patch.gz
            H4sICJ/PD0EAA3JsMi5wYXRjaAB9VMtu2zAQPEdfMUc7shzJjeNX4rhtWrQF
            mntRFAItURYRiRQoOopR5N+71MNPoDzYIrkzOzu7kud5iEVZZGw3jIZKb65G
            vn/r+WNvNEUQzMeT+TgY+t2C689833Fd94BqEVPPv4U/mge38/Hd8G4y
            • 上のふたつのパッチを合わせてブラッシュアップした最終バージョンです。

              begin-base64 644 rl_utf8.patch.gz
              H4sICLGlEEEAA3JsX3V0ZjgucGF0Y2gAlVVNb9NAED07v2JQL0lsJ3ZSpzSm
              kBaKQIKe4IAQsvyxjlddey170xAQ/52Z3TjkAwrsIbbXO2/evHkTu64LSdwW
              7nTkjQVPxg2LM8ErNs54W4t4M0pHsllaE887d73AnTwF358HF/PAH3ndAtu7
              9Lyebdt/w9riPHW9c/ARJJh7/mga+LPpLPAnW5zFAtzJ+aVzATZdfA8Wix5Y
              oNe64IJBX7juYLcHMGww9xUMa9sOd9s8h/4Tvqxkw6vloOdaViPAvgJeZeBC
              jZewZ1vWd/oB+O07gLrYtGkRNy29jRoRpVJEa56pol+XytFHHQob6IAfu+xM
              tAwfrIpXD7w9xu5O1a4bWpY1HkIqy5pVbawY5LIBgTcNhq
              • 上のパッチには無限ループに入るバグがありました。こちらが訂正したものです。

                begin-base64 644 rl_utf8-2.patch.gz
                H4sIAP7vEEEAA5VVTXObSBA9o1/RqVxAgIQ+sC0RO3ISp5KqxKfkkNraovgY
                xJSBoQBZUVL+7+meESxCG2d3DgJ6pl93v349sm0bwqBO7cXEmWY8nFYsiDNe
                sGnM6zILDpNoIqqtNnecpe249vwKZrO1e7l2ZxOnXWA6K8cZmab5J6wjzpXt
                LGG+WDtXa/dislwtlu7SRZPC2WzAni9X1iWY9Jg5sNmMQAO59inPGOiZbRud
                DWBcYexrGJem6XVmnoD+gm8LUfFia4xsTasyMK+BFzHYUOLDG5ma9pN+AP51
                D6BMD3WUBlVNu36V+ZHI/D2Pm1Qv88aSRy1yM6TDUxedZTXDD63gxSOvh9jt
                qdK2PU3TpmOIRF6yog4aBomoIMOXCl2iiuWsaG

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...