Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
custom:atcodes [2020/04/24 00:48] – [User Information] Add FREECDT digital mancustom:atcodes [2024/01/25 14:03] (current) – [Message Variables (@-codes)] text string IDs are an exception to the UPERDCASE requirement digital man
Line 1: Line 1:
-====== @-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 variables 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.+@-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((Exception: text string IDs used as @-codes are typically mixed-case)). Some additional symbols and numbers may also be included in the @-code, but never a space.
  
-Some of the @-codes supported in Synchronet have unusual names or aliases specifically for //PCBoard// and/or //Wildcat!// BBS Software compatibility.+Some of the @-codes supported in Synchronet have unusual names or aliases specifically for //PCBoard// and/or //Wildcat!// BBS Software compatibility. Although this compatibility with these other BBS packages is less of a concern these days, the unusual code names remain.
  
 Synchronet also, optionally, supports some [[custom:colors|Color Codes]] which begin and/or end with the ''@'' character (again, specifically for //PCBoard// and/or //Wildcat!// BBS Software compatibility). These //PCBoard// and //Wildcat!// color codes are not usually referred to as @-codes and **do not** fall under the usage/formatting guidelines given on this page. Synchronet also, optionally, supports some [[custom:colors|Color Codes]] which begin and/or end with the ''@'' character (again, specifically for //PCBoard// and/or //Wildcat!// BBS Software compatibility). These //PCBoard// and //Wildcat!// color codes are not usually referred to as @-codes and **do not** fall under the usage/formatting guidelines given on this page.
Line 22: Line 22:
 Most @-codes support an optional format modifier. Modifiers are appended to the end of the @-code variable name and before the terminating ''@'' character, separated from the code itself with either a hyphen (''-'') or a pipe (''|'') character. Most @-codes support an optional format modifier. Modifiers are appended to the end of the @-code variable name and before the terminating ''@'' character, separated from the code itself with either a hyphen (''-'') or a pipe (''|'') character.
  
-When using the hyphen (''-'') modifier separator, only one format modifier may be used per @-code instance (you cannot combine format modifiers) and @-code arguments (separated from the code with a colon) are **not** supported).+When using the hyphen (''-'') modifier separator, only one format modifier may be used per @-code instance (you cannot combine format modifiers) and @-code arguments (separated from the code with a colon) are **not** supported.
  
 When using the pipe (''|'') modifier separator, some modifiers may be combined with others (e.g. ''|TR'') and @-code arguments (separated from the code with a colon) **are** supported. When using the pipe (''|'') modifier separator, some modifiers may be combined with others (e.g. ''|TR'') and @-code arguments (separated from the code with a colon) **are** supported.
Line 33: Line 33:
 | ''Z''   | Zero-pad and right-justify an expanded @-code (added in v3.17b) | | ''Z''   | Zero-pad and right-justify an expanded @-code (added in v3.17b) |
 | ''T''   | Thousands-separated (e.g. with a comma) numeric values, may be combined with other modifiers (added in v3.17c) | | ''T''   | Thousands-separated (e.g. with a comma) numeric values, may be combined with other modifiers (added in v3.17c) |
 +| ''U''   | Convert all alphabetic characters in string to uppercase (added in v3.18a) |
 | ''>''   | Allow the terminal to wrap (don't truncate) overly-long expanded @-codes (added in v3.17c) | | ''>''   | Allow the terminal to wrap (don't truncate) overly-long expanded @-codes (added in v3.17c) |
  
Line 49: Line 50:
 When a //width// is specified, expanded @-code strings which are **longer** than the specified width will be truncated (shortened) to adhere to the requested width. The left-most characters are preserved/displayed while the right-most characters are truncated (lost). When a //width// is specified, expanded @-code strings which are **longer** than the specified width will be truncated (shortened) to adhere to the requested width. The left-most characters are preserved/displayed while the right-most characters are truncated (lost).
  
