summaryrefslogtreecommitdiff
path: root/src/paths.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/paths.zig')
-rw-r--r--src/paths.zig62
1 files changed, 31 insertions, 31 deletions
diff --git a/src/paths.zig b/src/paths.zig
index dd3ace2..abda053 100644
--- a/src/paths.zig
+++ b/src/paths.zig
@@ -3,18 +3,18 @@ const Allocator = std.mem.Allocator;
const ArrayList = std.ArrayList;
pub fn formatDosPath(allocator: Allocator, path: []const u8) ![]const u8 {
- var result = ArrayList(u8).init(allocator);
- defer result.deinit();
+ var result = ArrayList(u8){};
+ defer result.deinit(allocator);
// Convert path to DOS format with uppercase drive letter and backslashes
- var converted_path = ArrayList(u8).init(allocator);
- defer converted_path.deinit();
+ var converted_path = ArrayList(u8){};
+ defer converted_path.deinit(allocator);
for (path) |ch| {
if (ch == '/') {
- try converted_path.append('\\');
+ try converted_path.append(allocator, '\\');
} else {
- try converted_path.append(std.ascii.toUpper(ch));
+ try converted_path.append(allocator, std.ascii.toUpper(ch));
}
}
@@ -26,7 +26,7 @@ pub fn formatDosPath(allocator: Allocator, path: []const u8) ![]const u8 {
if (component.len == 0) continue;
if (!first) {
- try result.append('\\');
+ try result.append(allocator, '\\');
}
first = false;
@@ -34,22 +34,22 @@ pub fn formatDosPath(allocator: Allocator, path: []const u8) ![]const u8 {
const short_name = try convertTo83(allocator, component);
defer allocator.free(short_name.name);
defer allocator.free(short_name.ext);
- try result.appendSlice(short_name.name);
+ try result.appendSlice(allocator, short_name.name);
if (short_name.ext.len > 0) {
- try result.append('.');
- try result.appendSlice(short_name.ext);
+ try result.append(allocator, '.');
+ try result.appendSlice(allocator, short_name.ext);
}
}
// Ensure it starts with a drive letter if it's an absolute path
if (result.items.len == 0 or (result.items.len >= 1 and result.items[0] == '\\')) {
- var prefixed = ArrayList(u8).init(allocator);
- defer prefixed.deinit();
- try prefixed.appendSlice("C:");
+ var prefixed = ArrayList(u8){};
+ defer prefixed.deinit(allocator);
+ try prefixed.appendSlice(allocator, "C:");
if (result.items.len > 0 and result.items[0] != '\\') {
- try prefixed.append('\\');
+ try prefixed.append(allocator, '\\');
}
- try prefixed.appendSlice(result.items);
+ try prefixed.appendSlice(allocator, result.items);
return allocator.dupe(u8, prefixed.items);
}
@@ -79,48 +79,48 @@ pub fn convertTo83(allocator: Allocator, filename: []const u8) !struct { name: [
}
// Clean name part (remove spaces and invalid chars, convert to uppercase)
- var clean_name = ArrayList(u8).init(allocator);
- defer clean_name.deinit();
+ var clean_name = ArrayList(u8){};
+ defer clean_name.deinit(allocator);
for (name_part) |ch| {
if (std.ascii.isAlphanumeric(ch)) {
- try clean_name.append(std.ascii.toUpper(ch));
+ try clean_name.append(allocator, std.ascii.toUpper(ch));
} else if (ch == '-' or ch == '_') {
- try clean_name.append(ch);
+ try clean_name.append(allocator, ch);
}
// Skip spaces and other invalid characters
}
// Clean extension part (max 3 chars, uppercase)
- var clean_ext = ArrayList(u8).init(allocator);
- defer clean_ext.deinit();
+ var clean_ext = ArrayList(u8){};
+ defer clean_ext.deinit(allocator);
for (ext_part) |ch| {
if (clean_ext.items.len >= 3) break;
if (std.ascii.isAlphanumeric(ch)) {
- try clean_ext.append(std.ascii.toUpper(ch));
+ try clean_ext.append(allocator, std.ascii.toUpper(ch));
}
}
- var name_result = ArrayList(u8).init(allocator);
- defer name_result.deinit();
- var ext_result = ArrayList(u8).init(allocator);
- defer ext_result.deinit();
+ var name_result = ArrayList(u8){};
+ defer name_result.deinit(allocator);
+ var ext_result = ArrayList(u8){};
+ defer ext_result.deinit(allocator);
// Build 8.3 filename
if (clean_name.items.len <= 8 and clean_ext.items.len <= 3) {
// Name fits in 8.3, use as-is
- try name_result.appendSlice(clean_name.items);
- try ext_result.appendSlice(clean_ext.items);
+ try name_result.appendSlice(allocator, clean_name.items);
+ try ext_result.appendSlice(allocator, clean_ext.items);
} else {
// Need to abbreviate with ~1
const max_name_len = if (clean_name.items.len > 6) 6 else clean_name.items.len;
- try name_result.appendSlice(clean_name.items[0..max_name_len]);
- try name_result.appendSlice("~1");
+ try name_result.appendSlice(allocator, clean_name.items[0..max_name_len]);
+ try name_result.appendSlice(allocator, "~1");
if (clean_ext.items.len > 0) {
const max_ext_len = if (clean_ext.items.len > 3) 3 else clean_ext.items.len;
- try ext_result.appendSlice(clean_ext.items[0..max_ext_len]);
+ try ext_result.appendSlice(allocator, clean_ext.items[0..max_ext_len]);
}
}