14#ifndef ZYPP_TUI_OUTPUT_UTF8_H_ 
   15#define ZYPP_TUI_OUTPUT_UTF8_H_ 
   44    const std::string & 
str()
 const          { 
return _str; }
 
   52      static bool isCJK = []()->
bool {
 
   53        const char * lang = ::getenv( 
"LANG" );
 
   54        return ( lang && ( !strncmp( lang, 
"zh", 2 )
 
   55                        || !strncmp( lang, 
"ko", 2 )
 
   56                        || !strncmp( lang, 
"ja", 2 ) ) );
 
   63        const char *s = 
_str.c_str();
 
   66          if ( *s == 
'\033' && *(s+1) == 
'[' )  
 
   69            while ( slen > 0 && *s != 
'm' )
 
   77          size_t bytes = mbrtowc( &wc, s, slen, NULL );
 
   91      for ( 
auto ch : 
_str )
 
   95          if ( 
ansi == 1 && ch == 
'[' )
 
  100          else if ( 
ansi >= 2 ) 
 
  111        else if ( ch == 
'\033' )
 
 
  132    { 
return( (ch & 0xC0) == 0x80 ); }
 
 
  137      if ( pos_r == 
npos || start_r > 
_str.size() )
 
  141      for ( 
const char * chp = 
_str.c_str() + 
upos; *chp; ++chp, ++
upos )
 
  150           while ( *chp == 
'\033' && *(chp+1) == 
'[' )  
 
  154             while ( *chp && *chp != 
'm' )
 
 
 
  173  inline string operator+( 
const string & lhs, 
const string & rhs )
 
 
  176  inline string operator+( 
const string & lhs, 
const std::string & rhs )
 
 
  179  inline string operator+( 
const std::string & lhs, 
const string & rhs )
 
 
  182  inline string operator+( 
const string & lhs, 
const char * rhs )
 
 
  185  inline string operator+( 
const char * lhs, 
const string & rhs )
 
 
  190  { 
return str << obj.
str(); }
 
 
 
std::ostream & operator<<(std::ostream &str, const string &obj)
Stream output.
size_type upos(size_type pos_r, size_type start_r=0) const
Return start of codepoint pos_r starting at position start_r.
bool isContinuationByte(char ch) const
Test for continuation byte '10xxxxxx'.
const char * c_str() const
static const size_type npos
string substr(size_type pos_r=0, size_type len_r=npos) const
utf8 substring
const std::string & str() const
size_type size() const
utf8 size
std::string::size_type size_type
string operator+(const string &lhs, const string &rhs)
concatenation
String related utilities and Regular expression matching.
string operator+(const string &lhs, const std::string &rhs)
This is an overloaded member function, provided for convenience. It differs from the above function o...