Author: Andreas Beckmann <anbe@debian.org>
Description: fix building with -Werror=implicit-function-declaration

--- a/lib/RK/context.c
+++ b/lib/RK/context.c
@@ -30,6 +30,7 @@ static char rcsid[]="$Id: context.c,v 1.
 #include <canna/jrkanji.h>
 
 #include <errno.h>
+#include <sys/stat.h>
 
 static unsigned long now_context = 0L;
 
--- a/lib/canna/lisp.c
+++ b/lib/canna/lisp.c
@@ -29,6 +29,7 @@ static char rcsid[] = "$Id: lisp.c,v 1.1
 */
 #include "lisp.h"
 #include "patchlevel.h"
+#include "rkcapi.h"
 
 #include <signal.h>
 
--- a/lib/canna/canna.h
+++ b/lib/canna/canna.h
@@ -1119,6 +1119,40 @@ extern int EUCListCallback pro((char *,
 extern int owcListCallback pro((char *, int, wchar_t **, int, int *));
 #endif
 
+int changeModeName(int modeid, char *str);
+int changeKeyfunc(int modenum, int key, int fnum, unsigned char *actbuff, unsigned char *keybuff);
+int changeKeyfuncOfAll(int key, int fnum, unsigned char *actbuff, unsigned char *keybuff);
+int ToggleChikuji(uiContext d, int flg);
+int cvtAsHex(uiContext d, wchar_t *buf, wchar_t *hexbuf, int hexlen);
+int convertAsHex(uiContext d);
+int checkGLineLen(uiContext d);
+int initExtMenu(void);
+int initBushuTable(void);
+int initGyouTable(void);
+int initHinshiTable(void);
+int initUlKigoTable(void);
+int initUlKeisenTable(void);
+int initOnoffTable(void);
+int initHinshiMessage(void);
+int dicTourokuControl(uiContext d, wchar_t *tango, canna_callback_t quitfunc);
+unsigned char *actFromHash(unsigned char *tbl_ptr, unsigned char key);
+int makeKigoIchiran(uiContext d, int major_mode);
+int allocIchiranBuf(uiContext d);
+int getForIchiranContext(uiContext d);
+int clisp_init(void);
+int multiSequenceFunc(uiContext d, KanjiMode mode, int whattodo, unsigned key, int fnum);
+int _do_func_slightly(uiContext d, int fnum, mode_context mode_c, KanjiMode c_mode);
+int dicTourokuTango(uiContext d, canna_callback_t quitfunc);
+int getYesNoContext(uiContext d, canna_callback_t everyTimeCallback, canna_callback_t exitCallback, canna_callback_t quitCallback, canna_callback_t auxCallback);
+int dicTourokuHinshi(uiContext d);
+int canna_alert(uiContext d, char *message, canna_callback_t cnt);
+int GLineNGReturnTK(uiContext d);
+void popTourokuMode(uiContext d);
+int getTourokuContext(uiContext d);
+void clearYomi(uiContext d);
+int getMountContext(uiContext d);
+int selectOnOff(uiContext d, wchar_t **buf, int *ck, int nelem, int bangomax, int currentkouho, unsigned char *status, int (*everyTimeCallback)(), int (*exitCallback)(), int (*quitCallback)(), int (*auxCallback)());
+
 #endif /* _UTIL_FUNCTIONS_DEF_ */
 
 #ifndef wchar_t
--- a/lib/canna/keydef.c
+++ b/lib/canna/keydef.c
@@ -37,9 +37,6 @@ extern KanjiModeRec tourokureibun_mode;
 extern KanjiModeRec bunsetsu_mode;
 extern KanjiModeRec cy_mode, cb_mode;
 
-extern multiSequenceFunc
-  pro((struct _uiContext *, struct _kanjiMode *, int, int, int));
-
 static void undefineKeyfunc pro((unsigned char *, unsigned));
 static regist_key_hash(), copyMultiSequence();
 static void freeMultiSequence();
@@ -86,7 +83,6 @@ static KanjiMode ModeTbl[CANNA_MODE_MAX_
   &cb_mode,           /* ChikujiHenkanMode  逐次の時の変換の部分         */
 };
 
-unsigned char *actFromHash();
 static void regist_act_hash();
 
 static unsigned char *
@@ -190,6 +186,7 @@ restoreDefaultKeymaps()
 
 extern nothermodes;
 
+int
 changeKeyfunc(modenum, key, fnum, actbuff, keybuff)
 int modenum;
 int key;
@@ -332,6 +329,7 @@ unsigned char *actbuff, *keybuff;
  *
  */
 
+int
 changeKeyfuncOfAll(key, fnum, actbuff, keybuff)
 int key, fnum;
 unsigned char *actbuff, *keybuff;
--- a/lib/canna/mode.c
+++ b/lib/canna/mode.c
@@ -370,6 +370,7 @@ wchar_t *arg;
  *
  */
 
+int
 changeModeName(modeid, str)
 int modeid;
 char *str;
--- a/lib/canna/multi.c
+++ b/lib/canna/multi.c
@@ -38,7 +38,6 @@ static char m_s_map_id[] = "@(#) 102.1 $
 #define NONE CANNA_FN_Undefined
 
 extern int askQuitKey();
-extern int checkGLineLen();
 extern int NothingChangedWithBeep();
 
 static unsigned char *keyHistory;
@@ -137,7 +136,7 @@ BYTE key;
   int prevEchoLen = -1, prevRevPos, prevRevLen;
   int prevGEchoLen, prevGRevPos, prevGRevLen;
   wchar_t *prevEcho, *prevGEcho;
-  BYTE *p, *actFromHash();
+  BYTE *p;
   wchar_t *malloc_echo = (wchar_t *)0, *malloc_gline = (wchar_t *)0;
 
   if (key == 0) {
@@ -245,6 +244,7 @@ uiContext d;
   return _DoFuncSequence(d, (BYTE *)NULL, (BYTE)NULL);
 }
 
+int
 multiSequenceFunc(d, mode, whattodo, key, fnum)
 uiContext d;
 KanjiMode mode;
--- a/lib/canna/romaji.c
+++ b/lib/canna/romaji.c
@@ -3521,6 +3521,7 @@ int hexlen;
   }
 }
 
