diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2008-08-10 18:38:33 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2008-08-10 18:38:33 +0000 |
commit | 2f8194e0587030827feb78f648e1d6ca274911c6 (patch) | |
tree | 9c85195ecebc3f86248923619d8aa8aac04b989e /lib | |
parent | 4d64052d6328ba7daba8918b2d87b46c813f4090 (diff) | |
download | netpbm-mirror-2f8194e0587030827feb78f648e1d6ca274911c6.tar.gz netpbm-mirror-2f8194e0587030827feb78f648e1d6ca274911c6.tar.xz netpbm-mirror-2f8194e0587030827feb78f648e1d6ca274911c6.zip |
Fix shifting within 8 bits
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@697 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libpbm2.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libpbm2.c b/lib/libpbm2.c index 3dbd7173..a8e4b0f6 100644 --- a/lib/libpbm2.c +++ b/lib/libpbm2.c @@ -251,9 +251,12 @@ pbm_readpbmrow_bitoffset(FILE * const ifP, /* Adjust rightmost char */ unsigned int const trs = (cols + rsh) % 8; unsigned int const tls = 8 - trs; - unsigned char const origEndShift = (origEnd << trs) >> trs; + unsigned char const rightBits = + ((unsigned char)(origEnd << trs) >> trs); + unsigned char const leftBits = + ((unsigned char)(window[last] >> tls) << tls); - window[last] = (window[last] >> tls) << tls | origEndShift; + window[last] = leftBits | rightBits; } } |