Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
custom:atcodes [2020/09/17 23:04]
digital man [System Information] Added SYSAVAIL
custom:atcodes [2022/02/26 12:35] (current)
digital man [System Information] Add BUILD_DATE and BUILD_TIME
Line 1: Line 1:
 ====== Message Variables (@-codes) ====== ====== Message Variables (@-codes) ======
  
-Synchronet sysop-posted messages, text and menu files, and some lines in the ''​[[dir:​ctrl]]/​[[text.dat]]''​ file may contain special //Message Variables//,​ also called //@-codes// ("at codes",​ some BBS authors and sysops refer to these types of codes as "MCI codes"​((and not because of the defunct phone company))). @-codes may also be displayed using the ''​bbs.atcode()''​ JavaScript method.+Synchronet sysop-posted messages, text and menu files, and some lines in the ''​[[dir:​ctrl]]/​[[text.dat]]''​ file may contain special //Message Variables//,​ also called //@-codes// ("at codes",​ some BBS authors and sysops refer to these types of codes as "@ Macros"​ or "@ Variables"​ or "MCI codes"​((and not because of the defunct phone company))). @-codes may also be displayed using the ''​bbs.atcode()'' ​[[JavaScript]] method.
  
 @-codes are called such because they begin and end with the ''​@''​ (ASCII 64) ("​at"​) character. The code names themselves (sandwiched between the @'s) must be entered using only ''​UPPERCASE''​ letters. Some additional symbols and numbers may also be included in the @-code, but never a space. @-codes are called such because they begin and end with the ''​@''​ (ASCII 64) ("​at"​) character. The code names themselves (sandwiched between the @'s) must be entered using only ''​UPPERCASE''​ letters. Some additional symbols and numbers may also be included in the @-code, but never a space.
Line 62: Line 62:
 |AUTODEL ​       |                |Maximum days of user inactivity before auto-deletion or "​unlimited"​ | |AUTODEL ​       |                |Maximum days of user inactivity before auto-deletion or "​unlimited"​ |
 |BBS            |BOARDNAME ​      |Name of BBS |  |BBS            |BOARDNAME ​      |Name of BBS |
 +|BUILD_DATE ​    ​| ​               |Date of Synchronet build |
 +|BUILD_TIME ​    ​| ​               |Time of Synchronet build |
 |COMPILER ​      ​| ​               |Compiler used to build Synchronet| |COMPILER ​      ​| ​               |Compiler used to build Synchronet|
 |CONF           ​| ​               |Name of current Group and Sub-board| |CONF           ​| ​               |Name of current Group and Sub-board|
Line 68: Line 70:
 |COPYRIGHT ​     |                |Synchronet copyright details| |COPYRIGHT ​     |                |Synchronet copyright details|
 |DATE           ​|SYSDATE ​        ​|Current system date (in "​DD/​MM/​YY"​ or "​MM/​DD/​YY"​ format)| |DATE           ​|SYSDATE ​        ​|Current system date (in "​DD/​MM/​YY"​ or "​MM/​DD/​YY"​ format)|
 +|DATE://​fmt// ​  ​|TIME://​fmt// ​   |Current system date in specified [[strftime]] format |
 |DATEFMT ​       |                |Date display/​input format: "​DD/​MM/​YY"​ or "​MM/​DD/​YY"​ | |DATEFMT ​       |                |Date display/​input format: "​DD/​MM/​YY"​ or "​MM/​DD/​YY"​ |
 |DATETIME ​      ​| ​               |Current system date and time (in 24-char long format)| |DATETIME ​      ​| ​               |Current system date and time (in 24-char long format)|
Line 79: Line 82:
 |FIDOADDR ​      ​| ​               |System'​s primary FidoNet address ​              | |FIDOADDR ​      ​| ​               |System'​s primary FidoNet address ​              |
 |FILES ​         |                |Number of files in the user's currently selected file transfer directory | |FILES ​         |                |Number of files in the user's currently selected file transfer directory |
