< Rebol Programming  
        
      USAGE:
LS dir
DESCRIPTION:
Prints a multi-column sorted listing of a directory.
LS is a function value.
ARGUMENTS:
- dir -- Directory to list or nothing (Type: file url unset)
 
(SPECIAL ATTRIBUTES)
- catch
 
SOURCE CODE
ls: func [
    {Prints a multi-column sorted listing of a directory.} 
    [catch] 
    dir [file! url! unset!] "Directory to list or nothing" 
    /local file max s
][
    dir: throw-on-error [
        either value? 'dir [
            read dirize dir
        ] [
            read %.
        ]
    ] 
    dir: sort dir 
    max: 0 
    foreach file dir [
        if (length? file) > max [max: length? file]
    ] 
    max: max + 2 
    s: make string! 0 
    foreach file dir [
        append s file 
        while [((length? s) // max) <> 0] [append s " "] 
        if (length? s) > 60 [
            print s 
            clear s
        ]
    ] 
    if length? s [print s]
]
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.