Add putLhsVar in second half of graphic gateways
Jean-Baptiste Silvy [Thu, 2 Apr 2009 09:04:14 +0000 (11:04 +0200)]
34 files changed:
scilab/modules/graphics/sci_gateway/c/sci_StringBox.c
scilab/modules/graphics/sci_gateway/c/sci_swap_handles.c
scilab/modules/graphics/sci_gateway/c/sci_unglue.c
scilab/modules/graphics/sci_gateway/c/sci_unzoom.c
scilab/modules/graphics/sci_gateway/c/sci_winsid.c
scilab/modules/graphics/sci_gateway/c/sci_xarc.c
scilab/modules/graphics/sci_gateway/c/sci_xarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xarrows.c
scilab/modules/graphics/sci_gateway/c/sci_xchange.c
scilab/modules/graphics/sci_gateway/c/sci_xclick.c
scilab/modules/graphics/sci_gateway/c/sci_xdel.c
scilab/modules/graphics/sci_gateway/c/sci_xfarcs.c
scilab/modules/graphics/sci_gateway/c/sci_xfpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xfpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xget.c
scilab/modules/graphics/sci_gateway/c/sci_xgetech.c
scilab/modules/graphics/sci_gateway/c/sci_xgetmouse.c
scilab/modules/graphics/sci_gateway/c/sci_xgraduate.c
scilab/modules/graphics/sci_gateway/c/sci_xgrid.c
scilab/modules/graphics/sci_gateway/c/sci_xlfont.c
scilab/modules/graphics/sci_gateway/c/sci_xload.c
scilab/modules/graphics/sci_gateway/c/sci_xname.c
scilab/modules/graphics/sci_gateway/c/sci_xpoly.c
scilab/modules/graphics/sci_gateway/c/sci_xpolys.c
scilab/modules/graphics/sci_gateway/c/sci_xrect.c
scilab/modules/graphics/sci_gateway/c/sci_xrects.c
scilab/modules/graphics/sci_gateway/c/sci_xsave.c
scilab/modules/graphics/sci_gateway/c/sci_xsegs.c
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/graphics/sci_gateway/c/sci_xsetech.c
scilab/modules/graphics/sci_gateway/c/sci_xstring.c
scilab/modules/graphics/sci_gateway/c/sci_xstringb.c
scilab/modules/graphics/sci_gateway/c/sci_xtitle.c
scilab/modules/graphics/sci_gateway/c/sci_zoom_rect.c

index 806ce90..66e782a 100644 (file)
@@ -184,6 +184,7 @@ int sci_stringbox( char * fname, unsigned long fname_len )
   *stk( stackPointer + 7 )  = corners[2][1] ;
 
   LhsVar( 1 ) = Rhs + 1 ;
+       C2F(putlhsvar)();
   return 0;
 }
 
index ac48727..dfb67de 100644 (file)
@@ -46,6 +46,7 @@ int sci_swap_handles( char * fname, unsigned long fname_len )
   swapHandles( (unsigned long) *hstk( firstHdlStkIndex  ),
                (unsigned long) *hstk( secondHdlStkIndex ) ) ;
   LhsVar(1) = 0 ;
+       C2F(putlhsvar)();
   return 0 ;
 }
 /*--------------------------------------------------------------------------*/
index fcc76c0..2a4fd37 100644 (file)
@@ -67,6 +67,7 @@ int sci_unglue(char *fname,unsigned long fname_len)
       i++;
     }
     LhsVar(1) = Rhs+1;
+               C2F(putlhsvar)();
     sciUnCompound ((sciPointObj *)pobj);
   }
   else
index d0e7f58..1090473 100644 (file)
@@ -51,7 +51,6 @@ int sci_unzoom(char *fname,unsigned long fname_len)
     if (zoomedObjects == NULL)
     {
       Scierror(999, _("%s: No more memory.\n"),fname);
-      LhsVar(1)=0; 
       return -1;
     }
 
