Added mseek and modified mopen to open file in rb mode by default. 94/3694/5
cedric Delamarre [Thu, 31 Mar 2011 12:31:38 +0000 (14:31 +0200)]
Change-Id: I137cd8bfaf49613f34e2d8b438c7c870233ea93b

18 files changed:
scilab/modules/core/src/fortran/getfun.f
scilab/modules/fileio/Makefile.am
scilab/modules/fileio/Makefile.in
scilab/modules/fileio/fileio.vcproj
scilab/modules/fileio/includes/fileio_gw.hxx
scilab/modules/fileio/includes/gw_fileio.h
scilab/modules/fileio/includes/mseek.h
scilab/modules/fileio/sci_gateway/c/gw_fileio.c
scilab/modules/fileio/sci_gateway/c/sci_mseek.c [deleted file]
scilab/modules/fileio/sci_gateway/cpp/fileio_gw.cpp
scilab/modules/fileio/sci_gateway/cpp/fileio_gw.vcproj
scilab/modules/fileio/sci_gateway/cpp/sci_mopen.cpp
scilab/modules/fileio/sci_gateway/cpp/sci_mseek.cpp [new file with mode: 0644]
scilab/modules/fileio/src/c/mseek.c [deleted file]
scilab/modules/fileio/src/cpp/mseek.cpp [new file with mode: 0644]
scilab/modules/io/sci_gateway/fortran/intfile.f
scilab/modules/io/src/fortran/newsave.f
scilab/modules/spreadsheet/src/c/xls.c

index 7bdb44b..7d44a33 100644 (file)
@@ -1,20 +1,20 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c This file must be used under the terms of the CeCILL.
 c This source file is licensed as described in the file COPYING, which
 c you should have received as part of this distribution.  The terms
-c are also available at    
+c are also available at
 c http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
       subroutine getfun(lunit,nlines,caller)
 c
-c ======================================================================     
+c ======================================================================
 c     get a user defined function
-c ======================================================================    
-c     
+c ======================================================================
+c
       include 'stack.h'
-c     
+c
       character *(*) caller
       integer lrecl,id(nsiz),retu(6),icount
       integer slash,dot,blank,equal,lparen,rparen
@@ -27,7 +27,7 @@ c
 
       external getfastcode
       integer  getfastcode
-c     
+c
       data slash/48/,dot/51/,blank/40/,equal/50/,lparen/41/,rparen/42/
       data comma/52/,semi/43/,less/59/,great/60/,left/54/,right/55/
       data name/1/,cmt/2/,eol/99/,lrecl/512/
@@ -39,12 +39,12 @@ c     ennd/14,23,13/
 c
       lmax=iadr(lstk(bot)-1)
       isopened=.false.
-c     
+c
       if(top-rhs+lhs+1.ge.bot) then
          call error(18)
          return
       endif
-c     
+c
       job=0
       call icopy(6,lpt,1,slpt,1)
       ssym=sym
@@ -56,12 +56,12 @@ c
       first=1
       l = lpt(1)
       if(lunit.eq.0) goto 30
-c     
+c
 c     get macro deff from file (getf)
 c     ------------------------
 c     acquisition d'une ligne du fichier
       call getfiletype(lunit,ltype,info)
-      if(info.ne.0) goto 90 
+      if(info.ne.0) goto 90
       icount=0
 
  11   buf=' '
@@ -91,7 +91,7 @@ c     strip blanks at the beginning of the line
       if(buf(m:m).eq.' ') goto 16
 c
       if(buf(m:m+10).eq.'endfunction'.and.m+11.gt.n) then
-         if(first.eq.0) then  
+         if(first.eq.0) then
             istk(l)=blank
             istk(l+1)=eol
             l=l+2
@@ -101,23 +101,23 @@ c
       if(buf(m:m+8).eq.'function ') then
          if(first.eq.1) then
             j=m+7
-            goto 25            
+            goto 25
          else
             if( ltype.eq.1) then
                call myback(lunit)
             else
-               call mseek(lunit,-nr,'cur',ierr)
+c               call mseek(lunit,-nr,'cur',ierr)
             endif
             nlines=max(0,nlines-1)
             goto 61
          endif
       endif
-c     
+c
 c     boucle de conversion des caracteres de la ligne
       j=m-1
  17   j=j+1
       if(j.gt.n) goto 27
-c     
+c
 *     modif Bruno : appel a getfastcode au lieu de la boucle
       k = getfastcode(buf(j:j))
       if (k .eq. eol) go to 11
@@ -157,7 +157,7 @@ c     comments mark (//)
 c     it is not a continuation line
       if(first.eq.1) goto 24
       istk(l) = k
-c     
+c
       l = l + 1
       if(l.gt.lmax) then
          ierr=5
@@ -186,7 +186,7 @@ c     first line
         goto 90
       endif
       goto 17
-c     
+c
 c     line conversion finished
  27   if(first.eq.1) goto 40
 
@@ -213,15 +213,15 @@ C     .  lines into account
       icount=0
 c
       goto 11
-      
-c     
+
+c
 c     get macro deff from stk
 c     -----------------------
  30   if(rhs.ne.2) then
          call error(39)
          return
       endif
-c     
+c
       ilt=iadr(lstk(top))
       if(istk(ilt).ne.10) then
          err=2
@@ -248,7 +248,7 @@ c
          l=l+1
  31   continue
       goto 40
-c     
+c
  33   mn=istk(ilt+1)*istk(ilt+2)
       ili=ilt+4+mn
       ilt=ilt+4
@@ -281,7 +281,7 @@ c     . add a final empty line for backward compatiblity
       endif
 
       goto 61
-c     
+c
 c     analyse de la ligne de declaration
  40   continue
       if(ddt.ge.2) call basout(io,wte,buf(1:n))
@@ -295,10 +295,10 @@ c     analyse de la ligne de declaration
       lpt(3) = lpt(1)
       lpt(2) = lpt(1)
       lct(1) = 0
-cMAJ  
+cMAJ
       fin=0
       call fortrangetch
-c     
+c
       if(top+2.ge.bot) then
          call error(18)
          return
@@ -312,13 +312,13 @@ c
          ierr=5
          goto 90
       endif
-c     
+c
       call getsym
       mlhs=0
       if(sym.eq.name) then
 c     a=func(..) ou func(..)
          if(char1.eq.equal) then
-c     a=func(..) 
+c     a=func(..)
             mlhs=mlhs+1
             l=l+nsiz
             if(l.gt.lmax) then
@@ -346,7 +346,7 @@ c     [..]=func()
             ierr=4
             goto  90
          endif
-c     
+c
          call getsym
          if(sym.ne.equal) then
             ierr=4
@@ -364,7 +364,7 @@ c
       endif
       istk(il+1)=mlhs
       call putid(id,syn(1))
-c     
+c
       mrhs=0
       il=l
       l=l+1
@@ -399,10 +399,10 @@ c
      $     sym.ne.comma.and.sym.ne.cmt) then
          ierr=4
          goto  90
