[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29657] Bug#JP/1489: Re: fail to port; ne



Package: ne
Version: 3.05-1

From: NOSHIRO Shigeo <n@xxxxxxxxx>
Subject: [debian-devel:14536] Re: fail to port; ne
Date: Sat, 25 Aug 2001 09:53:14 +0900

> のしろです。
> 
> つい先ほど、 New upstream releaseをとり込み ne_3.05-1をduploadしました。
> これでどうでしょう?

これでやってみましたが,やはり

gcc -c menu.c
menu.c: In function `makev_proc':
menu.c:108: incompatible types in assignment
menu.c:115: incompatible types in assignment
make[2]: *** [menu.o] エラー 1
make[2]: Leaving directory `/home/kohda/work/Port/ne-3.05/src'

になりました ^^;

From: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@xxxxxxxxxxxxxx>
Subject: [debian-devel:14535] Re: fail to port; ne
Date: Fri, 24 Aug 2001 21:43:33 +0900

> ANSI な va_start, va_end でどうでしょう?

を試したら build できるようです。3.05 用にちょっと修正
しましたが,こんなものでしょうか?

--- ne-3.05.orig/src/ed.h
+++ ne-3.05/src/ed.h
@@ -280,7 +280,7 @@
 	dspreg_t	*drp;
 }	menu_t;
 
-extern	void	menu_itemmake(menu_t *mnp,void func(int,mitem_t *,void *),size_t nums,void *vp);
+extern	void	menu_itemmake(menu_t *mnp,void func(int,mitem_t *,...),size_t nums,void *vp);
 extern	void	menu_itemmakelists(menu_t *mnp,size_t width,size_t num,char *s);
 extern	void	menu_iteminit(menu_t *mnp);
 extern	void	menu_itemfin(menu_t *mnp);
--- ne-3.05.orig/src/filer.c
+++ ne-3.05/src/filer.c
@@ -78,7 +78,7 @@
 }	fop_t;
 
 #endif
-
+#include <stdarg.h>
 
 
 
@@ -498,13 +498,16 @@
 	sprintf(s,"%4d%c", (int)n, *scale);
 }
 
-static	void	fw_item_proc(int a,mitem_t *mip,void *vp)
+static	void	fw_item_proc(int a,mitem_t *mip,...)
 {
 	char	buf[MAXLINESTR+1];
 	char	*s,*p;
 	fw_t	*fwp;
 
-	fwp=vp;
+	va_list args;
+
+	va_start(args, mip);
+	fwp=va_arg(args,fw_t *);
 	s=mip->str;
 
 	strjfcpy(s, fwp->findex[a]->fn, MAXLINESTR, fwp->menu.drp->sizex-30);
@@ -540,6 +543,7 @@
 
 	strftime(buf,15,"%y/%m/%d %R", localtime(&fwp->findex[a]->stat.st_mtime));
 	sprintf(s+strlen(s), " %s",buf);
+	va_end(args);
 }
 
 void	fw_make(fw_t *fwp)
--- ne-3.05.orig/src/menu.c
+++ ne-3.05/src/menu.c
@@ -48,7 +48,7 @@
 		}
 }
 
-void	menu_itemmake(menu_t *mnp,void func(int,mitem_t *,void *),size_t nums,void *vp)
+void	menu_itemmake(menu_t *mnp,void func(int,mitem_t *,...),size_t nums,void *vp)
 {
 	int 	i;
 	int 	ln;
@@ -81,12 +81,15 @@
 	char	*s;
 }	itemstr_t;
 
-void	makelists_proc(int a,mitem_t *mip,void *vp)
+void	makelists_proc(int a,mitem_t *mip,...)
 {
 	itemstr_t	*isp;
+	va_list		args;
 
-	isp=vp;
+	va_start(args,mip);
+	isp=va_arg(args,itemstr_t *);
 	strcpy(mip->str, isp->s +isp->width*a);
+	va_end(args);
 }
 
 void	menu_itemmakelists(menu_t *mnp,size_t width,size_t num,char *s)
@@ -100,19 +103,19 @@
 	menu_itemmake(mnp, makelists_proc, num, &is);
 }
 
-void	makev_proc(int a, mitem_t *mip, void *vp)
+void	makev_proc(int a, mitem_t *mip,...)
 {
 	va_list 	args;
 	char	*p;
 
-	args=*(va_list *)vp;
+	va_start(args,mip);
 
 	p=va_arg(args, char *);
 	if (p==NULL)
 		strcpy(mip->str,"null"); else
 		strcpy(mip->str,p);
 
-	*(va_list *)vp=args;
+	va_end(args);
 }
 
 
--- ne-3.05.orig/src/setopt.c
+++ ne-3.05/src/setopt.c
@@ -12,6 +12,7 @@
 #include "ed.h"
 #include "sh.h"
 #include <ctype.h>
+#include <stdarg.h>
 
 extern	keydef_t	keydef[MAX_region][MAXKEYDEF];
 
@@ -326,11 +327,14 @@
 
 
 
-void	option_set_proc(int a,mitem_t *mip,void *vp)	// !!!!
+void	option_set_proc(int a,mitem_t *mip,...)	// !!!!
 {
 	char	*opt_kc[]={"euc","jis","sjis"};
 	char	*opt_rm[]={"lf","crlf","cr"};
 
+	va_list args;
+	va_start(args,mip);
+
 	switch(a)
 		{
 	 case 0:
@@ -373,6 +377,7 @@
 	 	 sprintf(mip->str, "%s%-12d", OPT_TAB_STOP_MSG, atoi(hash_get(sysinfo.vp_def, "TabStop")));
 	 	 break;
 	 	}
+	va_end(args);
 }
 
 

				平成13年8月27日(月)
-- 
 ***************************
 香田 温人(こうだ あつひと)
 http://www1.pm.tokushima-u.ac.jp/%7Ekohda/