QTags.addButton( 'lineunbreaker', '!br', lineunbreaker_qtags );
function lineunbreaker_qtags() {
	var ed = jQuery('#content');
	var len = ed.val().length;
	var start = ed[0].selectionStart;
	var end = ed[0].selectionEnd;
	var selectedContent = ed.val().substring(start, end);

    var contentClean = selectedContent.replace(/(\r\n|\n|\r|<br\s*[\/]?>)/gim, function (match, p1, offset, original) {
        var hasSpace = false;
        var hasHyphen = false;
        // Check if there is a space left side of match
        if (offset > 0) {
            var lftChar = original.charAt(offset - 1);
            if (lftChar === ' ') {
                hasSpace = true;
            }
            // Check for ascii hyphen and unicode hyphen
            if (lftChar === '-' || lftChar === '‐') {
                hasHyphen = true;
            }
        }
        if (offset < original.length - 1 - p1.length) {
            var rgtChar = original.charAt(offset + p1.length);
            if (rgtChar === ' ') {
                hasSpace = true;
            }
            // Check for hyphen
            if (rgtChar === '-' || rgtChar === '‐') {
                hasHyphen = true;
            }
        }

        return hasHyphen || hasSpace ? '' : ' ';
    });
	ed.val(ed.val().substring(0, start) + contentClean + ed.val().substring(end, len));
}