1*0b459c2cSDavid du Colombier1997-08-31 Paul Eggert <eggert@twinsun.com> 2*0b459c2cSDavid du Colombier 3*0b459c2cSDavid du Colombier * configure.in (VERSION): Version 2.5 released. 4*0b459c2cSDavid du Colombier 5*0b459c2cSDavid du Colombier1997-07-21 Paul Eggert <eggert@twinsun.com> 6*0b459c2cSDavid du Colombier 7*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.4.4. 8*0b459c2cSDavid du Colombier * pch.c (there_is_another_patch), NEWS: Report an error if the patch 9*0b459c2cSDavid du Colombier input contains garbage but no patches. 10*0b459c2cSDavid du Colombier 11*0b459c2cSDavid du Colombier * pch.c (open_patch_file): 12*0b459c2cSDavid du Colombier Check for patch file too long (i.e., its size 13*0b459c2cSDavid du Colombier doesn't fit in a `long', and LFS isn't available). 14*0b459c2cSDavid du Colombier 15*0b459c2cSDavid du Colombier * inp.c (plan_a): 16*0b459c2cSDavid du Colombier Cast malloc return value, in case malloc returns char *. 17*0b459c2cSDavid du Colombier 18*0b459c2cSDavid du Colombier1997-07-16 Paul Eggert <eggert@twinsun.com> 19*0b459c2cSDavid du Colombier 20*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.4.3. 21*0b459c2cSDavid du Colombier 22*0b459c2cSDavid du Colombier * NEWS, patch.man, pch.c (intuit_diff_type, get_line, pget_line): 23*0b459c2cSDavid du Colombier Now demangles RFC 934 encapsulation. 24*0b459c2cSDavid du Colombier * pch.c (p_rfc934_nesting): New var. 25*0b459c2cSDavid du Colombier 26*0b459c2cSDavid du Colombier * pch.c (intuit_diff_type): Don't bother to check file names carefully 27*0b459c2cSDavid du Colombier if we're going to return NO_DIFF. 28*0b459c2cSDavid du Colombier 29*0b459c2cSDavid du Colombier * inp.c (plan_a): Count the number of lines before allocating 30*0b459c2cSDavid du Colombier pointer-to-line buffer; this reduces memory requirements 31*0b459c2cSDavid du Colombier considerably (roughly by a factor of 5 on 32-bit hosts). 32*0b459c2cSDavid du Colombier Decrease `size' only when read unexpectedly reports EOF. 33*0b459c2cSDavid du Colombier (i_buffer): New var. 34*0b459c2cSDavid du Colombier (too_many_lines): New fn. 35*0b459c2cSDavid du Colombier (re_input): Free i_buffer if using plan A. 36*0b459c2cSDavid du Colombier Free buffers unconditionally; they can't be zero. 37*0b459c2cSDavid du Colombier 38*0b459c2cSDavid du Colombier * inp.c (plan_a, plan_b): Check for overflow of line counter. 39*0b459c2cSDavid du Colombier 40*0b459c2cSDavid du Colombier * pch.c (malformed), util.h (memory_fatal, read_fatal, write_fatal): 41*0b459c2cSDavid du Colombier Declare as noreturn. 42*0b459c2cSDavid du Colombier 43*0b459c2cSDavid du Colombier1997-07-10 Paul Eggert <eggert@twinsun.com> 44*0b459c2cSDavid du Colombier 45*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.4.2. 46*0b459c2cSDavid du Colombier 47*0b459c2cSDavid du Colombier * util.c (ok_to_reverse), NEWS: The default answer is now `n'; 48*0b459c2cSDavid du Colombier this is better for Emacs. 49*0b459c2cSDavid du Colombier 50*0b459c2cSDavid du Colombier * Makefile.in (dist): Use cp -p, not ln; 51*0b459c2cSDavid du Colombier some hosts do the wrong thing with ln if the source is a symbolic link. 52*0b459c2cSDavid du Colombier 53*0b459c2cSDavid du Colombier * patch.man: Fix typo: -y -> -Y. 54*0b459c2cSDavid du Colombier 55*0b459c2cSDavid du Colombier1997-07-05 Paul Eggert <eggert@twinsun.com> 56*0b459c2cSDavid du Colombier 57*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.4.1. 58*0b459c2cSDavid du Colombier 59*0b459c2cSDavid du Colombier * patch.c: (main, get_some_switches), NEWS, patch.man: 60*0b459c2cSDavid du Colombier Version control is now independent of whether backups are made. 61*0b459c2cSDavid du Colombier * patch.c (option_help): Put version control options together. 62*0b459c2cSDavid du Colombier (get_some_switches): With CVS 1.9 hack, treat -b foo like -b -z foo, 63*0b459c2cSDavid du Colombier not just -z foo. This change is needed due to recent change in -z. 64*0b459c2cSDavid du Colombier * backupfile.c (find_backup_file_name): 65*0b459c2cSDavid du Colombier backup_type == none causes undefined behavior; 66*0b459c2cSDavid du Colombier this undoes the previous change to this file. 67*0b459c2cSDavid du Colombier 68*0b459c2cSDavid du Colombier * patch.c (locate_hunk): Fix bug when locating context diff hunks 69*0b459c2cSDavid du Colombier near end of file with nonzero fuzz. 70*0b459c2cSDavid du Colombier 71*0b459c2cSDavid du Colombier * util.c (move_file): Don't assume that ENOENT is reported when both 72*0b459c2cSDavid du Colombier ENOENT and EXDEV apply; this isn't true with DJGPP, and 73*0b459c2cSDavid du Colombier Posix doesn't require it. 74*0b459c2cSDavid du Colombier 75*0b459c2cSDavid du Colombier * pch.c (there_is_another_patch): 76*0b459c2cSDavid du Colombier Suggest -p when we can't intuit a file. 77*0b459c2cSDavid du Colombier 78*0b459c2cSDavid du Colombier1997-06-19 Paul Eggert <eggert@twinsun.com> 79*0b459c2cSDavid du Colombier 80*0b459c2cSDavid du Colombier * configure.in (VERSION): Version 2.4 released. 81*0b459c2cSDavid du Colombier * NEWS: Patch is now verbose when patches do not match exactly. 82*0b459c2cSDavid du Colombier 83*0b459c2cSDavid du Colombier1997-06-17 Paul Eggert <eggert@twinsun.com> 84*0b459c2cSDavid du Colombier 85*0b459c2cSDavid du Colombier * pc/djgpp/configure.sed (config.h): Remove redundant $(srcdir). 86*0b459c2cSDavid du Colombier 87*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.9. 88*0b459c2cSDavid du Colombier * patch.c (main): By default, warn about hunks that succeed 89*0b459c2cSDavid du Colombier with nonzero offset. 90*0b459c2cSDavid du Colombier * patch.man: Add LC_ALL=C advice for making patches. 91*0b459c2cSDavid du Colombier * pc/djgpp/configure.sed (config.h): Fix paths to dependent files. 92*0b459c2cSDavid du Colombier 93*0b459c2cSDavid du Colombier1997-06-17 Paul Eggert <eggert@twinsun.com> 94*0b459c2cSDavid du Colombier 95*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.8. 96*0b459c2cSDavid du Colombier 97*0b459c2cSDavid du Colombier * pch.c (open_patch_file): Test stdin for fseekability. 98*0b459c2cSDavid du Colombier (intuit_diff_type): Missing context diff headers are now warnings, 99*0b459c2cSDavid du Colombier not errors; some people use patches with them (e.g. when retrying 100*0b459c2cSDavid du Colombier rejects). 101*0b459c2cSDavid du Colombier 102*0b459c2cSDavid du Colombier * patch.c (struct outstate): 103*0b459c2cSDavid du Colombier New type, collecting together some output state vars. 104*0b459c2cSDavid du Colombier (apply_hunk, copy_till, spew_output, init_output): Use it. 105*0b459c2cSDavid du Colombier Keep track of whether some output has been generated. 106*0b459c2cSDavid du Colombier (backup_if_mismatch): New var. 107*0b459c2cSDavid du Colombier (ofp): Remove, in favor of local struct outstate vars. 108*0b459c2cSDavid du Colombier (main): Use struct outstate. Initialize backup_if_mismatch to 109*0b459c2cSDavid du Colombier be the inverse of posixly_correct. Keep track of whether mismatches 110*0b459c2cSDavid du Colombier occur, and use this to implement backup_if_mismatch. 111*0b459c2cSDavid du Colombier Report files that are not empty after patching, but should be. 112*0b459c2cSDavid du Colombier (longopts, option_help, get_some_switches): New options 113*0b459c2cSDavid du Colombier --backup-if-mismatch, --no-backup-if-mismatch. 114*0b459c2cSDavid du Colombier (get_some_switches): -B, -Y, -z no longer set backup_type. 115*0b459c2cSDavid du Colombier * backupfile.c (find_backup_file_name): 116*0b459c2cSDavid du Colombier Treat backup_type == none like simple. 117*0b459c2cSDavid du Colombier 118*0b459c2cSDavid du Colombier * Makefile.in (CONFIG_HDRS): 119*0b459c2cSDavid du Colombier Remove var; no longer needed by djgpp port. 120*0b459c2cSDavid du Colombier (DISTFILES_PC_DJGPP): Rename pc/djgpp/config.sed to 121*0b459c2cSDavid du Colombier pc/djgpp/configure.sed; remove pc/djgpp/config.h in favor of 122*0b459c2cSDavid du Colombier new file that edits it, called pc/djgpp/config.sed. 123*0b459c2cSDavid du Colombier * pc/djgpp/configure.bat: Rename config.sed to configure.sed. 124*0b459c2cSDavid du Colombier * pc/djgpp/configure.sed (CONFIG_HDRS): Remove. 125*0b459c2cSDavid du Colombier (config.h): Add rule to build this from config.hin and 126*0b459c2cSDavid du Colombier pc/djgpp/config.sed. 127*0b459c2cSDavid du Colombier * pc/djgpp/config.sed: 128*0b459c2cSDavid du Colombier Convert from .h file to .sed script that generates .h file. 129*0b459c2cSDavid du Colombier 130*0b459c2cSDavid du Colombier * NEWS: Describe --backup-if-mismatch, --no-backup-if-mismatch. 131*0b459c2cSDavid du Colombier * patch.man: 132*0b459c2cSDavid du Colombier Describe new options --backup-if-mismatch, --no-backup-if-mismatch 133*0b459c2cSDavid du Colombier and their ramifications. Use unreadable backup to represent 134*0b459c2cSDavid du Colombier nonexistent file. 135*0b459c2cSDavid du Colombier 136*0b459c2cSDavid du Colombier1997-06-12 Paul Eggert <eggert@twinsun.com> 137*0b459c2cSDavid du Colombier 138*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.7. 139*0b459c2cSDavid du Colombier (AC_CHECK_FUNCS): Add `raise'. 140*0b459c2cSDavid du Colombier 141*0b459c2cSDavid du Colombier * Makefile.in (inp.o): No longer depends on quotearg.h. 142*0b459c2cSDavid du Colombier 143*0b459c2cSDavid du Colombier * common.h (outfile): New decl (was private var named `output'). 144*0b459c2cSDavid du Colombier (invc): New decl. 145*0b459c2cSDavid du Colombier (GENERIC_OBJECT): Renamed from VOID. 146*0b459c2cSDavid du Colombier (NULL_DEVICE, TTY_DEVICE): New macros. 147*0b459c2cSDavid du Colombier 148*0b459c2cSDavid du Colombier * patch.c (output): Remove; renamed to `outfile' and moved to common.h. 149*0b459c2cSDavid du Colombier (main): `failed' is count, not boolean. 150*0b459c2cSDavid du Colombier Say "Skipping patch." when deciding to skip patch. 151*0b459c2cSDavid du Colombier (get_some_switches): Set invc when setting inname. 152*0b459c2cSDavid du Colombier 153*0b459c2cSDavid du Colombier * inp.c: Do not include <quotearg.h>. 154*0b459c2cSDavid du Colombier (SCCSPREFIX, GET, GET_LOCKED, SCCSDIFF1, SCCSDIFF2, SCCSDIFF3, 155*0b459c2cSDavid du Colombier RCSSUFFIX, CHECKOUT, CHECKOUT_LOCKED, RCSDIFF1, RCSDIFF2): 156*0b459c2cSDavid du Colombier Move to util.c. 157*0b459c2cSDavid du Colombier (get_input_file): Invoke new functions version_controller and 158*0b459c2cSDavid du Colombier version_get to simplify this code. 159*0b459c2cSDavid du Colombier (plan_b): "/dev/tty" -> NULL_DEVICE 160*0b459c2cSDavid du Colombier 161*0b459c2cSDavid du Colombier * pch.h (pch_timestamp): New decl. 162*0b459c2cSDavid du Colombier * pch.c (p_timestamp): New var; takes over from global timestamp array. 163*0b459c2cSDavid du Colombier (pch_timestamp): New function to export p_timestamp. 164*0b459c2cSDavid du Colombier (there_is_another_patch): Use blander wording when you can't intuit 165*0b459c2cSDavid du Colombier the file name. 166*0b459c2cSDavid du Colombier Say "Skipping patch." when deciding to skip patch. 167*0b459c2cSDavid du Colombier (intuit_diff_type): Look for version-controlled but nonexistent files 168*0b459c2cSDavid du Colombier when intuiting file names; set invc accordingly. 169*0b459c2cSDavid du Colombier Ignore Index: line if either old or new line is present, and if 170*0b459c2cSDavid du Colombier POSIXLY_CORRECT is not set. 171*0b459c2cSDavid du Colombier (do_ed_script): Flush stdout before invoking popen, since it may 172*0b459c2cSDavid du Colombier send output to stdout. 173*0b459c2cSDavid du Colombier 174*0b459c2cSDavid du Colombier * util.h (version_controller, version_get): New decls. 175*0b459c2cSDavid du Colombier * util.c: Include <quotearg.h> earlier. 176*0b459c2cSDavid du Colombier (raise): New macro, if ! HAVE_RAISE. 177*0b459c2cSDavid du Colombier (move_file): Create empty unreadable file when backing up a nonexistent 178*0b459c2cSDavid du Colombier file. 179*0b459c2cSDavid du Colombier (DEV_NULL): New constant. 180*0b459c2cSDavid du Colombier (SCCSPREFIX, GET. GET_LOCKED, SCCSDIFF1, SCCSDIFF2, 181*0b459c2cSDavid du Colombier RCSSUFFIX, CHECKOUT, CHECKOUT_LOCKED, RCSDIFF1): Moved here from inp.c. 182*0b459c2cSDavid du Colombier (version_controller, version_get): New functions. 183*0b459c2cSDavid du Colombier (ask): Look only at /dev/tty for answers; and when standard output is 184*0b459c2cSDavid du Colombier not a terminal and ! posixly_correct, don't even look there. 185*0b459c2cSDavid du Colombier Remove unnecessary fflushes of stdout. 186*0b459c2cSDavid du Colombier (ok_to_reverse): Say "Skipping patch." when deciding to skip patch.. 187*0b459c2cSDavid du Colombier (sigs): SIGPIPE might not be defined. 188*0b459c2cSDavid du Colombier (exit_with_signal): Use `raise' instead of `kill'. 189*0b459c2cSDavid du Colombier (systemic): fflush stdout before invoking subsidiary command. 190*0b459c2cSDavid du Colombier 191*0b459c2cSDavid du Colombier * patch.man: Document recent changes. 192*0b459c2cSDavid du Colombier Add "COMPATIBILITY ISSUES" section. 193*0b459c2cSDavid du Colombier 194*0b459c2cSDavid du Colombier * NEWS: New COMPATIBILITY ISSUES for man page. 195*0b459c2cSDavid du Colombier Changed verbosity when fuzz is found. 196*0b459c2cSDavid du Colombier File name intuition is changed, again. 197*0b459c2cSDavid du Colombier Backups are made unreadable when the file did not exist. 198*0b459c2cSDavid du Colombier 199*0b459c2cSDavid du Colombier * pc/djgpp/config.h (HAVE_STRUCT_UTIMBUF): Define. 200*0b459c2cSDavid du Colombier (HAVE_RAISE): New macro. 201*0b459c2cSDavid du Colombier (HAVE_UTIME_H): Define. 202*0b459c2cSDavid du Colombier (TZ_is_unset): Do not define; it's not a serious problem with `patch' 203*0b459c2cSDavid du Colombier to have TZ be unset in DOS. 204*0b459c2cSDavid du Colombier 205*0b459c2cSDavid du Colombier1997-06-08 Paul Eggert <eggert@twinsun.com> 206*0b459c2cSDavid du Colombier 207*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.6. 208*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Add utime.h. 209*0b459c2cSDavid du Colombier * acconfig.h, configure.in, pc/djgpp/config.h (HAVE_STRUCT_UTIMBUF): 210*0b459c2cSDavid du Colombier New macro. 211*0b459c2cSDavid du Colombier * pc/djgpp/config.h (HAVE_UTIME_H, TZ_is_unset): New macros. 212*0b459c2cSDavid du Colombier 213*0b459c2cSDavid du Colombier * NEWS, patch.man: Describe new -Z, -T options, new numeric 214*0b459c2cSDavid du Colombier option for -G, retired -G, and more verbose default behavior 215*0b459c2cSDavid du Colombier with fuzz. 216*0b459c2cSDavid du Colombier 217*0b459c2cSDavid du Colombier * pch.c (intuit_diff_type): Record times reported for files in headers. 218*0b459c2cSDavid du Colombier Remove head_says_nonexistent[x], since it's now equivalent to 219*0b459c2cSDavid du Colombier !timestamp[x]. 220*0b459c2cSDavid du Colombier * util.h (fetchname): Change argument head_says_nonexistent to 221*0b459c2cSDavid du Colombier timestamp. 222*0b459c2cSDavid du Colombier * util.c: #include <partime.h> for TM_LOCAL_ZONE. 223*0b459c2cSDavid du Colombier Don't include <time.h> since common.h now includes it. 224*0b459c2cSDavid du Colombier (ok_to_reverse): noreverse and batch cases now output regardless of 225*0b459c2cSDavid du Colombier verbosity. 226*0b459c2cSDavid du Colombier (fetchname): Change argument head_says_nonexistent to pstamp, and 227*0b459c2cSDavid du Colombier store header timestamp into *pstamp. 228*0b459c2cSDavid du Colombier If -T or -Z option is given, match time stamps more precisely. 229*0b459c2cSDavid du Colombier (ask): Remove unnecessary close of ttyfd. 230*0b459c2cSDavid du Colombier When there is no terminal at all, output a newline to make the 231*0b459c2cSDavid du Colombier output look nicer. After reporting EOF, flush stdout; 232*0b459c2cSDavid du Colombier when an input error, report the error type. 233*0b459c2cSDavid du Colombier 234*0b459c2cSDavid du Colombier * inp.c (get_input_file): 235*0b459c2cSDavid du Colombier Ask user whether to get file if patch_get is negative. 236*0b459c2cSDavid du Colombier 237*0b459c2cSDavid du Colombier * Makefile.in (clean): Don't clean */*.o; clean core* and *core. 238*0b459c2cSDavid du Colombier 239*0b459c2cSDavid du Colombier1997-06-04 Paul Eggert <eggert@twinsun.com> 240*0b459c2cSDavid du Colombier 241*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.5. 242*0b459c2cSDavid du Colombier 243*0b459c2cSDavid du Colombier * util.c (ok_to_reverse): 244*0b459c2cSDavid du Colombier Be less chatty if verbosity is SILENT and we don't 245*0b459c2cSDavid du Colombier have to ask the user. If force is nonzero, apply the patch anyway. 246*0b459c2cSDavid du Colombier 247*0b459c2cSDavid du Colombier * pch.c (there_is_another_patch): 248*0b459c2cSDavid du Colombier Before skipping rest of patch, skip to 249*0b459c2cSDavid du Colombier the patch start, so that another_hunk can skip it properly. 250*0b459c2cSDavid du Colombier (intuit_diff_type): Slight wording change for missing headers, to 251*0b459c2cSDavid du Colombier regularize with other diagnostics. Fix off-by-one error when setting 252*0b459c2cSDavid du Colombier p_input_line when scanning the first hunk to check for deleted files. 253*0b459c2cSDavid du Colombier 254*0b459c2cSDavid du Colombier1997-06-03 Paul Eggert <eggert@twinsun.com> 255*0b459c2cSDavid du Colombier 256*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.4. 257*0b459c2cSDavid du Colombier 258*0b459c2cSDavid du Colombier * NEWS: Now matches more generously against nonexistent or empty files. 259*0b459c2cSDavid du Colombier 260*0b459c2cSDavid du Colombier * pch.c (there_is_another_patch): Move warning about not being 261*0b459c2cSDavid du Colombier able to intuit file names here from skip_to. 262*0b459c2cSDavid du Colombier (intuit_diff_type): Fatal error if we find a headless unified 263*0b459c2cSDavid du Colombier or context diff. 264*0b459c2cSDavid du Colombier 265*0b459c2cSDavid du Colombier * util.c (ask): Null-terminate buffer properly even if it grew. 266*0b459c2cSDavid du Colombier (fetchname): No need to test for null first argument. 267*0b459c2cSDavid du Colombier 268*0b459c2cSDavid du Colombier1997-06-02 Paul Eggert <eggert@twinsun.com> 269*0b459c2cSDavid du Colombier 270*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.3. 271*0b459c2cSDavid du Colombier * pch.c (p_says_nonexistent, pch_says_nonexistent): Is now 1 for empty, 272*0b459c2cSDavid du Colombier 2 for nonexistent. 273*0b459c2cSDavid du Colombier (intuit_diff_type): Set p_says_nonexistent according to new meaning. 274*0b459c2cSDavid du Colombier Treat empty files like nonexistent files when reversing. 275*0b459c2cSDavid du Colombier (skip_to): Output better diagnostic when we can't intuit a file name. 276*0b459c2cSDavid du Colombier * patch.c (main): 277*0b459c2cSDavid du Colombier Count bytes, not lines, when testing whether a file is empty, 278*0b459c2cSDavid du Colombier since it may contain only non-newline chars. 279*0b459c2cSDavid du Colombier pch_says_nonexistent now returns 2 for nonexistent files. 280*0b459c2cSDavid du Colombier 281*0b459c2cSDavid du Colombier1997-06-01 Paul Eggert <eggert@twinsun.com> 282*0b459c2cSDavid du Colombier 283*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.2. 284*0b459c2cSDavid du Colombier * pch.c (open_patch_file): 285*0b459c2cSDavid du Colombier Fix bug when computing size of patch read from a pipe. 286*0b459c2cSDavid du Colombier 287*0b459c2cSDavid du Colombier1997-05-30 Paul Eggert <eggert@twinsun.com> 288*0b459c2cSDavid du Colombier 289*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.3.1. 290*0b459c2cSDavid du Colombier 291*0b459c2cSDavid du Colombier * Makefile.in (transform, patch_name): New vars, 292*0b459c2cSDavid du Colombier for proper implementation of AC_ARG_PROGRAM. 293*0b459c2cSDavid du Colombier (install, uninstall): Use them. 294*0b459c2cSDavid du Colombier (install-strip): New rule. 295*0b459c2cSDavid du Colombier * pc/djgpp/config.sed (program_transform_name): Set to empty. 296*0b459c2cSDavid du Colombier 297*0b459c2cSDavid du Colombier1997-05-30 Paul Eggert <eggert@twinsun.com> 298*0b459c2cSDavid du Colombier 299*0b459c2cSDavid du Colombier * configure.in (VERSION), NEWS: Version 2.3 released. 300*0b459c2cSDavid du Colombier * patch.man: Fix two font typos. 301*0b459c2cSDavid du Colombier * util.c (doprogram): Fix misspelled decl. 302*0b459c2cSDavid du Colombier 303*0b459c2cSDavid du Colombier1997-05-26 Paul Eggert <eggert@twinsun.com> 304*0b459c2cSDavid du Colombier 305*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.2.93. 306*0b459c2cSDavid du Colombier 307*0b459c2cSDavid du Colombier * pch.c (open_patch_file): 308*0b459c2cSDavid du Colombier Fatal error if binary_transput and stdin is a tty. 309*0b459c2cSDavid du Colombier 310*0b459c2cSDavid du Colombier * pc/djgpp/config.sed (chdirsaf.c): 311*0b459c2cSDavid du Colombier Use sed instead of cp, since cp might not be installed. 312*0b459c2cSDavid du Colombier * pc/djgpp/configure.bat: 313*0b459c2cSDavid du Colombier Prepend %srcdir% to pathname of config.sed, for crosscompiles. 314*0b459c2cSDavid du Colombier 315*0b459c2cSDavid du Colombier1997-05-25 Paul Eggert <eggert@twinsun.com> 316*0b459c2cSDavid du Colombier 317*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.2.92. 318*0b459c2cSDavid du Colombier (D_INO_IN_DIRENT): New macro. 319*0b459c2cSDavid du Colombier * pc/djgpp/config.h, acconfig.h (D_INO_IN_DIRENT): New macro. 320*0b459c2cSDavid du Colombier * backupfile.c (REAL_DIR_ENTRY): 321*0b459c2cSDavid du Colombier Depend on D_INO_IN_DIRENT, not _POSIX_VERSION. 322*0b459c2cSDavid du Colombier 323*0b459c2cSDavid du Colombier * addext.c (addext): Adjust slen when adjusting s for DOS 8.3 limit. 324*0b459c2cSDavid du Colombier Do not use xxx.h -> xxxh~ hack. 325*0b459c2cSDavid du Colombier 326*0b459c2cSDavid du Colombier * util.c: (move_file): Avoid makedirs test when possible even 327*0b459c2cSDavid du Colombier if FILESYSTEM_PREFIX_LEN (p) is nonzero. Don't play 328*0b459c2cSDavid du Colombier case-changing tricks to come up with backup file name; it's 329*0b459c2cSDavid du Colombier not portable to case-insensitive file systems. 330*0b459c2cSDavid du Colombier * common.h (ISLOWER): Remove. 331*0b459c2cSDavid du Colombier 332*0b459c2cSDavid du Colombier * inp.c (scan_input): Don't use Plan A if (debug & 16). 333*0b459c2cSDavid du Colombier 334*0b459c2cSDavid du Colombier * patch.c (shortopts): Add -g, -G. 335*0b459c2cSDavid du Colombier (longopts): --help now maps to 132, not 'h', to avoid confusion. 336*0b459c2cSDavid du Colombier (get_some_switches): Likewise. 337*0b459c2cSDavid du Colombier Don't invoke setmode on input if --binary; wait until needed. 338*0b459c2cSDavid du Colombier Don't ever invoke setmode on stdout. 339*0b459c2cSDavid du Colombier * pch.c (open_patch_file): Setmode stdin to binary if binary_transput. 340*0b459c2cSDavid du Colombier 341*0b459c2cSDavid du Colombier * patch.man: Fix documentation of backup file name to match behavior. 342*0b459c2cSDavid du Colombier Add advice for ordering of patches of derived files. 343*0b459c2cSDavid du Colombier Add /dev/tty to list of files used. 344*0b459c2cSDavid du Colombier * README: Adjust instructions for building on DOS. 345*0b459c2cSDavid du Colombier * pc/djgpp/README: Remove tentative wording. 346*0b459c2cSDavid du Colombier * NEWS: The DOS port is now tested. 347*0b459c2cSDavid du Colombier Backup file names are no longer computed by switching case. 348*0b459c2cSDavid du Colombier 349*0b459c2cSDavid du Colombier * pc/chdirsaf.c (ERANGE): Include <errno.h> to define it. 350*0b459c2cSDavid du Colombier (restore_wd): chdir unconditionally. 351*0b459c2cSDavid du Colombier (chdir_safer): Invoke atexit successfully at most once. 352*0b459c2cSDavid du Colombier * pc/djgpp/config.sed: Use chdirsaf.o, not pc/chdirsaf.o. 353*0b459c2cSDavid du Colombier Replace CONFIG_HDRS, don't append. 354*0b459c2cSDavid du Colombier Use $(srcdir) in CONFIG_STATUS. 355*0b459c2cSDavid du Colombier Don't apply $(SHELL) to $(CONFIG_STATUS). 356*0b459c2cSDavid du Colombier Append rules for chdirsaf.o, chdirsaf.c; clean chdirsaf.c at the end. 357*0b459c2cSDavid du Colombier * pc/djgpp/configure.bat: Append CR to each line; DOS needs this. 358*0b459c2cSDavid du Colombier Don't use | as sed s delimiter; DOS can't handle it. 359*0b459c2cSDavid du Colombier 360*0b459c2cSDavid du Colombier1997-05-21 Paul Eggert <eggert@twinsun.com> 361*0b459c2cSDavid du Colombier 362*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.2.91. 363*0b459c2cSDavid du Colombier 364*0b459c2cSDavid du Colombier * pch.c (another_hunk): 365*0b459c2cSDavid du Colombier Fix bug with computing size of prefix and suffix context 366*0b459c2cSDavid du Colombier with ordinary context diffs. Report malformed patch if a unified diff 367*0b459c2cSDavid du Colombier has nothing but context. 368*0b459c2cSDavid du Colombier 369*0b459c2cSDavid du Colombier * inp.c (get_input_file): 370*0b459c2cSDavid du Colombier Use patch_get, not backup_type, to decide whether to 371*0b459c2cSDavid du Colombier get from RCS or SCCS. Use the word `get' in diagnostics. 372*0b459c2cSDavid du Colombier * patch.c (main): Initialize patch_get from PATCH_GET. 373*0b459c2cSDavid du Colombier Omit DEFAULT_VERSION_CONTROL hook; it just leads to nonstandarization. 374*0b459c2cSDavid du Colombier (longopts, option_help, get_some_switches): Add support for -g, -G. 375*0b459c2cSDavid du Colombier (option_help): Add bug report address. 376*0b459c2cSDavid du Colombier * common.h (patch_get): New decl. 377*0b459c2cSDavid du Colombier * patch.man: Add -g and -G options; use `get' instead of `check out'. 378*0b459c2cSDavid du Colombier Add PATCH_GET. Recommend -Naur instead of -raNU2 for diff. 379*0b459c2cSDavid du Colombier * NEWS: Describe -g, -G, PATCH_GET. 380*0b459c2cSDavid du Colombier 381*0b459c2cSDavid du Colombier * version.c (copyright_string): Use only most recent copyright year, 382*0b459c2cSDavid du Colombier as per GNU standards. 383*0b459c2cSDavid du Colombier 384*0b459c2cSDavid du Colombier * Makefile.in (DISTFILES_PC): Remove pc/quotearg.c. 385*0b459c2cSDavid du Colombier * pc/djgpp/config.sed: Remove unnecessary hooks for quotearg and SHELL. 386*0b459c2cSDavid du Colombier 387*0b459c2cSDavid du Colombier1997-05-18 Paul Eggert <eggert@twinsun.com> 388*0b459c2cSDavid du Colombier 389*0b459c2cSDavid du Colombier * configure.in (VERSION): Increase to 2.2.9. 390*0b459c2cSDavid du Colombier (AC_TYPE_MODE_T): Add. 391*0b459c2cSDavid du Colombier 392*0b459c2cSDavid du Colombier * pch.h (another_hunk): New parameter REV. 393*0b459c2cSDavid du Colombier * pch.c (hunkmax): Now of type LINENUM. 394*0b459c2cSDavid du Colombier (malformed): Add decl. 395*0b459c2cSDavid du Colombier (there_is_another_patch): Skip inname-detection if skip_rest_of_patch. 396*0b459c2cSDavid du Colombier (intuit_diff_type): To determine whether file appears to have been 397*0b459c2cSDavid du Colombier deleted, look at replacement, not pattern. 398*0b459c2cSDavid du Colombier If there is a mismatch between existence of file and whether the 399*0b459c2cSDavid du Colombier patch claims to change whether the file exists, ask whether to 400*0b459c2cSDavid du Colombier reverse the patch. 401*0b459c2cSDavid du Colombier (another_hunk): New parameter REV specifying whether to reverse the 402*0b459c2cSDavid du Colombier hunk. All callers changed. 403*0b459c2cSDavid du Colombier (do_ed_script): Add assertion to ensure input file exists. 404*0b459c2cSDavid du Colombier 405*0b459c2cSDavid du Colombier * util.h (create_file): New function. 406*0b459c2cSDavid du Colombier (copy_file): Now takes mode, not struct stat. 407*0b459c2cSDavid du Colombier (makedirs): No longer exported. 408*0b459c2cSDavid du Colombier (move_file): Now takes mode, not struct stat. 409*0b459c2cSDavid du Colombier * util.c (makedirs): No longer exported. 410*0b459c2cSDavid du Colombier (move_file): Accept mode of destination, not struct stat. 411*0b459c2cSDavid du Colombier All callers changed. 412*0b459c2cSDavid du Colombier Quote file names in diagnostics. 413*0b459c2cSDavid du Colombier Create parent dir of destination if necessary. 414*0b459c2cSDavid du Colombier Don't use ENOTDIR. 415*0b459c2cSDavid du Colombier Don't unlink source; it will be unlinked later. 416*0b459c2cSDavid du Colombier Unlink destination if FROM is zero. 417*0b459c2cSDavid du Colombier (create_file): New function. 418*0b459c2cSDavid du Colombier (copy_file): Accept mode of destination, not struct stat. 419*0b459c2cSDavid du Colombier All callers changed. 420*0b459c2cSDavid du Colombier Use create_file to create file. 421*0b459c2cSDavid du Colombier (ok_to_reverse): Moved here from patch.c. Now accepts format and args; 422*0b459c2cSDavid du Colombier all callers changed. 423*0b459c2cSDavid du Colombier (mkdir): 2nd arg is now mode_t, for better compatibility. 424*0b459c2cSDavid du Colombier (replace_slashes): Ignore slashes at the end of the filename. 425*0b459c2cSDavid du Colombier 426*0b459c2cSDavid du Colombier * common.h (noreverse): New decl. 427*0b459c2cSDavid du Colombier (ok_to_reverse): Remove decl. 428*0b459c2cSDavid du Colombier 429*0b459c2cSDavid du Colombier * patch.c (noreverse): Now extern. 430*0b459c2cSDavid du Colombier (main): New environment var PATCH_VERSION_CONTROL overrides VERSION_CONTROL. 431*0b459c2cSDavid du Colombier Don't assert(hunk) if we're skipping the patch; we may not have any hunks. 432*0b459c2cSDavid du Colombier When removing a file, back it up if backups are desired. 433*0b459c2cSDavid du Colombier Don't chmod output file if input file did not exist. 434*0b459c2cSDavid du Colombier chmod rej file to input file's mode minus executable bits. 435*0b459c2cSDavid du Colombier (locate_hunk): Go back to old way of a single fuzz parameter, but 436*0b459c2cSDavid du Colombier handle it more precisely: context diffs with partial contexts 437*0b459c2cSDavid du Colombier can only match file ends, since the partial context can occur 438*0b459c2cSDavid du Colombier only at the start or end of file. 439*0b459c2cSDavid du Colombier All callers changed. 440*0b459c2cSDavid du Colombier (create_output_file): Use create_file to create files. 441*0b459c2cSDavid du Colombier (ok_to_reverse): Move to util.c. 442*0b459c2cSDavid du Colombier 443*0b459c2cSDavid du Colombier * inp.c (scan_input, get_input_file): Quote file names in diagnostics. 444*0b459c2cSDavid du Colombier (get_input_file): Set inerrno if it's not already set. 445*0b459c2cSDavid du Colombier Don't create file; it's now the caller's responsibility. 446*0b459c2cSDavid du Colombier (plan_b): Use /dev/null if input size is zero, since it might not exist. 447*0b459c2cSDavid du Colombier Use create_file to create temporary file. 448*0b459c2cSDavid du Colombier 449*0b459c2cSDavid du Colombier * NEWS: Add PATCH_VERSION_CONTROL; DOS port is untested. 450*0b459c2cSDavid du Colombier 451*0b459c2cSDavid du Colombier * pc/djgpp/config.h: Add comment for mode_t. 452*0b459c2cSDavid du Colombier 453*0b459c2cSDavid du Colombier * pc/djgpp/README: Note that it's not tested. 454*0b459c2cSDavid du Colombier 455*0b459c2cSDavid du Colombier * patch.man: PATCH_VERSION_CONTROL overrides VERSION_CONTROL. 456*0b459c2cSDavid du Colombier 457*0b459c2cSDavid du Colombier1997-05-15 Paul Eggert <eggert@twinsun.com> 458*0b459c2cSDavid du Colombier 459*0b459c2cSDavid du Colombier * configure.in: Add AC_PREREQ(2.12). 460*0b459c2cSDavid du Colombier (VERSION): Bump to 2.2.8. 461*0b459c2cSDavid du Colombier (ed_PROGRAM): Rename from ED_PROGRAM. 462*0b459c2cSDavid du Colombier 463*0b459c2cSDavid du Colombier * pch.c (prefix_components): Support DOS file names better. 464*0b459c2cSDavid du Colombier Fix typo that caused fn to almost always yield 0. 465*0b459c2cSDavid du Colombier 466*0b459c2cSDavid du Colombier * util.c (<time.h>, <maketime.h>): Include. 467*0b459c2cSDavid du Colombier (move_file, copy_file): Add support for DOS filenames. 468*0b459c2cSDavid du Colombier Preserve mode of input files when creating temp files. 469*0b459c2cSDavid du Colombier Add binary file support. 470*0b459c2cSDavid du Colombier (doprogram, rmdir): New functions. 471*0b459c2cSDavid du Colombier (mkdir): Use doprogram. 472*0b459c2cSDavid du Colombier (replace_slashes): Add support for DOS filenames. 473*0b459c2cSDavid du Colombier (removedirs): New function. 474*0b459c2cSDavid du Colombier (init_time)): New function. 475*0b459c2cSDavid du Colombier (initial_time): New var. 476*0b459c2cSDavid du Colombier (fetchname): Add support for deleted files, DOS filenames. 477*0b459c2cSDavid du Colombier 478*0b459c2cSDavid du Colombier * basename.c (FILESYSTEM_PREFIX_LEN, ISSLASH): 479*0b459c2cSDavid du Colombier New macros, for DOS port. 480*0b459c2cSDavid du Colombier (base_name): Use them. 481*0b459c2cSDavid du Colombier 482*0b459c2cSDavid du Colombier * addext.c (HAVE_DOS_FILE_NAMES): New macro. 483*0b459c2cSDavid du Colombier <limits.h>: Include if HAVE_LIMITS_H. 484*0b459c2cSDavid du Colombier (addext): Handle hosts with DOS file name limits. 485*0b459c2cSDavid du Colombier 486*0b459c2cSDavid du Colombier * common.h (LONG_MIN): New macro. 487*0b459c2cSDavid du Colombier (FILESYSTEM_PREFIX_LEN, ISSLASH): New macros, for DOS port. 488*0b459c2cSDavid du Colombier (ok_to_create_file): Remove. 489*0b459c2cSDavid du Colombier (reverse): Now int. 490*0b459c2cSDavid du Colombier (ok_to_reverse): New function decl. 491*0b459c2cSDavid du Colombier (O_WRONLY, _O_BINARY, O_BINARY, O_CREAT, O_TRUNC): New macros. 492*0b459c2cSDavid du Colombier (binary_transput): New var decl. 493*0b459c2cSDavid du Colombier 494*0b459c2cSDavid du Colombier * Makefile.in (ed_PROGRAM): Renamed from ED_PROGRAM. 495*0b459c2cSDavid du Colombier (CONFIG_HDRS, CONFIG_STATUS): New vars. 496*0b459c2cSDavid du Colombier (SRCS): Add maketime.c, partime.c. 497*0b459c2cSDavid du Colombier (OBJS): Likewise. 498*0b459c2cSDavid du Colombier (HDRS): Add maketime.h, partime.h. 499*0b459c2cSDavid du Colombier (DISTFILES_PC, DISTFILES_PC_DJGPP): New vars. 500*0b459c2cSDavid du Colombier (Makefile, config.status): Use CONFIG_STATUS, not config.status. 501*0b459c2cSDavid du Colombier (clean): Remove */*.o. 502*0b459c2cSDavid du Colombier (dist): Add pc and pc/djgpp subdirectories. 503*0b459c2cSDavid du Colombier ($(OBJS)): Depend on $(CONFIG_HDRS) instead of config.h. 504*0b459c2cSDavid du Colombier (maketime.o, partime.o): New rules. 505*0b459c2cSDavid du Colombier (util.o): Depend on maketime.h. 506*0b459c2cSDavid du Colombier 507*0b459c2cSDavid du Colombier * patch.c (main): 508*0b459c2cSDavid du Colombier Call init_time. Add DEFAULT_VERSION_CONTROL hook for people who 509*0b459c2cSDavid du Colombier prefer the old ways. Build temp file names before we might invoke cleanup. 510*0b459c2cSDavid du Colombier Add support for deleted files and clean up the patch-swapping code a bit. 511*0b459c2cSDavid du Colombier Delete empty ancestors of deleted files. 512*0b459c2cSDavid du Colombier When creating temporaries, use file modes of original files. 513*0b459c2cSDavid du Colombier (longopts, get_some_switches): New option --binary. 514*0b459c2cSDavid du Colombier (get_some_switches): Report non-errno errors with `fatal', not `pfatal'. 515*0b459c2cSDavid du Colombier (create_output_file): New function, which preserves modes of original files 516*0b459c2cSDavid du Colombier and supports binary transput. 517*0b459c2cSDavid du Colombier (init_output, init_reject): Use it. 518*0b459c2cSDavid du Colombier (ok_to_reverse): New function. 519*0b459c2cSDavid du Colombier (TMPDIR): New macro. 520*0b459c2cSDavid du Colombier (make_temp): Use $TMPDIR, $TMP, $TEMP, or TMPDIR, whichever comes first. 521*0b459c2cSDavid du Colombier 522*0b459c2cSDavid du Colombier * pch.c (p_says_nonexistent): New var. 523*0b459c2cSDavid du Colombier (open_patch_file): Add binary transput support. 524*0b459c2cSDavid du Colombier Apply stat to file names retrieved from user. 525*0b459c2cSDavid du Colombier Reject them if they don't exist. 526*0b459c2cSDavid du Colombier (intuit_diff_type): Add support for deleting files. 527*0b459c2cSDavid du Colombier Don't treat trivial directories any differently. 528*0b459c2cSDavid du Colombier Avoid stating the same file twice in common case of context diffs. 529*0b459c2cSDavid du Colombier (prefix_components): Don't treat trivial directories any differently. 530*0b459c2cSDavid du Colombier Add support for DOS filenames. 531*0b459c2cSDavid du Colombier (pch_says_nonexistent): New function. 532*0b459c2cSDavid du Colombier (do_ed_script): Preserve mode of input files when creating temp files. 533*0b459c2cSDavid du Colombier Add support for binary transput. 534*0b459c2cSDavid du Colombier 535*0b459c2cSDavid du Colombier * pch.h (pch_says_nonexistent): New decl. 536*0b459c2cSDavid du Colombier 537*0b459c2cSDavid du Colombier * util.h (replace_slashes): No longer exported. 538*0b459c2cSDavid du Colombier (fetchname): Add support for deleted files. 539*0b459c2cSDavid du Colombier (copy_file, move_file): Add support for preserving file modes. 540*0b459c2cSDavid du Colombier (init_time, removedirs): New functions. 541*0b459c2cSDavid du Colombier 542*0b459c2cSDavid du Colombier * argmatch.c: Converge with fileutils. 543*0b459c2cSDavid du Colombier 544*0b459c2cSDavid du Colombier * backupfile.c: Converge with fileutils. 545*0b459c2cSDavid du Colombier (find_backup_file_name): Treat .~N~ suffix just like any other suffix 546*0b459c2cSDavid du Colombier when handling file names that are too long. 547*0b459c2cSDavid du Colombier 548*0b459c2cSDavid du Colombier * inp.c: 549*0b459c2cSDavid du Colombier In messages, put quotes around file names and spaces around "--". 550*0b459c2cSDavid du Colombier (get_input_file): Allow files to be deleted. Do the expense of 551*0b459c2cSDavid du Colombier makedirs only if we can't create the file. 552*0b459c2cSDavid du Colombier (plan_a, plan_b): Add support for binary transput. 553*0b459c2cSDavid du Colombier 554*0b459c2cSDavid du Colombier * pc/chdirsaf.c, pc/djgpp/README, pc/djgpp/config.h, pc/djgpp/config.sed, pc/djgpp/configure.bat, pc/quotearg.c: 555*0b459c2cSDavid du Colombier New file. 556*0b459c2cSDavid du Colombier 557*0b459c2cSDavid du Colombier * NEWS: 558*0b459c2cSDavid du Colombier New methods for removing files; adjust file name intuition again. 559*0b459c2cSDavid du Colombier Add description of MS-DOS and MS-Windows ports. 560*0b459c2cSDavid du Colombier 561*0b459c2cSDavid du Colombier * patch.man: 562*0b459c2cSDavid du Colombier Simplify file name intuition slightly (no distinction for trivial dirs). 563*0b459c2cSDavid du Colombier Add --binary. Describe how files and directories are deleted. 564*0b459c2cSDavid du Colombier Suggest diff -a. Include caveats about what context diffs cannot represent. 565*0b459c2cSDavid du Colombier 566*0b459c2cSDavid du Colombier1997-05-06 Paul Eggert <eggert@twinsun.com> 567*0b459c2cSDavid du Colombier 568*0b459c2cSDavid du Colombier * configure.in (VERSION): Now 2.2.7. 569*0b459c2cSDavid du Colombier (CPPFLAGS, LDFLAGS, LIBS): If the user has not set any of these vars, 570*0b459c2cSDavid du Colombier prefer support for large files if available. 571*0b459c2cSDavid du Colombier 572*0b459c2cSDavid du Colombier * common.h (_LARGEFILE_SOURCE): Define. 573*0b459c2cSDavid du Colombier (file_offset): New typedef. 574*0b459c2cSDavid du Colombier (file_seek, file_tell): New macros. 575*0b459c2cSDavid du Colombier 576*0b459c2cSDavid du Colombier * patch.c (main): 577*0b459c2cSDavid du Colombier Remove empty files by default unless POSIXLY_CORRECT is set. 578*0b459c2cSDavid du Colombier 579*0b459c2cSDavid du Colombier * util.c, util.h (Fseek): 580*0b459c2cSDavid du Colombier Use file_offset instead of long, for portability to large-file hosts. 581*0b459c2cSDavid du Colombier 582*0b459c2cSDavid du Colombier * pch.c: (p_base, p_start, next_intuit_at, skip_to, open_patch_file, 583*0b459c2cSDavid du Colombier intuit_diff_type, another_hunk, incomplete_line, do_ed_script): 584*0b459c2cSDavid du Colombier Use file_offset instead of long, for portability to large-file hosts. 585*0b459c2cSDavid du Colombier (prefix_components): Renamed from path_name_components; count only 586*0b459c2cSDavid du Colombier nontrivial prefix components, and take a 2nd EXISTING arg. 587*0b459c2cSDavid du Colombier (existing_prefix_components): Remove; subsumed by prefix_components. 588*0b459c2cSDavid du Colombier (intuit_diff_type): When creating files, try for the creation of the 589*0b459c2cSDavid du Colombier fewest directories. 590*0b459c2cSDavid du Colombier 591*0b459c2cSDavid du Colombier * configure.in (VERSION): Now 2.2.6. 592*0b459c2cSDavid du Colombier 593*0b459c2cSDavid du Colombier * pch.c (existing_prefix_components): New function. 594*0b459c2cSDavid du Colombier (intuit_diff_type): When creating a file, use a name whose existing 595*0b459c2cSDavid du Colombier directory prefix contains the most nontrivial path name components. 596*0b459c2cSDavid du Colombier (best_name): Don't check for null 2nd arg. 597*0b459c2cSDavid du Colombier 598*0b459c2cSDavid du Colombier * util.h (replace_slashes): New decl. 599*0b459c2cSDavid du Colombier 600*0b459c2cSDavid du Colombier * util.c (replace_slashes): Now external. 601*0b459c2cSDavid du Colombier (fetchname): Don't assume chars are nonnegative. 602*0b459c2cSDavid du Colombier 603*0b459c2cSDavid du Colombier * patch.man: 604*0b459c2cSDavid du Colombier When creating a file, use a name whose existing directory prefix 605*0b459c2cSDavid du Colombier contains the most nontrivial path name components. 606*0b459c2cSDavid du Colombier Add advice for creating patches and applying them. 607*0b459c2cSDavid du Colombier 608*0b459c2cSDavid du Colombier1997-05-06 Paul Eggert <eggert@twinsun.com> 609*0b459c2cSDavid du Colombier 610*0b459c2cSDavid du Colombier * configure.in (VERSION): Now 2.2.6. 611*0b459c2cSDavid du Colombier 612*0b459c2cSDavid du Colombier * pch.c (existing_prefix_components): New function. 613*0b459c2cSDavid du Colombier (intuit_diff_type): When creating a file, use a name whose existing 614*0b459c2cSDavid du Colombier directory prefix contains the most nontrivial path name components. 615*0b459c2cSDavid du Colombier (best_name): Don't check for null 2nd arg. 616*0b459c2cSDavid du Colombier 617*0b459c2cSDavid du Colombier * util.h (replace_slashes): New decl. 618*0b459c2cSDavid du Colombier * util.c (replace_slashes): Now external. 619*0b459c2cSDavid du Colombier (fetchname): Don't assume chars are nonnegative. 620*0b459c2cSDavid du Colombier 621*0b459c2cSDavid du Colombier * patch.man: Describe above change to pch.c. 622*0b459c2cSDavid du Colombier Add advice for creating patches and applying them. 623*0b459c2cSDavid du Colombier 624*0b459c2cSDavid du Colombier1997-05-05 Paul Eggert <eggert@twinsun.com> 625*0b459c2cSDavid du Colombier 626*0b459c2cSDavid du Colombier * configure.in (VERSION): Update to 2.2.5. 627*0b459c2cSDavid du Colombier 628*0b459c2cSDavid du Colombier * quotearg.h, quotearg.c: New files. 629*0b459c2cSDavid du Colombier * Makefile.in (SRCS, OBJS, HDRS): Mention new files. 630*0b459c2cSDavid du Colombier (inp.o, util.o): Now depends on quotearg.h. 631*0b459c2cSDavid du Colombier (quotearg.o): New makefile rule. 632*0b459c2cSDavid du Colombier 633*0b459c2cSDavid du Colombier * common.h (posixly_correct): New var. 634*0b459c2cSDavid du Colombier * patch.c (main): Initialize it. 635*0b459c2cSDavid du Colombier If ! posixly_correct, default backup type is now `existing'. 636*0b459c2cSDavid du Colombier SIMPLE_BACKUP_SUFFIX no longer affects backup type. 637*0b459c2cSDavid du Colombier (backup): Remove var. 638*0b459c2cSDavid du Colombier 639*0b459c2cSDavid du Colombier * util.h: (countdirs): Remove. 640*0b459c2cSDavid du Colombier (systemic): New decl. 641*0b459c2cSDavid du Colombier * util.c (move_file): Try making the parent directory of TO 642*0b459c2cSDavid du Colombier if backup prefix or suffix contain a slash. 643*0b459c2cSDavid du Colombier (ask): Remove arbitrary limit on size of result. 644*0b459c2cSDavid du Colombier (systemic): New function. 645*0b459c2cSDavid du Colombier (mkdir): Work even if arg contains shell metacharacters. 646*0b459c2cSDavid du Colombier (replace_slashes): Return 0 if none were replaced. 647*0b459c2cSDavid du Colombier Don't replace slash after . or .. since it's redundant. 648*0b459c2cSDavid du Colombier (countdirs): Remove. 649*0b459c2cSDavid du Colombier (makedirs): Ignore mkdir failures. 650*0b459c2cSDavid du Colombier 651*0b459c2cSDavid du Colombier * NEWS, patch.man: More POSIXLY_CORRECT adjustments. 652*0b459c2cSDavid du Colombier Describe new rules for how file names are intuited. 653*0b459c2cSDavid du Colombier 654*0b459c2cSDavid du Colombier1997-04-17 Paul Eggert <eggert@twinsun.com> 655*0b459c2cSDavid du Colombier 656*0b459c2cSDavid du Colombier * configure.in (VERSION): Version 2.2 released. 657*0b459c2cSDavid du Colombier 658*0b459c2cSDavid du Colombier * Makefile.in (config.hin): 659*0b459c2cSDavid du Colombier Remove before building; we always want the timestamp updated. 660*0b459c2cSDavid du Colombier 661*0b459c2cSDavid du Colombier * inp.c (get_input_file): 662*0b459c2cSDavid du Colombier Look for RCS files only if backup_type == numbered_existing. 663*0b459c2cSDavid du Colombier 664*0b459c2cSDavid du Colombier * NEWS, patch.man: 665*0b459c2cSDavid du Colombier Remove mention of never-implemented -V rcs and -V sccs options. 666*0b459c2cSDavid du Colombier * patch.man: `pathname' -> `file name' 667*0b459c2cSDavid du Colombier Correct the description of how file names are found in diff headers. 668*0b459c2cSDavid du Colombier Clarify the distinction between ordinary and unified context diffs. 669*0b459c2cSDavid du Colombier 670*0b459c2cSDavid du Colombier1997-04-13 Paul Eggert <eggert@twinsun.com> 671*0b459c2cSDavid du Colombier 672*0b459c2cSDavid du Colombier * configure.in (VERSION): Update to 2.1.7. 673*0b459c2cSDavid du Colombier 674*0b459c2cSDavid du Colombier * patch.c (numeric_optarg): New function. 675*0b459c2cSDavid du Colombier (get_some_switches): Use it. 676*0b459c2cSDavid du Colombier 677*0b459c2cSDavid du Colombier * pch.c (intuit_diff_type): When creating a file, prefer a name whose 678*0b459c2cSDavid du Colombier existing dir prefix is the longest. 679*0b459c2cSDavid du Colombier 680*0b459c2cSDavid du Colombier * util.h (countdirs): New function. 681*0b459c2cSDavid du Colombier * util.c (replace_slashes, countdirs): New functions. 682*0b459c2cSDavid du Colombier (makedirs): Use replace_slashes, to be more like countdirs. 683*0b459c2cSDavid du Colombier 684*0b459c2cSDavid du Colombier * patch.man: Explain -pN vs -p N. Recommend --new-file. 685*0b459c2cSDavid du Colombier Explain possible incompatibility with strip count. 686*0b459c2cSDavid du Colombier 687*0b459c2cSDavid du Colombier1997-04-10 Paul Eggert <eggert@twinsun.com> 688*0b459c2cSDavid du Colombier 689*0b459c2cSDavid du Colombier * configure.in (VERSION): Bump to 2.1.6. 690*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Remove stdlib.h (i.e. remove HAVE_STDLIB_H). 691*0b459c2cSDavid du Colombier 692*0b459c2cSDavid du Colombier * Makefile.in: (HDRS, patchlevel.h, TAGS, distclean, maintainer-clean): 693*0b459c2cSDavid du Colombier Don't distribute patchlevel.h; let the user do it. 694*0b459c2cSDavid du Colombier This works around some obscure (possibly nonexistent?) `make' bugs. 695*0b459c2cSDavid du Colombier 696*0b459c2cSDavid du Colombier * common.h (program_name): extern, not XTERN. 697*0b459c2cSDavid du Colombier (<stdlib.h>): Include if STDC_HEADERS, not if HAVE_STDLIB_H. 698*0b459c2cSDavid du Colombier (atol, getenv, malloc, realloc): Don't worry whether they're #defined. 699*0b459c2cSDavid du Colombier 700*0b459c2cSDavid du Colombier * patch.c (get_some_switches): 701*0b459c2cSDavid du Colombier Add special hack for backwards compatibility with CVS 1.9. 702*0b459c2cSDavid du Colombier (-B, -Y, -z): Now set backup_type = simple. 703*0b459c2cSDavid du Colombier 704*0b459c2cSDavid du Colombier * NEWS: Fix misspellings; minor reformatting. 705*0b459c2cSDavid du Colombier * README: Report POSIX.2 compliance. 706*0b459c2cSDavid du Colombier 707*0b459c2cSDavid du Colombier1997-04-06 Paul Eggert <eggert@twinsun.com> 708*0b459c2cSDavid du Colombier 709*0b459c2cSDavid du Colombier Move all old RCS $Log entries into ChangeLog. 710*0b459c2cSDavid du Colombier #include all files with < >, not " ". 711*0b459c2cSDavid du Colombier 712*0b459c2cSDavid du Colombier * addext.c, argmatch.c, argmatch.h, memchr.c, install-sh: 713*0b459c2cSDavid du Colombier New files. 714*0b459c2cSDavid du Colombier * EXTERN.h, INTERN.h: Removed. 715*0b459c2cSDavid du Colombier * config.hin: Renamed from config.h.in. 716*0b459c2cSDavid du Colombier 717*0b459c2cSDavid du Colombier * acconfig.h (NODIR): Remove. 718*0b459c2cSDavid du Colombier (HAVE_MEMCHR): Add. 719*0b459c2cSDavid du Colombier 720*0b459c2cSDavid du Colombier * configure.in (AC_ARG_PROGRAM, AC_PROG_MAKE_SET, HAVE_MEMCHR): Add. 721*0b459c2cSDavid du Colombier (AC_CHECK_HEADERS): Replaces obsolescent AC_HAVE_HEADERS. 722*0b459c2cSDavid du Colombier Add stdlib.h, string.h, unistd.h, varargs.h. 723*0b459c2cSDavid du Colombier Delete obsolete call to AC_UNISTD_H. 724*0b459c2cSDavid du Colombier (AC_CONFIG_HEADER): Rename config.h.in to config.hin. 725*0b459c2cSDavid du Colombier (AC_C_CONST): Replaces obsolescent AC_CONST. 726*0b459c2cSDavid du Colombier (AC_CHECK_FUNC): Check for getopt_long; define LIBOBJS and substitute 727*0b459c2cSDavid du Colombier for it accordingly. 728*0b459c2cSDavid du Colombier (AC_CHECK_FUNCS): Replaces obsolescent AC_HAVE_FUNCS. 729*0b459c2cSDavid du Colombier Add _doprintf, isascii, mktemp, sigaction, sigprocmask, sigsetmask. 730*0b459c2cSDavid du Colombier Remove strerror. 731*0b459c2cSDavid du Colombier (AC_FUNC_CLOSEDIR_VOID, AC_FUNC_VPRINTF): Add. 732*0b459c2cSDavid du Colombier (AC_HEADER_DIRENT): Replaces obsolescent AC_DIR_HEADER. 733*0b459c2cSDavid du Colombier (AC_HEADER_STDC): Replaces obsolescent AC_STDC_HEADERS. 734*0b459c2cSDavid du Colombier (AC_SYS_LONG_FILE_NAMES): Replaces obsolescent AC_LONG_FILE_NAMES. 735*0b459c2cSDavid du Colombier (AC_TYPE_OFF_T): Replaces obsolescent AC_OFF_T. 736*0b459c2cSDavid du Colombier (AC_TYPE_SIGNAL): Replaces obsolescent AC_RETSIGTYPE. 737*0b459c2cSDavid du Colombier (AC_TYPE_SIZE_T): Replaces obsolescent AC_SIZE_T. 738*0b459c2cSDavid du Colombier (AC_XENIX_DIR): Remove. 739*0b459c2cSDavid du Colombier (ED_PROGRAM): New var. 740*0b459c2cSDavid du Colombier (NODIR): Remove. 741*0b459c2cSDavid du Colombier (PACKAGE, VERSION): New vars; substitute them with AC_SUBST. 742*0b459c2cSDavid du Colombier 743*0b459c2cSDavid du Colombier * Makefile.in: Conform to current GNU build standards. 744*0b459c2cSDavid du Colombier Redo dependencies. Use library getopt_long if available. 745*0b459c2cSDavid du Colombier Use `&&' instead of `;' inside shell commands where applicable; 746*0b459c2cSDavid du Colombier GNU make requires this. 747*0b459c2cSDavid du Colombier Use double-colon rules for actions that do not build files. 748*0b459c2cSDavid du Colombier (@SET_MAKE@): Added. 749*0b459c2cSDavid du Colombier (CFLAGS, LDFLAGS, prefix, exec_prefix): Base on @ versions of symbols. 750*0b459c2cSDavid du Colombier (COMPILE, CPPFLAGS, DEFS, ED_PROGRAM, LIBOBJS, LIBSRCS, PACKAGE, 751*0b459c2cSDavid du Colombier VERSION): New symbols. 752*0b459c2cSDavid du Colombier (SRCS, OBJS, HDRS, MISC): Add new files. 753*0b459c2cSDavid du Colombier (man1dir): Renamed from mandir. 754*0b459c2cSDavid du Colombier (man1ext): Renamed from manext. 755*0b459c2cSDavid du Colombier (patch): Put -o first. 756*0b459c2cSDavid du Colombier (install): Use $(transform) to allow program to be renamed by configure. 757*0b459c2cSDavid du Colombier (patchlevel.h): Build from $(VERSION). 758*0b459c2cSDavid du Colombier (dist): Get version number from $(VERSION) and package name from 759*0b459c2cSDavid du Colombier $(PACKAGE). 760*0b459c2cSDavid du Colombier (TAGS): Scan $(HDRS). 761*0b459c2cSDavid du Colombier (maintainer-clean): Renamed from realclean. Remove patchlevel.h. 762*0b459c2cSDavid du Colombier 763*0b459c2cSDavid du Colombier * backupfile.h (simple_backup_suffix): Now const *. 764*0b459c2cSDavid du Colombier (find_backup_file_name, base_name, get_version): Args are now const *. 765*0b459c2cSDavid du Colombier (base_name): New decl. 766*0b459c2cSDavid du Colombier * backupfile.c (<config.h>): Include only if HAVE_CONFIG_H. 767*0b459c2cSDavid du Colombier (<argmatch.h>): Include. 768*0b459c2cSDavid du Colombier (<string.h>): Include if HAVE_STRING_H, not if STDC_HEADERS. 769*0b459c2cSDavid du Colombier (<strings.h>): Include if !HAVE_STRING_H. 770*0b459c2cSDavid du Colombier (<unistd.h>): Do not include. 771*0b459c2cSDavid du Colombier (<dirent.h>): Redo include as per current autoconf standards. 772*0b459c2cSDavid du Colombier (<limits.h>): Include if HAVE_LIMITS_H. Define CHAR_BIT if not defined. 773*0b459c2cSDavid du Colombier (NLENGTH): Now returns size_t. 774*0b459c2cSDavid du Colombier (CLOSEDIR, INT_STRLEN_BOUND): New macros. 775*0b459c2cSDavid du Colombier (ISDIGIT): Use faster method. 776*0b459c2cSDavid du Colombier (find_backup_file_name): No longer depends on NODIR. 777*0b459c2cSDavid du Colombier Remove redundant code. 778*0b459c2cSDavid du Colombier (make_version_name): Remove; do it more portably. 779*0b459c2cSDavid du Colombier (max_backup_version): Args are now const *. 780*0b459c2cSDavid du Colombier (version_number): Simplify digit checking. 781*0b459c2cSDavid du Colombier (basename, concat, dirname): Remove. 782*0b459c2cSDavid du Colombier (argmatch, invalid_arg): Move to argmatch.c. Simplify test for 783*0b459c2cSDavid du Colombier ambiguous args. When reporting an error, use program_name not "patch". 784*0b459c2cSDavid du Colombier (addext): Move to addext.c. Treat all negative values from pathconf 785*0b459c2cSDavid du Colombier like -1. Always use long extension if it fits, even if the filesystem 786*0b459c2cSDavid du Colombier does not support long file names. 787*0b459c2cSDavid du Colombier (backup_types): Now const. 788*0b459c2cSDavid du Colombier 789*0b459c2cSDavid du Colombier * common.h, inp.h (XTERN): Renamed from EXT to avoid collision 790*0b459c2cSDavid du Colombier with errno.h reserved name space. 791*0b459c2cSDavid du Colombier 792*0b459c2cSDavid du Colombier * common.h (DEBUGGING): Now an integer; default is 1. 793*0b459c2cSDavid du Colombier (enum diff): New type. 794*0b459c2cSDavid du Colombier (diff_type): Use it instead of small integers. 795*0b459c2cSDavid du Colombier (CONTEXT_DIFF, NORMAL_DIFF, ED_DIFF, NEW_CONTEXT_DIFF, UNI_DIFF): 796*0b459c2cSDavid du Colombier Now enumerated values instead of macros. 797*0b459c2cSDavid du Colombier (NO_DIFF): New enumerated value (used instead of 0). 798*0b459c2cSDavid du Colombier (volatile): Default to the empty string if __STDC__ is not defined. 799*0b459c2cSDavid du Colombier (<signal.h>): Do not include. 800*0b459c2cSDavid du Colombier (Chmod, Close, Fclose, Fflush, Fputc, Signal, Sprintf, Strcat, 801*0b459c2cSDavid du Colombier Strcpy, Unlink, Write): Remove these macros; casts to void are 802*0b459c2cSDavid du Colombier not needed for GNU coding standards. 803*0b459c2cSDavid du Colombier (INITHUNKMAX): Move to pch.c. 804*0b459c2cSDavid du Colombier (malloc, realloc, INT_MIN, MAXLINELEN, strNE, strnNE, 805*0b459c2cSDavid du Colombier Reg1, Reg2, Reg3, Reg4, Reg5, Reg6, Reg7, Reg8, Reg9, Reg10, Reg11, 806*0b459c2cSDavid du Colombier Reg12, Reg13, Reg14, Reg15, Reg16): Remove these macros. 807*0b459c2cSDavid du Colombier (S_IXOTH, S_IWOTH, S_IROTH, S_IXGRP, S_IWGRP, 808*0b459c2cSDavid du Colombier S_IRGRP, S_IXUSR, S_IWUSR, S_IRUSR, O_RDONLY, O_RDWR): 809*0b459c2cSDavid du Colombier Define these macros, if not defined. 810*0b459c2cSDavid du Colombier (CTYPE_DOMAIN, ISLOWER, ISSPACE, ISDIGIT, PARAMS): New macros. 811*0b459c2cSDavid du Colombier (instat): Renamed from filestat; used for input file now. 812*0b459c2cSDavid du Colombier (bufsize, using_plan_a, debug, strippath): Not statically initialized. 813*0b459c2cSDavid du Colombier (debug): #define to 0 if not DEBUGGING, so that users of `debug' 814*0b459c2cSDavid du Colombier no longer need to be surrounded by `#if DEBUGGING'. 815*0b459c2cSDavid du Colombier (out_of_mem, filec, filearg, outname, toutkeep, trejkeep): Remove. 816*0b459c2cSDavid du Colombier (inname, inerrno, dry_run, origbase): New variables. 817*0b459c2cSDavid du Colombier (origprae): Now const*. 818*0b459c2cSDavid du Colombier (TMPOUTNAME, TMPINNAME, TMPPATNAME): Now const*volatile. 819*0b459c2cSDavid du Colombier (verbosity): New variable; subsumes `verbose'. 820*0b459c2cSDavid du Colombier (DEFAULT_VERBOSITY, SILENT, VERBOSE): Values in a new enum. 821*0b459c2cSDavid du Colombier (verbose): Removed. 822*0b459c2cSDavid du Colombier (VOID): Use `#ifdef __STDC__' instead of`#if __STDC__', 823*0b459c2cSDavid du Colombier for consistency elsewhere. 824*0b459c2cSDavid du Colombier (__attribute__): New macro (empty if not a recent GCC). 825*0b459c2cSDavid du Colombier (fatal_exit): Renamed from my_exit. 826*0b459c2cSDavid du Colombier (errno): Don't define if STDC_HEADERS. 827*0b459c2cSDavid du Colombier (<string.h>): Include if either STDC_HEADERS or HAVE_STRING_H. 828*0b459c2cSDavid du Colombier (memcmp, memcpy): Define if !STDC_HEADERS && !HAVE_STRING_H 829*0b459c2cSDavid du Colombier && !HAVE_MEMCHR. 830*0b459c2cSDavid du Colombier (<stdlib.h>): Include if HAVE_STDLIB_H, not if STDC_HEADERS. 831*0b459c2cSDavid du Colombier (atol, getenv, malloc, realloc, lseek): Declare only if not defined 832*0b459c2cSDavid du Colombier as a macro. 833*0b459c2cSDavid du Colombier (popen, strcpy, strcat, mktemp): Do not declare. 834*0b459c2cSDavid du Colombier (lseek): Declare to yield off_t, not long. 835*0b459c2cSDavid du Colombier (<fcntl.h>): Include only if HAVE_FCNTL_H. 836*0b459c2cSDavid du Colombier 837*0b459c2cSDavid du Colombier * inp.h (get_input_file): New decl. 838*0b459c2cSDavid du Colombier * inp.c (SCCSPREFIX, GET, GET_LOCKED, SCCSDIFF, RCSSUFFIX, CHECKOUT, 839*0b459c2cSDavid du Colombier CHECKOUT_LOCKED, RCSDIFF): Moved here from common.h. 840*0b459c2cSDavid du Colombier (i_ptr): Now char const **. 841*0b459c2cSDavid du Colombier (i_size): Remove. 842*0b459c2cSDavid du Colombier (TIBUFSIZE_MINIMUM): Define only if not already defined. 843*0b459c2cSDavid du Colombier (plan_a, plan_b): Arg is now const *. 844*0b459c2cSDavid du Colombier (report_revision): Declare before use. It's now the caller's 845*0b459c2cSDavid du Colombier responsibility to test whether revision is 0. 846*0b459c2cSDavid du Colombier (scan_input, report_revision, get_input_file): 847*0b459c2cSDavid du Colombier Be less chatty unless --verbose. 848*0b459c2cSDavid du Colombier (get_input_file): New function, split off from plan_a. 849*0b459c2cSDavid du Colombier Reuse file status gotten by pch if possible. Allow for dry run. 850*0b459c2cSDavid du Colombier Use POSIX bits for creat, not number. Check for creation and 851*0b459c2cSDavid du Colombier close failure, and use fstat not stat. Use memcpy not strncpy. 852*0b459c2cSDavid du Colombier (plan_a): Rewrite for speed. 853*0b459c2cSDavid du Colombier Caller now assigns result to using_plan_a. 854*0b459c2cSDavid du Colombier Don't bother reading empty files; during dry runs they might not exist. 855*0b459c2cSDavid du Colombier Use ISSPACE, not isspace. 856*0b459c2cSDavid du Colombier (plan_b): Allow for dry runs. Use ISSPACE, and handle sign extension 857*0b459c2cSDavid du Colombier correctly on arg. Use POSIX symbol for open arg. 858*0b459c2cSDavid du Colombier 859*0b459c2cSDavid du Colombier * patch.c (backup, output, patchname, program_name): New vars. 860*0b459c2cSDavid du Colombier (last_frozen_line): Moved here from inp.h. 861*0b459c2cSDavid du Colombier (TMPREJNAME): Moved here from common.h. 862*0b459c2cSDavid du Colombier (optind_last): Removed. 863*0b459c2cSDavid du Colombier (do_defines, if_defined, not_defined, else_defined, end_defined): 864*0b459c2cSDavid du Colombier Now char const. Prepend with \n (except for not_defined) to 865*0b459c2cSDavid du Colombier allow for files ending in non-newline. 866*0b459c2cSDavid du Colombier (Argv): Now char*const*. 867*0b459c2cSDavid du Colombier (main, get_some_switches): Exit status 0 means success, 868*0b459c2cSDavid du Colombier 1 means hunks were rejected, 2 means trouble. 869*0b459c2cSDavid du Colombier (main, locate_hunk, patch_match): Keep track of patch prefix context 870*0b459c2cSDavid du Colombier separately from suffix context; this fixes several bugs. 871*0b459c2cSDavid du Colombier (main): Initialize bufsize, strippath. 872*0b459c2cSDavid du Colombier Be less chatty unless --verbose. 873*0b459c2cSDavid du Colombier No more NODIR; always have version control available. 874*0b459c2cSDavid du Colombier Require environment variables to be nonempty to have effect. 875*0b459c2cSDavid du Colombier Add support for --dry-run, --output, --verbose. 876*0b459c2cSDavid du Colombier Invoke get_input_file first, before deciding among do_ed_script, 877*0b459c2cSDavid du Colombier plan_a, or plan_b. 878*0b459c2cSDavid du Colombier Clear ofp after closing it, to keep discipline that ofp is either 879*0b459c2cSDavid du Colombier 0 or open, to avoid file descriptor leaks. Conversely, rejfp doesn't 880*0b459c2cSDavid du Colombier need this trick since static analysis is enough to show when it 881*0b459c2cSDavid du Colombier needs to be closed. 882*0b459c2cSDavid du Colombier Don't allow file-creation patches to be applied to existing files. 883*0b459c2cSDavid du Colombier Misordered hunks are now not fatal errors; just go on to the next file. 884*0b459c2cSDavid du Colombier It's a fatal error to fall back on plan B when --output is given, 885*0b459c2cSDavid du Colombier since the moving hand has writ. 886*0b459c2cSDavid du Colombier Add support for binary files. 887*0b459c2cSDavid du Colombier Check for I/O errors. 888*0b459c2cSDavid du Colombier chmod output file ourselves, rather than letting move_file do it; 889*0b459c2cSDavid du Colombier this saves global state. 890*0b459c2cSDavid du Colombier Use better grammar when outputting hunks messages, e.g. avoid 891*0b459c2cSDavid du Colombier `1 hunks'. 892*0b459c2cSDavid du Colombier (main, reinitialize_almost_everything): 893*0b459c2cSDavid du Colombier Remove support for multiple file arguments. 894*0b459c2cSDavid du Colombier Move get_some_switches call from reinitialize_almost_everything 895*0b459c2cSDavid du Colombier to main. 896*0b459c2cSDavid du Colombier (reinitialize_almost_everything): No need to reinitialize things 897*0b459c2cSDavid du Colombier that are no longer global variables, e.g. outname. 898*0b459c2cSDavid du Colombier (shortopts): Remove leading "-"; it's no longer important to 899*0b459c2cSDavid du Colombier return options and arguments in order. '-b' no longer takes operand. 900*0b459c2cSDavid du Colombier -p's operand is no longer optional. Add -i, -Y, -z. Remove -S. 901*0b459c2cSDavid du Colombier (longopts): --suffix is now pared with -z, not -b. --backup now 902*0b459c2cSDavid du Colombier means -b. Add --input, --basename-prefix, --dry-run, --verbose. 903*0b459c2cSDavid du Colombier Remove --skip. --strip's operand is now required. 904*0b459c2cSDavid du Colombier (option_help): New variable. Use style of current coding standards. 905*0b459c2cSDavid du Colombier Change to match current option set. 906*0b459c2cSDavid du Colombier (usage): Use it. 907*0b459c2cSDavid du Colombier (get_some_switches): Get all switches, since `+' is defunct. 908*0b459c2cSDavid du Colombier New options -i, -Y, -z, --verbose, --dry-run. 909*0b459c2cSDavid du Colombier Option -S removed. 910*0b459c2cSDavid du Colombier -b now means backup (backup_type == simple), not simple_backup_suffix. 911*0b459c2cSDavid du Colombier -B now implies backup, and requires nonempty operand. 912*0b459c2cSDavid du Colombier -D no longer requires first char of argument to be an identifier. 913*0b459c2cSDavid du Colombier `-o -' is now disallowed (formerly output to regular file named "-"). 914*0b459c2cSDavid du Colombier -p operand is now required. 915*0b459c2cSDavid du Colombier -v no longer needs to cleanup (no temp files can exist at that point). 916*0b459c2cSDavid du Colombier -V now implies backup. 917*0b459c2cSDavid du Colombier Set inname, patchname from file name arguments, if any; 918*0b459c2cSDavid du Colombier do not set filearg. It's now an error if extra operands are given. 919*0b459c2cSDavid du Colombier (abort_junk): Check for write errors in reject file. 920*0b459c2cSDavid du Colombier (apply_hunk, copy_till): Return error flag, so that failure to apply 921*0b459c2cSDavid du Colombier out-of-order hunk is no longer fatal. 922*0b459c2cSDavid du Colombier (apply_hunk): New arg after_newline, 923*0b459c2cSDavid du Colombier for patching files not ending in newline. 924*0b459c2cSDavid du Colombier Cache ofp for speed. Check for write errors. 925*0b459c2cSDavid du Colombier (OUTSIDE, IN_IFNDEF, IN_IFDEF, IN_ELSE): Now part of an enumerated type 926*0b459c2cSDavid du Colombier instead of being #defined to small integers. 927*0b459c2cSDavid du Colombier Change while-do to do-while when copying !-part for R_do_defines, 928*0b459c2cSDavid du Colombier since condition is always true the first time through the loop. 929*0b459c2cSDavid du Colombier (init_output, init_reject): Arg is now const *. 930*0b459c2cSDavid du Colombier (copy_till, spew_output): Do not insert ``missing'' newlines; 931*0b459c2cSDavid du Colombier propagate them via new after_newline argument. 932*0b459c2cSDavid du Colombier (spew_output): Nothing to copy if last_frozen_line == input lines. 933*0b459c2cSDavid du Colombier Do not close (ofp) if it's null. 934*0b459c2cSDavid du Colombier (dump_line): Remove. 935*0b459c2cSDavid du Colombier (similar): Ignore presence or absence of trailing newlines. 936*0b459c2cSDavid du Colombier Check for only ' ' or '\t', not isspace (as per POSIX.2). 937*0b459c2cSDavid du Colombier (make_temp): Use tmpnam if mktemp is not available. 938*0b459c2cSDavid du Colombier (cleanup): New function. 939*0b459c2cSDavid du Colombier (fatal_exit): Use it. Renamed from my_exit. 940*0b459c2cSDavid du Colombier Take signal to exit with, not exit status (which is now always 2). 941*0b459c2cSDavid du Colombier 942*0b459c2cSDavid du Colombier * pch.h, pch.c (pch_prefix_context, pch_suffix_context): 943*0b459c2cSDavid du Colombier New fns replacing pch_context. 944*0b459c2cSDavid du Colombier (another_hunk): Now yields int, not bool; -1 means out of memory. 945*0b459c2cSDavid du Colombier Now takes difftype as argument. 946*0b459c2cSDavid du Colombier (pch_write_line): Now returns boolean indicating whether we're after 947*0b459c2cSDavid du Colombier a newline just after the write, for supporting non-text files. 948*0b459c2cSDavid du Colombier * pch.c (isdigit): Remove; use ISDIGIT instead. 949*0b459c2cSDavid du Colombier (INITHUNKMAX): Moved here from common.h. 950*0b459c2cSDavid du Colombier (p_context): Removed. We need to keep track of the pre- and post- 951*0b459c2cSDavid du Colombier context separately, in: 952*0b459c2cSDavid du Colombier (p_prefix_context, p_suffix_context): New variables. 953*0b459c2cSDavid du Colombier (bestguess): Remove. 954*0b459c2cSDavid du Colombier (open_patch_file): Arg is now char const *. 955*0b459c2cSDavid du Colombier Copy file a buffer at a time, not a char at a time, for speed. 956*0b459c2cSDavid du Colombier (grow_hunkmax): Now returns success indicator. 957*0b459c2cSDavid du Colombier (there_is_another_patch, skip_to, another_hunk, do_ed_script): 958*0b459c2cSDavid du Colombier Be less chatty unless --verbose. 959*0b459c2cSDavid du Colombier (there_is_another_patch): 960*0b459c2cSDavid du Colombier Avoid infinite loop if user input keeps yielding EOF. 961*0b459c2cSDavid du Colombier (intuit_diff_type): New returns enum diff, not int. 962*0b459c2cSDavid du Colombier Strip paths as they're being fetched. 963*0b459c2cSDavid du Colombier Set ok_to_create_file correctly even if patch is reversed. 964*0b459c2cSDavid du Colombier Set up file names correctly with unidiff output. 965*0b459c2cSDavid du Colombier Use algorithm specified by POSIX 1003.2b/D11 to deduce 966*0b459c2cSDavid du Colombier name of file to patch, with the exception of patches 967*0b459c2cSDavid du Colombier that can create files. 968*0b459c2cSDavid du Colombier (skip_to): Be verbose if !inname, since we're about to ask the 969*0b459c2cSDavid du Colombier user for a file name and the context will help the user choose. 970*0b459c2cSDavid du Colombier (another_hunk): Keep context as LINENUM, not int. 971*0b459c2cSDavid du Colombier If the replacement is missing, calculate its context correctly. 972*0b459c2cSDavid du Colombier Don't assume input ends in newline. 973*0b459c2cSDavid du Colombier Keep track of patch prefix context separately from suffix context; 974*0b459c2cSDavid du Colombier this fixes several bugs. 975*0b459c2cSDavid du Colombier Don't assume blank lines got chopped if the replacement is missing. 976*0b459c2cSDavid du Colombier Report poorly-formed hunks instead of aborting. 977*0b459c2cSDavid du Colombier Do not use strcpy on overlapping strings; it's not portable. 978*0b459c2cSDavid du Colombier Work even if lines are incomplete. 979*0b459c2cSDavid du Colombier Fix bugs associated with context-less context hunks, 980*0b459c2cSDavid du Colombier particularly when patching in reverse. 981*0b459c2cSDavid du Colombier (pget_line): Now takes just 1 arg; instead of second arg, 982*0b459c2cSDavid du Colombier just examine using_plan_a global. Return -1 if we ran out 983*0b459c2cSDavid du Colombier of memory. 984*0b459c2cSDavid du Colombier (do_ed_script): Now takes output FILE * argument. 985*0b459c2cSDavid du Colombier Take name of editor from ED_PROGRAM instead of hardwiring /bin/ed. 986*0b459c2cSDavid du Colombier Don't bother unlinking TMPOUTNAME. 987*0b459c2cSDavid du Colombier Check for popen failure. 988*0b459c2cSDavid du Colombier Flush pipe to check for output errors. 989*0b459c2cSDavid du Colombier If ofp is nonzero, copy result to it, instead of trying to 990*0b459c2cSDavid du Colombier move the result. 991*0b459c2cSDavid du Colombier 992*0b459c2cSDavid du Colombier * util.h, util.c (say1, say2, say3, say4, fatal1, fatal2, fatal3, 993*0b459c2cSDavid du Colombier fatal4, pfatal1, pfatal2, pfatal3, pfatal4, ask1, ask2, ask3, ask4): 994*0b459c2cSDavid du Colombier Remove; replaced with following. 995*0b459c2cSDavid du Colombier (ask, say, fatal, pfatal): New stdarg functions. 996*0b459c2cSDavid du Colombier (fetchname): Remove last, `assume_exists' parameter. 997*0b459c2cSDavid du Colombier (savebuf, savestr, move_file, copy_file): Args are now const *. 998*0b459c2cSDavid du Colombier (exit_with_signal): New function, for proper process status if 999*0b459c2cSDavid du Colombier a signal is received as per POSIX.2. 1000*0b459c2cSDavid du Colombier (basename): Rename to `base_name' and move to backupfile. 1001*0b459c2cSDavid du Colombier * util.c (<signal.h>): Include here, not in common.h. 1002*0b459c2cSDavid du Colombier (vararg_start): New macro. 1003*0b459c2cSDavid du Colombier (va_dcl, va_start, va_arg, va_end): Define if neither <stdarg.h> 1004*0b459c2cSDavid du Colombier nor <varargs.h> are available. 1005*0b459c2cSDavid du Colombier (SIGCHLD): Define to SIGCLD if SIGCLD is defined and 1006*0b459c2cSDavid du Colombier SIGCHLD isn't. 1007*0b459c2cSDavid du Colombier (private_strerror): Remove. 1008*0b459c2cSDavid du Colombier (move_file): Remove option of moving to stdout. 1009*0b459c2cSDavid du Colombier Add support for -Y, -z. 1010*0b459c2cSDavid du Colombier Don't assume chars in file name are nonnegative. 1011*0b459c2cSDavid du Colombier Use copy_file if rename fails due to EXDEV; 1012*0b459c2cSDavid du Colombier report failure if rename fails for any other reason. 1013*0b459c2cSDavid du Colombier (copy_file, makedirs): Use POSIX symbols for permissions. 1014*0b459c2cSDavid du Colombier (copy_file): Open source before destination. 1015*0b459c2cSDavid du Colombier (remove_prefix): New function. 1016*0b459c2cSDavid du Colombier (vfprintf): New function, if !HAVE_VPRINTF. 1017*0b459c2cSDavid du Colombier (afatal, apfatal, zfatal, zpfatal, errnum): Remove. 1018*0b459c2cSDavid du Colombier (fatal, pfatal, say): New functions that use stdarg. 1019*0b459c2cSDavid du Colombier All callers changed. 1020*0b459c2cSDavid du Colombier (zask): Renamed from `ask'. Now uses stdarg. Output to stdout, 1021*0b459c2cSDavid du Colombier and read from /dev/tty, or if that cannot be opened, from 1022*0b459c2cSDavid du Colombier stderr, stdout, stdin, whichever is first a tty. 1023*0b459c2cSDavid du Colombier Print "EOF" when an EOF is read. Do not echo input. 1024*0b459c2cSDavid du Colombier (sigs): New array. 1025*0b459c2cSDavid du Colombier (sigset_t, sigemptyset, sigmask, sigaddset, sigismember, SIG_BLOCK, 1026*0b459c2cSDavid du Colombier SIG_UNBLOCK, SIG_SETMASK, sigprocmask, sigblock, sigsetmask): 1027*0b459c2cSDavid du Colombier Define substitutes if not available. 1028*0b459c2cSDavid du Colombier (initial_signal_mask, signals_to_block): New vars. 1029*0b459c2cSDavid du Colombier (fatal_exit_handler): New function, if !HAVE_SIGACTION. 1030*0b459c2cSDavid du Colombier (set_signals, ignore_signals): Use sigaction and sigprocmask style 1031*0b459c2cSDavid du Colombier signal-handling if possible; it doesn't lose signals. 1032*0b459c2cSDavid du Colombier (set_signals): Default SIGCHLD to work around SysV fork+wait bug. 1033*0b459c2cSDavid du Colombier (mkdir): First arg is now const *. 1034*0b459c2cSDavid du Colombier (makedirs): Handle multiple adjacent slashes correctly. 1035*0b459c2cSDavid du Colombier (fetchname): Do not worry about whether the file exists 1036*0b459c2cSDavid du Colombier (that is now the caller's responsibility). 1037*0b459c2cSDavid du Colombier Treat a sequence of one or more slashes like one slash. 1038*0b459c2cSDavid du Colombier Do not unstrip leading directories if they all exist and if 1039*0b459c2cSDavid du Colombier no -p option was given; POSIX doesn't allow this. 1040*0b459c2cSDavid du Colombier (memcmp): Remove (now a macro in common.h). 1041*0b459c2cSDavid du Colombier 1042*0b459c2cSDavid du Colombier * version.c (copyright_string, free_software_msgid, authorship_msgid): 1043*0b459c2cSDavid du Colombier New constants. 1044*0b459c2cSDavid du Colombier (version): Use them. Use program_name instead of hardwiring it. 1045*0b459c2cSDavid du Colombier 1046*0b459c2cSDavid du Colombier * patch.man: Generate date from RCS Id. 1047*0b459c2cSDavid du Colombier Rewrite to match the above changes. 1048*0b459c2cSDavid du Colombier 1049*0b459c2cSDavid du ColombierFri Jul 30 02:02:51 1993 Paul Eggert (eggert@twinsun.com) 1050*0b459c2cSDavid du Colombier 1051*0b459c2cSDavid du Colombier * configure.in (AC_HAVE_FUNCS): Add mkdir. 1052*0b459c2cSDavid du Colombier 1053*0b459c2cSDavid du Colombier * common.h (Chmod, Fputc, Write, VOID): New macros. 1054*0b459c2cSDavid du Colombier (malloc, realloc): Yield `VOID *', not `char *'. 1055*0b459c2cSDavid du Colombier 1056*0b459c2cSDavid du Colombier * util.h (makedirs): Omit `striplast' argument. Remove `aask'. 1057*0b459c2cSDavid du Colombier 1058*0b459c2cSDavid du Colombier * inp.c (plan_a): Remove fixed internal buffer. Remove lint. 1059*0b459c2cSDavid du Colombier 1060*0b459c2cSDavid du Colombier * util.c (set_signals, ignore_signals): Trap SIGTERM, too. 1061*0b459c2cSDavid du Colombier (makedirs): Removed fixed internal buffer. Omit `striplast' argument. 1062*0b459c2cSDavid du Colombier (mkdir): New function, if !HAVE_MKDIR. 1063*0b459c2cSDavid du Colombier (fetchname): Remove fixed internal buffer. 1064*0b459c2cSDavid du Colombier Remove lint from various functions. 1065*0b459c2cSDavid du Colombier 1066*0b459c2cSDavid du Colombier * patch.c, pch.c: Remove lint. 1067*0b459c2cSDavid du Colombier 1068*0b459c2cSDavid du ColombierThu Jul 29 20:52:07 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) 1069*0b459c2cSDavid du Colombier 1070*0b459c2cSDavid du Colombier * Makefile.in (config.status): Run config.status --recheck, not 1071*0b459c2cSDavid du Colombier configure, to get the right args passed. 1072*0b459c2cSDavid du Colombier 1073*0b459c2cSDavid du ColombierThu Jul 29 07:46:16 1993 Paul Eggert (eggert@twinsun.com) 1074*0b459c2cSDavid du Colombier 1075*0b459c2cSDavid du Colombier * The following changes remove all remaining fixed limits on memory, 1076*0b459c2cSDavid du Colombier and fix bugs in patch's handling of null bytes and files that do not 1077*0b459c2cSDavid du Colombier end in newline. `Patch' now works on binary files. 1078*0b459c2cSDavid du Colombier 1079*0b459c2cSDavid du Colombier * backupfile.c (find_backup_file_name): Don't dump core if malloc fails. 1080*0b459c2cSDavid du Colombier 1081*0b459c2cSDavid du Colombier * EXTERN.h, INTERN.h (EXITING): New macro. 1082*0b459c2cSDavid du Colombier * backupfile.[ch], patch.c, pch.c: Add PARAMS to function declarations. 1083*0b459c2cSDavid du Colombier 1084*0b459c2cSDavid du Colombier * common.h (bool): Change to int, so ANSI C prototype promotion works. 1085*0b459c2cSDavid du Colombier (CANVARARG): Remove varargs hack; it wasn't portable. 1086*0b459c2cSDavid du Colombier (filearg): Now a pointer, not an array, so that it can be reallocated. 1087*0b459c2cSDavid du Colombier (GET*, SCCSDIFF, CHECKOUT*, RCSDIFF): Quote operands to commands. 1088*0b459c2cSDavid du Colombier (my_exit): Declare here. 1089*0b459c2cSDavid du Colombier (BUFFERSIZE, Ctl, filemode, Fseek, Fstat, Lseek, MAXFILEC, MAXHUNKSIZE, 1090*0b459c2cSDavid du Colombier Mktemp, myuid, Null, Nullch, Nullfp, Nulline, Pclose, VOIDUSED): Remove. 1091*0b459c2cSDavid du Colombier All invokers changed. 1092*0b459c2cSDavid du Colombier (Argc, Argv, *define[sd], last_offset, maxfuzz, noreverse, ofp, 1093*0b459c2cSDavid du Colombier optind_last, rejfp, rejname): No longer externally visible; all 1094*0b459c2cSDavid du Colombier definers changed. 1095*0b459c2cSDavid du Colombier (INT_MAX, INT_MIN, STD*_FILENO, SEEK_SET): Define if the underlying 1096*0b459c2cSDavid du Colombier system doesn't. Include <limits.h> for this. 1097*0b459c2cSDavid du Colombier 1098*0b459c2cSDavid du Colombier * configure.in: Add limits.h, memcmp. Delete getline. 1099*0b459c2cSDavid du Colombier 1100*0b459c2cSDavid du Colombier * inp.c (tibufsize): New variable; buffers grow as needed. 1101*0b459c2cSDavid du Colombier (TIBUFSIZE_MINIMUM): New macro. 1102*0b459c2cSDavid du Colombier (report_revision): New function. 1103*0b459c2cSDavid du Colombier (plan_a): Do not search patch as a big string, since that fails 1104*0b459c2cSDavid du Colombier if it contains null bytes. 1105*0b459c2cSDavid du Colombier Prepend `./' to filenames starting with `-', for RCS and SCCS. 1106*0b459c2cSDavid du Colombier If file does not match default RCS/SCCS version, go ahead and patch 1107*0b459c2cSDavid du Colombier it anyway; warn about the problem but do not report a fatal error. 1108*0b459c2cSDavid du Colombier (plan_b): Do not use a fixed buffer to read lines; read byte by byte 1109*0b459c2cSDavid du Colombier instead, so that the lines can be arbitrarily long. Do not search 1110*0b459c2cSDavid du Colombier lines as strings, since they may contain null bytes. 1111*0b459c2cSDavid du Colombier (plan_a, plan_b): Report I/O errors. 1112*0b459c2cSDavid du Colombier 1113*0b459c2cSDavid du Colombier * inp.c, inp.h (rev_in_string): Remove. 1114*0b459c2cSDavid du Colombier (ifetch): Yield size of line too, since strlen no longer applies. 1115*0b459c2cSDavid du Colombier (plan_a, plan_b): No longer exported. 1116*0b459c2cSDavid du Colombier 1117*0b459c2cSDavid du Colombier * patch.c (abort_hunk, apply_hunk, patch_match, similar): 1118*0b459c2cSDavid du Colombier Lines may contain NUL and need not end in newline. 1119*0b459c2cSDavid du Colombier (copy_till, dump_line): Insert newline if appending after partial line. 1120*0b459c2cSDavid du Colombier All invokers changed. 1121*0b459c2cSDavid du Colombier (main, get_some_switches, apply_hunk): Allocate *_define[ds], filearg, 1122*0b459c2cSDavid du Colombier rejname dynamically. 1123*0b459c2cSDavid du Colombier (make_temp): New function. 1124*0b459c2cSDavid du Colombier (main): Use it. 1125*0b459c2cSDavid du Colombier (main, spew_output, dump_line) Check for I/O errors. 1126*0b459c2cSDavid du Colombier 1127*0b459c2cSDavid du Colombier * pch.c (open_patch_file): Don't copy stdin to a temporary file if 1128*0b459c2cSDavid du Colombier it's a regular file, since we can seek on it directly. 1129*0b459c2cSDavid du Colombier (open_patch_file, skip_to, another_hunk): The patch file may contain 1130*0b459c2cSDavid du Colombier NULs. 1131*0b459c2cSDavid du Colombier (another_hunk): The patch file may contain lines starting with '\', 1132*0b459c2cSDavid du Colombier which means the preceding line lacked a trailing newline. 1133*0b459c2cSDavid du Colombier (pgetline): Rename to pget_line. 1134*0b459c2cSDavid du Colombier (get_line, incomplete_line, pch_write_line): New functions. 1135*0b459c2cSDavid du Colombier (pch_line_len): Return size_t, not short; lines may be very long. 1136*0b459c2cSDavid du Colombier (do_ed_script): Check for I/O errors. Allow scripts to contain 1137*0b459c2cSDavid du Colombier 'i' and 's' commands, too. 1138*0b459c2cSDavid du Colombier 1139*0b459c2cSDavid du Colombier * pch.h (pfp, grow_hunkmax, intuit_diff_type, next_intuit_at, skip_to, 1140*0b459c2cSDavid du Colombier pfetch, pgetline): No longer exported. 1141*0b459c2cSDavid du Colombier (pch_write_line): New declaration. 1142*0b459c2cSDavid du Colombier (getline): Removed. 1143*0b459c2cSDavid du Colombier 1144*0b459c2cSDavid du Colombier * util.c (move_file, fetchname): Use private stat buffer, so that 1145*0b459c2cSDavid du Colombier filestat isn't lost. Check for I/O errors. 1146*0b459c2cSDavid du Colombier (savestr): Use savebuf. 1147*0b459c2cSDavid du Colombier (zask): Use STD*_FILENO instead of 0, 1, 2. 1148*0b459c2cSDavid du Colombier (fetchname): strip_leading defaults to INT_MAX instead of 957 (!). 1149*0b459c2cSDavid du Colombier (memcmp): Define if !HAVE_MEMCMP. 1150*0b459c2cSDavid du Colombier 1151*0b459c2cSDavid du Colombier * util.c, util.h (say*, fatal*, pfatal*, ask*): Delete; these 1152*0b459c2cSDavid du Colombier pseudo-varargs functions weren't ANSI C. Replace by macros 1153*0b459c2cSDavid du Colombier that invoke [fs]printf directly, and invoke new functions 1154*0b459c2cSDavid du Colombier [az]{say,fatal,pfatal,ask} before and after. 1155*0b459c2cSDavid du Colombier (savebuf, read_fatal, write_fatal, memory_fatal, Fseek): New functions. 1156*0b459c2cSDavid du Colombier (fatal*): Output trailing newline after message. All invokers changed. 1157*0b459c2cSDavid du Colombier 1158*0b459c2cSDavid du Colombier * version.c (version): Don't exit. 1159*0b459c2cSDavid du Colombier 1160*0b459c2cSDavid du Colombier * Makefile.in (SRCS): Remove getline.c. 1161*0b459c2cSDavid du Colombier 1162*0b459c2cSDavid du ColombierThu Jul 22 15:24:24 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1163*0b459c2cSDavid du Colombier 1164*0b459c2cSDavid du Colombier * EXTERN.h, INTERN.h (PARAMS): Define. 1165*0b459c2cSDavid du Colombier * backupfile.h, common.h, inp.h, pch.h, util.h: Use. 1166*0b459c2cSDavid du Colombier * backupfile.c: Include EXTERN.h. 1167*0b459c2cSDavid du Colombier 1168*0b459c2cSDavid du ColombierWed Jul 21 13:14:05 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1169*0b459c2cSDavid du Colombier 1170*0b459c2cSDavid du Colombier * getline.c: New file. 1171*0b459c2cSDavid du Colombier * configure.in: Check for getline (GNU libc has it). 1172*0b459c2cSDavid du Colombier * pch.c: Use it instead of fgets. 1173*0b459c2cSDavid du Colombier (pgetline): Renamed from pgets. Change callers. 1174*0b459c2cSDavid du Colombier * pch.h: Change decl. 1175*0b459c2cSDavid du Colombier 1176*0b459c2cSDavid du Colombier * pch.c (pgets): Tab adjusts by 8 - (indent % 8), not % 7. 1177*0b459c2cSDavid du Colombier Be consistent with similar code in pch.c::intuit_diff_type. 1178*0b459c2cSDavid du Colombier 1179*0b459c2cSDavid du Colombier * common.h (MEM): Typedef removed. 1180*0b459c2cSDavid du Colombier inp.c, pch.c, util.c: Use size_t instead of MEM. 1181*0b459c2cSDavid du Colombier inp.c, pch.c: Use off_t. 1182*0b459c2cSDavid du Colombier configure.in: Add AC_SIZE_T and AC_OFF_T. 1183*0b459c2cSDavid du Colombier 1184*0b459c2cSDavid du Colombier * common.h: Make buf a pointer and add a bufsize variable. 1185*0b459c2cSDavid du Colombier * util.c, pch.c, inp.c: Replace sizeof buf with bufsize. 1186*0b459c2cSDavid du Colombier * patch.c: malloc buf to bufsize bytes. 1187*0b459c2cSDavid du Colombier 1188*0b459c2cSDavid du ColombierTue Jul 20 20:40:03 1993 Paul Eggert (eggert@twinsun.com) 1189*0b459c2cSDavid du Colombier 1190*0b459c2cSDavid du Colombier * common.h (BUFFERSIZE): Grow it to 8k too, just in case. 1191*0b459c2cSDavid du Colombier (buf): Turn `buf' back into an array; making it a pointer broke 1192*0b459c2cSDavid du Colombier things seriously. 1193*0b459c2cSDavid du Colombier * patch.c (main): Likewise. 1194*0b459c2cSDavid du Colombier 1195*0b459c2cSDavid du ColombierTue Jul 20 20:02:40 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1196*0b459c2cSDavid du Colombier 1197*0b459c2cSDavid du Colombier * Move Reg[1-16] and CANVARARG decls from config.h.in to common.h. 1198*0b459c2cSDavid du Colombier * acconfig.h: New file. 1199*0b459c2cSDavid du Colombier * Makefile (HDRS): Add it. 1200*0b459c2cSDavid du Colombier 1201*0b459c2cSDavid du ColombierTue Jul 20 16:35:27 1993 Paul Eggert (eggert@twinsun.com) 1202*0b459c2cSDavid du Colombier 1203*0b459c2cSDavid du Colombier * Makefile.in: Remove alloca.[co]; getopt no longer needs it. 1204*0b459c2cSDavid du Colombier * configure.in (AC_ALLOCA): Remove. 1205*0b459c2cSDavid du Colombier 1206*0b459c2cSDavid du Colombier * util.c (set_signals, ignore_signals): Do nothing if SIGHUP 1207*0b459c2cSDavid du Colombier and SIGINT aren't defined. 1208*0b459c2cSDavid du Colombier 1209*0b459c2cSDavid du ColombierTue Jul 20 17:59:56 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1210*0b459c2cSDavid du Colombier 1211*0b459c2cSDavid du Colombier * patch.c (main): Call xmalloc, not malloc. xmalloc buf. 1212*0b459c2cSDavid du Colombier * common.h: Declare xmalloc. Make buf a pointer, not an array. 1213*0b459c2cSDavid du Colombier 1214*0b459c2cSDavid du Colombier * util.c (xmalloc): Call fatal1, not fatal. 1215*0b459c2cSDavid du Colombier 1216*0b459c2cSDavid du Colombier * common.h [MAXLINELEN]: Bump from 1k to 8k. 1217*0b459c2cSDavid du Colombier 1218*0b459c2cSDavid du ColombierThu Jul 8 19:56:16 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1219*0b459c2cSDavid du Colombier 1220*0b459c2cSDavid du Colombier * Makefile.in (installdirs): New target. 1221*0b459c2cSDavid du Colombier (install): Use it. 1222*0b459c2cSDavid du Colombier (Makefile, config.status, configure): New targets. 1223*0b459c2cSDavid du Colombier 1224*0b459c2cSDavid du ColombierWed Jul 7 13:25:40 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1225*0b459c2cSDavid du Colombier 1226*0b459c2cSDavid du Colombier * patch.c (get_some_switches, longopts): Recognize --help 1227*0b459c2cSDavid du Colombier option, and call usage. 1228*0b459c2cSDavid du Colombier (usage): New function. 1229*0b459c2cSDavid du Colombier 1230*0b459c2cSDavid du ColombierFri Jun 25 07:49:45 1993 Paul Eggert (eggert@twinsun.com) 1231*0b459c2cSDavid du Colombier 1232*0b459c2cSDavid du Colombier * backupfile.c (find_backup_file_name): Don't use .orig if 1233*0b459c2cSDavid du Colombier numbered_existing with no existing numbered backup. 1234*0b459c2cSDavid du Colombier (addext): Don't use ext if !HAVE_LONG_FILE_NAMES, 1235*0b459c2cSDavid du Colombier even if it would fit. This matches patch's historical behavior. 1236*0b459c2cSDavid du Colombier (simple_backup_suffix): Default to ".orig". 1237*0b459c2cSDavid du Colombier * patch.c (main): Just use that default. 1238*0b459c2cSDavid du Colombier 1239*0b459c2cSDavid du ColombierTue Jun 15 22:32:14 1993 Paul Eggert (eggert@twinsun.com) 1240*0b459c2cSDavid du Colombier 1241*0b459c2cSDavid du Colombier * config.h.in (HAVE_ALLOCA_H): This #undef was missing. 1242*0b459c2cSDavid du Colombier * Makefile.in (info, check, installcheck): New rules. 1243*0b459c2cSDavid du Colombier 1244*0b459c2cSDavid du ColombierSun Jun 13 14:31:29 1993 Paul Eggert (eggert@twinsun.com) 1245*0b459c2cSDavid du Colombier 1246*0b459c2cSDavid du Colombier * config.h.in (index, rindex): Remove unused macro 1247*0b459c2cSDavid du Colombier definitions; they get in the way when porting to AIX. 1248*0b459c2cSDavid du Colombier * config.h.in, configure.in (HAVE_STRING_H): Remove unused defn. 1249*0b459c2cSDavid du Colombier 1250*0b459c2cSDavid du ColombierThu Jun 10 21:13:47 1993 Paul Eggert (eggert@twinsun.com) 1251*0b459c2cSDavid du Colombier 1252*0b459c2cSDavid du Colombier * patchlevel.h: PATCH_VERSION 2.1. 1253*0b459c2cSDavid du Colombier (The name `patch-2.0.12g12' is too long for traditional Unix.) 1254*0b459c2cSDavid du Colombier 1255*0b459c2cSDavid du Colombier * patchlevel.h (PATCH_VERSION): Renamed from PATCHLEVEL. 1256*0b459c2cSDavid du Colombier Now contains the entire patch version number. 1257*0b459c2cSDavid du Colombier * version.c (version): Use it. 1258*0b459c2cSDavid du Colombier 1259*0b459c2cSDavid du ColombierWed Jun 9 21:43:23 1993 Paul Eggert (eggert@twinsun.com) 1260*0b459c2cSDavid du Colombier 1261*0b459c2cSDavid du Colombier * common.h: Remove declarations of index and rindex. 1262*0b459c2cSDavid du Colombier * backupfile.c: Likewise. 1263*0b459c2cSDavid du Colombier (addext, basename, dirname): Avoid rindex. 1264*0b459c2cSDavid du Colombier 1265*0b459c2cSDavid du ColombierTue Jun 8 15:24:14 1993 Paul Eggert (eggert@twinsun.com) 1266*0b459c2cSDavid du Colombier 1267*0b459c2cSDavid du Colombier * inp.c (plan_a): Check that RCS and working files are not the 1268*0b459c2cSDavid du Colombier same. This check is needed on hosts that do not report file 1269*0b459c2cSDavid du Colombier name length limits and have short limits. 1270*0b459c2cSDavid du Colombier 1271*0b459c2cSDavid du ColombierSat Jun 5 22:56:07 1993 Paul Eggert (eggert@twinsun.com) 1272*0b459c2cSDavid du Colombier 1273*0b459c2cSDavid du Colombier * Makefile.in (.c.o): Put $(CFLAGS) after other options. 1274*0b459c2cSDavid du Colombier (dist): Switch from .z to .gz. 1275*0b459c2cSDavid du Colombier 1276*0b459c2cSDavid du ColombierWed Jun 2 10:37:15 1993 Paul Eggert (eggert@twinsun.com) 1277*0b459c2cSDavid du Colombier 1278*0b459c2cSDavid du Colombier * backupfile.c (find_backup_file_name): Initialize copy of 1279*0b459c2cSDavid du Colombier file name properly. 1280*0b459c2cSDavid du Colombier 1281*0b459c2cSDavid du ColombierMon May 31 21:55:21 1993 Paul Eggert (eggert@twinsun.com) 1282*0b459c2cSDavid du Colombier 1283*0b459c2cSDavid du Colombier * patchlevel.h: Patch level 12g11. 1284*0b459c2cSDavid du Colombier 1285*0b459c2cSDavid du Colombier * pch.c (p_Char): Renamed from p_char, which is a system type 1286*0b459c2cSDavid du Colombier in Tex XD88's <sys/types.h>. 1287*0b459c2cSDavid du Colombier 1288*0b459c2cSDavid du Colombier * backupfile.c: Include "config.h" first, so that `const' is 1289*0b459c2cSDavid du Colombier treated consistently in system headers. 1290*0b459c2cSDavid du Colombier 1291*0b459c2cSDavid du ColombierMon May 31 16:06:23 1993 Paul Eggert (eggert@twinsun.com) 1292*0b459c2cSDavid du Colombier 1293*0b459c2cSDavid du Colombier * patchlevel.h: Patch level 12g10. 1294*0b459c2cSDavid du Colombier 1295*0b459c2cSDavid du Colombier * configure.in: Add AC_CONST. 1296*0b459c2cSDavid du Colombier * config.h.in: Add `const'. 1297*0b459c2cSDavid du Colombier * Makefile.in (.c.o): Add -DHAVE_CONFIG_H. 1298*0b459c2cSDavid du Colombier (getopt.o getopt1.o): Depend on config.h. 1299*0b459c2cSDavid du Colombier 1300*0b459c2cSDavid du Colombier * util.c (xmalloc): New function; alloca.c needs this. 1301*0b459c2cSDavid du Colombier 1302*0b459c2cSDavid du ColombierMon May 31 00:49:40 1993 Paul Eggert (eggert@twinsun.com) 1303*0b459c2cSDavid du Colombier 1304*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12g9. 1305*0b459c2cSDavid du Colombier 1306*0b459c2cSDavid du Colombier * backupfile.c, backupfile.h (addext): New function. 1307*0b459c2cSDavid du Colombier It uses pathconf(), if available, to determine maximum file 1308*0b459c2cSDavid du Colombier name length. 1309*0b459c2cSDavid du Colombier * patch.c (main): Use it for reject file name. 1310*0b459c2cSDavid du Colombier * common.h (ORIGEXT): Moved to patch.c. 1311*0b459c2cSDavid du Colombier * config.h.in (HAVE_PATHCONF): New macro. 1312*0b459c2cSDavid du Colombier * configure.in: Define it. 1313*0b459c2cSDavid du Colombier 1314*0b459c2cSDavid du Colombier * Makefile.in (dist): Use gzip, not compress. 1315*0b459c2cSDavid du Colombier 1316*0b459c2cSDavid du ColombierSat May 29 09:42:18 1993 Paul Eggert (eggert@twinsun.com) 1317*0b459c2cSDavid du Colombier 1318*0b459c2cSDavid du Colombier * patch.c (main): Use pathconf to decide reject file name. 1319*0b459c2cSDavid du Colombier * common.h (REJEXT): Remove. 1320*0b459c2cSDavid du Colombier 1321*0b459c2cSDavid du Colombier * inp.c (plan_a): Don't lock the checked-out file if `patch -o' 1322*0b459c2cSDavid du Colombier redirected the output elsewhere. 1323*0b459c2cSDavid du Colombier * common.h (CHECKOUT_LOCKED, GET_LOCKED): New macros. GET and 1324*0b459c2cSDavid du Colombier CHECKOUT now just checkout unlocked copies. 1325*0b459c2cSDavid du Colombier 1326*0b459c2cSDavid du ColombierFri May 28 08:44:50 1993 Paul Eggert (eggert@twinsun.com) 1327*0b459c2cSDavid du Colombier 1328*0b459c2cSDavid du Colombier * backupfile.c (basename): Define even if NODIR isn't defined. 1329*0b459c2cSDavid du Colombier * patch.c (main): Ask just once to apply a reversed patch. 1330*0b459c2cSDavid du Colombier 1331*0b459c2cSDavid du ColombierTue Nov 24 08:09:04 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) 1332*0b459c2cSDavid du Colombier 1333*0b459c2cSDavid du Colombier * config.h.in, common.h: Use HAVE_FCNTL_H and HAVE_STRING_H 1334*0b459c2cSDavid du Colombier instead of USG. 1335*0b459c2cSDavid du Colombier 1336*0b459c2cSDavid du Colombier * backupfile.c: Use SYSDIR and NDIR instead of USG. 1337*0b459c2cSDavid du Colombier Define direct as dirent, not vice-versa. 1338*0b459c2cSDavid du Colombier 1339*0b459c2cSDavid du ColombierWed Sep 16 17:11:48 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1340*0b459c2cSDavid du Colombier 1341*0b459c2cSDavid du Colombier * patch.c (get_some_switches): optc should be int, not char. 1342*0b459c2cSDavid du Colombier 1343*0b459c2cSDavid du ColombierTue Sep 15 00:36:46 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1344*0b459c2cSDavid du Colombier 1345*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12g8. 1346*0b459c2cSDavid du Colombier 1347*0b459c2cSDavid du ColombierMon Sep 14 22:01:23 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1348*0b459c2cSDavid du Colombier 1349*0b459c2cSDavid du Colombier * Makefile.in: Add uninstall target. 1350*0b459c2cSDavid du Colombier 1351*0b459c2cSDavid du Colombier * util.c (fatal, pfatal): Add some asterisks to make fatal 1352*0b459c2cSDavid du Colombier messages stand out more. 1353*0b459c2cSDavid du Colombier 1354*0b459c2cSDavid du ColombierTue Aug 25 22:13:36 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1355*0b459c2cSDavid du Colombier 1356*0b459c2cSDavid du Colombier * patch.c (main, get_some_switches), common.h, inp.c (plan_a, 1357*0b459c2cSDavid du Colombier plan_b), pch.c (there_is_another_patch): Add -t --batch 1358*0b459c2cSDavid du Colombier option, similar to -f --force. 1359*0b459c2cSDavid du Colombier 1360*0b459c2cSDavid du ColombierMon Jul 27 11:27:07 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1361*0b459c2cSDavid du Colombier 1362*0b459c2cSDavid du Colombier * common.h: Define SCCSDIFF and RCSDIFF. 1363*0b459c2cSDavid du Colombier * inp.c (plan_a): Use them to make sure it's safe to check out 1364*0b459c2cSDavid du Colombier the default RCS or SCCS version. 1365*0b459c2cSDavid du Colombier From Paul Eggert. 1366*0b459c2cSDavid du Colombier 1367*0b459c2cSDavid du ColombierMon Jul 20 14:10:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1368*0b459c2cSDavid du Colombier 1369*0b459c2cSDavid du Colombier * util.h: Declare basename. 1370*0b459c2cSDavid du Colombier * inp.c (plan_a), util.c (fetchname): Use it to isolate the 1371*0b459c2cSDavid du Colombier leading path when testing for RCS and SCCS files. 1372*0b459c2cSDavid du Colombier 1373*0b459c2cSDavid du ColombierFri Jul 10 16:03:23 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1374*0b459c2cSDavid du Colombier 1375*0b459c2cSDavid du Colombier * util.c (makedirs): Only make the directories that don't exist. 1376*0b459c2cSDavid du Colombier From chip@tct.com (Chip Salzenberg). 1377*0b459c2cSDavid du Colombier 1378*0b459c2cSDavid du ColombierWed Jul 8 01:20:56 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1379*0b459c2cSDavid du Colombier 1380*0b459c2cSDavid du Colombier * patch.c (main): Open ofp after checking for ed script. 1381*0b459c2cSDavid du Colombier Close ofp and rejfp before trying plan B. 1382*0b459c2cSDavid du Colombier From epang@sfu.ca (Eugene Pang). 1383*0b459c2cSDavid du Colombier 1384*0b459c2cSDavid du Colombier * util.c (fatal, pfatal): Print "patch: " before message. 1385*0b459c2cSDavid du Colombier * pch.c, inp.c, patch.c, util.c: Remove "patch: " from the 1386*0b459c2cSDavid du Colombier callers that had it. 1387*0b459c2cSDavid du Colombier 1388*0b459c2cSDavid du Colombier * common.h (myuid): New variable. 1389*0b459c2cSDavid du Colombier * patch.c (main): Initialize it. 1390*0b459c2cSDavid du Colombier * inp.c (myuid): Function removed. 1391*0b459c2cSDavid du Colombier (plan_a): Use the variable, not the function. 1392*0b459c2cSDavid du Colombier 1393*0b459c2cSDavid du Colombier * patch.c: Add back -E --remove-empty-files option. 1394*0b459c2cSDavid du Colombier 1395*0b459c2cSDavid du ColombierTue Jul 7 23:19:28 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1396*0b459c2cSDavid du Colombier 1397*0b459c2cSDavid du Colombier * inp.c (myuid): New function. 1398*0b459c2cSDavid du Colombier (plan_a): Call it. Optimize stat calls. Be smarter about 1399*0b459c2cSDavid du Colombier detecting checked out RCS and SCCS files. 1400*0b459c2cSDavid du Colombier From Paul Eggert (eggert@twinsun.com). 1401*0b459c2cSDavid du Colombier 1402*0b459c2cSDavid du Colombier * inp.c, util.c, patch.c: Don't bother checking for stat() > 0. 1403*0b459c2cSDavid du Colombier 1404*0b459c2cSDavid du ColombierMon Jul 6 13:01:52 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1405*0b459c2cSDavid du Colombier 1406*0b459c2cSDavid du Colombier * util.c (move_file): Use rename instead of link and copying. 1407*0b459c2cSDavid du Colombier 1408*0b459c2cSDavid du Colombier * util.c (pfatal): New function. 1409*0b459c2cSDavid du Colombier * util.h: Declare it and pfatal[1-4] macros. 1410*0b459c2cSDavid du Colombier * various files: Use it instead of fatal where appropriate. 1411*0b459c2cSDavid du Colombier 1412*0b459c2cSDavid du Colombier * common.h, patch.c: Replace Arg[cv]_last with optind_last. 1413*0b459c2cSDavid du Colombier 1414*0b459c2cSDavid du Colombier * patch.c (main, get_some_switches): Use getopt_long. Update 1415*0b459c2cSDavid du Colombier usage message. 1416*0b459c2cSDavid du Colombier (nextarg): Function removed. 1417*0b459c2cSDavid du Colombier 1418*0b459c2cSDavid du Colombier * Rename FLEXFILENAMES to HAVE_LONG_FILE_NAMES, 1419*0b459c2cSDavid du Colombier VOIDSIG to RETSIGTYPE. 1420*0b459c2cSDavid du Colombier 1421*0b459c2cSDavid du Colombier * backupfile.c, common.h: Use STDC header files if available. 1422*0b459c2cSDavid du Colombier backupfile.h: Declare get_version. 1423*0b459c2cSDavid du Colombier 1424*0b459c2cSDavid du Colombier * COPYING, COPYING.LIB, INSTALL, Makefile.in, alloca.c, 1425*0b459c2cSDavid du Colombier config.h.in, configure, configure.in, getopt.[ch], getopt1.c, 1426*0b459c2cSDavid du Colombier rename.c: New files. 1427*0b459c2cSDavid du Colombier * Configure, MANIFEST, Makefile.SH, config.H, config.h.SH, 1428*0b459c2cSDavid du Colombier malloc.c: Files removed. 1429*0b459c2cSDavid du Colombier 1430*0b459c2cSDavid du Colombier * version.c (version): Don't print the RCS stuff, since we're 1431*0b459c2cSDavid du Colombier not updating it regularly. 1432*0b459c2cSDavid du Colombier 1433*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u7. 1434*0b459c2cSDavid du Colombier 1435*0b459c2cSDavid du Colombier * Makefile.SH (dist): New target. 1436*0b459c2cSDavid du Colombier Makedist: File removed. 1437*0b459c2cSDavid du Colombier 1438*0b459c2cSDavid du Colombier * inp.c (plan_a): Check whether the user can write to the 1439*0b459c2cSDavid du Colombier file, not whether anyone can write to the file. 1440*0b459c2cSDavid du Colombier 1441*0b459c2cSDavid du ColombierSat Jul 4 00:06:58 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1442*0b459c2cSDavid du Colombier 1443*0b459c2cSDavid du Colombier * inp.c (plan_a): Try to check out read-only files from RCS or SCCS. 1444*0b459c2cSDavid du Colombier 1445*0b459c2cSDavid du Colombier * util.c (move_file): If backing up by linking fails, try copying. 1446*0b459c2cSDavid du Colombier From cek@sdc.boeing.com (Conrad Kimball). 1447*0b459c2cSDavid du Colombier 1448*0b459c2cSDavid du Colombier * patch.c (get_some_switches): Eliminate -E option; always 1449*0b459c2cSDavid du Colombier remove empty output files. 1450*0b459c2cSDavid du Colombier 1451*0b459c2cSDavid du Colombier * util.c (fetchname): Only undo slash removal for relative 1452*0b459c2cSDavid du Colombier paths if -p was not given. 1453*0b459c2cSDavid du Colombier 1454*0b459c2cSDavid du Colombier * Makefile.sh: Add mostlyclean target. 1455*0b459c2cSDavid du Colombier 1456*0b459c2cSDavid du ColombierFri Jul 3 23:48:14 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) 1457*0b459c2cSDavid du Colombier 1458*0b459c2cSDavid du Colombier * util.c (fetchname): Accept whitespace between `Index:' and filename. 1459*0b459c2cSDavid du Colombier Also plug a small memory leak for diffs against /dev/null. 1460*0b459c2cSDavid du Colombier From eggert@twinsun.com (Paul Eggert). 1461*0b459c2cSDavid du Colombier 1462*0b459c2cSDavid du Colombier * common.h: Don't define TRUE and FALSE if already defined. 1463*0b459c2cSDavid du Colombier From phk@data.fls.dk (Poul-Henning Kamp). 1464*0b459c2cSDavid du Colombier 1465*0b459c2cSDavid du ColombierWed Apr 29 10:19:33 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) 1466*0b459c2cSDavid du Colombier 1467*0b459c2cSDavid du Colombier * backupfile.c (get_version): Exit if given a bad backup type. 1468*0b459c2cSDavid du Colombier 1469*0b459c2cSDavid du ColombierFri Mar 27 09:57:14 1992 Karl Berry (karl at hayley) 1470*0b459c2cSDavid du Colombier 1471*0b459c2cSDavid du Colombier * common.h (S_ISDIR, S_ISREG): define these. 1472*0b459c2cSDavid du Colombier * inp.c (plan_a): use S_ISREG, not S_IFREG. 1473*0b459c2cSDavid du Colombier * util.c (fetchname): use S_ISDIR, not S_IFDIR. 1474*0b459c2cSDavid du Colombier 1475*0b459c2cSDavid du ColombierMon Mar 16 14:10:42 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) 1476*0b459c2cSDavid du Colombier 1477*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u6. 1478*0b459c2cSDavid du Colombier 1479*0b459c2cSDavid du ColombierSat Mar 14 13:13:29 1992 David J. MacKenzie (djm at frob.eng.umd.edu) 1480*0b459c2cSDavid du Colombier 1481*0b459c2cSDavid du Colombier * Configure, config.h.SH: Check for directory header and unistd.h. 1482*0b459c2cSDavid du Colombier 1483*0b459c2cSDavid du Colombier * patch.c (main): If -E was given and output file is empty after 1484*0b459c2cSDavid du Colombier patching, remove it. 1485*0b459c2cSDavid du Colombier (get_some_switches): Recognize -E option. 1486*0b459c2cSDavid du Colombier 1487*0b459c2cSDavid du Colombier * patch.c (copy_till): Make garbled output an error, not a warning 1488*0b459c2cSDavid du Colombier that doesn't change the exit status. 1489*0b459c2cSDavid du Colombier 1490*0b459c2cSDavid du Colombier * common.h: Protect against system declarations of malloc and realloc. 1491*0b459c2cSDavid du Colombier 1492*0b459c2cSDavid du Colombier * Makedist: Add backupfile.[ch]. 1493*0b459c2cSDavid du Colombier 1494*0b459c2cSDavid du Colombier * Configure: Look for C library where NeXT and SVR4 put it. 1495*0b459c2cSDavid du Colombier Look in /usr/ucb after /bin and /usr/bin for utilities, 1496*0b459c2cSDavid du Colombier and look in /usr/ccs/bin, to make SVR4 happier. 1497*0b459c2cSDavid du Colombier Recognize m68k predefine. 1498*0b459c2cSDavid du Colombier 1499*0b459c2cSDavid du Colombier * util.c (fetchname): Test of stat return value was backward. 1500*0b459c2cSDavid du Colombier From csss@scheme.cs.ubc.ca. 1501*0b459c2cSDavid du Colombier 1502*0b459c2cSDavid du Colombier * version.c (version): Exit with status 0, not 1. 1503*0b459c2cSDavid du Colombier 1504*0b459c2cSDavid du Colombier * Makefile.SH: Add backupfile.[cho]. 1505*0b459c2cSDavid du Colombier * patch.c (main): Initialize backup file generation. 1506*0b459c2cSDavid du Colombier (get_some_switches): Add -V option. 1507*0b459c2cSDavid du Colombier * common.h, util,c, patch.c: Replace origext with simple_backup_suffix. 1508*0b459c2cSDavid du Colombier * util.c (move_file): Use find_backup_file_name. 1509*0b459c2cSDavid du Colombier 1510*0b459c2cSDavid du ColombierTue Dec 3 11:27:16 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) 1511*0b459c2cSDavid du Colombier 1512*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u5. 1513*0b459c2cSDavid du Colombier 1514*0b459c2cSDavid du Colombier * Makefile.SH: Change clean, distclean, and realclean targets a 1515*0b459c2cSDavid du Colombier little so they agree with the GNU coding standards. 1516*0b459c2cSDavid du Colombier Add Makefile to addedbyconf, so distclean removes it. 1517*0b459c2cSDavid du Colombier 1518*0b459c2cSDavid du Colombier * Configure: Recognize Domain/OS C library in /lib/libc. 1519*0b459c2cSDavid du Colombier From mmuegel@mot.com (Michael S. Muegel). 1520*0b459c2cSDavid du Colombier 1521*0b459c2cSDavid du Colombier * pch.c: Fixes from Wayne Davison: 1522*0b459c2cSDavid du Colombier Patch now accepts no-context context diffs that are 1523*0b459c2cSDavid du Colombier specified with an assumed one line hunk (e.g. "*** 10 ****"). 1524*0b459c2cSDavid du Colombier Fixed a bug in both context and unified diff processing that would 1525*0b459c2cSDavid du Colombier put a zero-context hunk in the wrong place (one line too soon). 1526*0b459c2cSDavid du Colombier Fixed a minor problem with p_max in unified diffs where it would 1527*0b459c2cSDavid du Colombier set p_max to hunkmax unnecessarily (the only adverse effect was to 1528*0b459c2cSDavid du Colombier not supply empty lines at eof by assuming they were truncated). 1529*0b459c2cSDavid du Colombier 1530*0b459c2cSDavid du ColombierTue Jul 2 03:25:51 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) 1531*0b459c2cSDavid du Colombier 1532*0b459c2cSDavid du Colombier * Configure: Check for signal declaration in 1533*0b459c2cSDavid du Colombier /usr/include/sys/signal.h as well as /usr/include/signal.h. 1534*0b459c2cSDavid du Colombier 1535*0b459c2cSDavid du Colombier * Configure, common.h, config.h.SH: Comment out the sprintf 1536*0b459c2cSDavid du Colombier declaration and tests to determine its return value type. It 1537*0b459c2cSDavid du Colombier conflicts with ANSI C systems' prototypes in stdio.h and the 1538*0b459c2cSDavid du Colombier return value of sprintf is never used anyway -- it's always cast 1539*0b459c2cSDavid du Colombier to void. 1540*0b459c2cSDavid du Colombier 1541*0b459c2cSDavid du ColombierThu Jun 27 13:05:32 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) 1542*0b459c2cSDavid du Colombier 1543*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u4. 1544*0b459c2cSDavid du Colombier 1545*0b459c2cSDavid du ColombierThu Feb 21 15:18:14 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 1546*0b459c2cSDavid du Colombier 1547*0b459c2cSDavid du Colombier * pch.c (another_hunk): Fix off by 1 error. From 1548*0b459c2cSDavid du Colombier iverson@xstor.com (Tim Iverson). 1549*0b459c2cSDavid du Colombier 1550*0b459c2cSDavid du ColombierSun Jan 20 20:18:58 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 1551*0b459c2cSDavid du Colombier 1552*0b459c2cSDavid du Colombier * Makefile.SH (all): Don't make a dummy `all' file. 1553*0b459c2cSDavid du Colombier 1554*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u3. 1555*0b459c2cSDavid du Colombier 1556*0b459c2cSDavid du Colombier * patch.c (nextarg): New function. 1557*0b459c2cSDavid du Colombier (get_some_switches): Use it, to prevent dereferencing a null 1558*0b459c2cSDavid du Colombier pointer if an option that takes an arg is not given one (is last 1559*0b459c2cSDavid du Colombier on the command line). From Paul Eggert. 1560*0b459c2cSDavid du Colombier 1561*0b459c2cSDavid du Colombier * pch.c (another_hunk): Fix from Wayne Davison to recognize 1562*0b459c2cSDavid du Colombier single-line hunks in unified diffs (with a single line number 1563*0b459c2cSDavid du Colombier instead of a range). 1564*0b459c2cSDavid du Colombier 1565*0b459c2cSDavid du Colombier * inp.c (rev_in_string): Don't use `s' before defining it. From 1566*0b459c2cSDavid du Colombier Wayne Davison. 1567*0b459c2cSDavid du Colombier 1568*0b459c2cSDavid du ColombierMon Jan 7 06:25:11 1991 David J. MacKenzie (djm at geech.ai.mit.edu) 1569*0b459c2cSDavid du Colombier 1570*0b459c2cSDavid du Colombier * patchlevel.h: PATCHLEVEL 12u2. 1571*0b459c2cSDavid du Colombier 1572*0b459c2cSDavid du Colombier * pch.c (intuit_diff_type): Recognize `+++' in diff headers, for 1573*0b459c2cSDavid du Colombier unified diff format. From unidiff patch 1. 1574*0b459c2cSDavid du Colombier 1575*0b459c2cSDavid du ColombierMon Dec 3 00:14:25 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 1576*0b459c2cSDavid du Colombier 1577*0b459c2cSDavid du Colombier * patch.c (get_some_switches): Make the usage message more 1578*0b459c2cSDavid du Colombier informative. 1579*0b459c2cSDavid du Colombier 1580*0b459c2cSDavid du ColombierSun Dec 2 23:20:18 1990 David J. MacKenzie (djm at albert.ai.mit.edu) 1581*0b459c2cSDavid du Colombier 1582*0b459c2cSDavid du Colombier * Configure: When checking for C preprocessor, look for 'abc.*xyz' 1583*0b459c2cSDavid du Colombier instead of 'abc.xyz', so ANSI C preprocessors work. 1584*0b459c2cSDavid du Colombier 1585*0b459c2cSDavid du Colombier * Apply fix for -D from ksb@mentor.cc.purdue.edu (Kevin Braunsdorf). 1586*0b459c2cSDavid du Colombier 1587*0b459c2cSDavid du Colombier1990-05-01 Wayne Davison <davison@dri.com> 1588*0b459c2cSDavid du Colombier * patch.c, pch.c: unidiff support added 1589*0b459c2cSDavid du Colombier 1590*0b459c2cSDavid du ColombierWed Mar 7 23:47:25 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) 1591*0b459c2cSDavid du Colombier 1592*0b459c2cSDavid du Colombier * pch.c: Call malformed instead of goto malformed 1593*0b459c2cSDavid du Colombier (just allows easier debugging). 1594*0b459c2cSDavid du Colombier 1595*0b459c2cSDavid du ColombierTue Jan 23 21:27:00 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) 1596*0b459c2cSDavid du Colombier 1597*0b459c2cSDavid du Colombier * common.h (TMP*NAME): Make these char *, not char []. 1598*0b459c2cSDavid du Colombier patch.c (main): Use TMPDIR (if present) to set TMP*NAME. 1599*0b459c2cSDavid du Colombier common.h: Declare getenv. 1600*0b459c2cSDavid du Colombier 1601*0b459c2cSDavid du ColombierSun Dec 17 17:29:48 1989 Jim Kingdon (kingdon at hobbes.ai.mit.edu) 1602*0b459c2cSDavid du Colombier 1603*0b459c2cSDavid du Colombier * patch.c (reverse_flag_specified): New variable. 1604*0b459c2cSDavid du Colombier (get_some_switches, reinitialize_almost_everything): Use it. 1605*0b459c2cSDavid du Colombier 1606*0b459c2cSDavid du Colombier1988-06-22 Larry Wall <sdcrdcf!lwall> 1607*0b459c2cSDavid du Colombier patch12: 1608*0b459c2cSDavid du Colombier * common.h: sprintf was declared wrong 1609*0b459c2cSDavid du Colombier * patch.c: rindex() wasn't declared 1610*0b459c2cSDavid du Colombier * patch.man: now avoids Bell System Logo 1611*0b459c2cSDavid du Colombier 1612*0b459c2cSDavid du Colombier1988-06-03 Larry Wall <sdcrdcf!lwall> 1613*0b459c2cSDavid du Colombier patch10: 1614*0b459c2cSDavid du Colombier * common.h: support for shorter extensions. 1615*0b459c2cSDavid du Colombier * inp.c: made a little smarter about sccs files 1616*0b459c2cSDavid du Colombier * patch.c: exit code improved. 1617*0b459c2cSDavid du Colombier better support for non-flexfilenames. 1618*0b459c2cSDavid du Colombier * patch.man: -B switch was contributed. 1619*0b459c2cSDavid du Colombier * pch.c: Can now find patches in shar scripts. 1620*0b459c2cSDavid du Colombier Hunks that swapped and then swapped back could core dump. 1621*0b459c2cSDavid du Colombier 1622*0b459c2cSDavid du Colombier1987-06-04 Larry Wall <sdcrdcf!lwall> 1623*0b459c2cSDavid du Colombier * pch.c: pch_swap didn't swap p_bfake and p_efake. 1624*0b459c2cSDavid du Colombier 1625*0b459c2cSDavid du Colombier1987-02-16 Larry Wall <sdcrdcf!lwall> 1626*0b459c2cSDavid du Colombier * patch.c: Short replacement caused spurious "Out of sync" message. 1627*0b459c2cSDavid du Colombier 1628*0b459c2cSDavid du Colombier1987-01-30 Larry Wall <sdcrdcf!lwall> 1629*0b459c2cSDavid du Colombier * patch.c: Improved diagnostic on sync error. 1630*0b459c2cSDavid du Colombier Moved do_ed_script() to pch.c. 1631*0b459c2cSDavid du Colombier * pch.c: Improved responses to mangled patches. 1632*0b459c2cSDavid du Colombier * pch.h: Added do_ed_script(). 1633*0b459c2cSDavid du Colombier 1634*0b459c2cSDavid du Colombier1987-01-05 Larry Wall <sdcrdcf!lwall> 1635*0b459c2cSDavid du Colombier * pch.c: New-style context diffs caused double call to free(). 1636*0b459c2cSDavid du Colombier 1637*0b459c2cSDavid du Colombier1986-11-21 Larry Wall <sdcrdcf!lwall> 1638*0b459c2cSDavid du Colombier * patch.c: Fuzz factor caused offset of installed lines. 1639*0b459c2cSDavid du Colombier 1640*0b459c2cSDavid du Colombier1986-11-14 Larry Wall <sdcrdcf!lwall> 1641*0b459c2cSDavid du Colombier * pch.c: Fixed problem where a long pattern wouldn't grow the hunk. 1642*0b459c2cSDavid du Colombier Also restored p_input_line when backtracking so error messages are 1643*0b459c2cSDavid du Colombier right. 1644*0b459c2cSDavid du Colombier 1645*0b459c2cSDavid du Colombier1986-11-03 Larry Wall <sdcrdcf!lwall> 1646*0b459c2cSDavid du Colombier * pch.c: New-style delete triggers spurious assertion error. 1647*0b459c2cSDavid du Colombier 1648*0b459c2cSDavid du Colombier1986-10-29 Larry Wall <sdcrdcf!lwall> 1649*0b459c2cSDavid du Colombier * patch.c: Backwards search could terminate prematurely. 1650*0b459c2cSDavid du Colombier * pch.c: Could falsely report new-style context diff. 1651*0b459c2cSDavid du Colombier 1652*0b459c2cSDavid du Colombier1986-09-17 Larry Wall <sdcrdcf!lwall> 1653*0b459c2cSDavid du Colombier * common.h, inp.c, inp.h, patch.c, patch.man, pch.c, pch.h, 1654*0b459c2cSDavid du Colombier util.h, version.c, version.h: Baseline for netwide release. 1655*0b459c2cSDavid du Colombier 1656*0b459c2cSDavid du Colombier1986-08-01 Larry Wall <sdcrdcf!lwall> 1657*0b459c2cSDavid du Colombier * patch.c: Fixes for machines that can't vararg. 1658*0b459c2cSDavid du Colombier Added fuzz factor. Generalized -p. General cleanup. 1659*0b459c2cSDavid du Colombier Changed some %d's to %ld's. Linted. 1660*0b459c2cSDavid du Colombier * patch.man: Documented -v, -p, -F. 1661*0b459c2cSDavid du Colombier Added notes to patch senders. 1662*0b459c2cSDavid du Colombier 1663*0b459c2cSDavid du Colombier1985-08-15 van%ucbmonet@berkeley 1664*0b459c2cSDavid du Colombier Changes for 4.3bsd diff -c. 1665*0b459c2cSDavid du Colombier 1666*0b459c2cSDavid du Colombier1985-03-26 Larry Wall <sdcrdcf!lwall> 1667*0b459c2cSDavid du Colombier * patch.c: Frozen. 1668*0b459c2cSDavid du Colombier * patch.man: Frozen. 1669*0b459c2cSDavid du Colombier 1670*0b459c2cSDavid du Colombier1985-03-12 Larry Wall <sdcrdcf!lwall> 1671*0b459c2cSDavid du Colombier * patch.c: Now checks for normalness of file to patch. 1672*0b459c2cSDavid du Colombier Check i_ptr and i_womp to make sure they aren't null before freeing. 1673*0b459c2cSDavid du Colombier Also allow ed output to be suppressed. 1674*0b459c2cSDavid du Colombier Changed pfp->_file to fileno(pfp). 1675*0b459c2cSDavid du Colombier Added -p option from jromine@uci-750a. 1676*0b459c2cSDavid du Colombier Added -D (#ifdef) option from joe@fluke. 1677*0b459c2cSDavid du Colombier * patch.man: Documented -p, -D. 1678*0b459c2cSDavid du Colombier 1679*0b459c2cSDavid du Colombier1984-12-06 Larry Wall <sdcrdcf!lwall> 1680*0b459c2cSDavid du Colombier * patch.c: Made smarter about SCCS subdirectories. 1681*0b459c2cSDavid du Colombier 1682*0b459c2cSDavid du Colombier1984-12-05 Larry Wall <sdcrdcf!lwall> 1683*0b459c2cSDavid du Colombier * patch.c: Added -l switch to do loose string comparison. 1684*0b459c2cSDavid du Colombier * patch.man: Added -l switch, and noted bistability bug. 1685*0b459c2cSDavid du Colombier 1686*0b459c2cSDavid du Colombier1984-12-04 Larry Wall <sdcrdcf!lwall> 1687*0b459c2cSDavid du Colombier Branch for sdcrdcf changes. 1688*0b459c2cSDavid du Colombier * patch.c: Failed hunk count not reset on multiple patch file. 1689*0b459c2cSDavid du Colombier * patch.man: Baseline version. 1690*0b459c2cSDavid du Colombier 1691*0b459c2cSDavid du Colombier1984-11-29 Larry Wall <sdcrdcf!lwall> 1692*0b459c2cSDavid du Colombier * patch.c: Linted. Identifiers uniquified. Fixed i_ptr malloc() bug. 1693*0b459c2cSDavid du Colombier Fixed multiple calls to mktemp(). Will now work on machines that can 1694*0b459c2cSDavid du Colombier only read 32767 chars. Added -R option for diffs with new and old 1695*0b459c2cSDavid du Colombier swapped. Various cosmetic changes. 1696*0b459c2cSDavid du Colombier 1697*0b459c2cSDavid du Colombier1984-11-09 Larry Wall <sdcrdcf!lwall> 1698*0b459c2cSDavid du Colombier * patch.c: Initial revision 1699*0b459c2cSDavid du Colombier 1700*0b459c2cSDavid du ColombierLocal Variables: 1701*0b459c2cSDavid du Colombiermode: indented-text 1702*0b459c2cSDavid du Colombierleft-margin: 8 1703*0b459c2cSDavid du Colombierversion-control: never 1704*0b459c2cSDavid du Colombierend: 1705