[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.6.19 RESTART_OPT( n ) - Resume Option Processing

If option processing has stopped (either because of an error or something was encountered that looked like a program argument), it can be resumed by providing this macro with the index n of the next option to process and calling optionProcess() again.

 
int main(int argc, char ** argv) {
  for (int ai = 0; ai < argc ;) {
  restart:
    ai = optionProcess(&progOptions, argc, argv);
    for (; ai < argc; ai++) {
      char * arg = arg[ai];
      if (*arg == '-') {
        RESTART_OPT(ai);
        goto restart;
      }
      process(arg);
    }
  }
}

If you want a program to operate this way, you might consider specifying a for-each main function (see section for-each main procedure) with the interleaved attribute. It will allow you to process interleaved operands and options from either the command line or when reading them from standard input.


This document was generated by Bruce Korb on August 21, 2015 using texi2html 1.82.