@@ -64,7 +63,6 @@ int sci_unzoom(char *fname,unsigned long fname_len)
       {
         FREE(zoomedObjects);
         Scierror(999, _("%s: Wrong type for input argument: Vector of Axes and Figure handles expected.\n"),fname);
-        LhsVar(1)=0; 
         return -1;
       }
     }
@@ -78,6 +76,7 @@ int sci_unzoom(char *fname,unsigned long fname_len)
   
 
   LhsVar(1)=0; 
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index 71830e8..96bf246 100644 (file)
@@ -48,6 +48,7 @@ int sci_winsid(char *fname,unsigned long fname_len)
     FREE(ids);
   }
   LhsVar(1) = Rhs+1;
+       C2F(putlhsvar)();
   return status;
 }
 /*--------------------------------------------------------------------------*/
index a37db50..6b4f6a4 100644 (file)
@@ -72,6 +72,7 @@ int sci_xarc(char *fname,unsigned long fname_len)
   sciDrawObj(sciGetCurrentObj());
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index a72ab78..23f766a 100644 (file)
@@ -98,6 +98,7 @@ int sci_xarcs(char *fname,unsigned long fname_len)
 
   /* NG end */
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/
index 70df08d..a91914a 100644 (file)
@@ -41,7 +41,12 @@ int sci_xarrows(char *fname,unsigned long fname_len)
   GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2);
   mn2 = m2 * n2;
   CheckSameDims(1,2,m1,n1,m2,n2);
-  if (mn2 == 0) {   LhsVar(1)=0;  return 0;} 
+  if (mn2 == 0)
+       {
+               LhsVar(1)=0;
+               C2F(putlhsvar)();
+               return 0;
+       } 
 
   if (Rhs >= 3) { GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE,&m3,&n3,&l3); CheckScalar(3,m3,n3); arsize = *stk(l3); } 
 
@@ -69,6 +74,7 @@ int sci_xarrows(char *fname,unsigned long fname_len)
   sciDrawObj(sciGetCurrentObj());
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 
index 018432a..0a6c048 100644 (file)
@@ -95,6 +95,7 @@ int sci_xchange( char * fname, unsigned long fname_len )
   LhsVar(1)=Rhs+1;
   LhsVar(2)=Rhs+2;
   LhsVar(3)=Rhs+3;
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index b0e9a8a..f581fc5 100644 (file)
@@ -122,6 +122,8 @@ int sci_xclick(char *fname,unsigned long fname_len)
 
   deleteMenuCallBack(menuCallback);
 
+       C2F(putlhsvar)();
+
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index c7d0e12..a1872b4 100644 (file)
@@ -42,7 +42,6 @@ int sci_xdel(char *fname,unsigned long fname_len)
                        if (!sciIsExistingFigure((int) windowNumbers[i]))
                        {
                                Scierror(999, "%s: Figure with figure_id %d does not exist.\n",fname, (int) windowNumbers[i]);
-                               LhsVar(1)=0;
                                return -1;
                        }
                }
@@ -55,6 +54,7 @@ int sci_xdel(char *fname,unsigned long fname_len)
     sciDeleteWindow( sciGetNum(sciGetCurrentFigure()) ) ;
   }
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 
index 52b32d2..1d12b4a 100644 (file)
@@ -79,6 +79,7 @@ int sci_xfarcs( char * fname, unsigned long fname_len )
   sciDrawObj(sciGetCurrentObj());
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 
 }
index 01b41bf..6a8c9db 100644 (file)
@@ -64,6 +64,7 @@ int sci_xfpoly(char *fname,unsigned long fname_len)
   sciDrawObjIfRequired(sciGetCurrentObj ());
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 
 }
index d578849..f893cd3 100644 (file)
@@ -46,7 +46,11 @@ int sci_xfpolys( char *fname, unsigned long fname_len )
   GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2);
   CheckSameDims(1,2,m1,n1,m2,n2);
   mn2 = m2 * n2;
