efn/c_file.c

62 lines
1.1 KiB
C
Raw Permalink Normal View History

2022-09-15 18:23:26 +00:00
extern void load_file(char *);
2022-04-03 07:12:16 +00:00
void
c_open(char *file, char **argv) {
2022-04-03 08:35:05 +00:00
if(argv[1] == NULL) { puts("usage: O filename"); return;}
2022-09-15 18:23:26 +00:00
load_file(argv[1]);
}
void
load_file(char *file) {
FILE *f = fopen(file, "r");
2022-04-03 07:12:16 +00:00
if(f == NULL) { puts("couldnt open file."); return; }
b_truncate(buffer);
Row *row = buffer;
while (1) {
size_t red = 0;
for (int i = 0; i < ROW_SIZE; i++) {
red = fread(&row->text[i], 1, 1, f);
if (red != 1) return;
if (row->text[i] == '\n') {
row->text[i] = 0;
break;
}
}
row = b_insert(row);
}
fclose(f);
}
2022-04-02 14:58:16 +00:00
void
c_save(char *file, char **argv) {
2022-04-02 14:58:16 +00:00
FILE *f = fopen(file + 2, "w");
if(f == NULL) { puts("couldnt open file."); return; }
Row *row = buffer;
while (1) {
for(int i = 0; i < ROW_SIZE; i++) {
if (row->text[i] == '\0' || row->text[i] == '\n')
break;
fwrite(&row->text[i], 1, 1, f);
}
fwrite("\n", 1, 1, f);
2022-09-15 18:23:26 +00:00
if(row->n == NULL) break;
2022-04-02 14:58:16 +00:00
row = row->n;
}
2022-09-15 18:23:26 +00:00
fclose(f);
2022-04-02 14:58:16 +00:00
}
2022-04-03 07:12:16 +00:00
2022-04-03 08:35:05 +00:00
2022-09-15 18:23:26 +00:00