Действительно, тут может быть проблема, я что-то не стал strncmp использовать, т.к. она еще добавит кода, хотя для атмеги328 это не существенно, там еще полно места
Будет так
Код:
if( dire && !strncmp(disp_files[0].fname,disp_files[1].fname,12) &&
disp_files[0].fsize == disp_files[1].fsize && disp_files[0].fdate == disp_files[1].fdate &&
disp_files[0].ftime == disp_files[1].ftime && disp_files[0].fattrib == disp_files[1].fattrib
) return 0;
PS: проверьте, если нормально будет работать, то сделаю коммит
UPD: или вот еще такой вариант
Код:
if( dire && !memcmp(&disp_files[0],&disp_files[1],sizeof(fnfo)-13) && !strncmp(disp_files[0].fname,disp_files[1].fname,12) ) return 0;
UPD2: закоммитил последний вариант