/* voc 2.1.0 [2025/05/18] for gcc LP64 on slackware xtspaF */

#ifndef ulmStrings__h
#define ulmStrings__h

#include "SYSTEM.h"
#include "ulmEvents.h"
#include "ulmStreams.h"

typedef
	struct ulmStrings_EventRec *ulmStrings_Event;

typedef
	struct ulmStrings_EventRec { /* ulmEvents_EventRec */
		ulmEvents_EventType type;
		ulmEvents_Message message;
		char _prvt0[8];
		ulmStreams_Stream stream;
		INT8 errorcode;
	} ulmStrings_EventRec;

typedef
	struct ulmStrings_StreamRec *ulmStrings_Stream;

typedef
	struct ulmStrings_StreamRec { /* ulmStreams_StreamRec */
		INT64 _prvt0;
		char _prvt1[16];
		INT32 count, errors;
		BOOLEAN error;
		INT8 lasterror;
		BOOLEAN eof;
		char _prvt2[137];
	} ulmStrings_StreamRec;


import ulmEvents_Message ulmStrings_errormsg[4];
import ulmEvents_EventType ulmStrings_error;

import ADDRESS *ulmStrings_StreamRec__typ;
import ADDRESS *ulmStrings_EventRec__typ;

import void ulmStrings_Concatenate (CHAR *destination, ADDRESS destination__len, CHAR *source, ADDRESS source__len);
import void ulmStrings_Copy (CHAR *destination, ADDRESS destination__len, CHAR *source, ADDRESS source__len);
import INT32 ulmStrings_Len (CHAR *string, ADDRESS string__len);
import void ulmStrings_Open (ulmStreams_Stream *stream, CHAR *string, ADDRESS string__len);
import void ulmStrings_PartCopy (CHAR *destination, ADDRESS destination__len, INT32 destIndex, CHAR *source, ADDRESS source__len, INT32 sourceIndex);
import void ulmStrings_Read (CHAR *string, ADDRESS string__len, ulmStreams_Stream stream);
import void ulmStrings_ReadPart (CHAR *string, ADDRESS string__len, INT32 destIndex, ulmStreams_Stream stream);
import void ulmStrings_Write (ulmStreams_Stream stream, CHAR *string, ADDRESS string__len);
import void ulmStrings_WritePart (ulmStreams_Stream stream, CHAR *string, ADDRESS string__len, INT32 sourceIndex);
import void *ulmStrings__init(void);


#endif // ulmStrings