+int
 convertAsHex(d)
 uiContext d;
 {
--- a/lib/canna/util.c
+++ b/lib/canna/util.c
@@ -184,6 +184,7 @@ int     len;
 
  */
 
+int
 checkGLineLen(d)
 uiContext d;
 {
@@ -889,10 +890,10 @@ uiContext d;
 
 #ifndef NO_EXTEND_MENU
 
+int
 GLineNGReturnTK(d)
 uiContext d;
 {
-  extern void popTourokuMode pro((uiContext));
   popTourokuMode(d);
   popCallback(d);
   GLineNGReturn(d);
@@ -1700,6 +1701,7 @@ canna_callback_t cnt;
 
  */
 
+int
 canna_alert(d, message, cnt)
 uiContext d;
 char *message;
--- a/lib/canna/uldefine.c
+++ b/lib/canna/uldefine.c
@@ -111,6 +111,7 @@ uiContext d;
   tc->tango_len = 0;
 }
 
+void
 clearYomi(d)
 uiContext d;
 {
@@ -163,6 +164,7 @@ newTourokuContext()
   return tcxt;
 }
 
+int
 getTourokuContext(d)
 uiContext d;
 {
@@ -708,6 +710,7 @@ uiContext d;
   return(0);
 }
 
+int
 dicTourokuTango(d, quitfunc)
 uiContext d;
 canna_callback_t quitfunc;
@@ -983,6 +986,7 @@ mode_context env;
   return(dicTourokuYomi(d));
 }
 
+int
 dicTourokuHinshi(d)
 uiContext d;
 {
@@ -1060,6 +1064,7 @@ uiContext d;
  * jrKanjiControl 用                                                         *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
+int
 dicTourokuControl(d, tango, quitfunc)
 uiContext d;
 wchar_t *tango;
--- a/lib/canna/jrbind.c
+++ b/lib/canna/jrbind.c
@@ -58,8 +58,6 @@ static char rcs_id[] = "@(#) 102.1 $Id:
 
 extern int FirstTime;
 
-extern BYTE *actFromHash();
-
 exp(int)
 wcKanjiString(context_id, ch, buffer_return, nbuffer, kanji_status_return)
 const int context_id, ch, nbuffer;
--- a/lib/canna/ichiran.c
+++ b/lib/canna/ichiran.c
@@ -537,6 +537,7 @@ ichiranContext p;
 /*
  * 候補一覧のデータ構造体を作るための領域を確保する
  */
+int
 allocIchiranBuf(d)
 uiContext d;
 {
--- a/lib/canna/kigo.c
+++ b/lib/canna/kigo.c
@@ -353,6 +353,7 @@ uiContext	d;
  * 引き数	uiContext
  * 戻り値	正常終了時 0	異常終了時 -1
  */
+int
 makeKigoIchiran(d, major_mode)
 uiContext	d;
 int             major_mode;
--- a/lib/canna/parse.c
+++ b/lib/canna/parse.c
@@ -28,6 +28,7 @@ static char rcs_id[] = "@(#) 102.1 $Id:
 
 #include <stdio.h>
 #include <fcntl.h>
+#include <unistd.h>
 
 /*********************************************************************
  *                      wchar_t replace begin                        *
--- a/lib/canna/bushu.c
+++ b/lib/canna/bushu.c
@@ -283,6 +283,7 @@ newForIchiranContext()
   return fcxt;
 }
 
+int
 getForIchiranContext(d)
 uiContext d;
 {
--- a/lib/canna/kctrl.c
+++ b/lib/canna/kctrl.c
@@ -1014,7 +1014,6 @@ KC_inhibitHankakuKana(d, arg)
 }
 
 #ifndef NO_EXTEND_MENU
-extern void popTourokuMode pro((uiContext));
 
 static
 popTourokuWithGLineClear(d, retval, env)
@@ -1395,6 +1394,7 @@ wcKanjiStatusWithValue *arg;
 
  */
 
+int
 _do_func_slightly(d, fnum, mode_c, c_mode)
 uiContext d;
 int fnum;
--- a/lib/canna/yesno.c
+++ b/lib/canna/yesno.c
@@ -65,6 +65,7 @@ coreContext qc;
 /*
  * 候補一覧行を作る
  */
+int
 getYesNoContext(d,
 	  everyTimeCallback, exitCallback, quitCallback, auxCallback)
 uiContext d;
--- a/lib/canna/onoff.c
+++ b/lib/canna/onoff.c
@@ -74,6 +74,7 @@ uiContext d;
 /*
  * 候補一覧行を作る
  */
+int
 selectOnOff(d, buf, ck, nelem, bangomax, currentkouho, status,
 	  everyTimeCallback, exitCallback, quitCallback, auxCallback)
 uiContext d;
--- a/lib/canna/ulmount.c
+++ b/lib/canna/ulmount.c
@@ -89,6 +89,7 @@ mountContext mc;
 /*
  * 候補一覧行を作る
  */
+int
 getMountContext(d)
 uiContext d;
 {
--- a/lib/canna/ulhinshi.c
+++ b/lib/canna/ulhinshi.c
@@ -46,6 +46,7 @@ static int tourokuYes pro((uiContext)),
            uuTDicExitCatch pro((uiContext, int, mode_context)),
            uuTDicQuitCatch pro((uiContext, int, mode_context)),
            tangoTouroku pro((uiContext));
+int dicTourokuDictionary(uiContext d, int (*exitfunc)(), int (*quitfunc)());
 
 static char *e_message[] = {
 #ifndef CODED_MESSAGE
@@ -941,6 +942,7 @@ mode_context env;
   return(dicTourokuHinshi(d));
 }
 
+int
 dicTourokuDictionary(d, exitfunc, quitfunc)
 uiContext d;
 int (*exitfunc)();
--- a/lib/canna/RKroma.c
+++ b/lib/canna/RKroma.c
@@ -28,6 +28,7 @@ static char rcsid[]="@(#) 102.1 $Id: RKr
 #include "canna.h"
 
 #include <fcntl.h>
+#include <unistd.h>
 
 #define S2TOS(s2)	(((unsigned short)(s2)[0]<<8)|(s2)[1])
 #define L4TOL(l4)\
--- a/server/misc.c
+++ b/server/misc.c
@@ -43,6 +43,7 @@ static char rcs_id[]="@(#) $Id: misc.c,v
 #include <signal.h>
 #include <pwd.h>
 #include <sys/ioctl.h>
+#include <grp.h>
 
 #ifndef DICHOME
 #define DICHOME     "/usr/lib/canna/dic"
--- a/cmd/catdic/can.c
+++ b/cmd/catdic/can.c
@@ -37,6 +37,7 @@ static char rcs[] = "@(#) 112.1 $Id: can
 #include <pwd.h>
 #include <sys/types.h>
 #include <grp.h>
+#include <unistd.h>
 #include "ccompat.h"
 #ifdef __EMX__
 #include <netdb.h>
@@ -46,6 +47,8 @@ static char rcs[] = "@(#) 112.1 $Id: can
 #include <locale.h>
 #endif
 
+#include "rkcapi.h"
+
 #ifdef SVR4
 extern  char *gettxt();
 #else
@@ -67,6 +70,8 @@ extern  char *gettxt();
 #define SIGVAL void
 #endif
 
+int scan_opt(int argc, char **argv, int *argcp);
+
 #ifdef USE_VARARGS
 #ifdef __STDC__
 extern  void Message(char *,...);
@@ -78,9 +83,9 @@ extern  void Message();
 #endif
 
 
-extern	RkDeleteLine();
-extern	RkDefineLine();
-extern	rmDitionary();
+int DownLoadDic(FILE *fp, unsigned char *dirname);
+int renameDictionary(int cn, char* dicname1, char* dicname2, int force);
+void shrink_opt(int argc, char **argv, int n);
 
 char            init[RECSZ], *Progname;
 unsigned char	*r_dic;
@@ -788,6 +793,7 @@ char  **argv;
     exit(0);
 }
 
+int
 DownLoadDic(fp, dirname)
 FILE          *fp;
 unsigned char *dirname;
@@ -1418,6 +1424,7 @@ char  **argv;
   exit(ret);    
 }
 
+int
 renameDictionary(cn, dicname1, dicname2, force)
 int cn;
 char *dicname1;
@@ -1810,6 +1817,7 @@ char **argv ;
 
 /*  オプションのチェック 
     辞書名以外のオプションはチェック後 argv から取り除く   */
+int
 scan_opt(argc,argv,argcp)
 int  argc ,*argcp; 
 char **argv ; 
@@ -2013,6 +2021,7 @@ char    **p ;
 }
 
 /*  argv のオプションを n 個分前に詰める */
+void
 shrink_opt(argc,argv,n)
 int  argc, n ; 
 char  *argv[] ;
--- a/cmd/catdic/rutil.c
+++ b/cmd/catdic/rutil.c
@@ -49,6 +49,9 @@ static char rcs[] = "@(#) 112.1 $Id: rut
 #include <locale.h>
 #endif
 
+#include <unistd.h>
+
+
 #ifdef SVR4
 extern  char *gettxt();
 #else
@@ -91,6 +94,7 @@ msg_set(){
 
 }
 
+int
 RkDefineLine(cx_num, name, line)
 int cx_num;
 unsigned char *name;
@@ -193,6 +197,7 @@ main()
 }
 #endif /* TEST_DEFINEDIC */
 
