| 91 | } |
| 92 | |
| 93 | backup_disk_t *partition_load(const disk_t *disk_car, const int verbose) |
| 94 | { |
| 95 | FILE *f_backup; |
| 96 | char *buffer; |
| 97 | char *pos=NULL; |
| 98 | int taille; |
| 99 | backup_disk_t *new_backup=NULL; |
| 100 | backup_disk_t *list_backup; |
| 101 | list_backup=(backup_disk_t*)MALLOC(sizeof(*list_backup)); |
| 102 | list_backup->list.prev= &list_backup->list; |
| 103 | list_backup->list.next = &list_backup->list; |
| 104 | |
| 105 | if(verbose>1) |
| 106 | { |
| 107 | log_trace("partition_load\n"); |
| 108 | } |
| 109 | f_backup=fopen("backup.log","r"); |
| 110 | if(!f_backup) |
| 111 | { |
| 112 | log_error("Can't open backup.log file: %s\n",strerror(errno)); |
| 113 | return list_backup; |
| 114 | } |
| 115 | buffer=(char *)MALLOC(BACKUP_MAXSIZE); |
| 116 | taille=fread(buffer,1,BACKUP_MAXSIZE,f_backup); |
| 117 | buffer[(taille<BACKUP_MAXSIZE?taille:BACKUP_MAXSIZE-1)]='\0'; |
| 118 | if(verbose>1) |
| 119 | { |
| 120 | log_info("partition_load backup.log size=%d\n",taille); |
| 121 | } |
| 122 | for(pos=buffer;pos<buffer+taille;pos++) |
| 123 | { |
| 124 | if(*pos=='\n') |
| 125 | { |
| 126 | *pos='\0'; |
| 127 | } |
| 128 | } |
| 129 | pos=buffer; |
| 130 | while(pos!=NULL && pos<buffer+taille) |
| 131 | { |
| 132 | if(*pos=='#') |
| 133 | { |
| 134 | pos++; |
| 135 | if(verbose>1) |
| 136 | { |
| 137 | log_verbose("new disk: %s\n",pos); |
| 138 | } |
| 139 | if(new_backup!=NULL) |
| 140 | td_list_add_tail(&new_backup->list,&list_backup->list); |
| 141 | new_backup=(backup_disk_t*)MALLOC(sizeof(*new_backup)); |
| 142 | new_backup->description[0]='\0'; |
| 143 | new_backup->list_part=NULL; |
| 144 | new_backup->my_time=strtol(pos,&pos,10); |
| 145 | if(pos!=NULL) |
| 146 | { |
| 147 | strncpy(new_backup->description,++pos,sizeof(new_backup->description)); |
| 148 | new_backup->description[sizeof(new_backup->description)-1]='\0'; |
| 149 | } |
| 150 | } |
no test coverage detected