js-cfb/bits/41_mver.js
SheetJS 5c7df1f3db version bump 0.10.0: performance
- reworked IIFE
- avoid Buffer read helpers (see https://github.com/joyent/node/issues/7809)
- avoid nested functions in parse
- eliminate consecutive nulls in test files (libreoffice)
- travis + coveralls support
- jscs linting
2014-06-24 00:00:39 -04:00

34 lines
804 B
JavaScript

/* [MS-CFB] 2.2 Compound File Header -- read up to major version */
function check_get_mver(blob) {
// header signature 8
blob.chk(HEADER_SIGNATURE, 'Header Signature: ');
// clsid 16
blob.chk(HEADER_CLSID, 'CLSID: ');
// minor version 2
blob.l += 2;
return blob.read_shift(2,'u');
}
function check_shifts(blob, mver) {
var shift = 0x09;
// Byte Order
blob.chk('feff', 'Byte Order: ');
// Sector Shift
switch((shift = blob.read_shift(2))) {
case 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break;
case 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break;
default: throw 'Sector Shift: Expected 9 or 12 saw ' + shift;
}
// Mini Sector Shift
blob.chk('0600', 'Mini Sector Shift: ');
// Reserved
blob.chk('000000000000', 'Reserved: ');
}