wasSharp – Diff between revs 26 and 27
?pathlinks?
Rev 26 | Rev 27 | |||
---|---|---|---|---|
Line 21... | Line 21... | |||
21 | ((Expression<Func<string, bool>>) |
21 | ((Expression<Func<string, bool>>) |
|
22 | (data => |
22 | (data => |
|
23 | Regex.Replace(data, |
23 | Regex.Replace(data, |
|
24 | @"(" + string.Join(@"|", @"&", @"<", @">", @""", @"'") + @")", |
24 | @"(" + string.Join(@"|", @"&", @"<", @">", @""", @"'") + @")", |
|
25 | @"", RegexOptions.IgnoreCase | RegexOptions.Multiline) |
25 | @"", RegexOptions.IgnoreCase | RegexOptions.Multiline) |
|
26 | .IndexOfAny(new[] {'&', '<', '>', '"', '\''}) |
26 | .IndexOfAny(new[] { '&', '<', '>', '"', '\'' }) |
|
27 | .Equals(-1))).Compile(); |
27 | .Equals(-1))).Compile(); |
|
Line 28... | Line 28... | |||
28 | |
28 | |
|
29 | /////////////////////////////////////////////////////////////////////////// |
29 | /////////////////////////////////////////////////////////////////////////// |
|
30 | // Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 // |
30 | // Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 // |
|
Line 48... | Line 48... | |||
48 | m.Append(string.Join("", t.ToArray())); |
48 | m.Append(string.Join("", t.ToArray())); |
|
49 | t.Clear(); |
49 | t.Clear(); |
|
50 | } |
50 | } |
|
51 | t.Enqueue(c); |
51 | t.Enqueue(c); |
|
52 | break; |
52 | break; |
|
- | 53 | |
||
53 | case ';': |
54 | case ';': |
|
54 | if (!t.Count.Equals(0)) |
55 | if (!t.Count.Equals(0)) |
|
55 | { |
56 | { |
|
56 | t.Enqueue(c); |
57 | t.Enqueue(c); |
|
57 | var special = string.Join("", t.ToArray()); |
58 | var special = string.Join("", t.ToArray()); |
|
58 | switch (special) |
59 | switch (special) |
|
59 | { |
60 | { |
|
60 | case "'": |
61 | case "'": |
|
61 | m.Append('\''); |
62 | m.Append('\''); |
|
62 | break; |
63 | break; |
|
- | 64 | |
||
63 | case """: |
65 | case """: |
|
64 | m.Append('"'); |
66 | m.Append('"'); |
|
65 | break; |
67 | break; |
|
- | 68 | |
||
66 | case ">": |
69 | case ">": |
|
67 | m.Append('>'); |
70 | m.Append('>'); |
|
68 | break; |
71 | break; |
|
- | 72 | |
||
69 | case "<": |
73 | case "<": |
|
70 | m.Append('<'); |
74 | m.Append('<'); |
|
71 | break; |
75 | break; |
|
- | 76 | |
||
72 | case "&": |
77 | case "&": |
|
73 | m.Append('&'); |
78 | m.Append('&'); |
|
74 | break; |
79 | break; |
|
- | 80 | |
||
75 | default: // Unrecognized escape sequence |
81 | default: // Unrecognized escape sequence |
|
76 | m.Append(special); |
82 | m.Append(special); |
|
77 | break; |
83 | break; |
|
78 | } |
84 | } |
|
79 | t.Clear(); |
85 | t.Clear(); |
|
80 | break; |
86 | break; |
|
81 | } |
87 | } |
|
82 | m.Append(c); |
88 | m.Append(c); |
|
83 | break; |
89 | break; |
|
- | 90 | |
||
84 | default: |
91 | default: |
|
85 | if (!t.Count.Equals(0)) |
92 | if (!t.Count.Equals(0)) |
|
86 | { |
93 | { |
|
87 | t.Enqueue(c); |
94 | t.Enqueue(c); |
|
88 | if (t.Count >= 6) |
95 | if (t.Count >= 6) |
|
Line 117... | Line 124... | |||
117 | switch (s[o]) |
124 | switch (s[o]) |
|
118 | { |
125 | { |
|
119 | case '&': |
126 | case '&': |
|
120 | result[o] = @"&"; |
127 | result[o] = @"&"; |
|
121 | break; |
128 | break; |
|
- | 129 | |
||
122 | case '<': |
130 | case '<': |
|
123 | result[o] = @"<"; |
131 | result[o] = @"<"; |
|
124 | break; |
132 | break; |
|
- | 133 | |
||
125 | case '>': |
134 | case '>': |
|
126 | result[o] = @">"; |
135 | result[o] = @">"; |
|
127 | break; |
136 | break; |
|
- | 137 | |
||
128 | case '"': |
138 | case '"': |
|
129 | result[o] = @"""; |
139 | result[o] = @"""; |
|
130 | break; |
140 | break; |
|
- | 141 | |
||
131 | case '\'': |
142 | case '\'': |
|
132 | result[o] = @"'"; |
143 | result[o] = @"'"; |
|
133 | break; |
144 | break; |
|
- | 145 | |
||
134 | default: |
146 | default: |
|
135 | result[o] = s[o].ToString(); |
147 | result[o] = s[o].ToString(); |
|
136 | break; |
148 | break; |
|
137 | } |
149 | } |
|
138 | }); |
150 | }); |
|
Line 161... | Line 173... | |||
161 | /// <param name="root">the root from where to start</param> |
173 | /// <param name="root">the root from where to start</param> |
|
162 | /// <param name="name">the name to replace</param> |
174 | /// <param name="name">the name to replace</param> |
|
163 | /// <param name="rename">the name to replace with</param> |
175 | /// <param name="rename">the name to replace with</param> |
|
164 | public static void RenameNodes(XElement root, string name, string rename) |
176 | public static void RenameNodes(XElement root, string name, string rename) |
|
165 | { |
177 | { |
|
166 | if (String.Equals(root.Name.LocalName, name, StringComparison.Ordinal)) |
178 | if (string.Equals(root.Name.LocalName, name, StringComparison.Ordinal)) |
|
167 | { |
179 | { |
|
168 | root.Name = rename; |
180 | root.Name = rename; |
|
169 | } |
181 | } |
|
Line 170... | Line 182... | |||
170 | |
182 | |
|
171 | foreach (var xElement in root.Elements()) |
183 | foreach (var xElement in root.Elements()) |
|
172 | { |
184 | { |
|
173 | RenameNodes(xElement, name, rename); |
185 | RenameNodes(xElement, name, rename); |
|
174 | } |
186 | } |
|
175 | } |
187 | } |
|
176 | } |
- | ||
177 | } |
188 | } |
|
- | 189 | } |