+int
 CopyDic(cx_num, dirname, dicname1, dicname2, mode)
 int            cx_num;
 unsigned char  *dirname;
@@ -258,6 +263,7 @@ int            mode ;
   return 0; 
 }
 
+void
 PrintMessage(ret, dicname)
 int            ret;
 unsigned char  *dicname;
@@ -303,6 +309,7 @@ unsigned char  *dicname;
   }
 }
 
+int
 makeDictionary(cn, dicname, mode)
 int cn;
 unsigned char *dicname;
--- a/lib/RKC/rkc.c
+++ b/lib/RKC/rkc.c
@@ -2192,6 +2192,7 @@ RkFinalize()
     RkwFinalize() ;
 }
 
+int
 RkKillServer()
 {
     return RkwKillServer();
@@ -2598,6 +2599,7 @@ RkStat *stat ;
 }
 
 #ifdef EXTENSION
+int
 RkListDic( cxnum, dirname, dicnames_return, size )
 int cxnum, size;
 unsigned char *dirname, *dicnames_return;
@@ -2613,6 +2615,7 @@ unsigned char *dicname;
   return RkwCreateDic(cxnum, (char *)dicname, mode);
 }
 
+int
 RkRemoveDic( cxnum, dicname, mode )
 int cxnum;
 unsigned char *dicname;