-|FILES://<code>// |              |Number of files in the file transfer directory specified by internal-//​code//​ | +|FILES://​code//​ |               ​|Number of files in the file transfer directory specified by internal-//​code//​ | 
-|FILES://<path>// |              |Number of files in the directory specified by //path// |+|FILES://​path//​ |               ​|Number of files in the directory specified by //path// |
 |FILESIZE ​      ​| ​               |Total size of all files in the user's currently selected file transfer directory | |FILESIZE ​      ​| ​               |Total size of all files in the user's currently selected file transfer directory |
-|FILESIZE://​<code>//|            |Total size of all files in the file transfer directory specified by internal-//​code//​| +|FILESIZE://​code//​| ​             |Total size of all files in the file transfer directory specified by internal-//​code//​| 
-|FILESIZE://​<path>//|            |Total size of all files matching the path/​filespec specified in //path//|+|FILESIZE://​path//​| ​             |Total size of all files matching the path/​filespec specified in //path//|
 |FILEKB ​        ​| ​               |Total size (in kibibytes) of all files in the user's currently selected file transfer directory | |FILEKB ​        ​| ​               |Total size (in kibibytes) of all files in the user's currently selected file transfer directory |
-|FILEKB://<code>//             |Total size (in kibibytes) of all files in the file transfer directory specified by internal-//​code//​| +|FILEKB://​code//​ |               ​|Total size (in kibibytes) of all files in the file transfer directory specified by internal-//​code//​| 
-|FILEKB://<path>//             |Total size (in kibibytes) of all files matching the path/​filespec specified in //path//|+|FILEKB://​path//​ |               ​|Total size (in kibibytes) of all files matching the path/​filespec specified in //path//|
 |FILEMB ​        ​| ​               |Total size (in mebibytes) of all files in the user's currently selected file transfer directory | |FILEMB ​        ​| ​               |Total size (in mebibytes) of all files in the user's currently selected file transfer directory |
-|FILEMB://<code>//             |Total size (in mebibytes) of all files in the file transfer directory specified by internal-//​code//​| +|FILEMB://​code//​ |               ​|Total size (in mebibytes) of all files in the file transfer directory specified by internal-//​code//​| 
-|FILEMB://<path>//             |Total size (in mebibytes) of all files matching the path/​filespec specified in //path//|+|FILEMB://​path//​ |               ​|Total size (in mebibytes) of all files matching the path/​filespec specified in //path//|
 |FILEGB ​        ​| ​               |Total size (in gibibytes) of all files in the user's currently selected file transfer directory | |FILEGB ​        ​| ​               |Total size (in gibibytes) of all files in the user's currently selected file transfer directory |
-|FILEGB://<code>//             |Total size (in gibibytes) of all files in the file transfer directory specified by internal-//​code//​| +|FILEGB://​code//​| ​               |Total size (in gibibytes) of all files in the file transfer directory specified by internal-//​code//​| 
-|FILEGB://<path>//             |Total size (in gibibytes) of all files matching the path/​filespec specified in //path//|+|FILEGB://​path//​| ​               |Total size (in gibibytes) of all files matching the path/​filespec specified in //path//|
 |FREESPACE ​     |                |Free disk space available for uploads (in bytes) | |FREESPACE ​     |                |Free disk space available for uploads (in bytes) |
 |FREESPACEK ​    ​| ​               |Free disk space available for uploads (in kibibytes) | |FREESPACEK ​    ​| ​               |Free disk space available for uploads (in kibibytes) |
 |FULL_VER ​      ​| ​               |Synchronet full version number (e.g. "​3.15a"​)| |FULL_VER ​      ​| ​               |Synchronet full version number (e.g. "​3.15a"​)|
 +|GIT_BRANCH ​    ​| ​               |Synchronet Git repository branch name (e.g. "​master"​)|
 +|GIT_HASH ​      ​| ​               |Synchronet Git repository commit hash (most significant Git-SHA hex-digits)|
 |GRP            |                |Current message group short description | |GRP            |                |Current message group short description |
 |GRPL           ​| ​               |Current message group long description | |GRPL           ​| ​               |Current message group long description |
