Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UncNameHelper.cs
Go to the documentation of this file.
1namespace System;
2
3internal static class UncNameHelper
4{
5 public static string ParseCanonicalName(string str, int start, int end, ref bool loopback)
6 {
7 return DomainNameHelper.ParseCanonicalName(str, start, end, ref loopback);
8 }
9
10 public unsafe static bool IsValid(char* name, int start, ref int returnedEnd, bool notImplicitFile)
11 {
12 int num = returnedEnd;
13 if (start == num)
14 {
15 return false;
16 }
17 bool flag = false;
18 int i;
19 for (i = start; i < num; i++)
20 {
21 if (name[i] == '/' || name[i] == '\\' || (notImplicitFile && (name[i] == ':' || name[i] == '?' || name[i] == '#')))
22 {
23 num = i;
24 break;
25 }
26 if (name[i] == '.')
27 {
28 i++;
29 break;
30 }
31 if (char.IsLetter(name[i]) || name[i] == '-' || name[i] == '_')
32 {
33 flag = true;
34 }
35 else if (name[i] < '0' || name[i] > '9')
36 {
37 return false;
38 }
39 }
40 if (!flag)
41 {
42 return false;
43 }
44 for (; i < num; i++)
45 {
46 if (name[i] == '/' || name[i] == '\\' || (notImplicitFile && (name[i] == ':' || name[i] == '?' || name[i] == '#')))
47 {
48 num = i;
49 break;
50 }
51 if (name[i] == '.')
52 {
53 if (!flag || (i - 1 >= start && name[i - 1] == '.'))
54 {
55 return false;
56 }
57 flag = false;
58 continue;
59 }
60 if (name[i] == '-' || name[i] == '_')
61 {
62 if (!flag)
63 {
64 return false;
65 }
66 continue;
67 }
68 if (char.IsLetter(name[i]) || (name[i] >= '0' && name[i] <= '9'))
69 {
70 if (!flag)
71 {
72 flag = true;
73 }
74 continue;
75 }
76 return false;
77 }
78 if (i - 1 >= start && name[i - 1] == '.')
79 {
80 flag = true;
81 }
82 if (!flag)
83 {
84 return false;
85 }
86 returnedEnd = num;
87 return true;
88 }
89}
static string ParseCanonicalName(string str, int start, int end, ref bool loopback)
static string ParseCanonicalName(string str, int start, int end, ref bool loopback)
static unsafe bool IsValid(char *name, int start, ref int returnedEnd, bool notImplicitFile)