rem: if (margv[0] && strcmp (margv[0], "[") == 0)
add: if (LBRACKET)
context: main (int margc, char **margv){  int value;#if !defined (TEST_STANDALONE)  int code;  code = setjmp (test_exit_buf);  if (code)    return (test_error_return);#else /* TEST_STANDALONE */  program_name = margv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);#endif /* TEST_STANDALONE */  argv = margv;  if (margv[0] && strcmp (margv[0], "[") == 0)    {      /* Don't recognize --help or --version if POSIXLY_CORRECT is set.  */      if (getenv ("POSIXLY_CORRECT") == NULL)	parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION,			    AUTHORS, usage);      --margc;      if (margc < 2)	test_exit (SHELL_BOOLEAN (FALSE));      if (margv[margc] && strcmp (margv[margc], "]") != 0)	test_syntax_error (_("missing `]'\n"), NULL);    }  argc = margc;  pos = 1;  if (pos >= argc)    test_exit (SHELL_BOOLEAN (FALSE));  parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION,		      AUTHORS, usage);  value = posixtest ();  if (pos != argc)    test_syntax_error (_("too many arguments\n"), NULL);  test_exit (SHELL_BOOLEAN (value));}