Exemplo n.º 1
0
void ui_message_handlert::print(
  unsigned level,
  const std::string &message,
  int sequence_number,
  const source_locationt &location)
{
  if(verbosity>=level)
  {
    switch(get_ui())
    {
    case PLAIN:
      message_handlert::print(
        level, message, sequence_number, location);
      break;

    case XML_UI:
    case JSON_UI:
    {
      std::string tmp_message(message);

      if(!tmp_message.empty() && *tmp_message.rbegin()=='\n')
        tmp_message.resize(tmp_message.size()-1);
      
      const char *type=level_string(level);
        
      std::string sequence_number_str=
        sequence_number>=0?i2string(sequence_number):"";

      ui_msg(type, tmp_message, sequence_number_str, location);
    }
    break;
    }
  }
}
Exemplo n.º 2
0
int utf8_format(const u_char *buf, size_t len, u_char *dst)
{
#ifndef HAVE_UTF8
   /* some sanity checks */
   if (len == 0 || buf == NULL) {
      strncpy(dst, "", 1);
      return 0;
   }
   
   /* copy the buffer */
   memcpy(dst, buf, len);

   return len;
#else
   
   iconv_t cd;
#ifdef OS_LINUX
   char *inbuf;
#else
   const char *inbuf;
#endif
   char *outbuf;
   size_t inbytesleft, outbytesleft;

   /* some sanity checks */
   if (len == 0 || buf == NULL) {
      strncpy(dst, "", 1);
      return 0;
   }

   if (utf8_encoding == NULL) {
      ui_msg("You must set an encoding type before using UTF8.\n");
      return 0;
   }

   inbuf = (char *)buf;
   inbytesleft = len;
   outbuf = (char *)dst;

   cd = iconv_open("UTF-8", utf8_encoding);

   iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);

   iconv_close(cd);

   return len;
#endif
}