diff options
author | peter <peter@FreeBSD.org> | 2000-10-02 06:33:59 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-10-02 06:33:59 +0000 |
commit | 590c411955d6975551ffeaf41d7faf4b26f836d1 (patch) | |
tree | c2ec0b150478a3cab9fb18e60d02dedbdc1cfd15 /contrib/cvs/diff | |
parent | 784ea5066cbea73d04e8ce5783dd0eb842e3ac1f (diff) | |
download | FreeBSD-src-590c411955d6975551ffeaf41d7faf4b26f836d1.zip FreeBSD-src-590c411955d6975551ffeaf41d7faf4b26f836d1.tar.gz |
Import cvs-1.11 onto vendor branch.
Diffstat (limited to 'contrib/cvs/diff')
-rw-r--r-- | contrib/cvs/diff/ChangeLog | 30 | ||||
-rw-r--r-- | contrib/cvs/diff/diff.c | 43 | ||||
-rw-r--r-- | contrib/cvs/diff/diff3.c | 10 | ||||
-rw-r--r-- | contrib/cvs/diff/util.c | 2 |
4 files changed, 59 insertions, 26 deletions
diff --git a/contrib/cvs/diff/ChangeLog b/contrib/cvs/diff/ChangeLog index a435182..e3272e8 100644 --- a/contrib/cvs/diff/ChangeLog +++ b/contrib/cvs/diff/ChangeLog @@ -1,3 +1,33 @@ +2000-08-03 Larry Jones <larry.jones@sdrc.com> + + * diff3.c (read_diff): Use cvs_temp_name () instead of tmpnam () so + there's at least a chance of getting the file in the correct tmp dir. + +2000-07-10 Larry Jones <larry.jones@sdrc.com> + + * util.c (printf_output): Fix type clashes. + +2000-06-15 Larry Jones <larry.jones@sdrc.com> + + * diff3.c (diff3_run, make_3way_diff): Plug memory leaks. + +1999-12-29 Jim Kingdon <http://developer.redhat.com/> + + * diff.c (compare_files): Use explicit braces with if-if-else, per + GNU coding standards and gcc -Wall. + +1999-11-23 Larry Jones <larry.jones@sdrc.com> + + * diff3.c: Explicitly initialize zero_diff3 to placate neurotic + compilers that gripe about implicitly initialized const variables. + Reported by Eric Veum <sysv@yahoo.com>. + +1999-09-15 Larry Jones <larry.jones@sdrc.com> + + * diff.c (diff_run): Move the setjmp call before the options + processing since option errors can call fatal which in turn + calls longjmp. + 1999-05-06 Jim Kingdon <http://www.cyclic.com> * Makefile.in (DISTFILES): Remove libdiff.mak. diff --git a/contrib/cvs/diff/diff.c b/contrib/cvs/diff/diff.c index e5f7e42..aa91913 100644 --- a/contrib/cvs/diff/diff.c +++ b/contrib/cvs/diff/diff.c @@ -247,11 +247,21 @@ diff_run (argc, argv, out, callbacks_arg) /* Do our initializations. */ initialize_main (&argc, &argv); - - /* Decode the options. */ - optind_old = optind; optind = 0; + + /* Set the jump buffer, so that diff may abort execution without + terminating the process. */ + val = setjmp (diff_abort_buf); + if (val != 0) + { + optind = optind_old; + if (opened_file) + fclose (outfile); + return val; + } + + /* Decode the options. */ while ((c = getopt_long (argc, argv, "0123456789abBcC:dD:efF:hHiI:lL:nNpPqrsS:tTuU:vwW:x:X:y", longopts, 0)) != EOF) @@ -686,17 +696,6 @@ diff_run (argc, argv, out, callbacks_arg) } } - /* Set the jump buffer, so that diff may abort execution without - terminating the process. */ - val = setjmp (diff_abort_buf); - if (val != 0) - { - optind = optind_old; - if (opened_file) - fclose (outfile); - return val; - } - val = compare_files (0, argv[optind], 0, argv[optind + 1], 0); /* Print any messages that were saved up for last. */ @@ -1147,13 +1146,15 @@ compare_files (dir0, name0, dir1, name1, depth) failed = 1; } if (inf[1].desc == -2) - if (same_files) - inf[1].desc = inf[0].desc; - else if ((inf[1].desc = open (inf[1].name, O_RDONLY, 0)) < 0) - { - perror_with_name (inf[1].name); - failed = 1; - } + { + if (same_files) + inf[1].desc = inf[0].desc; + else if ((inf[1].desc = open (inf[1].name, O_RDONLY, 0)) < 0) + { + perror_with_name (inf[1].name); + failed = 1; + } + } #if HAVE_SETMODE if (binary_I_O) diff --git a/contrib/cvs/diff/diff3.c b/contrib/cvs/diff/diff3.c index e3be150..2f05d16 100644 --- a/contrib/cvs/diff/diff3.c +++ b/contrib/cvs/diff/diff3.c @@ -41,6 +41,8 @@ void printf_output PARAMS((char const *, ...)) ; void flush_output PARAMS((void)); +char * cvs_temp_name PARAMS((void)); + /* * Internal data structures and macros for the diff3 program; includes * data structures for both diff3 diffs and normal diffs. @@ -475,8 +477,6 @@ diff3_run (argc, argv, out, callbacks_arg) free(content0); free(content1); - free_diff_blocks(thread0); - free_diff_blocks(thread1); free_diff3_blocks(diff3); if (! callbacks || ! callbacks->write_output) @@ -676,7 +676,7 @@ make_3way_diff (thread0, thread1) struct diff3_block const *last_diff3; - static struct diff3_block const zero_diff3; + static struct diff3_block const zero_diff3 = { 0 }; /* Initialization */ result = 0; @@ -765,6 +765,8 @@ make_3way_diff (thread0, thread1) tmpblock = using_to_diff3_block (using, last_using, base_water_thread, high_water_thread, last_diff3); + free_diff_blocks(using[0]); + free_diff_blocks(using[1]); if (!tmpblock) diff3_fatal ("internal error: screwup in format of diff blocks"); @@ -1274,7 +1276,7 @@ read_diff (filea, fileb, output_placement) *ap++ = fileb; *ap = 0; - diffout = tmpnam(NULL); + diffout = cvs_temp_name (); outfile_hold = outfile; callbacks_hold = callbacks; diff --git a/contrib/cvs/diff/util.c b/contrib/cvs/diff/util.c index c4d2d71..ff9cceb 100644 --- a/contrib/cvs/diff/util.c +++ b/contrib/cvs/diff/util.c @@ -366,7 +366,7 @@ printf_output (format, va_alist) char *str; int num; int ch; - unsigned char buf[100]; + char buf[100]; while ((q = strchr (p, '%')) != NULL) { |