break; case 'T': glob_flags |= GLOB_TILDE_CHECK;
main (int argc, char *argv[]){  int i, j;  int glob_flags = 0;  glob_t g;  int quotes = 1;  while ((i = getopt (argc, argv, "bcdegmopqst")) != -1)    switch(i)      {      case 'b':	glob_flags |= GLOB_BRACE;	break;      case 'c':	glob_flags |= GLOB_NOCHECK;	break;      case 'd':	glob_flags |= GLOB_ONLYDIR;	break;      case 'e':	glob_flags |= GLOB_NOESCAPE;	break;      case 'g':	glob_flags |= GLOB_NOMAGIC;	break;      case 'm':	glob_flags |= GLOB_MARK;	break;      case 'o':	glob_flags |= GLOB_DOOFFS;	g.gl_offs = 1;	break;      case 'p':	glob_flags |= GLOB_PERIOD;	break;      case 'q':	quotes = 0;	break;      case 's':	glob_flags |= GLOB_NOSORT;	break;      case 't':	glob_flags |= GLOB_TILDE;	break;      default:	exit (-1);      }  if (optind >= argc || chdir (argv[optind]))    exit(1);  j = optind + 1;  if (optind + 1 >= argc)    exit (1);  /* Do a glob on each remaining argument.  */  for (j = optind + 1; j < argc; j++) {    i = glob (argv[j], glob_flags, NULL, &g);    if (i != 0)      break;    glob_flags |= GLOB_APPEND;  }  /* Was there an error? */  if (i == GLOB_NOSPACE)    puts ("GLOB_NOSPACE");  else if (i == GLOB_ABORTED)    puts ("GLOB_ABORTED");  else if (i == GLOB_NOMATCH)    puts ("GLOB_NOMATCH");  /* If we set an offset, fill in the first field.  */  if (glob_flags & GLOB_DOOFFS)    g.gl_pathv[0] = (char *) "abc";  /* Print out the names.  Unless otherwise specified, qoute them.  */  if (g.gl_pathv)    {      for (i = 0; i < g.gl_pathc; ++i)        printf ("%s%s%s\n", quotes ? "`" : "", g.gl_pathv[i],		quotes ? "'" : "");    }  return 0;}