1 // This file is part of e93.
2 //
3 // e93 is free software; you can redistribute it and/or modify
4 // it under the terms of the e93 LICENSE AGREEMENT.
5 //
6 // e93 is distributed in the hope that it will be useful,
7 // but WITHOUT ANY WARRANTY; without even the implied warranty of
8 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 // e93 LICENSE AGREEMENT for more details.
10 //
11 // You should have received a copy of the e93 LICENSE AGREEMENT
12 // along with e93; see the file "LICENSE.TXT".
13 
14 
15 bool UniverseSanityCheck(TEXT_UNIVERSE *universe);
16 void PositionToChunkPositionPastEnd(TEXT_UNIVERSE *universe,UINT32 position,CHUNK_HEADER **chunk,UINT32 *offset);
17 void PositionToChunkPosition(TEXT_UNIVERSE *universe,UINT32 position,CHUNK_HEADER **chunk,UINT32 *offset);
18 void PositionToLinePosition(TEXT_UNIVERSE *universe,UINT32 position,UINT32 *line,UINT32 *lineOffset,CHUNK_HEADER **chunk,UINT32 *chunkOffset);
19 void LineToChunkPosition(TEXT_UNIVERSE *universe,UINT32 line,CHUNK_HEADER **chunk,UINT32 *offset,UINT32 *position);
20 void AddToChunkPosition(TEXT_UNIVERSE *universe,CHUNK_HEADER *chunk,UINT32 offset,CHUNK_HEADER **newChunk,UINT32 *newOffset,UINT32 distanceToMove);
21 void ChunkPositionToNextLine(TEXT_UNIVERSE *universe,CHUNK_HEADER *chunk,UINT32 offset,CHUNK_HEADER **newChunk,UINT32 *newOffset,UINT32 *distanceMoved);
22 bool InsertUniverseChunks(TEXT_UNIVERSE *universe,UINT32 position,CHUNK_HEADER *textChunk,UINT32 textOffset,UINT32 numBytes);
23 bool InsertUniverseText(TEXT_UNIVERSE *universe,UINT32 position,UINT8 *text,UINT32 numBytes);
24 bool ExtractUniverseText(TEXT_UNIVERSE *universe,CHUNK_HEADER *chunk,UINT32 offset,UINT8 *text,UINT32 numBytes,CHUNK_HEADER **nextChunk,UINT32 *nextOffset);
25 bool DeleteUniverseText(TEXT_UNIVERSE *universe,UINT32 position,UINT32 numBytes);
26 TEXT_UNIVERSE *OpenTextUniverse();
27 void CloseTextUniverse(TEXT_UNIVERSE *universe);
28