rem: flags.zero_fill = 1;
add: flags.zero_fill = true;
context: main (int argc, char **argv){  struct isaac_state s;  int err = 0;  struct Options flags;  char **file;  int n_files;  int c;  int i;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);  isaac_seed (&s);  memset (&flags, 0, sizeof flags);  flags.n_iterations = DEFAULT_PASSES;  flags.size = -1;  while ((c = getopt_long (argc, argv, "fn:s:uvxz", long_opts, NULL)) != -1)    {      switch (c)	{	case 0:	  break;	case 'f':	  flags.force = 1;	  break;	case 'n':	  {	    uintmax_t tmp;	    if (xstrtoumax (optarg, NULL, 10, &tmp, NULL) != LONGINT_OK		|| (word32) tmp != tmp		|| ((size_t) (tmp * sizeof (int)) / sizeof (int) != tmp))	      {		error (EXIT_FAILURE, 0, _("%s: invalid number of passes"),		       quotearg_colon (optarg));	      }	    flags.n_iterations = (size_t) tmp;	  }	  break;	case 'u':	  flags.remove_file = 1;	  break;	case 's':	  {	    uintmax_t tmp;	    if (xstrtoumax (optarg, NULL, 0, &tmp, "cbBkKMGTPEZY0")		!= LONGINT_OK)	      {		error (EXIT_FAILURE, 0, _("%s: invalid file size"),		       quotearg_colon (optarg));	      }	    flags.size = tmp;	  }	  break;	case 'v':	  flags.verbose = 1;	  break;	case 'x':	  flags.exact = 1;	  break;	case 'z':	  flags.zero_fill = 1;	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (EXIT_FAILURE);	}    }  file = argv + optind;  n_files = argc - optind;  if (n_files == 0)    {      error (0, 0, _("missing file argument"));      usage (EXIT_FAILURE);    }  for (i = 0; i < n_files; i++)    {      char *qname = xstrdup (quotearg_colon (file[i]));      if (STREQ (file[i], "-"))	{	  if (wipefd (STDOUT_FILENO, qname, &s, &flags) < 0)	    err = 1;	}      else	{	  /* Plain filename - Note that this overwrites *argv! */	  if (wipefile (file[i], qname, &s, &flags) < 0)	    err = 1;	}      free (qname);    }  /* Just on general principles, wipe s. */  memset (&s, 0, sizeof s);  exit (err);}