[gnu.utils.bug] GNU DIFF3 1.10 lint fixes

eggert@twinsun.com (Paul Eggert) (11/11/89)

This is a companion to "GNU diff 1.10 runtime and lint fixes".  The Makefile
chicanery prevents -Ddiff from screwing up diff3.c, which has many variables
named 'diff'.  There are only lint fixes here, because Saber C didn't handle
diff3's subprocesses.

===================================================================
RCS file: RCS/Makefile,v
retrieving revision 1.1
diff -c -r1.1 Makefile
*** /tmp/,RCSt1a22748	Fri Nov 10 13:57:39 1989
--- Makefile	Fri Nov 10 13:56:18 1989
***************
*** 21,32 ****
  # You can compile this with ordinary cc as well,
  # but gcc makes it faster.
  # Also, gcc supports -O and -g together.
! CC=gcc -O
! CFLAGS = -g
  INSTALL = install
  
  # On system V, enable these three lines:
! # CFLAGS = -g -DUSG
  # LIBS = -lPW
  # INSTALL = cp
  # (If you compile with GCC, you don't need to define LIBS.)
--- 21,32 ----
  # You can compile this with ordinary cc as well,
  # but gcc makes it faster.
  # Also, gcc supports -O and -g together.
! CC=gcc -O -g
! CFLAGS = -Ddiff
  INSTALL = install
  
  # On system V, enable these three lines:
! # CFLAGS = -DUSG
  # LIBS = -lPW
  # INSTALL = cp
  # (If you compile with GCC, you don't need to define LIBS.)
***************
*** 61,67 ****
  $(archpfx)context.o $(archpfx)diff.o: regex.h
  
  $(archpfx)diff3.o: diff3.c
! 	$(CC) -c $(CFLAGS) -DDIFF_PROGRAM=\"$(bindir)/diff\" diff3.c \
   $(OUTPUT_OPTION)
  
  clean:
--- 61,67 ----
  $(archpfx)context.o $(archpfx)diff.o: regex.h
  
  $(archpfx)diff3.o: diff3.c
! 	$(CC) -c -DDIFF_PROGRAM=\"$(bindir)/diff\" diff3.c \
   $(OUTPUT_OPTION)
  
  clean:
===================================================================
RCS file: RCS/diff3.c,v
retrieving revision 1.1
diff -c -r1.1 diff3.c
*** /tmp/,RCSt1a22748	Fri Nov 10 13:57:40 1989
--- diff3.c	Fri Nov 10 13:56:20 1989
***************
*** 200,206 ****
  struct diff3_block *create_diff3_block ();
  int compare_line_list ();
  
! int read_diff ();
  enum diff_type process_diff_control ();
  char *scan_diff_line ();
  
--- 200,207 ----
  struct diff3_block *create_diff3_block ();
  int compare_line_list ();
  
! unsigned myread ();
! unsigned read_diff ();
  enum diff_type process_diff_control ();
  char *scan_diff_line ();
  
***************
*** 309,315 ****
    diff = make_3way_diff (thread1, thread2);
    if (edscript)
      output_diff3_edscript (stdout, diff, mapping, argv[optind],
! 			   argv[optind + 1], argv[optind + 2]);
    else
      output_diff3 (stdout, diff, mapping);
  
--- 310,316 ----
    diff = make_3way_diff (thread1, thread2);
    if (edscript)
      output_diff3_edscript (stdout, diff, mapping, argv[optind],
! 			   argv[optind + 2]);
    else
      output_diff3 (stdout, diff, mapping);
  
***************
*** 425,432 ****
      *current[2];
  
    int
!     high_water_mark,
!     base_water_mark;
  
    int
      high_water_thread,
--- 426,432 ----
      *current[2];
  
    int
!     high_water_mark;
  
    int
      high_water_thread,
***************
*** 476,484 ****
        
        high_water_diff = current[high_water_thread];
  	
-       /* low and high waters start off same diff */
-       base_water_mark = D_LOWLINE (high_water_diff, FILE0);
- 
        high_water_mark = D_HIGHLINE (high_water_diff, FILE0);
  
        /* Make the diff you just got info from into the using class */
--- 476,481 ----
***************
*** 588,596 ****
    struct diff3_block *result;
    struct diff_block *ptr;
    int i;
-   int current_line;
-   struct diff_block *last_block;
-   char **result_line_ptr;
    int current0line;
    
    /* Find the range in file0 */
--- 585,590 ----
***************
*** 893,899 ****
   * Routines to input and parse two way diffs.
   */
  