-By default, //most// expanded @-codes that would reach the last column of the terminal screen are truncated (shortened) so as to not cause an automatic line-wrap of the user's terminal. If you wish for an expanded @-code to be displayed in the last terminal column, or beyond ( possibly causing an automatic line-wrap of the terminal) use the ''>'' format modifier.+By default, //most// expanded @-codes that would reach the last column of the terminal screen are truncated (shortened) so as to not cause an automatic line-wrap of the user's terminal. If you wish for an expanded @-code to be displayed in the last terminal column, or beyond (possibly causing an automatic line-wrap of the terminal) use the ''>'' format modifier.
  
 === Exceptions === === Exceptions ===
Line 61: 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 67: 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 78: 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 120: Line 126:
 |ONODES         |ONODE, ON       |Number of other active nodes (not counting current node) | |ONODES         |ONODE, ON       |Number of other active nodes (not counting current node) |
 |OS_VER                        |Operating system type and version information| |OS_VER                        |Operating system type and version information|
 +|OS_CPU                        |Processor architecture name according to the operating system (e.g. "x86", new in v3.20) |
 |PLATFORM                      |Platform or operating system name (e.g. "win32", "linux")| |PLATFORM                      |Platform or operating system name (e.g. "win32", "linux")|
 |PWDAYS                        |Maximum age (in days) of user's password before forced-change or "unlimited" | |PWDAYS                        |Maximum age (in days) of user's password before forced-change or "unlimited" |
Line 148: Line 155:
 |MSG_TO                        |Current message to-user name/number/address| |MSG_TO                        |Current message to-user name/number/address|
 |MSG_TO_NAME    |                |Current message to-user name| |MSG_TO_NAME    |                |Current message to-user name|
 +|MSG_TO_FIRST                  |Current message to-user "first" name|
 |MSG_TO_EXT                    |Current message to-user extension (number)| |MSG_TO_EXT                    |Current message to-user extension (number)|
 |MSG_TO_NET                    |Current message to-user network address| |MSG_TO_NET                    |Current message to-user network address|
Line 154: Line 162:
 |MSG_FROM                      |Current message from-user name/number/address| |MSG_FROM                      |Current message from-user name/number/address|
 |MSG_FROM_NAME  |                |Current message from-user name| |MSG_FROM_NAME  |                |Current message from-user name|
 +|MSG_FROM_FIRST |                |Current message from-user "first" name|
 |MSG_FROM_EXT                  |Current message from-user extension (number)| |MSG_FROM_EXT                  |Current message from-user extension (number)|
 |MSG_FROM_NET                  |Current message from-user network address| |MSG_FROM_NET                  |Current message from-user network address|
Line 168: Line 177:
 |MSG_AUXATTR    |                |Current message auxiliary attributes| |MSG_AUXATTR    |                |Current message auxiliary attributes|
 |MSG_NETATTR    |                |Current message network attributes| |MSG_NETATTR    |                |Current message network attributes|
-|MSG_UPVOTES    |                |Current message total number of 'up-votes' (new v3.17)|+|MSG_UPVOTES    |                |Current message total number of 'up-votes' (new in v3.17)|
 |MSG_DOWNVOTES  |                |Current message total number of 'down-votes' (new in v3.17)| |MSG_DOWNVOTES  |                |Current message total number of 'down-votes' (new in v3.17)|
 |MSG_SCORE      |                |Current message vote score (down-votes subtracted from up-votes)| |MSG_SCORE      |                |Current message vote score (down-votes subtracted from up-votes)|
