2 * blackbook - a minimal finance manager
4 * author: hackbard@hackdaworld.org
12 int load_account(int fd,t_bb *bb) {
17 if(read(fd,&(bb->account),sizeof(t_account))<sizeof(t_account)) {
18 bb_write(bb,"failed to read account information");
22 i=bb->account.amount_categories;
23 bb->account.category=(t_category *)malloc(i*sizeof(t_category));
24 if(bb->account.category==NULL) {
25 bb_write(bb,"malloc failed (categories)");
29 for(i=0;i<bb->account.amount_categories;i++) {
30 ret=read(fd,bb->account.category,sizeof(t_category));
31 if(ret!=sizeof(t_category)) {
32 bb_write(bb,"failed to read categories");
37 i=bb->account.amount_transfers;
38 bb->account.transfer=(t_transfer *)malloc(i*sizeof(t_transfer));
39 if(bb->account.transfer==NULL) {
40 bb_write(bb,"malloc failed (transfers)");
44 for(i=0;i<bb->account.amount_transfers;i++) {
45 ret=read(fd,bb->account.transfer,sizeof(t_transfer));
46 if(ret!=sizeof(t_transfer)) {
47 bb_write(bb,"failed to read transfers");
52 bb_write(bb,"loaded account information");
57 int save_account(int fd,t_bb *bb) {
62 if(write(fd,&(bb->account),sizeof(t_account))<sizeof(t_account)) {
63 bb_write(bb,"failed to write account information");
67 for(i=0;i<bb->account.amount_categories;i++) {
68 ret=write(fd,bb->account.category[i],sizeof(t_category));
69 if(ret!=sizeof(t_category)) {
70 bb_write(bb,"failed to write categories");
75 for(i=0;i<bb->account.amount_transfers;i++) {
76 ret=write(fd,bb->account.transfer[i],sizeof(t_transfer));
77 if(ret!=sizeof(t_transfer)) {
78 bb_write(bb,"failed to write transfers");
83 bb_write(bb,"saved account information");
90 int main(int argc,char **argv) {