REVERTED
src/main.zig
REVERTED
src/main.zig
···
23
\\ --hyperlinks=WHEN When to use OSC 8 hyperlinks (always, auto, never)
24
\\ --icons=WHEN When to display icons (always, auto, never)
25
\\ -l, --long Display extended file metadata
26
-
\\ --mode=WHEN When to display mode (always, auto, never)
27
-
\\ --user=WHEN When to display user (always, auto, never)
28
-
\\ --group=WHEN When to display group (always, auto, never)
29
\\ -r, --reverse Reverse the sort order
30
\\ -t, --time Sort the entries by modification time, most recent first
31
\\
···
41
@"group-directories-first": bool = true,
42
hyperlinks: When = .auto,
43
icons: When = .auto,
44
-
mode: When = .auto,
45
-
user: When = .auto,
46
-
group: When = .auto,
47
long: bool = false,
48
sort_by_mod_time: bool = false,
49
reverse_sort: bool = false,
···
114
}
115
}
116
117
-
fn showMode(self: Options) bool {
118
-
switch (self.mode) {
119
-
.never => return false,
120
-
.always => return true,
121
-
.auto => return self.isatty(),
122
-
}
123
-
}
124
-
125
-
fn showUser(self: Options) bool {
126
-
switch (self.user) {
127
-
.never => return false,
128
-
.always => return true,
129
-
.auto => return self.isatty(),
130
-
}
131
-
}
132
-
133
-
fn showGroup(self: Options) bool {
134
-
switch (self.group) {
135
-
.never => return false,
136
-
.always => return true,
137
-
.auto => return self.isatty(),
138
-
}
139
-
}
140
-
141
fn useHyperlinks(self: Options) bool {
142
switch (self.hyperlinks) {
143
.never => return false,
···
242
};
243
} else if (eql(opt, "icons")) {
244
cmd.opts.icons = std.meta.stringToEnum(Options.When, val) orelse {
245
-
try stderr.print("Invalid icons option: '{s}'", .{val});
246
-
std.process.exit(1);
247
-
};
248
-
} else if (eql(opt, "mode")) {
249
-
cmd.opts.mode = std.meta.stringToEnum(Options.When, val) orelse {
250
-
try stderr.print("Invalid mode option: '{s}'", .{val});
251
-
std.process.exit(1);
252
-
};
253
-
} else if (eql(opt, "user")) {
254
-
cmd.opts.user = std.meta.stringToEnum(Options.When, val) orelse {
255
-
try stderr.print("Invalid user option: '{s}'", .{val});
256
-
std.process.exit(1);
257
-
};
258
-
} else if (eql(opt, "group")) {
259
-
cmd.opts.group = std.meta.stringToEnum(Options.When, val) orelse {
260
-
try stderr.print("Invalid group option: '{s}'", .{val});
261
std.process.exit(1);
262
};
263
} else if (eql(opt, "columns")) {
···
549
550
const mode = entry.modeStr();
551
552
-
if (cmd.opts.showMode()) {
553
-
try writer.writeAll(&mode);
554
-
try writer.writeByte(' ');
555
-
}
556
-
if (cmd.opts.showUser()) {
557
-
try writer.writeAll(user.name);
558
-
try writer.writeByteNTimes(' ', longest_user - user.name.len);
559
-
try writer.writeByte(' ');
560
-
}
561
-
if (cmd.opts.showGroup()) {
562
-
try writer.writeAll(group.name);
563
-
try writer.writeByteNTimes(' ', longest_group - group.name.len);
564
-
try writer.writeByte(' ');
565
-
}
566
567
var size_buf: [16]u8 = undefined;
568
const size = try entry.humanReadableSize(&size_buf);
···
23
\\ --hyperlinks=WHEN When to use OSC 8 hyperlinks (always, auto, never)
24
\\ --icons=WHEN When to display icons (always, auto, never)
25
\\ -l, --long Display extended file metadata
26
\\ -r, --reverse Reverse the sort order
27
\\ -t, --time Sort the entries by modification time, most recent first
28
\\
···
38
@"group-directories-first": bool = true,
39
hyperlinks: When = .auto,
40
icons: When = .auto,
41
long: bool = false,
42
sort_by_mod_time: bool = false,
43
reverse_sort: bool = false,
···
108
}
109
}
110
111
fn useHyperlinks(self: Options) bool {
112
switch (self.hyperlinks) {
113
.never => return false,
···
212
};
213
} else if (eql(opt, "icons")) {
214
cmd.opts.icons = std.meta.stringToEnum(Options.When, val) orelse {
215
+
try stderr.print("Invalid color option: '{s}'", .{val});
216
std.process.exit(1);
217
};
218
} else if (eql(opt, "columns")) {
···
504
505
const mode = entry.modeStr();
506
507
+
try writer.writeAll(&mode);
508
+
try writer.writeByte(' ');
509
+
try writer.writeAll(user.name);
510
+
try writer.writeByteNTimes(' ', longest_user - user.name.len);
511
+
try writer.writeByte(' ');
512
+
try writer.writeAll(group.name);
513
+
try writer.writeByteNTimes(' ', longest_group - group.name.len);
514
+
try writer.writeByte(' ');
515
516
var size_buf: [16]u8 = undefined;
517
const size = try entry.humanReadableSize(&size_buf);