From 6345859fbe702e554d2103b646a111f950c18324 Mon Sep 17 00:00:00 2001 From: Qianqian Fang <fangqq@gmail.com> Date: Wed, 23 Feb 2022 22:06:08 -0500 Subject: [PATCH] handle additional markers in optimized header --- loadbj.m | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/loadbj.m b/loadbj.m index 9ccd47f..1560493 100644 --- a/loadbj.m +++ b/loadbj.m @@ -194,25 +194,27 @@ end %%------------------------------------------------------------------------- function [data, adv]=parse_block(inputstr, pos, type,count,varargin) - if(count>=0 && ~isempty(type) && strfind('HSC{[TFN', type)) + if(count>=0 && ~isempty(type) && isempty(strfind('iUIulmLMdDh', type))) adv=0; switch(type) case {'S', 'H', '{', '['} - data=cell(1,count); - adv=pos; - for i=1:count - [data{i}, pos] = parse_value(inputstr, pos, type, varargin{:}); - end - adv=pos-adv; + data=cell(1,count); + adv=pos; + for i=1:count + [data{i}, pos] = parse_value(inputstr, pos, type, varargin{:}); + end + adv=pos-adv; case 'C' - data=inputstr(pos:pos+count); - adv=count; + data=inputstr(pos:pos+count); + adv=count; case 'T' - data=true(1,count); + data=true(1,count); case 'F' - data=false(1,count); + data=false(1,count); case 'N' - data=cell(1,count); + data=cell(1,count); + otherwise + error_pos(sprintf('Unsupported optimized type %c at position %%d', type),inputstr, pos); end return; end -- GitLab