Generate unique filename for handle save/load on copy. Delete it afterwards. 81/10381/2
Bruno JOFRET [Fri, 1 Feb 2013 08:58:03 +0000 (09:58 +0100)]
Change-Id: I53d6198a59ccb2fd47bc4129f7e91387ddf69f33

scilab/modules/graphics/macros/%h_copy.sci

index d33938e..799a598 100644 (file)
@@ -1,27 +1,33 @@
+//
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
+// Copyright (C) 2013-2013 - Scilab Enterprises - Bruno JOFRET
+//
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
-// are also available at    
+// are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
+//
+//
 
 function h=%h_copy(h,ax)
-  save(TMPDIR+'/ghdlcopy','h')
-  if argn(2)<2 then 
-    load(TMPDIR+'/ghdlcopy')
-  else
-      if ax.type=="Axes"  then
-        a=get('current_axes')
-        set('current_axes', ax)
-        load(TMPDIR+'/ghdlcopy')
-        set('current_axes', a)
-      else
-        a = gcf()
-        scf(ax)
-        load(TMPDIR+'/ghdlcopy')
-        scf(a)
-      end
-  end
+    filename = tempname();
+    save(filename,'h')
+    if argn(2)<2 then
+        load(filename)
+    else
+        if ax.type=="Axes"  then
+            a=get('current_axes')
+            set('current_axes', ax)
+            load(filename)
+            set('current_axes', a)
+        else
+            a = gcf()
+            scf(ax)
+            load(filename)
+            scf(a)
+        end
+    end
+    mdelete(filename);
 endfunction