30,6 → 30,8 |
|
#include <stdio.h> |
#include <stdlib.h> |
|
#include "errors.h" |
#include "entry.h" |
#include "cmds.h" |
#include "pwd.h" |
44,11 → 46,25 |
|
int * cmd_pwd(char *argv[], cliuser_t *usr) |
{ |
if (usr->cwd) { |
printf("%s\n", usr->cwd); |
return CMD_SUCCESS; |
} else |
printf("/twilight/zone\n"); |
char *buff; |
|
buff = (char *) malloc(PATH_MAX); |
if (NULL == buff) { |
cli_error(CL_ENOMEM, "%s:", cmdname); |
return CMD_FAILURE; |
} |
|
memset(buff, 0, sizeof(buff)); |
getcwd(buff, PATH_MAX); |
|
if (! buff) { |
cli_error(CL_EFAIL, |
"Unable to determine the current working directory"); |
free(buff); |
return CMD_FAILURE; |
} else { |
printf("%s\n", buff); |
free(buff); |
return CMD_SUCCESS; |
} |
} |