Notes.. taken from the epic5/UPDATES file that should help people with some confusion on the new mangle/color/functional changes in epic5. *** News 10/05/2005 -- New /SET, /SET MANGLE_DISPLAY, many sets removed There is a new /SET, /SET MANGLE_DISPLAY, which mangles all output being sent to your display, naturally. It works in the same way that /set mangle_inbound, mangle_outbound, mangle_logfiles works, and its default value is "NORMALIZE". You should always specify either "NORMALIZE" or "MANGLE_ESCAPE" -- if you turn off both, then it will be possible for remote people on irc to send raw escape sequences to your display, and that is bad! The following /SETs have been superceded by recent changes, and have been removed: alt_charset blink_video bold_video color display_ansi display_pc_characters inverse_video underline_video *** News 10/05/2005 -- Unified string mangler/normalizer Forget everything you thought you knew about the old mangler and normalizer (sorry!). This is (believe it or not) much less complicated than before, and certainly more well documented than before! EPIC5 now includes a unified mangler/normalizer that is used by the following features: (The above functions) The input prompt /lastlog -mangle /log mangle /set mangle_inbound /set mangle_outbound The status bar All characters are grouped into one of 9 "types": 0 Normal chars 32-127, 160-255 1 High bit control chars 128-159 2 Escape char ^[ 3 Color char ^C 4 Highlight toggle ^B ^E ^F ^O ^V ^_ 5 Unsafe char ^M (\r) 6 Control char ^@ ^A ^D ^H ^K ^L ^N ^P ^Q ^R ^T ^U ^W ^X ^Y ^Z ^\ ^] ^^ 7 Beep ^G 8 Tab ^I 9 Non-destructive Space ^S There are the 12 following mangle types: MANGLE_ESCAPES NORMALIZE STRIP_COLOR STRIP_REVERSE STRIP_UNDERLINE STRIP_BOLD STRIP_BLINK STRIP_ND_SPACE STRIP_ALT_CHAR STRIP_ALL_OFF STRIP_UNPRINTABLE STRIP_OTHER The mangle types transform the characters, according to this table: ----------------------------------------------------------------------- A = Character or sequence converted into an attribute M = Character mangled (ie, ^A into ^VA^V) S = Character stripped, sequence (if any) NOT stripped X = Character stripped, sequence (if any) also stripped T = Transformed into other (safe) chars - = No transformation Type 0 1 2 3 4 5 6 7 8 9 (default) - - - - A - - T T T NORMALIZE - - A A - X M - - - MANGLE_ESCAPES - - S - - - - - - - STRIP_COLOR - - - X - - - - - - STRIP_* - - - - X - - - - - STRIP_UNPRINTABLE - X S S X X X X - - STRIP_OTHER X - - - - - - - X X (/SET ALLOW_C1) - X - - - - - - - - ----------------------------------------------------------------------- There are only *three* ambiguous cases: * Type 2: MANGLE_ESCAPES has first priority, then NORMALIZE, and finally STRIP_UNPRINTABLE * Type 3: STRIP_UNPRINTABLE has first priority, then NORMALIZE, and STRIP_COLOR. You need to use both NORMALIZE and STRIP_COLOR to remove color changes in escape sequences * Type 6: STRIP_UNPRINTABLE has first priority over NORMALIZE. *** News 10/05/2005 -- "ANSI" mangle type linked to "NORMALIZE" The mangler type "ANSI" has been renamed to "NORMALIZE". You can continue to use "ANSI", but it will be silently changed to "NORMALIZE" internally. *** News 08/30/2005 -- De-support of 7-bit-only terminal/emulators Once upon a time, long long ago, on a planet far away, there used to be terminals and terminal emulators that did not know how to handle characters with the 8th bit set. Thankfully, nobody uses these any more. There has been rudimentary support in ircII clients to support this old hardware, but it is now unnecessary and only causes to torment people who can't figure out how to input their 8 bit characters! /SET EIGHT_BIT_CHARACTERS has been removed, and its behavior is now hardcoded to the previous "ON" value. If you really need 7-bit support, epic4 will always have it... *** News 08/30/2005 -- Simplification of display mangling, part one There are 15 /set's that control how output to the display is prepared ("mangled"). That's about 14 too many. The following /set's are at best historical curiosities and do not serve any modern purpose. Their function has been eliminated. BEEP_MAX TAB TAB_MAX ND_SPACE_MAX *** News 08/23/2005 -- New /window verb, /WINDOW FLUSH_SCROLLBACK The /WINDOW FLUSH_SCROLLBACK option, which I already regret the naming of, deletes all of the items in your scrollback buffer. Because the scrollback buffer is used to paint your window, your window will be cleared when you do this. *** News 08/10/2005 -- Mangle level "ALL" does not include "UNPRINTABLE" This was a mistake, and "ALL" should never have included the UNPRINTABLE mangle level. So if you want to do them both, then just do ALL,UNPRINTABLE. Although you would never want to do that, since UNPRINTABLE is more encompassing than ALL. *** News 08/05/2005 -- New mangle type, "UNPRINTABLE" You can now mangle "UNPRINTABLE", which closely models the /SET NO_CONTROL_LOG variable. When you mangle UNPRINTABLE, all characters that are not printable (isgraph() || isspace()) will be removed, which includes all of the highlight characters. *** News 08/05/2005 -- *** IMPORTANT *** Case insensitive changes All case insensitive string comparisons should now be handled in the CASEMAPPING=ascii sense. This means '{' and '[' are not equal, and | and ~ and ] and } are not equal. *** News 08/05/2005 -- 005 CASEMAPPING value now handled (sort of) Some networks use CASEMAPPING=ascii, which means that the characters {|} are not the same as [~] as they are when CASEMAPPING=rfc1459. So in order to keep track of nicks correctly on the former servers, we now track CASEMAPPING and use it as best we can. *** News 05/10/2005 -- New window verb, /WINDOW KILLABLE (default on) When you /WINDOW KILLABLE OFF, the following changes occur: * /WINDOW KILL will fail[1] with an error message. * /WINDOW KILL_ALL_HIDDEN will not kill the window. * /WINDOW KILL_OTHERS will not kill the window. * /WINDOW KILLSWAP will fail[1] with an error message. [1] A failure of *any* /window operation causes any subsequent operations in the same statement to be discarded, to avoid accidentally operating on the wrong window. This behavior is not a special-case.