                                     Print Fmt Strs

    <fmt_arg> := %[-][0][<width>][.<decimals>][<flags>][h<aux_fmt_num>]<fmt_code>

    See StrPrintJoin().

    <flags>:

      't' truncate to <width>.
      ',' add commas every three digits or four nibbles.
      '$' makes %Q convert '$' to "\x24".
      '/' makes %Q and %q convert '%' to "%%".

    <aux_fmt_num>:

      For "%n", "%d" or "%u", the <aux_fmt_num> causes thousands mode.  "%h?n" will
      pick a var exponent multiples of three unit, while "%h-3n" will display milli
      units or "%h6n" will display mega units.  The 'k' flag is always on for "%n".
      See ::/Demo/Print.HC.

    For "%c" or "%C", the <aux_fmt_num> repeats the char that many times.

    <fmt_code>:

      "%n" floating point in engineering notation, exponents being multiples of
      three.  If it has a <aux_fmt> code, it will display scientific units letters.

      "%S" Define() entry.

      "%C" ToUpper() character.

      "%h25c",'\n'; 25 new-lines.

      "%h*c",25,'\n'; 25 new-lines.

      "%F" text file by filename.

      "%$F" DolDoc file in memory.

      "%p" ptr.

      "%,p" ptr with no offset.

      "%P" link to ptr.

      "%,P" link to ptr with no offset.

      "%D" date.  Pass a CDate.

      "%T" time.  Pass a CDate.

      "%z" sub_entry of an enumerated list of text entries.  See LstSub().  Pass
      sub_entry_num first, list second.

      "%Z" DefineLstLoad() subentry.  Pass sub_entry_num first, define_name second.

      "%Q" convert "\" to "\\" and quote to backslash quote. (For use in creating
      strs in strs.)

      "%q" rev a "%Q".

                                      Print Family

    MStrPrint(U8 *fmt,...) is like StrPrint(U8 *dst,U8 *fmt,...) but it returns a
    MAllocated str.  It is vary handy because you don't have to worry about
    overflow.

    CatPrint(U8 *_dst,U8 *fmt,...) concatenates a formated string.

    In(U8 *fmt,...) sends text to the current task's input buffer.
    InStr(U8 *fmt,...) sends text of an InFile to the keyboard stream of the current
    TASK but can also do mouse cmds.

    XTalk(CTask *task,U8 *fmt,...) and text to another task's input buffer.
    XTalkStr(CTask *task,U8 *fmt,...) sends text of an InFile to the keyboard stream
    of another TASK but can also do mouse cmds.

    DocPrint(CDoc *doc,U8 *fmt,...) sends text to a document.  You can buffer to a
    Doc and save it, providing the functionality of fprintf.  See
    ::/Demo/Dsk/FPrintF.HC.

    Adam(U8 *fmt,...) sends text to the Adam Task to be compiled and run.
    AdamLog(U8 *fmt,...) and AdamErr(U8 *fmt,...) send text to the Adam Task to be
    displayed.

    StreamPrint(U8 *fmt,...) sends text to the stream of code being compiled and
    must reside in a #exe{} blk.

    GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...) and GrVPrint() plots text in graphics
    mode.

    TextPrint(CTask *task,I64 x,I64 y,I64 attr,U8 *fmt,...) plots to gr.text_base.

    ExePrint(U8 *fmt,...) compiles and execute a string.  Note: It returns the res
    of the last executed expression.

    Once(U8 *fmt,...) Writes User code to Registry to be executed next boot.

    AOnce(U8 *fmt,...) Writes Adam code to Registry to be executed next boot.

    InPrint(I64 mS,U8 *fmt,...) PutChars()s one at a time with a delay.

    RawPrint(I64 mS,U8 *fmt,...) sends direct to scrn memory, bypassing window
    manager.

    User(U8 *fmt,...) Spawns a user and execute a string on start-up.

    PopUpPrint(U8 *fmt,...) compiles and execute a string in a pop-up win.  Note: It
    returns the res of the last executed expression.
    PopUpViewPrint(U8 *fmt,...) creates a pop-up window and views text.

    Note: Use Print("%s",src) if you need an unmodified string.