Line 174: Line 183:
 |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 213: Line 226:
 |SR             |SN-R            | " " padded and right justified (4 chars wide) |   |SR             |SN-R            | " " padded and right justified (4 chars wide) |  
 |SYSOP          |                |Name of System Operator | |SYSOP          |                |Name of System Operator |
 +|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 232: Line 247:
 |ALERTS                      |Node activity alerts enabled status (e.g. "On" or "Off") | |ALERTS                      |Node activity alerts enabled status (e.g. "On" or "Off") |
 |ALIAS        |NAME, USER      |User's alias | |ALIAS        |NAME, USER      |User's alias |
 +|ANFSCAN      |                |Automatically scan for new files after new messages (e.g. "On" or "Off") |
 +|ASKNSCAN                    |Prompt for new message scan during logon (e.g. "On" or "Off") |
 +|ASKSSCAN                    |Prompt for your personal message scan during logon (e.g. "On" or "Off") |
 +|AUTOHANG                    |Automatically hang-up after file transfers (e.g. "On" or "Off") |
 +|AUTOLOGON    |                |Automatically login via IP address (e.g. "On" or "Off") |
 |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                            |
 |CALLS        |NUMTIMESON      |Total number of logons for user | |CALLS        |NUMTIMESON      |Total number of logons for user |
 |CITY                        |User's city |                                      |CITY                        |User's city |                                     
-|COMPANY      |MEMO2           |User's company name or real name |+|CREDITS                     |Total unspent credits the user has earned |
 |DAYBYTES                    |Number of free credits used today by user | |DAYBYTES                    |Number of free credits used today by user |
 |DLBYTES      |                |Total bytes downloaded by user | |DLBYTES      |                |Total bytes downloaded by user |
Line 243: Line 266:
 |DLKLIMIT                    |User's total credits (in kibibytes) | |DLKLIMIT                    |User's total credits (in kibibytes) |
 |DOWNK        |                |Total kibibytes downloaded by user | |DOWNK        |                |Total kibibytes downloaded by user |
 +|EDITOR                      |User's selected external editor name or "None" |
 |EMAILADDR    |                |User's Internet e-mail address on your system | |EMAILADDR    |                |User's Internet e-mail address on your system |
 |EMAILS                      |Total number of emails sent by user | |EMAILS                      |Total number of emails sent by user |
 |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 |
 +|EXPERT               |Expert menu mode enabled ('On' or 'Off')|
 |FBACKS                      |Number of feedback messages sent by user | |FBACKS                      |Number of feedback messages sent by user |
 +|FILEDESC             |Display extended file descriptions in file listings ('On' or 'Off')|
 +|FILEFLAG             |Display file flagging prompt in file listings ('On' or 'Off')|
 |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) |
 |FIRSTREAL    |REAL            |First word of user's real name                 | |FIRSTREAL    |REAL            |First word of user's real name                 |
 |FROM                        |User's location (e.g. "City, State"                | |FROM                        |User's location (e.g. "City, State"                |
-|FREECDT        |                |User's remaining free 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                              |
 +|HOTKEYS      |         |Hot-key user input mode enabled ('On' or 'Off')|
 |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 268: Line 302:
 |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 | 
 +|MAXLINES                    |Maximum number of lines per message allowed per user's security level | 
 +|MAXMAILS                    |Maximum number of sent emails per day allowed per user's security level | 
 +|MAXPOSTS                    |Maximum number of posted messages per day allowed per user's security level | 
 +|MBANKED      |                |Minutes banked by user | 
 +|MEXTRA                      |Extra time earned today, in minutes | 
 +|MPERC        |TIMELIMIT       |Minutes allowed per call/logon | 
 +|MPERD        |                |Minutes allowed per day | 
 +|MSGCLS               |Clear screen before each message ('On' or 'Off')|
 |MSGLEFT      |MSGSLEFT        |Total number of messages posted by user | |MSGLEFT      |MSGSLEFT        |Total number of messages posted by user |
 |MSGREAD      |                |Number of messages read by user this call | |MSGREAD      |                |Number of messages read by user this call |
 +|MTODAY                      |Total minutes used during previous logons today |
 +|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) |
 +|NODE_USER    |                |User's alias or "UNKNOWN USER" if the current node is in anonymous mode (new in v3.20)|
 +|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) | +|PAUSESPIN    |         |Spinning cursor at pause prompts ('On' or 'Off')| 
