(I accidentally forgot to give my previous message a subject and I think it was 
blocked by a spam filter. I'm resending, apologies if this turns up twice!)
 
A line apparently got broken by mistake in the patch; a corrected version of 
the patch is attached. This version should be used instead of the one in the 
original bug report. Thanks!
 
-- 
Alex Smith, C-INTERCAL upstream maintainer
--- ick-0.27/src/dekludge.c     2007-12-22 09:22:14.000000000 +0000
+++ latest/src/dekludge.c       2008-01-03 14:10:58.000000000 +0000
@@ -139,6 +139,8 @@
   /* ignorable holds whether a variable's ignorance status can change */
   for (tp = tuples; tp < tuples + lineno; tp++)
   {
+    /* allow for warnings to be generated during flow optimisations */
+    optuple = tp; /* Patch by Joris Huizer */
     if(tp->maybe) tp->abstainable = 1;
     if(tp->exechance < 0) tp->initabstain = 1;
     if(tp->exechance != 100 && tp->exechance != -100) tp->abstainable = 1;
--- ick-0.27/src/idiotism.oil   2007-12-22 09:22:14.000000000 +0000
+++ latest/src/idiotism.oil     2008-01-03 14:07:15.000000000 +0000
@@ -207,15 +207,15 @@
 <#0-#14
 ((_{c<=65535&&!(c&((1LU<<r)-1LU))}1$
   #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3)
-->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0)
+->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0)
     <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(0,x2),x3)}0)
 (((_{c<=65535&&!(c&((1LU<<r)-1LU))}1|#{x<=65535&&!(c&~((1LU<<r)-1LU))}4)$
   #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3)
-->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0)
+->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0)
     <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(x4,x2),x3)}0)
 (((#{x<=65535&&!(c&~((1LU<<r)-1LU))}4|_{c<=65535&&!(c&((1LU<<r)-1LU))}1)$
   #{!(x&(4294967294LU<<r))}2)~#{!(x&(1431655765LU<<(r*2+2)))}3)
-->((((_1>>#{r}0)&#{iselect(x3>>(r*2+1),1431655765LU)}0)
+->((((_1>>#{r}0)~#{iselect(x3>>(r*2+1),1431655765LU)}0)
     <<#{setbitcount(x3&((2LU<<(r*2))-1))}0)|#{iselect(mingle(x4,x2),x3)}0)
 >
 ; 32-bit leftshift by 1; there are 8 ways to write this.
@@ -480,8 +480,8 @@
 (_1|#0)->(_1)
 (#0|_1)->(_1)
 [noopxor]
-(_1|#0)->(_1)
-(#0|_1)->(_1)
+(_1^#0)->(_1)
+(#0^_1)->(_1)
 [anditself]
 (_1&_1)->(_1)
 [oritself]
--- ick-0.27/src/parser.y       2007-12-22 09:22:14.000000000 +0000
+++ latest/src/parser.y 2007-12-30 01:08:38.000000000 +0000
@@ -485,12 +485,15 @@
                    $$->rval = newnode();
                    $$->rval->opcode = $1;
                    if($1 == MESH) {
-                           /* enforce the 16-bit constant constraint */
-                           if ((unsigned int)$3 > Max_small)
-                               lose(E017, iyylineno, (char *)NULL);
-                           $$->rval->constant = intern(MESH, $3);
+                     /* enforce the 16-bit constant constraint */
+                     if ((unsigned int)$3 > Max_small)
+                       lose(E017, iyylineno, (char *)NULL);
+                     if(variableconstants) /* AIS */
+                       $$->rval->constant = intern(MESH, $2);
+                     else
+                       $$->rval->constant = $2;
                    }
                    else {
-                       $$->rval->constant = intern($1, $3);
+                     $$->rval->constant = intern($1, $3);
                    }
                }

Reply via email to