From 5d58207ff469c05a7b66df02f99dacb616b97739 Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Wed, 4 Dec 2013 21:41:22 +0100 Subject: [PATCH] Fixes --- kernel/include/vector.hpp | 4 ++++ kernel/src/fat32.cpp | 2 -- kernel/src/shell.cpp | 8 +++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/include/vector.hpp b/kernel/include/vector.hpp index 5a2818f8..b83c0977 100644 --- a/kernel/include/vector.hpp +++ b/kernel/include/vector.hpp @@ -93,6 +93,10 @@ public: data[_size++] = element; } + void pop_back(){ + --_size; + } + void clear(){ _size = 0; } diff --git a/kernel/src/fat32.cpp b/kernel/src/fat32.cpp index e9233819..8c9e3275 100644 --- a/kernel/src/fat32.cpp +++ b/kernel/src/fat32.cpp @@ -206,8 +206,6 @@ vector fat32::ls(dd disk, const disks::partition_descriptor& partit unique_heap_array current_cluster(16 * fat_bs->sectors_per_cluster); - k_print_line(path.size()); - if(read_sectors(disk, cluster_addr, fat_bs->sectors_per_cluster, current_cluster.get())){ for(auto& p : path){ bool found = false; diff --git a/kernel/src/shell.cpp b/kernel/src/shell.cpp index 6d7d7ad1..0688dd0d 100644 --- a/kernel/src/shell.cpp +++ b/kernel/src/shell.cpp @@ -490,7 +490,13 @@ void cd_command(const vector& params){ if(params.size() == 1){ disks::current_directory().clear(); } else { - disks::current_directory().push_back(params[1]); + if(params[1] == ".."){ + if(disks::current_directory().size() > 0){ + disks::current_directory().pop_back(); + } + } else { + disks::current_directory().push_back(params[1]); + } } }