head 1.3; access; symbols pkgsrc-2013Q2:1.3.0.54 pkgsrc-2013Q2-base:1.3 pkgsrc-2012Q4:1.3.0.52 pkgsrc-2012Q4-base:1.3 pkgsrc-2011Q4:1.3.0.50 pkgsrc-2011Q4-base:1.3 pkgsrc-2011Q2:1.3.0.48 pkgsrc-2011Q2-base:1.3 pkgsrc-2009Q4:1.3.0.46 pkgsrc-2009Q4-base:1.3 pkgsrc-2008Q4:1.3.0.44 pkgsrc-2008Q4-base:1.3 pkgsrc-2008Q3:1.3.0.42 pkgsrc-2008Q3-base:1.3 cube-native-xorg:1.3.0.40 cube-native-xorg-base:1.3 pkgsrc-2008Q2:1.3.0.38 pkgsrc-2008Q2-base:1.3 pkgsrc-2008Q1:1.3.0.36 pkgsrc-2008Q1-base:1.3 pkgsrc-2007Q4:1.3.0.34 pkgsrc-2007Q4-base:1.3 pkgsrc-2007Q3:1.3.0.32 pkgsrc-2007Q3-base:1.3 pkgsrc-2007Q2:1.3.0.30 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.3.0.28 pkgsrc-2007Q1-base:1.3 pkgsrc-2006Q4:1.3.0.26 pkgsrc-2006Q4-base:1.3 pkgsrc-2006Q3:1.3.0.24 pkgsrc-2006Q3-base:1.3 pkgsrc-2006Q2:1.3.0.22 pkgsrc-2006Q2-base:1.3 pkgsrc-2006Q1:1.3.0.20 pkgsrc-2006Q1-base:1.3 pkgsrc-2005Q4:1.3.0.18 pkgsrc-2005Q4-base:1.3 pkgsrc-2005Q3:1.3.0.16 pkgsrc-2005Q3-base:1.3 pkgsrc-2005Q2:1.3.0.14 pkgsrc-2005Q2-base:1.3 pkgsrc-2005Q1:1.3.0.12 pkgsrc-2005Q1-base:1.3 pkgsrc-2004Q4:1.3.0.10 pkgsrc-2004Q4-base:1.3 pkgsrc-2004Q3:1.3.0.8 pkgsrc-2004Q3-base:1.3 pkgsrc-2004Q2:1.3.0.6 pkgsrc-2004Q2-base:1.3 pkgsrc-2004Q1:1.3.0.4 pkgsrc-2004Q1-base:1.3 pkgsrc-2003Q4:1.3.0.2 pkgsrc-2003Q4-base:1.3 buildlink2:1.2.0.2 buildlink2-base:1.3 netbsd-1-5-PATCH003:1.2 netbsd-1-5-PATCH001:1.2 netbsd-1-5-RELEASE:1.1.1.1 netbsd-1-4-PATCH003:1.1.1.1 netbsd-1-4-PATCH002:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.3 date 2002.05.31.15.36.49; author seb; state dead; branches; next 1.2; 1.2 date 2000.11.09.03.54.07; author itohy; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 99.12.24.03.23.50; author itohy; state Exp; branches 1.1.1.1; next ; 1.2.2.1 date 2002.06.23.18.49.46; author jlam; state dead; branches; next ; 1.1.1.1 date 99.12.24.03.23.50; author itohy; state Exp; branches; next ; desc @@ 1.3 log @Remove all package and category files from the japanese category. This effectively retire the japanese category. @ text @$NetBSD: patch-ab,v 1.2 2000/11/09 03:54:07 itohy Exp $ --- skkconfig.c.orig Thu Nov 13 22:42:43 1997 +++ skkconfig.c Thu Nov 9 00:19:40 2000 @@@@ -100,6 +100,7 @@@@ * skkinput の動作を決定する変数群。 */ extern int skkserv_portnum ; +extern char *skkserv_portstr ; extern char *skkserv_host ; extern char *skkinput_local_jisyo_name ; extern char *skkinput_backup_jisyo_name ; @@@@ -980,6 +981,21 @@@@ return ; } +#ifdef SKK_CONF +char * +strsave(const char *str) +{ + char *p; + + if ((p = malloc(strlen(str) + 1)) == NULL) { + fprintf(stderr, "Fatal: Memory Exhausted.\n"); + exit(1); + } + strcpy(p, str); + return p; +} +#endif + /* * skkinput の動作記述をする変数を初期化する関数。 *------ @@@@ -987,30 +1003,54 @@@@ */ void initSkkinputDousaketteiVariables( void ) { - struct servent *servent ; +#ifdef SKK_CONF /* use skk.conf */ + FILE *conffp; + char line[128]; + char hostbuf[128]; + char servbuf[128]; + char *confhost = NULL; + char *confport = NULL; + + if ((conffp = fopen(SKK_CONF, "r")) != NULL) { + char *p, *data; + + while (fgets(line, sizeof line, conffp) != NULL) { + if ((p = strchr(line, '#')) != NULL) + *p = '\0'; + if ((p = strtok(line, ": \t\n")) == NULL) + continue; + if ((data = strtok((char *) NULL, " \t\n")) == NULL) + continue; + if (!strcmp(p, "skkserv_host")) { + strcpy(hostbuf, data); + confhost = hostbuf; + } else if (!strcmp(p, "skkserv_port")) { + strcpy(servbuf, data); + confport = servbuf; + } + } + } +#endif /* 局所辞書の所在を知らないとしておく。*/ skkinput_local_jisyo_name = DEFAULT_SKKLJISYO ; skkinput_backup_jisyo_name = DEFAULT_SKKBJISYO ; skkinput_record_name = DEFAULT_SKKRECORD ; skk_local_jisyo_name = DEFAULT_SKKLOCALJISYO ; - /* "/etc/services" からポート番号を得ておく。*/ - servent = getservbyname( SKKSERV_SERVICE_NAME, SKKSERV_SERVICE_PROTO ) ; - if( servent == NULL ){ - /* /etc/services に設定はなかったので、config.h の中のを使う。*/ - skkserv_portnum = atoi( DEFAULT_SKKPORT ) ; - } else { - /* /etc/services に設定があった…。*/ - skkserv_portnum = htons( servent->s_port ) ; -#if defined(DEBUG) - fprintf - ( stderr, "getservbyname: \"%s\", %d\n", - servent->s_name, skkserv_portnum ) ; +#ifdef SKK_CONF + if (confport) + skkserv_portstr = strsave(confport); + else #endif - } + skkserv_portstr = SKKSERV_SERVICE_NAME; /* 環境変数 SKKSERV が設定されていれば、それを DEFAULT の skkserv * * host とする。*/ if( ( skkserv_host = getenv( "SKKSERVER" ) ) == NULL ) +#ifdef SKK_CONF + if (confhost) + skkserv_host = strsave(confhost); /* XXX this may leak */ + else +#endif skkserv_host = DEFAULT_SKKSERVER ; /* デフォルトのキーマップを作成する。*/ @ 1.2 log @Dual stack (IPv6) support. Make "skkserv_port:" line in skk.conf accept the service name as well as the port number. tmpnam() -> mkstemp() to make temp file handling safer. @ text @d1 1 a1 1 $NetBSD: patch-ab,v 1.1.1.1 1999/12/24 03:23:50 itohy Exp $ @ 1.2.2.1 log @Merge from pkgsrc-current to buildlink2 branch. @ text @d1 1 a1 1 $NetBSD: patch-ab,v 1.2 2000/11/09 03:54:07 itohy Exp $ @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD$ d4 33 a36 2 +++ skkconfig.c Fri Dec 24 00:51:24 1999 @@@@ -988,12 +988,43 @@@@ d39 1 a39 1 struct servent *servent ; d43 2 a44 1 + static char hostbuf[120]; d46 1 a46 1 + int confport = 0; d59 2 a60 2 + strcpy(hostbuf, data); + confhost = hostbuf; d62 2 a63 1 + confport = atoi(data); d74 12 d88 2 a89 16 + skkserv_portnum = confport; + else { +#endif /* "/etc/services" からポート番号を得ておく。*/ servent = getservbyname( SKKSERV_SERVICE_NAME, SKKSERV_SERVICE_PROTO ) ; if( servent == NULL ){ @@@@ -1001,16 +1032,22 @@@@ skkserv_portnum = atoi( DEFAULT_SKKPORT ) ; } else { /* /etc/services に設定があった…。*/ - skkserv_portnum = htons( servent->s_port ) ; + skkserv_portnum = ntohs( servent->s_port ) ; #if defined(DEBUG) fprintf ( stderr, "getservbyname: \"%s\", %d\n", servent->s_name, skkserv_portnum ) ; d91 2 a92 4 } +#ifdef SKK_CONF + } +#endif d97 3 a99 1 + if ((skkserv_host = confhost) == NULL) @ 1.1.1.1 log @X11 frontend of SKK @ text @@