563 |
563 |
{
|
564 |
564 |
QString mirc = mirc_;
|
565 |
565 |
mirc.replace('%', "%%"); // escape % just to be sure
|
566 |
|
mirc.replace('\t', " "); // tabs break layout, also this is italics in Konversation
|
567 |
|
mirc.replace('\x02', "%B");
|
568 |
|
mirc.replace('\x0f', "%O");
|
569 |
|
mirc.replace('\x12', "%R");
|
570 |
|
mirc.replace('\x16', "%R");
|
571 |
|
mirc.replace('\x1d', "%S");
|
572 |
|
mirc.replace('\x1f', "%U");
|
|
566 |
|
|
567 |
// ASCII Control Characters.
|
|
568 |
//
|
|
569 |
// There are some unicode characters reserved for representing control characters when it is necessary to print them
|
|
570 |
// rather than have them perform their intended function.
|
|
571 |
//
|
|
572 |
// So, for those that are not given a functionality, the UTF-8 character will be used instead.
|
|
573 |
//
|
|
574 |
// See: http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters
|
|
575 |
//
|
|
576 |
// The null character, ‘\x00’, is never found in the string.
|
|
577 |
// The start of header, ‘\x01’, is never found in the string.
|
|
578 |
mirc.replace('\x02', "%B"); // Bold.
|
|
579 |
// ‘\x03’ will be managed later, for color stuff.
|
|
580 |
mirc.replace('\x04', QString::fromUtf8("␄"));
|
|
581 |
mirc.replace('\x05', QString::fromUtf8("␅"));
|
|
582 |
mirc.replace('\x06', QString::fromUtf8("␆"));
|
|
583 |
mirc.replace('\x07', QString::fromUtf8("␇"));
|
|
584 |
mirc.replace('\x08', QString::fromUtf8("␈"));
|
|
585 |
mirc.replace('\x09', " "); // Tab, in spaces.
|
|
586 |
// No need to manage ‘\x0a’, line feeds end the message and write the following characters in another message.
|
|
587 |
mirc.replace('\x0b', QString::fromUtf8("␋"));
|
|
588 |
mirc.replace('\x0c', QString::fromUtf8("␌"));
|
|
589 |
// The carriage return, ‘\x0d’, is never found in the string.
|
|
590 |
mirc.replace('\x0d', QString::fromUtf8("␍"));
|
|
591 |
mirc.replace('\x0e', QString::fromUtf8("␎"));
|
|
592 |
mirc.replace('\x0f', "%O"); // ?
|
|
593 |
mirc.replace('\x10', QString::fromUtf8("␐"));
|
|
594 |
mirc.replace('\x11', QString::fromUtf8("␑"));
|
|
595 |
mirc.replace('\x12', "%R"); // ?
|
|
596 |
mirc.replace('\x13', QString::fromUtf8("␓"));
|
|
597 |
mirc.replace('\x14', QString::fromUtf8("␔"));
|
|
598 |
mirc.replace('\x15', QString::fromUtf8("␕"));
|
|
599 |
mirc.replace('\x16', "%R"); // ?
|
|
600 |
mirc.replace('\x17', QString::fromUtf8("␗"));
|
|
601 |
mirc.replace('\x18', QString::fromUtf8("␘"));
|
|
602 |
mirc.replace('\x19', QString::fromUtf8("␙"));
|
|
603 |
mirc.replace('\x1a', QString::fromUtf8("␚"));
|
|
604 |
mirc.replace('\x1b', QString::fromUtf8("␛"));
|
|
605 |
mirc.replace('\x1c', QString::fromUtf8("␜"));
|
|
606 |
mirc.replace('\x1d', "%S"); // Italics.
|
|
607 |
mirc.replace('\x1e', QString::fromUtf8("␞"));
|
|
608 |
mirc.replace('\x1f', "%U"); // Underlined.
|
|
609 |
|
|
610 |
mirc.replace('\x7f', QString::fromUtf8("␡"));
|
573 |
611 |
|
574 |
612 |
// Now we bring the color codes (\x03) in a sane format that can be parsed more easily later.
|
575 |
613 |
// %Dcfxx is foreground, %Dcbxx is background color, where xx is a 2 digit dec number denoting the color code.
|
576 |
|
-
|