getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Yves Renard
Subject: [Getfem-commits] (no subject)
Date: Sat, 18 Apr 2020 08:52:29 -0400 (EDT)

branch: devel-yves-octave
commit 0693d2546a5fb76e164d2769137758554c0149a2
Author: Yves Renard <address@hidden>
AuthorDate: Sat Apr 18 14:50:23 2020 +0200

    Octave mex do not support object : transform object to struct before the 
call
---
 bin/extract_doc | 38 ++++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/bin/extract_doc b/bin/extract_doc
index f8d9506..81e42e5 100755
--- a/bin/extract_doc
+++ b/bin/extract_doc
@@ -684,7 +684,7 @@ elif (option == 'matlab-com'):
     mfile.write('  if (isa(a,this_class)),\n')
     mfile.write('    m=a;\n')
     mfile.write('  else\n')
-    mfile.write('    if (isstruct(a) & isfield(a,\'id\') & 
isfield(a,\'cid\'))\n')
+    mfile.write('    if (isstruct(a) && isfield(a,\'id\') && 
isfield(a,\'cid\'))\n')
     mfile.write('      cname = gf_workspace(\'class name\',a);\n')
     mfile.write('      if (strcmp(cname, this_class))\n')
     mfile.write('       m = a;\n')
@@ -790,7 +790,7 @@ elif (option == 'matlab-com'):
       mfile.write('            FSET(obj,index(2).subs{:});\n')
       mfile.write('            if (exist(\'ans\', \'var\') == 1)\n')
       mfile.write('              h=ans;\n')
-      mfile.write('              if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('              if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('              varargout{1}=h;\n')
       mfile.write('            end;\n')
       mfile.write('          end;\n')
@@ -800,13 +800,13 @@ elif (option == 'matlab-com'):
       mfile.write('        case \'get\'\n')
       mfile.write('          if (nargout) \n')
       mfile.write('            h = FGET(obj, index(2).subs{:});\n')
-      mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('            [varargout{1:nargout}] = h;\n')
       mfile.write('          else\n')
       mfile.write('         FGET(obj,index(2).subs{:});\n')
       mfile.write('            if (exist(\'ans\', \'var\') == 1)\n')
       mfile.write('              h=ans;\n')
-      mfile.write('              if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('              if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('              varargout{1}=h;\n')
       mfile.write('            end;\n')
       mfile.write('          end;\n')
@@ -814,12 +814,12 @@ elif (option == 'matlab-com'):
     mfile.write('        otherwise\n')
     mfile.write('          if ((numel(index) > 1) && (strcmp(index(2).type, 
\'()\')))\n')
     mfile.write('            h = FGET(obj,index(1).subs, index(2).subs{:});\n')
-    mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+    mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
     mfile.write('            [varargout{1:nargout}] = h;\n')
     mfile.write('            cnt = cnt + 1;\n')
     mfile.write('          else\n')
     mfile.write('            h = FGET(obj, index(1).subs);\n')
-    mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+    mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
     mfile.write('            [varargout{1:nargout}] = h;\n')
     mfile.write('          end\n')
     mfile.write('      end\n')
@@ -930,6 +930,11 @@ elif (option == 'octave-com'):
         mfile.write('function [varargout]=gf_'+o+ext+'(varargin)\n')
         if (matlabext != ''):
           mfile.write('\n' + matlabext + '\n');
+        mfile.write('  for i = 1:nargin \n');
+        mfile.write('    if (isobject(varargin{i})) \n');
+        mfile.write('      varargin{i} = struct(varargin{i}); \n');
+        mfile.write('    endif \n');
+        mfile.write('  endfor \n');
         mfile.write('  if (nargout),\n')
         mfile.write('    [varargout{1:nargout}]=gf_octave(\'' + o + ext + '\', 
varargin{:});\n')
         mfile.write('  else\n')
@@ -981,7 +986,7 @@ elif (option == 'octave-com'):
     mfile.write('  if (isa(a,this_class)),\n')
     mfile.write('    m=a;\n')
     mfile.write('  else\n')
-    mfile.write('    if (isstruct(a) & isfield(a,\'id\') & 
isfield(a,\'cid\'))\n')
+    mfile.write('    if (isstruct(a) && isfield(a,\'id\') && 
isfield(a,\'cid\'))\n')
     mfile.write('      cname = gf_workspace(\'class name\',a);\n')
     mfile.write('      if (strcmp(cname, this_class))\n')
     mfile.write('       m = a;\n')
@@ -1005,7 +1010,7 @@ elif (option == 'octave-com'):
       mfile.write('function display(cs)\n')
       mfile.write('% ' + oname + '/display displays a short summary for a ' + 
oname + ' object \n')
       mfile.write('  for i=1:numel(cs),\n')
-      mfile.write('    gf_' + o + '_get(cs(i), \'display\');\n')
+      mfile.write('    gf_' + o + '_get(struct(cs(i)), \'display\');\n')
       mfile.write('  end;\n')
       mfile.write('% autogenerated mfile;\n')
       mfile.close()
@@ -1014,7 +1019,7 @@ elif (option == 'octave-com'):
       mfile = open(path+'/char.m', 'w')
       mfile.write('function s=char(m)\n')
       mfile.write('% ' + oname + '/char output a textual representation of the 
object\n')
-      mfile.write('  s=gf_' + o + '_get(m,\'char\');\n')
+      mfile.write('  s=gf_' + o + '_get(struct(m),\'char\');\n')
       mfile.write('% autogenerated mfile;\n')
       mfile.close()
 
@@ -1042,6 +1047,7 @@ elif (option == 'octave-com'):
     mfile = open(path+'/subsref.m', 'w')
     mfile.write('function [varargout]=subsref(obj, index)\n')
     mfile.write('% ' + oname + '/subsref\n')
+    mfile.write('  obj=struct(obj);\n')
     mfile.write('  nout = max(nargout, 1); cnt=1;\n')
     mfile.write('  FGET = @gf_'+o+'_get;\n')
     mfile.write('  FSET = @gf_'+o+'_set;\n')
@@ -1087,7 +1093,7 @@ elif (option == 'octave-com'):
       mfile.write('            FSET(obj,index(2).subs{:});\n')
       mfile.write('            if (exist(\'ans\', \'var\') == 1)\n')
       mfile.write('              h=ans;\n')
-      mfile.write('              if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('              if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('              varargout{1}=h;\n')
       mfile.write('            end;\n')
       mfile.write('          end;\n')
@@ -1097,13 +1103,13 @@ elif (option == 'octave-com'):
       mfile.write('        case \'get\'\n')
       mfile.write('          if (nargout) \n')
       mfile.write('            h = FGET(obj, index(2).subs{:});\n')
-      mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('            [varargout{1:nargout}] = h;\n')
       mfile.write('          else\n')
       mfile.write('         FGET(obj,index(2).subs{:});\n')
       mfile.write('            if (exist(\'ans\', \'var\') == 1)\n')
       mfile.write('              h=ans;\n')
-      mfile.write('              if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+      mfile.write('              if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
       mfile.write('              varargout{1}=h;\n')
       mfile.write('            end;\n')
       mfile.write('          end;\n')
@@ -1111,12 +1117,12 @@ elif (option == 'octave-com'):
     mfile.write('        otherwise\n')
     mfile.write('          if ((numel(index) > 1) && (strcmp(index(2).type, 
\'()\')))\n')
     mfile.write('            h = FGET(obj,index(1).subs, index(2).subs{:});\n')
-    mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+    mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
     mfile.write('            [varargout{1:nargout}] = h;\n')
     mfile.write('            cnt = cnt + 1;\n')
     mfile.write('          else\n')
     mfile.write('            h = FGET(obj, index(1).subs);\n')
-    mfile.write('            if (isstruct(h) & isfield(h,\'id\') & 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
+    mfile.write('            if (isstruct(h) && isfield(h,\'id\') && 
isfield(h,\'cid\')), h = gfObject(h); end;\n');
     mfile.write('            [varargout{1:nargout}] = h;\n')
     mfile.write('          end\n')
     mfile.write('      end\n')
@@ -1142,9 +1148,9 @@ elif (option == 'octave-com'):
         mfile.write('% ' + oname + '/' + ext + '.m\n')
         mfile.write('% see gf_' + o + '_' + ext + ' for more help.\n')
         mfile.write('if (nargout), \n')
-        mfile.write('  [varargout{1:nargout}] = gf_'+o+'_'+ext+'(obj, 
varargin{:});\n')
+        mfile.write('  [varargout{1:nargout}] = gf_'+o+'_'+ext+'(struct(obj), 
varargin{:});\n')
         mfile.write('else\n')
-        mfile.write('  gf_'+o+'_'+ext+'(obj,varargin{:});\n')
+        mfile.write('  gf_'+o+'_'+ext+'(struct(obj),varargin{:});\n')
         mfile.write('  if (exist(\'ans\',\'var\') == 1), varargout{1}=ans;\n')
         mfile.write('  end;\n')
         mfile.write('end;\n')



reply via email to

[Prev in Thread] Current Thread [Next in Thread]