Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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