Commit Graph

129 Commits

Author SHA1 Message Date
Phillip Stephens 6926b6a7c9
Always flush log file on close to prevent incomplete logs 2022-01-10 23:27:06 -08:00
Luke Street 9420e3007e Update fmt to 8.0.1 2021-10-25 19:08:48 -04:00
Luke Street 4f7f3f2147 Use __has_cpp_attribute for NOWIDE_FALLTHROUGH 2021-06-30 16:22:27 -04:00
Luke Street 6eadd55f7a Merge remote-tracking branch 'origin/utf8' into utf8
# Conflicts:
#	lib/logvisor.cpp
2021-06-29 00:09:20 -04:00
Luke Street df3c283186 Update fmt to 8.0.0; drop support for wchar
Adds some boost-nowide headers to assist in
UTF-8/16 conversion for Windows API.
2021-06-25 15:04:38 -04:00
Luke Street 139281f667 Update fmt to 8.0.0; drop support for wchar
Adds some boost-nowide headers to assist in
UTF-8/16 conversion for Windows API.
2021-06-22 15:13:37 -04:00
Phillip Stephens 274ad5ef07
Fix compiling on linux 2021-06-19 14:43:23 -07:00
Henrique Gemignani Passos Lima ed3714e55c Fix ConsoleLogger misusing Widen result lifetime 2021-06-19 13:40:17 +03:00
Phillip Stephens ee3276d7c5
Merge pull request #7 from Minty-Meeo/wide-printing-fixes 2021-05-07 23:17:57 -07:00
Minty-Meeo f23179e168 Wide char homogeneity
If wide char stdlib functions are used on a narrow char stream, they attempt to narrow the character or string.  If this fails, nothing is written to the stream and an error is indicated.  The {fmt} library, at its core, uses stdlib functions for printing to a stream.  However, it takes it a step further and acts upon errors while printing by throwing an exception.

If narrow char stdlib functions are used on a wide char stream, they throw an assertion.  The {fmt} library somehow does not throw an assertion, but whatever it ends up printing is garbage anyhow.

