english
version "1.0"
identify "xyz"
#: Copyright (c) 1995, 2002 by Wayne C. Gramlich.
#, All rights reserved.
#,
#, Permission to use, copy, modify, distribute, and sell this software
#, for any purpose is hereby granted without fee provided that the above
#, copyright notice and this permission are retained. The author makes
#, no representations about the suitability of this software for any purpose.
#, It is provided "as is" without express or implied warranty.
module misc
#: This module implements the miscellaneous functions for SVMS.
#: Miscellaneous procedures:
procedure paragraph_prompt@in_stream
takes
in_stream in_stream
out_stream out_stream
prompt string
result string
returns_nothing
#: This procedure will prompt the user for a paragraph of text
#, terminated by a blank line. The text is read from {in_stream}
#, appended to {result}. Each line of text is prompted by outputing
#, {prompt} to {out_stream}.
procedure timestamp_append@string
takes
buffer string
date unsigned
returns_nothing
#: This procedure will convert "date" into a string of the form
#, 'YYYY/MM/DD@hh:mm:ssGMT' and append it to {buffer}.
procedure timestamp_lop@string
takes
buffer string
returns unsigned
#: This procedure will return a timestamp read from {buffer}.
procedure number_append@string
takes
buffer string
number unsigned
returns_nothing
#: This procedure will append {number} to {buffer} as a decimal number.
procedure unsigned_fixed_append@string
takes
buffer string
number unsigned
width unsigned
returns_nothing
#: This procedure will append {number} out to {buffer} as {width}
#, digit decimal number.
procedure unsigned_fixed_lop@string
takes
buffer string
width unsigned
returns unsigned
#: This procedure will lop a {width} digit decimal number from {buffer}
#, and return it.
procedure log10@unsigned
takes
number unsigned
returns unsigned
#: This routine will return the number of digits needed to represent
#, {number}; thus, the number 0 on input returns 1.
#, So, 10 is the biggest number that can be returned.