{
    $Id$
    This file is part of the Free Pascal run time library.
    Copyright (c) 1999-2000 by Michael Van Canneyt
    member of the Free Pascal development team

    See the file COPYING.FPC, included in this distribution,
    for details about the copyright.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 **********************************************************************}

{ OS handling utilities }

{$ifdef HAS_OSERROR}
Function GetLastOSError : Integer; 
{$endif}
Procedure RaiseLastOSError;
Function GetEnvironmentVariable(Const EnvVar : String) : String;
Function GetEnvironmentVariableCount : Integer;
Function GetEnvironmentString(Index : Integer) : String;
{$IFDEF HAS_SLEEP}
procedure Sleep(milliseconds: Cardinal);
{$ENDIF}
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer;


Function GetTempDir(Global : Boolean) : String;
Function GetTempDir : String;
Function GetTempFileName(Const Dir,Prefix : String) : String; 
Function GetTempFileName : String;
Function GetAppConfigDir(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean) : String;
Function GetAppConfigFile(Global : Boolean; SubDir : Boolean) : String;
Function ApplicationName : String;

Const
  ConfigExtension : String = '.cfg';
  SysConfigDir    : String = '';   
  
Type 
  TGetAppNameEvent  = Function : String;
  TGetTempDirEvent  = Function (Global : Boolean) : String;
  TGetTempFileEvent = Function (Const Dir,Prefix : String) : String;

Var
  OnGetApplicationName : TGetAppNameEvent;
  OnGetTempDir         : TGetTempDirEvent;
  OnGetTempFile        : TGetTempFileEvent;


{
  $Log$
  Revision 1.9  2004-12-11 11:33:15  michael
  + Added GetEnvironmentVariableCount and GetEnvironmentString calls

  Revision 1.8  2004/10/10 10:28:34  michael
  + Implementation of GetTempDir and GetTempFileName

  Revision 1.7  2004/08/05 07:28:01  michael
  + Added getappconfigdir calls

  Revision 1.6  2004/02/13 13:02:21  marco
   * addition of second executeprocess prototype

  Revision 1.5  2004/02/08 11:02:40  michael
  + Implemented RaiseLastOSError

  Revision 1.4  2004/01/10 17:34:36  michael
  + Implemented sleep() on Unix.

  Revision 1.3  2004/01/05 22:37:24  florian
    * changed sysutils.exec to ExecuteProcess

  Revision 1.2  2004/01/03 08:55:58  marco
   * Exec(ansistring) function

  Revision 1.1  2003/10/06 21:01:06  peter
    * moved classes unit to rtl

  Revision 1.3  2002/09/07 16:01:22  peter
    * old logs removed and tabs fixed

}