1 //===-- Platform.cpp --------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 // File: MICmnMIValueConst.h
13 // Overview: CMICmnMIValueConst implementation.
15 // Environment: Compilers: Visual C++ 12.
16 // gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17 // Libraries: See MIReadmetxt.
23 #include "MICmnMIValueConst.h"
26 const CMIUtilString CMICmnMIValueConst::ms_constStrDblQuote( "\"" );
28 //++ ------------------------------------------------------------------------------------
29 // Details: CMICmnMIValueConst constructor.
31 // Args: vString - (R) MI Const c-string value.
35 CMICmnMIValueConst::CMICmnMIValueConst( const CMIUtilString & vString )
36 : m_strPartConst( vString )
37 , m_bNoQuotes( false )
42 //++ ------------------------------------------------------------------------------------
43 // Details: CMICmnMIValueConst constructor.
45 // Args: vString - (R) MI Const c-string value.
46 // vbNoQuotes - (R) True = return string not surrounded with quotes, false = use quotes.
50 CMICmnMIValueConst::CMICmnMIValueConst( const CMIUtilString & vString, const bool vbNoQuotes )
51 : m_strPartConst( vString )
52 , m_bNoQuotes( vbNoQuotes )
57 //++ ------------------------------------------------------------------------------------
58 // Details: CMICmnMIValueConst destructor.
59 // Type: Overrideable.
64 CMICmnMIValueConst::~CMICmnMIValueConst( void )
68 //++ ------------------------------------------------------------------------------------
69 // Details: Build the Value Const data.
72 // Return: MIstatus::success - Functional succeeded.
73 // MIstatus::failure - Functional failed.
76 bool CMICmnMIValueConst::BuildConst( void )
78 if( m_strPartConst.length() != 0 )
80 const CMIUtilString strValue( m_strPartConst.StripCREndOfLine() );
83 m_strValue = strValue;
87 const MIchar * pFormat = "%s%s%s";
88 m_strValue = CMIUtilString::Format( pFormat, ms_constStrDblQuote.c_str(), strValue.c_str(), ms_constStrDblQuote.c_str() );
93 const MIchar * pFormat = "%s%s";
94 m_strValue = CMIUtilString::Format( pFormat, ms_constStrDblQuote.c_str(), ms_constStrDblQuote.c_str() );
97 return MIstatus::success;