-|PHONE        |HOMEPHONE, DATA, DATAPHONE |Users's phone number |+|PCR          |                |User's post/call ratio, as a percentage (not capped at 100) | 
 +|PHONE        |HOMEPHONE, DATA, DATAPHONE |User's phone number 
 +|PROT                        |Default file transfer protocol (key/character) | 
 +|PROTNAME                    |Full name of default file transfer protocol |
 |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 |
 +|QUIET        |         |Quiet logon mode enabled (e.g. "On" or "Off") |
 +|REALNAME     |COMPANY, MEMO2  |User's real name |
 +|REMSUBS      |         |Remember current sub-board and file director between logins ('On' or 'Off')|
 |SEC          |SECURITY        |User's security level (0-99) |                           |SEC          |SECURITY        |User's security level (0-99) |                          
 +|SHELL        |         |User's selected command shell name |
 |SPAMW        |         |Number of SPAM messages waiting | |SPAMW        |         |Number of SPAM messages waiting |
 |SPAMW://x//  |SPAMW#//x//  |Number of SPAM messages waiting for user number //x// | |SPAMW://x//  |SPAMW#//x//  |Number of SPAM messages waiting for user number //x// |
 +|SPIN                 |Spinning cursor enabled ('On' or 'Off')|
 |SPLITP               |Split-screen private chat enabled status (e.g. "On" or "Off")| |SPLITP               |Split-screen private chat enabled status (e.g. "On" or "Off")|
 |STATE        |         |User's state (from location)| |STATE        |         |User's state (from location)|
-|TEXTRA               |Extra time earned by user, in minutes |+|TBANKED      |         |Banked time in HH:MM format | 
 +|TEXTRA               |Extra time earned by user, in H:MM format |
 |TLAST        |         |Time used by user during last logon | |TLAST        |         |Time used by user during last logon |
 |TIMELEFT     |MINLEFT  |User's time left in minutes | |TIMELEFT     |MINLEFT  |User's time left in minutes |
-|TIMELIMIT    |         |Maximum time per call in minutes|  
 |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) |
-|TTODAY               |Time used by user today |+|TTODAY               |Time used by user today (in "H: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) |
 +|UPAUSE               |Automatic screen-pausing ('Hit a key' prompting) ('On' or 'Off')|
 |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 311: Line 377:
 |BEEP            |BELL    |Generate a beep sound on the user's terminal | |BEEP            |BELL    |Generate a beep sound on the user's terminal |
 |CLS                    |Clear the screen  | |CLS                    |Clear the screen  |
-|CLEAR                  |Clear the screen and eat the next newline sequence |+|CLEAR                  |Clear the screen, all existing mouse hot-spots and eat the next newline sequence 
 +|CLEAR_HOT              |Clear all existing mouse hot-spots | 
 +|CPS                    |Current/latest file download rate, in characters/bytes per second (new in v3.20)| 
 +|HOT                    |Define a new mouse hot-spot color (the color of the @-code defines the hot-spot attributes) | 
 +|HOT:HUNGRY      |        |Define a new mouse hot-spot color for defining hungry hot-spots (hungry hot-spots are the default type) | 
 +|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) | 
 +|~//ctext//             |Define a single hungry hot-spot (where the displayed text and command keys are the same) and //ctext// may contain C-escape sequences | 
 +|~//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 
 +|`//ctext//             |Define a single strict hot-spot (where the displayed text and command keys are the same)  //ctext// may contain C-escape sequences 
 +|`//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 325: Line 401:
 |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 |+
 |POFF            |NOPAUSE |Toggle automatic screen pause off | |POFF            |NOPAUSE |Toggle automatic screen pause off |
 +|PON             |AUTOMORE|Toggle automatic screen pause on |
 +|QOFF            |        |Toggle display abort-ability off |
 +|QON                    |Toggle display abort-ability on |
 |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 | +|GETDIM          |        |Request current (ANSI) terminal dimensions (rows and columns), only when set to auto-detect |  
