Automatic calibration of the delta between files
This commit is contained in:
parent
6edb7a72a1
commit
265e2769e0
4
Makefile
4
Makefile
@ -91,8 +91,8 @@ package: all
|
|||||||
# copy licence and information :
|
# copy licence and information :
|
||||||
@cp README package/$(PROG_NAME)/usr/share/doc/README
|
@cp README package/$(PROG_NAME)/usr/share/doc/README
|
||||||
@cp licence.txt package/$(PROG_NAME)/usr/share/doc/copyright
|
@cp licence.txt package/$(PROG_NAME)/usr/share/doc/copyright
|
||||||
@echo "First generation in progress" >> package/$(PROG_NAME)/usr/share/doc/changelog
|
@echo "First generation in progress" > package/$(PROG_NAME)/usr/share/doc/changelog
|
||||||
@#cp -vf $(PROG_NAME) package/$(PROG_NAME)/usr/bin/
|
@cp -vf $(PROG_NAME) package/$(PROG_NAME)/usr/bin/
|
||||||
@#cp -vf data/*.xml package/$(PROG_NAME)/usr/share/edn/
|
@#cp -vf data/*.xml package/$(PROG_NAME)/usr/share/edn/
|
||||||
@cd package; dpkg-deb --build $(PROG_NAME)
|
@cd package; dpkg-deb --build $(PROG_NAME)
|
||||||
|
|
||||||
|
64
main.c
64
main.c
@ -42,6 +42,7 @@ void usage(void)
|
|||||||
printf("\t\t[s] Change the view of the propram of the size of interpretation (8/16/32/64 bits)\n");
|
printf("\t\t[s] Change the view of the propram of the size of interpretation (8/16/32/64 bits)\n");
|
||||||
printf("\t\t[t] Change the interpretation of Data (hexedecimal, Signed Decimal, Unigned Decimal)\n");
|
printf("\t\t[t] Change the interpretation of Data (hexedecimal, Signed Decimal, Unigned Decimal)\n");
|
||||||
printf("\t\t[f] Find the first Error when comparing the two files\n");
|
printf("\t\t[f] Find the first Error when comparing the two files\n");
|
||||||
|
printf("\t\t[c] Calibrate the delta between the 2 file (fist element !=0)\n");
|
||||||
printf("\t\t[UP] Go up (5 lines)\n");
|
printf("\t\t[UP] Go up (5 lines)\n");
|
||||||
printf("\t\t[DOWN] Go down (5 lines)\n");
|
printf("\t\t[DOWN] Go down (5 lines)\n");
|
||||||
printf("\t\t[LEFT] Go up (one screen)\n");
|
printf("\t\t[LEFT] Go up (one screen)\n");
|
||||||
@ -68,11 +69,21 @@ int32_t findFirstDiff(void)
|
|||||||
|| NULL == filePointer[1] ) {
|
|| NULL == filePointer[1] ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int32_t paddingFile = getPaddingOffsetFile();
|
||||||
|
int32_t pad1 = 0;
|
||||||
|
int32_t pad2 = 0;
|
||||||
|
if (paddingFile>0) {
|
||||||
|
pad1 = paddingFile;
|
||||||
|
pad2 = 0;
|
||||||
|
} else {
|
||||||
|
pad1 = 0;
|
||||||
|
pad2 = -1*paddingFile;
|
||||||
|
}
|
||||||
if(NULL != filePointer[0]) {
|
if(NULL != filePointer[0]) {
|
||||||
fseek ( filePointer[0] , 0 , SEEK_SET );
|
fseek ( filePointer[0] , pad1 , SEEK_SET );
|
||||||
}
|
}
|
||||||
if(NULL != filePointer[1]) {
|
if(NULL != filePointer[1]) {
|
||||||
fseek ( filePointer[1] , 0 , SEEK_SET );
|
fseek ( filePointer[1] , pad2 , SEEK_SET );
|
||||||
}
|
}
|
||||||
while ( fread(&data1, sizeof(uint8_t), 1, filePointer[0]) == 1
|
while ( fread(&data1, sizeof(uint8_t), 1, filePointer[0]) == 1
|
||||||
&& fread(&data2, sizeof(uint8_t), 1, filePointer[1]) == 1)
|
&& fread(&data2, sizeof(uint8_t), 1, filePointer[1]) == 1)
|
||||||
@ -85,6 +96,51 @@ int32_t findFirstDiff(void)
|
|||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AutoSetPadding(void)
|
||||||
|
{
|
||||||
|
displayPaddingOffset(0);
|
||||||
|
if( NULL == filePointer[0]
|
||||||
|
|| NULL == filePointer[1] ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(NULL != filePointer[0]) {
|
||||||
|
fseek ( filePointer[0] , 0 , SEEK_SET );
|
||||||
|
}
|
||||||
|
int32_t offset1 = 0;
|
||||||
|
char data;
|
||||||
|
while(fread(&data, sizeof(uint8_t), 1, filePointer[0]) == 1)
|
||||||
|
{
|
||||||
|
if (data != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
offset1 ++;
|
||||||
|
}
|
||||||
|
if(NULL != filePointer[1]) {
|
||||||
|
fseek ( filePointer[1] , 0 , SEEK_SET );
|
||||||
|
}
|
||||||
|
int32_t offset2 = 0;
|
||||||
|
while(fread(&data, sizeof(uint8_t), 1, filePointer[1]) == 1)
|
||||||
|
{
|
||||||
|
if (data != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
offset2 ++;
|
||||||
|
}
|
||||||
|
if (offset1 == offset2) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (offset1 == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (0 == offset2) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
displayPaddingOffset(offset1 - offset2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void UpdateFilesSize(void)
|
void UpdateFilesSize(void)
|
||||||
{
|
{
|
||||||
// get size file 1
|
// get size file 1
|
||||||
@ -317,6 +373,10 @@ int main (int argc, char**argv)
|
|||||||
case 'M':
|
case 'M':
|
||||||
displayPaddingOffsetClear();
|
displayPaddingOffsetClear();
|
||||||
break;
|
break;
|
||||||
|
case 'c':
|
||||||
|
case 'C':
|
||||||
|
AutoSetPadding();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user