2013-08-23 13:46:38 -04:00
//===-- OptionGroupOutputFile.cpp -------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
# include "lldb/Interpreter/OptionGroupOutputFile.h"
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
# include "lldb/Utility/Utils.h"
using namespace lldb ;
using namespace lldb_private ;
OptionGroupOutputFile : : OptionGroupOutputFile ( ) :
m_file ( ) ,
m_append ( false , false )
{
}
OptionGroupOutputFile : : ~ OptionGroupOutputFile ( )
{
}
2014-11-25 16:00:58 -05:00
static const uint32_t SHORT_OPTION_APND = 0x61706e64 ; // 'apnd'
2013-08-23 13:46:38 -04:00
static OptionDefinition
g_option_table [ ] =
{
2014-11-25 16:00:58 -05:00
{ LLDB_OPT_SET_1 , false , " outfile " , ' o ' , OptionParser : : eRequiredArgument , nullptr , nullptr , 0 , eArgTypeFilename , " Specify a path for capturing command output. " } ,
{ LLDB_OPT_SET_1 , false , " append-outfile " , SHORT_OPTION_APND ,
OptionParser : : eNoArgument , nullptr , nullptr , 0 , eArgTypeNone ,
2015-07-03 12:57:06 -04:00
" Append to the file specified with '--outfile <path>'. " } ,
2013-08-23 13:46:38 -04:00
} ;
uint32_t
OptionGroupOutputFile : : GetNumDefinitions ( )
{
return llvm : : array_lengthof ( g_option_table ) ;
}
const OptionDefinition *
OptionGroupOutputFile : : GetDefinitions ( )
{
return g_option_table ;
}
Error
OptionGroupOutputFile : : SetOptionValue ( CommandInterpreter & interpreter ,
uint32_t option_idx ,
const char * option_arg )
{
Error error ;
const int short_option = g_option_table [ option_idx ] . short_option ;
switch ( short_option )
{
case ' o ' :
2015-07-03 12:57:06 -04:00
error = m_file . SetValueFromString ( option_arg ) ;
2013-08-23 13:46:38 -04:00
break ;
2014-11-25 16:00:58 -05:00
case SHORT_OPTION_APND :
2013-08-23 13:46:38 -04:00
m_append . SetCurrentValue ( true ) ;
break ;
default :
error . SetErrorStringWithFormat ( " unrecognized option '%c' " , short_option ) ;
break ;
}
return error ;
}
void
OptionGroupOutputFile : : OptionParsingStarting ( CommandInterpreter & interpreter )
{
m_file . Clear ( ) ;
m_append . Clear ( ) ;
}