-|UP://n//            |        |Move cursor up //n// rows                   | +|GETKEY          |        |Wait indefinitely for any key press before continuing | 
-|DOWN://n//          |        |Move cursor down //n// rows                 | +|CONTINUE        |        |Wait indefinitely for any key press before continuing and abort the message/file display if 'N' or 'Q' are typed |  
-|RIGHT://n//         |        |Move cursor right //n// columns             | +|WAIT://n//      |        |Wait up to //n// 10ths of a second for a key press before continuing | 
-|LEFT://n//          |        |Move cursor left //n// columns              |+|DELAY://n//     |        |Wait //n// 10ths of a second before continuing 
 +|LINEDELAY              |Wait 1/10th of a second before sending each newline character (new in v3.20) | 
 +|LINEDELAY://n// |        |Wait //n// 100ths of a second before sending each newline character, 0 to disable (new in v3.20) 
 +|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) |
-|HOME            |        |Home cursor (to upper left), don't clear|+|HOME            |        |Home cursor (to upper left), don't clear the screen |
 |CLRLINE                |Clear the current line (cursor to first column)| |CLRLINE                |Clear the current line (cursor to first column)|
 |CLR2EOL                |Clear to end of line (cursor doesn't move)| |CLR2EOL                |Clear to end of line (cursor doesn't move)|
Line 346: Line 430:
 |ROWS            |        |Number of terminal rows                 | |ROWS            |        |Number of terminal rows                 |
 |TERM            |        |Terminal-type name (i.e. 'ANSI', 'RIP', 'PETSCII', or 'DUMB') | |TERM            |        |Terminal-type name (i.e. 'ANSI', 'RIP', 'PETSCII', or 'DUMB') |
 +|TERMTYPE        |        |Verbose terminal type configuration |
 +|TERMCOLS        |        |Verbose terminal column configuration |
 +|TERMROWS        |        |Verbose terminal row/lines configuration |
 |CHARSET                |Terminal character set supported (i.e. 'UTF-8', 'CP437', 'PETSCII', or 'US-ASCII') | |CHARSET                |Terminal character set supported (i.e. 'UTF-8', 'CP437', 'PETSCII', or 'US-ASCII') |
-|WORDWRAP        |        |Word-wrap the the following text        |+|AUTOTERM        |        |Automatic terminal type detection ('On' or 'Off')| 
 +|ANSI            |        |ANSI-BBS terminal emulation ('On' or 'Off')| 
 +|ASCII                  |ASCII terminal character set ('On' or 'Off')| 
 +|PETSCII                |CBM/PETSCII terminal emulation ('On' or 'Off')| 
 +|UTF8            |        |UTF-8 terminal character set ('On' or 'Off')| 
 +|COLOR                  |Color terminal support ('On' or 'Off')| 
 +|ICE                    |Bright-background (ICE color) support ('On' or 'Off')| 
 +|RIP                    |RIPscrip terminal emulation ('On' or 'Off')| 
 +|SWAPDEL                |Reverse the traditional DEL and Backspace input key codes ('On' or 'Off')| 
 +|MOUSE                  |Mouse support ('On' or 'Off')| 
 +|TRUNCATE        |        |Truncate long lines in the following text | 
 +|TRUNCOFF        |        |Mark the end of a truncated text block (turn off long-line truncation) | 
 +|WORDWRAP        |        |Word-wrap long lines in the following text |
 |WRAPOFF                |Mark the end of a word-wrapped text block | |WRAPOFF                |Mark the end of a word-wrapped text block |
 |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 357: Line 458:
 |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 388: Line 509:
  
 ^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)) | 
 +|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]]
   * [[custom:|Customization]]   * [[custom:|Customization]]
 +  * [[custom:ctrl-a_codes|ctrl-a (Attribute) codes]]
   * [[http://synchro.net/docs/customization.html#MessageVariables|Old documentation of this feature (stale)]]   * [[http://synchro.net/docs/customization.html#MessageVariables|Old documentation of this feature (stale)]]
  
 {{tag>customization}} {{tag>customization}}
  
custom/atcodes.1587714499.txt · Last modified: 2020/04/24 00:48 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0