-  if ( mn2 == 0 ) {  LhsVar(1)=0; return 0; } 
+  if ( mn2 == 0 ) {
+               LhsVar(1)=0;
+               C2F(putlhsvar)();
+               return 0;
+       } 
 
 
   if (Rhs == 3) 
@@ -104,7 +108,8 @@ int sci_xfpolys( char *fname, unsigned long fname_len )
 
   sciDrawObjIfRequired(sciGetCurrentObj ());
  
-  LhsVar(1)=0;  
+  LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;  
 } 
 
index 1430abf..50df80f 100644 (file)
@@ -64,7 +64,6 @@ int sci_xget(char *fname,unsigned long fname_len)
   if ( !keyFound )
   {
     Scierror(999, _("%s: Unrecognized input argument: '%s'.\n"), fname, cstk(l1));
-    LhsVar(1)= 0;
     return -1;
   }
 
@@ -83,6 +82,7 @@ int sci_xget(char *fname,unsigned long fname_len)
     CreateVar(Rhs+1,STRING_DATATYPE,&bufl,&one,&l3);
     strncpy(cstk(l3),C2F(cha1).buf,bufl);
     LhsVar(1)=Rhs+1;
+               C2F(putlhsvar)();
     return 0;
   }
   else if ( strcmp(cstk(l1),"colormap") == 0) 
@@ -287,7 +287,6 @@ int sci_xget(char *fname,unsigned long fname_len)
     else
     {
       Scierror(999, _("%s: Unrecognized input argument: '%s'.\n"), fname, cstk(l1));
-                       LhsVar(1)= 0;
                        return -1;
     }
     if (x2 > 0) {
@@ -300,6 +299,7 @@ int sci_xget(char *fname,unsigned long fname_len)
     }
     LhsVar(1)=Rhs+1;
   }
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index 8942183..d870892 100644 (file)
@@ -39,6 +39,7 @@ int sci_xgetech( char *fname, unsigned long fname_len )
 
   getscale2d(W,F,L,A);
        for ( i = 1 ; i <= Lhs ; i++) { LhsVar(i) = i; }
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/
index 5b0694e..1804abc 100644 (file)
@@ -146,15 +146,16 @@ int sci_xgetmouse( char *fname,unsigned long fname_len )
 
   switch (Lhs) {
   case 1:
+               C2F(putlhsvar)();
     return 0;
   case 2:
-    LhsVar(1) = Rhs+1;
-
     CreateVar(Rhs+2,MATRIX_OF_DOUBLE_DATATYPE,&m1,&m1,&l2);
     *stk(l2) = windowsID; /* this is the window number */
     LhsVar(2) = Rhs+2;
+               C2F(putlhsvar)();
     return 0;
   }
+       C2F(putlhsvar)();
   return -1 ;
 }
 
index 0c94748..a5724cb 100644 (file)
@@ -43,6 +43,7 @@ int sci_xgraduate(char *fname,unsigned long fname_len)
   if (Lhs >= 6) { CreateVar(6,MATRIX_OF_DOUBLE_DATATYPE,&un,&un,&lr); *stk(lr ) = (double) kMaxr;  }
   if (Lhs >= 7) { CreateVar(7,MATRIX_OF_DOUBLE_DATATYPE,&un,&un,&lr); *stk(lr ) = (double) ar;  }
   for (i= 1; i <= Lhs ; i++) { LhsVar(i) = i ; }
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index b3f1001..9c96228 100644 (file)
@@ -38,6 +38,8 @@ int sci_xgrid(char *fname,unsigned long fname_len)
     style = (int)  *stk(l1);
   }
   LhsVar(1)=0;
+       C2F(putlhsvar)();
+
   status = sciSetGridStyle( sciGetCurrentSubWin(), style, style, style ) ;
   if ( status == 0 )
   {
index a2e5242..1a4af8c 100644 (file)
@@ -66,6 +66,7 @@ static int xlfont_no_rhs(char * fname)
        freeArrayOfString(fontsname,nbElements);
 
        LhsVar(1) = Rhs+1 ;
+       C2F(putlhsvar)();
        return 0;
 }
 /*--------------------------------------------------------------------------*/