Line 175: Line 180:
 |MSG_UPVOTED ​   |                |Current user up-voted status for current message (checkmark) | |MSG_UPVOTED ​   |                |Current user up-voted status for current message (checkmark) |
 |MSG_DOWNVOTED ​ |                |Current user down-voted status for current message (checkmark) | |MSG_DOWNVOTED ​ |                |Current user down-voted status for current message (checkmark) |
 +|MSG_THREAD_ID ​ |                |Current message thread'​s thread-id (message number) |
 +|MSG_THREAD_NEXT| ​               |Current message thread'​s next message number |
 +|MSG_THREAD_BACK| ​               |Current message thread'​s previous message number |
 +|MSG_THREAD_FIRST| ​              ​|Current message'​s first reply message number |
 |FILE_AREA ​     |                |Current file area (lib and directory) names | |FILE_AREA ​     |                |Current file area (lib and directory) names |
 |FILE_AREA_DESC |                |Current file area (lib and directory) descriptions | |FILE_AREA_DESC |                |Current file area (lib and directory) descriptions |
Line 215: Line 224:
 |SYSOP ​         |                |Name of System Operator | |SYSOP ​         |                |Name of System Operator |
 |SYSAVAIL ​      ​| ​               |Sysop availability for chat (e.g. "​Available"​ or "Not Available"​)| |SYSAVAIL ​      ​| ​               |Sysop availability for chat (e.g. "​Available"​ or "Not Available"​)|
 +|SYSAVAILYN ​    ​| ​               |Sysop availability for chat (e.g. "​Yes"​ or "​No"​)|
 |TFILE ​         |                |Total number of files on system | |TFILE ​         |                |Total number of files on system |
 |TIME           ​|SYSTIME ​        ​|Current system time | |TIME           ​|SYSTIME ​        ​|Current system time |
Line 235: Line 245:
 |ALIAS ​       |NAME, USER      |User'​s alias | |ALIAS ​       |NAME, USER      |User'​s alias |
 |BDATE ​       |                |User'​s birth date (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) | |BDATE ​       |                |User'​s birth date (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) |
 +|BDATE://​fmt//​|BIRTH://​fmt// ​  ​|User'​s birth date in the specified [[strftime]] format |
 +|BDATEFMT ​    ​|BIRTHFMT ​       |User birthdate input format (i.e. either "​MM/​DD/​YYYY"​ or "​DD/​MM/​YYYY"​) |
 +|BIRTH ​       |                |User'​s birth date (in "​MM/​DD/​YYYY"​ or "​DD/​MM/​YYYY"​ format) |
 |BYTELIMIT ​   |                |User'​s free credits per day                     | |BYTELIMIT ​   |                |User'​s free credits per day                     |
 |BYTESLEFT ​   |                |User'​s total credits ​                           | |BYTESLEFT ​   |                |User'​s total credits ​                           |
Line 249: Line 262:
 |ETODAY ​      ​| ​               |Number of emails sent today by user | |ETODAY ​      ​| ​               |Number of emails sent today by user |
 |EXPDATE ​     |EXDATE ​         |User'​s expiration date (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) | |EXPDATE ​     |EXDATE ​         |User'​s expiration date (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) |
 +|EXPDATE://​fmt//​ |             ​|User'​s expiration date in specified [[strftime]] format |
 |EXPDAYS ​     |                |Days left before user expires | |EXPDAYS ​     |                |Days left before user expires |
 |FBACKS ​      ​| ​               |Number of feedback messages sent by user | |FBACKS ​      ​| ​               |Number of feedback messages sent by user |
 |FIRST ​       |                |First word of user's alias                     | |FIRST ​       |                |First word of user's alias                     |
 |FIRSTON ​     |                |Date and time of user's first logon              | |FIRSTON ​     |                |Date and time of user's first logon              |
 +|FIRSTON://​fmt//​| ​             |Date and time of user's first logon in specified [[strftime]] format |
 |FIRSTDATEON ​ |SINCE ​          |Date of user's first logon (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) | |FIRSTDATEON ​ |SINCE ​          |Date of user's first logon (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) |
 |FIRSTTIMEON ​ |                |Time of user's first logon (in "HH:MM am" or "​HH:​MM:​SS"​ format) | |FIRSTTIMEON ​ |                |Time of user's first logon (in "HH:MM am" or "​HH:​MM:​SS"​ format) |
