japanese/onew-freewnn のパッチ2007年12月10日 12時29分49秒

gcc 4.2 に更新されたために、日本語関連の一部の ports がコンパイル出来なくなっている。

パッチを作ってから、かなり経ったので元の原因は何だったかを詳しくは覚えていない。jvim で canna が使えなかった様な気がする。

とにかく、幾つかの ports が onew-freewnn をメタポートとして読み込んでいる。そこにパッチが必要だ。


% cat patch-gcc42
--- engine.orig/Canna.c 1995-06-28 11:13:26.000000000 -0500
+++ engine/Canna.c      2007-11-12 21:30:29.000000000 -0500
@@ -33,6 +33,7 @@
 static int ready;
 static int CID;
 static int nbunsetsu;
+static disp_kanji_buf();
 int ONEW_CannarcDone;
 
 static ONEWkanakan_ready()
@@ -102,7 +103,6 @@
        int comch;
        int rcode;
        char yomibuf[1024];
-       static disp_kanji_buf();
 
        Onew_setupYomistr(startch,yomi,yomibuf);
        yomi = yomibuf;
--- onewlib.c.orig      1995-07-02 02:55:41.000000000 -0500
+++ onewlib.c   2007-11-12 21:28:01.000000000 -0500
@@ -50,6 +50,11 @@
 int ONEW_I_SYNC_CHAR   = 0xFF;
 int ONEW_KK_OPDICT     = 'x';
 
+static definedKanamode();
+static romkan_modesw();
+static thru_char1();
+static Onew_kakuteiInRomkan();
+
 #define MODE_SWITCHER  ONEW_MODE_SWITCHER
 #define ZENKAKU_TOGGLE ONEW_ZENKAKU_TOGGLE
 #define KANA_TOGGLE    ONEW_KANA_TOGGLE
@@ -116,9 +121,6 @@
 }
 ONEW_getch1(){
    int ch;
-   static definedKanamode();
-   static romkan_modesw();
-   static thru_char1();
 
    for(;;){
        ch = ONEW_getch0(ONEW_getch_asis);
@@ -313,7 +315,6 @@
 
 kget_char1(){
        unsigned int kc;
-       static Onew_kakuteiInRomkan();
 
        if( !Onew_RK_init() ){
                kc = OnewGetchar();

PR もやっと出した。