- Jul 16, 2019
-
-
rswindell authored
MAILW#<num>, MAILP#<num>, SPAMW#<num> These codes, unlike the colon-variants, can be combined with format modifiers (e.g. -L, etc.).
-
- Jul 11, 2019
-
-
rswindell authored
hex escape sequence out of range
-
rswindell authored
-
rswindell authored
-
rswindell authored
U+ code now supports <code-hex>:<text> syntax so that multiple chars (a string) may be specified as a fallback for non-UTF-8 terminals. The U+<code>/<char> syntax was changed to U+<code>,<char> New symbolic @-codes that send the right Unicode code point to UTF-8 terminals or a string to others: - ELLIPSIS - COPYRIGHT - SOUNDCOPY - TRADEMARK - DEGREE_C - DEGREE_F
-
- Jul 10, 2019
-
-
rswindell authored
I like the -W @-code format modifier better for "WIDE" than for "WRAP" (no body is using -W yet, right?) - so, change wrap to "->" and double-wide to "-W".
-
rswindell authored
terminal "type" string (ANSI, RIP, PETSCII, or DUMB). Expose this value in JS via the new console.type read-only property. The TERM @-code now expands to this string rather than the (often client-supplied) sbbs_t.terminal string value.
-
rswindell authored
(e.g. "@code:BIG-RED@", the argument would get chopped to just "BIG") so don't support format modifiers when a ':' is present in the @-code.
-
rswindell authored
When appended to an @-code, displays it double-wide using "fullwidth" Unicode code points if possible, spaces between the characters otherwise.
-
rswindell authored
The pipe char is problematic to discuss in msg bases and on the Wiki. <shrug>
-
rswindell authored
Create a sbbs_t method: wide(), which displays a string using "fullwidth" Unicode characters, when possible, otherwise, double-spaced. Exposed in JS via console.wide() and a new @-code: WIDE:<string>
-
rswindell authored
(currently). Created for use with the EnterYourBirthday text.dat string, so the CHECKMARK @-code can be used as well. @-codes can't be used in strings with printf-specifiers (e.g. %s).
-
rswindell authored
square root symbol (or PETSCII check mark), as appropriate.
-
rswindell authored
@U+<codepoint-in-hex>@ - automatic CP437 fallback char, if available @U+<codepoint-in-hex|cp437char-in-hex>, specify CP437 fallback char @U+<codepoint-in-hex!cp437char-in-hex>, specify CP437 fallback char (used if no automatic fallback mapping is available)
-
- May 02, 2019
-
-
rswindell authored
Expanded codes will not *not* go beyond the terminal column width (minus 1). If you need the old/wrap behavior, add a "-W" modifier to your @-code. If a length value is specified with -W, it is ignored. - MSG_TO, MSG_FROM, MSG_SUBJECT now reflect the header values passed to sbbs_t::show_msghdr(), JS bbs.show_msg_header() and not necessarily the actual stored (e.g. MIME-encoded) header values. New codes: - MSG_CC - reflect a message's CC list, if it has one - DATETIMEZONE - combines DATETIME and TIMEZONE in one string
-
- Apr 26, 2019
-
-
rswindell authored
-
rswindell authored
- DELAY:nn (delay nn 10ths of a second) - POS:nn (move cursor to position nn, not sure if nn is 0 or 1-based) - CLREOL (same as CLR2EOL) - YESCHAR (the character/key for "Yes", from text.dat YNQP string) - NOCHAR (the character/key for "No', from text.dat YNQP string) and for good measure: - QUITCHAR (the character/key for "Quit") - not supported by PCBoard
-
- Apr 11, 2019
- Dec 04, 2018
-
-
rswindell authored
expands to "on" or "off" based on user's split-screen private chat setting.
-
- Dec 03, 2018
-
-
rswindell authored
PAGER (expands to "on" or "off" to indicate chat page enable status) ALERTS (expands to "on or "off" to indicate activity alert enable status)
-
- Oct 25, 2018
-
-
rswindell authored
only if it exists (on disk) and displays no error message if the file does not exist. Nearly identical to the existing MENU @-Code, but without the need to insure the file actually exists first.
-
- Oct 22, 2018
-
-
rswindell authored
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: TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128 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)
-
- Oct 04, 2018
-
-
rswindell authored
MSG_SUMMARY is currently never populated by anything. MSG_TAGS is a new (optional) thing.
-
- Jul 25, 2018
-
-
rswindell authored
fix the resulting warnings.
-
- Mar 17, 2018
-
-
rswindell authored
-
- Jan 12, 2018
-
-
rswindell authored
- FILE_AREA - FILE_AREA_DESC - FILE_LIB - FILE_LIB_DESC - FILE_LIB_NUM - FILE_DIR - FILE_DIR_DESC - FILE_DIR_CODE - FILE_DIR_NUM - FILE_NAME - FILE_DESC - FILE_UPLOADER - FILE_SIZE - FILE_CREDITS - FILE_TIME - FILE_TIME_ULED - FILE_TIME_DLED - FILE_DATE - FILE_DATE_ULED - FILE_DAT_DLED - FILE_TIMES_DLED Fixed MSG_ATTR @-code (missing SPAM attribute) New text.dat line: FileHdrDescSeparator, displayed between file detail display (name, date, uploader, etc.) and extended description, if there is one. This is used to execute showfileavatar.js. New JS 'bbs' object properties: - file_name - file_description - file_dir_number - file_attr - file_date - file_credits - file_uploader - file_update_date - file_download_date - file_download_count Inspiried by Lon Seidman's now infamous (but likely common) Synchronet sysop blunder (removing a file rather than downloading it while demonstrating his BBS on his youtube channel: - New text.dat line: RemoveFileQ <- using this rather than the vague: AreYouSureQ, when prompting to remove a file - The sysop command to remove files from the batch file flagging prompt has been changed from 'D' (delete) to 'R' (remove). - The 'D' command from the batch file flagging prompt may now be used for immediate Download of any flagged file(s). - When flagging files with '*', treat the same as '*.*'
-
- Nov 15, 2017
-
-
rswindell authored
server log) using the new magic sbbs_t::lputs(). No more SSH errors if an SSH client's IP is blocked in ip.can (trying to send the block msg). New SSHConnectTimeout cfg value (in sbbs.ini [BBS]), defaults to 10 seconds. Previously, fails SSH connections could block the bbs_thread for 30 seconds (the Cryptlib default network connection timeout). Overhauled a lot of the SSH-related log output to make it less chatty and more meaningful. getmail() is now more flexibility with regards to filtering by attribute flags (not just SPAM). Allow SPAM header attribute to be toggled with sysop 'C' command.
-
- Nov 13, 2017
-
-
rswindell authored
Server via the new 'V' command from the Reading Mail prompt allows you to toggle between all mail (including SPAM, the default), SPAM only, or HAM only. Also added a new '/' (search text) command from the reading mail prompts. Mail imported before the mailsrvr added support (recently) for the MSG_SPAM attribute flag will not be counted/filtered as SPAM. SBBSecho will have a commit (next) to support the new loadmail() usage, it will not compile until then.
-
- Oct 23, 2017
-
-
rswindell authored
just like -R and -L do.
-
- Dec 06, 2016
-
-
rswindell authored
HOME - homes cursor (to upper left, 1:1) CLRLINE - clears current line (cursor to column 1) CLR2EOL - clears to end-of-current-line (doesn't move cursor) CLR2EOS - clears to end of screen (doesn't move cursor)
-
- Nov 21, 2016
-
-
rswindell authored
smb_voted_already(), e.g. to @-codes in a custom msg header. New @-codes (e.g. for custom message headers): @MSG_VOTED@ @MSG_UPVOTED@ @MSG_DOWNVOTED@ These all 3 act the same way: they display the PollAnswerChecked (checkmark) if the user voted on the currently displayed message/poll, if the user up-voted or if the user-downvoted. If the user did not vote, nothing is displayed.
-
- Nov 18, 2016
-
-
rswindell authored
- Closures (polls can be closed for new voting by the pollster) - Results can have configurable visibility: a. Only to voters (and the pollster) - the default b. Everyone c. Everyone once the poll has closed d. Only the pollster Changes to smb_getmsgtxt(): Main change: poll questions can now be quoted when replying to a posted poll (the results cannot be quoted). Also: there's now automatically a blank line inserted between comment header fields and poll answers or the msg body text. Also: upon any malloc failure, the function now returns NULL. New functions: smb_msg_is_from() and smb_addpollclosure().
-
- Nov 15, 2016
-
-
rswindell authored
-
- Nov 08, 2016
-
-
rswindell authored
The beginnings of an SMB-based voting system - very experimental: The concept is that a "vote" message can be used to reply to: 1. A normal message, as either an upvote or a downvote, ala social media 2. A poll, polls can either allow a single choice answer or multiple answers Vote messages won't be visible as normal messages (e.g. when reading messages online) and SMB processing software (e.g. SBBSecho) should ignore these messages because they have no body text. Polls are going to need more work, but the idea is to have the poll question as a single (newly defined) hfield and the possible answers as dfields.
-
- Dec 10, 2015
-
-
rswindell authored
- it actually *is* an expected condition that a to_net.addr or from_net.addr msg header field is populated with a valid address (string) even though the to_net.type or from_net.type value is NET_NONE. The nntpservice.js and newslink.js modules rely on this behavior to display and export local NNTP-posters' email addresses in message headers, but still be able to identify newslink-imported messages as *not* local (the from_net.type = NET_INTERNET) and thus not export them back to the network. This was not the original intention behind these header fields in SMB, but it was retrofitted to support this condition 10+ years ago and I forgot.
-
- Dec 07, 2015
-
-
rswindell authored
Bug-fix: MSG_TO_NET would not expand properly (to a blank string) when the to_net.type header value was NET_NONE.
-
- Nov 25, 2015
-
-
rswindell authored
-