Fixed time command segfault with no arguments
[busybox4maemo] / libbb / isdirectory.c
1 /* vi: set sw=4 ts=4: */
2 /*
3  * Utility routines.
4  *
5  * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
6  * Permission has been granted to redistribute this code under the GPL.
7  *
8  * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
9  */
10
11 #include <sys/stat.h>
12 #include "libbb.h"
13
14 /*
15  * Return TRUE if fileName is a directory.
16  * Nonexistent files return FALSE.
17  */
18 int is_directory(const char *fileName, const int followLinks, struct stat *statBuf)
19 {
20         int status;
21         struct stat astatBuf;
22
23         if (statBuf == NULL) {
24                 /* use auto stack buffer */
25                 statBuf = &astatBuf;
26         }
27
28         if (followLinks)
29                 status = stat(fileName, statBuf);
30         else
31                 status = lstat(fileName, statBuf);
32
33         status = (status == 0 && S_ISDIR(statBuf->st_mode));
34
35         return status;
36 }