payredu

[WIP] Cross-platform ledger GUI written in c99

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
#include <stdio.h>
#include <book.h>

/* TEST_INPUT
october-2023.txt
TEST_INPUT */

int main(int argc, char* argv[]) {
	char* content = (char*)malloc(10000);
	size_t content_len = 0;
	//if (argc < 2) {
	//	fprintf(stderr, "Usage: %s filename.txt\n", argv[0]);
	//	return 1;
	//}
	//FILE* fp = fopen(argv[1], "r");
	FILE* fp = fopen("october-2023.txt", "r");
	if (fp == NULL) {
		printf("Cannot open file\n");
		goto export_csv_cleanup;
	}
	size_t content_read = 0;
	char* content_ptr = content;
	while ( (content_read = fread(content_ptr, 1, 1, fp)) != 0) {
		content_ptr += content_read;
	}
	content_len = content_ptr - content;

	printf("%s\n%ld", content, content_len);

	ledger_parse_data(content, content_len);

export_csv_cleanup:
	if (fp != NULL) fclose(fp);
	return 0;
}

/* TEST_OUTPUT
"2015/10/12","","Exxon","Liabilities:MasterCard","$","-10","",""
"2015/10/12","","Exxon","Expenses:Auto:Gas","$","10","",""
"2015/10/12","","Donna's Cake World","Liabilities:Credit","$","-5","",""
"2015/10/12","","Donna's Cake World","Expenses:Food:Dessert","$","5","",""
"2024/10/25","","Zaitoon","Liabilities:Credit","$","-5","",""
"2024/10/25","","Zaitoon","Expenses:Food:Dinner","$","5","",""
"2024/10/24","","Donna's Cake World","Expenses:Food:Dessert","$","5","",""
"2024/10/24","","Donna's Cake World","Expenses:Food:Dinner","$","19","",""
"2024/10/24","","Donna's Cake World","Assets:Cash","$","-24","",""
"2015/10/12","","Zoho","Income:Salary","$","-10000","",""
"2015/10/12","","Zoho","Assets:Bank:Checking","$","10000","",""
"2025/10/20","","Old loan from friend","Assets:Cash","$","200","",""
"2025/10/20","","Old loan from friend","Friend:Cash","$","-200","",""
TEST_OUTPUT */