From e2e0f21d932224434cb6121165dc00f0c1bb3bdd Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Tue, 15 Sep 2009 18:59:24 +0200 Subject: cat command now uses the File class. --- Source/Kernel/Core/kmain.wtf.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'Source/Kernel/Core') diff --git a/Source/Kernel/Core/kmain.wtf.cpp b/Source/Kernel/Core/kmain.wtf.cpp index 6dc37ee..89932e3 100644 --- a/Source/Kernel/Core/kmain.wtf.cpp +++ b/Source/Kernel/Core/kmain.wtf.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -81,7 +82,7 @@ void kmain(multiboot_info_t* mbd, u32int magic) { IDT::init(); OK(kvt); PROCESSING(kvt, "Initializing paging..."); - u32int totalRam = ((mbd->mem_upper + 1024) * 1024); + u32int totalRam = ((mbd->mem_upper + mbd->mem_lower) * 1024); PhysMem::initPaging(totalRam); OK(kvt); INFO(kvt); *kvt << "Total ram : " << (s32int)(totalRam / 1024) << "k (" << (s32int)(totalRam / (1024 * 1024)) << "M).\n"; @@ -177,18 +178,15 @@ void kmain(multiboot_info_t* mbd, u32int magic) { } else if (tokens[0] == "cat") { if (tokens.size() == 1) *kvt << "Meow.\n"; for (u32int i = 1; i < tokens.size(); i++) { - FSNode* n = VFS::find(tokens[i], cwd); - if (n == NULL) { - *kvt << "No such file : " << tokens[i] << "\n"; - } else if (n->type() != NT_FILE) { - *kvt << "Not a file : " << tokens[i] << "\n"; - } else { - FileNode* f = (FileNode*) n; - u8int *buff = (u8int*)Mem::kalloc(f->getLength() + 1); - f->read(0, f->getLength(), buff); - buff[f->getLength()] = 0; + File f(tokens[i], FM_READ, cwd); + if (f.valid()) { + u8int *buff = (u8int*)Mem::kalloc(f.length() + 1); + f.read(f.length(), buff); + buff[f.length()] = 0; *kvt << String((const char*) buff); Mem::kfree(buff); + } else { + *kvt << "Error reading from file " << tokens[i] << "\n"; } } } else if (tokens[0] == "pwd") { -- cgit v1.2.3