// File: jliesch[P]ofxget/clap/src/cmdline.cc
// Function: CmdLine::usage()
void CmdLine::usage()
{
  CmdArg*            arg;
  CmdArgListIterator it;
  
  cout << endl << "Usage: " << _progName;
  for (it = _cmdList.begin(); it != _cmdList.end(); it++)
    {
      arg = *it;
      if (!arg->isHidden())
	{
	  cout << " ";
	  if (arg->isOpt()) cout << "[";
	  cout << "-" << arg->getKeyword();
	  if (!arg->isValOpt())
	    cout << " " << arg->getValueName();
	  if (arg->isOpt()) cout << "]";
	}
    }

  cout << endl << "Where: " << endl;
  for (it = _cmdList.begin(); it != _cmdList.end(); it++)
    {
      arg = *it;
      if (!arg->isHidden())
	{
	  cout << setw(_maxLength + 5);
	  if (!arg->isValOpt())	  
	    cout << arg->getValueName();
	  else
	    cout << arg->getKeyword(); // usualy boolean keyword
	  cout.flags(ios::left);
	  cout << " - " << arg->getDescription() << endl;
	  cout.flags(ios::right);
	}
    }
  cout << endl;
  exit(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x3ffa0
movq 0x55774(%rip), %rdi     # 0x94f88
movq 0x557ad(%rip), %rsi     # 0x94fc8
callq 0x7970
movq %rax, %rdi
leaq 0x2af0c(%rip), %rsi     # 0x6a736
callq 0x7580
movq %rax, %rdi
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x7580
movq -0x58(%rbp), %rdi
callq 0x3ffc0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x58(%rbp), %rdi
callq 0x40020
movq %rax, -0x28(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3fff0
testb $0x1, %al
jne 0x3f877
jmp 0x3f96c
leaq -0x18(%rbp), %rdi
callq 0x40050
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b560
testb $0x1, %al
jne 0x3f956
movq 0x556e9(%rip), %rdi     # 0x94f88
leaq 0x2aea4(%rip), %rsi     # 0x6a74a
callq 0x7580
movq -0x10(%rbp), %rdi
callq 0x3b580
testb $0x1, %al
jne 0x3f8ba
jmp 0x3f8cd
movq 0x556c7(%rip), %rdi     # 0x94f88
leaq 0x2ae76(%rip), %rsi     # 0x6a73e
callq 0x7580
movq 0x556b4(%rip), %rdi     # 0x94f88
leaq 0x2ae87(%rip), %rsi     # 0x6a762
callq 0x7580
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b4e0
movq -0x60(%rbp), %rdi
movq %rax, %rsi
callq 0x7580
movq -0x10(%rbp), %rdi
callq 0x3b5a0
testb $0x1, %al
jne 0x3f932
movq 0x5567b(%rip), %rdi     # 0x94f88
leaq 0x2ae36(%rip), %rsi     # 0x6a74a
callq 0x7580
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b500
movq -0x68(%rbp), %rdi
movq %rax, %rsi
callq 0x7580
movq -0x10(%rbp), %rdi
callq 0x3b580
testb $0x1, %al
jne 0x3f941
jmp 0x3f954
movq 0x55640(%rip), %rdi     # 0x94f88
leaq 0x2ccaa(%rip), %rsi     # 0x6c5f9
callq 0x7580
jmp 0x3f956
jmp 0x3f958
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x40070
movq %rax, -0x30(%rbp)
jmp 0x3f854
movq 0x55615(%rip), %rdi     # 0x94f88
movq 0x5564e(%rip), %rsi     # 0x94fc8
callq 0x7970
movq %rax, %rdi
leaq 0x2adb7(%rip), %rsi     # 0x6a740
callq 0x7580
movq %rax, %rdi
movq 0x55630(%rip), %rsi     # 0x94fc8
callq 0x7970
movq -0x58(%rbp), %rdi
callq 0x3ffc0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x58(%rbp), %rdi
callq 0x40020
movq %rax, -0x40(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3fff0
testb $0x1, %al
jne 0x3f9d5
jmp 0x3fae5
leaq -0x18(%rbp), %rdi
callq 0x40050
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b560
testb $0x1, %al
jne 0x3facf
movq -0x58(%rbp), %rax
movl 0x20(%rax), %edi
addl $0x5, %edi
callq 0x400a0
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %esi
movq 0x55576(%rip), %rdi     # 0x94f88
callq 0x74d0
movq -0x10(%rbp), %rdi
callq 0x3b5a0
testb $0x1, %al
jne 0x3fa3e
movq -0x10(%rbp), %rdi
callq 0x3b500
movq %rax, %rsi
movq 0x55551(%rip), %rdi     # 0x94f88
callq 0x7580
jmp 0x3fa56
movq -0x10(%rbp), %rdi
callq 0x3b4e0
movq %rax, %rsi
movq 0x55537(%rip), %rdi     # 0x94f88
callq 0x7580
movq 0x5552b(%rip), %rax     # 0x94f88
movq (%rax), %rax
movq 0x55521(%rip), %rdi     # 0x94f88
addq -0x18(%rax), %rdi
movl $0x20, %esi
callq 0x400c0
movq 0x5550c(%rip), %rdi     # 0x94f88
leaq 0x2acc5(%rip), %rsi     # 0x6a748
callq 0x7580
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3b520
movq -0x70(%rbp), %rdi
movq %rax, %rsi
callq 0x7580
movq %rax, %rdi
movq 0x5551d(%rip), %rsi     # 0x94fc8
callq 0x7970
movq 0x554d1(%rip), %rax     # 0x94f88
movq (%rax), %rax
movq 0x554c7(%rip), %rdi     # 0x94f88
addq -0x18(%rax), %rdi
movl $0x80, %esi
callq 0x400c0
jmp 0x3fad1
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x40070
movq %rax, -0x50(%rbp)
jmp 0x3f9b2
movq 0x5549c(%rip), %rdi     # 0x94f88
movq 0x554d5(%rip), %rsi     # 0x94fc8
callq 0x7970
movl $0x1, %edi
callq 0x7660
nopw %cs:(%rax,%rax)