! extern char *environ;		/* I hope this is here */
  
  #define	DIFF_CHUNK_SIZE	10000
  
--- 887,893 ----
   * Routines to input and parse two way diffs.
   */
  
! extern char **environ;		/* I hope this is here */
  
  #define	DIFF_CHUNK_SIZE	10000
  
***************
*** 902,908 ****
       char *filea, *fileb;
  {
    char *diff_contents;
!   int diff_size;
    char *scan_diff;
    enum diff_type dt;
    int i;
--- 896,902 ----
       char *filea, *fileb;
  {
    char *diff_contents;
!   unsigned diff_size;
    char *scan_diff;
    enum diff_type dt;
    int i;
***************
*** 1023,1029 ****
       struct diff_block *db;
  {
    char *s = *string;
-   int done = 0;
    int holdnum;
    enum diff_type type;
  
--- 1017,1022 ----
***************
*** 1093,1099 ****
    return type;
  }
  
! int
  read_diff (filea, fileb, output_placement)
       char *filea, *fileb;
       char **output_placement;
--- 1086,1092 ----
    return type;
  }
  
! unsigned
  read_diff (filea, fileb, output_placement)
       char *filea, *fileb;
       char **output_placement;
***************
*** 1101,1110 ****
    char *argv[4];
    int fds[2];
    char *diff_result;
!   long current_chunk_size;
!   int bytes;
!   char *buffer_ptr;
!   int total;
  
    argv[0] = diff_program;
    argv[1] = filea;
--- 1094,1102 ----
    char *argv[4];
    int fds[2];
    char *diff_result;
!   unsigned current_chunk_size;
!   unsigned bytes;
!   unsigned total;
  
    argv[0] = diff_program;
    argv[1] = filea;
***************
*** 1192,1198 ****
  {
    int rev_mapping[3];
    static int eliminate[3] = { 1, 0, 0};
!   int i, j;
    int oddoneout;
    char *cp;
    struct diff3_block *ptr;
--- 1184,1190 ----
  {
    int rev_mapping[3];
    static int eliminate[3] = { 1, 0, 0};
!   int i;
    int oddoneout;
    char *cp;
    struct diff3_block *ptr;
***************
*** 1289,1299 ****
   * routine pays attention to.
   */
  void
! output_diff3_edscript (outputfile, diff, mapping, file0, file1, file2)
       FILE *outputfile;
       struct diff3_block *diff;
       int mapping[3];
!      char *file0, *file1, *file2;
  {
    int rev_mapping[3];
    int i;
--- 1281,1291 ----
   * routine pays attention to.
   */
  void
! output_diff3_edscript (outputfile, diff, mapping, file0, file2)
       FILE *outputfile;
       struct diff3_block *diff;
       int mapping[3];
!      char *file0, *file2;
  {
    int rev_mapping[3];
    int i;
***************
*** 1441,1462 ****
    return prev;
  }
  
! int
  myread (fd, ptr, size)
!      int fd, size;
       char *ptr;
  {
!   int result = read (fd, ptr, size);
    if (result < 0)
      perror_with_exit ("Read failed");
!   return result;
  }
  
  void *
  xmalloc (size)
!      int size;
  {
!   void *result = (void *) malloc (size);
    if (!result)
      fatal ("Malloc failed");
    return result;
--- 1433,1456 ----
    return prev;
  }
  
! unsigned
  myread (fd, ptr, size)
!      int fd;
       char *ptr;
+ 	 unsigned size;
  {
!   int result = read (fd, ptr, (int)size);
    if (result < 0)
      perror_with_exit ("Read failed");
!   return (unsigned)result;
  }
  
  void *
  xmalloc (size)
!      unsigned size;
  {
!   extern void *malloc();
!   void *result = malloc (size);
    if (!result)
      fatal ("Malloc failed");
    return result;
***************
*** 1465,1473 ****
  void *
  xrealloc (ptr, size)
       void *ptr;
!      int size;
  {
!   void *result = (void *) realloc (ptr, size);
    if (!result)
      fatal ("Malloc failed");
    return result;
--- 1459,1468 ----
  void *
  xrealloc (ptr, size)
       void *ptr;
!      unsigned size;
  {
!   extern void *realloc();
!   void *result = realloc (ptr, size);
    if (!result)
      fatal ("Malloc failed");
    return result;
***************
*** 1483,1488 ****
--- 1478,1484 ----
  perror_with_exit (string)
       char *string;
  {
+   extern void perror ();
    perror (string);
    exit (1);
  }