From: "Omar Polo" Subject: patch: deindent in another_hunk To: tech@openbsd.org Date: Thu, 05 Nov 2026 10:55:01 +0100 my monitor is not large enough, nor my brain memory large enough to keep this context in memory. appending the full diff below, but let me first show you the -w version: : --- usr.bin/patch/pch.c : +++ usr.bin/patch/pch.c : @@ -622,7 +622,8 @@ another_hunk(void) : p_max = hunkmax; : break; : case '-': : - if (buf[1] == '-') { : + if (buf[1] != '-') : + goto change_line; : if (repl_beginning || : (p_end != p_ptrn_lines + 1 + : (p_char[p_end - 1] == '\n'))) { : @@ -696,8 +697,6 @@ another_hunk(void) : (p_context != 0 || p_repl_lines != 1)) : repl_could_be_missing = false; : break; : - } : - goto change_line; : case '+': : case '!': : repl_could_be_missing = false; okay? diff /usr/src path + /usr/src commit - d284dec97d37a05b69b78bc296868cbd8b92870e blob - 73f4bb1c9c7f4bfbc6bb66b4af94f5650b66a19f file + usr.bin/patch/pch.c --- usr.bin/patch/pch.c +++ usr.bin/patch/pch.c @@ -622,82 +622,81 @@ another_hunk(void) p_max = hunkmax; break; case '-': - if (buf[1] == '-') { - if (repl_beginning || - (p_end != p_ptrn_lines + 1 + - (p_char[p_end - 1] == '\n'))) { - if (p_end == 1) { - /* - * `old' lines were omitted; - * set up to fill them in - * from 'new' context lines. - */ - p_end = p_ptrn_lines + 1; - fillsrc = p_end + 1; - filldst = 1; - fillcnt = p_ptrn_lines; - } else { - if (repl_beginning) { - if (repl_could_be_missing) { - repl_missing = true; - goto hunk_done; - } - fatal("duplicate \"---\" at line %ld--check line numbers at line %ld\n", - p_input_line, p_hunk_beg + repl_beginning); - } else { - fatal("%s \"---\" at line %ld--check line numbers at line %ld\n", - (p_end <= p_ptrn_lines - ? "Premature" - : "Overdue"), - p_input_line, p_hunk_beg); + if (buf[1] != '-') + goto change_line; + if (repl_beginning || + (p_end != p_ptrn_lines + 1 + + (p_char[p_end - 1] == '\n'))) { + if (p_end == 1) { + /* + * `old' lines were omitted; + * set up to fill them in + * from 'new' context lines. + */ + p_end = p_ptrn_lines + 1; + fillsrc = p_end + 1; + filldst = 1; + fillcnt = p_ptrn_lines; + } else { + if (repl_beginning) { + if (repl_could_be_missing) { + repl_missing = true; + goto hunk_done; } + fatal("duplicate \"---\" at line %ld--check line numbers at line %ld\n", + p_input_line, p_hunk_beg + repl_beginning); + } else { + fatal("%s \"---\" at line %ld--check line numbers at line %ld\n", + (p_end <= p_ptrn_lines + ? "Premature" + : "Overdue"), + p_input_line, p_hunk_beg); } } - repl_beginning = p_end; - repl_backtrack_position = ftello(pfp); - repl_patch_line = p_input_line; - p_line[p_end] = savestr(buf); - if (out_of_mem) { - p_end--; - return false; - } - p_char[p_end] = '='; - for (s = buf; - *s && !isdigit((unsigned char)*s); s++) + } + repl_beginning = p_end; + repl_backtrack_position = ftello(pfp); + repl_patch_line = p_input_line; + p_line[p_end] = savestr(buf); + if (out_of_mem) { + p_end--; + return false; + } + p_char[p_end] = '='; + for (s = buf; + *s && !isdigit((unsigned char)*s); s++) + ; + if (!*s) + malformed(); + p_newfirst = strtolinenum(s, &s); + if (*s == ',') { + for (; *s && !isdigit((unsigned char)*s); s++) ; if (!*s) malformed(); - p_newfirst = strtolinenum(s, &s); - if (*s == ',') { - for (; *s && !isdigit((unsigned char)*s); s++) - ; - if (!*s) - malformed(); - p_repl_lines = strtolinenum(s, &s) - - p_newfirst + 1; - if (p_repl_lines < 0) - malformed(); - } else if (p_newfirst) - p_repl_lines = 1; - else { - p_repl_lines = 0; - p_newfirst = 1; - } - if (p_newfirst >= LINENUM_MAX - p_repl_lines || - p_repl_lines >= LINENUM_MAX - p_end) + p_repl_lines = strtolinenum(s, &s) - + p_newfirst + 1; + if (p_repl_lines < 0) malformed(); - p_max = p_repl_lines + p_end; - if (p_max > MAXHUNKSIZE) - fatal("hunk too large (%ld lines) at line %ld: %s", - p_max, p_input_line, buf); - while (p_max >= hunkmax) - grow_hunkmax(); - if (p_repl_lines != ptrn_copiable && - (p_context != 0 || p_repl_lines != 1)) - repl_could_be_missing = false; - break; + } else if (p_newfirst) + p_repl_lines = 1; + else { + p_repl_lines = 0; + p_newfirst = 1; } - goto change_line; + if (p_newfirst >= LINENUM_MAX - p_repl_lines || + p_repl_lines >= LINENUM_MAX - p_end) + malformed(); + p_max = p_repl_lines + p_end; + if (p_max > MAXHUNKSIZE) + fatal("hunk too large (%ld lines) at line %ld: %s", + p_max, p_input_line, buf); + while (p_max >= hunkmax) + grow_hunkmax(); + if (p_repl_lines != ptrn_copiable && + (p_context != 0 || p_repl_lines != 1)) + repl_could_be_missing = false; + break; case '+': case '!': repl_could_be_missing = false;