Flag settings are interpreted bitwise and may be ored together
Bit 0 (value 1): when set, add_message() is used instead of write(). Thus no previous flushing of the buffer is needed, but the output is not immediate, nor can the number of bytes actualle sent be determined - the return value is undefined. Bit 1 (value 2): The buffer is flushed _after_ adding the message. Useful only in conjunction with Bit 0.
The idea behind the flag settings is that sending command codes for colours and other things needs to bypass the allowed charset filters, but isn't important enough to waste bandwith on a synchronous trasmission.