link wrap
December 5, 1989; Robert J. Alexander
This file is in the public domain.
wrap(s,i) -- Facilitates accumulation of small strings into longer output strings, outputting when the accumulated string would exceed a specified length (e.g. outputting items in multiple columns). s -- string to accumulate i -- width of desired output string Wrap fails if the string s did not necessitate output of the buffered output string; otherwise the output string is returned (which never includes s). s defaults to the empty string (""), causing nothing to be accumulated; i defaults to 0, forcing output of any buffered string. Note that calling wrap() with no arguments produces the buffer (if it is not empty) and clears it. Wrap does no output to files. Here's how wrap is normally used: wrap() # Initialize (not really necessary unless # a previous use might have left stuff in # the buffer). every i := 1 to 100 do # Loop to process strings to output -- write(wrap(x[i],80)) # only writes when 80-char line filled. write(wrap()) # Output what's in buffer -- only outputs # if something to write. wraps(s,i) -- Facilitates managing output of numerous small strings so that they do not exceed a reasonable line length (e.g. outputting items in multiple columns). s -- string to accumulate i -- maximum width of desired output string If the string "s" did not necessitate a line-wrap, the string "s" is returned. If a line-wrap is needed, "s", preceded by a new-line character ("\n"), is returned. "s" defaults to the empty string (""), causing nothing to be accumulated; i defaults to 0, forcing a new line if anything had been output on the current line. Thus calling wraps() with no arguments reinitializes it. Wraps does no output to files. Here's how wraps is normally used: wraps() # Initialize (not really necessary unless # a previous use might have left it in an # unknown condition). every i := 1 to 100 do # Loop to process strings to output -- writes(wraps(x[i],80))# only wraps when 80-char line filled. writes(wraps()) # Only outputs "\n" if something written # on last line.