summaryrefslogtreecommitdiff
path: root/Source/Kernel/Core
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2009-09-13 18:47:37 +0200
committerAlexis211 <alexis211@gmail.com>2009-09-13 18:47:37 +0200
commitd25429b738cb9c1b34d234ae23b3af27fdff72ea (patch)
treec15ef84225ad8e1e1670da309ad73bcd323c4956 /Source/Kernel/Core
parent23c20becb3542c7d5fa041ec69902abe8e2c8d64 (diff)
downloadMelon-d25429b738cb9c1b34d234ae23b3af27fdff72ea.tar.gz
Melon-d25429b738cb9c1b34d234ae23b3af27fdff72ea.zip
Changed welcome text and added a few error messages.
Diffstat (limited to 'Source/Kernel/Core')
-rw-r--r--Source/Kernel/Core/kmain.wtf.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/Source/Kernel/Core/kmain.wtf.cpp b/Source/Kernel/Core/kmain.wtf.cpp
index 808e254..59d74b5 100644
--- a/Source/Kernel/Core/kmain.wtf.cpp
+++ b/Source/Kernel/Core/kmain.wtf.cpp
@@ -164,14 +164,19 @@ void kmain(multiboot_info_t* mbd, u32int magic) {
}
}
} else if (tokens[0] == "cd") {
- FSNode* n = VFS::find(tokens[1], cwd);
- if (n == NULL)
- *kvt << "No such directory : " << tokens[1] << "\n";
- else if (n->type() != NT_DIRECTORY)
- *kvt << "Not a directory : " << tokens[1] << "\n";
- else
- cwd = (DirectoryNode*)n;
+ if (tokens.size() == 1) {
+ *kvt << "Where shall I take you, sir ?\n";
+ } else {
+ FSNode* n = VFS::find(tokens[1], cwd);
+ if (n == NULL)
+ *kvt << "No such directory : " << tokens[1] << "\n";
+ else if (n->type() != NT_DIRECTORY)
+ *kvt << "Not a directory : " << tokens[1] << "\n";
+ else
+ cwd = (DirectoryNode*)n;
+ }
} 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) {
@@ -180,8 +185,9 @@ void kmain(multiboot_info_t* mbd, u32int magic) {
*kvt << "Not a file : " << tokens[1] << "\n";
} else {
FileNode* f = (FileNode*) n;
- u8int *buff = (u8int*)Mem::kalloc(f->getLength());
+ u8int *buff = (u8int*)Mem::kalloc(f->getLength() + 1);
f->read(0, f->getLength(), buff);
+ buff[f->getLength()] = 0;
*kvt << String((const char*) buff);
Mem::kfree(buff);
}