A re-roll of https://lore.kernel.org/git/cover-0.4-0000000000-20210608T121008Z-avarab@xxxxxxxxx/ Fixes whitespace issues in v1, and uses the named enums I added instead of their implicit values in the documentation. I also conflated BREAK and CONTINUE in that same explanation. Ævar Arnfjörð Bjarmason (4): upload-pack: run is_repository_shallow() before setup_revisions() revision.h: unify "disable_stdin" and "read_from_stdin" pack-objects.c: do stdin parsing via revision.c's API pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS builtin/am.c | 4 +-- builtin/blame.c | 2 +- builtin/diff-tree.c | 2 +- builtin/pack-objects.c | 64 +++++++++++++++++++--------------------- builtin/rev-list.c | 2 +- revision.c | 35 +++++++++++++++++++--- revision.h | 66 ++++++++++++++++++++++++++++++++++++++---- sequencer.c | 4 +-- 8 files changed, 129 insertions(+), 50 deletions(-) Range-diff against v1: 1: c56a302e09 = 1: 6a8b20a7cf upload-pack: run is_repository_shallow() before setup_revisions() 2: 002e0f1cf7 = 2: d88b2c0410 revision.h: unify "disable_stdin" and "read_from_stdin" 3: 1a9eb26587 ! 3: d433d7b24a pack-objects.c: do stdin parsing via revision.c's API @@ revision.c: static void read_revisions_from_stdin(struct rev_info *revs, + int do_break = 0; + enum rev_info_stdin_line ret = revs->handle_stdin_line( + revs, &sb, revs->stdin_line_priv); -+ ++ + switch (ret) { + case REV_INFO_STDIN_LINE_PROCESS: + break; @@ revision.h: struct rev_info { + * When reading from stdin (see "stdin_handling" above) define + * a handle_stdin_line function to consume the lines. + * -+ * - Return 0 to continue revision.c's normal processing of the -+ * line (after possibly munging the provided strbuf). ++ * - Return REV_INFO_STDIN_LINE_PROCESS to continue ++ * revision.c's normal processing of the line (after ++ * possibly munging the provided strbuf). + * -+ * - Return 1 to indicate that the line is fully processed, -+ * moving onto the next line (if any) ++ * - Return REV_INFO_STDIN_LINE_BREAK to process no further ++ * lines, or anything further from the current line (just ++ * like REV_INFO_STDIN_LINE_CONTINUE). + * -+ * - Return 2 to process no further lines. ++ * - Return REV_INFO_STDIN_LINE_CONTINUE to indicate that the ++ * line is fully processed, moving onto the next line (if ++ * any) + * + * Use the "stdin_line_priv" to optionally pass your own data + * around. 4: 15a3a5d047 ! 4: e59a06c314 pack-objects.c: make use of REV_INFO_STDIN_LINE_PROCESS @@ revision.c: static void read_revisions_from_stdin(struct rev_info *revs, ## revision.h ## @@ revision.h: struct rev_info { - * - Return 0 to continue revision.c's normal processing of the - * line (after possibly munging the provided strbuf). + * revision.c's normal processing of the line (after + * possibly munging the provided strbuf). * + * Change "revarg_flags" to affect the subsequent handling + * in handle_revision_arg() + * - * - Return 1 to indicate that the line is fully processed, - * moving onto the next line (if any) + * - Return REV_INFO_STDIN_LINE_BREAK to process no further + * lines, or anything further from the current line (just + * like REV_INFO_STDIN_LINE_CONTINUE). + * + * - Return REV_INFO_STDIN_LINE_CONTINUE to indicate that the ++ * ++ * - Return REV_INFO_STDIN_LINE_BREAK to indicate that the + * line is fully processed, moving onto the next line (if + * any) * @@ revision.h: struct rev_info { * around. -- 2.32.0.571.gdba276db2c