summaryrefslogtreecommitdiff
path: root/misc/par2cmdline/patches/precedence.patch
diff options
context:
space:
mode:
Diffstat (limited to 'misc/par2cmdline/patches/precedence.patch')
-rw-r--r--misc/par2cmdline/patches/precedence.patch108
1 files changed, 108 insertions, 0 deletions
diff --git a/misc/par2cmdline/patches/precedence.patch b/misc/par2cmdline/patches/precedence.patch
new file mode 100644
index 0000000000..736e9f4a8e
--- /dev/null
+++ b/misc/par2cmdline/patches/precedence.patch
@@ -0,0 +1,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())
+ )
+ )
+ {