Line 258: Line 273:
 |FROM         ​| ​               |User'​s location (e.g. "City, State"​) ​                | |FROM         ​| ​               |User'​s location (e.g. "City, State"​) ​                |
 |FREECDT ​       |                |User'​s remaining freely-awarded (unearned) credits for today         | |FREECDT ​       |                |User'​s remaining freely-awarded (unearned) credits for today         |
 +|FWD            |                |User'​s netmail forward status (e.g. "​On"​ or "​Off"​) (new in v3.18c)|
 |HANDLE ​        ​| ​               |User'​s chat handle ​                             | |HANDLE ​        ​| ​               |User'​s chat handle ​                             |
 |HOST           ​|CPU ​            ​|Client'​s hostname | |HOST           ​|CPU ​            ​|Client'​s hostname |
-|IP             |CID, MEMO1      ​|Client'​s IP address or Caller-ID information ​    |+|IP             ​|CID ​            ​|Client'​s IP address or Caller-ID information ​    |
 |LAST           ​| ​               |Last word of user's alias |                        ​ |LAST           ​| ​               |Last word of user's alias |                        ​
 |LASTDATEON ​    ​| ​               |Date of user's last logon (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) | |LASTDATEON ​    ​| ​               |Date of user's last logon (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) |
 +|LASTIP ​        ​| ​               |IP address of user's last logoff (new in v3.18c) |
 |LASTNEW ​       |                |Date of user's last new file scan (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) ​  ​| ​ |LASTNEW ​       |                |Date of user's last new file scan (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) ​  ​| ​
 +|LASTNEW://​fmt//​| ​               |Date and time of user's last new file scan in specified [[strftime]] format |
 |LASTON ​        ​| ​               |Date and time of user's last logon              | |LASTON ​        ​| ​               |Date and time of user's last logon              |
 +|LASTON://​fmt//​ |                |Date and time of user's last logon in specified [[strftime]] format |
 |LASTTIMEON ​    ​| ​               |Time of user's last logon (in "HH:MM am" or "​HH:​MM:​SS"​ format) | |LASTTIMEON ​    ​| ​               |Time of user's last logon (in "HH:MM am" or "​HH:​MM:​SS"​ format) |
 |LASTREAL ​      ​| ​               |Last word of user's real name                   | |LASTREAL ​      ​| ​               |Last word of user's real name                   |
Line 270: Line 289:
 |KBLEFT ​        ​| ​               |User'​s total credits (in kibibytes) ​            | |KBLEFT ​        ​| ​               |User'​s total credits (in kibibytes) ​            |
 |KBLIMIT ​       |DLKLIMIT, MAXDK |User'​s free credits per day (in kibibytes) ​     | |KBLIMIT ​       |DLKLIMIT, MAXDK |User'​s free credits per day (in kibibytes) ​     |
