rem: static int first = 1; static int prev_pair_equal = 0;
add: static bool first = true; static bool prev_pair_equal = false;
context: write_block (uintmax_t current_offset, size_t n_bytes,	     const char *prev_block, const char *curr_block){  static int first = 1;  static int prev_pair_equal = 0;#define EQUAL_BLOCKS(b1, b2) (memcmp ((b1), (b2), bytes_per_block) == 0)  if (abbreviate_duplicate_blocks      && !first && n_bytes == bytes_per_block      && EQUAL_BLOCKS (prev_block, curr_block))    {      if (prev_pair_equal)	{	  /* The two preceding blocks were equal, and the current	     block is the same as the last one, so print nothing.  */	}      else	{	  printf ("*\n");	  prev_pair_equal = 1;	}    }  else    {      size_t i;      prev_pair_equal = 0;      for (i = 0; i < n_specs; i++)	{	  if (i == 0)	    format_address (current_offset, '\0');	  else	    printf ("%*s", address_pad_len, "");	  (*spec[i].print_function) (n_bytes, curr_block, spec[i].fmt_string);	  if (spec[i].hexl_mode_trailer)	    {	      /* space-pad out to full line width, then dump the trailer */	      int datum_width = width_bytes[spec[i].size];	      int blank_fields = (bytes_per_block - n_bytes) / datum_width;	      int field_width = spec[i].field_width + 1;	      printf ("%*s", blank_fields * field_width, "");	      dump_hexl_mode_trailer (n_bytes, curr_block);	    }	  putchar ('\n');	}    }  first = 0;}