@@ -87,12 +88,14 @@ static int xlfont_one_rhs(char * fname)
                        freeArrayOfString(fontsname,nbElements);
 
                        LhsVar(1) = Rhs+1 ;
+                       C2F(putlhsvar)();
                        return 0;
                }
                else if ( strcmp(cstk(l1),"reset")==0)
                {
                        resetFontManager();
                        LhsVar(1) = 0 ;
+                       C2F(putlhsvar)();
                        return 0;
                }
                else
@@ -106,6 +109,7 @@ static int xlfont_one_rhs(char * fname)
                                *istk(l1) = fontID ;
 
                                LhsVar(1) = Rhs+1 ;
+                               C2F(putlhsvar)();
                                return 0;
                        }
                        else if (FileExist(cstk(l1)))
@@ -117,6 +121,7 @@ static int xlfont_one_rhs(char * fname)
                                *istk(l1) = fontID ;
 
                                LhsVar(1) = Rhs+1 ;
+                               C2F(putlhsvar)();
                                return 0;
                        }
                        else
@@ -189,6 +194,7 @@ static int xlfont_n_rhs(char * fname)
                                *istk(l1) = Id ;
 
                                LhsVar(1) = Rhs+1 ;
+                               C2F(putlhsvar)();
                        }
                        else if ( isAvailableFontsName(fontname) )
                        {
@@ -198,6 +204,7 @@ static int xlfont_n_rhs(char * fname)
                                *istk(l1) = Id ;
 
                                LhsVar(1) = Rhs+1 ;
+                               C2F(putlhsvar)();
                        }
                        else
                        {
index 207bfd7..551ef7a 100644 (file)
@@ -27,6 +27,7 @@ int sci_xload(char *fname,unsigned long fname_len)
  
   /* call a Scilab function to handle compatibility */
   C2F(callscifun)("xload",(unsigned long) 5);
+       C2F(putlhsvar)();
   return 0;
 }
 
index c922aa0..c02c874 100644 (file)
@@ -35,6 +35,7 @@ int sci_xname(char *fname,unsigned long fname_len)
   sciSetName( sciGetCurrentFigure(), cstk(l1) ) ;
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index 6b66200..e64f05f 100644 (file)
@@ -100,6 +100,7 @@ int sci_xpoly( char * fname, unsigned long fname_len )
 
   /* NG end */
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 
index 77e5942..5b863a4 100644 (file)
@@ -46,6 +46,7 @@ int sci_xpolys(char *fname,unsigned long fname_len)
   {
     /* dimension 0, 0 polyline to draw */
     LhsVar(1)=0 ;
+               C2F(putlhsvar)();
     return 0 ;
   }
 
@@ -79,6 +80,7 @@ int sci_xpolys(char *fname,unsigned long fname_len)
   sciDrawObjIfRequired(sciGetCurrentObj ());
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 
index afdf123..8917d01 100644 (file)
@@ -114,6 +114,7 @@ int sci_xrect( char *fname, unsigned long fname_len )
   if ( hdl > 0 )
   {
     LhsVar(1)=0;
+               C2F(putlhsvar)();
   }
   return 0;
 } 
index cf16823..69e4ac7 100644 (file)
@@ -105,6 +105,7 @@ int sci_xrects( char *fname, unsigned long fname_len )
   endFigureDataReading(pFigure);
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/
index 4c3e027..fa56374 100644 (file)
@@ -30,6 +30,7 @@ int sci_xsave( char * fname, unsigned long fname_len )
  
   /* call a scilab macro */
   C2F(callscifun)("xsave",(unsigned long) 6);
+       C2F(putlhsvar)();
   return 0;
 
 }
index 44c0df1..a390c07 100644 (file)
@@ -41,7 +41,13 @@ int sci_xsegs(char *fname,unsigned long fname_len)
   GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1);
   GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2);
   CheckSameDims(1,2,m1,n1,m2,n2);
