Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
spdlog
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
spdlog
Commits
a8f72424
Commit
a8f72424
authored
Oct 21, 2019
by
gabime
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'Issue-1248' of
https://github.com/gabime/spdlog
into Issue-1248
parents
31ed1339
d3c6974e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
32 deletions
+32
-32
os-inl.h
include/spdlog/details/os-inl.h
+30
-30
os.h
include/spdlog/details/os.h
+1
-1
utils.cpp
tests/utils.cpp
+1
-1
No files found.
include/spdlog/details/os-inl.h
View file @
a8f72424
...
@@ -94,17 +94,17 @@ SPDLOG_INLINE std::tm localtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT
...
@@ -94,17 +94,17 @@ SPDLOG_INLINE std::tm localtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT
#ifdef _WIN32
#ifdef _WIN32
std
::
tm
tm
;
std
::
tm
tm
;
localtime_s
(
&
tm
,
&
time_tt
);
::
localtime_s
(
&
tm
,
&
time_tt
);
#else
#else
std
::
tm
tm
;
std
::
tm
tm
;
localtime_r
(
&
time_tt
,
&
tm
);
::
localtime_r
(
&
time_tt
,
&
tm
);
#endif
#endif
return
tm
;
return
tm
;
}
}
SPDLOG_INLINE
std
::
tm
localtime
()
SPDLOG_NOEXCEPT
SPDLOG_INLINE
std
::
tm
localtime
()
SPDLOG_NOEXCEPT
{
{
std
::
time_t
now_t
=
time
(
nullptr
);
std
::
time_t
now_t
=
::
time
(
nullptr
);
return
localtime
(
now_t
);
return
localtime
(
now_t
);
}
}
...
@@ -113,17 +113,17 @@ SPDLOG_INLINE std::tm gmtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT
...
@@ -113,17 +113,17 @@ SPDLOG_INLINE std::tm gmtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT
#ifdef _WIN32
#ifdef _WIN32
std
::
tm
tm
;
std
::
tm
tm
;
gmtime_s
(
&
tm
,
&
time_tt
);
::
gmtime_s
(
&
tm
,
&
time_tt
);
#else
#else
std
::
tm
tm
;
std
::
tm
tm
;
gmtime_r
(
&
time_tt
,
&
tm
);
::
gmtime_r
(
&
time_tt
,
&
tm
);
#endif
#endif
return
tm
;
return
tm
;
}
}
SPDLOG_INLINE
std
::
tm
gmtime
()
SPDLOG_NOEXCEPT
SPDLOG_INLINE
std
::
tm
gmtime
()
SPDLOG_NOEXCEPT
{
{
std
::
time_t
now_t
=
time
(
nullptr
);
std
::
time_t
now_t
=
::
time
(
nullptr
);
return
gmtime
(
now_t
);
return
gmtime
(
now_t
);
}
}
...
@@ -132,13 +132,13 @@ SPDLOG_INLINE void prevent_child_fd(FILE *f)
...
@@ -132,13 +132,13 @@ SPDLOG_INLINE void prevent_child_fd(FILE *f)
#ifdef _WIN32
#ifdef _WIN32
#if !defined(__cplusplus_winrt)
#if !defined(__cplusplus_winrt)
auto
file_handle
=
reinterpret_cast
<
HANDLE
>
(
_get_osfhandle
(
_fileno
(
f
)));
auto
file_handle
=
reinterpret_cast
<
HANDLE
>
(
_get_osfhandle
(
::
_fileno
(
f
)));
if
(
!::
SetHandleInformation
(
file_handle
,
HANDLE_FLAG_INHERIT
,
0
))
if
(
!::
SetHandleInformation
(
file_handle
,
HANDLE_FLAG_INHERIT
,
0
))
SPDLOG_THROW
(
spdlog_ex
(
"SetHandleInformation failed"
,
errno
));
SPDLOG_THROW
(
spdlog_ex
(
"SetHandleInformation failed"
,
errno
));
#endif
#endif
#else
#else
auto
fd
=
fileno
(
f
);
auto
fd
=
::
fileno
(
f
);
if
(
fcntl
(
fd
,
F_SETFD
,
FD_CLOEXEC
)
==
-
1
)
if
(
::
fcntl
(
fd
,
F_SETFD
,
FD_CLOEXEC
)
==
-
1
)
{
{
SPDLOG_THROW
(
spdlog_ex
(
"fcntl with FD_CLOEXEC failed"
,
errno
));
SPDLOG_THROW
(
spdlog_ex
(
"fcntl with FD_CLOEXEC failed"
,
errno
));
}
}
...
@@ -150,12 +150,12 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
...
@@ -150,12 +150,12 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
{
{
#ifdef _WIN32
#ifdef _WIN32
#ifdef SPDLOG_WCHAR_FILENAMES
#ifdef SPDLOG_WCHAR_FILENAMES
*
fp
=
_wfsopen
((
filename
.
c_str
()),
mode
.
c_str
(),
_SH_DENYNO
);
*
fp
=
::
_wfsopen
((
filename
.
c_str
()),
mode
.
c_str
(),
_SH_DENYNO
);
#else
#else
*
fp
=
_fsopen
((
filename
.
c_str
()),
mode
.
c_str
(),
_SH_DENYNO
);
*
fp
=
::
_fsopen
((
filename
.
c_str
()),
mode
.
c_str
(),
_SH_DENYNO
);
#endif
#endif
#else // unix
#else // unix
*
fp
=
fopen
((
filename
.
c_str
()),
mode
.
c_str
());
*
fp
=
::
fopen
((
filename
.
c_str
()),
mode
.
c_str
());
#endif
#endif
#ifdef SPDLOG_PREVENT_CHILD_FD
#ifdef SPDLOG_PREVENT_CHILD_FD
...
@@ -170,7 +170,7 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
...
@@ -170,7 +170,7 @@ SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename
SPDLOG_INLINE
int
remove
(
const
filename_t
&
filename
)
SPDLOG_NOEXCEPT
SPDLOG_INLINE
int
remove
(
const
filename_t
&
filename
)
SPDLOG_NOEXCEPT
{
{
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
return
_wremove
(
filename
.
c_str
());
return
::
_wremove
(
filename
.
c_str
());
#else
#else
return
std
::
remove
(
filename
.
c_str
());
return
std
::
remove
(
filename
.
c_str
());
#endif
#endif
...
@@ -184,7 +184,7 @@ SPDLOG_INLINE int remove_if_exists(const filename_t &filename) SPDLOG_NOEXCEPT
...
@@ -184,7 +184,7 @@ SPDLOG_INLINE int remove_if_exists(const filename_t &filename) SPDLOG_NOEXCEPT
SPDLOG_INLINE
int
rename
(
const
filename_t
&
filename1
,
const
filename_t
&
filename2
)
SPDLOG_NOEXCEPT
SPDLOG_INLINE
int
rename
(
const
filename_t
&
filename1
,
const
filename_t
&
filename2
)
SPDLOG_NOEXCEPT
{
{
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
return
_wrename
(
filename1
.
c_str
(),
filename2
.
c_str
());
return
::
_wrename
(
filename1
.
c_str
(),
filename2
.
c_str
());
#else
#else
return
std
::
rename
(
filename1
.
c_str
(),
filename2
.
c_str
());
return
std
::
rename
(
filename1
.
c_str
(),
filename2
.
c_str
());
#endif
#endif
...
@@ -195,9 +195,9 @@ SPDLOG_INLINE bool file_exists(const filename_t &filename) SPDLOG_NOEXCEPT
...
@@ -195,9 +195,9 @@ SPDLOG_INLINE bool file_exists(const filename_t &filename) SPDLOG_NOEXCEPT
{
{
#ifdef _WIN32
#ifdef _WIN32
#ifdef SPDLOG_WCHAR_FILENAMES
#ifdef SPDLOG_WCHAR_FILENAMES
auto
attribs
=
GetFileAttributesW
(
filename
.
c_str
());
auto
attribs
=
::
GetFileAttributesW
(
filename
.
c_str
());
#else
#else
auto
attribs
=
GetFileAttributesA
(
filename
.
c_str
());
auto
attribs
=
::
GetFileAttributesA
(
filename
.
c_str
());
#endif
#endif
return
attribs
!=
INVALID_FILE_ATTRIBUTES
;
return
attribs
!=
INVALID_FILE_ATTRIBUTES
;
#else // common linux/unix all have the stat system call
#else // common linux/unix all have the stat system call
...
@@ -214,16 +214,16 @@ SPDLOG_INLINE size_t filesize(FILE *f)
...
@@ -214,16 +214,16 @@ SPDLOG_INLINE size_t filesize(FILE *f)
SPDLOG_THROW
(
spdlog_ex
(
"Failed getting file size. fd is null"
));
SPDLOG_THROW
(
spdlog_ex
(
"Failed getting file size. fd is null"
));
}
}
#if defined(_WIN32) && !defined(__CYGWIN__)
#if defined(_WIN32) && !defined(__CYGWIN__)
int
fd
=
_fileno
(
f
);
int
fd
=
::
_fileno
(
f
);
#if _WIN64 // 64 bits
#if _WIN64 // 64 bits
__int64
ret
=
_filelengthi64
(
fd
);
__int64
ret
=
::
_filelengthi64
(
fd
);
if
(
ret
>=
0
)
if
(
ret
>=
0
)
{
{
return
static_cast
<
size_t
>
(
ret
);
return
static_cast
<
size_t
>
(
ret
);
}
}
#else // windows 32 bits
#else // windows 32 bits
long
ret
=
_filelength
(
fd
);
long
ret
=
::
_filelength
(
fd
);
if
(
ret
>=
0
)
if
(
ret
>=
0
)
{
{
return
static_cast
<
size_t
>
(
ret
);
return
static_cast
<
size_t
>
(
ret
);
...
@@ -231,7 +231,7 @@ SPDLOG_INLINE size_t filesize(FILE *f)
...
@@ -231,7 +231,7 @@ SPDLOG_INLINE size_t filesize(FILE *f)
#endif
#endif
#else // unix
#else // unix
int
fd
=
fileno
(
f
);
int
fd
=
::
fileno
(
f
);
// 64 bits(but not in osx or cygwin, where fstat64 is deprecated)
// 64 bits(but not in osx or cygwin, where fstat64 is deprecated)
#if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
#if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
struct
stat64
st
;
struct
stat64
st
;
...
@@ -258,10 +258,10 @@ SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm)
...
@@ -258,10 +258,10 @@ SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm)
#ifdef _WIN32
#ifdef _WIN32
#if _WIN32_WINNT < _WIN32_WINNT_WS08
#if _WIN32_WINNT < _WIN32_WINNT_WS08
TIME_ZONE_INFORMATION
tzinfo
;
TIME_ZONE_INFORMATION
tzinfo
;
auto
rv
=
GetTimeZoneInformation
(
&
tzinfo
);
auto
rv
=
::
GetTimeZoneInformation
(
&
tzinfo
);
#else
#else
DYNAMIC_TIME_ZONE_INFORMATION
tzinfo
;
DYNAMIC_TIME_ZONE_INFORMATION
tzinfo
;
auto
rv
=
GetDynamicTimeZoneInformation
(
&
tzinfo
);
auto
rv
=
::
GetDynamicTimeZoneInformation
(
&
tzinfo
);
#endif
#endif
if
(
rv
==
TIME_ZONE_ID_INVALID
)
if
(
rv
==
TIME_ZONE_ID_INVALID
)
SPDLOG_THROW
(
spdlog
::
spdlog_ex
(
"Failed getting timezone info. "
,
errno
));
SPDLOG_THROW
(
spdlog
::
spdlog_ex
(
"Failed getting timezone info. "
,
errno
));
...
@@ -327,15 +327,15 @@ SPDLOG_INLINE size_t _thread_id() SPDLOG_NOEXCEPT
...
@@ -327,15 +327,15 @@ SPDLOG_INLINE size_t _thread_id() SPDLOG_NOEXCEPT
#if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
#if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21)
#define SYS_gettid __NR_gettid
#define SYS_gettid __NR_gettid
#endif
#endif
return
static_cast
<
size_t
>
(
syscall
(
SYS_gettid
));
return
static_cast
<
size_t
>
(
::
syscall
(
SYS_gettid
));
#elif defined(_AIX) || defined(__DragonFly__) || defined(__FreeBSD__)
#elif defined(_AIX) || defined(__DragonFly__) || defined(__FreeBSD__)
return
static_cast
<
size_t
>
(
pthread_getthreadid_np
());
return
static_cast
<
size_t
>
(
::
pthread_getthreadid_np
());
#elif defined(__NetBSD__)
#elif defined(__NetBSD__)
return
static_cast
<
size_t
>
(
_lwp_self
());
return
static_cast
<
size_t
>
(
::
_lwp_self
());
#elif defined(__OpenBSD__)
#elif defined(__OpenBSD__)
return
static_cast
<
size_t
>
(
getthrid
());
return
static_cast
<
size_t
>
(
::
getthrid
());
#elif defined(__sun)
#elif defined(__sun)
return
static_cast
<
size_t
>
(
thr_self
());
return
static_cast
<
size_t
>
(
::
thr_self
());
#elif __APPLE__
#elif __APPLE__
uint64_t
tid
;
uint64_t
tid
;
pthread_threadid_np
(
nullptr
,
&
tid
);
pthread_threadid_np
(
nullptr
,
&
tid
);
...
@@ -420,9 +420,9 @@ SPDLOG_INLINE bool in_terminal(FILE *file) SPDLOG_NOEXCEPT
...
@@ -420,9 +420,9 @@ SPDLOG_INLINE bool in_terminal(FILE *file) SPDLOG_NOEXCEPT
{
{
#ifdef _WIN32
#ifdef _WIN32
return
_isatty
(
_fileno
(
file
))
!=
0
;
return
::
_isatty
(
_fileno
(
file
))
!=
0
;
#else
#else
return
isatty
(
fileno
(
file
))
!=
0
;
return
::
isatty
(
fileno
(
file
))
!=
0
;
#endif
#endif
}
}
...
@@ -515,7 +515,7 @@ SPDLOG_INLINE bool create_dir(filename_t path)
...
@@ -515,7 +515,7 @@ SPDLOG_INLINE bool create_dir(filename_t path)
// "abc/file" => "abc"
// "abc/file" => "abc"
// "abc/" => "abc"
// "abc/" => "abc"
// "abc" => ""
// "abc" => ""
// "abc///" => "abc"
// "abc///" => "abc
//
"
SPDLOG_INLINE
filename_t
dir_name
(
filename_t
path
)
SPDLOG_INLINE
filename_t
dir_name
(
filename_t
path
)
{
{
using
char_type
=
filename_t
::
value_type
;
using
char_type
=
filename_t
::
value_type
;
...
...
include/spdlog/details/os.h
View file @
a8f72424
...
@@ -93,7 +93,7 @@ void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target);
...
@@ -93,7 +93,7 @@ void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target);
// "abc/file" => "abc"
// "abc/file" => "abc"
// "abc/" => "abc"
// "abc/" => "abc"
// "abc" => ""
// "abc" => ""
// "abc///" => "abc"
// "abc///" => "abc
//
"
filename_t
dir_name
(
filename_t
path
);
filename_t
dir_name
(
filename_t
path
);
// Create a dir from the given path.
// Create a dir from the given path.
...
...
tests/utils.cpp
View file @
a8f72424
...
@@ -9,7 +9,7 @@ void prepare_logdir()
...
@@ -9,7 +9,7 @@ void prepare_logdir()
{
{
spdlog
::
drop_all
();
spdlog
::
drop_all
();
#ifdef _WIN32
#ifdef _WIN32
system
(
"rmdir /S /Q test_logs"
)
system
(
"rmdir /S /Q test_logs"
)
;
#else
#else
auto
rv
=
system
(
"rm -rf test_logs"
);
auto
rv
=
system
(
"rm -rf test_logs"
);
if
(
rv
!=
0
)
if
(
rv
!=
0
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment