diff --git a/README.txt b/README.txt index c10994e00651f0a4885619bd2303efbd4a58f99a..5dcacf40b369e007563af5437bf4dc3cfcb7299f 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ *Copyright (c) 2011-2014 Qianqian Fang <fangq at nmr.mgh.harvard.edu> *License: BSD or GNU General Public License version 3 (GPL v3), see License*.txt -*Version: 0.9.9 (Optimus - beta) +*Version: 1.0.0-RC1 (Optimus - RC1) ------------------------------------------------------------------------------- diff --git a/examples/jsonlab_selftest.m b/examples/jsonlab_selftest.m index 63f6c5af37882b1cc3da16ce310a48c549bcda0e..ab2c038b9584febf44393f205c5466b60344803a 100644 --- a/examples/jsonlab_selftest.m +++ b/examples/jsonlab_selftest.m @@ -19,8 +19,9 @@ for i=1:4 fprintf(1,'===============================================\n>> %s\n',fname); json=saveubjson('data',loadjson(fname)); fprintf(1,'%s\n',json); - data=loadubjson(json); + data=loadubjson(json) savejson('',data) +i saveubjson('data',data,'selftest.ubj'); data=loadubjson('selftest.ubj'); end diff --git a/savejson.m b/savejson.m index 56c9f178fb3ca966b9685f3b56972414c619d198..cba3f67a2040fb3df32134a4c5b2afdeec70dd19 100644 --- a/savejson.m +++ b/savejson.m @@ -414,8 +414,20 @@ end %%------------------------------------------------------------------------- function newstr=escapejsonstring(str) -escapechars={'\a','\b','\f','\n','\r','\t','\v'}; newstr=str; -for i=1:length(escapechars); - newstr=regexprep(newstr,escapechars{i},regexprep(escapechars{i},'\\','\\\\')); +isoct=exist('OCTAVE_VERSION','builtin'); +if(isoct) + vv=sscanf(OCTAVE_VERSION,'%f'); + if(vv(1)>=3.8) isoct=0; end +end +if(isoct) + escapechars={'\a','\f','\n','\r','\t','\v'}; + for i=1:length(escapechars); + newstr=regexprep(newstr,escapechars{i},escapechars{i}); + end +else + escapechars={'\a','\b','\f','\n','\r','\t','\v'}; + for i=1:length(escapechars); + newstr=regexprep(newstr,escapechars{i},regexprep(escapechars{i},'\\','\\\\')); + end end diff --git a/saveubjson.m b/saveubjson.m index e84e1112c25b5478f05b8357b8e865fdebb00919..63b0b64c33f9d21ccd91f5f3f1063e4e6f538550 100644 --- a/saveubjson.m +++ b/saveubjson.m @@ -155,7 +155,7 @@ end for j=1:dim(2) if(dim(1)>1) txt=[txt '[']; end for i=1:dim(1) - txt=[txt obj2ubjson(name,item{i},level+(len>1),varargin{:})]; + txt=[txt obj2ubjson(name,item{i,j},level+(len>1),varargin{:})]; end if(dim(1)>1) txt=[txt ']']; end end @@ -308,7 +308,7 @@ if(size(mat,1)==1) end type=''; hasnegtive=(mat<0); -if(isa(mat,'integer') || (isfloat(mat) && all(mod(mat(:),1) == 0))) +if(isa(mat,'integer') || isinteger(mat) || (isfloat(mat) && all(mod(mat(:),1) == 0))) if(isempty(hasnegtive)) if(max(mat(:))<=2^8) type='U';