~singpolyma/biboumi

8acd7a02aeda01c0ac828b05c36f10bbacaea70e — Florent Le Coz 10 years ago 7c67149
Aaaand, I forgot to add files
2 files changed, 41 insertions(+), 0 deletions(-)

A src/bridge/colors.cpp
A src/bridge/colors.hpp
A src/bridge/colors.cpp => src/bridge/colors.cpp +20 -0
@@ 0,0 1,20 @@
#include <bridge/colors.hpp>
#include <algorithm>

#include <iostream>

void remove_irc_colors(std::string& str)
{
  auto it = std::remove_if(str.begin(), str.end(),
                           [](const char c)
                           {
                             if (c == IRC_COLOR_BOLD_CHAR || c == IRC_COLOR_COLOR_CHAR ||
                                 c == IRC_COLOR_FIXED_CHAR || c == IRC_COLOR_RESET_CHAR ||
                                 c == IRC_COLOR_REVERSE_CHAR || c == IRC_COLOR_REVERSE2_CHAR ||
                                 c == IRC_COLOR_UNDERLINE_CHAR || c == IRC_COLOR_ITALIC_CHAR)
                               return true;
                             return false;
                           }
                           );
  str.erase(it, str.end());
}

A src/bridge/colors.hpp => src/bridge/colors.hpp +21 -0
@@ 0,0 1,21 @@
#ifndef COLORS_INCLUDED
# define COLORS_INCLUDED

#include <string>

/**
 * A module handling the conversion between IRC colors and XHTML-IM, and vice versa.
 */

#define IRC_COLOR_BOLD_CHAR       '\x02'
#define IRC_COLOR_COLOR_CHAR      '\x03'
#define IRC_COLOR_RESET_CHAR      '\x0F'
#define IRC_COLOR_FIXED_CHAR      '\x11'
#define IRC_COLOR_REVERSE_CHAR    '\x12'
#define IRC_COLOR_REVERSE2_CHAR   '\x16'
#define IRC_COLOR_ITALIC_CHAR     '\x1D'
#define IRC_COLOR_UNDERLINE_CHAR  '\x1F'

void remove_irc_colors(std::string& str);

#endif // COLORS_INCLUDED