Пример #1
0
char * hb_langSelectID( const char * pszID )
{
   char * pszIDOld = hb_langID();

   HB_TRACE( HB_TR_DEBUG, ( "hb_langSelectID(%s)", pszID ) );

   hb_langSelect( hb_langFind( pszID ) );

   return pszIDOld;
}
Пример #2
0
const char * hb_langSelectID( const char * pszID )
{
   const char * pszIDOld = hb_langID();
   PHB_LANG     lang;

   HB_TRACE( HB_TR_DEBUG, ( "hb_langSelectID(%s)", pszID ) );

   lang = hb_langFind( pszID );
   if( lang )
      hb_langSelect( lang );
   else
      hb_errRT_BASE( EG_ARG, 1303, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );

   return pszIDOld;
}
Пример #3
0
void hb_errInternalRaw( HB_ERRCODE errCode, const char * szText, const char * szPar1, const char * szPar2 )
{
   char buffer[ 8192 ];
   char file[ HB_PATH_MAX ];
   const char * szFile, * szInfo;
   HB_BOOL fStack, fLang;
   HB_USHORT uiLine;
   int iLevel;
   FILE * hLog;

   HB_TRACE( HB_TR_DEBUG, ( "hb_errInternal(%d, %s, %s, %s)", errCode, szText, szPar1, szPar2 ) );

   if( szPar1 == NULL )
      szPar1 = "";

   if( szPar2 == NULL )
      szPar2 = "";

   fStack = hb_stackId() != NULL;
   fLang = fStack && hb_langID() != NULL;

   szFile = fStack ? hb_setGetCPtr( HB_SET_HBOUTLOG ) : NULL;
   if( ! szFile )
      szFile = "hb_out.log";

   hLog = hb_fopen( szFile, "a+" );
   if( hLog )
   {
      char szTime[ 9 ];
      int  iYear, iMonth, iDay;

      hb_dateToday( &iYear, &iMonth, &iDay );
      hb_dateTimeStr( szTime );

      fprintf( hLog, "Application Internal Error - %s\n", hb_cmdargARGVN( 0 ) );
      fprintf( hLog, "Terminated at: %04d-%02d-%02d %s\n", iYear, iMonth, iDay, szTime );
      szInfo = fStack ? hb_setGetCPtr( HB_SET_HBOUTLOGINFO ) : NULL;
      if( szInfo && *szInfo )
         fprintf( hLog, "Info: %s\n", szInfo );
   }

   hb_conOutErr( hb_conNewLine(), 0 );
   if( fLang )
      hb_snprintf( buffer, sizeof( buffer ), hb_langDGetItem( HB_LANG_ITEM_BASE_ERRINTR ), errCode );
   else
      hb_snprintf( buffer, sizeof( buffer ), "Unrecoverable error %d: ", errCode );

   hb_conOutErr( buffer, 0 );
   if( hLog )
      fprintf( hLog, "%s", buffer );

   if( ! szText && fLang )
      szText = hb_langDGetItem( HB_LANG_ITEM_BASE_ERRINTR + errCode - 9000 );

   if( szText )
      hb_snprintf( buffer, sizeof( buffer ), szText, szPar1, szPar2 );
   else
      buffer[ 0 ] = '\0';

   hb_conOutErr( buffer, 0 );
   hb_conOutErr( hb_conNewLine(), 0 );
   if( hLog )
      fprintf( hLog, "%s\n", buffer );

   if( fStack && hb_stackTotalItems() )
   {
      iLevel = 0;
      while( hb_procinfo( iLevel++, buffer, &uiLine, file ) )
      {
         char msg[ HB_SYMBOL_NAME_LEN + HB_SYMBOL_NAME_LEN + 32 ];

         hb_snprintf( msg, sizeof( msg ), "Called from %s(%hu)%s%s\n", buffer, uiLine, *file ? " in " : "", file );

         hb_conOutErr( msg, 0 );
         if( hLog )
            fprintf( hLog, "%s", msg );
      }
   }

   if( hLog )
   {
      fprintf( hLog, "------------------------------------------------------------------------\n" );
      fclose( hLog );
   }
}