2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
5 Desc: Get the name of the current directory.
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
, GetCurrentDirName
,
23 AROS_LHA(STRPTR
, buf
, D1
),
24 AROS_LHA(LONG
, len
, D2
),
27 struct DosLibrary
*, DOSBase
, 94, Dos
)
30 Copies the name of the current directory 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
45 Documented as returning ERROR_OBJECT_WRONG_TYPE if CLI structure
46 is not present but actually it fallbacks to NameFromLock().
57 *****************************************************************************/
61 struct Process
*me
= (struct Process
*)FindTask(NULL
);
62 struct CommandLineInterface
*cli
;
67 ASSERT_VALID_PROCESS(me
);
69 cli
= BADDR(me
->pr_CLI
);
71 return NameFromLock(me
->pr_CurrentDir
, buf
, len
);
73 cname
= AROS_BSTR_ADDR(cli
->cli_SetName
);
74 clen
= (ULONG
)AROS_BSTR_strlen(cli
->cli_SetName
);
78 me
->pr_Result2
= ERROR_LINE_TOO_LONG
;
81 CopyMem(cname
, buf
, clen
);
86 } /* GetCurrentDirName */