// TODO: in C return value indicates error (if < 0). Need to change to // exceptions public int LoadFile(EditBuffer b, Stream f, int offset) { byte[] buf = new byte[IOBUF_SIZE]; for (; ; ) { int len = f.Read(buf, 0, buf.Length); if (len == 0) break; b.Insert(offset, buf, len); offset += len; } return 0; }
public int Save(EditBuffer b, string filename) { return 0; }
public void Close(EditBuffer b) { // nothing to do }
// TODO: in C, uses mmap if file bigger than an mmap threshold public int Load(EditBuffer b, Stream f) { return LoadFile(b, f, 0); }
void AddLog(LogOp op, int offset, int size) { // TODO: call callbacks bool was_modified = modified; modified = true; if (!save_log) return; if (null == log_buffer) log_buffer = new EditBuffer(String.Format("*log <{0}>", name), BufferFlags.System); LimitLogSize(); // TODO: finish me }