1 /* $OpenBSD: pch.h,v 1.14 2023/07/12 11:26:13 tb Exp $ */ 2 3 /* 4 * patch - a program to apply diffs to original files 5 * 6 * Copyright 1986, Larry Wall 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following condition is met: 10 * 1. Redistributions of source code must retain the above copyright notice, 11 * this condition and the following disclaimer. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 17 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * SUCH DAMAGE. 24 * 25 * -C option added in 1998, original code by Marc Espie, based on FreeBSD 26 * behaviour 27 */ 28 29 #define OLD_FILE 0 30 #define NEW_FILE 1 31 #define INDEX_FILE 2 32 #define MAX_FILE 3 33 34 struct file_name { 35 char *path; 36 bool exists; 37 }; 38 39 extern FILE *pfp; 40 extern LINENUM p_input_line; 41 42 void re_patch(void); 43 void open_patch_file(const char *); 44 void set_hunkmax(void); 45 bool there_is_another_patch(void); 46 void next_intuit_at(off_t, LINENUM); 47 bool another_hunk(void); 48 int pgetline(char **, size_t *, FILE *); 49 bool pch_swap(void); 50 LINENUM pch_first(void); 51 LINENUM pch_ptrn_lines(void); 52 LINENUM pch_newfirst(void); 53 LINENUM pch_repl_lines(void); 54 LINENUM pch_end(void); 55 LINENUM pch_context(void); 56 ssize_t pch_line_len(LINENUM); 57 char pch_char(LINENUM); 58 char *pfetch(LINENUM); 59 LINENUM pch_hunk_beg(void); 60 LINENUM strtolinenum(char *, char **); 61