/*--------------------------------------------------------------------------*/
BOOL IsTheGoodShell(void)
{
    char shellCmd[PATH_MAX];
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];

    strcpy(shellCmd, "");
    strcpy(fname, "");
    GetEnvironmentVariable("ComSpec", shellCmd, PATH_MAX);
    os_splitpath(shellCmd, drive, dir, fname, ext);

    if (_stricmp(fname, "cmd") == 0)
    {
        return TRUE;
    }

    return FALSE;
}
Esempio n. 2
0
pstr  STDCALL os_filefullname( pstr filename, pstr result )
{
   pubyte  ptr;

#ifdef LINUX
   //ubyte       exename[512];
   //ubyte       proname[ 512 ];
   pstr p_drive,p_path,p_fname,p_fext,p_slesh;
   ubyte ffn_drive[FILENAME_MAX+1];
   ubyte ffn_path[PATH_MAX+1];
   ubyte ffn_fname[FILENAME_MAX+1];
   ubyte ffn_fext[FILENAME_MAX+1];


   os_splitpath(str_ptr(filename),ffn_drive,ffn_path,ffn_fname,ffn_fext);
   p_slesh = str_new((pubyte)"/");
   if (strlen(ffn_path)==0)
   {
     char  cur[512];
     getcwd( cur, 512 );
     p_path = str_new(cur);
     str_add(p_path,p_slesh);
   }
   else
     p_path = str_new(ffn_path);

   p_fname = str_new(ffn_fname);
   p_fext = str_new(ffn_fext);

   str_add(result,p_path);

   str_add(result,p_fname);
   str_add(result,p_fext);
   str_destroy(p_path);
   str_destroy(p_slesh);
   str_destroy(p_fname);
   str_destroy(p_fext);
/*   char  cur[512];
   if ( filename[0] != '/' )
   {
      getcwd( cur, 512 );
      chdir( filename );
      basename( filename );
      getcwd( str_ptr( ( pstr )buf ), 512 );
      str_setlen( ( pstr )buf, strlen( str_ptr( ( pstr )buf ) ) );
      str_appendb( buf, '/' );
       str_appendp( buf, filename );
      chdir( cur );
   }
   else
   { //Ìîæåò ðàáîòàòü íåêîððåêòíî åñëè â àáñîëþòíîì ïóòè âñòðå÷àþòñÿ '.' '..'
       str_appendp( buf, filename );
   }
*/
#else
   uint len;
   str_reserve( result, 512 );

   len = GetFullPathName(str_ptr(filename), 512, str_ptr(result), &ptr );
   // äëÿ Windows
   str_setlen(result, len);
#endif
   return result;
}