2 * Copyright (C) 2008 Diego Hernan Borghetti.
22 void e_cmd_cr(E_Eco
*ec
)
24 if (ec
->view
->b
->dot
== ec
->view
->b
->line
->used
)
25 e_buffer_newline(ec
->view
->b
);
26 else if (ec
->view
->b
->dot
== 0) {
27 if (ec
->view
->b
->line
->prev
) {
28 e_buffer_up(ec
->view
->b
);
29 e_buffer_eol(ec
->view
->b
);
30 e_buffer_newline(ec
->view
->b
);
31 e_buffer_down(ec
->view
->b
);
34 e_buffer_newline_first(ec
->view
->b
);
38 e_buffer_splitline(ec
->view
->b
);
40 e_view_redraw(ec
->view
);
43 void e_cmd_ht(E_Eco
*ec
)
45 e_buffer_insert(ec
->view
->b
, '\t', 1);
46 e_view_redraw(ec
->view
);
49 void e_cmd_backspace(E_Eco
*ec
)
51 e_buffer_backspace(ec
->view
->b
);
52 e_view_redraw(ec
->view
);
55 void e_cmd_write(E_Eco
*ec
)
59 if (!strcmp(ec
->view
->b
->paths
->file
, "main")) {
60 buf
= e_status_get_msg(ec
, "File: ");
64 free((void *) ec
->view
->b
->paths
->file
);
65 ec
->view
->b
->paths
->file
= strdup(buf
);
68 /* Remove empty lines before save. */
69 e_buffer_rem_empty_lines(ec
->view
->b
);
71 /* and write the full file to disk. */
72 e_file_write(ec
, ec
->view
->b
);
75 void e_cmd_killline(E_Eco
*ec
)
77 e_buffer_killline(ec
->view
->b
, 0);
78 e_view_redraw(ec
->view
);
81 void e_cmd_rotate(E_Eco
*ec
)
86 void e_cmd_goto(E_Eco
*ec
)
91 buf
= e_status_get_msg(ec
, "Line: ");
94 e_buffer_goto(ec
->view
->b
, line
);
95 e_view_redraw(ec
->view
);
99 void e_cmd_find_file(E_Eco
*ec
)
106 buf
= e_status_get_msg(ec
, "Find File: ");
108 bf
= e_main_find(ec
, buf
);
110 v
= e_main_view_find(ec
, bf
);
111 e_view_unshow(ec
->view
);
117 bf
= e_file_read(buf
, &st
);
119 v
= e_view_new(ec
->sc
);
121 e_main_view_add(ec
, v
);
126 e_view_unshow(ec
->view
);
130 e_status_set_msg(ec
, "(file is locked!)");
132 e_status_set_msg(ec
, "(file is not a regular file!)");
137 void e_cmd_cutline(E_Eco
*ec
)
139 e_buffer_killline(ec
->view
->b
, 1);
140 e_view_redraw(ec
->view
);
143 void e_cmd_copyline(E_Eco
*ec
)
145 e_buffer_killline(ec
->view
->b
, 2);
146 e_buffer_down(ec
->view
->b
);
147 e_view_redraw(ec
->view
);
150 void e_cmd_paste(E_Eco
*ec
)
152 e_kill_paste(ec
->view
->b
);
153 e_view_redraw(ec
->view
);
156 void e_cmd_cleankill(E_Eco
*ec
)
161 void e_cmd_update(E_Eco
*ec
)
163 e_view_redraw(ec
->view
);
166 e_screen_swap(ec
->tr
, ec
->sc
, 1);
170 void e_cmd_search_forward(E_Eco
*ec
)
174 buf
= e_status_get_msg(ec
, "Search: ");
176 strcpy(ec
->view
->search
, buf
);
177 e_buffer_search(ec
->view
->b
, ec
->view
->search
, BUFFER_SEARCH_FORWARD
);
178 e_status_set_msg(ec
, "(Search: %s)", ec
->view
->search
);
179 e_view_redraw(ec
->view
);
181 else if (ec
->view
->search
) {
182 e_buffer_search(ec
->view
->b
, ec
->view
->search
, BUFFER_SEARCH_FORWARD
);
183 e_status_set_msg(ec
, "(Search: %s)", ec
->view
->search
);
184 e_view_redraw(ec
->view
);
188 void e_cmd_search_backward(E_Eco
*ec
)
192 buf
= e_status_get_msg(ec
, "Search: ");
194 strcpy(ec
->view
->search
, buf
);
195 e_buffer_search(ec
->view
->b
, ec
->view
->search
, BUFFER_SEARCH_BACKWARD
);
196 e_status_set_msg(ec
, "(Search: %s)", ec
->view
->search
);
197 e_view_redraw(ec
->view
);
199 else if (ec
->view
->search
) {
200 e_buffer_search(ec
->view
->b
, ec
->view
->search
, BUFFER_SEARCH_BACKWARD
);
201 e_status_set_msg(ec
, "(Search: %s)", ec
->view
->search
);
202 e_view_redraw(ec
->view
);
206 void e_cmd_replace(E_Eco
*ec
)
211 buf
= e_status_get_msg(ec
, "Replace: ");
213 strcpy(ec
->view
->search
, buf
);
214 buf
= e_status_get_msg(ec
, "With: ");
216 num
= e_buffer_replace(ec
->view
->b
, ec
->view
->search
, buf
);
217 e_status_set_msg(ec
, "(%d subsitutions)", num
);
219 e_view_redraw(ec
->view
);