-  if (m2*n2 == 0) { LhsVar(1)=0; return 0;} 
+  if (m2*n2 == 0)
+       {
+               /* Empty segs */
+               LhsVar(1)=0;
+               C2F(putlhsvar)();
+               return 0;
+       } 
 
   if (Rhs == 3)
   {
@@ -79,6 +85,7 @@ int sci_xsegs(char *fname,unsigned long fname_len)
     
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/
index 83ac7bb..fa05f5d 100644 (file)
@@ -70,7 +70,6 @@ int sci_xset( char *fname, unsigned long fname_len )
   if ( !keyFound )
   {
     Scierror(999, _("%s: Unrecognized input argument: '%s'.\n"), fname, cstk(l1));
-    LhsVar(1)=0;
     return 0;
   }
 
@@ -79,7 +78,7 @@ int sci_xset( char *fname, unsigned long fname_len )
   if (Rhs == 1 && (strcmp(cstk(l1),"window") == 0) )
   {
     Scierror(999, _("%s : '%s' must be set\n"),fname, "window-number");
-    LhsVar(1)=0; return 0;
+               return 0;
   }
 
   if (Rhs == 2 && VarType(2) != sci_matrix) 
@@ -87,7 +86,7 @@ int sci_xset( char *fname, unsigned long fname_len )
     /* second argument is not a scalar it must be a string */ 
     GetRhsVar(2,STRING_DATATYPE,&m2,&n2,&l2);
     C2F(xsetg)(cstk(l1),cstk(l2),m1,m2);
-    LhsVar(1)=0; return 0;
+    return 0;
   }
 
   if (Rhs == 1 && strcmp(cstk(l1),"default") == 0) 
@@ -164,13 +163,11 @@ int sci_xset( char *fname, unsigned long fname_len )
     if (*stk(lr) == 1)
     {
       Scierror(999, _("%s: Old graphic mode is no longer available. Please refer to the set help page.\n"),"xset");
-                       LhsVar(1)=0;
                        return -1;
     }
     else if (*stk(lr) != 0)
     {
       Scierror(999,"%s: Wrong value for input argument: %d or %d expected.\n",fname,0, 1);
-                       LhsVar(1)=0;
                        return -1;
     }
   }/* NG end */
@@ -354,7 +351,6 @@ int sci_xset( char *fname, unsigned long fname_len )
     else
     {
       Scierror(999, _("%s: Unrecognized input argument: '%s'.\n"), fname, cstk(l1));
-                       LhsVar(1)=0;
                        return 0;
     }
 
@@ -366,6 +362,7 @@ int sci_xset( char *fname, unsigned long fname_len )
   }
    
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 /*--------------------------------------------------------------------------*/
index 37069d2..88030da 100644 (file)
@@ -101,6 +101,7 @@ int sci_xsetech(char* fname,unsigned long fname_len)
   }
   setscale2d(wrect,arect,frect,logflag);
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 
 }
index 3ba18db..bb9712d 100644 (file)
@@ -43,7 +43,12 @@ int sci_xstring( char *fname, unsigned long fname_len )
   CheckScalar(2,m2,n2);
   yi = y = *stk(l2);
   GetRhsVar(3,MATRIX_OF_STRING_DATATYPE,&m3,&n3,&Str);
