void view_delete(View* view);
void view_bol(View* view);
void view_eol(View* view);
+void view_undo(View* view);
+void view_redo(View* view);
//size_t view_getoff(View* view, size_t pos, size_t row, size_t col);
//void view_getsize(View* view, size_t* nrows, size_t* ncols);
view->selection.col = buf_getcol(&(view->buffer), view->selection.end);
view->sync_needed = true;
}
+
+void view_undo(View* view) {
+ view->selection.beg = view->selection.end = buf_undo(&(view->buffer), view->selection.end);
+ view->selection.col = buf_getcol(&(view->buffer), view->selection.end);
+ view->sync_needed = true;
+}
+
+void view_redo(View* view) {
+ view->selection.beg = view->selection.end = buf_redo(&(view->buffer), view->selection.end);
+ view->selection.col = buf_getcol(&(view->buffer), view->selection.end);
+ view->sync_needed = true;
+}
static void save(void) {
buf_save(getbuf(EDIT));
}
-//
-//static void undo(void) {
-// SelBeg = SelEnd = buf_undo(&Buffer, SelEnd);
-// TargetCol = buf_getcol(&Buffer, SelEnd);
-//}
-//
-//static void redo(void) {
-// SelBeg = SelEnd = buf_redo(&Buffer, SelEnd);
-// TargetCol = buf_getcol(&Buffer, SelEnd);
-//}
-//
+
+static void undo(void) {
+ view_undo(currview());
+}
+
+static void redo(void) {
+ view_redo(currview());
+}
+
//static void cut(void) {
// char* str = buf_getstr(&Buffer, SelBeg, SelEnd);
// cmdwrite(CopyCmd, str);
{ KEY_CTRL_T, change_focus },
{ KEY_CTRL_Q, quit },
{ KEY_CTRL_S, save },
- //{ KEY_CTRL_Z, undo },
- //{ KEY_CTRL_Y, redo },
+ { KEY_CTRL_Z, undo },
+ { KEY_CTRL_Y, redo },
//{ KEY_CTRL_X, cut },
//{ KEY_CTRL_C, copy },
//{ KEY_CTRL_V, paste },