-|MAILW        ​| ​               |Number of mail messages waiting for current user (includes SPAM)| +|MAILR        ​| ​                 |Number ​of read mail messages waiting for current user| 
-|MAILW://​x// ​ |MAILW#//​x// ​        ​|Number ​of mail messages waiting for current ​user number //x// (x=0 for all users)| +|MAILR://​x// ​ |MAILR#//​x// ​      ​|Number of read mail messages waiting for user number //x// (x=0 for all users)| 
-|MAILP ​       |                |Number of pending mail messages sent by current user| +|MAILU ​       |                  |Number of unread mail messages waiting for current user| 
-|MAILP://​x// ​ |MAILP#//​x// ​        ​|Number of pending mail messages sent by current ​user number //x// |+|MAILU://​x// ​ |MAILU#//​x// ​      ​|Number of unread mail messages waiting for user number //x// (x=0 for all users)| 
 +|MAILW ​       |                  |Total number ​of mail messages waiting for current user (includes SPAM)| 
 +|MAILW://​x// ​ |MAILW#//​x// ​      ​|Total number ​of mail messages waiting for user number //x// (x=0 for all users)| 
 +|MAILP ​       |                  |Number of pending mail messages sent by current user| 
 +|MAILP://​x// ​ |MAILP#//​x// ​      ​|Number of pending mail messages sent by user number //x// |
 |MAXCALLS ​    ​| ​               |Maximum number of calls/​logons per day allowed per user's security level | |MAXCALLS ​    ​| ​               |Maximum number of calls/​logons per day allowed per user's security level |
 |MAXLINES ​    ​| ​               |Maximum number of lines per message allowed per user's security level | |MAXLINES ​    ​| ​               |Maximum number of lines per message allowed per user's security level |
Line 287: Line 310:
 |MTOTAL ​      ​| ​               |Total minutes used during all previous logons | |MTOTAL ​      ​| ​               |Total minutes used during all previous logons |
 |NEWFILETIME ​ |                |Date and time of user's last new file scan (see LASTNEW) | |NEWFILETIME ​ |                |Date and time of user's last new file scan (see LASTNEW) |
 +|NETMAIL ​     |                |User'​s personal email or netmail address (new in v3.18c) |
 +|NOTE         ​|MEMO1 ​          ​|User'​s note (new in v3.18c) |
 |PAGER ​       |                |Chat pager enabled status (e.g. "​On"​ or "​Off"​)| |PAGER ​       |                |Chat pager enabled status (e.g. "​On"​ or "​Off"​)|
-|PCR          |                |User'​s post/call ratio (0-100) | +|PCR          |                |User'​s post/call ratio, as a percentage ​(not capped at 100) | 
-|PHONE ​       |HOMEPHONE, DATA, DATAPHONE |Users's phone number |+|PHONE ​       |HOMEPHONE, DATA, DATAPHONE |User's phone number |
 |PTODAY ​      ​| ​               |Number of messages posted by user today | |PTODAY ​      ​| ​               |Number of messages posted by user today |
 |PWAGE ​       |                |Age (in days) of the current user's password | |PWAGE ​       |                |Age (in days) of the current user's password |
 |PWDATE ​      ​|MEMO ​           |Date of user's last password modification (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) | |PWDATE ​      ​|MEMO ​           |Date of user's last password modification (in "​MM/​DD/​YY"​ or "​DD/​MM/​YY"​ format) |
 +|PWDATE://​fmt//​| ​              ​|Date/​time of user's last password modified in specified [[strftime]] format |
 |REALNAME ​    ​|COMPANY,​ MEMO2  |User'​s real name | |REALNAME ​    ​|COMPANY,​ MEMO2  |User'​s real name |
 |SEC          |SECURITY ​       |User'​s security level (0-99) |                          ​ |SEC          |SECURITY ​       |User'​s security level (0-99) |                          ​
Line 305: Line 331:
 |TIMEON ​      ​|TIMEUSED |Time used this call in minutes| |TIMEON ​      ​|TIMEUSED |Time used this call in minutes|
 |TLEFT ​       |         |Time left (in "​H:​MM:​SS"​ format)|  |TLEFT ​       |         |Time left (in "​H:​MM:​SS"​ format)|
 +|TMP          |         ​|Temporary file type chosen by user (e.g. "​ZIP"​) (new in v3.18c) |
 |TPERC ​       |         |Time allowed per call (in "​H:​MM:​SS"​ format) | |TPERC ​       |         |Time allowed per call (in "​H:​MM:​SS"​ format) |
 |TPERD ​       |         |Time allowed per day (in "​H:​MM:​SS"​ format) |  |TPERD ​       |         |Time allowed per day (in "​H:​MM:​SS"​ format) |
