correct bug with the string trim algorithm

This commit is contained in:
Alexey Fedoseev
2024-04-25 13:40:54 +03:00
parent 91d362a968
commit a6502f922d

View File

@@ -369,8 +369,10 @@ static int cyberiada_string_trim(char* orig)
while(s > orig) { while(s > orig) {
if (isspace(*s)) { if (isspace(*s)) {
*s = 0; *s = 0;
s--;
} else {
break;
} }
s--;
} }
return 0; return 0;
} }
@@ -721,8 +723,8 @@ static int cyberiada_decode_edge_action(const char* text, CyberiadaAction** acti
} }
} }
if (cyberiaga_matchres_action_regexps(buffer, if (cyberiaga_matchres_action_regexps(buffer,
pmatch, CYBERIADA_ACTION_REGEXP_MATCHES, pmatch, CYBERIADA_ACTION_REGEXP_MATCHES,
&trigger, &guard, &behavior) != CYBERIADA_NO_ERROR) { &trigger, &guard, &behavior) != CYBERIADA_NO_ERROR) {
return CYBERIADA_ASSERT; return CYBERIADA_ASSERT;
} }
@@ -3227,7 +3229,11 @@ static int cyberiada_write_action_text(xmlTextWriterPtr writer, CyberiadaAction*
} }
} else { } else {
if (*(action->guard)) { if (*(action->guard)) {
snprintf(buffer, buffer_len, "%s [%s]/", action->trigger, action->guard); if (*(action->trigger)) {
snprintf(buffer, buffer_len, "%s [%s]/", action->trigger, action->guard);
} else {
snprintf(buffer, buffer_len, "[%s]/", action->guard);
}
} else { } else {
snprintf(buffer, buffer_len, "%s/", action->trigger); snprintf(buffer, buffer_len, "%s/", action->trigger);
} }