-      endif 
+      endif
  46   continue
       istk(il)=mrhs
-c     
+c
       il=l
       l=l+1
 
@@ -414,7 +414,7 @@ c     caller = 'getf' add a empty line for backward compatiblity
 
       first=0
       goto 11
-c     
+c
 c     fin
  60   if(first.eq.1) then
          job=-1
@@ -442,7 +442,7 @@ c
       fin=job
       return
 
-c     
+c
  90   continue
 c gestion des erreurs
 c
@@ -468,7 +468,7 @@ c     invalid syntax
       return
  95   call error(28)
       return
-c     
+c
+
       end
 
index f559c20..38bd65e 100644 (file)
@@ -19,7 +19,6 @@ src/c/mclearerr.c \
 src/c/merror.c \
 src/c/mgeti.c \
 src/c/mputi.c \
-src/c/mseek.c \
 src/c/mtell.c \
 src/c/readline.c \
 src/c/getdrives.c \
@@ -63,7 +62,6 @@ sci_gateway/c/sci_chdir.c \
 sci_gateway/c/sci_pwd.c \
 sci_gateway/c/sci_mclearerr.c \
 sci_gateway/c/sci_merror.c \
-sci_gateway/c/sci_mseek.c \
 sci_gateway/c/sci_mtell.c \
 sci_gateway/c/sci_newest.c \
 sci_gateway/c/sci_get_absolute_file_path.c  \
@@ -96,8 +94,9 @@ GATEWAY_CPP_SOURCES = \
        sci_gateway/cpp/sci_removedir.cpp \
        sci_gateway/cpp/sci_meof.cpp \
        sci_gateway/cpp/sci_mputstr.cpp \
-       sci_gateway/cpp/sci_mgetstr.cpp
-               
+       sci_gateway/cpp/sci_mgetstr.cpp \
+       sci_gateway/cpp/sci_mseek.cpp
+       
 FILEIO_CPP_SOURCES = \
        src/cpp/expandPathVariable.cpp \
        src/cpp/mopen.cpp \
@@ -107,8 +106,8 @@ FILEIO_CPP_SOURCES = \
        src/cpp/mputl.cpp \
        src/cpp/mgetl.cpp \
        src/cpp/mgetstr.cpp \
-       src/cpp/filemanager.cpp
-
+       src/cpp/filemanager.cpp \
+       src/cpp/mseek.cpp
 
 libscifileio_la_CPPFLAGS=      -I$(srcdir)/includes/ \
                                -I$(srcdir)/src/c/ \
index 33e64d1..ddeba6c 100644 (file)
@@ -124,8 +124,8 @@ am__objects_1 = libscifileio_algo_la-FileExist.lo \
        libscifileio_algo_la-getfiletype.lo \
        libscifileio_algo_la-mclearerr.lo \
        libscifileio_algo_la-merror.lo libscifileio_algo_la-mgeti.lo \
-       libscifileio_algo_la-mputi.lo libscifileio_algo_la-mseek.lo \
-       libscifileio_algo_la-mtell.lo libscifileio_algo_la-readline.lo \
+       libscifileio_algo_la-mputi.lo libscifileio_algo_la-mtell.lo \
+       libscifileio_algo_la-readline.lo \
        libscifileio_algo_la-getdrives.lo \
        libscifileio_algo_la-deleteafile.lo \
        libscifileio_algo_la-getshortpathname.lo \
@@ -154,7 +154,8 @@ am__objects_2 = libscifileio_algo_la-expandPathVariable.lo \
        libscifileio_algo_la-mput.lo libscifileio_algo_la-mget.lo \
        libscifileio_algo_la-mputl.lo libscifileio_algo_la-mgetl.lo \
        libscifileio_algo_la-mgetstr.lo \
-       libscifileio_algo_la-filemanager.lo
+       libscifileio_algo_la-filemanager.lo \
+       libscifileio_algo_la-mseek.lo
 am_libscifileio_algo_la_OBJECTS = $(am__objects_1) $(am__objects_2)
 libscifileio_algo_la_OBJECTS = $(am_libscifileio_algo_la_OBJECTS)
 libscifileio_la_DEPENDENCIES = libscifileio-algo.la \
@@ -172,8 +173,8 @@ am__objects_3 = libscifileio_la-gw_fileio.lo \
        libscifileio_la-sci_getdrives.lo \
        libscifileio_la-sci_pathsep.lo libscifileio_la-sci_chdir.lo \
        libscifileio_la-sci_pwd.lo libscifileio_la-sci_mclearerr.lo \
-       libscifileio_la-sci_merror.lo libscifileio_la-sci_mseek.lo \
-       libscifileio_la-sci_mtell.lo libscifileio_la-sci_newest.lo \
+       libscifileio_la-sci_merror.lo libscifileio_la-sci_mtell.lo \
+       libscifileio_la-sci_newest.lo \
        libscifileio_la-sci_get_absolute_file_path.lo \
        libscifileio_la-sci_getrelativefilename.lo \
        libscifileio_la-sci_copyfile.lo \
@@ -195,7 +196,8 @@ am__objects_4 = libscifileio_la-fileio_gw.lo \
        libscifileio_la-sci_createdir.lo \
        libscifileio_la-sci_fullpath.lo \
        libscifileio_la-sci_removedir.lo libscifileio_la-sci_meof.lo \
-       libscifileio_la-sci_mputstr.lo libscifileio_la-sci_mgetstr.lo
+       libscifileio_la-sci_mputstr.lo libscifileio_la-sci_mgetstr.lo \
+       libscifileio_la-sci_mseek.lo
 am_libscifileio_la_OBJECTS = $(am__objects_3) $(am__objects_4)
 libscifileio_la_OBJECTS = $(am_libscifileio_la_OBJECTS)
 libscifileio_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -504,7 +506,6 @@ src/c/mclearerr.c \
 src/c/merror.c \
 src/c/mgeti.c \
 src/c/mputi.c \
-src/c/mseek.c \
 src/c/mtell.c \
 src/c/readline.c \
 src/c/getdrives.c \
