# This prints out (in a slightly different format) the same data as the # Unix "ls" command for the current directory. &stdalias.inc proc main var @files @permprint var dirname s filename stats var perm user group world var time set permprint "--- --x -w- -wx r-- r-x rw- rwx" while TRUE do print "Enter directory> " input dirname until dirname!="" if [trap [set files [dir all dirname]]]!=OK printnl "No such directory."; continue fi foreach s filename in files if [midstr dirname [strlen dirname]]="/" set filename [format "%s%s" dirname filename] else set filename [format "%s/%s" dirname filename] fi set stats [stat filename] # Type and size print [format "%-6s %7d %-8s %-8s " \ [elements stats 1] \ [elements stats 2] \ [elements stats 6] \ [elements stats 7]] # Print permissions like ls command set perm [elements stats 3] set user [math [midstr perm 1]+1] print permprint:user set group [math [midstr perm 2]+1] print permprint:group set world [math [midstr perm 3]+1] print permprint:world " " # Print date & time & name set time [elements stats 4] printnl [gettime date time] " " [gettime time time] " " filename nexteach wend endproc