Code cleanup

This commit is contained in:
Pierre Pronchery 2007-06-29 15:19:20 +00:00
parent 6095a382c9
commit e4831defec

View File

@ -22,17 +22,24 @@
/* types */ /* types */
typedef enum _pwd_flag { typedef enum _pwd_flag
{
PWD_P = 1, PWD_P = 1,
PWD_LP = 2 PWD_LP = 2
} pwd_flag; } pwd_flag;
/* pwd */ /* pwd */
static int _pwd_error(char const * message, int ret);
static int _pwd(pwd_flag pf) static int _pwd(pwd_flag pf)
{ {
char * pwd; char * pwd;
char buf[256]; #ifdef MAXPATHLEN
char buf[MAXPATHLEN];
#else
char buf[1024];
#endif
char * p; char * p;
pwd = getenv("PWD"); pwd = getenv("PWD");
@ -69,19 +76,22 @@ static int _pwd(pwd_flag pf)
} }
else else
{ {
if(getcwd(buf, 255) == NULL) if(getcwd(buf, sizeof(buf) - 1) == NULL)
{ return _pwd_error("getcwd", 1);
fputs("pwd: ", stderr); buf[sizeof(buf) - 1] = '\0';
perror("getcwd");
return 2;
}
buf[255] = '\0';
pwd = buf; pwd = buf;
} }
printf("%s\n", pwd); printf("%s\n", pwd);
return 0; return 0;
} }
static int _pwd_error(char const * message, int ret)
{
fputs("pwd: ", stderr);
perror(message);
return ret;
}
/* usage */ /* usage */
static int _usage(void) static int _usage(void)
@ -113,5 +123,5 @@ int main(int argc, char * argv[])
} }
if(optind != argc) if(optind != argc)
return _usage(); return _usage();
return _pwd(pf); return _pwd(pf) == 0 ? 0 : 2;
} }