rm -iのバグを修正
このコミットが含まれているのは:
コミット
76da198654
28
src/rm.zig
28
src/rm.zig
|
@ -95,26 +95,36 @@ pub fn main() !void {
|
||||||
if (stat.kind != .file) {
|
if (stat.kind != .file) {
|
||||||
if (isrecur) {
|
if (isrecur) {
|
||||||
if (ischeck) {
|
if (ischeck) {
|
||||||
try stdout.print("rm: ディレクトリ '{s}' を削除しますか?\n", .{item});
|
try stdout.print("rm: '{s}' を削除しますか?\n", .{item});
|
||||||
try bw.flush();
|
try bw.flush();
|
||||||
if (!(try condel())) continue;
|
if (!(try condel())) {
|
||||||
|
if (!isigout) {
|
||||||
|
try stdout.print("rm: '{s}' を削除しませんでした。\n", .{item});
|
||||||
|
try bw.flush();
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
try fs.cwd().deleteTree(item);
|
try fs.cwd().deleteTree(item);
|
||||||
if (!isigout) {
|
if (!isigout) {
|
||||||
try stdout.print("rm: ディレクトリ '{s}' を削除しました。\n", .{item});
|
try stdout.print("rm: '{s}' を削除しました。\n", .{item});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try stdout.print("rm: '{s}' を削除できません: ディレクトリです\n", .{item});
|
try stdout.print("rm: '{s}' を削除できません: ディレクトリです\n", .{item});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ischeck) {
|
if (ischeck) {
|
||||||
try stdout.print("rm: 通常ファイル '{s}' を削除しますか?\n", .{item});
|
try stdout.print("rm: '{s}' を削除しますか?\n", .{item});
|
||||||
try bw.flush();
|
try bw.flush();
|
||||||
if (!(try condel())) continue;
|
if (!(try condel())) {
|
||||||
|
try stdout.print("rm: '{s}' を削除しませんでした。\n", .{item});
|
||||||
|
try bw.flush();
|
||||||
|
}
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
try fs.cwd().deleteFile(item);
|
try fs.cwd().deleteFile(item);
|
||||||
if (!isigout) {
|
if (!isigout) {
|
||||||
try stdout.print("rm: ファイル '{s}' を削除しました。\n", .{item});
|
try stdout.print("rm: '{s}' を削除しました。\n", .{item});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +148,11 @@ fn condel() !bool {
|
||||||
var ly: [1]u8 = [_]u8{'y'};
|
var ly: [1]u8 = [_]u8{'y'};
|
||||||
var uy: [1]u8 = [_]u8{'Y'};
|
var uy: [1]u8 = [_]u8{'Y'};
|
||||||
if (input) |i| {
|
if (input) |i| {
|
||||||
return (std.mem.eql(u8, i[0..1], &ly) or std.mem.eql(u8, i[0..1], &uy));
|
if (i.len == 1) {
|
||||||
|
return (std.mem.eql(u8, i[0..1], &ly) or std.mem.eql(u8, i[0..1], &uy));
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
読み込み中…
新しいイシューから参照