aboutsummaryrefslogtreecommitdiffstats
path: root/editor.cpp
diff options
context:
space:
mode:
authorJan Tuomi <jan-sebastian.tuomi@aalto.fi>2016-10-09 14:19:46 +0300
committerJan Tuomi <jan-sebastian.tuomi@aalto.fi>2016-10-09 14:50:24 +0300
commitda5ecb5de0ca0bc099258f7b77480fbb28b31392 (patch)
tree8fe86fc9c244cc2ec8e9603f7c444c34eb124ac0 /editor.cpp
parent2b77640618425c015bb8e35c06c5ad4eb290ac72 (diff)
Add prepend before line
Diffstat (limited to 'editor.cpp')
-rw-r--r--editor.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/editor.cpp b/editor.cpp
index 6c86447..f8c8ade 100644
--- a/editor.cpp
+++ b/editor.cpp
@@ -36,7 +36,11 @@ int Editor::run_editor() {
case 'a':
append_after_command();
break;
+ case 'b':
+ prepend_before_command();
+ break;
default:
+ std::cout << "Not a recognized command " << input << ".\n";
break;
}
}
@@ -188,3 +192,21 @@ int Editor::append_after_line(int line) {
return edit_line(line + 1);
}
+int Editor::prepend_before_command() {
+ std::cout << "Prepend before which line? ";
+ int line;
+ std::cin >> line;
+ if (std::cin.fail() || line < 0 || line >= m_contents->size()) {
+ std::cout << "Not a valid line number!\n";
+ std::cin.clear();
+ std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
+ return 1;
+ }
+
+ return prepend_before_line(line);
+}
+
+int Editor::prepend_before_line(int line) {
+ m_contents->insert(m_contents->begin() + line, "");
+ return edit_line(line);
+}