-  if ( m3*n3 == 0 ) { LhsVar(1)=0; return 0;} 
+  if ( m3*n3 == 0 )
+       {
+               LhsVar(1)=0;
+               C2F(putlhsvar)();
+               return 0;
+       } 
 
   if (Rhs >= 4)
   {
@@ -73,6 +78,7 @@ int sci_xstring( char *fname, unsigned long fname_len )
   freeArrayOfString(Str,m3*n3);
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/
index c0ad934..74c5899 100644 (file)
@@ -54,7 +54,12 @@ int sci_xstringb(char *fname,unsigned long fname_len)
   GetRhsVar(1,MATRIX_OF_DOUBLE_DATATYPE,&m1,&n1,&l1); CheckScalar(1,m1,n1);  x = *stk(l1);
   GetRhsVar(2,MATRIX_OF_DOUBLE_DATATYPE,&m2,&n2,&l2); CheckScalar(2,m2,n2);  y = *stk(l2);
   GetRhsVar(3,MATRIX_OF_STRING_DATATYPE,&m3,&n3,&Str);
-  if ( m3*n3 == 0 ) { LhsVar(1)=0; return 0;} 
+  if ( m3*n3 == 0 )
+       {
+               LhsVar(1)=0;
+               C2F(putlhsvar)();
+               return 0;
+       } 
 
   GetRhsVar(4,MATRIX_OF_DOUBLE_DATATYPE,&m4,&n4,&l4); CheckScalar(4,m4,n4);  w = *stk(l4);
   GetRhsVar(5,MATRIX_OF_DOUBLE_DATATYPE,&m5,&n5,&l5); CheckScalar(5,m5,n5);  hx = *stk(l5);
@@ -77,10 +82,10 @@ int sci_xstringb(char *fname,unsigned long fname_len)
   userSize[1] = hx ;
   Objstring (Str,m3,n3,x,y,&angle,rect,autoSize,userSize,&hdlstr,TRUE,NULL,NULL,FALSE,TRUE,FALSE,ALIGN_CENTER);
 
+       freeArrayOfString(Str,m3*n3);
 
   LhsVar(1)=0;
-
-  freeArrayOfString(Str,m3*n3);
+       C2F(putlhsvar)();
 
   return 0;
 
index 70c998c..b774c2b 100644 (file)
@@ -142,6 +142,7 @@ int sci_xtitle( char * fname, unsigned long fname_len )
   sciDrawObj(pFigure);
 
   LhsVar(1)=0;
+       C2F(putlhsvar)();
   return 0;
 }
 
index 11a6dab..802c395 100644 (file)
@@ -132,7 +132,6 @@ int sci_zoom_rect(char *fname,unsigned long fname_len)
       sciPointObj * zoomedObject = getZoomedObject(fname);
       if (zoomedObject == NULL)
       {
-        LhsVar(1)=0; 
         return -1;
       }
       sciInteractiveZoom(zoomedObject);
@@ -148,21 +147,18 @@ int sci_zoom_rect(char *fname,unsigned long fname_len)
         {
           /* error on rectangle bounds */
           Scierror(999, _("%s: Wrong value for input argument #%d: Specified bounds are not correct.\n"), fname, 1);
-          LhsVar(1)=0; 
           return -1;
         }
       }
       else
       {
         /* error on rectagle definition */
-        LhsVar(1)=0; 
         return -1;
       }
     }
     else
     {
       Scierror(999, _("%s: Wrong type for input argument #%d: Handle or vector of double expected.\n"), fname, 1);
-      LhsVar(1)=0; 
       return 0;
     }
   }
@@ -176,14 +172,12 @@ int sci_zoom_rect(char *fname,unsigned long fname_len)
     if (GetType(1) != sci_handles || GetType(2) != sci_matrix)
     {
       Scierror(999, _("%s: Wrong type for input arguments: Handle or vector of double expected.\n"), fname);
-      LhsVar(1)=0; 
       return -1;
     }
 
     zoomedObject = getZoomedObject(fname);
     if (zoomedObject == NULL || !getZoomRect(fname, 2, rect))
     {
-      LhsVar(1)=0; 
       return -1;
     }
 
@@ -191,12 +185,12 @@ int sci_zoom_rect(char *fname,unsigned long fname_len)
     {
       /* error on rectangle bounds */
       Scierror(999, _("%s: Error on input argument #%d: Specified bounds are not correct.\n"), fname, 1);
-      LhsVar(1)=0; 
       return -1;
     }
   }
 
   LhsVar(1)=0; 
+       C2F(putlhsvar)();
   return 0;
 } 
 /*--------------------------------------------------------------------------*/