summaryrefslogtreecommitdiff
path: root/rtl/inc/uuchar.pp
blob: 550068c597de05a5fb728d58718ee247223df43e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{
    This file is part of the Free Pascal Run time library.
    Copyright (c) 2011 by the Free Pascal development team

    This unit redefines the Char type from ansichar into widechar

    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.

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

unit uuchar;

interface

  type
    char = widechar;
    pchar = pwidechar;


{$ifdef FPC_HAS_FEATURE_COMMANDARGS}
{$ifdef MSWINDOWS}
  {$define HAS_PARAMSTRU}
  {$undef FPC_HAS_FEATURE_COMMANDARGS} // Skip the implementation of ParamStr()
{$endif MSWINDOWS}
Function ParamStr(Param: Longint): UnicodeString;
  {$ifdef HAS_PARAMSTRU} external name '_FPC_ParamStrU'; {$endif}
{$endif FPC_HAS_FEATURE_COMMANDARGS}

implementation

{$ifdef FPC_HAS_FEATURE_COMMANDARGS}
Function ParamStr(Param: Longint): UnicodeString;
  begin
  {
    Paramstr(0) should return the name of the binary.
    Since this functionality is included in the system unit,
    we fetch it from there.
    Normally, pathnames are less than 255 chars anyway,
    so this will work correct in 99% of all cases.
    In time, the system unit should get a GetExeName call.
  }
    if (Param=0) then
      Paramstr:=UnicodeString(System.Paramstr(0))
    else if (Param>0) and (Param<argc) then
      paramstr:=UnicodeString(Argv[Param])
    else
      paramstr:='';
  end;
{$endif FPC_HAS_FEATURE_COMMANDARGS}

end.