private String processText(User user,String text){
  String result=Helper.htmlspecialchars_decode(text);
  result=StringUtil.removeDuplicateWhitespace(result);
  int filterMode=styles.filterCombiningCharacters();
  if (filterMode > Helper.FILTER_COMBINING_CHARACTERS_OFF) {
    String prev=result;
    result=Helper.filterCombiningCharacters(result,"****",filterMode);
    if (!prev.equals(result)) {
      LOGGER.info("Filtered combining characters from message by " + user.getRegularDisplayNick() + " [result: "+ result+ "]");
    }
  }
  return result;
}

private String processText ( User user , String text ) { String result = Helper . htmlspecialchars_decode ( text ) ; result = StringUtil . removeDuplicateWhitespace ( result ) ; int filterMode = styles . filterCombiningCharacters ( ) ; if ( filterMode > Helper . FILTER_COMBINING_CHARACTERS_OFF ) { String prev = result ; result = Helper . filterCombiningCharacters ( result , "****" , filterMode ) ; if ( ! prev . equals ( result ) ) { LOGGER . info ( "Filtered combining characters from message by " + user . getRegularDisplayNick ( ) + " [result: " + result + "]" ) ; } } return result ; }
this has to be done after parsing for emote tags , so the offsets send by the server fit the text worked on here .
