diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-06-15 14:01:42 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-06-29 13:33:58 -0400 |
commit | 1ae78d08e9a7d356c4b8555799ee42c9244c1b7d (patch) | |
tree | 22362290b90b5091be8a6ca9a6c5e50422e22b23 | |
parent | 1c3cbe9456aa97d7956283ef2f852f6c0489ab1f (diff) | |
download | kutter-1ae78d08e9a7d356c4b8555799ee42c9244c1b7d.tar.gz kutter-1ae78d08e9a7d356c4b8555799ee42c9244c1b7d.tar.xz kutter-1ae78d08e9a7d356c4b8555799ee42c9244c1b7d.zip |
command: Encode MESSAGE_MIN in command_parser->max_size
Add the message minimum into the stored constant so it does not need
to be added at run-time.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | scripts/buildcommands.py | 8 | ||||
-rw-r--r-- | src/command.c | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/scripts/buildcommands.py b/scripts/buildcommands.py index 8e220bad..a26801ee 100644 --- a/scripts/buildcommands.py +++ b/scripts/buildcommands.py @@ -30,7 +30,8 @@ def error(msg): def build_parser(parser, iscmd, all_param_types): if parser.name == "#empty": - return "\n // Empty message\n .max_size=0," + return "\n // Empty message\n .max_size=%d," % ( + msgproto.MESSAGE_MIN,) if parser.name == "#output": comment = "Output: " + parser.msgformat else: @@ -54,8 +55,9 @@ def build_parser(parser, iscmd, all_param_types): + types.count('PT_buffer')) out += " .num_args=%d," % (num_args,) else: - max_size = min(msgproto.MESSAGE_MAX - msgproto.MESSAGE_MIN - , 1 + sum([t.max_length for t in parser.param_types])) + max_size = min(msgproto.MESSAGE_MAX, + (msgproto.MESSAGE_MIN + 1 + + sum([t.max_length for t in parser.param_types]))) out += " .max_size=%d," % (max_size,) return out diff --git a/src/command.c b/src/command.c index bdcb82fe..6bc42bed 100644 --- a/src/command.c +++ b/src/command.c @@ -192,7 +192,7 @@ _sendf(const struct command_encoder *ce, ...) return; writeb(&in_sendf, 1); - uint8_t buf_len = READP(ce->max_size) + MESSAGE_MIN; + uint8_t buf_len = READP(ce->max_size); char *buf = console_get_output(buf_len); if (!buf) goto done; |