diff --git a/src/file_dxf.c b/src/file_dxf.c index 663a9f60..7dc40185 100644 --- a/src/file_dxf.c +++ b/src/file_dxf.c @@ -32,7 +32,6 @@ #include "filegen.h" static void register_header_check_dxf(file_stat_t *file_stat); -static int header_check_dxf(const unsigned char *buffer, const unsigned int buffer_size, const unsigned int safe_header_only, const file_recovery_t *file_recovery, file_recovery_t *file_recovery_new); static data_check_t data_check_dxf(const unsigned char *buffer, const unsigned int buffer_size, file_recovery_t *file_recovery); static void file_check_dxf(file_recovery_t *file_recovery); @@ -46,43 +45,22 @@ const file_hint_t file_hint_dxf= { .register_header_check=®ister_header_check_dxf }; -static const unsigned char header_dxflib[10]= {'9', '9', '9', '\n', - 'd', 'x', 'f', 'l', 'i', 'b'}; -static const unsigned char header_dxflib_dos[11]= {'9', '9', '9', '\r', '\n', - 'd', 'x', 'f', 'l', 'i', 'b'}; -static const unsigned char header_dxf[11]= {' ', ' ', '0', '\n', - 'S', 'E', 'C', 'T', 'I', 'O', 'N'}; -static const unsigned char header_dxf_dos[12]= {' ', ' ', '0', '\r', '\n', - 'S', 'E', 'C', 'T', 'I', 'O', 'N'}; - -static void register_header_check_dxf(file_stat_t *file_stat) -{ - register_header_check(0, header_dxf, sizeof(header_dxf), &header_check_dxf, file_stat); - register_header_check(0, header_dxf_dos, sizeof(header_dxf_dos), &header_check_dxf, file_stat); - register_header_check(0, header_dxflib, sizeof(header_dxflib), &header_check_dxf, file_stat); - register_header_check(0, header_dxflib_dos, sizeof(header_dxflib_dos), &header_check_dxf, file_stat); -} - static int header_check_dxf(const unsigned char *buffer, const unsigned int buffer_size, const unsigned int safe_header_only, const file_recovery_t *file_recovery, file_recovery_t *file_recovery_new) { - if(memcmp(buffer, header_dxf, sizeof(header_dxf))==0 || - memcmp(buffer, header_dxf_dos, sizeof(header_dxf_dos))==0 || - memcmp(buffer, header_dxflib, sizeof(header_dxflib))==0 || - memcmp(buffer, header_dxflib_dos, sizeof(header_dxflib_dos))==0) + reset_file_recovery(file_recovery_new); + file_recovery_new->extension=file_hint_dxf.extension; + file_recovery_new->file_check=&file_check_dxf; + if(file_recovery_new->blocksize >= 3) { - reset_file_recovery(file_recovery_new); - file_recovery_new->extension=file_hint_dxf.extension; file_recovery_new->data_check=&data_check_dxf; - file_recovery_new->file_check=&file_check_dxf; - return 1; } - return 0; + return 1; } static data_check_t data_check_dxf(const unsigned char *buffer, const unsigned int buffer_size, file_recovery_t *file_recovery) { unsigned int i; - for(i=(buffer_size/2)-3;i+3