Skip to content

Commit 5b6aaed

Browse files
authored
Fix optional brackets termination of newshell help (#2077)
1 parent 3ff8eff commit 5b6aaed

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

librz/core/cmd/cmd_api.c

+7
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,13 @@ static size_t fill_args(RzStrBuf *sb, const RzCmdDesc *cd) {
913913
bool has_array = false;
914914
for (arg = cd->help->args; arg && arg->name; arg++) {
915915
if (arg->type == RZ_CMD_ARG_TYPE_FAKE) {
916+
if (!arg->optional) {
917+
// Assume arg is a closing bracket
918+
for (; n_optionals > 0; n_optionals--) {
919+
rz_strbuf_append(sb, "]");
920+
len++;
921+
}
922+
}
916923
rz_strbuf_append(sb, arg->name);
917924
len += strlen(arg->name);
918925
continue;

test/db/cmd/cmd_help

+12
Original file line numberDiff line numberDiff line change
@@ -325,3 +325,15 @@ EXPECT=<<EOF
325325
{"zi":{"cmd":"zi","type":"argv_modes","args_str":"","args":[],"description":"","summary":"Show zignatures matching information"},"zij":{"cmd":"zij","type":"argv_modes","args_str":"","args":[],"description":"","summary":"Show zignatures matching information (JSON mode)"},"zi*":{"cmd":"zi*","type":"argv_modes","args_str":"","args":[],"description":"","summary":"Show zignatures matching information (rizin mode)"},"ziq":{"cmd":"ziq","type":"argv_modes","args_str":"","args":[],"description":"","summary":"Show zignatures matching information (quiet mode)"},"zii":{"cmd":"zii","type":"argv","args_str":" <from> <to>","args":[{"type":"number","name":"from","required":true},{"type":"number","name":"to","required":true}],"description":"","summary":"Show zignatures matching information in range"}}
326326
EOF
327327
RUN
328+
329+
NAME=optional brackets
330+
FILE==
331+
CMDS=<<EOF
332+
?~interpreter-name
333+
.?~macro-arg0
334+
EOF
335+
EXPECT=<<EOF
336+
| #![<interpreter-name> [<arg0> [<arg1> ...]]] # List all available interpreters / Run interpreter
337+
| .(<macro-name> [<macro-arg0> [<macro-arg1> ...]]) # Interpret output of macro
338+
EOF
339+
RUN

0 commit comments

Comments
 (0)