correct writing entry/exit actions
This commit is contained in:
@@ -3217,36 +3217,35 @@ static int cyberiada_write_action_text(xmlTextWriterPtr writer, CyberiadaAction*
|
|||||||
|
|
||||||
while (action) {
|
while (action) {
|
||||||
|
|
||||||
if (*(action->trigger) || *(action->behavior) || *(action->guard)) {
|
if (action->type != cybActionTransition || *(action->trigger) || *(action->behavior) || *(action->guard)) {
|
||||||
if (*(action->trigger)) {
|
if (action->type != cybActionTransition) {
|
||||||
if (action->type != cybActionTransition) {
|
if (action->type == cybActionEntry) {
|
||||||
snprintf(buffer, buffer_len, "%s/", action->trigger);
|
snprintf(buffer, buffer_len, "entry/");
|
||||||
|
} else if (action->type == cybActionExit) {
|
||||||
|
snprintf(buffer, buffer_len, "exit/");
|
||||||
} else {
|
} else {
|
||||||
if (*(action->guard)) {
|
ERROR("Bad action type %d", action->type);
|
||||||
snprintf(buffer, buffer_len, "%s [%s]/", action->trigger, action->guard);
|
return CYBERIADA_ASSERT;
|
||||||
} else {
|
|
||||||
snprintf(buffer, buffer_len, "%s/", action->trigger);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
XML_WRITE_TEXT(writer, buffer);
|
|
||||||
if (action->next || *(action->behavior)) {
|
|
||||||
XML_WRITE_TEXT(writer, "\n");
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (*(action->behavior)) {
|
if (*(action->guard)) {
|
||||||
XML_WRITE_TEXT(writer, "/\n");
|
snprintf(buffer, buffer_len, "%s [%s]/", action->trigger, action->guard);
|
||||||
} else if (action->next) {
|
} else {
|
||||||
XML_WRITE_TEXT(writer, "\n");
|
snprintf(buffer, buffer_len, "%s/", action->trigger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
XML_WRITE_TEXT(writer, buffer);
|
||||||
if (*(action->behavior)) {
|
if (action->next || *(action->behavior)) {
|
||||||
XML_WRITE_TEXT(writer, action->behavior);
|
|
||||||
XML_WRITE_TEXT(writer, "\n");
|
XML_WRITE_TEXT(writer, "\n");
|
||||||
}
|
|
||||||
|
|
||||||
if (action->next) {
|
if (*(action->behavior)) {
|
||||||
XML_WRITE_TEXT(writer, "\n");
|
XML_WRITE_TEXT(writer, action->behavior);
|
||||||
|
XML_WRITE_TEXT(writer, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action->next) {
|
||||||
|
XML_WRITE_TEXT(writer, "\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user