From faba716e87b6201784fa71542e76073ca25963e8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 23 Jun 2024 13:09:39 -0400 Subject: Add special case support for parsing `bp "->foo"` as a pattern instead of an invalid flag --- bp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'bp.c') diff --git a/bp.c b/bp.c index 8d8ade8..bb887ff 100644 --- a/bp.c +++ b/bp.c @@ -647,9 +647,9 @@ int main(int argc, char *argv[]) options.print_filenames = 0; } else if (!streq(flag, "auto")) errx(EXIT_FAILURE, "Unknown --format option: %s", flag); - } else if (argv[0][0] == '-' && argv[0][1] && argv[0][1] != '-') { // single-char flags - errx(EXIT_FAILURE, "Unrecognized flag: -%c\n\n%s", argv[0][1], usage); - } else if (argv[0][0] != '-') { + } else if (argv[0][0] != '-' || strncmp(argv[0], "->", 2) == 0) { + // As a special case, support `bp '->foo'` as a way to search for + // pointer field accesses without needing to escape anything. if (pattern != NULL) break; bp_pat_t *p = assert_pat(argv[0], NULL, bp_stringpattern(argv[0], argv[0]+strlen(argv[0]))); if (!explicit_case_sensitivity) -- cgit v1.2.3