Skip to content

Commit be264eb

Browse files
Kahath304NotModified
authored andcommitted
Added null terminator line ending for network target (#3453)
1 parent 9359d60 commit be264eb

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/NLog/Targets/LineEndingMode.cs

+7
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ public sealed class LineEndingMode : IEquatable<LineEndingMode>
7171
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "Type is immutable")]
7272
public static readonly LineEndingMode LF = new LineEndingMode("LF", "\n");
7373

74+
/// <summary>
75+
/// Insert null terminator (ASCII 0) after each line.
76+
/// </summary>
77+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "Type is immutable")]
78+
public static readonly LineEndingMode Null = new LineEndingMode("Null", "\0");
79+
7480
/// <summary>
7581
/// Do not insert any line ending.
7682
/// </summary>
@@ -122,6 +128,7 @@ public static LineEndingMode FromString([NotNull] string name)
122128
if (name.Equals(LF.Name, StringComparison.OrdinalIgnoreCase)) return LF;
123129
if (name.Equals(CR.Name, StringComparison.OrdinalIgnoreCase)) return CR;
124130
if (name.Equals(Default.Name, StringComparison.OrdinalIgnoreCase)) return Default;
131+
if (name.Equals(Null.Name, StringComparison.OrdinalIgnoreCase)) return Null;
125132
if (name.Equals(None.Name, StringComparison.OrdinalIgnoreCase)) return None;
126133

127134
#if !SILVERLIGHT

tests/NLog.UnitTests/Targets/LineEndingModeTests.cs

+13
Original file line numberDiff line numberDiff line change
@@ -47,22 +47,27 @@ public void LineEndingModeEqualityTest()
4747
LineEndingMode modeNone = LineEndingMode.None;
4848
LineEndingMode modeLF = LineEndingMode.LF;
4949
LineEndingMode modeCRLF = LineEndingMode.CRLF;
50+
LineEndingMode modeNull = LineEndingMode.Null;
5051

5152
Assert.True(LineEndingMode.Default == modeDefault);
5253
Assert.True(LineEndingMode.None == modeNone);
5354
Assert.True(LineEndingMode.LF == modeLF);
55+
Assert.True(LineEndingMode.Null == modeNull);
5456
Assert.False(LineEndingMode.Default == modeNone);
5557
Assert.False(LineEndingMode.None == modeLF);
5658
Assert.False(LineEndingMode.None == modeCRLF);
59+
Assert.False(LineEndingMode.None == modeNull);
5760
Assert.False(LineEndingMode.None == (object)new { });
5861
Assert.False(LineEndingMode.None == null);
5962

6063
Assert.True(LineEndingMode.Default.Equals(modeDefault));
6164
Assert.True(LineEndingMode.None.Equals(modeNone));
6265
Assert.True(LineEndingMode.LF.Equals(modeLF));
66+
Assert.True(LineEndingMode.Null.Equals(modeNull));
6367
Assert.False(LineEndingMode.Default.Equals(modeNone));
6468
Assert.False(LineEndingMode.None.Equals(modeLF));
6569
Assert.False(LineEndingMode.None.Equals(modeCRLF));
70+
Assert.False(LineEndingMode.None.Equals(modeNull));
6671
Assert.False(LineEndingMode.None.Equals(new { }));
6772
Assert.False(LineEndingMode.None.Equals(null));
6873

@@ -86,14 +91,17 @@ public void LineEndingModeInequalityTest()
8691
LineEndingMode modeNone = LineEndingMode.None;
8792
LineEndingMode modeLF = LineEndingMode.LF;
8893
LineEndingMode modeCRLF = LineEndingMode.CRLF;
94+
LineEndingMode modeNull = LineEndingMode.Null;
8995

9096
Assert.True(LineEndingMode.Default != modeNone);
9197
Assert.True(LineEndingMode.None != modeLF);
9298
Assert.True(LineEndingMode.None != modeCRLF);
99+
Assert.True(LineEndingMode.None != modeNull);
93100
Assert.False(LineEndingMode.Default != modeDefault);
94101
Assert.False(LineEndingMode.None != modeNone);
95102
Assert.False(LineEndingMode.LF != modeLF);
96103
Assert.False(LineEndingMode.CRLF != modeCRLF);
104+
Assert.False(LineEndingMode.Null != modeNull);
97105

98106
Assert.True(null != LineEndingMode.LF);
99107
Assert.True(null != modeLF);
@@ -103,6 +111,10 @@ public void LineEndingModeInequalityTest()
103111
Assert.True(null != modeCRLF);
104112
Assert.True(LineEndingMode.CRLF != null);
105113
Assert.True(modeCRLF != null);
114+
Assert.True(null != LineEndingMode.Null);
115+
Assert.True(null != modeNull);
116+
Assert.True(LineEndingMode.Null != null);
117+
Assert.True(modeNull != null);
106118

107119
// Handle running tests on different operating systems
108120
if (modeCRLF.NewLineCharacters == Environment.NewLine)
@@ -139,6 +151,7 @@ public void LineEndingModeToStringTest()
139151
Assert.Equal("CRLF", LineEndingMode.CRLF.ToString());
140152
Assert.Equal("CR", LineEndingMode.CR.ToString());
141153
Assert.Equal("LF", LineEndingMode.LF.ToString());
154+
Assert.Equal("Null", LineEndingMode.Null.ToString());
142155
}
143156
}
144157
}

0 commit comments

Comments
 (0)