# HG changeset patch
# User kono
# Date 1135425710 -32400
# Node ID 96af6754acd36cbe2798bb37b3e2661fe79663ea
# Parent  5d4112735c5cb1a7e310e3e53bfcd6b1bcd2e14d
*** empty log message ***

diff -r 5d4112735c5c -r 96af6754acd3 Changes
--- a/Changes	Sat Dec 24 12:58:20 2005 +0900
+++ b/Changes	Sat Dec 24 21:01:50 2005 +0900
@@ -7475,7 +7475,6 @@
 
 recursive inline �θ��ФϤ��ʤ��Ȥ����ʤ��櫓�͡�
 
-
 (�������ʤ󤫤�ä���ä��ߤ���.... �ޤ������ٽ��ä���ä����)
 
 Fri Dec 23 19:37:42 JST 2005
@@ -7491,3 +7490,12 @@
     return cadr(in);
   }
 �ߤ����ʴ���?
+
+Sat Dec 24 21:00:17 JST 2005
+
+pfdecl �ǡ�inline ���������������ɡ������ǰ�����n->dsp�� arg_register
+�ʤɤ��˲�����Ƥ��ޤ�������ȡ�inline ��inline��ޤ�Ǥ���������þ���ޤ���
+
+
+
+
diff -r 5d4112735c5c -r 96af6754acd3 mc-inline.c
--- a/mc-inline.c	Sat Dec 24 12:58:20 2005 +0900
+++ b/mc-inline.c	Sat Dec 24 21:01:50 2005 +0900
@@ -159,7 +159,7 @@
     // conv->switch_();
     slfree=lfree;
     svalue=csvalue1;      /* save parents switch value */
-    gexpr(caddr(e1),1);
+    gexpr(caddr(e1),1);   /* switch value */
     csvalue1=csvalue() ;
     // conv->switch_body_();
     cslabel = control = 0;
@@ -635,7 +635,11 @@
 static int
 p_case(int e)
 {
-    return list3(ST_CASE,pexpr(cadr(e)),caddr(e));
+    int new=0,clist = caddr(e);
+    // insert destory clist, we have to copy it now
+    for(;clist;clist=cadr(clist))
+	new=glist3(car(clist),new,0);
+    return list3(ST_CASE,pexpr(cadr(e)),reverse0(new));
 }
 
 static int
diff -r 5d4112735c5c -r 96af6754acd3 mc-parse.c
--- a/mc-parse.c	Sat Dec 24 12:58:20 2005 +0900
+++ b/mc-parse.c	Sat Dec 24 21:01:50 2005 +0900
@@ -2273,15 +2273,14 @@
     while(sym==CASE) {
 	conv->case_begin_(0,0);
 	getsym(0);
-	if (inmode)
-	    clist=list3(cexpr(expr(1)),clist,0);
-	else
-	    clist=glist3(cexpr(expr(1)),clist,l);
+	// we have to make it global?
+	c = cexpr(expr(1));
+	clist=glist3(c,clist,inmode?0:l);
 	conv->case_(0,0);
 	checksym(COLON);
     }
     if (inmode) {
-	parse = list3(ST_CASE,parse,clist);
+	parse = glist3(ST_CASE,parse,clist);
 	control=1;
 	return;
     }