Skip to content

Commit ae483a0

Browse files
author
Staffan Gustafsson
committed
Merging changes from v1 branch
2 parents 3ab23aa + 789a9f8 commit ae483a0

6 files changed

Lines changed: 59 additions & 47 deletions

File tree

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,6 @@ FakesAssemblies/
186186
# LightSwitch generated files
187187
GeneratedArtifacts/
188188
_Pvt_Extensions/
189-
ModelManifest.xml
189+
ModelManifest.xml
190+
/.vscode/*
191+
/.vs/*

PSEverything/Everything.cs

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,31 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Text;
3+
using static PSEverything.Status;
44

55
namespace PSEverything
66
{
7+
8+
public enum Status
9+
{
10+
Ok = 0,
11+
ErrorMemory = 1,
12+
ErrorIpc = 2,
13+
ErrorRegisterclassex = 3,
14+
ErrorCreatewindow = 4,
15+
ErrorCreatethread = 5,
16+
ErrorInvalidindex = 6,
17+
ErrorInvalidcall = 7,
18+
}
19+
720
public static class Everything
821
{
9-
public const int EVERYTHING_OK = 0;
10-
public const int EVERYTHING_ERROR_MEMORY = 1;
11-
public const int EVERYTHING_ERROR_IPC = 2;
12-
public const int EVERYTHING_ERROR_REGISTERCLASSEX = 3;
13-
public const int EVERYTHING_ERROR_CREATEWINDOW = 4;
14-
public const int EVERYTHING_ERROR_CREATETHREAD = 5;
15-
public const int EVERYTHING_ERROR_INVALIDINDEX = 6;
16-
public const int EVERYTHING_ERROR_INVALIDCALL = 7;
17-
static bool Is64Bit {
18-
get { return Environment.Is64BitProcess; }
19-
}
22+
23+
static bool Is64Bit => Environment.Is64BitProcess;
2024

2125
public static void SetSearch(string text)
2226
{
2327
int res = Is64Bit ? NativeMethods64.Everything_SetSearchW(text) : NativeMethods32.Everything_SetSearchW(text);
24-
if (res != EVERYTHING_OK)
28+
if (res != (int) Ok)
2529
{
2630
Throw(res);
2731
}
@@ -136,21 +140,21 @@ public static string[] GetAllResults(int count)
136140

137141
static void Throw(int errorCode)
138142
{
139-
switch (errorCode)
143+
switch ((Status)errorCode)
140144
{
141-
case EVERYTHING_ERROR_MEMORY:
145+
case ErrorMemory:
142146
throw new Exception("Memory Error");
143-
case EVERYTHING_ERROR_REGISTERCLASSEX:
147+
case ErrorRegisterclassex:
144148
throw new Exception("Class registration error");
145-
case EVERYTHING_ERROR_IPC:
149+
case ErrorIpc:
146150
throw new Exception("IPC error");
147-
case EVERYTHING_ERROR_CREATEWINDOW:
151+
case ErrorCreatewindow:
148152
throw new Exception("create window error");
149-
case EVERYTHING_ERROR_CREATETHREAD:
153+
case ErrorCreatethread:
150154
throw new Exception("Thread creation error");
151-
case EVERYTHING_ERROR_INVALIDINDEX:
155+
case ErrorInvalidindex:
152156
throw new Exception("Invalid index error");
153-
case EVERYTHING_ERROR_INVALIDCALL:
157+
case ErrorInvalidcall:
154158
throw new Exception("Invalid call error");
155159
}
156160
}

PSEverything/NativeMethods32.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,6 @@ namespace PSEverything
66
{
77
internal class NativeMethods32
88
{
9-
public const int EVERYTHING_OK = 0;
10-
public const int EVERYTHING_ERROR_MEMORY = 1;
11-
public const int EVERYTHING_ERROR_IPC = 2;
12-
public const int EVERYTHING_ERROR_REGISTERCLASSEX = 3;
13-
public const int EVERYTHING_ERROR_CREATEWINDOW = 4;
14-
public const int EVERYTHING_ERROR_CREATETHREAD = 5;
15-
public const int EVERYTHING_ERROR_INVALIDINDEX = 6;
16-
public const int EVERYTHING_ERROR_INVALIDCALL = 7;
17-
189
[DllImport("Everything32.dll", CharSet = CharSet.Unicode)]
1910
public static extern int Everything_SetSearchW(string lpSearchString);
2011

PSEverything/NativeMethods64.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ namespace PSEverything
66
{
77
internal class NativeMethods64
88
{
9-
10-
119
[DllImport("Everything64.dll", CharSet = CharSet.Unicode)]
1210
public static extern int Everything_SetSearchW(string lpSearchString);
1311

PSEverything/PSEverything.psd1

-3.97 KB
Binary file not shown.

PSEverything/SearchEverythingCommand.cs

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace PSEverything
77
[Cmdlet(VerbsCommon.Search, "Everything", SupportsPaging = true, DefaultParameterSetName = "default")]
88
[OutputType(typeof(string))]
99
[OutputType(typeof(string[]))]
10-
[Alias("se")]
10+
[Alias("se")]
1111
public class SearchEverythingCommand : PSCmdlet
1212
{
1313
[Parameter(ParameterSetName = "default")]
@@ -52,8 +52,8 @@ public class SearchEverythingCommand : PSCmdlet
5252
[ValidateCount(1,2)]
5353
[Parameter(ParameterSetName = "default")]
5454
public string[] Size { get; set; }
55-
56-
[Parameter(ParameterSetName = "regex")]
55+
56+
[Parameter(ParameterSetName = "regex")]
5757
public string RegularExpression { get; set; }
5858

5959
[Parameter]
@@ -64,11 +64,11 @@ public class SearchEverythingCommand : PSCmdlet
6464

6565
[Parameter(ParameterSetName = "default")]
6666
public SwitchParameter MatchWholeWord { get; set; }
67-
67+
6868
[Parameter()]
6969
public SwitchParameter AsArray { get; set; }
7070

71-
private string GetSearchString()
71+
private string GetSearchString()
7272
{
7373
if (ParameterSetName == "regex") { return RegularExpression; }
7474

@@ -87,13 +87,28 @@ private string GetSearchString()
8787

8888
private void AddPatternFilter(StringBuilder searchBuilder)
8989
{
90-
if (!String.IsNullOrEmpty(Filter))
90+
if (!string.IsNullOrEmpty(Filter))
9191
{
9292
searchBuilder.Append(' ');
9393
searchBuilder.Append(Filter);
9494
}
9595
}
9696

97+
private static void AddPath(StringBuilder searchBuilder, string path)
98+
{
99+
if (path.IndexOf(' ') == -1)
100+
{
101+
searchBuilder.Append(path);
102+
}
103+
else
104+
{
105+
searchBuilder.Append('"');
106+
searchBuilder.Append(path);
107+
searchBuilder.Append('"');
108+
}
109+
}
110+
111+
97112
private static void AddListFilter(StringBuilder searchBuilder, string filterName, string[] include, string[] exclude = null, char separator = ' ')
98113
{
99114
if (include == null && exclude == null) return;
@@ -103,7 +118,7 @@ private static void AddListFilter(StringBuilder searchBuilder, string filterName
103118
foreach (var item in include)
104119
{
105120
searchBuilder.Append(filterName);
106-
searchBuilder.Append(item);
121+
AddPath(searchBuilder, item);
107122
searchBuilder.Append(separator);
108123
}
109124

@@ -114,7 +129,7 @@ private static void AddListFilter(StringBuilder searchBuilder, string filterName
114129
{
115130
searchBuilder.Append(filterName);
116131
searchBuilder.Append('!');
117-
searchBuilder.Append(item);
132+
AddPath(searchBuilder, item);
118133
searchBuilder.Append(separator);
119134
}
120135
}
@@ -127,10 +142,12 @@ private void AddPathFilter(StringBuilder searchBuilder)
127142
if (!Global)
128143
{
129144
searchBuilder.Append(" path:");
130-
searchBuilder.Append(SessionState.Path.CurrentFileSystemLocation.ProviderPath);
145+
AddPath(searchBuilder, SessionState.Path.CurrentFileSystemLocation.ProviderPath);
146+
if(!SessionState.Path.CurrentFileSystemLocation.ProviderPath.EndsWith("\\")) {
131147
searchBuilder.Append('\\');
132148
}
133149
}
150+
}
134151

135152
void AddFileFilter(StringBuilder searchBuilder)
136153
{
@@ -166,7 +183,7 @@ void AddParentCountFilter(StringBuilder searchBuilder)
166183

167184
void AddChildFilter(StringBuilder searchBuilder)
168185
{
169-
if (!String.IsNullOrEmpty(ChildFileName))
186+
if (!string.IsNullOrEmpty(ChildFileName))
170187
{
171188
searchBuilder.Append(" child:");
172189
searchBuilder.Append(ChildFileName);
@@ -219,7 +236,7 @@ protected override void ProcessRecord()
219236
Everything.SortResultsByPath();
220237

221238
ulong skip = PagingParameters.Skip;
222-
if (skip > Int32.MaxValue)
239+
if (skip > int.MaxValue)
223240
{
224241
ThrowTerminatingError(new ErrorRecord(new ParameterBindingException("Cannot skip that many results"),"SkipToLarge", ErrorCategory.InvalidArgument, skip));
225242
}
@@ -228,9 +245,9 @@ protected override void ProcessRecord()
228245

229246
if (first == ulong.MaxValue)
230247
{
231-
first = Int32.MaxValue;
248+
first = int.MaxValue;
232249
}
233-
if (first > Int32.MaxValue)
250+
if (first > int.MaxValue)
234251
{
235252
ThrowTerminatingError(new ErrorRecord(new ParameterBindingException("Cannot take that many results"), "FirstToLarge", ErrorCategory.InvalidArgument, first));
236253
}
@@ -241,7 +258,7 @@ protected override void ProcessRecord()
241258
if (skip > 0)
242259
{
243260
Everything.SetOffset((int)skip);
244-
}
261+
}
245262

246263

247264
var searchPattern = GetSearchString();

0 commit comments

Comments
 (0)