diff options
author | David A. Wheeler <dwheeler@dwheeler.com> | 2013-10-29 03:52:48 +0400 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-10-29 03:52:48 +0400 |
commit | af0cdeedc699da96e2f38c3f321150cdaa3bb7d6 (patch) | |
tree | 39b2fb4b8f8b10b122bde16514367909e183d22a | |
parent | 2d576e2a220e28fe815ea02c38c9bfe9195406c2 (diff) |
sed: accept -E as a synonym for -r
Signed-off-by: David A. Wheeler <dwheeler@dwheeler.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | editors/sed.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/editors/sed.c b/editors/sed.c index 3a0d917aa..ef462843b 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -1435,15 +1435,21 @@ int sed_main(int argc UNUSED_PARAM, char **argv) IF_LONG_OPTS(applet_long_options = sed_longopts); /* -i must be first, to match OPT_in_place definition */ - opt = getopt32(argv, "i::rne:f:", &opt_i, &opt_e, &opt_f, + /* -E is a synonym of -r: + * GNU sed 4.2.1 mentions it in neither --help + * nor manpage, but does recognize it. + */ + opt = getopt32(argv, "i::rEne:f:", &opt_i, &opt_e, &opt_f, &G.be_quiet); /* counter for -n */ //argc -= optind; argv += optind; if (opt & OPT_in_place) { // -i atexit(cleanup_outname); } - if (opt & 0x2) G.regex_type |= REG_EXTENDED; // -r - //if (opt & 0x4) G.be_quiet++; // -n + if (opt & (2|4)) + G.regex_type |= REG_EXTENDED; // -r or -E + //if (opt & 8) + // G.be_quiet++; // -n (implemented with a counter instead) while (opt_e) { // -e add_cmd_block(llist_pop(&opt_e)); } @@ -1458,7 +1464,7 @@ int sed_main(int argc UNUSED_PARAM, char **argv) fclose(cmdfile); } /* if we didn't get a pattern from -e or -f, use argv[0] */ - if (!(opt & 0x18)) { + if (!(opt & 0x30)) { if (!*argv) bb_show_usage(); add_cmd_block(*argv++); |