@@ -547,7 +548,6 @@ sci_gateway/c/sci_chdir.c \
 sci_gateway/c/sci_pwd.c \
 sci_gateway/c/sci_mclearerr.c \
 sci_gateway/c/sci_merror.c \
-sci_gateway/c/sci_mseek.c \
 sci_gateway/c/sci_mtell.c \
 sci_gateway/c/sci_newest.c \
 sci_gateway/c/sci_get_absolute_file_path.c  \
@@ -580,7 +580,8 @@ GATEWAY_CPP_SOURCES = \
        sci_gateway/cpp/sci_removedir.cpp \
        sci_gateway/cpp/sci_meof.cpp \
        sci_gateway/cpp/sci_mputstr.cpp \
-       sci_gateway/cpp/sci_mgetstr.cpp
+       sci_gateway/cpp/sci_mgetstr.cpp \
+       sci_gateway/cpp/sci_mseek.cpp
 
 FILEIO_CPP_SOURCES = \
        src/cpp/expandPathVariable.cpp \
@@ -591,7 +592,8 @@ FILEIO_CPP_SOURCES = \
        src/cpp/mputl.cpp \
        src/cpp/mgetl.cpp \
        src/cpp/mgetstr.cpp \
-       src/cpp/filemanager.cpp
+       src/cpp/filemanager.cpp \
+       src/cpp/mseek.cpp
 
 libscifileio_la_CPPFLAGS = -I$(srcdir)/includes/ \
                                -I$(srcdir)/src/c/ \
@@ -1033,13 +1035,6 @@ libscifileio_algo_la-mputi.lo: src/c/mputi.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_algo_la_CFLAGS) $(CFLAGS) -c -o libscifileio_algo_la-mputi.lo `test -f 'src/c/mputi.c' || echo '$(srcdir)/'`src/c/mputi.c
 
-libscifileio_algo_la-mseek.lo: src/c/mseek.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_algo_la_CFLAGS) $(CFLAGS) -MT libscifileio_algo_la-mseek.lo -MD -MP -MF $(DEPDIR)/libscifileio_algo_la-mseek.Tpo -c -o libscifileio_algo_la-mseek.lo `test -f 'src/c/mseek.c' || echo '$(srcdir)/'`src/c/mseek.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscifileio_algo_la-mseek.Tpo $(DEPDIR)/libscifileio_algo_la-mseek.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='src/c/mseek.c' object='libscifileio_algo_la-mseek.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_algo_la_CFLAGS) $(CFLAGS) -c -o libscifileio_algo_la-mseek.lo `test -f 'src/c/mseek.c' || echo '$(srcdir)/'`src/c/mseek.c
-
 libscifileio_algo_la-mtell.lo: src/c/mtell.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_algo_la_CFLAGS) $(CFLAGS) -MT libscifileio_algo_la-mtell.lo -MD -MP -MF $(DEPDIR)/libscifileio_algo_la-mtell.Tpo -c -o libscifileio_algo_la-mtell.lo `test -f 'src/c/mtell.c' || echo '$(srcdir)/'`src/c/mtell.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscifileio_algo_la-mtell.Tpo $(DEPDIR)/libscifileio_algo_la-mtell.Plo
@@ -1320,13 +1315,6 @@ libscifileio_la-sci_merror.lo: sci_gateway/c/sci_merror.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_la_CFLAGS) $(CFLAGS) -c -o libscifileio_la-sci_merror.lo `test -f 'sci_gateway/c/sci_merror.c' || echo '$(srcdir)/'`sci_gateway/c/sci_merror.c
 
