diff -r b08167f156a1 -r 268bf4ca5fa1 stage4/generate_c/generate_c_sfc.cc --- a/stage4/generate_c/generate_c_sfc.cc Thu Jan 03 17:04:04 2013 +0000 +++ b/stage4/generate_c/generate_c_sfc.cc Thu Jan 03 18:23:07 2013 +0000 @@ -203,21 +203,22 @@ current_step = symbol->step_name; s4o.print(s4o.indent_spaces + "{\n"); s4o.indent_right(); - s4o.print(s4o.indent_spaces + "char activated = "); + s4o.print(s4o.indent_spaces + "char activated, desactivated, active;\n"); + s4o.print(s4o.indent_spaces + "activated = "); s4o.print(GET_VAR); s4o.print("("); print_step_argument(current_step, "state"); s4o.print(") && !"); print_step_argument(current_step, "prev_state"); s4o.print(";\n"); - s4o.print(s4o.indent_spaces + "char desactivated = !"); + s4o.print(s4o.indent_spaces + "desactivated = !"); s4o.print(GET_VAR); s4o.print("("); print_step_argument(current_step, "state"); s4o.print(") && "); print_step_argument(current_step, "prev_state"); s4o.print(";\n"); - s4o.print(s4o.indent_spaces + "char active = "); + s4o.print(s4o.indent_spaces + "active = "); s4o.print(GET_VAR); s4o.print("("); print_step_argument(current_step, "state"); @@ -576,9 +577,10 @@ current_action->accept(*this); s4o.print(",1);\n"); s4o.indent_left(); - s4o.print("}\n"); + s4o.print(s4o.indent_spaces + "}\n"); s4o.print(s4o.indent_spaces + "else if (active) {\n"); s4o.indent_right(); + s4o.print(s4o.indent_spaces); if (vartype == search_var_instance_decl_c::external_vt) s4o.print(SET_EXTERNAL); else if (vartype == search_var_instance_decl_c::located_vt) @@ -610,7 +612,8 @@ if (strcmp(qualifier, "SD") == 0 || strcmp(qualifier, "DS") == 0 || strcmp(qualifier, "SL") == 0) { if (strcmp(qualifier, "SL") == 0) { - print_action_argument(current_action, "reset_remaining_time"); + s4o.print(s4o.indent_spaces); + print_action_argument(current_action, "reset_remaining_time"); } else { print_action_argument(current_action, "set_remaining_time"); @@ -622,9 +625,7 @@ s4o.indent_left(); s4o.print(s4o.indent_spaces + "}\n"); if (strcmp(qualifier, "DS") == 0) { - s4o.print(s4o.indent_spaces + "if ("); - s4o.print("desactivated"); - s4o.print(") {\n"); + s4o.print(s4o.indent_spaces + "if (desactivated) {\n"); s4o.indent_right(); s4o.print(s4o.indent_spaces); print_action_argument(current_action, "set_remaining_time"); @@ -699,7 +700,6 @@ } s4o.print(s4o.indent_spaces +"INT i;\n"); - s4o.print(s4o.indent_spaces +"BOOL transition;\n"); s4o.print(s4o.indent_spaces +"TIME elapsed_time, current_time;\n\n"); /* generate elapsed_time initializations */