1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
This patch just adds some extra parentheses to stop the compiler from
warning about the possible mix-up of operator precedence.
diff -u -r par2cmdline-0.4-orig/par1repairer.cpp par2cmdline-0.4/par1repairer.cpp
--- par2cmdline-0.4-orig/par1repairer.cpp 2004-04-15 15:40:48.000000000 +0200
+++ par2cmdline-0.4/par1repairer.cpp 2009-09-08 18:38:15.375114246 +0200
@@ -324,7 +324,7 @@
||
(fileheader.datasize && (fileheader.dataoffset < sizeof(fileheader) || fileheader.dataoffset + fileheader.datasize > filesize))
||
- (fileheader.datasize && (fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize || fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize)))
+ (fileheader.datasize && ((fileheader.filelistoffset <= fileheader.dataoffset && fileheader.dataoffset < fileheader.filelistoffset+fileheader.filelistsize) || (fileheader.dataoffset <= fileheader.filelistoffset && fileheader.filelistoffset < fileheader.dataoffset + fileheader.datasize))))
break;
// Check the size of the file list
@@ -518,9 +518,9 @@
// Check the the file extension is the correct form
if ((tail[0] == 'P' || tail[0] == 'p') &&
(
- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')
+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r'))
||
- isdigit(tail[1]) && isdigit(tail[2])
+ (isdigit(tail[1]) && isdigit(tail[2]))
))
{
LoadRecoveryFile(filename);
@@ -549,9 +549,9 @@
// Check the the file extension is the correct form
if ((tail[0] == 'P' || tail[0] == 'p') &&
(
- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')
+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r'))
||
- isdigit(tail[1]) && isdigit(tail[2])
+ (isdigit(tail[1]) && isdigit(tail[2]))
))
{
LoadRecoveryFile(filename);
@@ -652,9 +652,9 @@
// Check the the file extension is the correct form
if ((tail[0] == 'P' || tail[0] == 'p') &&
(
- (tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r')
+ ((tail[1] == 'A' || tail[1] == 'a') && (tail[2] == 'R' || tail[2] == 'r'))
||
- isdigit(tail[1]) && isdigit(tail[2])
+ (isdigit(tail[1]) && isdigit(tail[2]))
))
{
skip = true;
diff -u -r par2cmdline-0.4-orig/verificationhashtable.h par2cmdline-0.4/verificationhashtable.h
--- par2cmdline-0.4-orig/verificationhashtable.h 2003-06-03 13:48:52.000000000 +0200
+++ par2cmdline-0.4/verificationhashtable.h 2009-09-08 18:37:51.945290947 +0200
@@ -66,11 +66,11 @@
// Comparison operators for searching
bool operator <(const VerificationHashEntry &r) const
{
- return crc < r.crc || crc == r.crc && hash < r.hash;
+ return crc < r.crc || (crc == r.crc && hash < r.hash);
}
bool operator >(const VerificationHashEntry &r) const
{
- return crc > r.crc || crc == r.crc && hash > r.hash;
+ return crc > r.crc || (crc == r.crc && hash > r.hash);
}
bool operator ==(const VerificationHashEntry &r) const
{
@@ -183,11 +183,11 @@
while (entry)
{
- if (entry->crc < crc || entry->crc == crc && entry->hash < hash)
+ if (entry->crc < crc || (entry->crc == crc && entry->hash < hash))
{
entry = entry->right;
}
- else if (entry->crc > crc || entry->crc == crc && entry->hash > hash)
+ else if (entry->crc > crc || (entry->crc == crc && entry->hash > hash))
{
entry = entry->left;
}
@@ -402,14 +402,14 @@
// have already been matched, or ones that are the wrong length
while (currententry && (currententry->SourceFile() != sourcefile ||
currententry->IsSet() ||
- checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()
+ (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength())
)
)
{
// If we found an unused entry (which was presumably for the wrong
// source file) remember it (providing it is the correct length).
if (0 == nextentry && !(currententry->IsSet() ||
- checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength()
+ (checksummer.ShortBlock() && checksummer.BlockLength() != currententry->GetDataBlock()->GetLength())
)
)
{
@@ -426,7 +426,7 @@
// Check for an unused entry which is the correct length
while (nextentry && (nextentry->IsSet() ||
- checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength()
+ (checksummer.ShortBlock() && checksummer.BlockLength() != nextentry->GetDataBlock()->GetLength())
)
)
{
|