From 76da198654b51e7429a9c770986d4e80f46ba34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Sat, 26 Aug 2023 15:45:41 +0900 Subject: [PATCH] =?UTF-8?q?rm=20-i=E3=81=AE=E3=83=90=E3=82=B0=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rm.zig | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/rm.zig b/src/rm.zig index 8733809..d8b1278 100644 --- a/src/rm.zig +++ b/src/rm.zig @@ -95,26 +95,36 @@ pub fn main() !void { if (stat.kind != .file) { if (isrecur) { if (ischeck) { - try stdout.print("rm: ディレクトリ '{s}' を削除しますか?\n", .{item}); + try stdout.print("rm: '{s}' を削除しますか?\n", .{item}); 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); if (!isigout) { - try stdout.print("rm: ディレクトリ '{s}' を削除しました。\n", .{item}); + try stdout.print("rm: '{s}' を削除しました。\n", .{item}); } } else { try stdout.print("rm: '{s}' を削除できません: ディレクトリです\n", .{item}); } } else { if (ischeck) { - try stdout.print("rm: 通常ファイル '{s}' を削除しますか?\n", .{item}); + try stdout.print("rm: '{s}' を削除しますか?\n", .{item}); 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); 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 uy: [1]u8 = [_]u8{'Y'}; 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 { return false; }