• src/sbbs3/answer.cpp ars.

    From rswindell@VERT to CVS commit on Monday, October 22, 2018 04:18:00
    src/sbbs3 answer.cpp 1.98 1.99 ars.c 1.21 1.22 ars_defs.h 1.13 1.14 atcodes.cpp 1.82 1.83 chk_ar.cpp 1.28 1.29 con_out.cpp 1.90 1.91 getkey.cpp 1.49 1.50 getstr.cpp 1.34 1.35 inkey.cpp 1.56 1.57 js_bbs.cpp 1.171 1.172 js_console.cpp 1.119 1.120 logon.cpp 1.66 1.67 main.cpp 1.734 1.735 newuser.cpp 1.74 1.75 prntfile.cpp 1.27 1.28 putmsg.cpp 1.39 1.40 sbbs.h 1.490 1.491 sbbs_ini.c 1.164 1.165 sbbsdefs.h 1.225 1.226 scandirs.cpp 1.7 1.8 scansubs.cpp 1.26 1.27 startup.h 1.81 1.82 str.cpp 1.80 1.81 text.h 1.35 1.36 text_defaults.c 1.51 1.52 userdat.c 1.206 1.207 useredit.cpp 1.51 1.52 writemsg.cpp 1.125 1.126 petdefs.h NONE 1.1
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv27382

    Modified Files:
    answer.cpp ars.c ars_defs.h atcodes.cpp chk_ar.cpp con_out.cpp
    getkey.cpp getstr.cpp inkey.cpp js_bbs.cpp js_console.cpp
    logon.cpp main.cpp newuser.cpp prntfile.cpp putmsg.cpp sbbs.h
    sbbs_ini.c sbbsdefs.h scandirs.cpp scansubs.cpp startup.h
    str.cpp text.h text_defaults.c userdat.c useredit.cpp
    Added Files:
    Log Message:
    The big PETSCII commit:
    So Omegix recently asked in the Synchronet Discussion group whether or not
    a PETSCII (Commodore) terminal could be used to access his Synchronet BBS.
    Now, the answer is "Yes". :-)
    The major issues addressed:

    - detecting a PETSCII terminal, solved by assigning specific (configurable):
    TCP ports to be used for incoming PETSCII connections, by default:
    port 64 is for 40-column PETSCII and port 128 is for 80-column PETSCII,
    but if the terminal sends a Telnet Window Size reply (e.g. SyncTERM), then
    either size terminal should fine on either port.
    The port numbers are configurable in the [BBS] section of your sbbs.ini
    file using the new keys: PET40Port (default value: 64) and PET80Port
    (default value: 128). Having these keys set doesn't make make the terminal
    server listen on that additional port - you'll need to add more
    IP:port combinations to one of Interfaces values, example:
    And you don't have to use Telnet for the PETSCII connections - you could use
    RLogin or SSH instead (or in addition).

    - support for terminal widths < 80 columns:
    This was achieved through a combination of text.dat changes (numerous),
    new Ctrl-A and @-codes and new optional terminal-width-specific menu files
    (e.g. text/menu/main.40col.asc)
    A side effect of these changes is actually better support for terminals
    *wider* than 80 columns as well!

    - support for terminals that don't expand tabs to spaces (e.g. PETSCII):
    The terminal server now handles tab expansion with a run-time settable
    tab-size (default size: 8)

    - conditional access based on PETSCII (or small) terminal use (or not):
    + New PETSCII ARS keyword (boolean)
    + New COLS and ROWS ARS keywords (for terminal width and height requirements)
    + New TERM (string) ARS keyword

    New @-codes:
    - WORDWRAP, when placed at the top of a file, enables auto-wordwrap for
    lines longer than the terminal width
    - CENTER, the text following before an end of line will be displayed centered
    on the terminal (whatever the width, in columns)
    - CLEAR, like CLS, except it ignores (doesn't display) a CRLF that follows
    - COLS, current number of terminal columns (width)
    - ROWS, current number of terminal rows (height)
    - TERM, the auto-detected or reported terminal type (e.g. ANSI, TTY, etc.)
    - SYSONLY, toggles "echo" (display) off/back-on for non-sysops
    similar to the Ctrl-A( and ) codes, but more convenient to use
    (and PabloDraw won't strip the @-code from the file like it does
    with Ctrl-A codes it doesn't support)

    New Ctrl-A codes:
    - \ conditional new-line/continuation when the terminal width is < 80 cols
    prints the new text.dat string LongLineContinuationPrefix

    yesno() will now return true if passed a blank string.
    noyes() will now return false if passed a blank string.
    getstr()'s input length limiting based on terminal width is more broadly
    applied now (not just when using the K_LINE mode flag).

    New JS bbs object method: menu_exists(<base_filename>) returns Boolean
    New JS console object property: tabstop (Number)
    New JS console object methods: getbyte() and putbyte() to recv/send raw byte
    value with (very little) interpretation/intervention by the terminal server New JS console object method: creturn() - performs a carriage return
    (or equivalent)
    New JS (and C) printfile() mode flag: P_TRUNCATE, causes long lines to be
    truncated, rather than displaying causing a line-wrap.

    New text.dat strings:
    - NoAccessTerminal (for ARS check failures)
    - LongLineContinuationPrefix (for breaking long lines for 40col terminals)
    - Scanning (replaces a previously hard-coded "Scanning" string)
    - Done (replaces a previusly hard-coded "Done")
    - Scanned (when finished scannning, clears the progress bar)

    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net