So from either end, it is generally a bad idea to mix narrow and wide character printing.  While you can get away with using wide char functions on a narrow char stream, the moment you start using anything other than English characters, it all falls apart.  Just as well, narrow chars on wide char streams do not work at all.  Despite this, I found many situations where wide char printing and narrow char printing was being used at the same time.  This PR makes character printing homogeneous to avoid the previously discussed issues.
2021-05-08 00:52:03 -05:00
Luke Street 7901fc496d Don't install if not building directly 2021-04-13 00:48:30 -04:00
Luke Street d874350205 Fetch Sentry as needed; don't reimport fmt unnecessarily 2021-04-13 00:05:09 -04:00
Luke Street 028617d225 Update sentry-native 2021-04-12 15:52:58 -04:00
Luke Street 984d87348e Set FMT_ARM_ABI_COMPATIBILITY; move fmt defines to CMake 2021-04-06 17:55:15 -04:00
Luke Street 33e7322595 Update submodules; set submodule tracking branch 2021-04-06 12:46:56 -04:00
Luke Street bb113e03f8 Fix sentry submodule URL 2021-04-05 16:31:04 -04:00
Luke Street 240491ccad Compile breakpad_client with -Wno-array-bounds 2021-04-05 13:26:01 -04:00
Luke Street fd343eb234 Fix compiling crashpad on Windows 2021-04-05 12:04:19 -04:00
Luke Street aac06c3465 Fix compiling breakpad_client on Linux 2021-04-05 10:38:42 -04:00
Luke Street 0e3fe3e766 Integrate sentry-native crash reporting 2021-04-04 18:20:48 -04:00
Phillip Stephens 17aa25cfa9
Merge pull request #6 from henriquegemignani/feature/keep-file-open
FileLogger: don't open/close file for each write
2021-04-03 10:27:47 -07:00
Henrique Gemignani Passos Lima d4af1a1088 FileLogger: don't open/close file for each write 2021-04-03 19:42:44 +03:00
Phillip Stephens 8913e55e34 Fix crashing on windows when registering a file logger after a console logger, windows runtime bugs annoy the hell out of me >:( 2020-12-31 13:53:26 -08:00
Luke Street 81fb4e4c2d Link debug libnx & remove outdated nxstl includes 2020-10-21 00:35:07 -04:00
Jack Andersen 7f63cabaea Fixes for recent windows SDK changes 2020-08-22 17:28:34 -10:00
Luke Street 41432143fd Only use lm service when LOGVISOR_NX_LM set 2020-05-05 00:14:41 -04:00
Jack Andersen 14ea54f8b5 Add lm service for switch build 2020-05-03 20:09:21 -10:00
Jack Andersen d62b4ce26e Update fmtlib 2020-04-11 12:44:21 -10:00
Jack Andersen 27814c5276 Exclude CMake CXX standard from MSVC 2020-04-10 18:55:45 -10:00
Jack Andersen f04a9777eb Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/logvisor 2019-09-30 21:21:21 -10:00
Jack Andersen 187c35f3c4 Ensure only one console logger is able to be registered 2019-09-30 21:20:45 -10:00
Phillip Stephens 8c2e711362
Merge pull request #5 from lioncash/noreturn
logvisor: Mark logvisorAbort as [[noreturn]]
2019-09-06 23:26:44 -07:00
Lioncash 63cb911d09 logvisor: Mark logvisorAbort as [[noreturn]]
All variants of logvisorAbort do what they say in their name -- abort.
Given control isn't returned from this function, we can signify that
it's a noreturn function
2019-09-06 07:37:27 -04:00
Phillip Stephens f623ace3b4
Merge pull request #4 from lioncash/docs
logvisor: Amend documentation comments
2019-08-26 15:55:18 -07:00
Phillip Stephens 8ea97c524c
Merge pull request #3 from lioncash/forward
logvisor: std::forward arguments where applicable
2019-08-26 15:55:08 -07:00
Phillip Stephens 81c72ad220
Merge pull request #2 from lioncash/char
logvisor: Use std::fputs/std::fputc where applicable
2019-08-26 15:54:58 -07:00
Lioncash 59f651f24b logvisor: Amend documentation comments
These use fmt-style formatting specifiers, not printf.
2019-08-26 10:57:19 -04:00
Lioncash 2a40c6dc92 logvisor: std::forward arguments where applicable
Forwards arguments into functions to preserve their value category
2019-08-26 10:50:35 -04:00
Lioncash 2f3f06e5ca logvisor: Add missing override specifiers 2019-08-26 10:34:40 -04:00
Lioncash 94d1c558a0 logvisor: Use std::fputs/std::fputc where applicable
We can just use std::fputc when inserting a single character instead of
using std::fputs. Likewise, we can use std::fputs over std::fprintf when
no formatting specifiers are present.
2019-08-26 10:31:45 -04:00
Phillip Stephens aa9aa0a82c
Merge pull request #1 from lioncash/cexpr
logvisor: Make Module constructor constexpr
2019-08-17 22:56:59 -07:00
Lioncash a57409828c logvisor: Make Module constructor constexpr
Allows the module instances to be constructed at compile time.
Otherwise, this is technically a runtime static constructor when an
instance is declared at file scope.
2019-08-17 19:47:20 -04:00
Jack Andersen dcd0ffcaec Fix custom formatting of multiple character types 2019-07-25 16:31:54 -10:00
Jack Andersen 3bedd268e8 Integrate libfmt for format strings 2019-07-19 18:21:39 -10:00
Jack Andersen a0ef17d895 Refactor of CMake for cleaner dependency handling 2019-06-11 15:53:17 -10:00
Jack Andersen ebe7463e67 Ignore GCC truncation warning 2019-06-09 16:48:06 -10:00
Jack Andersen 7672485d81 Make logvisor publicly link libdl on platforms that have it 2019-05-25 00:14:41 -10:00
Jack Andersen c54e2596c2 Add cmake package config files 2019-05-22 18:07:58 -10:00
Jack Andersen c3f34aed0b
Update include directory for proper installation 2019-05-22 17:58:40 -10:00
Jack Andersen a2ffe70b4e Don't kill windows console on abort 2019-05-09 18:06:21 -10:00