Coverage Report

Created: 2026-08-14 08:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/log4cplus/src/fileinfo.cxx
Line
Count
Source
1
// -*- C++ -*-
2
//
3
//  Copyright (C) 2012-2017, Vaclav Zeman. All rights reserved.
4
//
5
//  Redistribution and use in source and binary forms, with or without modifica-
6
//  tion, are permitted provided that the following conditions are met:
7
//
8
//  1. Redistributions of  source code must  retain the above copyright  notice,
9
//     this list of conditions and the following disclaimer.
10
//
11
//  2. Redistributions in binary form must reproduce the above copyright notice,
12
//     this list of conditions and the following disclaimer in the documentation
13
//     and/or other materials provided with the distribution.
14
//
15
//  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
16
//  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
17
//  FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
18
//  APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
19
//  INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
20
//  DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
21
//  OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
22
//  ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
23
//  (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
24
//  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26
#include <log4cplus/config.hxx>
27
#include <log4cplus/helpers/fileinfo.h>
28
29
#ifdef LOG4CPLUS_HAVE_SYS_TYPES_H
30
#include <sys/types.h>
31
#endif
32
#ifdef LOG4CPLUS_HAVE_SYS_STAT_H
33
#include <sys/stat.h>
34
#endif
35
36
#if defined (_WIN32)
37
#include <tchar.h>
38
#include <log4cplus/config/windowsh-inc.h>
39
#endif
40
41
42
namespace log4cplus { namespace helpers {
43
44
45
int
46
getFileInfo (FileInfo * fi, tstring const & name)
47
0
{
48
#if defined (_WIN32)
49
    struct _stat fileStatus;
50
    if (_tstat (name.c_str (), &fileStatus) == -1)
51
        return -1;
52
53
    fi->mtime = helpers::from_time_t (fileStatus.st_mtime);
54
    fi->is_link = false;
55
    fi->size = fileStatus.st_size;
56
57
#else
58
0
    struct stat fileStatus;
59
0
    if (stat (LOG4CPLUS_TSTRING_TO_STRING (name).c_str (),
60
0
            &fileStatus) == -1)
61
0
        return -1;
62
63
0
    fi->mtime = helpers::from_time_t (fileStatus.st_mtime);
64
0
    fi->is_link = S_ISLNK (fileStatus.st_mode);
65
0
    fi->size = fileStatus.st_size;
66
67
0
#endif
68
69
0
    return 0;
70
0
}
71
72
} } // namespace log4cplus { namespace helpers {