2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
5 Desc: Get the name of the current program.
8 #include <aros/debug.h>
10 #include <proto/exec.h>
12 #include "dos_intern.h"
15 /*****************************************************************************
18 #include <proto/dos.h>
20 AROS_LH2(BOOL
, GetProgramName
,
23 AROS_LHA(STRPTR
, buf
, D1
),
24 AROS_LHA(LONG
, len
, D2
),
27 struct DosLibrary
*, DOSBase
, 96, Dos
)
30 Copies the name of the current program from the CLI structure
31 into the buffer. If the buffer is too small the name is truncated,
32 and a failure is returned. If the current process doesn't have
33 a CLI structure, a 0 length string is put into the buffer and a
37 buf - Buffer for the name.
38 len - Size of the buffer in bytes.
41 !=0 on success, 0 on failure. IoErr() gives additional information
55 *****************************************************************************/
59 struct Process
*me
= (struct Process
*)FindTask(NULL
);
60 struct CommandLineInterface
*cli
;
65 ASSERT_VALID_PROCESS(me
);
67 cli
= BADDR(me
->pr_CLI
);
71 me
->pr_Result2
= ERROR_OBJECT_WRONG_TYPE
;
75 cname
= AROS_BSTR_ADDR(cli
->cli_CommandName
);
76 clen
= (ULONG
)AROS_BSTR_strlen(cli
->cli_CommandName
);
80 me
->pr_Result2
= ERROR_LINE_TOO_LONG
;
83 CopyMem(cname
, buf
, clen
);
88 } /* GetProgramName */