Saving with F5 now saves to the file name.

This commit is contained in:
Mazar Farran 2015-08-18 22:02:41 -07:00
parent fe910b6e31
commit 1025c25eb9
3 changed files with 11 additions and 6 deletions

3
page.c
View File

@ -1,6 +1,6 @@
#include "page.h" #include "page.h"
void init_page(PAGE *p, int size) void init_page(PAGE *p, char *filename, int size)
{ {
p->text = (LINE *)malloc(size * sizeof(LINE)); p->text = (LINE *)malloc(size * sizeof(LINE));
@ -9,6 +9,7 @@ void init_page(PAGE *p, int size)
{ {
init_line(p->text + i); init_line(p->text + i);
} }
strcpy(p->filename, filename);
p->numlines = 0; p->numlines = 0;
p->size = size; p->size = size;
} // init_page } // init_page

4
page.h
View File

@ -7,15 +7,17 @@
#define PAGE_SIZE 500 /* Max number of lines. Currently not expandable. */ #define PAGE_SIZE 500 /* Max number of lines. Currently not expandable. */
#define WIN_SIZE (LINES - 2) /* Size of window, making room for bottom prompt */ #define WIN_SIZE (LINES - 2) /* Size of window, making room for bottom prompt */
#define NAME_LIMIT 256 /* Max size of a unix filename + 1 */
typedef struct typedef struct
{ {
char filename[NAME_LIMIT];
LINE *text; // lines of text LINE *text; // lines of text
int numlines; int numlines;
int size; // size of array int size; // size of array
} PAGE; } PAGE;
void init_page(PAGE *p, int size); void init_page(PAGE *p, char *filename, int size);
void dest_page(PAGE *p); void dest_page(PAGE *p);
void insert_line(PAGE *p, int index); void insert_line(PAGE *p, int index);
void remove_line(PAGE *p, int index); void remove_line(PAGE *p, int index);

10
text.c
View File

@ -33,7 +33,7 @@ int main(int argc, char *argv[])
} }
else // initialize else // initialize
{ {
init_page(&page, PAGE_SIZE); init_page(&page, "untitled.txt", PAGE_SIZE);
page.text[0].line[0] = '\0'; page.text[0].line[0] = '\0';
page.numlines = 1; page.numlines = 1;
} }
@ -66,7 +66,9 @@ int main(int argc, char *argv[])
break; break;
case KEY_F(5): case KEY_F(5):
save_file(argc, argv, &page); save_file(argc, argv, &page);
update_status("Saved as \'save.txt\'"); char status[NAME_LIMIT + 10];
sprintf(status, "Saved as \'%s\'", page.filename);
update_status(status);
break; break;
case KEY_UP: case KEY_UP:
move_up(&page, &x, &y); move_up(&page, &x, &y);
@ -207,7 +209,7 @@ void load_file(int argc, char **argv, PAGE *p)
int size = count_lines(argc, argv) * 2; int size = count_lines(argc, argv) * 2;
char ch = '\0'; char ch = '\0';
int line, col; int line, col;
init_page(p, size); init_page(p, argv[1], size);
for(line = 0; line < PAGE_SIZE && ch != EOF; line++) for(line = 0; line < PAGE_SIZE && ch != EOF; line++)
{ {
@ -225,7 +227,7 @@ void load_file(int argc, char **argv, PAGE *p)
void save_file(int argc, char **argv, PAGE *p) void save_file(int argc, char **argv, PAGE *p)
{ {
FILE *fp = fopen("save.txt", "w"); FILE *fp = fopen(p->filename, "w");
int line, col; int line, col;
for(line = 0; line < p->numlines; line++) for(line = 0; line < p->numlines; line++)