Line 310: Line 337:
 |TTOTAL ​      ​| ​        ​|Total time used by user for all previous calls/​logons (in "​HH:​MM"​ format) | |TTOTAL ​      ​| ​        ​|Total time used by user for all previous calls/​logons (in "​HH:​MM"​ format) |
 |TUSED ​       |         |Time used this call (in "​H:​MM:​SS"​ format) |  |TUSED ​       |         |Time used this call (in "​H:​MM:​SS"​ format) |
 +|UDR          |         ​|User'​s upload/​download byte ratio, as a percentage (not capped at 100) |
 +|UDFR         ​| ​        ​|User'​s upload/​download file ratio, as a percentage (not capped at 100) |
 |UPBYTES ​     |         ​|Total bytes uploaded by user | |UPBYTES ​     |         ​|Total bytes uploaded by user |
 |UPFILES ​     |UPS      |Total files uploaded by user |  |UPFILES ​     |UPS      |Total files uploaded by user |
Line 331: Line 360:
 |HOT:​STRICT ​     |        |Define a new mouse hot-spot color for defining strict hot-spots | |HOT:​STRICT ​     |        |Define a new mouse hot-spot color for defining strict hot-spots |
 |HOT:​OFF ​        ​| ​       |Disable hot-spot by color/​attribute definitions for the remainder of the file (or until re-enabled) | |HOT:​OFF ​        ​| ​       |Disable hot-spot by color/​attribute definitions for the remainder of the file (or until re-enabled) |
-|~//text//       ​| ​       |Define a single hungry hot-spot (where the displayed text and command keys are the same) | +|~//ctext//       ​| ​      ​|Define a single hungry hot-spot (where the displayed text and command keys are the same) and //ctext// may contain C-escape sequences ​
-|~//text//~//cmd// |      |Define a single hungry hot-spot with an alternate command to stuff in the keyboard input buffer | +|~//ctext//~//cmd// |     ​|Define a single hungry hot-spot with an alternate command to stuff in the keyboard input buffer ​and //ctext// may contain C-escape sequences  ​
-|`//text//       ​| ​       |Define a single strict hot-spot (where the displayed text and command keys are the same) | +|`//ctext//       ​| ​      ​|Define a single strict hot-spot (where the displayed text and command keys are the same)  //​ctext//​ may contain C-escape sequences  ​
-|`//text//`//cmd// |      |Define a single strict hot-spot with an alternate command to stuff in the keyboard input buffer |+|`//ctext//`//cmd// |     ​|Define a single strict hot-spot with an alternate command to stuff in the keyboard input buffer ​and //ctext// may contain C-escape sequences  ​|
 |CRLF            |        |Send a carriage return/​line-feed pair   | |CRLF            |        |Send a carriage return/​line-feed pair   |
 |CHECKMARK ​      ​| ​       |Send a check mark symbol appropriate for the user's terminal | |CHECKMARK ​      ​| ​       |Send a check mark symbol appropriate for the user's terminal |
Line 348: Line 377:
 |QUITCHAR ​       |        |Print the character that corresponds with a "​quit"​ command key (e.g. ''​Q''​) | |QUITCHAR ​       |        |Print the character that corresponds with a "​quit"​ command key (e.g. ''​Q''​) |
 |EOF             ​| ​       |End-of-file (stop parsing/​displaying) | |EOF             ​| ​       |End-of-file (stop parsing/​displaying) |
