Back to index

unity  6.0.0
Functions
unity::hud::impl Namespace Reference

Functions

std::vector< std::pair
< std::string, bool > > 
RefactorText (std::string const &text)

Function Documentation

std::vector< std::pair< std::string, bool > > unity::hud::impl::RefactorText ( std::string const &  text)

Definition at line 32 of file HudPrivate.cpp.

{
  std::vector<std::pair<std::string, bool>> ret;

  static const std::string bold_start("<b>");
  static const std::string bold_end("</b>");

  std::string::size_type last = 0;
  std::string::size_type len = text.length();
  std::string::size_type pos = text.find(bold_start);

  while (pos != std::string::npos)
  {
    if (pos != last)
    {
      ret.push_back(std::pair<std::string, bool>(text.substr(last, pos - last), false));
    }

    // Look for the end
    pos += 3; // // to skip the "<b>"
    std::string::size_type end_pos = text.find(bold_end, pos);
    // We hope we find it, if we don't, just output everything...
    if (end_pos != std::string::npos)
    {
      ret.push_back(std::pair<std::string, bool>(text.substr(pos, end_pos - pos), true));
      last = end_pos + 4; // the length of "</b>"
      pos = text.find(bold_start, last);
    }
    else
    {
      ret.push_back(std::pair<std::string, bool>(text.substr(pos), true));
      pos = std::string::npos;
      last = len;
    }
  }

  if (last < len)
  {
    ret.push_back(std::pair<std::string, bool>(text.substr(last), false));
  }

  return ret;
}

Here is the caller graph for this function: