diff --git a/src/modal.c b/src/modal.c index 2381ae0..81e9a38 100644 --- a/src/modal.c +++ b/src/modal.c @@ -50,18 +50,18 @@ device_write(char *s) int acc = sint(*reg++); /* clang-format off */ switch(c) { - case '+': for(;*reg != 0; reg++) acc += sint(*reg); break; - case '-': for(;*reg != 0; reg++) acc -= sint(*reg); break; - case '*': for(;*reg != 0; reg++) acc *= sint(*reg); break; - case '/': for(;*reg != 0; reg++) acc /= sint(*reg); break; - case '%': for(;*reg != 0; reg++) acc %= sint(*reg); break; - case '&': for(;*reg != 0; reg++) acc &= sint(*reg); break; - case '^': for(;*reg != 0; reg++) acc ^= sint(*reg); break; - case '|': for(;*reg != 0; reg++) acc |= sint(*reg); break; - case '=': for(;*reg != 0; reg++) acc = acc == sint(*reg); break; - case '!': for(;*reg != 0; reg++) acc = acc != sint(*reg); break; - case '>': for(;*reg != 0; reg++) acc = acc > sint(*reg); break; - case '<': for(;*reg != 0; reg++) acc = acc < sint(*reg); break; + case '+': while(*reg) acc += sint(*reg++); break; + case '-': while(*reg) acc -= sint(*reg++); break; + case '*': while(*reg) acc *= sint(*reg++); break; + case '/': while(*reg) acc /= sint(*reg++); break; + case '%': while(*reg) acc %= sint(*reg++); break; + case '&': while(*reg) acc &= sint(*reg++); break; + case '^': while(*reg) acc ^= sint(*reg++); break; + case '|': while(*reg) acc |= sint(*reg++); break; + case '=': while(*reg) acc = acc == sint(*reg++); break; + case '!': while(*reg) acc = acc != sint(*reg++); break; + case '>': while(*reg) acc = acc > sint(*reg++); break; + case '<': while(*reg) acc = acc < sint(*reg++); break; } /* clang-format on */ dst_ += snprintf(dst_, 0x10, "%d", acc);