/* --- Copyright University of Sussex 1988. All rights reserved. ----------
 > File:            C.all/src/string_util.p
 > Purpose:
 > Author:          John Gibson (see revisions)
 */

;;; ------------------ VARIOUS STRING UTILITIES --------------------------

#_INCLUDE 'declare.ph'

constant
		procedure Sys$-Get_string
	;

;;; ---------------------------------------------------------------------

section $-Sys;

define Cons_string(_length) -> string;
	lvars string, _baddr, _blim, _length;
	_int(_length) -> _length;
	Get_string(_length) -> string;
	string@V_BYTES[_0]	-> _blim;
	_blim@(b)[_length] -> _baddr;
	while _baddr >@(b) _blim do
		_int() -> _baddr--!(b) -> _baddr;
	endwhile
enddefine;

define Fill_string(string, do_check) -> string;
	lvars do_check, string, _baddr, _blim;
	string@V_BYTES[_0] -> _blim;
	_blim@(b)[string!V_LENGTH] -> _baddr;
	if do_check then
		while _baddr >@(b) _blim do
			_int(Checkr_dchar()) -> _baddr--!(b) -> _baddr
		endwhile;
	else
		while _baddr >@(b) _blim do
			_int() -> _baddr--!(b) -> _baddr
		endwhile
	endif
enddefine;

endsection;		/* $-Sys */



/* --- Revision History ---------------------------------------------------
--- John Gibson, Apr  5 1988
		Moved out of vectors.p
 */
