rem: _encode_cleanup ()
add: _encode_cleanup (void)
context: _encode_cleanup (){	UWORD r, s, last_match_length, len;	_StreamType = _lpCurCodeDesc->StreamType;	_Stream = _lpCurCodeDesc->Stream;	_workbuf = _lpCurCodeDesc->workbuf;	_workbuflen = _lpCurCodeDesc->workbuflen;	r = _lpCurCodeDesc->buf_index;	s = _lpCurCodeDesc->restart_index;	last_match_length = _lpCurCodeDesc->bytes_left;	if (_lpCurCodeDesc->StreamLength >= F)		len = F;	else	{		UWORD i;		for (i = 1; i <= F; i++)			InsertNode (r - i);		InsertNode (r);		len = (UWORD)_lpCurCodeDesc->StreamLength;	}	while (1)	{		while (last_match_length--)		{			DeleteNode (s);			if (--len == 0)			{				BYTE lobyte, hibyte;				UWORD loword, hiword;				UninitTree ();				_lpCurCodeDesc->StreamIndex += 4;						/* rewind */				if (_lpCurCodeDesc->StreamType == FILE_STREAM)					SeekResFile ((FILE *)_Stream,							-(int)_lpCurCodeDesc->StreamIndex, SEEK_CUR);				else /* _lpCurCodeDesc->StreamType == MEMORY_STREAM */					_Stream = (PBYTE)((BYTE *)_Stream							- _lpCurCodeDesc->StreamIndex);				loword = LOWORD (_lpCurCodeDesc->StreamLength);				lobyte = LOBYTE (loword);				hibyte = HIBYTE (loword);				OutChar (lobyte);				OutChar (hibyte);				hiword = HIWORD (_lpCurCodeDesc->StreamLength);				lobyte = LOBYTE (hiword);				hibyte = HIBYTE (hiword);				OutChar (lobyte);				OutChar (hibyte);				return;			}			s = (s + 1) & (N - 1);			r = (r + 1) & (N - 1);			InsertNode (r);		}		if (match_length > len)			match_length = len;		if (match_length <= THRESHOLD)		{			match_length = 1;			EncodeChar (_lpCurCodeDesc->text_buf[r]);		}		else		{			EncodeChar (255 - THRESHOLD + match_length);			EncodePosition (match_position);		}		last_match_length = match_length;	}}