@@ -2620,6 +2623,7 @@ unsigned char *dicname;
   return RkwRemoveDic(cxnum, (char *)dicname, mode);
 }
 
+int
 RkRenameDic( cxnum, dicname, newdicname, mode )
 int cxnum, mode;
 unsigned char *dicname, *newdicname;
@@ -2627,6 +2631,7 @@ unsigned char *dicname, *newdicname;
   return RkwRenameDic(cxnum, (char *)dicname, (char *)newdicname, mode);
 }
 
+int
 RkCopyDic(cxnum, dirname, dicname, newdicname, mode)
 int cxnum, mode;
 unsigned char *dirname, *dicname, *newdicname;
--- a/lib/RK/RK.h
+++ b/lib/RK/RK.h
@@ -356,6 +356,21 @@ struct rkfuncs {
 };
 #endif /* ENGINE_SWITCH */
 
+int RkKillServer(void);
+int RkListDic(int cxnum, unsigned char *dirname, unsigned char *dicnames_return, int size);
+int RkCreateDic(int cxnum, unsigned char *dicname, int mode);
+int RkRemoveDic(int cxnum, unsigned char *dicname, int mode);
+int RkRenameDic(int cxnum, unsigned char *dicname, unsigned char *newdicname, int mode);
+int RkCopyDic(int cxnum, unsigned char *dirname, unsigned char *dicname, unsigned char *newdicname, int mode);
+int RkGetWordTextDic(int cxnum, unsigned char *dirname, unsigned char *dicname, unsigned char *info, int infolen);
+int RkChmodDic(int cxnum, unsigned char *dicname, int mode);
+int RkDefineLine(int cx_num, unsigned char *name, char *line);
+int RkDeleteLine(int cx_num, char *name, char *line);
+int CopyDic(int cx_num, unsigned char *dirname, unsigned char *dicname1, unsigned char *dicname2, int mode);
+void PrintMessage(int ret, unsigned char *dicname);
+int makeDictionary(int cn, unsigned char *dicname, int mode);
+int rmDictionary(int cn, unsigned char *dicname, int mode);
+
 #ifdef CANNA_EXP_PREDEFINED
 #undef CANNA_EXP_PREDEFINED
 #else
--- a/cmd/catdic/RKdelline.c
+++ b/cmd/catdic/RKdelline.c
@@ -30,6 +30,7 @@ static	char	rcs_id[] = "@(#) 112.1 $Id:
 #include <canna/RK.h>
 #include "ccompat.h"
 
+int
 RkDeleteLine(cx_num, name, line)
 int cx_num;
 char *name;
