Index: class.c ================================================================== --- class.c +++ class.c @@ -2174,11 +2174,11 @@ static void parse_order_block(void) { // OP_MISC1, OP_MISC1_C, etc = properties (_C=reverse) // 0x1000...0x10FF = Have flag // OP_RET = end of block Uint16 beg,ptr; - if(!main_options['U']) ParseError("(Not implemented yet)\n"); //TODO: remove this when it is implemented properly in exec.c too + if(!main_options['U']) ParseError("Experimental/unstable feature\n"); //TODO: remove this when it is implemented properly in exec.c too orders=malloc(0x4000*sizeof(Uint16)); if(!orders) fatal("Allocation failed\n"); nxttok(); if(tokent==TF_INT) { if(tokenv<1 || tokenv>254) ParseError("Order number out of range\n"); @@ -2203,12 +2203,11 @@ if(!tokenv) ParseError("User flag ^%s not defined\n",tokenstr); orders[ptr++]=tokenv; break; default: ParseError("Unexpected token in (Order) block\n"); } - nxttok(); - while(tokent!=TF_CLOSE) { + while(nxttok(),tokent!=TF_CLOSE) { if(Tokenf(TF_MACRO|TF_EQUAL) || !Tokenf(TF_NAME)) ParseError("Unexpected token in (Order) block\n"); if(ptr>=0x3FFE) ParseError("Out of order memory\n"); switch(tokenv) { case OP_MISC1: case OP_MISC1_C: case OP_MISC2: case OP_MISC2_C: @@ -2224,17 +2223,16 @@ case OP_IMAGE: case OP_IMAGE_C: orders[ptr++]=tokenv; break; default: ParseError("Unexpected token in (Order) block\n"); } - nxttok(); } orders[ptr++]=OP_RET; + nxttok(); } if(!norders) ParseError("Empty (Order) block\n"); orders=realloc(orders,ptr*sizeof(Uint16))?:orders; - nxttok(); } static void set_class_orders(void) { int i,j,k; if(main_options['C']) {