Add missing header removed in https://codereview.scilab.org/#/c/10464/ 73/10573/1
Vincent COUVERT [Fri, 22 Feb 2013 10:37:25 +0000 (11:37 +0100)]
Change-Id: I6ed295c1a21d8b38b66da164182687a407b52b61

scilab/modules/dynamic_link/src/c/dynamic_link.c

index 64d1bac..de9e91a 100644 (file)
@@ -2,17 +2,17 @@
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) INRIA/ENPC
 * Copyright (C) DIGITEO - 2011 - 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    
+* are also available at
 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 *
 */
 
 /*---------------------------------------------------------------------------*/
-#include <string.h> 
+#include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include "dynamic_link.h"
@@ -28,6 +28,7 @@
 #include "FileExist.h"
 #include "ilib_verbose.h"
 #ifdef _MSC_VER
+#include "getenvc.h"
 #include "dllinfo.h"
 #endif
 #include "getshortpathname.h"
@@ -37,7 +38,7 @@
 static void Underscores(int isfor, char *ename, char *ename1);
 static int SearchFandS(char *op, int ilib);
 /*---------------------------------------------------------------------------*/
-#define MAXNAME  256 
+#define MAXNAME  256
 #define TMPL 256
 #define debug C2F(iop).ddt==1
 /*---------------------------------------------------------------------------*/
@@ -45,15 +46,17 @@ static int SearchFandS(char *op, int ilib);
 /* struct used by fortran (F2C) */
 /* required to be defined in C */
 
