cd & chdir factorized
[scilab.git] / scilab / modules / fileio / sci_gateway / c / sci_pwd.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2006 - INRIA - Allan CORNET
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12 #include "gw_fileio.h"
13 #include "stack-c.h"
14 #include "scicurdir.h"
15 #include "MALLOC.h"
16 #include "Scierror.h"
17 #include "localization.h"
18 /*--------------------------------------------------------------------------*/
19 int sci_pwd(char *fname,unsigned long fname_len)
20 {
21         int ierr = 0;
22         char *path = NULL;
23
24         Rhs = Max(Rhs,0);
25
26         CheckRhs(0,0);
27         CheckLhs(0,1);
28
29         path = scigetcwd(&ierr);
30
31         if (ierr)
32         {
33                 if (path) {FREE(path); path = NULL;}
34                 Scierror(998,_("%s: An error occurred.\n"), fname);
35                 return 0;
36         }
37         else
38         {
39                 int n1 = 1;
40                 int m1 = (int)strlen(path);
41
42                 n1 = 1;
43                 CreateVarFromPtr(Rhs+1, STRING_DATATYPE, &m1, &n1, &path);
44                 LhsVar(1) = Rhs+1;
45                 C2F(putlhsvar)();
46
47                 if (path) {FREE(path); path = NULL;}
48         }
49
50         return 0;
51 }
52 /*--------------------------------------------------------------------------*/