| 198 | } |
| 199 | |
| 200 | int session_save(const alloc_data_t *list_free_space, const struct ph_param *params, const struct ph_options *options) |
| 201 | { |
| 202 | FILE *f_session; |
| 203 | if(params->status==STATUS_QUIT) |
| 204 | return 0; |
| 205 | f_session=fopen(SESSION_FILENAME,"wb"); |
| 206 | if(!f_session) |
| 207 | { |
| 208 | #ifndef DISABLED_FOR_FRAMAC |
| 209 | log_critical("Can't create photorec.ses file: %s\n",strerror(errno)); |
| 210 | #endif |
| 211 | /*@ assert \valid_read(list_free_space); */ |
| 212 | /*@ assert valid_ph_param(params); */ |
| 213 | /*@ assert \valid_read(options); */ |
| 214 | return -1; |
| 215 | } |
| 216 | #ifndef DISABLED_FOR_FRAMAC |
| 217 | { |
| 218 | struct td_list_head *free_walker = NULL; |
| 219 | unsigned int i; |
| 220 | const file_enable_t *files_enable=options->list_file_format; |
| 221 | unsigned int disable=0; |
| 222 | unsigned int enable=0; |
| 223 | unsigned int enable_by_default=0; |
| 224 | if(options->verbose>1) |
| 225 | { |
| 226 | log_trace("session_save\n"); |
| 227 | } |
| 228 | fprintf(f_session,"#%lu\n%s %s,%u,", |
| 229 | (unsigned long int)time(NULL), params->disk->device, params->disk->arch->part_name_option, params->partition->order); |
| 230 | if(params->blocksize>0) |
| 231 | fprintf(f_session,"blocksize,%u,", params->blocksize); |
| 232 | fprintf(f_session,"fileopt,"); |
| 233 | /*@ |
| 234 | @ loop assigns i, disable, enable, enable_by_default; |
| 235 | @*/ |
| 236 | for(i=0;files_enable[i].file_hint!=NULL;i++) |
| 237 | { |
| 238 | if(files_enable[i].enable==0) |
| 239 | disable++; |
| 240 | else |
| 241 | enable++; |
| 242 | if(files_enable[i].enable==files_enable[i].file_hint->enable_by_default) |
| 243 | enable_by_default++; |
| 244 | } |
| 245 | if(enable_by_default >= disable && enable_by_default >= enable) |
| 246 | { |
| 247 | for(i=0;files_enable[i].file_hint!=NULL;i++) |
| 248 | { |
| 249 | if(files_enable[i].enable!=files_enable[i].file_hint->enable_by_default && |
| 250 | files_enable[i].file_hint->extension!=NULL && |
| 251 | files_enable[i].file_hint->extension[0]!='\0') |
| 252 | { |
| 253 | fprintf(f_session,"%s,%s,", files_enable[i].file_hint->extension, |
| 254 | (files_enable[i].enable!=0?"enable":"disable")); |
| 255 | } |
| 256 | } |
| 257 | } |
no test coverage detected