| 144 | #endif |
| 145 | |
| 146 | int menu_photorec_cli(list_part_t *list_part, struct ph_param *params, struct ph_options *options, alloc_data_t*list_search_space) |
| 147 | { |
| 148 | unsigned int user_blocksize=0; |
| 149 | init_mode_t mode_init_space=(td_list_empty(&list_search_space->list)?INIT_SPACE_WHOLE:INIT_SPACE_PREINIT); |
| 150 | params->partition=(list_part->next!=NULL ? list_part->next->part : list_part->part); |
| 151 | /*@ assert valid_partition(params->partition); */ |
| 152 | /*@ |
| 153 | @ loop invariant valid_read_string(params->cmd_run); |
| 154 | @ loop invariant \valid_function(params->disk->description); |
| 155 | @ loop invariant valid_list_search_space(list_search_space); |
| 156 | @ loop invariant valid_disk(params->disk); |
| 157 | @*/ |
| 158 | while(1) |
| 159 | { |
| 160 | skip_comma_in_command(¶ms->cmd_run); |
| 161 | if(params->cmd_run[0]=='\0') |
| 162 | return 0; |
| 163 | if(need_to_stop!=0) |
| 164 | return 0; |
| 165 | if(check_command(¶ms->cmd_run,"search",6)==0) |
| 166 | { |
| 167 | #ifndef DISABLED_FOR_FRAMAC |
| 168 | if(mode_init_space==INIT_SPACE_EXT2_GROUP) |
| 169 | { |
| 170 | params->blocksize=ext2_fix_group(list_search_space, params->disk, params->partition); |
| 171 | if(params->blocksize==0) |
| 172 | { |
| 173 | log_error("Not a valid ext2/ext3/ext4 filesystem"); |
| 174 | return -1; |
| 175 | } |
| 176 | } |
| 177 | else if(mode_init_space==INIT_SPACE_EXT2_INODE) |
| 178 | { |
| 179 | params->blocksize=ext2_fix_inode(list_search_space, params->disk, params->partition); |
| 180 | if(params->blocksize==0) |
| 181 | { |
| 182 | log_error("Not a valid ext2/ext3/ext4 filesystem"); |
| 183 | return -1; |
| 184 | } |
| 185 | } |
| 186 | #endif |
| 187 | if(td_list_empty(&list_search_space->list)) |
| 188 | { |
| 189 | init_search_space(list_search_space, params->disk, params->partition); |
| 190 | } |
| 191 | if(params->carve_free_space_only>0) |
| 192 | { |
| 193 | params->blocksize=remove_used_space(params->disk, params->partition, list_search_space); |
| 194 | } |
| 195 | if(user_blocksize > 0) |
| 196 | params->blocksize=user_blocksize; |
| 197 | return 1; |
| 198 | } |
| 199 | #ifndef DISABLED_FOR_FRAMAC |
| 200 | else if(check_command(¶ms->cmd_run,"options",7)==0) |
| 201 | { |
| 202 | interface_options_photorec_cli(options, ¶ms->cmd_run); |
| 203 | } |
no test coverage detected