diff --git a/src/main/AdrianKousz.Util/ExtendedBinaryReader.cs b/src/main/AdrianKousz.Util/ExtendedBinaryReader.cs
index c60dcfc..8cc9ff2 100644
--- a/src/main/AdrianKousz.Util/ExtendedBinaryReader.cs
+++ b/src/main/AdrianKousz.Util/ExtendedBinaryReader.cs
@@ -30,17 +30,14 @@ namespace AdrianKousz.Util
return ReadInt32() != 0;
}
- public string ReadStringInternal(int len) { return ReadStringInternal(len, false); }
- public string ReadStringByte() { return ReadStringInternal(ReadByte(), false); }
- public string ReadStringInt16() { return ReadStringInternal(ReadInt16(), false); }
- public string ReadStringInt32() { return ReadStringInternal(ReadInt32(), false); }
+ public string ReadString(int len) { return ReadString(len, false); }
+ public string ReadStringInt16() { return ReadString(ReadInt16(), false); }
+ public string ReadStringInt32() { return ReadString(ReadInt32(), false); }
+ public string ReadZString(int len) { return ReadString(len, true); }
+ public string ReadZStringInt16() { return ReadString(ReadInt16(), true); }
+ public string ReadZStringInt32() { return ReadString(ReadInt32(), true); }
- public string ReadZString(int len) { return ReadStringInternal(len, true); }
- public string ReadZStringByte() { return ReadStringInternal(ReadByte(), true); }
- public string ReadZStringInt16() { return ReadStringInternal(ReadInt16(), true); }
- public string ReadZStringInt32() { return ReadStringInternal(ReadInt32(), true); }
-
- private string ReadStringInternal(int len, bool expectNull)
+ private string ReadString(int len, bool expectNull)
{
if (len == 0) return "";
var array = ReadBytes(len);
diff --git a/src/main/AdrianKousz.Util/ExtendedBinaryWriter.cs b/src/main/AdrianKousz.Util/ExtendedBinaryWriter.cs
index 049a98d..1c194b4 100644
--- a/src/main/AdrianKousz.Util/ExtendedBinaryWriter.cs
+++ b/src/main/AdrianKousz.Util/ExtendedBinaryWriter.cs
@@ -9,7 +9,6 @@ namespace AdrianKousz.Util
public Encoding Encoding { get; private set; }
private const string ErrorChooseMethod = "Choose string writing method";
- private const string ErrorStringTooLong = "String too long";
public ExtendedBinaryWriter(Stream stream, Encoding enc)
: base(stream, enc)
@@ -28,17 +27,38 @@ namespace AdrianKousz.Util
else Write((Int32)0);
}
- public void WriteString(string value, int len) { WriteStringInternal(value, len, TypeCode.Empty); }
- public void WriteStringByte(string value) { WriteStringInternal(value, 0, TypeCode.Byte); }
- public void WriteStringInt16(string value) { WriteStringInternal(value, 0, TypeCode.Int16); }
- public void WriteStringInt32(string value) { WriteStringInternal(value, 0, TypeCode.Int32); }
- public void WriteStringRaw(string value) { WriteStringInternal(value, 0, TypeCode.Empty); }
+ public void WriteZStringRaw(string value) { WriteStringRaw(value + "\0"); }
+ public void WriteZStringInt16(string value) { WriteStringInt16(value + "\0"); }
+ public void WriteZStringInt32(string value) { WriteStringInt32(value + "\0"); }
- public void WriteZString(string value, int len) { WriteStringInternal(value + "\0", len, TypeCode.Empty); }
- public void WriteZStringByte(string value) { WriteStringInternal(value + "\0", 0, TypeCode.Byte); }
- public void WriteZStringInt16(string value) { WriteStringInternal(value + "\0", 0, TypeCode.Int16); }
- public void WriteZStringInt32(string value) { WriteStringInternal(value + "\0", 0, TypeCode.Int32); }
- public void WriteZStringRaw(string value) { WriteStringInternal(value + "\0", 0, TypeCode.Empty); }
+ public void WriteStringRaw(string value)
+ {
+ var array = Encoding.GetBytes(value);
+ Write(array);
+ }
+
+ public void WriteStringInt16(string value)
+ {
+ var array = Encoding.GetBytes(value);
+ var len = (Int16)array.Length;
+ Write(len);
+ Write(array);
+ }
+
+ public void WriteStringInt32(string value)
+ {
+ var array = Encoding.GetBytes(value);
+ var len = (Int32)array.Length;
+ Write(len);
+ Write(array);
+ }
+
+ public void WriteStringPadded(string value, int len)
+ {
+ var array = new byte[len];
+ Encoding.GetBytes(value, 0, value.Length, array, 0);
+ Write(array);
+ }
public int GetByteCount(string value)
{
@@ -49,29 +69,5 @@ namespace AdrianKousz.Util
{
return Encoding.GetByteCount(value + "\0");
}
-
- private void WriteStringInternal(string value, int len, TypeCode typecode)
- {
- byte[] array;
- if (len == 0) {
- array = Encoding.GetBytes(value);
- len = array.Length;
- } else {
- if (len < GetByteCount(value))
- throw new ArgumentOutOfRangeException(ErrorStringTooLong);
- array = new byte[len];
- Encoding.GetBytes(value, 0, value.Length, array, 0);
- }
-
- switch (typecode) {
- case TypeCode.Empty: break;
- case TypeCode.Int32: Write(checked((Int32)len)); break;
- case TypeCode.Int16: Write(checked((Int16)len)); break;
- case TypeCode.Byte: Write(checked((Byte)len)); break;
- default: throw new ArgumentException();
- }
-
- Write(array);
- }
}
}
diff --git a/src/main/AdrianKousz.Util/NonDisposingStreamWrapper.cs b/src/main/AdrianKousz.Util/NonDisposingStreamWrapper.cs
index bccc934..d11b2dd 100644
--- a/src/main/AdrianKousz.Util/NonDisposingStreamWrapper.cs
+++ b/src/main/AdrianKousz.Util/NonDisposingStreamWrapper.cs
@@ -11,6 +11,8 @@ namespace AdrianKousz.Util
{
public sealed class NonDisposingStreamWrapper : Stream
{
+ private bool closed = false;
+
public Stream BaseStream { get; private set; }
public NonDisposingStreamWrapper(Stream stream)
diff --git a/src/main/AdrianKousz.Util/UnsafeBitmap.cs b/src/main/AdrianKousz.Util/UnsafeBitmap.cs
deleted file mode 100644
index b4ff7c8..0000000
--- a/src/main/AdrianKousz.Util/UnsafeBitmap.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-
-namespace AdrianKousz.Util
-{
- public unsafe class UnsafeBitmap : IDisposable
- {
- private const string ErrorNotLocked = "Bitmap not locked";
- private const string ErrorAlreadyLocked = "Bitmap already locked";
-
- private Bitmap bmp;
- private BitmapData bmpdat;
-
- public UnsafeBitmap(Bitmap bmp)
- : this(bmp, false, true) { }
-
- public UnsafeBitmap(Bitmap bmp, bool write)
- : this(bmp, write, true) { }
-
- public UnsafeBitmap(Bitmap bmp, bool write, bool locknow)
- {
- this.bmp = bmp;
- this.bmpdat = null;
- if (locknow)
- Lock(write ? ImageLockMode.ReadWrite : ImageLockMode.ReadOnly);
- }
-
- public void Dispose()
- {
- if (bmp == null) return;
- Unlock();
- bmp = null;
- }
-
- public void Lock(ImageLockMode mode)
- {
- if (bmpdat != null)
- throw new InvalidOperationException(ErrorAlreadyLocked);
- if (bmp == null)
- throw new ObjectDisposedException(null);
- var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
- bmpdat = bmp.LockBits(rect, mode, bmp.PixelFormat);
- }
-
- public void Unlock()
- {
- bmp.UnlockBits(bmpdat);
- bmpdat = null;
- }
-
- public int Height { get { CheckLocked(); return bmpdat.Height; } }
- public PixelFormat PixelFormat { get { CheckLocked(); return bmpdat.PixelFormat; } }
- public byte* Scan0 { get { CheckLocked(); return (byte*)bmpdat.Scan0.ToPointer(); } }
- public int Stride { get { CheckLocked(); return bmpdat.Stride; } }
- public int Width { get { CheckLocked(); return bmpdat.Width; } }
-
- private void CheckLocked()
- {
- if (bmpdat == null)
- throw new InvalidOperationException(ErrorNotLocked);
- }
- }
-}
-
diff --git a/src/main/ExUtil.csproj b/src/main/ExUtil.csproj
index e506992..59ed74a 100644
--- a/src/main/ExUtil.csproj
+++ b/src/main/ExUtil.csproj
@@ -18,7 +18,6 @@
prompt
4
false
- true
full
@@ -27,7 +26,6 @@
prompt
4
false
- true
@@ -41,9 +39,5 @@
-
-
-
-
\ No newline at end of file