[PATCH] Fix bit shift on Suunto DB import

Miika Turkia miika.turkia at gmail.com
Tue Aug 4 07:49:17 PDT 2015


Let's do the bit shift properly and not by block size.

Fixes #906

Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
How on earth did someone write this stupid bug, and how did it get
accepted? There must have been more than one guy needing coffee :D
---
 parse-xml.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/parse-xml.c b/parse-xml.c
index 7c8d6bd..d8094db 100644
--- a/parse-xml.c
+++ b/parse-xml.c
@@ -2385,7 +2385,7 @@ extern int dm5_dive(void *param, int columns, char **data, char **column)
 	for (i = 0; interval && sampleBlob && i * interval < cur_dive->duration.seconds; i++) {
 		float *depth = (float *)&sampleBlob[i * block_size + 3];
 		int32_t temp = (sampleBlob[i * block_size + 10] << 8) + sampleBlob[i * block_size + 11];
-		int32_t pressure = (sampleBlob[i * block_size + 9] << block_size) + (sampleBlob[i * block_size + 8] << 8) + sampleBlob[i * block_size + 7];
+		int32_t pressure = (sampleBlob[i * block_size + 9] << 16) + (sampleBlob[i * block_size + 8] << 8) + sampleBlob[i * block_size + 7];
 
 		sample_start();
 		cur_sample->time.seconds = i * interval;
-- 
2.1.4



More information about the subsurface mailing list