-libscifileio_la-sci_mseek.lo: sci_gateway/c/sci_mseek.c
-@am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_la_CFLAGS) $(CFLAGS) -MT libscifileio_la-sci_mseek.lo -MD -MP -MF $(DEPDIR)/libscifileio_la-sci_mseek.Tpo -c -o libscifileio_la-sci_mseek.lo `test -f 'sci_gateway/c/sci_mseek.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mseek.c
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscifileio_la-sci_mseek.Tpo $(DEPDIR)/libscifileio_la-sci_mseek.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sci_gateway/c/sci_mseek.c' object='libscifileio_la-sci_mseek.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_la_CFLAGS) $(CFLAGS) -c -o libscifileio_la-sci_mseek.lo `test -f 'sci_gateway/c/sci_mseek.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mseek.c
-
 libscifileio_la-sci_mtell.lo: sci_gateway/c/sci_mtell.c
 @am__fastdepCC_TRUE@   $(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(libscifileio_la_CFLAGS) $(CFLAGS) -MT libscifileio_la-sci_mtell.lo -MD -MP -MF $(DEPDIR)/libscifileio_la-sci_mtell.Tpo -c -o libscifileio_la-sci_mtell.lo `test -f 'sci_gateway/c/sci_mtell.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mtell.c
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/libscifileio_la-sci_mtell.Tpo $(DEPDIR)/libscifileio_la-sci_mtell.Plo
@@ -1453,6 +1441,13 @@ libscifileio_algo_la-filemanager.lo: src/cpp/filemanager.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscifileio_algo_la-filemanager.lo `test -f 'src/cpp/filemanager.cpp' || echo '$(srcdir)/'`src/cpp/filemanager.cpp
 
+libscifileio_algo_la-mseek.lo: src/cpp/mseek.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscifileio_algo_la-mseek.lo -MD -MP -MF $(DEPDIR)/libscifileio_algo_la-mseek.Tpo -c -o libscifileio_algo_la-mseek.lo `test -f 'src/cpp/mseek.cpp' || echo '$(srcdir)/'`src/cpp/mseek.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscifileio_algo_la-mseek.Tpo $(DEPDIR)/libscifileio_algo_la-mseek.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/cpp/mseek.cpp' object='libscifileio_algo_la-mseek.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscifileio_algo_la-mseek.lo `test -f 'src/cpp/mseek.cpp' || echo '$(srcdir)/'`src/cpp/mseek.cpp
+
 libscifileio_la-fileio_gw.lo: sci_gateway/cpp/fileio_gw.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscifileio_la-fileio_gw.lo -MD -MP -MF $(DEPDIR)/libscifileio_la-fileio_gw.Tpo -c -o libscifileio_la-fileio_gw.lo `test -f 'sci_gateway/cpp/fileio_gw.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/fileio_gw.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscifileio_la-fileio_gw.Tpo $(DEPDIR)/libscifileio_la-fileio_gw.Plo
@@ -1628,6 +1623,13 @@ libscifileio_la-sci_mgetstr.lo: sci_gateway/cpp/sci_mgetstr.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscifileio_la-sci_mgetstr.lo `test -f 'sci_gateway/cpp/sci_mgetstr.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_mgetstr.cpp
 
+libscifileio_la-sci_mseek.lo: sci_gateway/cpp/sci_mseek.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscifileio_la-sci_mseek.lo -MD -MP -MF $(DEPDIR)/libscifileio_la-sci_mseek.Tpo -c -o libscifileio_la-sci_mseek.lo `test -f 'sci_gateway/cpp/sci_mseek.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_mseek.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscifileio_la-sci_mseek.Tpo $(DEPDIR)/libscifileio_la-sci_mseek.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_mseek.cpp' object='libscifileio_la-sci_mseek.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscifileio_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscifileio_la-sci_mseek.lo `test -f 'sci_gateway/cpp/sci_mseek.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_mseek.cpp
+
 mostlyclean-libtool:
        -rm -f *.lo
 
index 6ab097e..195014c 100644 (file)
                                >
                        </File>
                        <File
-                               RelativePath=".\src\c\mseek.c"
+                               RelativePath=".\src\cpp\mseek.cpp"
                                >
                        </File>
                        <File
                                >
                        </File>
                        <File
-                               RelativePath=".\sci_gateway\c\sci_mseek.c"
-                               >
-                       </File>
-                       <File
                                RelativePath=".\sci_gateway\c\sci_msscanf.c"
                                >
                        </File>
index 53e1a8f..7145557 100644 (file)
@@ -60,5 +60,8 @@ CPP_GATEWAY_PROTOTYPE(sci_removedir);
 CPP_GATEWAY_PROTOTYPE(sci_meof);
 CPP_GATEWAY_PROTOTYPE(sci_mputstr);
 CPP_GATEWAY_PROTOTYPE(sci_mgetstr);
+CPP_GATEWAY_PROTOTYPE(sci_mseek);
+
+
 
 #endif /* !__FILEIO_GW_HXX__ */
index b6e9bba..267a094 100644 (file)
@@ -18,7 +18,6 @@
 FILEIO_IMPEXP int gw_fileio(void);
 /*--------------------------------------------------------------------------*/
 FILEIO_IMPEXP int sci_merror(char *fname,unsigned long fname_len);
-FILEIO_IMPEXP int sci_mseek(char *fname,unsigned long fname_len);
 FILEIO_IMPEXP int sci_mtell(char *fname,unsigned long fname_len);
 FILEIO_IMPEXP int sci_mclearerr(char *fname,unsigned long fname_len);
 FILEIO_IMPEXP int sci_mfprintf(char *fname,unsigned long fname_len);
index 279f5bd..a52a217 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2007 - INRIA
+ * Copyright (C) 2011 - Digiteo - Cedric DELAMARRE
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -18,7 +18,8 @@
 /**
 * seek function 
 */
-FILEIO_IMPEXP void C2F(mseek) (int *fd, int *offset, char *flag, int *err);
+
+FILEIO_IMPEXP int mseek(int fd, int offset, int flag);
 
 #endif /* __MSEEK_H__ */
 /*--------------------------------------------------------------------------*/
index ed32efb..aa93994 100644 (file)
@@ -26,7 +26,7 @@ static gw_generic_table Tab[]={
        {NULL, ""}, //mget
        {NULL, ""}, //mgetstr
        {NULL, ""}, //meof
-       {sci_mseek, "mseek"}, //
+       {NULL, ""}, //mseek
        {sci_mtell, "mtell"}, //
        {sci_mclearerr, "mclearerr"},
        {sci_mfprintf,"mfprintf"}, //
diff --git a/scilab/modules/fileio/sci_gateway/c/sci_mseek.c b/scilab/modules/fileio/sci_gateway/c/sci_mseek.c
deleted file mode 100644 (file)
index fc4ae9e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-* Copyright (C) 2006 - INRIA - Allan CORNET
-* Copyright (C) 2009 - DIGITEO - Allan CORNET
-* ...
-* 
-* 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    
-* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-*
-*/
-/*--------------------------------------------------------------------------*/
-#include "stack-c.h"
-#include "gw_fileio.h"
-#include "mseek.h"
-#include "MALLOC.h"
-#include "localization.h"
-#include "Scierror.h"
-/*--------------------------------------------------------------------------*/
-#define ALL_FILES_DESCRIPTOR -1
-/*--------------------------------------------------------------------------*/
-int sci_mseek(char *fname,unsigned long fname_len)
-{
-       int m1 = 0, n1 = 0, l1 = 0;
-       int m2 = 0, n2 = 0, l2 = 0;
-       int m3 = 0, n3 = 0, l3 = 0;
-       int err = 0;
-       int fd = ALL_FILES_DESCRIPTOR;
-       char *flag = NULL;
-
-       Nbvars=0;
-       CheckRhs(1,3);
-       CheckLhs(1,1);
-
-       if (GetType(1) == sci_matrix)
-       {
-               GetRhsVar(1,MATRIX_OF_INTEGER_DATATYPE,&m1,&n1,&l1);
-               if (m1*n1 != 1)
-               {
-                       Scierror(999, _("%s: Wrong size for input argument #%d: An integer expected.\n"), fname,1);
-                       return 0;
-               }
-       }
-       else
-       {
-               Scierror(999, _("%s: Wrong type for input argument #%d: An integer expected.\n"), fname,1);
-               return 0;
-       }
-
-       if ( Rhs >= 2)
-       {
-               if (GetType(2) == sci_matrix)
-               {
-                       GetRhsVar(2,MATRIX_OF_INTEGER_DATATYPE,&m2,&n2,&l2);
-                       if (m2*n2 == 1)
-                       {
-                               fd = *istk(l2);
-                       }
-                       else
-                       {
-                               Scierror(999, _("%s: Wrong size for input argument #%d: An integer expected.\n"), fname,2);
-                       }
-               }
-               else
-               {
-                       Scierror(999, _("%s: Wrong type for input argument #%d: An integer expected.\n"), fname,2);
-                       return 0;
-               }
-       }
-
-       if ( Rhs >= 3)
-       {
-               GetRhsVar(3,STRING_DATATYPE,&m3,&n3,&l3);
-               flag = cstk(l3);
-       }
-       else
-       {
-               flag = "set";
-       }
-
-       C2F(mseek)(&fd,istk(l1),flag,&err);
-
-       if (err >  0)
-       {
-               SciError(10000);
-               return 0;
-       }
-
-       LhsVar(1) = 0;
-       PutLhsVar();
-
-       return 0;
-}
-/*--------------------------------------------------------------------------*/
index 171b208..00c1930 100644 (file)
@@ -51,5 +51,8 @@ bool FileioModule::Load()
     symbol::Context::getInstance()->AddFunction(Function::createFunction(L"meof", &sci_meof, MODULE_NAME));
     symbol::Context::getInstance()->AddFunction(Function::createFunction(L"mputstr", &sci_mputstr, MODULE_NAME));
     symbol::Context::getInstance()->AddFunction(Function::createFunction(L"mgetstr", &sci_mgetstr, MODULE_NAME));
+    symbol::Context::getInstance()->AddFunction(Function::createFunction(L"mseek", &sci_mseek, MODULE_NAME));
+    
+    
     return true;
 }
index 88d8059..98a4425 100644 (file)
                                >
                        </File>
                        <File
+                               RelativePath=".\sci_mseek.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath=".\sci_pathconvert.cpp"
                                >
                        </File>
index 41defdf..3ebf9ab 100644 (file)
@@ -34,7 +34,7 @@ Function::ReturnValue sci_mopen(typed_list &in, int _iRetCount, typed_list &out)
     int iErr                = 0;
     int iID                 = 0;
     wchar_t* pstFilename    = NULL;
-    wchar_t* pstMode        = L"wb";
+    wchar_t* pstMode        = L"rb";
     int iSwap               = 0;
 
     //check output parameters
diff --git a/scilab/modules/fileio/sci_gateway/cpp/sci_mseek.cpp b/scilab/modules/fileio/sci_gateway/cpp/sci_mseek.cpp
new file mode 100644 (file)
index 0000000..87c8996
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2006 - INRIA - Allan CORNET
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+* Copyright (C) 2010 - DIGITEO - Antoine ELIAS
+* Copyright (C) 2011 - DIGITEO - Cedric DELAMARRE
+*
+* 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
+* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include "funcmanager.hxx"
+#include "filemanager.hxx"
+#include "fileio_gw.hxx"
+#include "function.hxx"
+#include "string.hxx"
+
+extern "C"
+{
+#include <stdio.h>
+#include <errno.h>
+#include "localization.h"
+#include "Scierror.h"
+#include "mseek.h"
+}
+/*--------------------------------------------------------------------------*/
+#if (defined(sun) && !defined(SYSV)) 
+char *strerror (int errcode);
+#endif
+/*--------------------------------------------------------------------------*/
+#if (defined(sun) && !defined(SYSV)) || defined(sgi)
+#define SEEK_SET 0
+#define SEEK_CUR 1
+#define SEEK_END 2
+#endif 
+/*--------------------------------------------------------------------------*/
+
+Function::ReturnValue sci_mseek(types::typed_list &in, int _iRetCount, types::typed_list &out)
+{
+    int iFile           = -1; //default file : last opened file
+    int iRet            = 0;
+    int iWhere          = 0;
+    int iFlag           = 0;
+    wchar_t* wcsFlag    = NULL;
+
+    if(in.size() < 1 || in.size() > 3)
+    {
+        ScierrorW(77, _W("%ls: Wrong number of input argument(s): %d to %d expected.\n"), L"mseek", 1, 3);
+        return types::Function::Error;
+    }
+
+    if(in[0]->isDouble() == false || in[0]->getAs<types::Double>()->isScalar() == false || in[0]->getAs<types::Double>()->isComplex())
+    {
+        ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A Real expected.\n"), L"mseek", 1);
+        return types::Function::Error;
+    }
+
+    iWhere = static_cast<int>(in[0]->getAs<types::Double>()->getReal()[0]);
+
+    if(in.size() == 2)
+    {
+        if(in[1]->isDouble() && in[1]->getAs<types::Double>()->isScalar() && in[1]->getAs<types::Double>()->isComplex() == false)
+        {
+            iFile = static_cast<int>(in[1]->getAs<types::Double>()->getReal()[0]);
+        }
+        else if(in[1]->isString() && in[1]->getAs<types::String>()->isScalar())
+        {
+            wcsFlag = in[1]->getAs<types::String>()->get(0);
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A real or String expected.\n"), L"mseek", 2);
+            return types::Function::Error;
+        }
+    }
+
+    if(in.size() == 3)
+    {
+        if(in[1]->isDouble() == false || in[1]->getAs<types::Double>()->isScalar() == false || in[1]->getAs<types::Double>()->isComplex())
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A real expected.\n"), L"mseek", 2);
+            return types::Function::Error;
+        }
+        if(in[2]->isString() == false || in[2]->getAs<types::String>()->isScalar() == false)
+        {
+            ScierrorW(999, _W("%ls: Wrong type for input argument #%d: A String expected.\n"), L"mseek", 3);
+            return types::Function::Error;
+        }
+        
+        iFile = static_cast<int>(in[1]->getAs<types::Double>()->getReal()[0]);        
+        wcsFlag = in[2]->getAs<types::String>()->get(0);
+    }
+
+    if(wcsFlag != NULL)
+    {  
+        if(wcsncmp(wcsFlag, L"set",3) == 0)
+        {
+            iFlag = SEEK_SET;
+        }
+        else if(wcsncmp(wcsFlag, L"cur",3) == 0)
+        {
+               iFlag = SEEK_CUR;
+        }
+        else if(wcsncmp(wcsFlag, L"end",3) == 0)
+        {
+                   iFlag = SEEK_END;
+        }
+        else
+        {
+            ScierrorW(999, _W("%ls: Wrong value for input argument #%d: '%ls', '%ls' or '%ls' expected.\n"),L"mseek",3,L"set",L"cur",L"end");            
+            return types::Function::Error;
+        }
+    }
+    else
+    {
+        iFlag = SEEK_SET;
+    }
+
+    int iErr = mseek(iFile, iWhere, iFlag);
+
+    out.push_back(new Bool(!iErr));
+    return Function::OK;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/fileio/src/c/mseek.c b/scilab/modules/fileio/src/c/mseek.c
deleted file mode 100644 (file)
index d332833..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2007 - INRIA
- * Copyright (C) 2010 - DIGITEO - Allan CORNET
- * 
- * 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    
- * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-/*--------------------------------------------------------------------------*/
-#include <string.h>
-#include <stdio.h>
-#include <errno.h>
-#include "mseek.h"
-#include "filesmanagement.h"
-#include "sciprint.h"
-#include "localization.h"
-/*--------------------------------------------------------------------------*/
-#if (defined(sun) && !defined(SYSV)) 
-char *strerror (int errcode);
-#endif
-/*--------------------------------------------------------------------------*/
-#if (defined(sun) && !defined(SYSV)) || defined(sgi)
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-#endif 
-/*--------------------------------------------------------------------------*/
-void C2F(mseek) (int *fd, int *offset, char *flag, int *err)
-{     
-       int iflag;
-#if (defined(sun) && !defined(SYSV)) || defined(sgi)
-       int irep;
-#endif
-       FILE *fa= GetFileOpenedInScilab(*fd);
-       *err=0;
-       if ( fa == (FILE *) 0 ) 
-       {
-               char *filename = GetFileNameOpenedInScilab(*fd);
-               if (filename)
-               {
-                       sciprint(_("%s: Error while opening, reading or writing '%s'.\n"),"mseek",filename);
-               }
-               else
-               {
-                       sciprint(_("%s: Error while opening, reading or writing.\n"),"mseek");
-               }
-               
-               *err=1;
-               return;
-       }
-       if ( strncmp(flag,"set",3)==0 ) 
-               iflag = SEEK_SET;
-       else if ( strncmp(flag,"cur",3)==0 ) 
-               iflag = SEEK_CUR;
-       else if ( strncmp(flag,"end",3)==0 ) 
-               iflag = SEEK_END;
-       else 
-       {
-               sciprint(_("%s: Wrong value for input argument #%d: '%s', '%s' or '%s' expected.\n"),"mseek",3,"set","cur","end");
-               *err=1;
-               return;
-       }
-#if (defined(sun) && !defined(SYSV)) || defined(sgi)
-       irep = fseek(fa,(long) *offset,iflag) ;
-       if ( irep != 0 ) 
-       {
-               sciprint(strerror(irep));
-               *err=1;
-       }
-       else
-       {
-               *err=0;
-       }
-#else
-       #ifdef _MSC_VER
-               #if _WIN64 
-                       if (_fseeki64(fa,(long) *offset,iflag) == -1 ) 
-               #else
-                       if (fseek(fa,(long) *offset,iflag) == -1 ) 
-               #endif
-       #else
-       if (fseek(fa,(long) *offset,iflag) == -1 ) 
-       #endif
-       {
-               int errnum = errno; /* global variable produced by fseek */
-               sciprint(_("%s: An error occurred in %s: errno=%s\n"), "mseek", "fseek", strerror(errnum));
-               *err = 1;
-       }
-       else 
-       {
-               *err = 0;
-       }
-#endif
-}
-/*--------------------------------------------------------------------------*/
diff --git a/scilab/modules/fileio/src/cpp/mseek.cpp b/scilab/modules/fileio/src/cpp/mseek.cpp
new file mode 100644 (file)
index 0000000..d360ae1
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2011 - Digiteo - Cedric DELAMARRE
+ * 
+ * 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    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+/*--------------------------------------------------------------------------*/
+
+#include "filemanager.hxx"
+
+extern "C"
+{
+#include <stdio.h>
+#include <errno.h>
+#include "mseek.h"
+#include "filesmanagement.h"
+#include "localization.h"
+#include "MALLOC.h"
+}
+/*--------------------------------------------------------------------------*/
+
+int mseek(int fd, int offset, int iflag)
+{     
+#if (defined(sun) && !defined(SYSV)) || defined(sgi)
+       int irep;
+#endif
+
+    File* pF = FileManager::getFile(fd);
+       FILE* fa = pF->getFiledesc();
+
+       if(fa == NULL) 
+       {
+               return 1;
+       }
+
+       if(iflag != SEEK_SET && iflag != SEEK_CUR && iflag != SEEK_END) 
+       {
+               return 1;
+       }
+
+#if (defined(sun) && !defined(SYSV)) || defined(sgi)
+       irep = fseek(fa,(long) offset,iflag) ;
+       if(irep != 0 ) 
+       {
+               return 1;
+       }
+       else
+       {
+               return 0;
+       }
+#else
+       #ifdef _MSC_VER
+               #if _WIN64 
+                       if(_fseeki64(fa,(long) offset,iflag) == -1 ) 
+               #else
+                       if(fseek(fa,(long) offset,iflag) == -1 ) 
+               #endif
+       #else
+       if(fseek(fa,(long) offset,iflag) == -1) 
+       #endif
+       {
+               return errno; // global variable produced by fseek
+       }
+       else 
+       {
+               return 0;
+       }
+#endif
+
+    FREE(pF);
+    FREE(fa);
+}
+/*--------------------------------------------------------------------------*/
index 8212251..b0dfc2b 100644 (file)
@@ -1,16 +1,16 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c This file must be used under the terms of the CeCILL.
 c This source file is licensed as described in the file COPYING, which
 c you should have received as part of this distribution.  The terms
-c are also available at    
+c are also available at
 c http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
       subroutine intfile
 c     interface for builtin file
 
       INCLUDE 'stack.h'
-c     
+c
       integer status,access,form,recl,old,new,scratc,unknow
       integer sequen,direct,forma1,unform
       integer clo,rew,bak,ope,mode(2)
@@ -18,15 +18,15 @@ c
       logical getscalar
 
       integer iadr,sadr
-c     
+c
       data old/857368/,new/2100759/,scratc/1707037/,unknow/1316638/
       data sequen/1707548/,direct/1774093/,forma1/1775631/
       data unform/988958/
       data clo/12/,ope/24/,rew/27/,bak/11/,last/21/
-c     
+c
       iadr(l)=l+l-1
       sadr(l)=(l/2)+1
-c     
+c
 
       tops=top
       top0=top-rhs+1
@@ -79,7 +79,7 @@ c     .  count opened files
  05         continue
             return
          endif
-         
+
 c     .  allocate lhs variables
 c
 c     .  vector of units
@@ -229,7 +229,7 @@ c     action
          err=1
          call error(55)
          return
-      endif      
+      endif
       if(istk(il+1)*istk(il+2).ne.1) then
          err=1
          call error(36)
@@ -240,7 +240,7 @@ c     action
 c
 
       if(itype.eq.ope) then
-c     
+c
 c     open
          if(rhs.gt.6) then
             call error(39)
@@ -321,7 +321,7 @@ c     path
                istk(il+2)=0
                istk(il+3)=0
                l=sadr(il+4)
-               lstk(top+1)=l+1 
+               lstk(top+1)=l+1
 
                top=top+1
                il=iadr(lstk(top))
@@ -409,7 +409,7 @@ c     rewind
             call getfiletype(lunit,ltype,info)
             if(info.eq.0) then
                if(ltype.eq.2) then
-                  call mseek(lunit,0,'set'//char(0),err)
+c                  call mseek(lunit,0,'set'//char(0),err)
                else
                   rewind(lunit)
                endif
@@ -448,7 +448,7 @@ c     backspace
                endif
             endif
          endif
-c     
+c
          istk(il)=0
       elseif(itype.eq.last) then
 c     last
@@ -472,7 +472,7 @@ c     last
             call getfiletype(lunit,ltype,info)
             if(info.eq.0) then
                if(ltype.eq.2) then
-                  call mseek(lunit,0,'end'//char(0),err)
+c                  call mseek(lunit,0,'end'//char(0),err)
                else
  154              read(lunit,'(a)',err=156,end=155)
                   go to 154
index 5cd5002..703945b 100644 (file)
@@ -1,12 +1,12 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c This file must be used under the terms of the CeCILL.
 c This source file is licensed as described in the file COPYING, which
 c you should have received as part of this distribution.  The terms
-c are also available at    
+c are also available at
 c http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-      
+
       subroutine intsave
       include 'stack.h'
       logical opened,ptover,cremat
@@ -15,7 +15,7 @@ c http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
       logical eqid
       integer iadr,sadr
       data bl/nsiz*673720360/
-c     
+c
       iadr(l)=l+l-1
       sadr(l)=(l/2)+1
 c
@@ -31,7 +31,7 @@ c
       top0=top-rhs
 
 
-      call v2cunit(top0+1,'wb',fd,opened,ierr) 
+      call v2cunit(top0+1,'wb',fd,opened,ierr)
       if(ierr.gt.0) return
       if(ierr.lt.0) then
 c     file has been opened by fortran, oldsave (return a error)
@@ -106,7 +106,7 @@ c     create a variable with fd
 c     *call* parse
  24   continue
       ilrec=pstk(pt)
-      lstk(top+1)= istk(ilrec)  
+      lstk(top+1)= istk(ilrec)
       fd         = istk(ilrec+1)
       kmin       = istk(ilrec+2)
       kmax       = istk(ilrec+3)
@@ -114,7 +114,7 @@ c     *call* parse
       top0       = istk(ilrec+5)
       vol        = istk(ilrec+6)
       opened     = (istk(ilrec+7).eq.1)
-      pt=pt-1 
+      pt=pt-1
       if(rstk(pt).eq.911) goto 21
 
  25   if(k.lt.kmax) goto 20
@@ -144,7 +144,7 @@ c
       double precision res,offset
       integer iadr,sadr
       data semi/43/,blank/40/
-c     
+c
       iadr(l)=l+l-1
       sadr(l)=(l/2)+1
 c
@@ -161,7 +161,7 @@ c
       endif
       top0=top
       top=top-rhs+1
-      
+
       call v2cunit(top,'rb',fd,opened,ierr)
       if(ierr.gt.0) return
       if(ierr.lt.0) then
@@ -183,10 +183,10 @@ c     .  old mode (returns a error)
          call error(43)
          return
       else
-         call mseek(fd,int(offset),'set'//char(0),ierr)
+c         call mseek(fd,int(offset),'set'//char(0),ierr)
       endif
 
-      
+
       if(rhs.gt.1) then
          ilt=iadr(lstk(top0+1))
          err=sadr(ilt+nsiz*rhs-1)-lstk(bot)
@@ -243,7 +243,7 @@ c     store it into ids (used by the function called)
       ids(2,pt)=ilv
 c     preserve variable type
       ids(3,pt)=istk(ilv)
-c     set the end of the variable temporarily 
+c     set the end of the variable temporarily
       lstk(top+1)=sadr(ilv)
 c     preserve value of top
       ids(5,pt)=top
@@ -285,7 +285,7 @@ c     .  load has been done by a scilab function
       endif
       ilv=ids(2,pt)
       istk(ilv)=ids(3,pt)
-      pt=pt-1 
+      pt=pt-1
       ilt=pstk(pt)
       call putid(id,ids(1,pt))
       pt=pt-1
@@ -306,13 +306,13 @@ c     .  check if loaded variable is required
 c     .        yes, remove it out of the table and save it
                istk(ilt+(i-1)*nsiz)=0
 c     .        rewind the file
-               if(.not.opened)  call mseek(fd,0,'set'//char(0),ierr)
+c               if(.not.opened)  call mseek(fd,0,'set'//char(0),ierr)
                goto 30
             endif
  27      continue
 c     .  no skip it
          goto 10
-      endif  
+      endif
 
  30   ssym=sym
       sym = semi
@@ -393,13 +393,13 @@ c     write id and type
          call savefun(fd,il1,ierr)
       elseif(istk(il1).eq.13) then
          call savecfun(fd,il1,ierr)
-      elseif(istk(il1).eq.14) then 
+      elseif(istk(il1).eq.14) then
          call savelib(fd,il1,ierr)
       elseif(istk(il1).ge.15.and.istk(il1).le.17) then
  10      call savelist(fd,il1,ierr)
-      elseif(istk(il1).eq.128) then 
+      elseif(istk(il1).eq.128) then
          call saveptr(fd,il1,ierr)
-      elseif(istk(il1).eq.130) then 
+      elseif(istk(il1).eq.130) then
          call savefptr(fd,il1,ierr)
       else
 c     .  call an external function
@@ -455,13 +455,13 @@ c     read id and type
          call loadfun(fd,il1,nn,ierr)
       elseif(istk(il1).eq.13) then
          call loadcfun(fd,il1,nn,ierr)
-      elseif(istk(il1).eq.14) then 
+      elseif(istk(il1).eq.14) then
          call loadlib(fd,il1,nn,ierr)
-      elseif(istk(il1).ge.15.and.istk(il1).le.17) then   
+      elseif(istk(il1).ge.15.and.istk(il1).le.17) then
          call loadlist(fd,il1,nn,ierr)
-      elseif(istk(il1).eq.128) then 
+      elseif(istk(il1).eq.128) then
          call loadptr(fd,il1,nn,ierr)
-      elseif(istk(il1).eq.130) then 
+      elseif(istk(il1).eq.130) then
          call loadfptr(fd,il1,nn,ierr)
       else
          fun=-il1
@@ -535,9 +535,9 @@ c     write type
          call savefun(fd,il1,ierr)
       elseif(istk(il1).eq.13) then
          call savecfun(fd,il1,ierr)
-      elseif(istk(il1).eq.14) then 
+      elseif(istk(il1).eq.14) then
          call savelib(fd,il1,ierr)
-      elseif(istk(il1).ge.15.and.istk(il1).le.17) then   
+      elseif(istk(il1).ge.15.and.istk(il1).le.17) then
 c     .  a sublist
          if(istk(il1).lt.0) il1=iadr(istk(il1+1))
          if (ptover(1,psiz)) return
@@ -547,9 +547,9 @@ c     .  a sublist
          ids(3,pt)=i
          il=il1
          goto 10
-      elseif(istk(il1).eq.128) then 
+      elseif(istk(il1).eq.128) then
          call saveptr(fd,il1,ierr)
-      elseif(istk(il1).eq.130) then 
+      elseif(istk(il1).eq.130) then
          call savefptr(fd,il1,ierr)
       else
 c     .  call an external function
@@ -565,7 +565,7 @@ c     .  call an external function
       endif
       if(ierr.ne.0) return
       goto 20
-c     
+c
  30   continue
 c     end of current list reached
       if(rstk(pt).ne.408) goto 40
@@ -614,7 +614,7 @@ c     .  manage recursion
          top=top-1
          goto 20
       endif
-      
+
  10   il0=il
 c     read list header without type
       err=sadr(il+3)-lstk(bot)
@@ -667,10 +667,10 @@ c     read  type
          call loadfun(fd,il1,nne,ierr)
       elseif(istk(il1).eq.13) then
          call loadcfun(fd,il1,nne,ierr)
-      elseif(istk(il1).eq.14) then 
+      elseif(istk(il1).eq.14) then
          call loadlib(fd,il1,nne,ierr)
-      elseif(istk(il1).ge.15.and.istk(il1).le.17) then   
-c     .  a sublist 
+      elseif(istk(il1).ge.15.and.istk(il1).le.17) then
+c     .  a sublist
          if (ptover(1,psiz)) return
          rstk(pt)=408
          ids(1,pt)=n
@@ -679,9 +679,9 @@ c     .  a sublist
          ids(4,pt)=il0
          il=il1
          goto 10
-      elseif(istk(il1).eq.128) then 
+      elseif(istk(il1).eq.128) then
          call loadptr(fd,il1,nne,ierr)
-      elseif(istk(il1).eq.130) then 
+      elseif(istk(il1).eq.130) then
          call loadfptr(fd,il1,nne,ierr)
       else
 c     .  call an external function
@@ -702,7 +702,7 @@ c     *call* parse
       if(err.gt.0) ierr=1
       if(ierr.ne.0) return
       goto 20
-c     
+c
  30   continue
 c     end of current list reached
       if(rstk(pt).ne.408) goto 40
@@ -897,7 +897,7 @@ c      iadr(l)=l+l-1
       sadr(l)=(l/2)+1
 c
       fmti='il'//char(0)
-c     
+c
 c     read matrix header without type
       err=sadr(il+4)-lstk(bot)
       if(err.gt.0) then
@@ -1255,7 +1255,7 @@ c     Load a sparse matrix of boolean
       include 'stack.h'
       integer fd
       character*3 fmti,fmtd
-      integer sadr 
+      integer sadr
 
 c
 c      iadr(l)=l+l-1
@@ -1439,7 +1439,7 @@ c     Save a pointer on sparse lu factorization
 c
       integer fd
       character*3 fmti,fmtd
-c      
+c
       fmti='il'//char(0)
       fmtd='dl'//char(0)
 c
@@ -1478,7 +1478,7 @@ c     read pointer
 c      n=4+2*1
       return
       end
-      
+
       subroutine savefptr(fd,il,ierr)
 c     Copyright INRIA
 c     Save a pointer on  a primitive
index 4693989..ac53986 100644 (file)
@@ -85,7 +85,7 @@ void xls_read(int *fd, int *cur_pos,double **data, int **chainesind, int *N, int
   *err=0;
 
   *cur_pos=*cur_pos;
-  C2F(mseek) (fd, cur_pos, "set", err);
+  mseek(*fd, *cur_pos, SEEK_SET);
   if (*err > 0) goto ErrL;
 
   /* first record should be a BOF */
@@ -107,7 +107,7 @@ void xls_read(int *fd, int *cur_pos,double **data, int **chainesind, int *N, int
 
   while(1)
     {
-      C2F(mseek) (fd, cur_pos, "set", err);
+      mseek(*fd, *cur_pos, SEEK_SET);
       if (*err > 0) goto ErrL;
       /*Enregistrement de l'Opcode et de la Len du tag*/
       C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
@@ -299,7 +299,7 @@ void xls_open(int *err, int *fd, char ***sst, int *ns, char ***Sheetnames, int**
 
   /* loops on records till an EOF is found */
   while(1) {
-    C2F(mseek) (fd, &cur_pos, "set", err);
+    mseek(*fd, cur_pos, SEEK_SET);
     if (*err > 0) goto Err2;
     /*Enregistrement de l'Opcode et de la Len du tag*/
     C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
@@ -621,8 +621,17 @@ static void getString(int *fd,short *PosInRecord, short *RecordLen, int flag,cha
   /* For extended strings, skip over the extended string data*/
   /* may continuation records appear here? */
   l1=4*rt;
-  if (richString) {C2F(mseek) (fd, &l1, "cur", err);*PosInRecord+=l1;}
-  if (extendedString) {C2F(mseek) (fd, &sz, "cur", err);*PosInRecord+=sz;}
+  if (richString) 
+  {
+      mseek(*fd, l1, SEEK_CUR);
+      *PosInRecord += l1;
+  }
+  
+  if (extendedString)
+  {
+      mseek(*fd, sz, SEEK_CUR);
+      *PosInRecord += sz;
+  }
 
   /* add string terminaison */
   if (UTFEncoding) {
@@ -667,7 +676,7 @@ static void getBoundsheets(int * fd,char ***Sheetnames, int** Abspos, int *nshee
   /* Count number of boundsheets */
   ns=0;
   while(1) {
-    C2F(mseek) (fd, cur_pos, "set", err);
+    mseek(*fd, *cur_pos, SEEK_SET);
     if (*err > 0) goto ErrL;
     C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
     if (*err > 0) goto ErrL;
@@ -698,7 +707,7 @@ static void getBoundsheets(int * fd,char ***Sheetnames, int** Abspos, int *nshee
    *cur_pos=pos;
    i=-1;
    while(1) {
-     C2F(mseek) (fd, cur_pos, "set", err);
+     mseek(*fd, *cur_pos, SEEK_SET);
      if (*err > 0) goto ErrL;
      C2F(mgetnc) (fd, &Opcode, &one, typ_ushort, err);
      C2F(mgetnc) (fd, &Len, &one, typ_ushort, err);