-|PAUSE ​          ​|MORE ​   |Force a screen pause (hit a keyprompt|+|PAUSE ​          ​|MORE ​   |Force a screen pause and a ''​[Hit ​a key]'' ​prompt, if '​N'​ or '​Q'​ are typed, the displayed message/​file is aborted ​|
 |PON             ​|AUTOMORE|Toggle automatic screen pause on | |PON             ​|AUTOMORE|Toggle automatic screen pause on |
 |POFF            |NOPAUSE |Toggle automatic screen pause off | |POFF            |NOPAUSE |Toggle automatic screen pause off |
 |RESETPAUSE ​     |        |Reset the automatic screen pause line counter | |RESETPAUSE ​     |        |Reset the automatic screen pause line counter |
-|DELAY://​n// ​        ​|        |Wait //n// 10ths of a second before continuing | +|GETKEY ​         |        |Wait indefinitely for any key press before continuing | 
-|UP://​n// ​           |        |Move cursor up //n// rows                   | +|CONTINUE ​       |        |Wait indefinitely for any key press before continuing and abort the message/​file display if '​N'​ or '​Q'​ are typed |  
-|DOWN://​n// ​         |        |Move cursor down //n// rows                 | +|WAIT://​n// ​     |        |Wait up to //n// 10ths of a second for a key press before continuing | 
-|RIGHT://​n// ​        ​|        |Move cursor right //n// columns ​            | +|DELAY://​n// ​    ​|        |Wait //n// 10ths of a second before continuing | 
-|LEFT://​n// ​         |        |Move cursor left //n// columns ​             |+|UP://​n// ​       |        |Move cursor up //n// rows                   | 
 +|DOWN://​n// ​     |        |Move cursor down //n// rows                 | 
 +|RIGHT://​n// ​    ​|        |Move cursor right //n// columns ​            | 
 +|LEFT://​n// ​     |        |Move cursor left //n// columns ​             |
 |GOTOXY://​x,​y// ​ |        |Move cursor to //x/////y// coordinate (1-based) | |GOTOXY://​x,​y// ​ |        |Move cursor to //x/////y// coordinate (1-based) |
 |POS://​x// ​      ​| ​       |Move cursor to column //x// (1-based) | |POS://​x// ​      ​| ​       |Move cursor to column //x// (1-based) |
Line 374: Line 406:
 |CENTER ​         |        |Middle-align the remaining text on the line | |CENTER ​         |        |Middle-align the remaining text on the line |
 |SYSONLY ​        ​| ​       |Toggle off/on visibility for non-sysops | |SYSONLY ​        ​| ​       |Toggle off/on visibility for non-sysops |
-|FILL://​text// ​  ​|        |Repeat the specified ​text, filling the current line (to terminal columns - 1)  |+|SHOW://ars//    |        |Turn off the display of the following ​text for users not meeting the specified [[access:​requirements|Access Requirements String]] (without spaces). | 
 +|SHOW            |        |Turn on the display of following text for all users | 
 +|FILL://ctext//  ​|        |Repeat the specified ​//ctext// (may contain C-escape sequences), filling the current line (to terminal columns - 1)  |
 |WIDE://​text// ​  ​| ​       |Display specified //text// double-wide,​ using Unicode "​fullwidth"​ characters if possible | |WIDE://​text// ​  ​| ​       |Display specified //text// double-wide,​ using Unicode "​fullwidth"​ characters if possible |
 |U+//​code// ​     |        |Send a Unicode character code point (in hexadecimal) to UTF-8 terminal or an automatic fallback character, if supported((Not all Unicode code points support fallback characters for ASCII/​CP437/​PETSCII terminals)) | |U+//​code// ​     |        |Send a Unicode character code point (in hexadecimal) to UTF-8 terminal or an automatic fallback character, if supported((Not all Unicode code points support fallback characters for ASCII/​CP437/​PETSCII terminals)) |
Line 380: Line 414:
 |U+//​code//,//​char//​ |        | Send a Unicode character code point, specifying fallback character value in hexadecimal (or ''​0''​ for //none//) | |U+//​code//,//​char//​ |        | Send a Unicode character code point, specifying fallback character value in hexadecimal (or ''​0''​ for //none//) |
 |U+//​code//​!//​char//​ |        | Send a Unicode character code point, specifying fallback character only to used when no automatic fallback is available | |U+//​code//​!//​char//​ |        | Send a Unicode character code point, specifying fallback character only to used when no automatic fallback is available |
 +|!//x// |                     | Execute the terminal/​attribute control sequences for one or more [[Ctrl-A Codes]] (operands) represented by //x//|
 +==== C-Text ====
 +
 +Some @-code arguments (e.g. //ctext// and ''​strftime''​-formatted //fmt//) support escape sequences similar to [[wp>​Escape sequences in C]], e.g.:
 +
 +^ Sequence ^ Expands to ^
 +| ''​\a'' ​         | Alarm (BEL, Ctrl-G) |
 +| ''​\b'' ​         | Backspace (Ctrl-H) |
 +| ''​\e'' ​         | Escape (Ctrl-[) |
 +| ''​\f'' ​         | Form-feed (Ctrl-L) |
 +| ''​\n'' ​         | Line-feed (Ctrl-J) |
 +| ''​\r'' ​         | Carriage-return (Ctrl-M) |
 +| ''​\t'' ​         | Horizontal tab (Ctrl-I) |
 +| ''​\\'' ​         | ''​\''​ |
 +| ''​\x03'' ​       | Cancel / End of text (Ctrl-C) |
 +| ''​\x20'' ​       | Space |
 +| ''​\x2D'' ​       | ''​-''​ |
 +| ''​\x3A'' ​       | '':''​ |
 +| ''​\x40'' ​       | ''​@''​ |
 +| ''​\x7C'' ​       | ''​|''​ |
  
 ==== Unicode ==== ==== Unicode ====
Line 411: Line 465:
  
 ^Code             ​^Description ^ ^Code             ​^Description ^
-|MENU:​filename ​   |Display a menu file from the ''​[[dir:​text]]/​menu''​ directory| +|MENU://filename//    ​|Display a menu file from the ''​[[dir:​text]]/​menu''​ directory| 
-|CONDMENU:​filename|Display a menu file from the ''​[[dir:​text]]/​menu''​ directory, only if it exists (conditionally)| +|CONDMENU://filename//|Display a menu file from the ''​[[dir:​text]]/​menu''​ directory, only if it exists (conditionally)| 
-|TYPE:​filename ​   |Display a specific filename (may include [[:​config:​cmdline#​specifiers]]) | +|TYPE://filename//    ​|Display a specific filename (may include [[:​config:​cmdline#​specifiers]]) | 
-|INCLUDE:​filename |Display a specific filename (may include [[:​config:​cmdline#​specifiers]]) without a trailing CR/LF pair | +|INCLUDE://filename// |Display a specific filename (may include [[:​config:​cmdline#​specifiers]]) without a trailing CR/LF pair | 
-|EXEC:​module ​     |Execute an in-process module (Baja or JavaScript) from the ''​[[dir:​exec]]''​ directory| +|EXEC://module//      ​|Execute an in-process module (Baja or JavaScript) from the ''​[[dir:​exec]]''​ directory| 
-|EXEC_XTRN:​code ​  ​|Execute an external online program (e.g. door) by specifying the internal code| +|EXEC_XTRN://code//   |Execute an external online program (e.g. door) by specifying the internal code| 
-|SETSTR:​str ​      |Sets the current Baja/PCMS command string to //str//|+|SETSTR://str//       |Sets the current Baja/PCMS command string to //str//|
 |STR              |Display the current Baja/PCMS command string value |\ |STR              |Display the current Baja/PCMS command string value |\
-|STRVAR:​name ​     |Display the contents of a Baja/PCMS command shell string variable, specify //name// in ALL-CAPS unless ''​baja -c''​ was used((this feature only works for variables defined in command shells)) | +|STRVAR://name//      ​|Display the contents of a Baja/PCMS command shell string variable, specify //name// in ALL-CAPS unless ''​baja -c''​ was used((this feature only works for variables defined in command shells)) | 
-|JS:​name ​         |Display the value of a named JavaScript property | +|JS://name//          ​|Display the value of a named JavaScript property | 
 +|TEXT://​number// ​     |Display the specified string number from the ''​[[dir:​ctrl]]/​[[custom:​text.dat]]''​ file.|
 ===== See Also ===== ===== See Also =====
   * [[custom:​menu_files|Menu Files]]   * [[custom:​menu_files|Menu Files]]

In Other Languages