Macros

addspaces (by Walt)
( s i -- s' ) #105 call
Add S[0] spaces to the end of S[1].
apply-list (by Walt)
( L a -- L' ) #103 call
Run function S[0] on every element of list at S[1].
atodb (by Tweedledum)
( s -- d ) #11231 call
awake? (by Walt)
( d -- i ) awake ? 0 = if 0 else 1 then
Return 0 or 1 showing if player in dbref S[0] is awake.
bit? (by Adella)
( i i -- i ) 7 #1427 call
Return 0 or nonzero if S[1] has bit S[0] set (see da.bitlib.doc).
bitand (by Adella)
( i i -- i ) 2 #1427 call
Bitwise AND of S[0] and S[1] (see da.bitlib.doc).
bitclear (by Adella)
( i i -- i ) 6 #1427 call
Clear bit S[0] of integer in S[1] to zero (see da.bitlib.doc).
bitnot (by Adella)
( i -- i ) 1 #1427 call
Bitwise NOT of S[1] (see da.bitlib.doc).
bitor (by Adella)
( i i -- i ) 3 #1427 call
Bitwise OR of S[0] and S[1] (see da.bitlib.doc).
bitpow2 (by Adella)
( i -- i ) 8 #1427 call
Value of bit S[0] in a 2's complement integer (see da.bitlib.doc).
bitset (by Adella)
( i i -- i ) 5 #1427 call
Set bit S[0] of integer in S[1] to one (see da.bitlib.doc).
bitxor (by Adella)
( i i -- i ) 4 #1427 call
Bitwise exclusive OR of S[0] and S[1] (see da.bitlib.doc).
calc
( s -- s ) #15748 call
charof (by Eddie)
( s i - s ) #6587 call
Return the S[0]th character of string S[1].
check
( s s -- i ) stringcmp not
Return 1 if S[0] and S[1] are identical strings, else return 0.
check+ (by Walt)
( s s1...sn n -- s' ) #102 call
controls (by Walt)
( d1 d2 -- i ) #99 call
cr (by Walt)
( -- ) me @ " " notify
Return a blank line (equivalent to lf).
ctime (by Walt)
( i -- s ) "%C" strftime
Return UTC systime as Muck-local date-and-time string (obsolete; see da.timelib.doc).
datestr (by Walt)
( -- s ) systime "%m/%d" strftime
Return UTC systime as Muck-local date string (obsolete; see da.timelib.doc).
db2str (by Eddie)
( d -- s ) int intostr "#" swap strcat
Return a dbref as a string.
editor (by Walt)
( d s -- i ) #98 call
Edit a multi-line property list with name S[0] on object S[1]. Return 1 if exited normally.
exec-or-notify (by Tweedledum)
( s -- ) #15977 call
exeornot (by Eddie)
( s -- ? ) #13304 call
exit_name (by Walt)
( d -- s ) #94 call
firstname (by Walt)
( d -- s ) name dup ";" instr dup if 1 - strcut then pop
Return the first name of an object (up to the first semicolon).
fmt-all
( S -- ) #-1 swap .fmt-user
fmt-me
( s -- ) me @ swap .fmt-user
fmt-others
( s -- ) #-2 swap .fmt-user
fmt-user
( d s -- ) #5421 call
getpropstr
( s -- ??? ) dup if 1 else pop 0 then
getpropstr2
( d s -- s ) getpropstr
Equivalent to getpropstr (obsolete).
hasprop? (by ch'od)
(d s -- i) #69 call
heapsort-list (by Adella)
( L a -- L ) #2877 call
Sort a list in S[1] using comparator function S[0] (see da.heapsort.doc).
id (by Walt)
( d -- s ) #93 call
Return an object's name with trailing flags (#93FL).
idletime (by Walt)
( d -- s ) #92 call
implode (by Eddie)
( s1 s2... sn sd i -- s ) #16901 call
Join list (length in S[0], last element in S[2]) using string in S[1] as delimiter.
isprofane? (by Eddie)
( s -- i ) #7877 call
Return 1 if string contains profane text, 0 otherwise.
isword? (by Eddie)
( s1 s2 -- i ) #15252 call
justify-left
( s i -- s' ) #7 call
last-on (by Eddie)
( d -- i ) #16893 call
lf (by Plushy)
( -- ) me @ " " notify
Return a blank line (equivalent to cr).
list-contents (by Eddie)
( d -- s ) #16803 call
list-players (by Eddie)
( d -- s ) #16806 call
lockset (by Tweedledum)
( s -- s' i ) #11215 call
lockshow (by Tweedledum)
( s -- s' ) #11216 call
map-contents (by Walt)
( d a -- ) #91 call
map-list (by Walt)
( L a -- ) #90 call
moveto (by Tweedledum)
( d1 d2 -- ) swap over moveto .rlook
Transport object S[1] to S[0] using moveto semantics, then display S[0].
muflock (by Tweedledum)
( s -- i ) #11214 call
neg (by Walt)
( i -- i ) -1 *
Return -S[0].
nmatch
( s -- d ) ";glorph" #12828 call
Return the player matching the string.
notify_children (by Walt)
(d s -- ) #89 call
okstr? (by Walt)
( s -- i ) dup strlen 0 >
Return 1 if the string on top of stack (which is untouched) is non-empty.
parseequals
(s -- s1 s2 ) #8659 call
pmatch (by Walt)
( s -- d ) #88 call
pmatch+ (by Walt)
( s -- d ) #87 call
private? (by Walt)
( d -- i ) #86 call
randint (by Eddie)
( i -- i ) #6176 call
readeditor (by Walt)
( d s -- ) #85 call
rlook (by Tweedledum)
( d -- ) #16033 call
Print the description and contents of a room.
safematch (by Eddie)
( s -- d ) #8637 call
setprop
( d s x -- ) #8299 call
shell-sort-list (by Eddie)
( L n i -- L' ) #9236 call
Sort a list in S[1] using rule S[0].
shellsort (by Plushy)
( si ... s1 i -- sy ... sx i ) #16859 call
Sort a list of strings in ascending order.
sort-list (by Walt)
( L a -- L' ) #84 call
Sort a list in S[1] using comparator function S[0].
space (by Walt)
( s i -- s' ) over strlen - .addspaces
Pad string in S[1] with spaces to make it S[0] characters long.
sps (by Walt)
( s -- s' ) #96 call
Strip preceding spaces from a string.
strcat! (by Eddie)
( s v -- ) swap over @ swap strcat swap !
Add a string S[1] to the end of variable S[0].
sts (by Walt)
( s -- s' ) #95 call
Strip trailing spaces from a string.
systime-gmt (by Walt)
( -- i ) systime .systimetogmt
Return time in quasi-UTC (obsolete; see da.timelib.doc).
systime-local (by Walt)
( -- i ) systime .systimetolocal
Return time in quasi-local time (obsolete; see da.timelib.doc).
systimetogmt
( i -- i ) 5 3600 * +
Convert UTC to quasi-UTC time (obsolete; see da.timelib.doc).
systimetolocal (by Walt)
( i -- i ) #83 call
Convert UTC to quasi-local time (obsolete; see da.timelib.doc).
tabwrap (by Tweedledum)
( i d s -- ) #17042 call
Print string S[0] to player S[1], wrapping at player's right margin and indenting all subsequent lines by S[2] spaces.
tabwrap-all (by Tweedledum)
( s s -- ) #-1 loc @ contents #14291 call
Print string S[0] to everyone in the room, wrapping at right margin and indenting all subsequent lines by their S[1] property.
tabwrap-me (by Tweedledum)
( s s -- ) me @ swap getpropstr atoi me @ rot .tabwrap
Print string S[0] to me, wrapping at right margin and indenting all subsequent lines by my S[1] property.
tabwrap-others (by Tweedledum)
( s s -- ) me @ loc @ contents #14291 call
Print string S[0] to everyone in the room except me, wrapping at right margin and indenting all subsequent lines by their S[1] property.
tabwrap-user (by Tweedledum)
( d s s -- ) 3 pick rot getpropstr atoi rot rot .tabwrap
Print string S[0] to player S[2], wrapping at right margin and indenting all subsequent lines by its S[1] property.
tell (by Walt)
( s -- ) .tell_me
Print string on my screen (no wrapping) (equivalent to tell-me and tell_me).
tell-everybody (by Eddie)
( s -- ) loc @ #-1 rot notify_except
Print string on the screens of everyone in the room (no wrapping).
tell-me (by Eddie)
( s -- ) me @ swap notify
Print string on my screen (no wrapping) (equivalent to tell and tell_me).
tell-others (by Eddie)
( s -- ) loc @ me @ rot notify_except
Print string on the screens of everyone in the room except me (no wrapping).
tell_all (by Walt)
( d s -- ) #82 call
Print string on the screens of everyone on the Muck (no wrapping).
tell_me (by Walt)
( s -- ) me @ swap notify
Print string on my screen (no wrapping) (equivalent to tell and tell-me).
timedate (by Walt)
( -- s m h d mm tt ) #78 call
Return date information (obsolete; see da.timelib.doc).
timestr (by Walt)
( -- s ) #77 call
Return date information (obsolete; see da.timelib.doc).
timezone (by Walt)
( -- s ) #76 call
Return date information (obsolete; see da.timelib.doc).
tl.date-long (by Adella)
( d i -- s ) 9 #16839 call
Return local time S[0] in object S[1]'s long date format (see da.timelib.doc).
tl.date-long-format (by Adella)
( d -- s ) 14 #16839 call
Return object S[1]'s long date format, uninterpolated (see da.timelib.doc).
tl.date-short (by Adella)
( d i -- s ) 8 #16839 call
Return local time S[0] in object S[1]'s short date format (see da.timelib.doc).
tl.date-short-format (by Adella)
( d -- s ) 13 #16839 call
Return object S[1]'s short date format, uninterpolated (see da.timelib.doc).
tl.dst? (by Adella)
( d i -- i ) 3 #16839 call
Return 1 if object S[1] is observing daylight savings time at local time S[0], 0 otherwise (see da.timelib.doc).
tl.leapyear? (by Adella)
( i -- i ) 10 #16839 call
Return 1 if year is a leap year (valid 1901-2099) (see da.timelib.doc).
tl.local-to-ut (by Adella)
( d i -- i ) 2 #16839 call
Convert local time S[0] from object S[1]'s time zone to UTC (see da.timelib.doc).
tl.mktime (by Adella)
( i i i i i i -- i ) 4 #16839 call
Given year, month, day, hour, minute and second in S[5] through S[0], return corresponding local systime (see da.timelib.doc).
tl.muck-to-ut (by Adella)
( i -- i ) #0 swap .tl.local-to-ut
Convert local time S[0] from Muck's time zone to UTC (see da.timelib.doc).
tl.my-date-long (by Adella)
( i -- s ) me @ swap .tl.date-long
Return local time S[0] in my long date format (see da.timelib.doc).
tl.my-date-short (by Adella)
( i -- s ) me @ swap .tl.date-short
Return local time S[0] in my short date format (see da.timelib.doc).
tl.my-local-to-ut (by Adella)
( i -- i ) me @ .tl.local-to-ut
Convert local time S[0] from my time zone to UTC (see da.timelib.doc).
tl.my-strftime (by Adella)
( i s -- s ) me @ rot rot .tl.strftime
Return local time S[1] in a string given by format S[0], using my locale (see da.timelib.doc).
tl.my-time-long (by Adella)
( i -- s ) me @ swap .tl.time-long
Return local time S[0] in my long time format (see da.timelib.doc).
tl.my-time-short (by Adella)
( i -- s ) me @ swap .tl.time-short
Return local time S[0] in my short time format (see da.timelib.doc).
tl.strftime (by Adella)
( d i s -- s ) 5 #16839 call
Return local time S[1] in a string given by format S[0], using object S[2]'s locale (see da.timelib.doc).
tl.systime-local (by Adella)
( d -- i ) .tl.systime-ut .tl.ut-to-local
Return systime local to S[0]'s time zone. (see da.timelib.doc).
tl.systime-muck (by Adella)
( -- i ) #0 .tl.systime-ut .tl.ut-to-local
Return systime local to Muck's time zone. (see da.timelib.doc).
tl.systime-my-local (by Adella)
( -- i ) me @ .tl.systime-local
Return systime local to my time zone. (see da.timelib.doc).
tl.systime-ut (by Adella)
( -- i ) systime
Return systime local to UTC. (see da.timelib.doc).
tl.time-long (by Adella)
( d i -- s ) 7 #16839 call
Return local time S[0] in object S[1]'s long time format (see da.timelib.doc).
tl.time-long-format (by Adella)
( d -- s ) 12 #16839 call
Return object S[1]'s long time format, uninterpolated (see da.timelib.doc).
tl.time-short (by Adella)
( d i -- s ) 6 #16839 call
Return local time S[0] in object S[1]'s short time format (see da.timelib.doc).
tl.time-short-format (by Adella)
( d -- s ) 11 #16839 call
Return object S[1]'s short time format, uninterpolated (see da.timelib.doc).
tl.timezonename (by Adella)
( d -- s ) dup .tl.systime-local "%z" .tl.strftime
Return name of time zone currently being observed by object S[0]; daylight savings aware (see da.timelib.doc).
tl.ut-to-local (by Adella)
( d i -- i ) 1 #16839 call
Convert UTC time S[0] to object S[1]'s time zone (see da.timelib.doc).
tl.ut-to-muck (by Adella)
( i -- i ) #0 swap .tl.ut-to-local
Convert UTC time S[0] to Muck's time zone (see da.timelib.doc).
tl.ut-to-my-local (by Adella)
( i -- i ) me @ .tl.ut-to-local
Convert UTC time S[0] to my time zone (see da.timelib.doc).
tolower (by Walt)
( S -- s ) #97 call
Convert string into lowercase.
tp.ctime
( i -- s ) 2 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.datefmt
( -- s ) "%e-%b-%y"
Time function (obsolete; see da.timelib.doc).
tp.gmtime
( i -- s ) 4 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.localtime
( i -- s ) 7 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.strftimegmt
( s i -- s' ) 3 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.strftimelocal
( s i -- s' ) 6 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.strftimemuck
( s i -- s' ) strftime
Time function (obsolete; see da.timelib.doc).
tp.timezonegmt
( -- s ) "UTC"
Time function (obsolete; see da.timelib.doc).
tp.timezonelocal
( -- s ) 5 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
tp.timezonemuck
( -- s ) 1 "#XX#xx#XX#" #698 call
Time function (obsolete; see da.timelib.doc).
trace-off (by Eddie)
( -- ) prog "!d" set
Turn stack tracing on for this program.
trace-on (by Eddie)
( -- ) prog "d" set
Turn stack tracing off for this program.
trim_spaces (by Walt)
( s -- s' ) .sps .sts
Strip leading and trailing spaces from a string.
unparseobj (by Walt)
( d -- s ) #75 call
weapon_sub (by Max)
( d d s -- s ) #7303 call
Replace "&x" substrings in S[0] with gender substitutions from S[1].
wizard? (by Walt)
( d -- i ) "W" flag?
Return 1 if object is set WIZARD, otherwise return 0.
wizmatch (by Walt)
( s -- d ) #74 call
Wizard-level matching, including "*Player" syntax.
wrap (by Tweedledum)
( s -- ) #11371 call
Print string to my screen, wrapping at my right margin (obsolete; see wrap-me).
wrap-all (by Tweedledum)
( s -- ) "" swap #-1 loc @ contents #14291 call
Print string to everyone in room, wrapping at their right margin.
wrap-me (by Tweedledum)
( s -- ) 0 me @ rot .tabwrap
Print string to my screen, wrapping at my right margin.
wrap-others (by Tweedledum)
( s -- ) "" swap me @ loc @ contents #14291 call
Print string to everyone in room but me, wrapping at their right margin.
wrap-user (by Tweedledum)
( d s -- ) 0 rot rot .tabwrap
Print string S[0] to player S[1], wrapping at its right margin.
xor (by Adella)
( i i -- i ) over over or rot rot and not and
Logical exclusive OR: S[0] or S[1] but not both.