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; } } }
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 }