added indent and unindent commmands
parent
5ed3ab8aa6
commit
054e0b02e8
|
@ -0,0 +1,23 @@
|
|||
void
|
||||
c_indent(char *c) {
|
||||
Row *row = b_getline(buffer, atoi(c + 2));
|
||||
if (row == NULL) { puts ("invalid line"); return; }
|
||||
|
||||
|
||||
for(int i = ROW_SIZE - 1; i >= 1; i--) {
|
||||
row->text[i] = row->text[i - 1];
|
||||
}
|
||||
row->text[0] = '\t';
|
||||
}
|
||||
|
||||
void
|
||||
c_unindent(char *c) {
|
||||
Row *row = b_getline(buffer, atoi(c + 2));
|
||||
if (row == NULL) { puts ("invalid line"); return; }
|
||||
|
||||
for(int i = 0; i < ROW_SIZE - 1; i++) {
|
||||
row->text[i] = row->text[i + 1];
|
||||
}
|
||||
row->text[ROW_SIZE] = 0;
|
||||
}
|
||||
|
|
@ -11,3 +11,7 @@ NULL,
|
|||
['p'] = NULL,
|
||||
['p'] = c_print,
|
||||
['P'] = NULL,
|
||||
[']'] = c_indent,
|
||||
['['] = c_unindent,
|
||||
|
||||
|
||||
|
|
2
efn.c
2
efn.c
|
@ -22,3 +22,5 @@
|
|||
|
||||
#include "c_save.c"
|
||||
#include "c_insertline.c"
|
||||
#include "c_indent.c"
|
||||
|
||||
|
|
4
efn.h
4
efn.h
|
@ -14,3 +14,7 @@ Row *b_getline(Row *, int);
|
|||
void c_writeline(char *);
|
||||
void c_save(char*);
|
||||
void c_insertline(char *);
|
||||
void c_indent(char *);
|
||||
void c_unindent(char *);
|
||||
|
||||
|
||||
|
|
5
main.c
5
main.c
|
@ -3,8 +3,8 @@ main(int argc, char **argv) {
|
|||
static char buf[COM_BUF_SIZE];
|
||||
while(1) {
|
||||
memset(buf, 0, sizeof(buf));
|
||||
printf(" > ");
|
||||
char *com = fgets(buf, sizeof(buf), stdin);
|
||||
printf(" > ");
|
||||
char *com = fgets(buf, sizeof(buf), stdin);
|
||||
for (int i = 0; i < sizeof(buf); i++)
|
||||
if (buf[i] == '\n')
|
||||
buf[i] = '\0';
|
||||
|
@ -18,3 +18,4 @@ char *com = fgets(buf, sizeof(buf), stdin);
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue