forked from sheetjs/sheetjs
Numbers 12.2 skip ActivityStream.iwa
This commit is contained in:
parent
050f66ce1b
commit
df48489211
@ -1039,7 +1039,7 @@ function parse_numbers_iwa(cfb, opts) {
|
||||
cfb.FileIndex.forEach(function(s) {
|
||||
if (!s.name.match(/\.iwa$/))
|
||||
return;
|
||||
if (s.content[0] == 98)
|
||||
if (s.content[0] != 0)
|
||||
return;
|
||||
var o;
|
||||
try {
|
||||
@ -1191,7 +1191,7 @@ function build_numbers_deps(cfb) {
|
||||
return;
|
||||
if (!fi.name.match(/\.iwa/))
|
||||
return;
|
||||
if (fi.name.match(/OperationStorage/))
|
||||
if (fi.content[0] != 0)
|
||||
return;
|
||||
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
|
||||
indices.push(packet.id);
|
||||
@ -1201,7 +1201,7 @@ function build_numbers_deps(cfb) {
|
||||
cfb.FileIndex.forEach(function(fi) {
|
||||
if (!fi.name.match(/\.iwa/))
|
||||
return;
|
||||
if (fi.name.match(/OperationStorage/))
|
||||
if (fi.content[0] != 0)
|
||||
return;
|
||||
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
|
||||
ia.messages.forEach(function(mess) {
|
||||
|
@ -1039,7 +1039,7 @@ function parse_numbers_iwa(cfb, opts) {
|
||||
cfb.FileIndex.forEach(function(s) {
|
||||
if (!s.name.match(/\.iwa$/))
|
||||
return;
|
||||
if (s.content[0] == 98)
|
||||
if (s.content[0] != 0)
|
||||
return;
|
||||
var o;
|
||||
try {
|
||||
@ -1191,7 +1191,7 @@ function build_numbers_deps(cfb) {
|
||||
return;
|
||||
if (!fi.name.match(/\.iwa/))
|
||||
return;
|
||||
if (fi.name.match(/OperationStorage/))
|
||||
if (fi.content[0] != 0)
|
||||
return;
|
||||
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
|
||||
indices.push(packet.id);
|
||||
@ -1201,7 +1201,7 @@ function build_numbers_deps(cfb) {
|
||||
cfb.FileIndex.forEach(function(fi) {
|
||||
if (!fi.name.match(/\.iwa/))
|
||||
return;
|
||||
if (fi.name.match(/OperationStorage/))
|
||||
if (fi.content[0] != 0)
|
||||
return;
|
||||
parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
|
||||
ia.messages.forEach(function(mess) {
|
||||
|
@ -165,7 +165,7 @@ interface ProtoItem {
|
||||
data: Uint8Array;
|
||||
type: number;
|
||||
}
|
||||
type ProtoField = Array<ProtoItem>
|
||||
type ProtoField = Array<ProtoItem>;
|
||||
type ProtoMessage = Array<ProtoField>;
|
||||
/** Shallow parse of a Protobuf message */
|
||||
function parse_shallow(buf: Uint8Array): ProtoMessage {
|
||||
@ -397,6 +397,7 @@ var numbers_lut_new = (): DataLUT => ({ sst: [], rsst: [], ofmt: [], nfmt: [] })
|
||||
|
||||
function numbers_format_cell(cell: CellObject, t: number, flags: number, ofmt: ProtoMessage, nfmt: ProtoMessage): void {
|
||||
var ctype = t & 0xFF, ver = t >> 8;
|
||||
/* .TSK.FormatStructArchive */
|
||||
var fmt = ver >= 5 ? nfmt : ofmt;
|
||||
dur: if((flags & (ver > 4 ? 8: 4)) && cell.t == "n" && ctype == 7) {
|
||||
var dstyle = (fmt[7]?.[0]) ? varint_to_i32(fmt[7][0].data) : -1;
|
||||
@ -871,7 +872,7 @@ function parse_numbers_iwa(cfb: CFB$Container, opts?: ParsingOptions ): WorkBook
|
||||
/* collect entire message space */
|
||||
cfb.FileIndex.forEach(s => {
|
||||
if(!s.name.match(/\.iwa$/)) return;
|
||||
if(s.content[0] == 98) return; // TODO: OperationStorage.iwa
|
||||
if(s.content[0] != 0) return; // TODO: this should test if the iwa follows the framing format
|
||||
var o: Uint8Array;
|
||||
try { o = decompress_iwa_file(s.content as Uint8Array); } catch(e) { return console.log("?? " + s.content.length + " " + (e.message || e)); }
|
||||
var packets: IWAArchiveInfo[];
|
||||
@ -1010,7 +1011,7 @@ function build_numbers_deps(cfb: CFB$Container): Dependents {
|
||||
var fi = row[0], fp = row[1];
|
||||
if(fi.type != 2) return;
|
||||
if(!fi.name.match(/\.iwa/)) return;
|
||||
if(fi.name.match(/OperationStorage/)) return;
|
||||
if((fi.content as Uint8Array)[0] != 0) return; // TODO: this should test if the iwa follows the framing format
|
||||
|
||||
parse_iwa_file(decompress_iwa_file(fi.content as Uint8Array)).forEach(packet => {
|
||||
indices.push(packet.id);
|
||||
@ -1021,14 +1022,14 @@ function build_numbers_deps(cfb: CFB$Container): Dependents {
|
||||
/* build dependent tree */
|
||||
cfb.FileIndex.forEach(fi => {
|
||||
if(!fi.name.match(/\.iwa/)) return;
|
||||
if(fi.name.match(/OperationStorage/)) return;
|
||||
if((fi.content as Uint8Array)[0] != 0) return; // TODO: this should test if the iwa follows the framing format
|
||||
parse_iwa_file(decompress_iwa_file(fi.content as Uint8Array)).forEach(ia => {
|
||||
ia.messages.forEach(mess => {
|
||||
[5,6].forEach(f => {
|
||||
if(!mess.meta[f]) return;
|
||||
mess.meta[f].forEach(x => {
|
||||
dependents[ia.id].deps.push(varint_to_i32(x.data));
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user