From ec151dcfab9f5e1ca5ed2033977974d9b0fe75f3 Mon Sep 17 00:00:00 2001
From: Qianqian Fang <fangq@nmr.mgh.harvard.edu>
Date: Wed, 17 Sep 2014 05:31:08 +0000
Subject: [PATCH] fixing everything for GNU octave

git-svn-id: http://svn.code.sf.net/p/iso2mesh/code/trunk/jsonlab@439 786e58fb-9377-0410-9ff7-e4ac0ac0635c
---
 README.txt                  |  2 +-
 examples/jsonlab_selftest.m |  3 ++-
 savejson.m                  | 18 +++++++++++++++---
 saveubjson.m                |  4 ++--
 4 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/README.txt b/README.txt
index c10994e..5dcacf4 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 63f6c5a..ab2c038 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 56c9f17..cba3f67 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 e84e111..63b0b64 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';
-- 
GitLab