rem: queue_directory (".", 0); }
add: queue_directory (".", NULL, true); } else do gobble_file (argv[i++], unknown, true, ""); while (i < argc);
context: main (int argc, char **argv){  register int i;  register struct pending *thispend;  unsigned int n_files;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);#define N_ENTRIES(Array) (sizeof Array / sizeof *(Array))  assert (N_ENTRIES (color_indicator) + 1 == N_ENTRIES (indicator_name));  exit_status = 0;  dir_defaulted = 1;  print_dir_name = 1;  pending_dirs = 0;  i = decode_switches (argc, argv);  if (print_with_color)    parse_ls_color ();  /* Test print_with_color again, because the call to parse_ls_color     may have just reset it -- e.g., if LS_COLORS is invalid.  */  if (print_with_color)    {      prep_non_filename_text ();      /* Avoid following symbolic links when possible.  */      if (color_indicator[C_ORPHAN].string != NULL	  || (color_indicator[C_MISSING].string != NULL	      && format == long_format))	check_symlink_color = 1;      {	unsigned j;	static int const sigs[] = { SIGHUP, SIGINT, SIGPIPE,				    SIGQUIT, SIGTERM, SIGTSTP };	unsigned nsigs = sizeof sigs / sizeof *sigs;#ifdef SA_NOCLDSTOP	struct sigaction oldact, newact;	sigset_t caught_signals;	sigemptyset (&caught_signals);	for (j = 0; j < nsigs; j++)	  sigaddset (&caught_signals, sigs[j]);	newact.sa_handler = sighandler;	newact.sa_mask = caught_signals;	newact.sa_flags = 0;#endif	for (j = 0; j < nsigs; j++)	  {	    int sig = sigs[j];#ifdef SA_NOCLDSTOP	    sigaction (sig, NULL, &oldact);	    if (oldact.sa_handler != SIG_IGN)	      sigaction (sig, &newact, NULL);#else	    if (signal (sig, SIG_IGN) != SIG_IGN)	      signal (sig, sighandler);#endif	  }      }    }  if (dereference == DEREF_UNDEFINED)    dereference = ((immediate_dirs		    || indicator_style == classify		    || format == long_format)		   ? DEREF_NEVER		   : DEREF_COMMAND_LINE_SYMLINK_TO_DIR);  /* When using -R, initialize a data structure we'll use to     detect any directory cycles.  */  if (recursive)    {      active_dir_set = hash_initialize (INITIAL_TABLE_SIZE, NULL,					dev_ino_hash,					dev_ino_compare,					dev_ino_free);      if (active_dir_set == NULL)	xalloc_die ();      obstack_init (&dev_ino_obstack);    }  format_needs_stat = sort_type == sort_time || sort_type == sort_size    || format == long_format    || dereference == DEREF_ALWAYS    || print_block_size || print_inode;  format_needs_type = (format_needs_stat == 0		       && (recursive || print_with_color			   || indicator_style != none));  if (dired)    {      obstack_init (&dired_obstack);      obstack_init (&subdired_obstack);    }  nfiles = 100;  files = XMALLOC (struct fileinfo, nfiles);  files_index = 0;  clear_files ();  n_files = argc - i;  if (0 < n_files)    dir_defaulted = 0;  for (; i < argc; i++)    {      gobble_file (argv[i], unknown, 1, "");    }  if (dir_defaulted)    {      if (immediate_dirs)	gobble_file (".", directory, 1, "");      else	queue_directory (".", 0);    }  if (files_index)    {      sort_files ();      if (!immediate_dirs)	extract_dirs_from_files ("", 0);      /* `files_index' might be zero now.  */    }  /* In the following if/else blocks, it is sufficient to test `pending_dirs'     (and not pending_dirs->name) because there may be no markers in the queue     at this point.  A marker may be enqueued when extract_dirs_from_files is     called with a non-empty string or via print_dir.  */  if (files_index)    {      print_current_files ();      if (pending_dirs)	DIRED_PUTCHAR ('\n');    }  else if (n_files <= 1 && pending_dirs && pending_dirs->next == 0)    print_dir_name = 0;  while (pending_dirs)    {      thispend = pending_dirs;      pending_dirs = pending_dirs->next;      if (LOOP_DETECT)	{	  if (thispend->name == NULL)	    {	      /* thispend->name == NULL means this is a marker entry		 indicating we've finished processing the directory.		 Use its dev/ino numbers to remove the corresponding		 entry from the active_dir_set hash table.  */	      struct dev_ino di = dev_ino_pop ();	      struct dev_ino *found = hash_delete (active_dir_set, &di);	      /* ASSERT_MATCHING_DEV_INO (thispend->realname, di); */	      assert (found);	      dev_ino_free (found);	      free_pending_ent (thispend);	      continue;	    }	}      print_dir (thispend->name, thispend->realname);      free_pending_ent (thispend);      print_dir_name = 1;    }  if (dired)    {      /* No need to free these since we're about to exit.  */      dired_dump_obstack ("//DIRED//", &dired_obstack);      dired_dump_obstack ("//SUBDIRED//", &subdired_obstack);      printf ("//DIRED-OPTIONS// --quoting-style=%s\n",	      quoting_style_args[get_quoting_style (filename_quoting_options)]);    }  /* Restore default color before exiting */  if (print_with_color)    {      put_indicator (&color_indicator[C_LEFT]);      put_indicator (&color_indicator[C_RIGHT]);    }  if (LOOP_DETECT)    {      assert (hash_get_n_entries (active_dir_set) == 0);      hash_free (active_dir_set);    }  exit (exit_status);}