diff options
author | Paul Eggert <[email protected]> | 2025-04-26 13:59:50 -0700 |
---|---|---|
committer | Paul Eggert <[email protected]> | 2025-04-27 23:42:49 -0700 |
commit | c191460adf0407f8ba84176b01e6075449747dbf (patch) | |
tree | 75cc961901da3ca66b4a3d71fa072ebd20e336dd | |
parent | 686357a40ca038edc902276cb3b33f4757d8cfb2 (diff) | |
download | diffutils-c191460adf0407f8ba84176b01e6075449747dbf.tar.gz |
sdiff: refactor simplification
* src/sdiff.c (skip_white): Simplify a loop.
(edit): Redo nested switches to avoid duplicate code.
-rw-r--r-- | src/sdiff.c | 47 |
1 files changed, 16 insertions, 31 deletions
diff --git a/src/sdiff.c b/src/sdiff.c index cc961c3..8b7e2b1 100644 --- a/src/sdiff.c +++ b/src/sdiff.c @@ -821,13 +821,8 @@ static int skip_white (void) { int c; - for (;;) - { - c = getchar (); - if (! c_isspace (c) || c == '\n') - break; - checksigs (); - } + while ((c = getchar ()) != '\n' && c_isspace (c)) + checksigs (); if (ferror (stdin)) perror_fatal (_("read failed")); return c; @@ -869,41 +864,31 @@ edit (struct line_filter *left, char const *lname, lin lline, lin llen, cmd = skip_white (); switch (cmd) { - case '1': case '2': case 'l': case 'r': - case 's': case 'v': case 'q': - if (skip_white () == '\n') - gotcmd = true; - else - { - give_help (); - flush_line (); - } - break; - case 'e':; int cmd1 = skip_white (); switch (cmd1) { - case '1': case '2': case 'b': case 'd': case 'l': case 'r': - if (skip_white () == '\n') - { - gotcmd = true; - cmd |= cmd1 << UCHAR_WIDTH; - } - else - { - give_help (); - flush_line (); - } - break; case '\n': gotcmd = true; - break; + continue; default: give_help (); flush_line (); + continue; + case '1': case '2': case 'b': case 'd': case 'l': case 'r': + cmd |= cmd1 << UCHAR_WIDTH; break; } + FALLTHROUGH; + case '1': case '2': case 'l': case 'r': + case 's': case 'v': case 'q': + if (skip_white () == '\n') + gotcmd = true; + else + { + give_help (); + flush_line (); + } break; case EOF: |