-typedef struct {
-    char name[nlgh+1];
+typedef struct
+{
+    char name[nlgh + 1];
 } CINTER_struct;
 
 __declspec (dllexport) CINTER_struct C2F(cinter);
 
 /* struct used by fortran (F2C) */
 /* required to be defined in C */
-typedef struct {
+typedef struct
+{
     int ibuf[lsiz];
 } IBFU_struct;
 __declspec (dllexport) CINTER_struct C2F(ibfu);
@@ -64,14 +67,14 @@ typedef char Name[MAXNAME];   /* could be changed to dynamic structure */
 
 typedef void (*function) ();
 
-typedef struct 
-{ 
-    function epoint;            /* the entry point */ 
+typedef struct
+{
+    function epoint;            /* the entry point */
     Name     name;              /* entry point name */
     int      Nshared;           /* number of the shared file */
 } Epoints;
 
-typedef struct 
+typedef struct
 {
     int ok;
     char tmp_file[TMPL];
@@ -84,26 +87,26 @@ static int NEpoints = 0; /* Number of Linked names */
 static Epoints EP[ENTRYMAX];  /* entryPoints */
 /*---------------------------------------------------------------------------*/
 int scilabLink(int idsharedlibrary,
-    char *filename,
-    char **subnamesarray,int sizesubnamesarray,
-    BOOL fflag,int *ierr)
+               char *filename,
+               char **subnamesarray, int sizesubnamesarray,
+               BOOL fflag, int *ierr)
 {
-    int IdSharedLib = -1; 
+    int IdSharedLib = -1;
 
     initializeLink();
 
-    if (idsharedlibrary == -1) 
+    if (idsharedlibrary == -1)
     {
         IdSharedLib = Sci_dlopen(filename);
-    } 
-    else 
+    }
+    else
     {
         IdSharedLib = idsharedlibrary;
     }
 
-    if (IdSharedLib == -1 ) 
+    if (IdSharedLib == -1 )
     {
-        if ( getWarningMode() ) 
+        if ( getWarningMode() )
         {
 #ifdef _MSC_VER
             if (isDll(filename))
@@ -135,15 +138,15 @@ int scilabLink(int idsharedlibrary,
                 {
                     if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
                     {
-                        sciprint(_("%s: The file %s does not exist in PATH environment.\n" ),"link", filename);
+                        sciprint(_("%s: The file %s does not exist in PATH environment.\n" ), "link", filename);
                     }
                 }
             }
 #else
             if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
             {
-                sciprint(_("Link failed for dynamic library '%s'.\n"),filename);
-                sciprint(_("An error occurred: %s\n"),GetLastDynLibError());
+                sciprint(_("Link failed for dynamic library '%s'.\n"), filename);
+                sciprint(_("An error occurred: %s\n"), GetLastDynLibError());
             }
 #endif
         }
@@ -151,7 +154,7 @@ int scilabLink(int idsharedlibrary,
         return IdSharedLib;
     }
 
-    if ( (idsharedlibrary == -1) && (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)) 
+    if ( (idsharedlibrary == -1) && (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT))
     {
         sciprint(_("Shared archive loaded.\n"));
         sciprint(_("Link done.\n"));
@@ -161,18 +164,21 @@ int scilabLink(int idsharedlibrary,
     {
         int errorcode = 0;
         int i = 0;
-        for(i = 0; i < sizesubnamesarray ; i++)
+        for (i = 0; i < sizesubnamesarray ; i++)
         {
-            if (fflag) 
+            if (fflag)
             {
-                errorcode = Sci_dlsym(subnamesarray[i],IdSharedLib,"f");
+                errorcode = Sci_dlsym(subnamesarray[i], IdSharedLib, "f");
             }
-            else 
+            else
             {
-                errorcode = Sci_dlsym(subnamesarray[i],IdSharedLib,"c");
+                errorcode = Sci_dlsym(subnamesarray[i], IdSharedLib, "c");
             }
 
-            if (errorcode < 0) *ierr = errorcode;
+            if (errorcode < 0)
+            {
+                *ierr = errorcode;
+            }
         }
     }
     return IdSharedLib;
@@ -184,20 +190,20 @@ int *getAllIdSharedLib(int *sizeList)
     int i = 0;
 
     *sizeList = 0;
-    for ( i = 0 ; i < Nshared ; i++) 
+    for ( i = 0 ; i < Nshared ; i++)
     {
-        if ( hd[i].ok == TRUE) 
+        if ( hd[i].ok == TRUE)
         {
             (*sizeList)++;
             if (ListId)
             {
-                ListId = (int *)REALLOC(ListId,(*sizeList)*sizeof(int));
-                ListId[(*sizeList)-1] = i;
+                ListId = (int *)REALLOC(ListId, (*sizeList) * sizeof(int));
+                ListId[(*sizeList) - 1] = i;
             }
             else
             {
-                ListId = (int *)MALLOC((*sizeList)*sizeof(int));
-                ListId[(*sizeList)-1] = i;
+                ListId = (int *)MALLOC((*sizeList) * sizeof(int));
+                ListId[(*sizeList) - 1] = i;
             }
         }
     }
@@ -212,20 +218,20 @@ char **getNamesOfFunctionsInSharedLibraries(int *sizearray)
     if ( (NEpoints) && (NEpoints > 0) )
     {
         int i = 0;
-        NamesOfFunctions = (char **) MALLOC((NEpoints)*sizeof(char *));
+        NamesOfFunctions = (char **) MALLOC((NEpoints) * sizeof(char *));
         if (NamesOfFunctions)
         {
-            for ( i = NEpoints-1 ; i >= 0 ; i--) 
+            for ( i = NEpoints - 1 ; i >= 0 ; i--)
             {
                 if (EP[i].name)
                 {
-                    char *EntryName = (char *)MALLOC(((int)strlen(EP[i].name)+1)*sizeof(char));
+                    char *EntryName = (char *)MALLOC(((int)strlen(EP[i].name) + 1) * sizeof(char));
 
                     if (EntryName)
                     {
                         (*sizearray)++;
                         strcpy(EntryName , EP[i].name);
-                        NamesOfFunctions[(*sizearray)-1] = EntryName;
+                        NamesOfFunctions[(*sizearray) - 1] = EntryName;
                     }
                 }
             }
@@ -235,17 +241,21 @@ char **getNamesOfFunctionsInSharedLibraries(int *sizearray)
 }
 /*---------------------------------------------------------------------------*/
 /**
-* Underscores : deals with the trailing _ 
-* in entry names 
+* Underscores : deals with the trailing _
+* in entry names
 */
 static void Underscores(int isfor, char *ename, char *ename1)
 {
 #ifdef WLU1
-    *ename1='_'; ename1++;
+    *ename1 = '_';
+    ename1++;
 #endif
-    strcpy(ename1,ename);
+    strcpy(ename1, ename);
 #ifdef WTU
-    if (isfor==1) strcat(ename1,"_");
+    if (isfor == 1)
+    {
+        strcat(ename1, "_");
+    }
 #endif
     return;
 }
@@ -256,42 +266,57 @@ void initializeLink(void)
     int i;
     if ( first_entry == 0)
     {
-        for ( i = 0 ; i < ENTRYMAX ; i++) 
+        for ( i = 0 ; i < ENTRYMAX ; i++)
         {
-            hd[i].ok= FALSE;
+            hd[i].ok = FALSE;
             hd[i].shl = EP[i].Nshared = -1;
         }
         first_entry++;
     }
 }
 /*---------------------------------------------------------------------------*/
-BOOL c_link(char *routinename,int *ilib)
+BOOL c_link(char *routinename, int *ilib)
 {
     void (*loc)();
-    if ( *ilib != -1 ) *ilib = SearchFandS(routinename,*ilib);
-    else *ilib = SearchInDynLinks(routinename,&loc);
+    if ( *ilib != -1 )
+    {
+        *ilib = SearchFandS(routinename, *ilib);
+    }
+    else
+    {
+        *ilib = SearchInDynLinks(routinename, &loc);
+    }
 
-    if (*ilib == -1) return FALSE;
+    if (*ilib == -1)
+    {
+        return FALSE;
+    }
     return TRUE;
 }
 /*---------------------------------------------------------------------------*/
 void C2F(iislink)(char *routinename, int *ilib)
 {
-    c_link(routinename,ilib);
+    c_link(routinename, ilib);
 }
 /*---------------------------------------------------------------------------*/
 void GetDynFunc(int ii, void (**realop) ())
 {
-    if ( EP[ii].Nshared != -1 ) *realop = EP[ii].epoint;
-    else *realop = (function) 0;
+    if ( EP[ii].Nshared != -1 )
+    {
+        *realop = EP[ii].epoint;
+    }
+    else
+    {
+        *realop = (function) 0;
+    }
 }
 /*---------------------------------------------------------------------------*/
 int SearchInDynLinks(char *op, void (**realop) ())
 {
-    int i=0;
-    for ( i = NEpoints-1 ; i >=0 ; i--) 
+    int i = 0;
+    for ( i = NEpoints - 1 ; i >= 0 ; i--)
     {
-        if ( strcmp(op,EP[i].name) == 0) 
+        if ( strcmp(op, EP[i].name) == 0)
         {
             *realop = EP[i].epoint;
             return(EP[i].Nshared );
@@ -301,15 +326,15 @@ int SearchInDynLinks(char *op, void (**realop) ())
 }
 /*---------------------------------------------------------------------------*/
 /**
-* Search a (function,libid) in the table 
-* Search from end to top 
+* Search a (function,libid) in the table
+* Search from end to top
 */
 static int SearchFandS(char *op, int ilib)
 {
     int i = 0;
-    for ( i = NEpoints-1 ; i >=0 ; i--) 
+    for ( i = NEpoints - 1 ; i >= 0 ; i--)
     {
-        if ( strcmp(op,EP[i].name) == 0 && EP[i].Nshared == ilib)
+        if ( strcmp(op, EP[i].name) == 0 && EP[i].Nshared == ilib)
         {
             return(i);
         }
@@ -319,48 +344,58 @@ static int SearchFandS(char *op, int ilib)
 /*---------------------------------------------------------------------------*/
 void ShowDynLinks(void)
 {
-    int i=0,count=0;
-    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) sciprint(_("Number of entry points %d.\nShared libraries :\n"),NEpoints);
-    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) sciprint("[ ");
-    for ( i = 0 ; i < Nshared ; i++) 
-    {
-        if ( hd[i].ok == TRUE) 
-        { 
-            if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) 
+    int i = 0, count = 0;
+    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+    {
+        sciprint(_("Number of entry points %d.\nShared libraries :\n"), NEpoints);
+    }
+    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+    {
+        sciprint("[ ");
+    }
+    for ( i = 0 ; i < Nshared ; i++)
+    {
+        if ( hd[i].ok == TRUE)
+        {
+            if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
             {
-                sciprint("%d ",i);count++;
+                sciprint("%d ", i);
+                count++;
             }
         }
     }
 
-    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) 
+    if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
     {
         if ( (count == 1) || (count == 0) )
         {
-            sciprint(_("] : %d library.\n"),count);
+            sciprint(_("] : %d library.\n"), count);
         }
         else
         {
-            sciprint(_("] : %d libraries.\n"),count);
+            sciprint(_("] : %d libraries.\n"), count);
         }
     }
 
-    for ( i = NEpoints-1 ; i >=0 ; i--) 
+    for ( i = NEpoints - 1 ; i >= 0 ; i--)
     {
-        if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) sciprint(_("Entry point %s in shared library %d.\n"),EP[i].name,EP[i].Nshared);
+        if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+        {
+            sciprint(_("Entry point %s in shared library %d.\n"), EP[i].name, EP[i].Nshared);
+        }
     }
 }
 /*---------------------------------------------------------------------------*/
 void unlinkallsharedlib(void)
 {
-    int i=0;
-    for ( i = 0 ; i < Nshared ; i++) 
+    int i = 0;
+    for ( i = 0 ; i < Nshared ; i++)
     {
         unlinksharedlib(&i);
     }
 }
 /*---------------------------------------------------------------------------*/
-void unlinksharedlib(int *i) 
+void unlinksharedlib(int *i)
 {
     /* delete entry points in shared lib *i */
     Sci_Delsym(*i);
@@ -388,11 +423,14 @@ int Sci_dlopen( char *loaded_file)
     hd1 = LoadDynLibrary (loaded_file);
 #endif
 
-    if ( hd1 == NULL )  return -1 ; /* the shared archive was not loaded. */
+    if ( hd1 == NULL )
+    {
+        return -1 ;    /* the shared archive was not loaded. */
+    }
 
-    for ( i = 0 ; i < Nshared ; i++ ) 
+    for ( i = 0 ; i < Nshared ; i++ )
     {
-        if ( hd[i].ok == FALSE) 
+        if ( hd[i].ok == FALSE)
         {
             hd[i].shl =  (unsigned long long)hd1;
             hd[i].ok = TRUE;
@@ -400,9 +438,12 @@ int Sci_dlopen( char *loaded_file)
         }
     }
 
-    if ( Nshared == ENTRYMAX ) 
+    if ( Nshared == ENTRYMAX )
     {
-        if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) sciprint(_("Cannot open shared files max entry %d reached.\n"),ENTRYMAX);
+        if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+        {
+            sciprint(_("Cannot open shared files max entry %d reached.\n"), ENTRYMAX);
+        }
         return(FALSE);
     }
 
@@ -410,20 +451,26 @@ int Sci_dlopen( char *loaded_file)
     hd[Nshared].ok = TRUE;
     Nshared ++;
 
-    return Nshared-1;
+    return Nshared - 1;
 }
 /*---------------------------------------------------------------------------*/
-int Sci_dlsym(char *ename,int ishared,char *strf)
+int Sci_dlsym(char *ename, int ishared, char *strf)
 {
     DynLibHandle hd1 = NULL;
-    int ish = Min(Max(0,ishared),ENTRYMAX-1);
+    int ish = Min(Max(0, ishared), ENTRYMAX - 1);
     char enamebuf[MAXNAME];
 
-    if ( strf[0] == 'f' ) Underscores(1,ename,enamebuf);
-    else Underscores(0,ename,enamebuf);
+    if ( strf[0] == 'f' )
+    {
+        Underscores(1, ename, enamebuf);
+    }
+    else
+    {
+        Underscores(0, ename, enamebuf);
+    }
 
     /* lookup the address of the function to be called */
-    if ( NEpoints == ENTRYMAX ) 
+    if ( NEpoints == ENTRYMAX )
     {
         return -1;
     }
@@ -432,46 +479,52 @@ int Sci_dlsym(char *ename,int ishared,char *strf)
         return -3;
     }
     /** entry was previously loaded **/
-    if ( SearchFandS(ename,ish) >= 0 ) 
+    if ( SearchFandS(ename, ish) >= 0 )
     {
-        sciprint(_("Entry name %s.\n"),ename);
+        sciprint(_("Entry name %s.\n"), ename);
         return -4;
     }
     else
     {
         hd1 = (DynLibHandle)hd[ish].shl;
-        EP[NEpoints].epoint = (function) GetDynLibFuncPtr (hd1,enamebuf);
+        EP[NEpoints].epoint = (function) GetDynLibFuncPtr (hd1, enamebuf);
         if ( EP[NEpoints].epoint == NULL )
         {
-            if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT) sciprint(_("%s is not an entry point.\n"),enamebuf);
+            if (getIlibVerboseLevel() != ILIB_VERBOSE_NO_OUTPUT)
+            {
+                sciprint(_("%s is not an entry point.\n"), enamebuf);
+            }
             return -5;
         }
-        else 
+        else
         {
             /* we don't add the _ in the table */
-            if (debug) sciprint(_("Linking %s.\n"), ename);
-            strncpy(EP[NEpoints].name,ename,MAXNAME);
+            if (debug)
+            {
+                sciprint(_("Linking %s.\n"), ename);
+            }
+            strncpy(EP[NEpoints].name, ename, MAXNAME);
             EP[NEpoints].Nshared = ish;
             NEpoints++;
         }
     }
-    return 0;  
+    return 0;
 }
 /*---------------------------------------------------------------------------*/
-void Sci_Delsym(int ishared) 
+void Sci_Delsym(int ishared)
 {
-    int ish = Min(Max(0,ishared),ENTRYMAX-1);
-    int i=0;
-    for ( i = NEpoints-1 ; i >=0 ; i--) 
+    int ish = Min(Max(0, ishared), ENTRYMAX - 1);
+    int i = 0;
+    for ( i = NEpoints - 1 ; i >= 0 ; i--)
     {
         if ( EP[i].Nshared == ish )
         {
             int j;
             for ( j = i ; j <= NEpoints - 2 ; j++ )
             {
-                EP[j].epoint = EP[j+1].epoint;
-                EP[j].Nshared = EP[j+1].Nshared;
-                strcpy(EP[j].name,EP[j+1].name);
+                EP[j].epoint = EP[j + 1].epoint;
+                EP[j].Nshared = EP[j + 1].Nshared;
+                strcpy(EP[j].name, EP[j + 1].name);
             }
             NEpoints--;
         }