From 99b813b963f029528ad6e6bdb2095165d1541a9b Mon Sep 17 00:00:00 2001 From: "Jeffrey H. Johnson" Date: Sat, 11 May 2024 20:23:07 -0400 Subject: [PATCH] Update to Doxygen 1.10.0; CI updates for DNF-5, GCC 14.1, and DMD 2.109.0; fix various typos and spelling errors (#422) * Update to Doxygen 1.10.0 * Fix various typos and spelling errors * CI updates for DNF-5, GCC 14.1, and DMD 2.109.0 --------- Signed-off-by: Jeffrey H. Johnson --- .gitlab-ci/base/Dockerfile | 5 +- .gitlab-ci/dmd/Dockerfile | 2 +- .gitlab-ci/emscripten/Dockerfile | 2 +- README.md | 6 +- bindings/ch/_sir_strredact.chf | 2 +- docs/annotated.html | 15 +- docs/ansimacros_8h.html | 94 +- docs/ansimacros_8h_source.html | 13 +- docs/classes.html | 11 +- docs/classsir_1_1adapter.html | 13 +- docs/classsir_1_1boost__format__adapter.html | 15 +- docs/classsir_1_1default__adapter.html | 13 +- docs/classsir_1_1default__policy.html | 24 +- docs/classsir_1_1exception.html | 13 +- docs/classsir_1_1fmt__format__adapter.html | 15 +- docs/classsir_1_1logger.html | 15 +- docs/classsir_1_1policy.html | 26 +- docs/classsir_1_1std__format__adapter.html | 15 +- docs/classsir_1_1std__iostream__adapter.html | 13 +- docs/clipboard.js | 61 ++ docs/concepts.html | 15 +- docs/conceptsir_1_1_derived_from_policy.html | 11 +- ...onceptsir_1_1_derived_from_stream_buf.html | 11 +- docs/conceptsir_1_1_derived_from_t.html | 11 +- docs/condition_8h.html | 42 +- docs/condition_8h_source.html | 13 +- docs/config.html | 13 +- docs/config_8h.html | 95 +- docs/config_8h_source.html | 13 +- docs/console_8h_source.html | 13 +- docs/cookie.js | 58 ++ docs/defaults_8h.html | 11 +- docs/defaults_8h_source.html | 13 +- .../dir_38c8d24aef3972a7f87b834274e76e31.html | 11 +- .../dir_49e56c817e5e54854c35e136979f97ca.html | 11 +- .../dir_59425e443f801f1f2fd8bbe4959a3ccf.html | 11 +- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 11 +- .../dir_89aa746955889ced97536d9f51ce6c73.html | 11 +- .../dir_98b0b4f2b7ada084522cf3f9258d0075.html | 11 +- .../dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html | 11 +- .../dir_d44c64559bbebec7f509842c48db8b23.html | 11 +- .../dir_d4f373425b53e326d93013419ec79018.html | 11 +- docs/doxygen_crawl.html | 207 ++++ docs/dynsections.js | 328 +++---- docs/errors_8h_source.html | 13 +- docs/example_8c.html | 26 +- docs/filecache_8h_source.html | 13 +- docs/files.html | 27 +- docs/filesystem_8h_source.html | 13 +- docs/functions.html | 11 +- docs/functions_func.html | 11 +- docs/functions_vars.html | 11 +- docs/globals.html | 11 +- docs/globals_defs.html | 11 +- docs/globals_func.html | 11 +- docs/globals_vars.html | 11 +- docs/graph_legend.html | 11 +- docs/group__cpp.html | 11 +- docs/group__cpp.map | 4 +- docs/group__cpp.md5 | 2 +- docs/group__cpp.svg | 10 +- docs/group__cpp_org.svg | 10 +- docs/group__default.html | 48 +- docs/group__plugins.html | 61 +- docs/group__public.html | 21 +- docs/group__public.map | 2 +- docs/group__public.md5 | 2 +- docs/group__public.svg | 16 +- docs/group__public_org.svg | 16 +- docs/group__publicfuncs.html | 482 ++++----- docs/group__publicfuncs.map | 2 +- docs/group__publicfuncs.md5 | 2 +- docs/group__publicfuncs.svg | 8 +- docs/group__publicfuncs_org.svg | 8 +- docs/group__publictypes.html | 209 ++-- docs/group__publictypes.map | 2 +- docs/group__publictypes.md5 | 2 +- docs/group__publictypes.svg | 8 +- docs/group__publictypes_org.svg | 8 +- docs/group__tests.html | 199 ++-- docs/group__tests.map | 2 +- docs/group__tests.md5 | 2 +- docs/group__tests.svg | 4 +- docs/group__tests_org.svg | 4 +- docs/helpers_8h_source.html | 13 +- docs/hierarchy.html | 19 +- docs/impl_8h_source.html | 13 +- docs/index.html | 88 +- docs/internal_8h_source.html | 13 +- docs/maps_8h_source.html | 13 +- docs/md_docs_2sources_2changelog.html | 11 +- docs/menu.js | 34 +- docs/mutex_8h_source.html | 13 +- docs/namespacemembers.html | 23 +- docs/namespacemembers_func.html | 11 +- docs/namespacemembers_type.html | 23 +- docs/namespacesir.html | 72 +- docs/namespacesir_1_1tests.html | 45 +- docs/navtree.js | 831 +++++++--------- docs/navtreeindex1.js | 14 +- docs/pages.html | 11 +- docs/platform_8h_source.html | 13 +- docs/platform__embarcadero_8h_source.html | 13 +- docs/platform__importc_8h_source.html | 13 +- docs/platform__orangec_8h_source.html | 13 +- docs/plugin__sample_8h_source.html | 13 +- docs/plugins_8h_source.html | 13 +- docs/queue_8h_source.html | 13 +- docs/resize.js | 100 +- docs/search/all_12.js | 2 +- docs/search/all_2.js | 2 +- docs/search/all_4.js | 2 +- docs/search/all_6.js | 2 +- docs/search/all_9.js | 2 +- docs/search/all_d.js | 2 +- docs/search/search.js | 916 ++++++++---------- docs/search/typedefs_0.js | 2 +- docs/search/typedefs_1.js | 2 +- docs/search/typedefs_2.js | 2 +- docs/search/typedefs_3.js | 2 +- docs/search/typedefs_4.js | 2 +- docs/search/typedefs_5.js | 2 +- docs/sir_8c.html | 11 +- docs/sir_8h.html | 11 +- docs/sir_8h_source.html | 13 +- docs/sir_8hh.html | 59 +- docs/sir_8hh.js | 12 +- docs/sir_8hh_source.html | 31 +- docs/sircondition_8c.html | 42 +- docs/structsir_1_1error.html | 13 +- docs/structsir_1_1error__info.html | 15 +- docs/structsir__cl__arg.html | 17 +- docs/structsir__cl__config.html | 13 +- docs/structsir__level__str__pair.html | 13 +- docs/structsir__level__style__tuple.html | 13 +- docs/structsir__plugin.html | 13 +- docs/structsir__plugincache.html | 13 +- docs/structsir__pluginifacev1.html | 13 +- docs/structsir__plugininfo.html | 13 +- docs/structsir__queue.html | 13 +- docs/structsir__queue__node.html | 13 +- docs/structsir__test.html | 13 +- docs/structsir__text__style__data.html | 13 +- docs/structsir__thread__err.html | 13 +- docs/structsir__threadpool.html | 13 +- docs/structsir__threadpool__job.html | 13 +- docs/structsir__time.html | 13 +- docs/structsir__update__config__data.html | 13 +- docs/structsirbuf.html | 13 +- docs/structsirconfig.html | 13 +- docs/structsirconfig_8state_8last.html | 13 +- docs/structsirfcache.html | 13 +- docs/structsirfile.html | 13 +- docs/tabs.css | 2 +- docs/tests_09_09_8hh_source.html | 13 +- docs/tests_8h_source.html | 13 +- docs/tests__malloc_8h_source.html | 13 +- docs/tests__shared_8h_source.html | 13 +- docs/testsuite.html | 13 +- docs/textstyle_8h_source.html | 13 +- docs/threadpool_8h_source.html | 13 +- docs/topics.html | 19 +- docs/types_8h_source.html | 13 +- docs/version_8h_source.html | 13 +- docs/wineventlog_8h_source.html | 13 +- msvs/compile_man.ps1 | 2 +- tests/tests.c | 4 +- tests/tests_shared.h | 2 +- 168 files changed, 2827 insertions(+), 2858 deletions(-) create mode 100644 docs/clipboard.js create mode 100644 docs/cookie.js create mode 100644 docs/doxygen_crawl.html diff --git a/.gitlab-ci/base/Dockerfile b/.gitlab-ci/base/Dockerfile index 0dd3e20f3..ea8d893f5 100644 --- a/.gitlab-ci/base/Dockerfile +++ b/.gitlab-ci/base/Dockerfile @@ -154,8 +154,7 @@ RUN set -x && \ && \ curl -fsSL https://rpm.nodesource.com/setup_22.x | bash - && \ dnf install -y --setopt=install_weak_deps=True --setopt=keepcache=True nodejs && \ - dnf -y --setopt=install_weak_deps=True --setopt=keepcache=True \ - --skip-broken --best --allowerasing group install \ + dnf -y --setopt=install_weak_deps=True --setopt=keepcache=True --best group install \ development-tools \ c-development \ && \ @@ -201,7 +200,7 @@ RUN set -x && \ ucrt64-winpthreads \ ucrt64-winpthreads-static \ && \ - (yes | dnf -y copr enable yselkowitz/cygwin fedora-rawhide-x86_64) && \ + (yes | dnf-3 -y copr enable yselkowitz/cygwin fedora-rawhide-x86_64) && \ dnf -y --setopt=install_weak_deps=True --setopt=keepcache=True install \ cygwin64 \ cygwin64-binutils \ diff --git a/.gitlab-ci/dmd/Dockerfile b/.gitlab-ci/dmd/Dockerfile index d82fa306c..2ecb4e675 100644 --- a/.gitlab-ci/dmd/Dockerfile +++ b/.gitlab-ci/dmd/Dockerfile @@ -35,7 +35,7 @@ WORKDIR / RUN set -x && \ dnf -y install elinks --setopt=install_weak_deps=True && \ - (wget -q https://downloads.dlang.org/releases/2.x/2.108.1/dmd-2.108.1-0.fedora.x86_64.rpm || true) && \ + (wget -q https://downloads.dlang.org/pre-releases/2.x/2.109.0/dmd-2.109.0~beta.1-0.fedora.x86_64.rpm || true) && \ (wget -q "$(elinks -dump https://dlang.org/download.html 2> /dev/null | \ awk '/\/releases\/.*fedora.*x86_64.rpm$/ { print $2 }' 2> /dev/null | \ head -1)" || true) && \ diff --git a/.gitlab-ci/emscripten/Dockerfile b/.gitlab-ci/emscripten/Dockerfile index 98e1f8ed8..f11826d2e 100644 --- a/.gitlab-ci/emscripten/Dockerfile +++ b/.gitlab-ci/emscripten/Dockerfile @@ -44,7 +44,7 @@ RUN set -x && \ export UNATTENDED=1 && \ export NONINTERACTIVE=1 && \ cd /tmp && \ - dnf -y --best --allowerasing --skip-broken upgrade nodejs || true && \ + dnf -y --best upgrade nodejs || true && \ wget -q https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh && \ sudo -s -u user bash ./install.sh && \ rm -f ./install.sh && \ diff --git a/README.md b/README.md index b71c2bef4..425743b61 100644 --- a/README.md +++ b/README.md @@ -91,14 +91,14 @@ At this time, libsir is supported (*that is, it compiles and passes the test sui | System | Toolchain | | ------:|:--------- | -| **Linux** ≳2.6.32
(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) | **GCC** (4.8.4 ‑ 14.0.1),  **Clang** (3.8 ‑ 18.1.5),  **Oracle Studio C/C++** (≳12.6),  **Circle** (1.0.0‑200),  **IBM Advance Toolchain** (14 ‑ 17),  **IBM XL C/C++** (16.1.1.2 ‑ 16.1.1.15),  **IBM Open XL C/C++** (17.1.1.0 ‑ 17.1.1.2),  **NVIDIA HPC SDK C/C++** (23.5 ‑ 24.3),  **Arm HPC C/C++** (22.1 ‑ 23.10),  **DMD ImportC** (2.104.2 ‑ 2.108.1),  **AMD Optimizing C/C++** (4.0.0 ‑ 4.2.0),  **Intel oneAPI DPC++/C++** (2023.1 ‑ 2024.1.0),  **Open64** (5, AMD 4.5.2.1),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0),  **Portable C Compiler** (1.2.0.DEVEL‑20230730),  **Kefir** (≳0.3.0),  **Chibicc** (2020.12.6),  **CompCert C** (3.11 ‑ 3.14, no‑TLS),  **Chamois‑CompCert C** (3.14‑20231130, TLS) | +| **Linux** ≳2.6.32
(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) | **GCC** (4.8.4 ‑ 14.1.1),  **Clang** (3.8 ‑ 18.1.5),  **Oracle Studio C/C++** (≳12.6),  **Circle** (1.0.0‑200),  **IBM Advance Toolchain** (14 ‑ 17),  **IBM XL C/C++** (16.1.1.2 ‑ 16.1.1.15),  **IBM Open XL C/C++** (17.1.1.0 ‑ 17.1.1.2),  **NVIDIA HPC SDK C/C++** (23.5 ‑ 24.3),  **Arm HPC C/C++** (22.1 ‑ 23.10),  **DMD ImportC** (2.104.2 ‑ 2.109.0),  **AMD Optimizing C/C++** (4.0.0 ‑ 4.2.0),  **Intel oneAPI DPC++/C++** (2023.1 ‑ 2024.1.0),  **Open64** (5, AMD 4.5.2.1),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0),  **Portable C Compiler** (1.2.0.DEVEL‑20230730),  **Kefir** (≳0.3.0),  **Chibicc** (2020.12.6),  **CompCert C** (3.11 ‑ 3.14, no‑TLS),  **Chamois‑CompCert C** (3.14‑20231130, TLS) | | **Android** ≳5 | **Android NDK** (r25c ‑ r26d) | | **IBM AIX** 7.2, 7.3 | **GCC** (8.3 ‑ 12.3),  **Clang** (18.1.2 ‑ 18.1.5),  **IBM XL C/C++** (16.1.0.3 ‑ 16.1.0.17),  **IBM Open XL C/C++** (17.1.1.1 ‑ 17.1.2.5) | | **IBM i** (**PASE**) 7.5 | **GCC** (10.3.0 ‑ 10.5.0),  **IBM XL C/C++** (16.1.0.15 ‑ 16.1.0.17) | -| **macOS** ≳10.15 | **Xcode** (11.7 ‑ 15.3),  **GCC** (10.4 ‑ 13.2.1),  **Clang** (11.0.3 ‑ 17.0.6),  **DMD ImportC** (2.105.0 ‑ 2.108.1),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0) | +| **macOS** ≳10.15 | **Xcode** (11.7 ‑ 15.3),  **GCC** (10.4 ‑ 13.2.1),  **Clang** (11.0.3 ‑ 17.0.6),  **DMD ImportC** (2.105.0 ‑ 2.109.0),  **Intel C++ Compiler Classic** (2021.9.0 ‑ 2021.10.0) | | **Windows** ≳10, 11 | **Microsoft Visual C/C++** (17.6 ‑ 17.9.6),  **Clang‑CL** (16.0.6 ‑ 18.1.5),  **GCC‑MinGW** (12.2.1 ‑ 14.0.1),  **LLVM‑MinGW** (15.0 ‑ 18.1.5),  **Embarcadero C++** (7.20 ‑ 7.70),  **OrangeC** (≳6.71.10) | | **Cygwin** 3.4 | **GCC** (11.2 ‑ 13.2.1) | -| **FreeBSD** ≳11.3 | **GCC** (11.4 ‑ 13.2.1),  **Clang** (10 ‑ 17.0.6),  **DMD ImportC** (2.105.0 ‑ 2.108.1) | +| **FreeBSD** ≳11.3 | **GCC** (11.4 ‑ 13.2.1),  **Clang** (10 ‑ 17.0.6),  **DMD ImportC** (2.105.0 ‑ 2.109.0) | | **NetBSD** 9.2 | **GCC** (7.5 ‑ 13.2),  **Clang** (15.0.7 ‑ 17.0.6) | | **OpenBSD** 7.3 | **GCC** (11.2),  **Clang** (13 ‑ 17.0.6),  **DMD ImportC** (2.106.0) | | **DragonFly** **BSD** 6.4 | **GCC** (8.3 ‑ 13),  **Clang** (10.0.1 ‑ 17.0.6) | diff --git a/bindings/ch/_sir_strredact.chf b/bindings/ch/_sir_strredact.chf index 978b3a772..4f4e05b81 100644 --- a/bindings/ch/_sir_strredact.chf +++ b/bindings/ch/_sir_strredact.chf @@ -33,7 +33,7 @@ char* _sir_strredact(char *str, const char *sub, const char c) { - void* fptr; + void* fptr; char* retval; fptr = dlsym(_Chsir_handle, "_sir_strredact_chdl"); diff --git a/docs/annotated.html b/docs/annotated.html index 026cfbb02..ac99fdd3d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -84,7 +85,7 @@
@@ -114,8 +115,8 @@
Here are the data structures with brief descriptions:
-
[detail level 12]
- +
[detail level 12]
 NsirLibsir C++ wrapper implementation
+ @@ -164,7 +165,7 @@ diff --git a/docs/ansimacros_8h.html b/docs/ansimacros_8h.html index 07fed7cc2..c70de51bc 100644 --- a/docs/ansimacros_8h.html +++ b/docs/ansimacros_8h.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
 NsirLibsir C++ wrapper implementation
 CadapterDefines the abstract interface for an adapter, which ultimately becomes a public base class of logger (there can be more than one)
 Cboost_format_adapterAdapter for boost::format (when available)
 Cdefault_adapterThe default adapter implementation
- + @@ -84,7 +85,7 @@
@@ -144,7 +145,7 @@ #define SIR_R_ARROW   "\xe2\x86\x92"  A few fun characters.
  -#define SIR_COLOR(attr, fg, bg, s)    SIR_ESC_SEQ(#attr ";" #fg ";" #bg, s) SIR_ESC_SEQE("0;39;49") +#define SIR_COLOR(attr, fg, bg, s)    SIR_ESC_SEQ(#attr ";" #fg ";" #bg, s) SIR_ESC_SEQE("0;39;49")  Creates a sequence of colored characters 's' with foreground color 'fg', background color 'bg', and attributes 'attr' (0=normal, 1=bold, 2=dim, 3=italic, 4=underlined, 5=blinking, 7=inverted, 9=strikethrough).
  @@ -172,131 +173,131 @@  Blinking text.
  -#define SIR_BLACK(s)   SIR_COLOR(0, 30, 49, s) +#define SIR_BLACK(s)   SIR_COLOR(0, 30, 49, s)  Black foreground text.
  -#define SIR_BLACKB(s)   SIR_COLOR(1, 30, 49, s) +#define SIR_BLACKB(s)   SIR_COLOR(1, 30, 49, s)  Bold black foreground text.
  -#define SIR_RED(s)   SIR_COLOR(0, 31, 49, s) +#define SIR_RED(s)   SIR_COLOR(0, 31, 49, s)  Red foreground text.
  -#define SIR_REDB(s)   SIR_COLOR(1, 31, 49, s) +#define SIR_REDB(s)   SIR_COLOR(1, 31, 49, s)  Bold red foreground text.
  -#define SIR_BRED(s)   SIR_COLOR(0, 91, 49, s) +#define SIR_BRED(s)   SIR_COLOR(0, 91, 49, s)  Bright red foreground text.
  -#define SIR_BREDB(s)   SIR_COLOR(1, 91, 49, s) +#define SIR_BREDB(s)   SIR_COLOR(1, 91, 49, s)  Bold bright red foreground text.
  -#define SIR_GREEN(s)   SIR_COLOR(0, 32, 49, s) +#define SIR_GREEN(s)   SIR_COLOR(0, 32, 49, s)  Green foreground text.
  -#define SIR_GREENB(s)   SIR_COLOR(1, 32, 49, s) +#define SIR_GREENB(s)   SIR_COLOR(1, 32, 49, s)  Bold green foreground text.
  -#define SIR_BGREEN(s)   SIR_COLOR(0, 92, 49, s) +#define SIR_BGREEN(s)   SIR_COLOR(0, 92, 49, s)  Bright green foreground text.
  -#define SIR_BGREENB(s)   SIR_COLOR(1, 92, 49, s) +#define SIR_BGREENB(s)   SIR_COLOR(1, 92, 49, s)  Bold bright green foreground text.
  -#define SIR_YELLOW(s)   SIR_COLOR(0, 33, 49, s) +#define SIR_YELLOW(s)   SIR_COLOR(0, 33, 49, s)  Yellow foreground text.
  -#define SIR_YELLOWB(s)   SIR_COLOR(1, 33, 49, s) +#define SIR_YELLOWB(s)   SIR_COLOR(1, 33, 49, s)  Bold yellow foreground text.
  -#define SIR_BYELLOW(s)   SIR_COLOR(0, 93, 49, s) +#define SIR_BYELLOW(s)   SIR_COLOR(0, 93, 49, s)  Bright yellow foreground text.
  -#define SIR_BYELLOWB(s)   SIR_COLOR(1, 93, 49, s) +#define SIR_BYELLOWB(s)   SIR_COLOR(1, 93, 49, s)  Bold bright yellow foreground text.
  -#define SIR_BLUE(s)   SIR_COLOR(0, 34, 49, s) +#define SIR_BLUE(s)   SIR_COLOR(0, 34, 49, s)  Blue foreground text.
  -#define SIR_BLUEB(s)   SIR_COLOR(1, 34, 49, s) +#define SIR_BLUEB(s)   SIR_COLOR(1, 34, 49, s)  Bold blue foreground text.
  -#define SIR_BBLUE(s)   SIR_COLOR(0, 94, 49, s) +#define SIR_BBLUE(s)   SIR_COLOR(0, 94, 49, s)  Bright blue foreground text.
  -#define SIR_BBLUEB(s)   SIR_COLOR(1, 94, 49, s) +#define SIR_BBLUEB(s)   SIR_COLOR(1, 94, 49, s)  Bold bright blue foreground text.
  -#define SIR_MAGENTA(s)   SIR_COLOR(0, 35, 49, s) +#define SIR_MAGENTA(s)   SIR_COLOR(0, 35, 49, s)  Magenta foreground text.
  -#define SIR_MAGENTAB(s)   SIR_COLOR(1, 35, 49, s) +#define SIR_MAGENTAB(s)   SIR_COLOR(1, 35, 49, s)  Bold magenta foreground text.
  -#define SIR_BMAGENTA(s)   SIR_COLOR(0, 95, 49, s) +#define SIR_BMAGENTA(s)   SIR_COLOR(0, 95, 49, s)  Bright magenta foreground text.
  -#define SIR_BMAGENTAB(s)   SIR_COLOR(1, 95, 49, s) +#define SIR_BMAGENTAB(s)   SIR_COLOR(1, 95, 49, s)  Bold bright magenta foreground text.
  -#define SIR_CYAN(s)   SIR_COLOR(0, 36, 49, s) +#define SIR_CYAN(s)   SIR_COLOR(0, 36, 49, s)  Cyan foreground text.
  -#define SIR_CYANB(s)   SIR_COLOR(1, 36, 49, s) +#define SIR_CYANB(s)   SIR_COLOR(1, 36, 49, s)  Bold cyan foreground text.
  -#define SIR_BCYAN(s)   SIR_COLOR(0, 96, 49, s) +#define SIR_BCYAN(s)   SIR_COLOR(0, 96, 49, s)  Bright cyan foreground text.
  -#define SIR_BCYANB(s)   SIR_COLOR(1, 96, 49, s) +#define SIR_BCYANB(s)   SIR_COLOR(1, 96, 49, s)  Bold bright cyan foreground text.
  -#define SIR_BGRAY(s)   SIR_COLOR(0, 37, 49, s) +#define SIR_BGRAY(s)   SIR_COLOR(0, 37, 49, s)  Bright gray foreground text.
  -#define SIR_BGRAYB(s)   SIR_COLOR(1, 37, 49, s) +#define SIR_BGRAYB(s)   SIR_COLOR(1, 37, 49, s)  Bold bright gray foreground text.
  -#define SIR_DGRAY(s)   SIR_COLOR(0, 90, 49, s) +#define SIR_DGRAY(s)   SIR_COLOR(0, 90, 49, s)  Dark gray foreground text.
  -#define SIR_DGRAYB(s)   SIR_COLOR(1, 90, 49, s) +#define SIR_DGRAYB(s)   SIR_COLOR(1, 90, 49, s)  Bold dark gray foreground text.
  -#define SIR_WHITE(s)   SIR_COLOR(0, 97, 49, s) +#define SIR_WHITE(s)   SIR_COLOR(0, 97, 49, s)  White foreground text.
  -#define SIR_WHITEB(s)   SIR_COLOR(1, 97, 49, s) +#define SIR_WHITEB(s)   SIR_COLOR(1, 97, 49, s)  Bold white foreground text.
  @@ -323,31 +324,22 @@

#define SIR_COLOR ( -   - attr, + attr, -   - fg, + fg, -   - bg, + bg, -   - s  - - - - ) -     SIR_ESC_SEQ(#attr ";" #fg ";" #bg, s) SIR_ESC_SEQE("0;39;49") + s )    SIR_ESC_SEQ(#attr ";" #fg ";" #bg, s) SIR_ESC_SEQE("0;39;49")

@@ -364,7 +356,7 @@

diff --git a/docs/ansimacros_8h_source.html b/docs/ansimacros_8h_source.html index dcd4385bd..3a727fc56 100644 --- a/docs/ansimacros_8h_source.html +++ b/docs/ansimacros_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
@@ -257,7 +258,7 @@ diff --git a/docs/classes.html b/docs/classes.html index 7d22cd613..3162c839f 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -146,7 +147,7 @@ diff --git a/docs/classsir_1_1adapter.html b/docs/classsir_1_1adapter.html index 08f617d76..7d5344877 100644 --- a/docs/classsir_1_1adapter.html +++ b/docs/classsir_1_1adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

Defines the abstract interface for an adapter, which ultimately becomes a public base class of logger (there can be more than one). - More...

+ More...

Inheritance diagram for sir::adapter:
@@ -135,7 +136,7 @@ diff --git a/docs/classsir_1_1boost__format__adapter.html b/docs/classsir_1_1boost__format__adapter.html index 38f4244a2..cc34f3623 100644 --- a/docs/classsir_1_1boost__format__adapter.html +++ b/docs/classsir_1_1boost__format__adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

Adapter for boost::format (when available). - More...

+ More...

Inheritance diagram for sir::boost_format_adapter< TPolicy >:
@@ -132,7 +133,7 @@
log.info_bf(boost::format("This is from %1%!" % "boost::format"));
The primary C++ interface to libsir.
Definition sir.hh:811
static bool throw_on_policy(bool expr) noexcept(false)
Handles a potential error; if an error is present and the policy in place requires throwing an except...
Definition sir.hh:289
-
See also
boost_logger
+
See also
boost_logger
Template Parameters
@@ -149,7 +150,7 @@ diff --git a/docs/classsir_1_1default__adapter.html b/docs/classsir_1_1default__adapter.html index c0ffccab3..5f6f2546a 100644 --- a/docs/classsir_1_1default__adapter.html +++ b/docs/classsir_1_1default__adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
TPolicyA derived class of policy which controls the behavior of logger and by association, its adapters.
- + @@ -84,7 +85,7 @@
@@ -117,7 +118,7 @@

The default adapter implementation. - More...

+ More...

Inheritance diagram for sir::default_adapter< TPolicy >:
@@ -179,7 +180,7 @@ diff --git a/docs/classsir_1_1default__policy.html b/docs/classsir_1_1default__policy.html index f61f3a3bb..d2e58e0fe 100644 --- a/docs/classsir_1_1default__policy.html +++ b/docs/classsir_1_1default__policy.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -117,7 +118,7 @@

In the event that no custom configuration or behavior is desired, provides defaults for everything. - More...

+ More...

Inheritance diagram for sir::default_policy:
@@ -126,16 +127,16 @@ - + - +

Public Member Functions

bool get_init_data (sirinit &data) const noexcept final
bool get_init_data (sirinit &data) const noexcept final
 Called by logger before initializing libsir.
 
constexpr bool on_init_complete () const noexcept final
constexpr bool on_init_complete () const noexcept final
 Called by logger immediately after libsir has been initialized.
 
- + @@ -160,8 +161,7 @@

bool sir::default_policy::get_init_data

- - +

Additional Inherited Members

- Static Public Member Functions inherited from sir::policy
- Static Public Member Functions inherited from sir::policy
static constexpr bool throw_on_error () noexcept
 Determines whether or not exceptions are thrown in the event that an unercoverable error is encountered by logger or its associated adapter(s).
 
(sirinitdata)sirinit & data) const
@@ -204,7 +204,7 @@

constexpr bool sir::default_policy::on_init_complete ( - ) + ) const @@ -239,7 +239,7 @@

diff --git a/docs/classsir_1_1exception.html b/docs/classsir_1_1exception.html index bac74f781..f73d88976 100644 --- a/docs/classsir_1_1exception.html +++ b/docs/classsir_1_1exception.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

The exception type thrown by libsir. - More...

+ More...

Inherits std::runtime_error.

Detailed Description

@@ -133,7 +134,7 @@ diff --git a/docs/classsir_1_1fmt__format__adapter.html b/docs/classsir_1_1fmt__format__adapter.html index 2a3333d45..b191fc20c 100644 --- a/docs/classsir_1_1fmt__format__adapter.html +++ b/docs/classsir_1_1fmt__format__adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

Adapter for {fmt} (when available). - More...

+ More...

Inheritance diagram for sir::fmt_format_adapter< TPolicy >:
@@ -132,7 +133,7 @@
log.info_fmt("This is from {}}!", "fmt::format"));
The primary C++ interface to libsir.
Definition sir.hh:811
static bool throw_on_policy(bool expr) noexcept(false)
Handles a potential error; if an error is present and the policy in place requires throwing an except...
Definition sir.hh:289
-
See also
fmt_logger
+
See also
fmt_logger
Template Parameters
@@ -149,7 +150,7 @@ diff --git a/docs/classsir_1_1logger.html b/docs/classsir_1_1logger.html index 318733c51..8bd44b2b3 100644 --- a/docs/classsir_1_1logger.html +++ b/docs/classsir_1_1logger.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
TPolicyA derived class of policy which controls the behavior of logger and by association, its adapters.
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

The primary C++ interface to libsir. - More...

+ More...

Inherits TAdapters< TPolicy >.

Detailed Description

@@ -123,7 +124,7 @@ requires DerivedFromT<adapter, TAdapters<TPolicy>...>
class sir::logger< RAII, TPolicy, TAdapters >

The primary C++ interface to libsir.

Instantiate this class in order to access libsir with all the benefits of C++, including RAII initialization/cleanup, custom adapters, and more.

-
See also
default_logger
+
See also
default_logger
Template Parameters
@@ -142,7 +143,7 @@ diff --git a/docs/classsir_1_1policy.html b/docs/classsir_1_1policy.html index ac2d4e34d..9d7958479 100644 --- a/docs/classsir_1_1policy.html +++ b/docs/classsir_1_1policy.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
RAIISet to true to enable 'resource acquisition is initialization' behavior (i.e., libsir is initialized by the ctor, and cleaned up by the dtor). Set to false for manual management of initialization/cleanup.
- + @@ -84,7 +85,7 @@
@@ -118,7 +119,7 @@

Defines the partially abstract interface for a policy which controls the behavior of logger at runtime. - More...

+ More...

Inheritance diagram for sir::policy:
@@ -127,16 +128,16 @@ - + - +

Public Member Functions

virtual bool get_init_data (sirinit &data) const noexcept=0
virtual bool get_init_data (sirinit &data) const noexcept=0
 Called by logger before initializing libsir.
 
virtual bool on_init_complete () const noexcept=0
virtual bool on_init_complete () const noexcept=0
 Called by logger immediately after libsir has been initialized.
 
- +

Static Public Member Functions

static constexpr bool throw_on_error () noexcept
static constexpr bool throw_on_error () noexcept
 Determines whether or not exceptions are thrown in the event that an unercoverable error is encountered by logger or its associated adapter(s).
 
@@ -156,8 +157,7 @@

virtual bool sir::policy::get_init_data ( - sirinit &  - data) + sirinit & data) const @@ -200,7 +200,7 @@

virtual bool sir::policy::on_init_complete ( - ) + ) const @@ -237,7 +237,7 @@

static constexpr bool sir::policy::throw_on_error ( - ) + ) @@ -264,7 +264,7 @@

    - +

diff --git a/docs/classsir_1_1std__format__adapter.html b/docs/classsir_1_1std__format__adapter.html index b46b86b92..b9cfb8c29 100644 --- a/docs/classsir_1_1std__format__adapter.html +++ b/docs/classsir_1_1std__format__adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

Adapter for std::format (when available). - More...

+ More...

Inheritance diagram for sir::std_format_adapter< TPolicy >:
@@ -132,7 +133,7 @@
log.info_std("This is from {}!", "std::format");
The primary C++ interface to libsir.
Definition sir.hh:811
static bool throw_on_policy(bool expr) noexcept(false)
Handles a potential error; if an error is present and the policy in place requires throwing an except...
Definition sir.hh:289
-
See also
std_format_logger
+
See also
std_format_logger
Template Parameters
@@ -149,7 +150,7 @@ diff --git a/docs/classsir_1_1std__iostream__adapter.html b/docs/classsir_1_1std__iostream__adapter.html index 641605925..8a3379898 100644 --- a/docs/classsir_1_1std__iostream__adapter.html +++ b/docs/classsir_1_1std__iostream__adapter.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
TPolicyA derived class of policy which controls the behavior of logger and by association, its adapters.
- + @@ -84,7 +85,7 @@
@@ -115,7 +116,7 @@

Provides a std::iostream interface to libsir's logging functions. - More...

+ More...

Inheritance diagram for sir::std_iostream_adapter< TPolicy >:
@@ -150,7 +151,7 @@ diff --git a/docs/clipboard.js b/docs/clipboard.js new file mode 100644 index 000000000..42c1fb0e0 --- /dev/null +++ b/docs/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/docs/concepts.html b/docs/concepts.html index 456b28898..d80827131 100644 --- a/docs/concepts.html +++ b/docs/concepts.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -114,8 +115,8 @@
Here is a list of all documented concepts with brief descriptions:
-
[detail level 12]
- +
[detail level 12]
 NsirLibsir C++ wrapper implementation
+ @@ -127,7 +128,7 @@ diff --git a/docs/conceptsir_1_1_derived_from_policy.html b/docs/conceptsir_1_1_derived_from_policy.html index c5c6a47ff..00c6779b7 100644 --- a/docs/conceptsir_1_1_derived_from_policy.html +++ b/docs/conceptsir_1_1_derived_from_policy.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
 NsirLibsir C++ wrapper implementation
 RDerivedFromPolicyEnsures that T derives from policy
 RDerivedFromStreamBufEnsures that T derives from std::streambuf
 RDerivedFromTTrue if all Ts are derived classes of TBase, otherwise false
- + @@ -84,7 +85,7 @@
@@ -120,7 +121,7 @@ diff --git a/docs/conceptsir_1_1_derived_from_stream_buf.html b/docs/conceptsir_1_1_derived_from_stream_buf.html index eede3b17f..76a791938 100644 --- a/docs/conceptsir_1_1_derived_from_stream_buf.html +++ b/docs/conceptsir_1_1_derived_from_stream_buf.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -120,7 +121,7 @@ diff --git a/docs/conceptsir_1_1_derived_from_t.html b/docs/conceptsir_1_1_derived_from_t.html index 9b9d76afb..dc25ecf04 100644 --- a/docs/conceptsir_1_1_derived_from_t.html +++ b/docs/conceptsir_1_1_derived_from_t.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -120,7 +121,7 @@ diff --git a/docs/condition_8h.html b/docs/condition_8h.html index 4d63db743..1999de0b1 100644 --- a/docs/condition_8h.html +++ b/docs/condition_8h.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -125,16 +126,16 @@ - + - + - + - +

Functions

bool _sir_condcreate (sir_condition *cond)
bool _sir_condcreate (sir_condition *cond)
 Creates/initializes a new condition variable.
 
bool _sir_condbroadcast (sir_condition *cond)
bool _sir_condbroadcast (sir_condition *cond)
 Broadcast signals a condition variable.
 
bool _sir_conddestroy (sir_condition *cond)
bool _sir_conddestroy (sir_condition *cond)
 Destroys a condition variable.
 
bool _sir_condwait_timeout (sir_condition *cond, sir_mutex *mutex, const sir_wait *howlong)
bool _sir_condwait_timeout (sir_condition *cond, sir_mutex *mutex, const sir_wait *howlong)
 Waits a given amount of time for a condition variable to become signaled.
 
@@ -157,8 +158,7 @@

bool _sir_condbroadcast ( - sir_condition *  - cond) + sir_condition * cond) @@ -184,8 +184,7 @@

bool _sir_condcreate ( - sir_condition *  - cond) + sir_condition * cond) @@ -211,8 +210,7 @@

bool _sir_conddestroy ( - sir_condition *  - cond) + sir_condition * cond) @@ -238,25 +236,17 @@

bool _sir_condwait_timeout ( - sir_condition *  - cond, + sir_condition * cond, - sir_mutex *  - mutex, + sir_mutex * mutex, - const sir_wait *  - howlong  - - - - ) - + const sir_wait * howlong )

@@ -281,7 +271,7 @@

diff --git a/docs/condition_8h_source.html b/docs/condition_8h_source.html index b51c8cfb7..76e32adf1 100644 --- a/docs/condition_8h_source.html +++ b/docs/condition_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
@@ -152,7 +153,7 @@ diff --git a/docs/config.html b/docs/config.html index 14b750f8f..ab8d05c26 100644 --- a/docs/config.html +++ b/docs/config.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -113,7 +114,7 @@
Configuration
-

Compile-time configuration of libsir.

+

Compile-time configuration of libsir.

Environment variables

The variables in the following table are applied at compile-time when executing make.

Example:

@@ -172,7 +173,7 @@

sirconfig.h

diff --git a/docs/config_8h.html b/docs/config_8h.html index c73efe07c..5a00325d6 100644 --- a/docs/config_8h.html +++ b/docs/config_8h.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
- + @@ -84,7 +85,7 @@
@@ -128,10 +129,10 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - +

Macros

#define SIR_TIMEFORMAT   "%H:%M:%S"
#define SIR_TIMEFORMAT   "%H:%M:%S"
 The time stamp format string at the start of log messages-not including milliseconds (as::SIR_MSECFORMAT), which is added separately.
 
#define SIR_MSECFORMAT   ".%03ld"
#define SIR_MSECFORMAT   ".%03ld"
 The format for milliseconds (1000ths of a second) in time stamps.
 
@@ -142,56 +143,56 @@ #define SIR_EOL_LF   "\n"
 The line feed (LF) character to use in the end of line sequence.
 
#define SIR_EOL   SIR_EOL_LF
#define SIR_EOL   SIR_EOL_LF
 The end of line sequence.
 
#define SIR_LEVELPREFIX   "["
#define SIR_LEVELPREFIX   "["
 The string placed directly before the human-readable logging level.
 
#define SIR_LEVELSUFFIX   "]"
#define SIR_LEVELSUFFIX   "]"
 The string placed directly after the human-readable logging level.
 
#define SIR_PIDPREFIX   "("
#define SIR_PIDPREFIX   "("
 The string placed directly before process and thread IDs.
 
#define SIR_PIDSUFFIX   ")"
#define SIR_PIDSUFFIX   ")"
 The character placed directly after process and thread IDs.
 
#define SIR_PIDFORMAT   "%d"
#define SIR_PIDFORMAT   "%d"
 The format for the current process ID.
 
#define SIR_TIDFORMAT   "%d"
#define SIR_TIDFORMAT   "%d"
 The format for the current thread ID.
 
#define SIR_PIDSEPARATOR   "."
#define SIR_PIDSEPARATOR   "."
 The string to place between process and thread IDs.
 
#define SIR_FOPENMODE   "a"
 The string passed to fopen/fopen_s for log files.
 
#define SIR_FROLLSIZE   (1024 * 1024 * 5)
#define SIR_FROLLSIZE   (1024 * 1024 * 5)
 The size, in bytes, at which a log file will be rolled/archived.
 
#define SIR_FHTIMEFORMAT   "%H:%M:%S %a %d %b %Y (%z)"
 The time format string used in file headers (see SIR_FHFORMAT).
#define SIR_FHTIMEFORMAT   "%H:%M:%S %a %d %b %Y (%z)"
 The time format string used in file headers (see SIR_FHFORMAT).
 
#define SIR_FHFORMAT   SIR_EOL SIR_EOL "----- %s %s -----" SIR_EOL SIR_EOL
#define SIR_FHFORMAT   SIR_EOL SIR_EOL "----- %s %s -----" SIR_EOL SIR_EOL
 The format string written to a log file when logging begins or the file is rolled/archived.
 
#define SIR_FHBEGIN   "session begin @"
 The string included in SIR_FHFORMAT when a logging session begins.
#define SIR_FHBEGIN   "session begin @"
 The string included in SIR_FHFORMAT when a logging session begins.
 
#define SIR_FHROLLED   "archived as %s due to size @"
 The string included in SIR_FHFORMAT when a file is rolled/archived due to becoming larger than SIR_FROLLSIZE bytes in size.
#define SIR_FHROLLED   "archived as %s due to size @"
 The string included in SIR_FHFORMAT when a file is rolled/archived due to becoming larger than SIR_FROLLSIZE bytes in size.
 
#define SIR_FNAMETIMEFORMAT   "%Y-%m-%d-%H%M%S"
 The time format string for rolled/archived log files (see SIR_FNAMEFORMAT).
#define SIR_FNAMETIMEFORMAT   "%Y-%m-%d-%H%M%S"
 The time format string for rolled/archived log files (see SIR_FNAMEFORMAT).
 
#define SIR_FNAMESEQFORMAT   "-%hu"
 The sequence number format string for rolled/archived log files (see SIR_FNAMEFORMAT).
#define SIR_FNAMESEQFORMAT   "-%hu"
 The sequence number format string for rolled/archived log files (see SIR_FNAMEFORMAT).
 
#define SIR_FNAMEFORMAT   "%s-%s%s%s"
#define SIR_FNAMEFORMAT   "%s-%s%s%s"
 The format string for rolled/archived log file names.
 
@@ -238,7 +239,7 @@ #define SIR_MAXFHEADER   128
 The size, in characters, of the buffer used to hold file header format strings.
 
#define SIR_MAXMESSAGE   4096
#define SIR_MAXMESSAGE   4096
 The maximum number of characters allowable in one log message.
 
@@ -281,7 +282,7 @@ #define SIR_MAXERROR   256
 The maximum size, in characters, of an error message.
 
#define SIR_ERRORFORMAT   "Error in %s (%s:%u): '%s'"
#define SIR_ERRORFORMAT   "Error in %s (%s:%u): '%s'"
 The format string for error messages returned by sir_geterror.
 
@@ -316,7 +317,7 @@ #define SIR_NUMOPTIONS   8
 The number of actual options; SIRO_ALL, SIRO_DEFAULT, and SIRO_MSGONLY are pseudo options that end up being mapped (or not) to the others.
 
#define SIR_HNAME_CHK_INTERVAL   60
#define SIR_HNAME_CHK_INTERVAL   60
 The number of seconds to let elapse before checking if the hostname needs refreshing.
 
@@ -329,15 +330,15 @@
 
#define SIR_SQUELCH_THRESHOLD   5
 The number of consecutive duplicate messages that will cause libsir to squelch further identical messages, and instead log the message SIR_SQUELCH_MSG_FORMAT.
 The number of consecutive duplicate messages that will cause libsir to squelch further identical messages, and instead log the message SIR_SQUELCH_MSG_FORMAT.
 
#define SIR_SQUELCH_BACKOFF_FACTOR   2
 If duplicate messages continue to be logged after the threshold is met, the threshold will be multiplied by this number, resulting in longer intervals between SIR_SQUELCH_MSG_FORMAT messages.
 If duplicate messages continue to be logged after the threshold is met, the threshold will be multiplied by this number, resulting in longer intervals between SIR_SQUELCH_MSG_FORMAT messages.
 
#define SIR_SQUELCH_MSG_FORMAT   "previous message repeated %zu times"
 The message to be logged when SIR_SQUELCH_THRESHOLD (or a multiple thereof) consecutive duplicate messages are logged.
 The message to be logged when SIR_SQUELCH_THRESHOLD (or a multiple thereof) consecutive duplicate messages are logged.
 

Detailed Description

@@ -359,7 +360,7 @@

- +
#define SIR_EOL   SIR_EOL_LF#define SIR_EOL   SIR_EOL_LF

@@ -404,7 +405,7 @@

-

The string included in SIR_FHFORMAT when a logging session begins.

+

The string included in SIR_FHFORMAT when a logging session begins.

Remarks
Only applies if SIRO_NOHDR is not set.

@@ -416,7 +417,7 @@

- +
#define SIR_FHFORMAT   SIR_EOL SIR_EOL "----- %s %s -----" SIR_EOL SIR_EOL#define SIR_FHFORMAT   SIR_EOL SIR_EOL "----- %s %s -----" SIR_EOL SIR_EOL

@@ -425,11 +426,11 @@

Remarks
Only applies if SIRO_NOHDR is not set.

@@ -446,7 +447,7 @@

-

The string included in SIR_FHFORMAT when a file is rolled/archived due to becoming larger than SIR_FROLLSIZE bytes in size.

+

The string included in SIR_FHFORMAT when a file is rolled/archived due to becoming larger than SIR_FROLLSIZE bytes in size.

Remarks
Only applies if SIRO_NOHDR is not set.

The %s format specifier is the path of the archived file.

@@ -464,7 +465,7 @@

-

The time format string used in file headers (see SIR_FHFORMAT).

+

The time format string used in file headers (see SIR_FHFORMAT).

Remarks
Only applies if SIRO_NOHDR is not set.

Example

15:13:41 Fri 9 Jun 2023 (-0600)
@@ -485,8 +486,8 @@

SIR_FNAMETIMEFORMAT. -
  • The third %s is a sequence number, which may be used in the event that a log file with the same name already exists (i.e., 2 or more files are rolled/archived within a second). Its format is defined by SIR_FNAMESEQFORMAT.
  • +
  • The second %s is the time stamp as defined by SIR_FNAMETIMEFORMAT.
  • +
  • The third %s is a sequence number, which may be used in the event that a log file with the same name already exists (i.e., 2 or more files are rolled/archived within a second). Its format is defined by SIR_FNAMESEQFORMAT.
  • The fourth %s is the original file name including, and beyond the last full stop, if one was found.
  • Example

    `oldname.log` -> `oldname-23-06-09-122049-1.log`
    @@ -505,7 +506,7 @@

    -

    The sequence number format string for rolled/archived log files (see SIR_FNAMEFORMAT).

    +

    The sequence number format string for rolled/archived log files (see SIR_FNAMEFORMAT).

    Example

    -1

    @@ -522,7 +523,7 @@

    -

    The time format string for rolled/archived log files (see SIR_FNAMEFORMAT).

    +

    The time format string for rolled/archived log files (see SIR_FNAMEFORMAT).

    Example

    2023-06-09-122049
    @@ -608,7 +609,7 @@

    The maximum number of characters allowable in one log message.

    -

    This does not include accompanying formatted output (see SIR_MAXOUTPUT).

    +

    This does not include accompanying formatted output (see SIR_MAXOUTPUT).

    @@ -743,7 +744,7 @@

    diff --git a/docs/config_8h_source.html b/docs/config_8h_source.html index 8874a52f2..c956c4622 100644 --- a/docs/config_8h_source.html +++ b/docs/config_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
    @@ -384,7 +385,7 @@ diff --git a/docs/console_8h_source.html b/docs/console_8h_source.html index bf506380a..8c999efd5 100644 --- a/docs/console_8h_source.html +++ b/docs/console_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -195,7 +196,7 @@ diff --git a/docs/cookie.js b/docs/cookie.js new file mode 100644 index 000000000..53ad21d98 --- /dev/null +++ b/docs/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/docs/defaults_8h.html b/docs/defaults_8h.html index b742b4c17..c4b5fd011 100644 --- a/docs/defaults_8h.html +++ b/docs/defaults_8h.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -195,7 +196,7 @@ diff --git a/docs/defaults_8h_source.html b/docs/defaults_8h_source.html index 96e11ddaa..2c529901a 100644 --- a/docs/defaults_8h_source.html +++ b/docs/defaults_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -265,7 +266,7 @@ diff --git a/docs/dir_38c8d24aef3972a7f87b834274e76e31.html b/docs/dir_38c8d24aef3972a7f87b834274e76e31.html index 3cc1e0d28..3abcaea79 100644 --- a/docs/dir_38c8d24aef3972a7f87b834274e76e31.html +++ b/docs/dir_38c8d24aef3972a7f87b834274e76e31.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -126,7 +127,7 @@ diff --git a/docs/dir_49e56c817e5e54854c35e136979f97ca.html b/docs/dir_49e56c817e5e54854c35e136979f97ca.html index 287fa94db..a05d101da 100644 --- a/docs/dir_49e56c817e5e54854c35e136979f97ca.html +++ b/docs/dir_49e56c817e5e54854c35e136979f97ca.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -120,7 +121,7 @@ diff --git a/docs/dir_59425e443f801f1f2fd8bbe4959a3ccf.html b/docs/dir_59425e443f801f1f2fd8bbe4959a3ccf.html index 50134e9f5..9a8f2aadb 100644 --- a/docs/dir_59425e443f801f1f2fd8bbe4959a3ccf.html +++ b/docs/dir_59425e443f801f1f2fd8bbe4959a3ccf.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -132,7 +133,7 @@ diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html index ac52e9b30..5a9deb136 100644 --- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -129,7 +130,7 @@ diff --git a/docs/dir_89aa746955889ced97536d9f51ce6c73.html b/docs/dir_89aa746955889ced97536d9f51ce6c73.html index 0685ebed1..97e71bbec 100644 --- a/docs/dir_89aa746955889ced97536d9f51ce6c73.html +++ b/docs/dir_89aa746955889ced97536d9f51ce6c73.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -175,7 +176,7 @@ diff --git a/docs/dir_98b0b4f2b7ada084522cf3f9258d0075.html b/docs/dir_98b0b4f2b7ada084522cf3f9258d0075.html index 88819b411..9c4c988e3 100644 --- a/docs/dir_98b0b4f2b7ada084522cf3f9258d0075.html +++ b/docs/dir_98b0b4f2b7ada084522cf3f9258d0075.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -120,7 +121,7 @@ diff --git a/docs/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html b/docs/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html index 0901fb760..1004ee66c 100644 --- a/docs/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html +++ b/docs/dir_cfafba98a580ce4b62f8a6fa96d7cbb0.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -127,7 +128,7 @@ diff --git a/docs/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/dir_d44c64559bbebec7f509842c48db8b23.html index 0218ffcbb..4d1d173ea 100644 --- a/docs/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/docs/dir_d44c64559bbebec7f509842c48db8b23.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -135,7 +136,7 @@ diff --git a/docs/dir_d4f373425b53e326d93013419ec79018.html b/docs/dir_d4f373425b53e326d93013419ec79018.html index 4e2e8d8fe..3ac0fc466 100644 --- a/docs/dir_d4f373425b53e326d93013419ec79018.html +++ b/docs/dir_d4f373425b53e326d93013419ec79018.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -126,7 +127,7 @@ diff --git a/docs/doxygen_crawl.html b/docs/doxygen_crawl.html new file mode 100644 index 000000000..fe7f70be1 --- /dev/null +++ b/docs/doxygen_crawl.html @@ -0,0 +1,207 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dynsections.js b/docs/dynsections.js index 71c1dbd44..00dca41ad 100644 --- a/docs/dynsections.js +++ b/docs/dynsections.js @@ -22,171 +22,173 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); - $('table.directory tr'). - removeClass('odd').filter(':visible:odd').addClass('odd'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l'); - // add vertical lines to other rows - $('span[class=lineno]').not(':eq(0)').append(''); - // add toggle controls to lines with fold divs - $('div[class=foldopen]').each(function() { - // extract specific id to use - var id = $(this).attr('id').replace('foldopen',''); - // extract start and end foldable fragment attributes - var start = $(this).attr('data-start'); - var end = $(this).attr('data-end'); - // replace normal fold span with controls for the first line of a foldable fragment - $(this).find('span[class=fold]:first').replaceWith(''); - // append div for folded (closed) representation - $(this).after(''); - // extract the first line from the "open" section to represent closed content - var line = $(this).children().first().clone(); - // remove any glow that might still be active on the original line - $(line).removeClass('glow'); - if (start) { - // if line already ends with a start marker (e.g. trailing {), remove it - $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + this.updateStripes(); + }, + + toggleFolder : function(id) { + // the clicked row + const currentRow = $('#row_'+id); + + // all rows after the clicked row + const rows = currentRow.nextAll("tr"); + + const re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub + + // only match elements AFTER this one (can't hide elements before) + const childRows = rows.filter(function() { return this.id.match(re); }); + + // first row is visible we are HIDING + if (childRows.filter(':first').is(':visible')===true) { + // replace down arrow by right arrow for current row + const currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + currentRowSpans.filter(".arrow").html('►'); + rows.filter("[id^=row_"+id+"]").hide(); // hide all children + } else { // we are SHOWING + // replace right arrow by down arrow for current row + const currentRowSpans = currentRow.find("span"); + currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen"); + currentRowSpans.filter(".arrow").html('▼'); + // replace down arrows by right arrows for child rows + const childRowsSpans = childRows.find("span"); + childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); + childRowsSpans.filter(".arrow").html('►'); + childRows.show(); //show all children } - // replace minus with plus symbol - $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); - // append ellipsis - $(line).append(' '+start+''+end); - // insert constructed line into closed div - $('#foldclosed'+id).html(line); - }); -} - + this.updateStripes(); + }, + + toggleInherit : function(id) { + const rows = $('tr.inherit.'+id); + const img = $('tr.inherit_header.'+id+' img'); + const src = $(img).attr('src'); + if (rows.filter(':first').is(':visible')===true) { + rows.css('display','none'); + $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + rows.css('display','table-row'); // using show() causes jump in firefox + $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + } + }, +}; + +let codefold = { + opened : true, + + // in case HTML_COLORSTYLE is LIGHT or DARK the vars will be replaced, so we write them out explicitly and use double quotes + plusImg: [ "url('plusd.svg')", "url('../../plusd.svg')" ], + minusImg: [ "url('minusd.svg')", "url('../../minusd.svg')" ], + + // toggle all folding blocks + toggle_all : function(relPath) { + if (this.opened) { + $('#fold_all').css('background-image',this.plusImg[relPath]); + $('div[id^=foldopen]').hide(); + $('div[id^=foldclosed]').show(); + } else { + $('#fold_all').css('background-image',this.minusImg[relPath]); + $('div[id^=foldopen]').show(); + $('div[id^=foldclosed]').hide(); + } + this.opened=!this.opened; + }, + + // toggle single folding block + toggle : function(id) { + $('#foldopen'+id).toggle(); + $('#foldclosed'+id).toggle(); + }, + + init : function(relPath) { + $('span[class=lineno]').css({ + 'padding-right':'4px', + 'margin-right':'2px', + 'display':'inline-block', + 'width':'54px', + 'background':'linear-gradient(#808080,#808080) no-repeat 46px/2px 100%' + }); + // add global toggle to first line + $('span[class=lineno]:first').append(''); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; /* @license-end */ diff --git a/docs/errors_8h_source.html b/docs/errors_8h_source.html index 508fdf3f6..4db3d46b1 100644 --- a/docs/errors_8h_source.html +++ b/docs/errors_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -298,7 +299,7 @@ diff --git a/docs/example_8c.html b/docs/example_8c.html index 103f15316..a19ee0ad2 100644 --- a/docs/example_8c.html +++ b/docs/example_8c.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -121,13 +122,13 @@ - + - + - +

    Functions

    int report_error (void)
    int report_error (void)
     Prints the last libsir error to stderr.
     
    void report_warning (const char *warning)
    void report_warning (const char *warning)
     Prints a warning message along with the last libsir error to stderr.
     
    int main (void)
    int main (void)
     This is a basic example of initializing and configuring libsir for use.
     
    @@ -151,8 +152,7 @@

    int main ( - void  - ) + void ) @@ -174,8 +174,7 @@

    int report_error ( - void  - ) + void ) @@ -195,8 +194,7 @@

    void report_warning ( - const char *  - warning) + const char * warning) @@ -219,7 +217,7 @@

    diff --git a/docs/filecache_8h_source.html b/docs/filecache_8h_source.html index 58caf1bae..0e61ea42b 100644 --- a/docs/filecache_8h_source.html +++ b/docs/filecache_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
    @@ -207,7 +208,7 @@ diff --git a/docs/files.html b/docs/files.html index 74aae1a9f..f52455e99 100644 --- a/docs/files.html +++ b/docs/files.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -114,11 +115,11 @@
    Here is a list of all documented files with brief descriptions:
    -
    [detail level 123]
    - +
    [detail level 123]
      example
    + - - + + @@ -145,13 +146,13 @@ - - + + - + - + @@ -164,7 +165,7 @@ diff --git a/docs/filesystem_8h_source.html b/docs/filesystem_8h_source.html index 4871d831d..d6d3509b6 100644 --- a/docs/filesystem_8h_source.html +++ b/docs/filesystem_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
      example
     example.cA simple demonstration of initialization, configuration, and basic usage of libsir
      include
      sir
      include
      sir
     ansimacros.hANSI escape sequence macros
     condition.h
     config.hCompile-time configuration
     wineventlog.h
     sir.hPublic interface to libsir
     sir.hhC++ interface to libsir
      plugins
      sample
      plugins
      sample
     plugin_sample.h
      src
      src
     sir.cPublic interface to libsir
     sircondition.c
      tests
      tests
     tests++.hh
     tests.h
     tests_malloc.h
    - +
    @@ -89,7 +90,7 @@
    @@ -222,7 +223,7 @@ diff --git a/docs/functions.html b/docs/functions.html index ce4c8aed5..59022523d 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -271,7 +272,7 @@

    - w -

      diff --git a/docs/functions_func.html b/docs/functions_func.html index cb77c0ae0..21b125620 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -129,7 +130,7 @@ diff --git a/docs/functions_vars.html b/docs/functions_vars.html index 73569c835..497bf9b6f 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -252,7 +253,7 @@

    - w -

      diff --git a/docs/globals.html b/docs/globals.html index bf2f8e7d8..18a27c580 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -291,7 +292,7 @@

    - s -

      diff --git a/docs/globals_defs.html b/docs/globals_defs.html index a1c9362ec..d6497fbfd 100644 --- a/docs/globals_defs.html +++ b/docs/globals_defs.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -221,7 +222,7 @@

    - s -

      diff --git a/docs/globals_func.html b/docs/globals_func.html index 50e58d8d7..ec8bf8e66 100644 --- a/docs/globals_func.html +++ b/docs/globals_func.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -174,7 +175,7 @@

    - s -

      diff --git a/docs/globals_vars.html b/docs/globals_vars.html index 05f07ec1f..090fcb904 100644 --- a/docs/globals_vars.html +++ b/docs/globals_vars.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -134,7 +135,7 @@ diff --git a/docs/graph_legend.html b/docs/graph_legend.html index c2791ac76..02bb5368d 100644 --- a/docs/graph_legend.html +++ b/docs/graph_legend.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -179,7 +180,7 @@ diff --git a/docs/group__cpp.html b/docs/group__cpp.html index bd3e677ad..01f2a417c 100644 --- a/docs/group__cpp.html +++ b/docs/group__cpp.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -134,7 +135,7 @@ diff --git a/docs/group__cpp.map b/docs/group__cpp.map index 3cddb093b..5acc3c6c2 100644 --- a/docs/group__cpp.map +++ b/docs/group__cpp.map @@ -1,5 +1,5 @@ - - + + diff --git a/docs/group__cpp.md5 b/docs/group__cpp.md5 index 891a96f59..815a92132 100644 --- a/docs/group__cpp.md5 +++ b/docs/group__cpp.md5 @@ -1 +1 @@ -462b92518fe0cc3c91f0d70199ee7926 \ No newline at end of file +f24d7dff3b01a595a06f85abf0c13140 \ No newline at end of file diff --git a/docs/group__cpp.svg b/docs/group__cpp.svg index 8835f76d2..b2c3882c1 100644 --- a/docs/group__cpp.svg +++ b/docs/group__cpp.svg @@ -1,7 +1,7 @@ - Node3 - + Tests @@ -45,7 +45,7 @@ Node2 - + Public Interface @@ -54,8 +54,8 @@ Node2->Node1 - - + + diff --git a/docs/group__cpp_org.svg b/docs/group__cpp_org.svg index e0ef50308..1b8ad1580 100644 --- a/docs/group__cpp_org.svg +++ b/docs/group__cpp_org.svg @@ -1,7 +1,7 @@ - Node3 - + Tests @@ -35,7 +35,7 @@ Node2 - + Public Interface @@ -44,8 +44,8 @@ Node2->Node1 - - + + diff --git a/docs/group__default.html b/docs/group__default.html index d8c337c35..b0beeb479 100644 --- a/docs/group__default.html +++ b/docs/group__default.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,63 +116,60 @@
    Defaults
    - -

    Default sir_option bitmasks, sir_level registrations, and sir_textstyle bitmasks. -More...

    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Variables

    static const sir_levels sir_stdout_def_lvls = SIRL_DEBUG | SIRL_INFO | SIRL_NOTICE | SIRL_WARN
    static const sir_levels sir_stdout_def_lvls = SIRL_DEBUG | SIRL_INFO | SIRL_NOTICE | SIRL_WARN
     Default levels for stdout.
     
    static const sir_options sir_stdout_def_opts = SIRO_NOTIME | SIRO_NOHOST | SIRO_NOPID | SIRO_NOTID
    static const sir_options sir_stdout_def_opts = SIRO_NOTIME | SIRO_NOHOST | SIRO_NOPID | SIRO_NOTID
     Default options for stdout.
     
    static const sir_levels sir_stderr_def_lvls = SIRL_ERROR | SIRL_CRIT | SIRL_ALERT | SIRL_EMERG
    static const sir_levels sir_stderr_def_lvls = SIRL_ERROR | SIRL_CRIT | SIRL_ALERT | SIRL_EMERG
     Default levels for stderr.
     
    static const sir_options sir_stderr_def_opts = SIRO_NOTIME | SIRO_NOHOST | SIRO_NOPID | SIRO_NOTID
    static const sir_options sir_stderr_def_opts = SIRO_NOTIME | SIRO_NOHOST | SIRO_NOPID | SIRO_NOTID
     Default options for stderr.
     
    static const sir_levels sir_syslog_def_lvls
    static const sir_levels sir_syslog_def_lvls
     Default levels for the system logger.
     
    static const sir_options sir_syslog_def_opts = SIRO_MSGONLY
    static const sir_options sir_syslog_def_opts = SIRO_MSGONLY
     Default options for the system logger.
     
    static const sir_levels sir_file_def_lvls = SIRL_ALL
    static const sir_levels sir_file_def_lvls = SIRL_ALL
     Default levels for log files.
     
    static const sir_options sir_file_def_opts = SIRO_ALL | SIRO_NOHOST
    static const sir_options sir_file_def_opts = SIRO_ALL | SIRO_NOHOST
     Default options for log files.
     
    static const sir_textstyle sir_lvl_emerg_def_style
    static const sir_textstyle sir_lvl_emerg_def_style
     Default sir_textstyle for SIRL_EMERG.
     
    static const sir_textstyle sir_lvl_alert_def_style
    static const sir_textstyle sir_lvl_alert_def_style
     Default sir_textstyle for SIRL_ALERT.
     
    static const sir_textstyle sir_lvl_crit_def_style
    static const sir_textstyle sir_lvl_crit_def_style
     Default sir_textstyle for SIRL_CRIT.
     
    static const sir_textstyle sir_lvl_error_def_style
    static const sir_textstyle sir_lvl_error_def_style
     Default sir_textstyle for SIRL_ERROR.
     
    static const sir_textstyle sir_lvl_warn_def_style
    static const sir_textstyle sir_lvl_warn_def_style
     Default sir_textstyle for SIRL_WARN.
     
    static const sir_textstyle sir_lvl_notice_def_style
    static const sir_textstyle sir_lvl_notice_def_style
     Default sir_textstyle for SIRL_NOTICE.
     
    static const sir_textstyle sir_lvl_info_def_style
    static const sir_textstyle sir_lvl_info_def_style
     Default sir_textstyle for SIRL_INFO.
     
    static const sir_textstyle sir_lvl_debug_def_style
    static const sir_textstyle sir_lvl_debug_def_style
     Default sir_textstyle for SIRL_DEBUG.
     

    Detailed Description

    -

    Default sir_option bitmasks, sir_level registrations, and sir_textstyle bitmasks.

    +

    Default sir_option bitmasks, sir_level registrations, and sir_textstyle bitmasks.

    See also
    SIRO_DEFAULT
    SIRL_DEFAULT
    @@ -660,7 +658,7 @@

    diff --git a/docs/group__plugins.html b/docs/group__plugins.html index a022001ff..fa690d928 100644 --- a/docs/group__plugins.html +++ b/docs/group__plugins.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -84,7 +85,7 @@
    @@ -118,16 +119,16 @@ - + - + - - + + - +

    Functions

    PLUGIN_EXPORT bool sir_plugin_query (sir_plugininfo *info)
    PLUGIN_EXPORT bool sir_plugin_query (sir_plugininfo *info)
     Called by libsir after the plugin library object is loaded, but before any other functions are probed or called.
     
    PLUGIN_EXPORT bool sir_plugin_init (void)
    PLUGIN_EXPORT bool sir_plugin_init (void)
     Called by libsir after the plugin is queried and successfully validated.
     
    PLUGIN_EXPORT bool sir_plugin_write (sir_level level, const char *message)
     Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of the sir_plugininfo structure when sir_plugin_query was called.
    PLUGIN_EXPORT bool sir_plugin_write (sir_level level, const char *message)
     Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of the sir_plugininfo structure when sir_plugin_query was called.
     
    PLUGIN_EXPORT bool sir_plugin_cleanup (void)
    PLUGIN_EXPORT bool sir_plugin_cleanup (void)
     Called by libsir when the plugin is about to be unloaded.
     
    @@ -199,7 +200,7 @@

    Creating your own plugin

    static const char* desc = "Logs messages and function calls to stdout.";
    static const uint64_t caps = 0ULL;
    -
    PLUGIN_EXPORT bool sir_plugin_query(sir_plugininfo* info) {
    +
    PLUGIN_EXPORT bool sir_plugin_query(sir_plugininfo* info) {
    info->iface_ver = SIR_PLUGIN_VCURRENT;
    info->maj_ver = maj_ver;
    info->min_ver = min_ver;
    @@ -214,28 +215,28 @@

    Creating your own plugin

    return true;
    }
    -
    PLUGIN_EXPORT bool sir_plugin_init(void) {
    +
    PLUGIN_EXPORT bool sir_plugin_init(void) {
    (void)printf("\t" SIR_DGRAY("plugin_sample ('%s')") SIR_EOL, __func__);
    return true;
    }
    -
    PLUGIN_EXPORT bool sir_plugin_write(sir_level level, const char* message) {
    +
    PLUGIN_EXPORT bool sir_plugin_write(sir_level level, const char* message) {
    (void)printf("\t" SIR_DGRAY("plugin_sample (%s): level: %04"PRIx16", message: %s") SIR_EOL,
    __func__, level, message);
    return true;
    }
    -
    PLUGIN_EXPORT bool sir_plugin_cleanup(void) { //-V524
    +
    PLUGIN_EXPORT bool sir_plugin_cleanup(void) { //-V524
    (void)printf("\t" SIR_DGRAY("plugin_sample ('%s')") SIR_EOL, __func__);
    return true;
    }
    ANSI escape sequence macros.
    #define SIR_DGRAY(s)
    Dark gray foreground text.
    Definition ansimacros.h:131
    #define SIR_EOL
    The end of line sequence.
    Definition config.h:91
    -
    PLUGIN_EXPORT bool sir_plugin_init(void)
    Called by libsir after the plugin is queried and successfully validated.
    Definition plugin_sample.c:70
    -
    PLUGIN_EXPORT bool sir_plugin_cleanup(void)
    Called by libsir when the plugin is about to be unloaded.
    Definition plugin_sample.c:81
    -
    PLUGIN_EXPORT bool sir_plugin_write(sir_level level, const char *message)
    Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of...
    Definition plugin_sample.c:75
    -
    PLUGIN_EXPORT bool sir_plugin_query(sir_plugininfo *info)
    Called by libsir after the plugin library object is loaded, but before any other functions are probed...
    Definition plugin_sample.c:55
    +
    PLUGIN_EXPORT bool sir_plugin_init(void)
    Called by libsir after the plugin is queried and successfully validated.
    Definition plugin_sample.c:70
    +
    PLUGIN_EXPORT bool sir_plugin_cleanup(void)
    Called by libsir when the plugin is about to be unloaded.
    Definition plugin_sample.c:81
    +
    PLUGIN_EXPORT bool sir_plugin_write(sir_level level, const char *message)
    Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of...
    Definition plugin_sample.c:75
    +
    PLUGIN_EXPORT bool sir_plugin_query(sir_plugininfo *info)
    Called by libsir after the plugin library object is loaded, but before any other functions are probed...
    Definition plugin_sample.c:55
    uint16_t sir_level
    The sir_level type.
    Definition types.h:71
    #define SIRO_NOTID
    Exclude thread ID/name.
    Definition types.h:87
    uint16_t sir_levels
    sir_level bitmask type.
    Definition types.h:74
    @@ -268,8 +269,7 @@

    PLUGIN_EXPORT bool sir_plugin_cleanup ( - void  - ) + void ) @@ -290,8 +290,7 @@

    PLUGIN_EXPORT bool sir_plugin_init ( - void  - ) + void ) @@ -312,8 +311,7 @@

    PLUGIN_EXPORT bool sir_plugin_query ( - sir_plugininfo *  - info) + sir_plugininfo * info) @@ -333,7 +331,7 @@

    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -353,24 +351,17 @@

    PLUGIN_EXPORT bool sir_plugin_write

    - - + - - - - - - - +
    infoPointer to a sir_plugininfo structure to be initialized by the plugin.
    (sir_level level, sir_level level,
    const char * message 
    )const char * message )

    -

    Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of the sir_plugininfo structure when sir_plugin_query was called.

    +

    Called by libsir when a message is dispatched on any level whose bit was set in the levels bitmask of the sir_plugininfo structure when sir_plugin_query was called.

    The message string will be pre-formatted according to the sir_option set in the opts bitmask of the sir_plugininfo structure.

    Parameters
    @@ -389,7 +380,7 @@

    diff --git a/docs/group__public.html b/docs/group__public.html index b2dc09961..73641c581 100644 --- a/docs/group__public.html +++ b/docs/group__public.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    - + @@ -84,7 +85,7 @@
    @@ -111,13 +112,10 @@
    Public Interface
    - -

    Functions and types that comprise the public interface to libsir. -More...

    Collaboration diagram for Public Interface:
    @@ -125,12 +123,15 @@
    +Topics + + +

    -Modules

     Functions
     
     
     Types
     
     
     C++ Wrapper
     
     

    Detailed Description

    @@ -141,7 +142,7 @@ diff --git a/docs/group__public.map b/docs/group__public.map index ebdfeaff4..64aee1563 100644 --- a/docs/group__public.map +++ b/docs/group__public.map @@ -1,6 +1,6 @@ - + diff --git a/docs/group__public.md5 b/docs/group__public.md5 index ed48908b4..7a1ce9965 100644 --- a/docs/group__public.md5 +++ b/docs/group__public.md5 @@ -1 +1 @@ -f1c3db5e4bd882209737e22a617d9779 \ No newline at end of file +39105cf86342456b103521902c43f5ea \ No newline at end of file diff --git a/docs/group__public.svg b/docs/group__public.svg index fc21fb067..f5a782426 100644 --- a/docs/group__public.svg +++ b/docs/group__public.svg @@ -1,7 +1,7 @@ - Node1 - + Public Interface @@ -39,8 +39,8 @@ Node1->Node4 - - + + @@ -54,8 +54,8 @@ Node1->Node2 - - + + @@ -69,8 +69,8 @@ Node1->Node3 - - + + diff --git a/docs/group__public_org.svg b/docs/group__public_org.svg index d07be5f40..c15a4d330 100644 --- a/docs/group__public_org.svg +++ b/docs/group__public_org.svg @@ -1,7 +1,7 @@ - Node1 - + Public Interface @@ -29,8 +29,8 @@ Node1->Node4 - - + + @@ -44,8 +44,8 @@ Node1->Node2 - - + + @@ -59,8 +59,8 @@ Node1->Node3 - - + + diff --git a/docs/group__publicfuncs.html b/docs/group__publicfuncs.html index ff96dc7ea..d8d2ed1c0 100644 --- a/docs/group__publicfuncs.html +++ b/docs/group__publicfuncs.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -123,109 +124,109 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Functions

    bool sir_makeinit (sirinit *si)
    bool sir_makeinit (sirinit *si)
     Fills out a sirinit structure with default values.
     
    bool sir_init (sirinit *si)
    bool sir_init (sirinit *si)
     Initializes libsir for use.
     
    bool sir_cleanup (void)
    bool sir_cleanup (void)
     Tears down and cleans up libsir after use.
     
    bool sir_isinitialized (void)
    bool sir_isinitialized (void)
     Determines whether or not libsir is in the initialized state.
     
    uint16_t sir_geterror (char message[SIR_MAXERROR])
    uint16_t sir_geterror (char message[SIR_MAXERROR])
     Retrieves a formatted message for the last error that occurred on the calling thread and returns the associated error code.
     
    void sir_geterrorinfo (sir_errorinfo *err)
    void sir_geterrorinfo (sir_errorinfo *err)
     Retrieves granular information about the last error that occurred on the calling thread.
     
    bool sir_debug (PRINTF_FORMAT const char *format,...)
    bool sir_debug (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_DEBUG level message.
     
    bool sir_info (PRINTF_FORMAT const char *format,...)
    bool sir_info (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_INFO level message.
     
    bool sir_notice (PRINTF_FORMAT const char *format,...)
    bool sir_notice (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_NOTICE level message.
     
    bool sir_warn (PRINTF_FORMAT const char *format,...)
    bool sir_warn (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_WARN level message.
     
    bool sir_error (PRINTF_FORMAT const char *format,...)
    bool sir_error (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_ERROR level message.
     
    bool sir_crit (PRINTF_FORMAT const char *format,...)
    bool sir_crit (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_CRIT level message.
     
    bool sir_alert (PRINTF_FORMAT const char *format,...)
    bool sir_alert (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_ALERT level message.
     
    bool sir_emerg (PRINTF_FORMAT const char *format,...)
    bool sir_emerg (PRINTF_FORMAT const char *format,...)
     Dispatches a SIRL_EMERG level message.
     
    sirfileid sir_addfile (const char *path, sir_levels levels, sir_options opts)
    sirfileid sir_addfile (const char *path, sir_levels levels, sir_options opts)
     Adds a log file and registers it to receive log output.
     
    bool sir_remfile (sirfileid id)
    bool sir_remfile (sirfileid id)
     Removes a file previously added to libsir.
     
    sirpluginid sir_loadplugin (const char *path)
    sirpluginid sir_loadplugin (const char *path)
     Loads a plugin module from disk.
     
    bool sir_unloadplugin (sirpluginid id)
    bool sir_unloadplugin (sirpluginid id)
     Unloads a previously registered plugin module.
     
    bool sir_filelevels (sirfileid id, sir_levels levels)
    bool sir_filelevels (sirfileid id, sir_levels levels)
     Set new level registrations for a log file already managed by libsir.
     
    bool sir_fileopts (sirfileid id, sir_options opts)
    bool sir_fileopts (sirfileid id, sir_options opts)
     Set new formatting options for a log file already managed by libsir.
     
    bool sir_settextstyle (sir_level level, sir_textattr attr, sir_textcolor fg, sir_textcolor bg)
    bool sir_settextstyle (sir_level level, sir_textattr attr, sir_textcolor fg, sir_textcolor bg)
     Set new text styling for stdio (stdout/stderr) destinations on a per-level basis.
     
    bool sir_resettextstyles (void)
    bool sir_resettextstyles (void)
     Reset text styling for stdio (stdout/stderr) destinations to their default values.
     
    sir_textcolor sir_makergb (sir_textcolor r, sir_textcolor g, sir_textcolor b)
    sir_textcolor sir_makergb (sir_textcolor r, sir_textcolor g, sir_textcolor b)
     Creates a sir_textcolor from red, green, and blue components.
     
    bool sir_setcolormode (sir_colormode mode)
    bool sir_setcolormode (sir_colormode mode)
     Sets the ANSI color mode for stdio destinations.
     
    bool sir_stdoutlevels (sir_levels levels)
    bool sir_stdoutlevels (sir_levels levels)
     Set new level registrations for stdout.
     
    bool sir_stdoutopts (sir_options opts)
    bool sir_stdoutopts (sir_options opts)
     Set new formatting options for stdout.
     
    bool sir_stderrlevels (sir_levels levels)
    bool sir_stderrlevels (sir_levels levels)
     Set new level registrations for stderr.
     
    bool sir_stderropts (sir_options opts)
    bool sir_stderropts (sir_options opts)
     Set new formatting options for stderr.
     
    bool sir_sysloglevels (sir_levels levels)
    bool sir_sysloglevels (sir_levels levels)
     Set new level registrations for the system logger destination.
     
    bool sir_syslogopts (sir_options opts)
    bool sir_syslogopts (sir_options opts)
     Set new formatting options for the system logger destination.
     
    bool sir_syslogid (const char *identity)
    bool sir_syslogid (const char *identity)
     Set new system logger identity.
     
    bool sir_syslogcat (const char *category)
    bool sir_syslogcat (const char *category)
     Set new system logger category.
     
    const char * sir_getversionstring (void)
    const char * sir_getversionstring (void)
     Returns the current libsir version as a string.
     
    uint32_t sir_getversionhex (void)
    uint32_t sir_getversionhex (void)
     Returns the current libsir version as a number.
     
    bool sir_isprerelease (void)
    bool sir_isprerelease (void)
     Whether or not this is a pre-release version of libsir.
     
    @@ -240,25 +241,17 @@

    sirfileid sir_addfile ( - const char *  - path, + const char * path, - sir_levels  - levels, + sir_levels levels, - sir_options  - opts  - - - - ) - + sir_options opts )

    @@ -273,8 +266,8 @@

    sir_filelevels and sir_fileopts, respectively. -
    See also
    sir_remfile
    +To change the file's level registrations or options after adding it, call sir_filelevels and sir_fileopts, respectively. +
    See also
    sir_remfile
    Parameters
    @@ -283,7 +276,7 @@

    Returns
    sirfileid If successful, a unique identifier that can later be used to modify level registrations, options, or remove the file from libsir. Upon failure, returns zero. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    sirfileid If successful, a unique identifier that can later be used to modify level registrations, options, or remove the file from libsir. Upon failure, returns zero. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -296,31 +289,24 @@

    bool sir_alert

    - - + - - - - - - - +
    pathThe absolute or relative path of the file to become a logging destination for libsir.
    (PRINTF_FORMAT const char * format, PRINTF_FORMAT const char * format,
     ... 
    ) ... )

    Dispatches a SIRL_ALERT level message.

    The message will be delivered to all destinations registered to receive alert-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -328,7 +314,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -341,17 +327,16 @@

    bool sir_cleanup

    - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (void )void )

    Tears down and cleans up libsir after use.

    -

    Deallocates resources such as memory buffers, file descriptors, etc. and resets the internal state. No calls into libsir will succeed after calling sir_cleanup (with the exception of sir_makeinit, sir_init, sir_isinitialized,sir_geterror, and sir_geterrorinfo).

    -

    May be called from any thread. If you wish to utilize libsir again during the same process' lifetime, simply call sir_init again.

    -
    Returns
    bool true if cleanup was successful, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +

    Deallocates resources such as memory buffers, file descriptors, etc. and resets the internal state. No calls into libsir will succeed after calling sir_cleanup (with the exception of sir_makeinit, sir_init, sir_isinitialized,sir_geterror, and sir_geterrorinfo).

    +

    May be called from any thread. If you wish to utilize libsir again during the same process' lifetime, simply call sir_init again.

    +
    Returns
    bool true if cleanup was successful, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -364,31 +349,24 @@

    bool sir_crit ( - PRINTF_FORMAT const char *  - format, + PRINTF_FORMAT const char * format, -   - ...  - - - - ) - + ... )

    Dispatches a SIRL_CRIT level message.

    The message will be delivered to all destinations registered to receive critical-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -396,7 +374,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -409,31 +387,24 @@

    bool sir_debug

    - - + - - - - - - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (PRINTF_FORMAT const char * format, PRINTF_FORMAT const char * format,
     ... 
    ) ... )

    Dispatches a SIRL_DEBUG level message.

    The message will be delivered to all destinations registered to receive debug-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -441,7 +412,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -454,31 +425,24 @@

    bool sir_emerg

    - - + - - - - - - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (PRINTF_FORMAT const char * format, PRINTF_FORMAT const char * format,
     ... 
    ) ... )

    Dispatches a SIRL_EMERG level message.

    The message will be delivered to all destinations registered to receive emergency-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -486,7 +450,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -499,31 +463,24 @@

    bool sir_error

    - - + - - - - - - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (PRINTF_FORMAT const char * format, PRINTF_FORMAT const char * format,
     ... 
    ) ... )

    Dispatches a SIRL_ERROR level message.

    The message will be delivered to all destinations registered to receive error-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -531,7 +488,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -544,19 +501,12 @@

    bool sir_filelevels

    - - + - - - - - - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (sirfileid id, sirfileid id,
    sir_levels levels 
    )sir_levels levels )
    @@ -566,7 +516,7 @@

    See also
    sir_fileopts
    +
    See also
    sir_fileopts
    Parameters
    @@ -574,7 +524,7 @@

    Returns
    bool true if the file is known to libsir and was successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the file is known to libsir and was successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -587,19 +537,12 @@

    bool sir_fileopts

    - - + - - - - - - - +
    idThe sirfileid obtained when the file was added to libsir.
    (sirfileid id, sirfileid id,
    sir_options opts 
    )sir_options opts )

    @@ -610,7 +553,7 @@

    SIRO_ALL
  • SIRO_NOHOST
  • -
    See also
    sir_filelevels
    +
    See also
    sir_filelevels
    Parameters
    @@ -618,7 +561,7 @@

    Returns
    bool true if the file is known to libsir and was successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the file is known to libsir and was successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -631,15 +574,14 @@

    uint16_t sir_geterror

    - - +
    idThe sirfileid obtained when the file was added to libsir.
    (char message[SIR_MAXERROR])char message[SIR_MAXERROR])

    Retrieves a formatted message for the last error that occurred on the calling thread and returns the associated error code.

    -

    To retrieve more granular information about an error, or to customize the error message format, use sir_geterrorinfo.

    +

    To retrieve more granular information about an error, or to customize the error message format, use sir_geterrorinfo.

    Remarks
    libsir maintains errors on a per-thread basis, so it's important that the same thread that encountered a failed library call be the one to retrieve the error message.
    Parameters
    @@ -660,15 +602,14 @@

    void sir_geterrorinfo

    - - +
    (sir_errorinfoerr)sir_errorinfo * err)

    Dispatches a SIRL_INFO level message.

    The message will be delivered to all destinations registered to receive information-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -766,7 +698,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -779,26 +711,25 @@

    bool sir_init

    - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (sirinitsi)sirinit * si)

    Initializes libsir for use.

    -

    Must be called before making any other calls into libsir (with the exception of sir_makeinit).

    -

    For every call to sir_init, there must be a corresponding call to sir_cleanup. All exported libsir functions are thread-safe, so you may initialize and cleanup on whichever thread you wish.

    -
    See also
    sir_makeinit
    +

    Must be called before making any other calls into libsir (with the exception of sir_makeinit).

    +

    For every call to sir_init, there must be a corresponding call to sir_cleanup. All exported libsir functions are thread-safe, so you may initialize and cleanup on whichever thread you wish.

    +
    See also
    sir_makeinit
    -sir_cleanup
    +sir_cleanup
    Parameters
    siPointer to a sirinit structure containing the desired settings and configuration. libsir makes a copy of this structure, so its lifetime is not a concern.
    -
    Returns
    bool true if initialization was successful, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if initialization was successful, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -811,8 +742,7 @@

    bool sir_isinitialized ( - void  - ) + void ) @@ -820,8 +750,8 @@

    Remarks
    Calling sir_init after libsir is initialized produces an error. Similarly, sir_cleanup behaves the same way if libsir is not initialized.
    -
    Returns
    bool true if sir_init has been called and libsir is initialized; false if sir_init has not yet been called, or a corresponding call to sir_cleanup has already been made.
    +
    Remarks
    Calling sir_init after libsir is initialized produces an error. Similarly, sir_cleanup behaves the same way if libsir is not initialized.
    +
    Returns
    bool true if sir_init has been called and libsir is initialized; false if sir_init has not yet been called, or a corresponding call to sir_cleanup has already been made.
    @@ -834,8 +764,7 @@

    bool sir_isprerelease ( - void  - ) + void ) @@ -855,8 +784,7 @@

    sirpluginid sir_loadplugin ( - const char *  - path) + const char * path) @@ -868,7 +796,7 @@

    Remarks
    If path is a relative path, it shall be treated as relative to the current working directory. This is not necessarily the same directory that your application's binary file resides in.
    The return value from this function is only valid for the lifetime of the process. If a crash or restart occurs, you will no longer be able to refer to the plugin by that identifier, and will have to load it again (libsir does not persist its plugin cache).
    -
    See also
    sir_unloadplugin
    +
    See also
    sir_unloadplugin
    Plugins
    Parameters
    @@ -877,7 +805,7 @@

    Returns
    sirpluginid If successful, a unique identifier that may later be used to unload the plugin module. Upon failure, returns zero. Use sir_geterror to obtain information about any error that may have occurred.

    +
    Returns
    sirpluginid If successful, a unique identifier that may later be used to unload the plugin module. Upon failure, returns zero. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -890,8 +818,7 @@

    bool sir_makeinit ( - sirinit *  - si) + sirinit * si) @@ -919,36 +846,28 @@

    sir_textcolor sir_makergb ( - sir_textcolor  - r, + sir_textcolor r, - sir_textcolor  - g, + sir_textcolor g, - sir_textcolor  - b  - - - - ) - + sir_textcolor b )

    Creates a sir_textcolor from red, green, and blue components.

    -
    Note
    Use this function to create colors suitable for sir_settextstyle when using RGB color mode.
    -
    See also
    sir_setcolormode
    +
    Note
    Use this function to create colors suitable for sir_settextstyle when using RGB color mode.
    +
    See also
    sir_setcolormode
    -sir_settextstyle
    +sir_settextstyle
    -Defaults
    +Defaults
    Parameters
    @@ -970,31 +889,24 @@

    bool sir_notice

    - - + - - - - - - - +
    rThe red component (0..255)
    (PRINTF_FORMAT const char * format, PRINTF_FORMAT const char * format,
     ... 
    ) ... )

    Dispatches a SIRL_NOTICE level message.

    The message will be delivered to all destinations registered to receive notice-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults

    Parameters
    @@ -1002,7 +914,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -1015,26 +927,25 @@

    bool sir_remfile

    - - +
    formatA printf-style format string, representing the template for the message to dispatch.
    (sirfileid id)sirfileid id)

    Removes a file previously added to libsir.

    -

    Immediately causes the file represented by id (the value returned from sir_addfile) to be removed from libsir, and its file descriptor closed.

    +

    Immediately causes the file represented by id (the value returned from sir_addfile) to be removed from libsir, and its file descriptor closed.

    Its contents will remain intact, and any pending writes will be flushed to the file before it is closed.

    -
    See also
    sir_filelevels
    +
    See also
    sir_filelevels
    -sir_fileopts
    +sir_fileopts
    Parameters
    idThe sirfileid obtained when the file was added to libsir.
    -
    Returns
    bool true if the file is known to libsir and was successfully removed, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the file is known to libsir and was successfully removed, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1047,21 +958,20 @@

    bool sir_resettextstyles ( - void  - ) + void )

    Reset text styling for stdio (stdout/stderr) destinations to their default values.

    -
    Note
    The text styling will be applied according to the current color mode (as previously set by sir_setcolormode, or by default, 16-color mode).
    -
    See also
    sir_setcolormode
    +
    Note
    The text styling will be applied according to the current color mode (as previously set by sir_setcolormode, or by default, 16-color mode).
    +
    See also
    sir_setcolormode
    -sir_settextstyle
    +sir_settextstyle
    -Defaults
    -
    Returns
    bool true if successfully reset, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +Defaults
    +
    Returns
    bool true if successfully reset, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1074,8 +984,7 @@

    bool sir_setcolormode ( - sir_colormode  - mode) + sir_colormode mode) @@ -1091,18 +1000,18 @@

    See also
    sir_makergb
    +
    See also
    sir_makergb
    -sir_settextstyle
    +sir_settextstyle
    -Defaults
    +Defaults
    Parameters
    modeOne of the SIRCM_* constants, defining the mode to use.
    -
    Returns
    bool true if the color mode was changed successfully, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the color mode was changed successfully, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1115,42 +1024,33 @@

    bool sir_settextstyle ( - sir_level  - level, + sir_level level, - sir_textattr  - attr, + sir_textattr attr, - sir_textcolor  - fg, + sir_textcolor fg, - sir_textcolor  - bg  - - - - ) - + sir_textcolor bg )

    Set new text styling for stdio (stdout/stderr) destinations on a per-level basis.

    -
    See also
    sir_setcolormode
    +
    See also
    sir_setcolormode
    -sir_resettextstyles
    +sir_resettextstyles
    -Defaults
    -
    Note
    Use SIRTC_DEFAULT to get the default foreground or background color. To set colors in RGB color mode, use sir_makergb to create the foreground and background colors.
    +Defaults
    +
    Note
    Use SIRTC_DEFAULT to get the default foreground or background color. To set colors in RGB color mode, use sir_makergb to create the foreground and background colors.
    Parameters
    @@ -1160,7 +1060,7 @@

    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1173,8 +1073,7 @@

    bool sir_stderrlevels

    - - +
    levelThe sir_level for which to set the text styling.
    (sir_levels levels)sir_levels levels)
    @@ -1188,15 +1087,15 @@

    sir_stderropts.

    -
    See also
    sir_stderropts
    +

    To modify formatting options for stderr, use sir_stderropts.

    +
    See also
    sir_stderropts
    Parameters
    levelsNew bitmask of sir_level to register for. If you wish to use the default levels, pass SIRL_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.

    @@ -1209,8 +1108,7 @@

    bool sir_stderropts ( - sir_options  - opts) + sir_options opts) @@ -1224,15 +1122,15 @@

    SIRO_NOPID
  • SIRO_NOTID
  • -

    To modify level registrations for stderr, use sir_stderrlevels.

    -
    See also
    sir_stderrlevels
    +

    To modify level registrations for stderr, use sir_stderrlevels.

    +
    See also
    sir_stderrlevels
    Parameters
    optsNew bitmask of sir_option for stderr. If you wish to use the default values, pass SIRL_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1245,8 +1143,7 @@

    bool sir_stdoutlevels ( - sir_levels  - levels) + sir_levels levels) @@ -1260,15 +1157,15 @@

    sir_stdoutopts.

    -
    See also
    sir_stdoutopts
    +

    To modify formatting options for stdout, use sir_stdoutopts.

    +
    See also
    sir_stdoutopts
    Parameters
    levelsNew bitmask of sir_level to register for. If you wish to use the default levels, pass SIRL_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1281,8 +1178,7 @@

    bool sir_stdoutopts ( - sir_options  - opts) + sir_options opts) @@ -1296,15 +1192,15 @@

    SIRO_NOPID
  • SIRO_NOTID
  • -

    To modify level registrations for stdout, use sir_stdoutlevels.

    -
    See also
    sir_stdoutlevels
    +

    To modify level registrations for stdout, use sir_stdoutlevels.

    +
    See also
    sir_stdoutlevels
    Parameters
    optsNew bitmask of sir_option for stdout. If you wish to use the default values, pass SIRL_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1317,8 +1213,7 @@

    bool sir_syslogcat ( - const char *  - category) + const char * category) @@ -1339,7 +1234,7 @@

    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1352,8 +1247,7 @@

    bool sir_syslogid ( - const char *  - identity) + const char * identity) @@ -1375,7 +1269,7 @@

    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1388,8 +1282,7 @@

    bool sir_sysloglevels ( - sir_levels  - levels) + sir_levels levels) @@ -1404,15 +1297,15 @@

    sir_syslogopts.

    -
    See also
    sir_syslogopts
    +

    To modify formatting options for the system logger, use sir_syslogopts.

    +
    See also
    sir_syslogopts
    Parameters
    levelsNew bitmask of sir_level to register for. If you wish to use the default levels, pass SIRL_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1425,8 +1318,7 @@

    bool sir_syslogopts ( - sir_options  - opts) + sir_options opts) @@ -1437,15 +1329,15 @@

    SIRO_MSGONLY -

    To modify level registrations for the system logger, use sir_sysloglevels.

    -
    See also
    sir_sysloglevels
    +

    To modify level registrations for the system logger, use sir_sysloglevels.

    +
    See also
    sir_sysloglevels
    Parameters
    optsNew bitmask of sir_option for the system logger. If you wish to use the default values, pass SIRO_DEFAULT.
    -
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if successfully updated, false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1458,17 +1350,16 @@

    bool sir_unloadplugin ( - sirpluginid  - id) + sirpluginid id)

    Unloads a previously registered plugin module.

    -

    Cleans up, de-registers, and unloads a plugin represented by id (the value returned from sir_loadplugin).

    +

    Cleans up, de-registers, and unloads a plugin represented by id (the value returned from sir_loadplugin).

    If the plugin is located in the cache, it is instructed to clean up and prepare to be unloaded. Upon completion of the plugin's clean up routine, it is unloaded.

    -
    See also
    sir_loadplugin
    +
    See also
    sir_loadplugin
    Plugins
    Parameters
    @@ -1477,7 +1368,7 @@

    Returns
    bool true if the plugin was located and successfully unloaded,false otherwise. Use sir_geterror to obtain information about any error that may have occurred.

    +
    Returns
    bool true if the plugin was located and successfully unloaded,false otherwise. Use sir_geterror to obtain information about any error that may have occurred.
    @@ -1490,31 +1381,24 @@

    bool sir_warn ( - PRINTF_FORMAT const char *  - format, + PRINTF_FORMAT const char * format, -   - ...  - - - - ) - + ... )

    Dispatches a SIRL_WARN level message.

    The message will be delivered to all destinations registered to receive warning-level messages, each with their own formatting and styling options.

    -
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    +
    Remarks
    To change options or level registrations for stdout/stderr, call sir_stdoutopts/sir_stdoutlevels and sir_stderropts/sir_stderrlevels, respectively. To change the text styling on a per-level basis, call sir_settextstyle.
    See also
    sir_level
    sir_option
    -Defaults
    +Defaults
    Parameters
    @@ -1522,7 +1406,7 @@

    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    +
    Returns
    bool true if the message was dispatched successfully to all registered destinations, false otherwise. Call sir_geterror to obtain information about any error that may have occurred.
    @@ -1532,7 +1416,7 @@

    diff --git a/docs/group__publicfuncs.map b/docs/group__publicfuncs.map index f3884d454..204d168e3 100644 --- a/docs/group__publicfuncs.map +++ b/docs/group__publicfuncs.map @@ -1,4 +1,4 @@ - + diff --git a/docs/group__publicfuncs.md5 b/docs/group__publicfuncs.md5 index 6034ff46c..71bf5a0dd 100644 --- a/docs/group__publicfuncs.md5 +++ b/docs/group__publicfuncs.md5 @@ -1 +1 @@ -da0f0f68caa39d054c73408a595382eb \ No newline at end of file +cdfa0de61705f4df7f069438e9d501b4 \ No newline at end of file diff --git a/docs/group__publicfuncs.svg b/docs/group__publicfuncs.svg index 5727cf3ac..7e1c03259 100644 --- a/docs/group__publicfuncs.svg +++ b/docs/group__publicfuncs.svg @@ -1,7 +1,7 @@ - Node2 - + Public Interface @@ -39,8 +39,8 @@ Node2->Node1 - - + + diff --git a/docs/group__publicfuncs_org.svg b/docs/group__publicfuncs_org.svg index fe9704cec..7caf9ef54 100644 --- a/docs/group__publicfuncs_org.svg +++ b/docs/group__publicfuncs_org.svg @@ -1,7 +1,7 @@ - Node2 - + Public Interface @@ -29,8 +29,8 @@ Node2->Node1 - - + + diff --git a/docs/group__publictypes.html b/docs/group__publictypes.html index 7f6300bee..09ede00d0 100644 --- a/docs/group__publictypes.html +++ b/docs/group__publictypes.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    formatA printf-style format string, representing the template for the message to dispatch.
    - + @@ -84,7 +85,7 @@
    @@ -126,23 +127,23 @@ - - + + - - + + - - + + - - + + - - + + - - + +

    Data Structures

    struct  sir_errorinfo
     Information about an error that occurred. More...
    struct  sir_errorinfo
     Information about an error that occurred. More...
     
    struct  sir_textstyle
     Container for all the information associated with the appearance of text in the context of stdio. More...
    struct  sir_textstyle
     Container for all the information associated with the appearance of text in the context of stdio. More...
     
    struct  sir_stdio_dest
     Configuration for stdio destinations (stdout and stderr). More...
    struct  sir_stdio_dest
     Configuration for stdio destinations (stdout and stderr). More...
     
    struct  sir_syslog_dest
     Configuration for the system logger destination. More...
    struct  sir_syslog_dest
     Configuration for the system logger destination. More...
     
    struct  sirinit
     libsir initialization and configuration data. More...
    struct  sirinit
     libsir initialization and configuration data. More...
     
    struct  sir_syslog_dest._state
     Reserved for internal use; do not modify. More...
    struct  sir_syslog_dest._state
     Reserved for internal use; do not modify. More...
     
    - + @@ -229,7 +230,7 @@ - + @@ -248,19 +249,19 @@ - + - + - + - + @@ -269,121 +270,121 @@

    @@ -197,7 +198,7 @@

     
    #define SIRO_NOTIME   0x00000100U
     Exclude time stamps (implies SIRO_NOMSEC).
     Exclude time stamps (implies SIRO_NOMSEC).
     
    #define SIRO_NOMSEC   0x00000200U
     
    #define SIRO_MSGONLY   0x00007f00U
     Sets all other options except SIRO_NOHDR.
     Sets all other options except SIRO_NOHDR.
     
    #define SIRO_DEFAULT   0x00100000U
     
    typedef uint16_t sir_level
     The sir_level type.
     The sir_level type.
     
    typedef uint16_t sir_levels
     sir_level bitmask type.
     sir_level bitmask type.
     
    typedef uint32_t sir_option
     The sir_option type.
     The sir_option type.
     
    typedef uint32_t sir_options
     sir_option bitmask type.
     sir_option bitmask type.
     
    typedef uint32_t sir_textcolor
    - - + - - + - - + - +

    Enumerations

    enum  sir_errorcode {
    -  SIR_E_NOERROR = 1 +
    enum  sir_errorcode {
    +  SIR_E_NOERROR = 1 ,
    -  SIR_E_NOTREADY = 2 +  SIR_E_NOTREADY = 2 ,
    -  SIR_E_ALREADY = 3 +  SIR_E_ALREADY = 3 ,
    -  SIR_E_DUPITEM = 4 +  SIR_E_DUPITEM = 4 ,
    -  SIR_E_NOITEM = 5 +  SIR_E_NOITEM = 5 ,
    -  SIR_E_NOROOM = 6 +  SIR_E_NOROOM = 6 ,
    -  SIR_E_OPTIONS = 7 +  SIR_E_OPTIONS = 7 ,
    -  SIR_E_LEVELS = 8 +  SIR_E_LEVELS = 8 ,
    -  SIR_E_TEXTSTYLE = 9 +  SIR_E_TEXTSTYLE = 9 ,
    -  SIR_E_STRING = 10 +  SIR_E_STRING = 10 ,
    -  SIR_E_NULLPTR = 11 +  SIR_E_NULLPTR = 11 ,
    -  SIR_E_INVALID = 12 +  SIR_E_INVALID = 12 ,
    -  SIR_E_NODEST = 13 +  SIR_E_NODEST = 13 ,
    -  SIR_E_UNAVAIL = 14 +  SIR_E_UNAVAIL = 14 ,
    -  SIR_E_INTERNAL = 15 +  SIR_E_INTERNAL = 15 ,
    -  SIR_E_COLORMODE = 16 +  SIR_E_COLORMODE = 16 ,
    -  SIR_E_TEXTATTR = 17 +  SIR_E_TEXTATTR = 17 ,
    -  SIR_E_TEXTCOLOR = 18 +  SIR_E_TEXTCOLOR = 18 ,
    -  SIR_E_PLUGINBAD = 19 +  SIR_E_PLUGINBAD = 19 ,
    -  SIR_E_PLUGINDAT = 20 +  SIR_E_PLUGINDAT = 20 ,
    -  SIR_E_PLUGINVER = 21 +  SIR_E_PLUGINVER = 21 ,
    -  SIR_E_PLUGINERR = 22 +  SIR_E_PLUGINERR = 22 ,
    -  SIR_E_PLATFORM = 23 +  SIR_E_PLATFORM = 23 ,
    -  SIR_E_UNKNOWN = 4095 +  SIR_E_UNKNOWN = 4095
    }
     Error codes. More...
     Error codes. More...
     
    enum  sir_colormode {
    -  SIRCM_16 = 0 +
    enum  sir_colormode {
    +  SIRCM_16 = 0 ,
    -  SIRCM_256 = 1 +  SIRCM_256 = 1 ,
    -  SIRCM_RGB = 2 +  SIRCM_RGB = 2 ,
    -  SIRCM_INVALID = 3 +  SIRCM_INVALID = 3
    }
     Color mode selection. More...
     Color mode selection. More...
     
    enum  sir_textattr {
    -  SIRTA_NORMAL = 0 +
    enum  sir_textattr {
    +  SIRTA_NORMAL = 0 ,
    -  SIRTA_BOLD = 1 +  SIRTA_BOLD = 1 ,
    -  SIRTA_DIM = 2 +  SIRTA_DIM = 2 ,
    -  SIRTA_EMPH = 3 +  SIRTA_EMPH = 3 ,
    -  SIRTA_ULINE = 4 +  SIRTA_ULINE = 4
    }
     Attributes for stdio output. More...
     Attributes for stdio output. More...
     
    enum  {
    -  SIRTC_BLACK = 0 +  SIRTC_BLACK = 0 ,
    -  SIRTC_RED = 1 +  SIRTC_RED = 1 ,
    -  SIRTC_GREEN = 2 +  SIRTC_GREEN = 2 ,
    -  SIRTC_YELLOW = 3 +  SIRTC_YELLOW = 3 ,
    -  SIRTC_BLUE = 4 +  SIRTC_BLUE = 4 ,
    -  SIRTC_MAGENTA = 5 +  SIRTC_MAGENTA = 5 ,
    -  SIRTC_CYAN = 6 +  SIRTC_CYAN = 6 ,
    -  SIRTC_LGRAY = 7 +  SIRTC_LGRAY = 7 ,
    -  SIRTC_DGRAY = 8 +  SIRTC_DGRAY = 8 ,
    -  SIRTC_BRED = 9 +  SIRTC_BRED = 9 ,
    -  SIRTC_BGREEN = 10 +  SIRTC_BGREEN = 10 ,
    -  SIRTC_BYELLOW = 11 +  SIRTC_BYELLOW = 11 ,
    -  SIRTC_BBLUE = 12 +  SIRTC_BBLUE = 12 ,
    -  SIRTC_BMAGENTA = 13 +  SIRTC_BMAGENTA = 13 ,
    -  SIRTC_BCYAN = 14 +  SIRTC_BCYAN = 14 ,
    -  SIRTC_WHITE = 15 +  SIRTC_WHITE = 15 ,
    -  SIRTC_DEFAULT = 256 +  SIRTC_DEFAULT = 256
    }
     Colors for stdio output (16-color mode). More...
     Colors for stdio output (16-color mode). More...
     

    Detailed Description

    @@ -408,7 +409,7 @@

    code -Numeric error code (see sir_errorcode). +Numeric error code (see sir_errorcode). const char * @@ -465,19 +466,19 @@

    +sir_textattr +sir_textcolor +sir_textcolor
    Data Fields
    -sir_textattr attr Text attributes.
    -sir_textcolor bg Background color.
    -sir_textcolor fg @@ -498,21 +499,21 @@

    &

    Configuration for stdio destinations (stdout and stderr).

    -
    See also
    sir_syslog_dest
    +
    See also
    sir_syslog_dest
    +sir_levels +sir_level bitmask defining output levels to register for. +sir_options +sir_option bitmask defining the formatting of output.
    Data Fields
    -sir_levels levels -sir_level bitmask defining output levels to register for.
    -sir_options opts -sir_option bitmask defining the formatting of output.
    @@ -529,11 +530,11 @@

    +struct sir_syslog_dest._state +sir_levels +sir_level bitmask defining levels to register for. +sir_options @@ -586,25 +587,25 @@

    ◆
    Note
    Pass a pointer to an instance of this structure to sir_init to begin using libsir.
    See also
    sir_makeinit
    -sir_stdio_dest
    +sir_stdio_dest
    -sir_syslog_dest
    +sir_syslog_dest

    Data Fields
    -struct sir_syslog_dest._state _state @@ -553,17 +554,17 @@

    The identity string to pass to the system logger.
    See also
    sir_syslogid

    -sir_levels levels -sir_level bitmask defining levels to register for.
    -sir_options opts -sir_option bitmask defining the formatting of output.
    Remarks
    Unlike the stdio and log file destinations, not all options are supported. This is due to the fact that system logging facilities typically already include the information represented by sir_option on their own.
    +sir_option bitmask defining the formatting of output.
    Remarks
    Unlike the stdio and log file destinations, not all options are supported. This is due to the fact that system logging facilities typically already include the information represented by sir_option on their own.

    Furthermore, the supported options vary based on the system logging facility in use.

    Note
    If your system supports syslog, and libsir is compiled with the intent to use it (SIR_SYSLOG_ENABLED is defined), then at least SIRO_NOPID is supported.
    +sir_stdio_dest +sir_stdio_dest +sir_syslog_dest
    Data Fields
    -sir_stdio_dest d_stderr stderr configuration.
    -sir_stdio_dest d_stdout stdout configuration.
    -sir_syslog_dest d_syslog @@ -614,7 +615,7 @@

    ◆

    name[SIR_MAXNAME] -The name to use in log messages (usually the process name).

    Set SIRO_NONAME in a destination's options bitmask to suppress it.

    +The name to use in log messages (usually the process name).

    Set SIRO_NONAME in a destination's options bitmask to suppress it.

    @@ -710,7 +711,7 @@

    - +
    enum sir_colormodeenum sir_colormode

    @@ -829,7 +830,7 @@

    diff --git a/docs/group__publictypes.map b/docs/group__publictypes.map index 31b0c9d2d..8f098da67 100644 --- a/docs/group__publictypes.map +++ b/docs/group__publictypes.map @@ -1,4 +1,4 @@ - + diff --git a/docs/group__publictypes.md5 b/docs/group__publictypes.md5 index a18c6eb04..a6aaa9202 100644 --- a/docs/group__publictypes.md5 +++ b/docs/group__publictypes.md5 @@ -1 +1 @@ -592859f31934e12bbc2fae14392963cb \ No newline at end of file +fdd951f04936449c1c4d517a61be34e1 \ No newline at end of file diff --git a/docs/group__publictypes.svg b/docs/group__publictypes.svg index 634a7c3f1..6beea046f 100644 --- a/docs/group__publictypes.svg +++ b/docs/group__publictypes.svg @@ -1,7 +1,7 @@ - Node2 - + Public Interface @@ -39,8 +39,8 @@ Node2->Node1 - - + + diff --git a/docs/group__publictypes_org.svg b/docs/group__publictypes_org.svg index 2ca46a134..d45ca4cda 100644 --- a/docs/group__publictypes_org.svg +++ b/docs/group__publictypes_org.svg @@ -1,7 +1,7 @@ - Node2 - + Public Interface @@ -29,8 +29,8 @@ Node2->Node1 - - + + diff --git a/docs/group__tests.html b/docs/group__tests.html index c165cd6db..1737fdb37 100644 --- a/docs/group__tests.html +++ b/docs/group__tests.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -84,7 +85,7 @@
    @@ -116,9 +117,6 @@
    Tests
    - -

    libsir integrity tests -More...

    Collaboration diagram for Tests:
    @@ -136,114 +134,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Functions

    bool sirtest_threadrace (void)
    bool sirtest_threadrace (void)
     Properly handle multiple threads competing for locked sections.
     
    bool sirtest_exceedmaxsize (void)
    bool sirtest_exceedmaxsize (void)
     Properly handle messages that exceed internal buffer sizes.
     
    bool sirtest_logwritesanity (void)
    bool sirtest_logwritesanity (void)
     Ensure the correct (and complete) message is written to a log file.
     
    bool sirtest_failnooutputdest (void)
    bool sirtest_failnooutputdest (void)
     Properly handle the lack of any output destinations.
     
    bool sirtest_failnulls (void)
    bool sirtest_failnulls (void)
     Properly handle null/empty input.
     
    bool sirtest_failemptymessage (void)
    bool sirtest_failemptymessage (void)
     Ensure an empty message is properly handled.
     
    bool sirtest_filecachesanity (void)
    bool sirtest_filecachesanity (void)
     Properly handle adding and removing log files.
     
    bool sirtest_failinvalidfilename (void)
    bool sirtest_failinvalidfilename (void)
     Properly handle invalid log file name.
     
    bool sirtest_failfilebadpermission (void)
    bool sirtest_failfilebadpermission (void)
     Properly handle log file without appropriate permissions.
     
    bool sirtest_faildupefile (void)
    bool sirtest_faildupefile (void)
     Properly refuse to add a duplicate file.
     
    bool sirtest_failremovebadfile (void)
    bool sirtest_failremovebadfile (void)
     Properly refuse to remove a file that isn't added.
     
    bool sirtest_rollandarchivefile (void)
    bool sirtest_rollandarchivefile (void)
     Properly roll/archive a file when it hits max size.
     
    bool sirtest_failwithoutinit (void)
    bool sirtest_failwithoutinit (void)
     Properly handle calls without initialization.
     
    bool sirtest_isinitialized (void)
    bool sirtest_isinitialized (void)
     
    bool sirtest_failinittwice (void)
    bool sirtest_failinittwice (void)
     Properly handle two initialization calls without corresponding cleanup.
     
    bool sirtest_failinvalidinitdata (void)
    bool sirtest_failinvalidinitdata (void)
     Properly handle initialization with junk memory.
     
    bool sirtest_initcleanupinit (void)
    bool sirtest_initcleanupinit (void)
     Properly handle initialization, cleanup, re-initialization.
     
    bool sirtest_initmakeinit (void)
    bool sirtest_initmakeinit (void)
     Properly initialize using sir_makeinit.
     
    bool sirtest_failaftercleanup (void)
    bool sirtest_failaftercleanup (void)
     Properly handle calls after cleanup.
     
    bool sirtest_errorsanity (void)
    bool sirtest_errorsanity (void)
     Properly return valid codes and messages for all possible errors.
     
    bool sirtest_textstylesanity (void)
    bool sirtest_textstylesanity (void)
     Properly style stdio output for each level, and handle style overrides.
     
    bool sirtest_optionssanity (void)
    bool sirtest_optionssanity (void)
     Properly reject invalid option bitmasks.
     
    bool sirtest_levelssanity (void)
    bool sirtest_levelssanity (void)
     Properly reject invalid level bitmasks.
     
    bool sirtest_mutexsanity (void)
    bool sirtest_mutexsanity (void)
     Ensure that the mutex implementation is functioning properly.
     
    bool sirtest_perf (void)
    bool sirtest_perf (void)
     Performance evaluation.
     
    bool sirtest_updatesanity (void)
    bool sirtest_updatesanity (void)
     Properly update levels/options at runtime.
     
    bool sirtest_threadidsanity (void)
    bool sirtest_threadidsanity (void)
     Properly format thread ID/names in output.
     
    bool sirtest_syslog (void)
    bool sirtest_syslog (void)
     Properly open, configure, and send messages to syslog().
     
    bool sirtest_os_log (void)
    bool sirtest_os_log (void)
     Properly open, configure, and send messages to os_log().
     
    bool sirtest_win_eventlog (void)
    bool sirtest_win_eventlog (void)
     Properly open, configure, and send messages to the Windows event log.
     
    bool sirtest_filesystem (void)
    bool sirtest_filesystem (void)
     Ensure the proper functionality of portable filesystem implementation.
     
    bool sirtest_squelchspam (void)
    bool sirtest_squelchspam (void)
     Ensure that spam messages are squelched, normal messages are not, and proper return values result from calls into libsir.
     
    bool sirtest_pluginloader (void)
    bool sirtest_pluginloader (void)
     Ensure that well-formed, valid plugins are successfully loaded, and that ill-formed/incorrectly behaving plugins are rejected.
     
    bool sirtest_stringutils (void)
    bool sirtest_stringutils (void)
     Ensure the string utility routines are functioning properly.
     
    bool sirtest_getcpucount (void)
    bool sirtest_getcpucount (void)
     Ensure the processor counting routines are functioning properly.
     
    bool sirtest_getversioninfo (void)
    bool sirtest_getversioninfo (void)
     Ensure that version retrieval exports are functioning properly.
     
    bool sirtest_threadpool (void)
    bool sirtest_threadpool (void)
     Ensure the proper functioning of the thread pool and job queue mech- anisms.
     
    @@ -259,8 +257,7 @@

    bool sirtest_errorsanity ( - void  - ) + void ) @@ -280,8 +277,7 @@

    bool sirtest_exceedmaxsize ( - void  - ) + void ) @@ -301,8 +297,7 @@

    bool sirtest_failaftercleanup ( - void  - ) + void ) @@ -322,8 +317,7 @@

    bool sirtest_faildupefile ( - void  - ) + void ) @@ -343,8 +337,7 @@

    bool sirtest_failemptymessage ( - void  - ) + void ) @@ -364,8 +357,7 @@

    bool sirtest_failfilebadpermission ( - void  - ) + void ) @@ -385,8 +377,7 @@

    bool sirtest_failinittwice ( - void  - ) + void ) @@ -406,8 +397,7 @@

    bool sirtest_failinvalidfilename ( - void  - ) + void ) @@ -427,8 +417,7 @@

    bool sirtest_failinvalidinitdata ( - void  - ) + void ) @@ -448,8 +437,7 @@

    bool sirtest_failnooutputdest ( - void  - ) + void ) @@ -469,8 +457,7 @@

    bool sirtest_failnulls ( - void  - ) + void ) @@ -490,8 +477,7 @@

    bool sirtest_failremovebadfile ( - void  - ) + void ) @@ -511,8 +497,7 @@

    bool sirtest_failwithoutinit ( - void  - ) + void ) @@ -532,8 +517,7 @@

    bool sirtest_filecachesanity ( - void  - ) + void ) @@ -553,8 +537,7 @@

    bool sirtest_filesystem ( - void  - ) + void ) @@ -574,8 +557,7 @@

    bool sirtest_getcpucount ( - void  - ) + void ) @@ -595,8 +577,7 @@

    bool sirtest_getversioninfo ( - void  - ) + void ) @@ -616,8 +597,7 @@

    bool sirtest_initcleanupinit ( - void  - ) + void ) @@ -637,8 +617,7 @@

    bool sirtest_initmakeinit ( - void  - ) + void ) @@ -658,8 +637,7 @@

    bool sirtest_isinitialized ( - void  - ) + void ) @@ -677,8 +655,7 @@

    bool sirtest_levelssanity ( - void  - ) + void ) @@ -698,8 +675,7 @@

    bool sirtest_logwritesanity ( - void  - ) + void ) @@ -719,8 +695,7 @@

    bool sirtest_mutexsanity ( - void  - ) + void ) @@ -740,8 +715,7 @@

    bool sirtest_optionssanity ( - void  - ) + void ) @@ -761,8 +735,7 @@

    bool sirtest_os_log ( - void  - ) + void ) @@ -783,8 +756,7 @@

    bool sirtest_perf ( - void  - ) + void ) @@ -804,8 +776,7 @@

    bool sirtest_pluginloader ( - void  - ) + void ) @@ -825,8 +796,7 @@

    bool sirtest_rollandarchivefile ( - void  - ) + void ) @@ -846,8 +816,7 @@

    bool sirtest_squelchspam ( - void  - ) + void ) @@ -867,8 +836,7 @@

    bool sirtest_stringutils ( - void  - ) + void ) @@ -888,8 +856,7 @@

    bool sirtest_syslog ( - void  - ) + void ) @@ -910,8 +877,7 @@

    bool sirtest_textstylesanity ( - void  - ) + void ) @@ -931,8 +897,7 @@

    bool sirtest_threadidsanity ( - void  - ) + void ) @@ -952,8 +917,7 @@

    bool sirtest_threadpool ( - void  - ) + void ) @@ -973,8 +937,7 @@

    bool sirtest_threadrace ( - void  - ) + void ) @@ -994,8 +957,7 @@

    bool sirtest_updatesanity ( - void  - ) + void ) @@ -1015,8 +977,7 @@

    bool sirtest_win_eventlog ( - void  - ) + void ) @@ -1034,7 +995,7 @@

    diff --git a/docs/group__tests.map b/docs/group__tests.map index 085ad2a90..ad952d8d2 100644 --- a/docs/group__tests.map +++ b/docs/group__tests.map @@ -1,4 +1,4 @@ - + diff --git a/docs/group__tests.md5 b/docs/group__tests.md5 index 46144e7df..b4d20b070 100644 --- a/docs/group__tests.md5 +++ b/docs/group__tests.md5 @@ -1 +1 @@ -db77adefc3d96cc84c078a0646048943 \ No newline at end of file +302ef8db879c584dfc6d30c5c968652c \ No newline at end of file diff --git a/docs/group__tests.svg b/docs/group__tests.svg index 1b89865b0..1b4ed08d1 100644 --- a/docs/group__tests.svg +++ b/docs/group__tests.svg @@ -1,7 +1,7 @@ - Node1 - + Tests diff --git a/docs/group__tests_org.svg b/docs/group__tests_org.svg index b098b7860..1865ff840 100644 --- a/docs/group__tests_org.svg +++ b/docs/group__tests_org.svg @@ -1,7 +1,7 @@ - Node1 - + Tests diff --git a/docs/helpers_8h_source.html b/docs/helpers_8h_source.html index a6907706c..9fdd13a07 100644 --- a/docs/helpers_8h_source.html +++ b/docs/helpers_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -540,7 +541,7 @@ diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 22885b42b..bef4618f3 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -114,18 +115,18 @@
    This inheritance list is sorted roughly, but not completely, alphabetically:
    -
    [detail level 12]
    - +
    [detail level 12]
     Csir::adapterDefines the abstract interface for an adapter, which ultimately becomes a public base class of logger (there can be more than one)
    + - + - + @@ -163,7 +164,7 @@ diff --git a/docs/impl_8h_source.html b/docs/impl_8h_source.html index b055b9512..96631783e 100644 --- a/docs/impl_8h_source.html +++ b/docs/impl_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
     Csir::adapterDefines the abstract interface for an adapter, which ultimately becomes a public base class of logger (there can be more than one)
     Csir::boost_format_adapter< TPolicy >Adapter for boost::format (when available)
     Csir::default_adapter< TPolicy >The default adapter implementation
     Csir::fmt_format_adapter< TPolicy >Adapter for {fmt} (when available)
     Csir::std_format_adapter< TPolicy >Adapter for std::format (when available)
     Csir::std_iostream_adapter< TPolicy >Provides a std::iostream interface to libsir's logging functions
     Csir::errorContains basic information about an error
     Csir::errorContains basic information about an error
     Csir::error_infoContains all available information about an error
     Csir::exceptionThe exception type thrown by libsir
     Csir::logger< RAII, TPolicy, TAdapters >The primary C++ interface to libsir
     Csir::policyDefines the partially abstract interface for a policy which controls the behavior of logger at runtime
     Csir::policyDefines the partially abstract interface for a policy which controls the behavior of logger at runtime
     Csir::default_policyIn the event that no custom configuration or behavior is desired, provides defaults for everything
     Csir_cl_argA command line argument
     Csir_cl_configShared command line configuration
    - +
    @@ -89,7 +90,7 @@
    @@ -381,7 +382,7 @@ diff --git a/docs/index.html b/docs/index.html index c26fe32fb..7cafa82e1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,37 +118,37 @@

    Release Commits License OpenHub GitLab Coverage Coverity REUSE Maintainability Reliability Security Scorecard Practices

    Overview

      -
    • Synopsis
    • -
    • Notables
    • -
    • Cross-platform compatibility
        -
      • System Loggers
      • -
      • C++ compatibility
      • -
      • Language Bindings
      • +
      • Synopsis
      • +
      • Notables
      • +
      • Cross-platform compatibility
      • -
      • An example
      • -
      • Building from source
          -
        • Unix Makefile
            -
          • Environment Variables
          • -
          • Recipes
          • +
          • An example
          • +
          • Building from source
              +
            • Unix Makefile
            • -
            • Visual Studio Code
                -
              • Build Tasks
              • +
              • Visual Studio Code
              • -
              • Visual Studio 2022
              • -
              • Dig in

                Synopsis

                libsir is a cross-platform, thread-safe logging library written in C (ISO/IEC 9899:2011 C11) that is designed to simplify and streamline the generation and distribution of human-readable information in software.

                @@ -173,21 +174,21 @@

                Cross-platform comp System Toolchain Linux ≳2.6.32
                -(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) GCC (4.8.4 ‑ 14.0.1),  Clang (3.8 ‑ 18.1.3),  Oracle Studio C/C++ (≳12.6),  Circle (1.0.0‑200),  IBM Advance Toolchain (14 ‑ 17),  IBM XL C/C++ (16.1.1.2 ‑ 16.1.1.15),  IBM Open XL C/C++ (17.1.1.0 ‑ 17.1.1.2),  NVIDIA HPC SDK C/C++ (23.5 ‑ 24.3),  Arm HPC C/C++ (22.1 ‑ 23.10),  DMD ImportC (2.104.2 ‑ 2.108.0),  AMD Optimizing C/C++ (4.0.0 ‑ 4.2.0),  Intel oneAPI DPC++/C++ (2023.1 ‑ 2024.1.0),  Open64 (5, AMD 4.5.2.1),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0),  Portable C Compiler (1.2.0.DEVEL‑20230730),  Kefir (≳0.3.0),  Chibicc (2020.12.6),  CompCert C (3.11 ‑ 3.14, no‑TLS),  Chamois‑CompCert C (3.14‑20231130, TLS) +(glibc ≳2.4, musl ≳1.2.3, uClibc‑ng ≳1.0.43) GCC (4.8.4 ‑ 14.1.1),  Clang (3.8 ‑ 18.1.5),  Oracle Studio C/C++ (≳12.6),  Circle (1.0.0‑200),  IBM Advance Toolchain (14 ‑ 17),  IBM XL C/C++ (16.1.1.2 ‑ 16.1.1.15),  IBM Open XL C/C++ (17.1.1.0 ‑ 17.1.1.2),  NVIDIA HPC SDK C/C++ (23.5 ‑ 24.3),  Arm HPC C/C++ (22.1 ‑ 23.10),  DMD ImportC (2.104.2 ‑ 2.108.1),  AMD Optimizing C/C++ (4.0.0 ‑ 4.2.0),  Intel oneAPI DPC++/C++ (2023.1 ‑ 2024.1.0),  Open64 (5, AMD 4.5.2.1),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0),  Portable C Compiler (1.2.0.DEVEL‑20230730),  Kefir (≳0.3.0),  Chibicc (2020.12.6),  CompCert C (3.11 ‑ 3.14, no‑TLS),  Chamois‑CompCert C (3.14‑20231130, TLS) -Android ≳5 Android NDK (r25c ‑ r26c) +Android ≳5 Android NDK (r25c ‑ r26d) -IBM AIX 7.2, 7.3 GCC (8.3 ‑ 12.3),  Clang (18.1.2 ‑ 18.1.3),  IBM XL C/C++ (16.1.0.3 ‑ 16.1.0.16),  IBM Open XL C/C++ (17.1.1.1 ‑ 17.1.2.4) +IBM AIX 7.2, 7.3 GCC (8.3 ‑ 12.3),  Clang (18.1.2 ‑ 18.1.5),  IBM XL C/C++ (16.1.0.3 ‑ 16.1.0.17),  IBM Open XL C/C++ (17.1.1.1 ‑ 17.1.2.5) -IBM i (PASE) 7.5 GCC (10.3.0 ‑ 10.5.0),  IBM XL C/C++ (16.1.0.16) +IBM i (PASE) 7.5 GCC (10.3.0 ‑ 10.5.0),  IBM XL C/C++ (16.1.0.15 ‑ 16.1.0.17) -macOS ≳10.15 Xcode (11.7 ‑ 15.3),  GCC (10.4 ‑ 13.2.1),  Clang (11.0.3 ‑ 17.0.6),  DMD ImportC (2.105.0 ‑ 2.108.0),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0) +macOS ≳10.15 Xcode (11.7 ‑ 15.3),  GCC (10.4 ‑ 13.2.1),  Clang (11.0.3 ‑ 17.0.6),  DMD ImportC (2.105.0 ‑ 2.108.1),  Intel C++ Compiler Classic (2021.9.0 ‑ 2021.10.0) -Windows ≳10, 11 Microsoft Visual C/C++ (17.6 ‑ 17.9.5),  Clang‑CL (16.0.6 ‑ 18.1.3),  GCC‑MinGW (12.2.1 ‑ 14.0.1),  LLVM‑MinGW (15.0 ‑ 18.1.3),  Embarcadero C++ (7.20 ‑ 7.70),  OrangeC (≳6.71.10) +Windows ≳10, 11 Microsoft Visual C/C++ (17.6 ‑ 17.9.6),  Clang‑CL (16.0.6 ‑ 18.1.5),  GCC‑MinGW (12.2.1 ‑ 14.0.1),  LLVM‑MinGW (15.0 ‑ 18.1.5),  Embarcadero C++ (7.20 ‑ 7.70),  OrangeC (≳6.71.10) Cygwin 3.4 GCC (11.2 ‑ 13.2.1) -FreeBSD ≳11.3 GCC (11.4 ‑ 13.2.1),  Clang (10 ‑ 17.0.6),  DMD ImportC (2.105.0 ‑ 2.108.0) +FreeBSD ≳11.3 GCC (11.4 ‑ 13.2.1),  Clang (10 ‑ 17.0.6),  DMD ImportC (2.105.0 ‑ 2.108.1) NetBSD 9.2 GCC (7.5 ‑ 13.2),  Clang (15.0.7 ‑ 17.0.6) @@ -199,13 +200,13 @@

                Cross-platform comp Haiku R1b4 GCC (11.2 ‑ 13.2),  Clang (12.0.1 ‑ 17.0.6) -Solaris 11.4 GCC (10.3 ‑ 11.2),  Clang (6 ‑ 18.1.2),  Oracle Studio C/C++ (≳12.6) +Solaris 11.4 GCC (10.3 ‑ 11.2),  Clang (6 ‑ 18.1.5),  Oracle Studio C/C++ (≳12.6) illumos GCC (7.5 ‑ 13.2),  Clang (15.0.7 ‑ 17.0.6) SerenityOS GCC (13.1) -WebAssembly/JS Emscripten (3.1.45 ‑ 3.1.56),  Node.js (20.5 ‑ 21.7.2) +WebAssembly/JS Emscripten (3.1.45 ‑ 3.1.59),  Node.js (20.5 ‑ 22.1.0)
                • libsir is known to work on most common (and many uncommon) architectures. It has been built and tested on Intel (x86_64, i686, x32), ARM (ARMv6, ARMv7HF, ARMv8‑A), POWER (PowerPC, PPC64, PPC64le), MIPS (MIPS64, MIPS32, 74Kc), SPARC (SPARC64, V8, LEON3), z/Architecture (S390X), SuperH (SH‑4A), RISC‑V (RV32, RV64), OpenRISC (OR1200), Kalray MPPA® (Coolidge™, KVX), and m68k (ColdFire, 68020+).
                • @@ -260,31 +261,31 @@

                  Recipes

                  Recipe Type Command     Output file(s) -Test suite (C) make tests
                    +Test suite (C) make tests
                    • build/bin/sirtests[.exe]
                    -Test suite (C++) make tests++
                      +Test suite (C++) make tests++
                      • build/bin/sirtests++[.exe]
                      -Example app make example
                        +Example app make example
                        • build/bin/sirexample[.exe]
                        -Static library make static
                          +Static library make static
                          • build/lib/libsir_s.a
                          -Shared library make shared
                            +nShared library make shared
                            • build/lib/libsir.so
                            @@ -306,7 +307,7 @@

                            Recipes

                          • See the CI configuration file for practical examples.

                          Visual Studio Code

                          -

                          A VS Code workspace file is located in the root of the repository (sir.code-workspace). Build tasks are only configured for macOS and Linux. On other platforms, use the integrated terminal to run GNU `make` manually.

                          +

                          A VS Code workspace file is located in the root of the repository (sir.code-workspace). Build tasks are only configured for macOS and Linux. On other platforms, use the integrated terminal to run GNU `make` manually.

                          Build Tasks

                          To run a task, open the command list (&#8984; + &#8679; + P on macOS, &#8963; + &#8679; + P on Linux), then start typing "run task" until you see "Tasks: Run Task". Click the item or press the key combination listed next to it. You should then see a drop-down menu containing all of the build tasks for libsir, which are listed here:

                          @@ -333,7 +334,7 @@

                          Build Tasks

                          C Example App Compiles the C sample application.
                          -

                          The VS Code build tasks execute make under the hood—the non-debug tasks map directly to the recipes listed under Unix Makefile; the debug tasks utilize libsir's custom environment variables to control the build process.

                          +

                          The VS Code build tasks execute make under the hood—the non-debug tasks map directly to the recipes listed under Unix Makefile; the debug tasks utilize libsir's custom environment variables to control the build process.

                          Visual Studio 2022

                          A Visual Studio 2022 solution containing appropriate project files can be found in the msvs directory. Tested on Windows 11 (x86, x64, and Arm64) with Visual Studio 17.6+. See the README for more information.

                          MSBuild

                          @@ -417,20 +418,23 @@

                          Other Tools

                          ShellCheck A static analysis tool for Unix shell scripts -SoftIntegration Ch C/C++ interpreter and interactive platform for scientific computing +Smatch Smatch (Source Matcher) is a static analysis tool for C code -Very Sleepy Sampling CPU profiler for Microsoft Windows applications +SoftIntegration Ch C/C++ interpreter and interactive platform for scientific computing +Very Sleepy Sampling CPU profiler for Microsoft Windows applications + Vftrace A performance profiling library with a focus on HPC applications

    + diff --git a/docs/internal_8h_source.html b/docs/internal_8h_source.html index 3d68d433b..385611329 100644 --- a/docs/internal_8h_source.html +++ b/docs/internal_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
    @@ -269,7 +270,7 @@ diff --git a/docs/maps_8h_source.html b/docs/maps_8h_source.html index 118f1764c..88f9eb685 100644 --- a/docs/maps_8h_source.html +++ b/docs/maps_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -170,7 +171,7 @@ diff --git a/docs/md_docs_2sources_2changelog.html b/docs/md_docs_2sources_2changelog.html index 1c1a300cb..26fd49cf2 100644 --- a/docs/md_docs_2sources_2changelog.html +++ b/docs/md_docs_2sources_2changelog.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -286,7 +287,7 @@

    May 17, 2023

    diff --git a/docs/menu.js b/docs/menu.js index b0b26936a..717761d01 100644 --- a/docs/menu.js +++ b/docs/menu.js @@ -24,13 +24,12 @@ */ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { function makeTree(data,relPath) { - var result=''; + let result=''; if ('children' in data) { result+='
      '; - for (var i in data.children) { - var url; - var link; - link = data.children[i].url; + for (let i in data.children) { + let url; + const link = data.children[i].url; if (link.substring(0,1)=='^') { url = link.substring(1); } else { @@ -44,7 +43,7 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { } return result; } - var searchBoxHtml; + let searchBoxHtml; if (searchEnabled) { if (serverSide) { searchBoxHtml='
      '+ @@ -88,29 +87,28 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { if (searchBoxHtml) { $('#main-menu').append('
    • '); } - var $mainMenuState = $('#main-menu-state'); - var prevWidth = 0; + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; if ($mainMenuState.length) { - function initResizableIfExists() { + const initResizableIfExists = function() { if (typeof initResizable==='function') initResizable(); } // animate mobile menu - $mainMenuState.change(function(e) { - var $menu = $('#main-menu'); - var options = { duration: 250, step: initResizableIfExists }; + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; if (this.checked) { - options['complete'] = function() { $menu.css('display', 'block') }; + options['complete'] = () => $menu.css('display', 'block'); $menu.hide().slideDown(options); } else { - options['complete'] = function() { $menu.css('display', 'none') }; + options['complete'] = () => $menu.css('display', 'none'); $menu.show().slideUp(options); } }); // set default menu visibility - function resetState() { - var $menu = $('#main-menu'); - var $mainMenuState = $('#main-menu-state'); - var newWidth = $(window).outerWidth(); + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); if (newWidth!=prevWidth) { if ($(window).outerWidth()<768) { $mainMenuState.prop('checked',false); $menu.hide(); diff --git a/docs/mutex_8h_source.html b/docs/mutex_8h_source.html index 3ccb6fae0..8c8ad0d0c 100644 --- a/docs/mutex_8h_source.html +++ b/docs/mutex_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
      - +
    @@ -89,7 +90,7 @@
    @@ -172,7 +173,7 @@ diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index 9d90222ca..ad0cc80f7 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -113,18 +114,18 @@
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    @@ -134,7 +135,7 @@ diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index 24ac8a68f..03c84c28c 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -128,7 +129,7 @@ diff --git a/docs/namespacemembers_type.html b/docs/namespacemembers_type.html index 380e6e464..fc0203aa0 100644 --- a/docs/namespacemembers_type.html +++ b/docs/namespacemembers_type.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -111,12 +112,12 @@
    Here is a list of all documented namespace typedefs with links to the namespaces they belong to:
      -
    • boost_logger : sir
    • -
    • default_logger : sir
    • -
    • fmt_logger : sir
    • -
    • iostream_logger : sir
    • -
    • NthTypeOf : sir
    • -
    • std_format_logger : sir
    • +
    • boost_logger : sir
    • +
    • default_logger : sir
    • +
    • fmt_logger : sir
    • +
    • iostream_logger : sir
    • +
    • NthTypeOf : sir
    • +
    • std_format_logger : sir
    @@ -124,7 +125,7 @@ diff --git a/docs/namespacesir.html b/docs/namespacesir.html index bf8b5edb6..6c5510153 100644 --- a/docs/namespacesir.html +++ b/docs/namespacesir.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -84,7 +85,7 @@
    @@ -121,7 +122,7 @@

    libsir C++ wrapper implementation. -More...

    +More...

    @@ -182,41 +183,41 @@

    Namespaces

    - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

    Typedefs

    -template<size_t N, typename ... Ts>
    using NthTypeOf = typename std::tuple_element< N, std::tuple< Ts... > >::type
     Utility template for obtaining the type of Nth item in a parameter pack.
     
    -using default_logger = logger< true, default_policy, default_adapter >
     A logger that implements the default adapter.
     
    -using std_format_logger = logger< true, default_policy, default_adapter, std_format_adapter >
     A logger that implements the default adapter and the std::format adapter.
     
    -using boost_logger = logger< true, default_policy, default_adapter, boost_format_adapter >
     A logger that implements the default adapter and the boost::format adapter.
     
    -using fmt_logger = logger< true, default_policy, default_adapter, fmt_format_adapter >
     A logger that implements the default adapter and the fmt::format adapter.
     
    -using iostream_logger = logger< true, default_policy, default_adapter, std_iostream_adapter >
     A logger that implements the default adapter and the std::iostream adapter.
     
    +template<size_t N, typename ... Ts>
    using NthTypeOf = typename std::tuple_element<N, std::tuple<Ts...>>::type
     Utility template for obtaining the type of Nth item in a parameter pack.
     
    +using default_logger = logger<true, default_policy, default_adapter>
     A logger that implements the default adapter.
     
    +using std_format_logger
     A logger that implements the default adapter and the std::format adapter.
     
    +using boost_logger
     A logger that implements the default adapter and the boost::format adapter.
     
    +using fmt_logger
     A logger that implements the default adapter and the fmt::format adapter.
     
    +using iostream_logger
     A logger that implements the default adapter and the std::iostream adapter.
     
    - + - +template<size_t N, typenameTBase , typename ... Ts> +

    Functions

    template<DerivedFromPolicy TPolicy>
    static bool throw_on_policy (bool expr) noexcept(false)
    static bool throw_on_policy (bool expr) noexcept(false)
     Handles a potential error; if an error is present and the policy in place requires throwing an exception, retrieves the associated error code and message from libsir, then throws.
     
    -template<size_t N, typename TBase , typename ... Ts>
    consteval auto all_derived_from_t ()
    consteval auto all_derived_from_t ()
     Ensures (at compile time) that all Ts are derived classes of TBase.
     
    @@ -237,8 +238,7 @@

    static bool sir::throw_on_policy ( - bool  - expr) + bool expr) @@ -273,7 +273,7 @@

      - +

    diff --git a/docs/namespacesir_1_1tests.html b/docs/namespacesir_1_1tests.html index a72d210a0..c8b43a404 100644 --- a/docs/namespacesir_1_1tests.html +++ b/docs/namespacesir_1_1tests.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,32 +118,32 @@

    libsir C++ wrapper tests. -More...

    +More...

    - + - + - + - + - + - + - + - +

    Functions

    bool raii_init_cleanup ()
    bool raii_init_cleanup ()
     Ensure that RAII loggers are functioning properly.
     
    bool manual_init_cleanup ()
    bool manual_init_cleanup ()
     Ensure that manual initialization and cleanup is working properly.
     
    bool error_handling ()
    bool error_handling ()
     Ensure that the C++ wrapper properly handles errors from libsir.
     
    bool exception_handling ()
    bool exception_handling ()
     Ensure that exceptions are properly constructed in various ways.
     
    bool std_format ()
    bool std_format ()
     If std::format support is enabled, ensure that it is working properly.
     
    bool boost_format ()
    bool boost_format ()
     If boost::format support is enabled, ensure that it is working properly.
     
    bool fmt_format ()
    bool fmt_format ()
     If fmt::format support is enabled, ensure that it is working properly.
     
    bool std_iostream_format ()
    bool std_iostream_format ()
     If std::iostream support is enabled, ensure that it is working properly.
     
    @@ -158,7 +159,7 @@

    bool sir::tests::boost_format ( - ) + ) @@ -178,7 +179,7 @@

    bool sir::tests::error_handling ( - ) + ) @@ -198,7 +199,7 @@

    bool sir::tests::exception_handling ( - ) + ) @@ -218,7 +219,7 @@

    bool sir::tests::fmt_format ( - ) + ) @@ -238,7 +239,7 @@

    bool sir::tests::manual_init_cleanup ( - ) + ) @@ -258,7 +259,7 @@

    bool sir::tests::raii_init_cleanup ( - ) + ) @@ -278,7 +279,7 @@

    bool sir::tests::std_format ( - ) + ) @@ -298,7 +299,7 @@

    bool sir::tests::std_iostream_format ( - ) + ) @@ -316,7 +317,7 @@

      - +

    diff --git a/docs/navtree.js b/docs/navtree.js index 93dd3d462..884b79b6d 100644 --- a/docs/navtree.js +++ b/docs/navtree.js @@ -22,538 +22,461 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -var navTreeSubIndices = new Array(); -var arrowDown = '▼'; -var arrowRight = '►'; - -function getData(varName) -{ - var i = varName.lastIndexOf('/'); - var n = i>=0 ? varName.substring(i+1) : varName; - return eval(n.replace(/\-/g,'_')); -} -function stripPath(uri) -{ - return uri.substring(uri.lastIndexOf('/')+1); -} +function initNavTree(toroot,relpath) { + let navTreeSubIndices = []; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; + const NAVPATH_COOKIE_NAME = ''+'navpath'; -function stripPath2(uri) -{ - var i = uri.lastIndexOf('/'); - var s = uri.substring(i+1); - var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); - return m ? uri.substring(i-6) : s; -} + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/-/g,'_')); + } -function hashValue() -{ - return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); -} + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } -function hashUrl() -{ - return '#'+hashValue(); -} + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } -function pathName() -{ - return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); -} + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } -function localStorageSupported() -{ - try { - return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + const hashUrl = function() { + return '#'+hashValue(); } - catch(e) { - return false; + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); } -} -function storeLink(link) -{ - if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { - window.localStorage.setItem('navpath',link); + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } } -} -function deleteLink() -{ - if (localStorageSupported()) { - window.localStorage.setItem('navpath',''); + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); } -} -function cachedLink() -{ - if (localStorageSupported()) { - return window.localStorage.getItem('navpath'); - } else { - return ''; + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); } -} -function getScript(scriptName,func) -{ - var head = document.getElementsByTagName("head")[0]; - var script = document.createElement('script'); - script.id = scriptName; - script.type = 'text/javascript'; - script.onload = func; - script.src = scriptName+'.js'; - head.appendChild(script); -} + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); + } -function createIndent(o,domNode,node,level) -{ - var level=-1; - var n = node; - while (n.parentNode) { level++; n=n.parentNode; } - if (node.childrenData) { - var imgNode = document.createElement("span"); - imgNode.className = 'arrow'; - imgNode.style.paddingLeft=(16*level).toString()+'px'; - imgNode.innerHTML=arrowRight; - node.plus_img = imgNode; - node.expandToggle = document.createElement("a"); - node.expandToggle.href = "javascript:void(0)"; - node.expandToggle.onclick = function() { - if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast"); - node.plus_img.innerHTML=arrowRight; - node.expanded = false; - } else { - expandNode(o, node, false, true); + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); } - node.expandToggle.appendChild(imgNode); - domNode.appendChild(node.expandToggle); - } else { - var span = document.createElement("span"); - span.className = 'arrow'; - span.style.width = 16*(level+1)+'px'; - span.innerHTML = ' '; - domNode.appendChild(span); } -} -var animationInProgress = false; - -function gotoAnchor(anchor,aname,updateLocation) -{ - var pos, docContent = $('#doc-content'); - var ancParent = $(anchor.parent()); - if (ancParent.hasClass('memItemLeft') || - ancParent.hasClass('memtitle') || - ancParent.hasClass('fieldname') || - ancParent.hasClass('fieldtype') || - ancParent.is(':header')) - { - pos = ancParent.position().top; - } else if (anchor.position()) { - pos = anchor.position().top; - } - if (pos) { - var dist = Math.abs(Math.min( - pos-docContent.offset().top, - docContent[0].scrollHeight- - docContent.height()-docContent.scrollTop())); - animationInProgress=true; - docContent.animate({ - scrollTop: pos + docContent.scrollTop() - docContent.offset().top - },Math.max(50,Math.min(500,dist)),function(){ - if (updateLocation) window.location.href=aname; - animationInProgress=false; - }); + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + window.location.href=aname; + animationInProgress=false; + }); + } } -} -function newNode(o, po, text, link, childrenData, lastNode) -{ - var node = new Object(); - node.children = Array(); - node.childrenData = childrenData; - node.depth = po.depth + 1; - node.relpath = po.relpath; - node.isLast = lastNode; - - node.li = document.createElement("li"); - po.getChildrenUL().appendChild(node.li); - node.parentNode = po; - - node.itemDiv = document.createElement("div"); - node.itemDiv.className = "item"; - - node.labelSpan = document.createElement("span"); - node.labelSpan.className = "label"; - - createIndent(o,node.itemDiv,node,0); - node.itemDiv.appendChild(node.labelSpan); - node.li.appendChild(node.itemDiv); - - var a = document.createElement("a"); - node.labelSpan.appendChild(a); - node.label = document.createTextNode(text); - node.expanded = false; - a.appendChild(node.label); - if (link) { - var url; - if (link.substring(0,1)=='^') { - url = link.substring(1); - link = url; - } else { - url = node.relpath+link; - } - a.className = stripPath(link.replace('#',':')); - if (link.indexOf('#')!=-1) { - var aname = '#'+link.split('#')[1]; - var srcPage = stripPath(pathName()); - var targetPage = stripPath(link.split('#')[0]); - a.href = srcPage!=targetPage ? url : "javascript:void(0)"; - a.onclick = function(){ - storeLink(link); - if (!$(a).parent().parent().hasClass('selected')) - { - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - $(a).parent().parent().addClass('selected'); - $(a).parent().parent().attr('id','selected'); + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + label : document.createTextNode(text), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); } - var anchor = $(aname); - gotoAnchor(anchor,aname,true); - }; - } else { - a.href = url; - a.onclick = function() { storeLink(link); } - } - } else { - if (childrenData != null) - { + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(node.label); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { a.className = "nolink"; a.href = "javascript:void(0)"; a.onclick = node.expandToggle.onclick; } + return node; } - node.childrenUL = null; - node.getChildrenUL = function() { - if (!node.childrenUL) { - node.childrenUL = document.createElement("ul"); - node.childrenUL.className = "children_ul"; - node.childrenUL.style.display = "none"; - node.li.appendChild(node.childrenUL); - } - return node.childrenUL; - }; - - return node; -} - -function showRoot() -{ - var headerHeight = $("#top").height(); - var footerHeight = $("#nav-path").height(); - var windowHeight = $(window).height() - headerHeight - footerHeight; - (function (){ // retry until we can scroll to the selected item - try { - var navtree=$('#nav-tree'); - navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); - } catch (err) { - setTimeout(arguments.callee, 0); - } - })(); -} - -function expandNode(o, node, imm, setFocus) -{ - if (node.childrenData && !node.expanded) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - expandNode(o, node, imm, setFocus); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); } - $(node.getChildrenUL()).slideDown("fast"); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - if (setFocus) { - $(node.expandToggle).focus(); + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } } } } -} - -function glowEffect(n,duration) -{ - n.addClass('glow').delay(duration).queue(function(next){ - $(this).removeClass('glow');next(); - }); -} -function highlightAnchor() -{ - var aname = hashUrl(); - var anchor = $(aname); - if (anchor.parent().attr('class')=='memItemLeft'){ - var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname'){ - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype'){ - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); } -} -function selectAndHighlight(hash,n) -{ - var a; - if (hash) { - var link=stripPath(pathName())+':'+hash.substring(1); - a=$('.item a[class$="'+link+'"]'); - } - if (a && a.length) { - a.parent().parent().addClass('selected'); - a.parent().parent().attr('id','selected'); - highlightAnchor(); - } else if (n) { - $(n.itemDiv).addClass('selected'); - $(n.itemDiv).attr('id','selected'); - } - var topOffset=5; - if (typeof page_layout!=='undefined' && page_layout==1) { - topOffset+=$('#top').outerHeight(); + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname); } - if ($('#nav-tree-contents .item:first').hasClass('selected')) { - topOffset+=25; + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); } - $('#nav-sync').css('top',topOffset+'px'); - showRoot(); -} -function showNode(o, node, index, hash) -{ - if (node && node.childrenData) { - if (typeof(node.childrenData)==='string') { - var varName = node.childrenData; - getScript(node.relpath+varName,function(){ - node.childrenData = getData(varName); - showNode(o,node,index,hash); - }); - } else { - if (!node.childrenVisited) { - getNode(o, node); - } - $(node.getChildrenUL()).css({'display':'block'}); - node.plus_img.innerHTML = arrowDown; - node.expanded = true; - var n = node.children[o.breadcrumbs[index]]; - if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); - else hash=''; + const getNode = function(o, po) { + const insertFunction = removeToInsertLater(po.li); + po.childrenVisited = true; + const l = po.childrenData.length-1; + for (let i in po.childrenData) { + const nodeData = po.childrenData[i]; + po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l); + } + insertFunction(); } - if (hash.match(/^#l\d+$/)) { - var anchor=$('a[name='+hash.substring(1)+']'); - glowEffect(anchor.parent(),1000); // line number - hash=''; // strip line number anchors + + const gotoNode = function(o,subIndex,root,hash,relpath) { + const nti = navTreeSubIndices[subIndex][root+hash]; + o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } } - var url=root+hash; - var i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function(){ - navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - }); + + const navTo = function(o,root,hash,relpath) { + const link = cachedLink(); + if (link) { + const parts = link.split('#'); + root = parts[0]; + hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } } -} -function showSyncOff(n,relpath) -{ + const showSyncOff = function(n,relpath) { n.html(''); -} + } -function showSyncOn(n,relpath) -{ + const showSyncOn = function(n,relpath) { n.html(''); -} + } -function toggleSyncButton(relpath) -{ - var navSync = $('#nav-sync'); - if (navSync.hasClass('sync')) { - navSync.removeClass('sync'); + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { showSyncOff(navSync,relpath); - storeLink(stripPath2(pathName())+hashUrl()); + navSync.removeClass('sync'); } else { - navSync.addClass('sync'); showSyncOn(navSync,relpath); - deleteLink(); } -} -var loadTriggered = false; -var readyTriggered = false; -var loadObject,loadToRoot,loadUrl,loadRelPath; - -$(window).on('load',function(){ - if (readyTriggered) { // ready first - navTo(loadObject,loadToRoot,loadUrl,loadRelPath); - showRoot(); - } - loadTriggered=true; -}); - -function initNavTree(toroot,relpath) -{ - var o = new Object(); - o.toroot = toroot; - o.node = new Object(); - o.node.li = document.getElementById("nav-tree-contents"); - o.node.childrenData = NAVTREE; - o.node.children = new Array(); - o.node.childrenUL = document.createElement("ul"); - o.node.getChildrenUL = function() { return o.node.childrenUL; }; - o.node.li.appendChild(o.node.childrenUL); - o.node.depth = 0; - o.node.relpath = relpath; - o.node.expanded = false; - o.node.isLast = true; - o.node.plus_img = document.createElement("span"); - o.node.plus_img.className = 'arrow'; - o.node.plus_img.innerHTML = arrowRight; - - if (localStorageSupported()) { - var navSync = $('#nav-sync'); - if (cachedLink()) { - showSyncOff(navSync,relpath); + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); } else { + navSync.addClass('sync'); showSyncOn(navSync,relpath); + deleteLink(); } - navSync.click(function(){ toggleSyncButton(relpath); }); - } + }); - if (loadTriggered) { // load before ready - navTo(o,toroot,hashUrl(),relpath); - showRoot(); - } else { // ready before load - loadObject = o; - loadToRoot = toroot; - loadUrl = hashUrl(); - loadRelPath = relpath; - readyTriggered=true; - } + navTo(o,toroot,hashUrl(),relpath); + showRoot(); - $(window).bind('hashchange', function(){ - if (window.location.hash && window.location.hash.length>1){ - var a; - if ($(location).attr('hash')){ - var clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/ { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -126,7 +127,7 @@ diff --git a/docs/platform_8h_source.html b/docs/platform_8h_source.html index 9c90485ab..1afef8980 100644 --- a/docs/platform_8h_source.html +++ b/docs/platform_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -797,7 +798,7 @@ diff --git a/docs/platform__embarcadero_8h_source.html b/docs/platform__embarcadero_8h_source.html index e2d389a33..7fa7519cf 100644 --- a/docs/platform__embarcadero_8h_source.html +++ b/docs/platform__embarcadero_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -196,7 +197,7 @@ diff --git a/docs/platform__importc_8h_source.html b/docs/platform__importc_8h_source.html index a00693187..be60c672f 100644 --- a/docs/platform__importc_8h_source.html +++ b/docs/platform__importc_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -255,7 +256,7 @@ diff --git a/docs/platform__orangec_8h_source.html b/docs/platform__orangec_8h_source.html index 6d7cb4000..42c05b3fa 100644 --- a/docs/platform__orangec_8h_source.html +++ b/docs/platform__orangec_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -176,7 +177,7 @@ diff --git a/docs/plugin__sample_8h_source.html b/docs/plugin__sample_8h_source.html index 592b1b0b4..8a09b3e06 100644 --- a/docs/plugin__sample_8h_source.html +++ b/docs/plugin__sample_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -184,7 +185,7 @@ diff --git a/docs/plugins_8h_source.html b/docs/plugins_8h_source.html index f923903e8..ae260f0a1 100644 --- a/docs/plugins_8h_source.html +++ b/docs/plugins_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -188,7 +189,7 @@ diff --git a/docs/queue_8h_source.html b/docs/queue_8h_source.html index 523748da2..795bf61aa 100644 --- a/docs/queue_8h_source.html +++ b/docs/queue_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -180,7 +181,7 @@ diff --git a/docs/resize.js b/docs/resize.js index aaeb6fc0a..6ad2ae80e 100644 --- a/docs/resize.js +++ b/docs/resize.js @@ -22,61 +22,21 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -var once=1; -function initResizable() -{ - var cookie_namespace = 'doxygen'; - var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; - function readSetting(cookie) - { - if (window.chrome) { - var val = localStorage.getItem(cookie_namespace+'_width'); - if (val) return val; - } else { - var myCookie = cookie_namespace+"_"+cookie+"="; - if (document.cookie) { - var index = document.cookie.indexOf(myCookie); - if (index != -1) { - var valStart = index + myCookie.length; - var valEnd = document.cookie.indexOf(";", valStart); - if (valEnd == -1) { - valEnd = document.cookie.length; - } - var val = document.cookie.substring(valStart, valEnd); - return val; - } - } - } - return 250; - } - - function writeSetting(cookie, val) - { - if (window.chrome) { - localStorage.setItem(cookie_namespace+"_width",val); - } else { - var date = new Date(); - date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week - expiration = date.toGMTString(); - document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; - } - } +function initResizable() { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; - function resizeWidth() - { - var windowWidth = $(window).width() + "px"; - var sidenavWidth = $(sidenav).outerWidth(); + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); content.css({marginLeft:parseInt(sidenavWidth)+"px"}); if (typeof page_layout!=='undefined' && page_layout==1) { footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); } - writeSetting('width',sidenavWidth-barWidth); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); } - function restoreWidth(navWidth) - { - var windowWidth = $(window).width() + "px"; + function restoreWidth(navWidth) { content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); if (typeof page_layout!=='undefined' && page_layout==1) { footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); @@ -84,12 +44,11 @@ function initResizable() sidenav.css({width:navWidth + "px"}); } - function resizeHeight() - { - var headerHeight = header.outerHeight(); - var footerHeight = footer.outerHeight(); - var windowHeight = $(window).height(); - var contentHeight,navtreeHeight,sideNavHeight; + function resizeHeight() { + const headerHeight = header.outerHeight(); + const footerHeight = footer.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight,navtreeHeight,sideNavHeight; if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ contentHeight = windowHeight - headerHeight - footerHeight; navtreeHeight = contentHeight; @@ -107,19 +66,17 @@ function initResizable() } } - function collapseExpand() - { - var newWidth; + function collapseExpand() { + let newWidth; if (sidenav.width()>0) { newWidth=0; - } - else { - var width = readSetting('width'); + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); newWidth = (width>250 && width<$(window).width()) ? width : 250; } restoreWidth(newWidth); - var sidenavWidth = $(sidenav).outerWidth(); - writeSetting('width',sidenavWidth-barWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); } header = $("#top"); @@ -127,29 +84,26 @@ function initResizable() content = $("#doc-content"); navtree = $("#nav-tree"); footer = $("#nav-path"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(".side-nav-resizable").resizable({resize: () => resizeWidth() }); $(sidenav).resizable({ minWidth: 0 }); - $(window).resize(function() { resizeHeight(); }); - var device = navigator.userAgent.toLowerCase(); - var touch_device = device.match(/(iphone|ipod|ipad|android)/); + $(window).resize(() => resizeHeight()); + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); if (touch_device) { /* wider split bar for touch only devices */ $(sidenav).css({ paddingRight:'20px' }); $('.ui-resizable-e').css({ width:'20px' }); $('#nav-sync').css({ right:'34px' }); barWidth=20; } - var width = readSetting('width'); + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); if (width) { restoreWidth(width); } else { resizeWidth(); } resizeHeight(); - var url = location.href; - var i=url.indexOf("#"); + const url = location.href; + const i=url.indexOf("#"); if (i>=0) window.location.hash=url.substr(i); - var _preventDefault = function(evt) { evt.preventDefault(); }; + const _preventDefault = (evt) => evt.preventDefault(); $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - if (once) { - $(".ui-resizable-handle").dblclick(collapseExpand); - once=0 - } + $(".ui-resizable-handle").dblclick(collapseExpand); $(window).on('load',resizeHeight); } /* @license-end */ diff --git a/docs/search/all_12.js b/docs/search/all_12.js index a3de7d835..8771994e8 100644 --- a/docs/search/all_12.js +++ b/docs/search/all_12.js @@ -316,7 +316,7 @@ var searchData= ['sl_5fidentity_313',['sl_identity',['../structsir__update__config__data.html#a58f88542d9e282860be66fcbba694223',1,'sir_update_config_data']]], ['std_5fformat_314',['std_format',['../namespacesir_1_1tests.html#aaf745facf6a22357d78827e5e5105626',1,'sir::tests']]], ['std_5fformat_5fadapter_315',['std_format_adapter',['../classsir_1_1std__format__adapter.html',1,'sir']]], - ['std_5fformat_5flogger_316',['std_format_logger',['../namespacesir.html#a761e9525ba93e5eb99533ef06a8a6b3a',1,'sir']]], + ['std_5fformat_5flogger_316',['std_format_logger',['../namespacesir.html#a50f9ed69f68f697c0839d6ea235f3685',1,'sir']]], ['std_5fiostream_5fadapter_317',['std_iostream_adapter',['../classsir_1_1std__iostream__adapter.html',1,'sir']]], ['std_5fiostream_5fformat_318',['std_iostream_format',['../namespacesir_1_1tests.html#ab2d06b735ad2009d320c24227d346367',1,'sir::tests']]], ['str_319',['str',['../structsir__level__style__tuple.html#a5f67704e0d74d266d0a5d2d3c9459816',1,'sir_level_style_tuple']]], diff --git a/docs/search/all_2.js b/docs/search/all_2.js index f8de3682c..f26474bc0 100644 --- a/docs/search/all_2.js +++ b/docs/search/all_2.js @@ -4,5 +4,5 @@ var searchData= ['bld_5fver_1',['bld_ver',['../structsir__plugininfo.html#a430d916d71dd58f9909348181c98751b',1,'sir_plugininfo']]], ['boost_5fformat_2',['boost_format',['../namespacesir_1_1tests.html#a85d1727f9d755e549e2c0eec9156c937',1,'sir::tests']]], ['boost_5fformat_5fadapter_3',['boost_format_adapter',['../classsir_1_1boost__format__adapter.html',1,'sir']]], - ['boost_5flogger_4',['boost_logger',['../namespacesir.html#a38bc2bfac3662aae8464a2434960743e',1,'sir']]] + ['boost_5flogger_4',['boost_logger',['../namespacesir.html#a27b8dfbb87bdf40379a55b9d4bb105b5',1,'sir']]] ]; diff --git a/docs/search/all_4.js b/docs/search/all_4.js index 1bdc61d4b..f537ced4f 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -6,7 +6,7 @@ var searchData= ['data_3',['data',['../structsir__threadpool__job.html#a77b8d07917b5c1ae32f72f7ce71a6d8c',1,'sir_threadpool_job']]], ['debug_4',['debug',['../classsir_1_1default__adapter.html#a5c8728d42da733f00f5c0ce939978228',1,'sir::default_adapter']]], ['default_5fadapter_5',['default_adapter',['../classsir_1_1default__adapter.html',1,'sir']]], - ['default_5flogger_6',['default_logger',['../namespacesir.html#a2e7cab525e97a45497b7e849b4990a03',1,'sir']]], + ['default_5flogger_6',['default_logger',['../namespacesir.html#ac3c8132d7d64f839a8eebb8f91c3d43c',1,'sir']]], ['default_5fpolicy_7',['default_policy',['../classsir_1_1default__policy.html',1,'sir']]], ['defaults_8',['Defaults',['../group__default.html',1,'']]], ['defaults_2eh_9',['defaults.h',['../defaults_8h.html',1,'']]], diff --git a/docs/search/all_6.js b/docs/search/all_6.js index 023d49d08..7b4e4723c 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -6,7 +6,7 @@ var searchData= ['fmt_3',['fmt',['../structsir__level__str__pair.html#abb5bc77ea76db28a9896bad436e4f2d6',1,'sir_level_str_pair']]], ['fmt_5fformat_4',['fmt_format',['../namespacesir_1_1tests.html#a89d68cd63083102fedee80ae3b5c3c11',1,'sir::tests']]], ['fmt_5fformat_5fadapter_5',['fmt_format_adapter',['../classsir_1_1fmt__format__adapter.html',1,'sir']]], - ['fmt_5flogger_6',['fmt_logger',['../namespacesir.html#a91028ca8545f69febe43f6f9d0e5da1c',1,'sir']]], + ['fmt_5flogger_6',['fmt_logger',['../namespacesir.html#a6ca56fffad9f46909d2df3e7664fc72d',1,'sir']]], ['fn_7',['fn',['../structsir__threadpool__job.html#a03b1cec323ce1973b55356fd9e374322',1,'sir_threadpool_job::fn'],['../structsir__test.html#a97462eb5ce36fd1356a8a7ba8124194e',1,'sir_test::fn']]], ['func_8',['func',['../structsir_1_1error__info.html#a61fbf2aa83f633e14d555d776678293c',1,'sir::error_info::func'],['../group__publictypes.html#af4a1521a69e33827d65f58ae91652eea',1,'sir_errorinfo::func']]], ['functions_9',['Functions',['../group__publicfuncs.html',1,'']]] diff --git a/docs/search/all_9.js b/docs/search/all_9.js index 74d167891..1194455dc 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -5,5 +5,5 @@ var searchData= ['info_2',['info',['../classsir_1_1default__adapter.html#ae53142d862fd43568532520310a76a1b',1,'sir::default_adapter']]], ['init_3',['init',['../structsir__pluginifacev1.html#af8ba5a3a8a30ff6decd9c1795003cfcf',1,'sir_pluginifacev1']]], ['interface_4',['Public Interface',['../group__public.html',1,'']]], - ['iostream_5flogger_5',['iostream_logger',['../namespacesir.html#ad6902d374ee08b56589c88c531748e22',1,'sir']]] + ['iostream_5flogger_5',['iostream_logger',['../namespacesir.html#ae34b82a699369460553c660f4b2bcba3',1,'sir']]] ]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js index 6ac99e3af..87ff48d3d 100644 --- a/docs/search/all_d.js +++ b/docs/search/all_d.js @@ -2,6 +2,6 @@ var searchData= [ ['name_0',['name',['../group__publictypes.html#ac003c97d6b63150341f2f29166a533e3',1,'sirinit']]], ['notice_1',['notice',['../classsir_1_1default__adapter.html#a9c01f5ee581dcad13fe30bcd1dd7034b',1,'sir::default_adapter']]], - ['nthtypeof_2',['NthTypeOf',['../namespacesir.html#a5c911aacde28fbe7829c1e9a01906788',1,'sir']]], + ['nthtypeof_2',['NthTypeOf',['../namespacesir.html#af7e07997ea6e1fd2886a5ddc09eb91f7',1,'sir']]], ['num_5fthreads_3',['num_threads',['../structsir__threadpool.html#a0502c0ce1c0e33fc5f93966956f06c99',1,'sir_threadpool']]] ]; diff --git a/docs/search/search.js b/docs/search/search.js index 6fd40c677..666af01e5 100644 --- a/docs/search/search.js +++ b/docs/search/search.js @@ -22,58 +22,9 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function convertToId(search) -{ - var result = ''; - for (i=0;i document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); // ------------ Event Handlers // Called when focus is added or removed from the search field. - this.OnSearchFieldFocus = function(isActive) - { + this.OnSearchFieldFocus = function(isActive) { this.Activate(isActive); } - this.OnSearchSelectShow = function() - { - var searchSelectWindow = this.DOMSearchSelectWindow(); - var searchField = this.DOMSearchSelect(); + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); - var left = getXPos(searchField); - var top = getYPos(searchField); - top += searchField.offsetHeight; + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; // show search selection popup searchSelectWindow.style.display='block'; @@ -146,55 +102,43 @@ function SearchBox(name, resultsPath, extension) searchSelectWindow.style.top = top + 'px'; // stop selection hide timer - if (this.hideTimeout) - { + if (this.hideTimeout) { clearTimeout(this.hideTimeout); this.hideTimeout=0; } return false; // to avoid "image drag" default event } - this.OnSearchSelectHide = function() - { + this.OnSearchSelectHide = function() { this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), this.closeSelectionTimeout); } // Called when the content of the search field is changed. - this.OnSearchFieldChange = function(evt) - { - if (this.keyTimeout) // kill running timer - { + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer clearTimeout(this.keyTimeout); this.keyTimeout = 0; } - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 || e.keyCode==13) - { - if (e.shiftKey==1) - { + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { this.OnSearchSelectShow(); - var win=this.DOMSearchSelectWindow(); - for (i=0;i do a search - { + const searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) { // something was found -> do a search this.Search(); } } - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { + } else if (e.keyCode==38 && this.searchIndex>0) { // Up this.searchIndex--; this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { + } else if (e.keyCode==13 || e.keyCode==27) { e.stopPropagation(); this.OnSelectItem(this.searchIndex); this.CloseSelectionWindow(); @@ -301,82 +239,75 @@ function SearchBox(name, resultsPath, extension) // --------- Actions // Closes the results window. - this.CloseResultsWindow = function() - { + this.CloseResultsWindow = function() { this.DOMPopupSearchResultsWindow().style.display = 'none'; this.DOMSearchClose().style.display = 'none'; this.Activate(false); } - this.CloseSelectionWindow = function() - { + this.CloseSelectionWindow = function() { this.DOMSearchSelectWindow().style.display = 'none'; } // Performs a search. - this.Search = function() - { + this.Search = function() { this.keyTimeout = 0; // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair idxChar = searchValue.substr(0, 2); } - var jsFile; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; } - var loadJS = function(url, impl, loc){ - var scriptTag = document.createElement('script'); + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); scriptTag.src = url; scriptTag.onload = impl; scriptTag.onreadystatechange = impl; loc.appendChild(scriptTag); } - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - var domSearchBox = this.DOMSearchBox(); - var domPopupSearchResults = this.DOMPopupSearchResults(); - var domSearchClose = this.DOMSearchClose(); - var resultsPath = this.resultsPath; + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; - var handleResults = function() { + const handleResults = function() { document.getElementById("Loading").style.display="none"; if (typeof searchData !== 'undefined') { createResults(resultsPath); document.getElementById("NoMatches").style.display="none"; } - + if (idx!=-1) { searchResults.Search(searchValue); } else { // no file with search results => force empty search results searchResults.Search('===='); } - if (domPopupSearchResultsWindow.style.display!='block') - { + if (domPopupSearchResultsWindow.style.display!='block') { domSearchClose.style.display = 'inline-block'; - var left = getXPos(domSearchBox) + 150; - var top = getYPos(domSearchBox) + 20; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; domPopupSearchResultsWindow.style.display = 'block'; left -= domPopupSearchResults.offsetWidth; - var maxWidth = document.body.clientWidth; - var maxHeight = document.body.clientHeight; - var width = 300; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; if (left<10) left=10; if (width+left+8>maxWidth) width=maxWidth-left-8; - var height = 400; + let height = 400; if (height+top+8>maxHeight) height=maxHeight-top-8; domPopupSearchResultsWindow.style.top = top + 'px'; domPopupSearchResultsWindow.style.left = left + 'px'; @@ -398,17 +329,13 @@ function SearchBox(name, resultsPath, extension) // Activates or deactivates the search panel, resetting things to // their default values if necessary. - this.Activate = function(isActive) - { + this.Activate = function(isActive) { if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { this.DOMSearchBox().className = 'MSearchBoxActive'; this.searchActive = true; - } - else if (!isActive) // directly remove the panel - { + } else if (!isActive) { // directly remove the panel this.DOMSearchBox().className = 'MSearchBoxInactive'; this.searchActive = false; this.lastSearchValue = '' @@ -421,409 +348,333 @@ function SearchBox(name, resultsPath, extension) // ----------------------------------------------------------------------- // The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') - { - return element; - } +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; } - } - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; } - else - { - element.style.display = 'block'; + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; } } } + } - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; } - this.lastMatchCount = matches; - return true; } + } - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; } - focusItem=null; - index++; } - return focusItem; + i++; } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; } - return focusItem; + focusItem=null; + index--; } + return focusItem; + } - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown } - return this.lastKey!=0; + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; } + return this.lastKey!=0; + } - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; } + n++; } } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; } - else if (this.lastKey==27) // Escape - { - e.stopPropagation(); - searchBox.CloseResultsWindow(); + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field document.getElementById("MSearchField").focus(); } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; } + return false; + } - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); } - else if (this.lastKey==27) // Escape - { - e.stopPropagation(); - searchBox.CloseResultsWindow(); - document.getElementById("MSearchField").focus(); + if (elem) { + elem.focus(); } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; } + return false; + } } -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} +function createResults(resultsPath) { -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } -function createResults(resultsPath) -{ - var results = document.getElementById("SRResults"); + const results = document.getElementById("SRResults"); results.innerHTML = ''; - for (var e=0; e { + const id = elem[0]; + const srResult = document.createElement('div'); srResult.setAttribute('id','SR_'+id); setClassAttr(srResult,'SRResult'); - var srEntry = document.createElement('div'); + const srEntry = document.createElement('div'); setClassAttr(srEntry,'SREntry'); - var srLink = document.createElement('a'); - srLink.setAttribute('id','Item'+e); - setKeyActions(srLink,'return searchResults.Nav(event,'+e+')'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); setClassAttr(srLink,'SRSymbol'); - srLink.innerHTML = searchData[e][1][0]; + srLink.innerHTML = elem[1][0]; srEntry.appendChild(srLink); - if (searchData[e][1].length==2) // single result - { - srLink.setAttribute('href',resultsPath+searchData[e][1][1][0]); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); - if (searchData[e][1][1][1]) - { + if (elem[1][1][1]) { srLink.setAttribute('target','_parent'); - } - else - { + } else { srLink.setAttribute('target','_blank'); } - var srScope = document.createElement('span'); + const srScope = document.createElement('span'); setClassAttr(srScope,'SRScope'); - srScope.innerHTML = searchData[e][1][1][2]; + srScope.innerHTML = elem[1][1][2]; srEntry.appendChild(srScope); - } - else // multiple results - { + } else { // multiple results srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); - var srChildren = document.createElement('div'); + const srChildren = document.createElement('div'); setClassAttr(srChildren,'SRChildren'); - for (var c=0; c - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -245,7 +246,7 @@ diff --git a/docs/sir_8h.html b/docs/sir_8h.html index 40bcb3de7..1193f03d3 100644 --- a/docs/sir_8h.html +++ b/docs/sir_8h.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -252,7 +253,7 @@ diff --git a/docs/sir_8h_source.html b/docs/sir_8h_source.html index 5f829f09d..ff450e2f6 100644 --- a/docs/sir_8h_source.html +++ b/docs/sir_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -272,7 +273,7 @@ diff --git a/docs/sir_8hh.html b/docs/sir_8hh.html index 06434f582..4309ba7df 100644 --- a/docs/sir_8hh.html +++ b/docs/sir_8hh.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -189,31 +190,31 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

    Typedefs

    +
    template<size_t N, typename ... Ts>
    using sir::NthTypeOf = typename std::tuple_element< N, std::tuple< Ts... > >::type
     Utility template for obtaining the type of Nth item in a parameter pack.
     
    -using sir::default_logger = logger< true, default_policy, default_adapter >
     A logger that implements the default adapter.
     
    -using sir::std_format_logger = logger< true, default_policy, default_adapter, std_format_adapter >
     A logger that implements the default adapter and the std::format adapter.
     
    -using sir::boost_logger = logger< true, default_policy, default_adapter, boost_format_adapter >
     A logger that implements the default adapter and the boost::format adapter.
     
    -using sir::fmt_logger = logger< true, default_policy, default_adapter, fmt_format_adapter >
     A logger that implements the default adapter and the fmt::format adapter.
     
    -using sir::iostream_logger = logger< true, default_policy, default_adapter, std_iostream_adapter >
     A logger that implements the default adapter and the std::iostream adapter.
     
    using sir::NthTypeOf = typename std::tuple_element<N, std::tuple<Ts...>>::type
     Utility template for obtaining the type of Nth item in a parameter pack.
     
    +using sir::default_logger = logger<true, default_policy, default_adapter>
     A logger that implements the default adapter.
     
    +using sir::std_format_logger
     A logger that implements the default adapter and the std::format adapter.
     
    +using sir::boost_logger
     A logger that implements the default adapter and the boost::format adapter.
     
    +using sir::fmt_logger
     A logger that implements the default adapter and the fmt::format adapter.
     
    +using sir::iostream_logger
     A logger that implements the default adapter and the std::iostream adapter.
     
    @@ -244,7 +245,7 @@ diff --git a/docs/sir_8hh.js b/docs/sir_8hh.js index e02d7c074..c855f3787 100644 --- a/docs/sir_8hh.js +++ b/docs/sir_8hh.js @@ -15,12 +15,12 @@ var sir_8hh = [ "sir::DerivedFromPolicy", "conceptsir_1_1_derived_from_policy.html", null ], [ "sir::DerivedFromStreamBuf", "conceptsir_1_1_derived_from_stream_buf.html", null ], [ "sir::DerivedFromT", "conceptsir_1_1_derived_from_t.html", null ], - [ "boost_logger", "sir_8hh.html#a38bc2bfac3662aae8464a2434960743e", null ], - [ "default_logger", "sir_8hh.html#a2e7cab525e97a45497b7e849b4990a03", null ], - [ "fmt_logger", "sir_8hh.html#a91028ca8545f69febe43f6f9d0e5da1c", null ], - [ "iostream_logger", "sir_8hh.html#ad6902d374ee08b56589c88c531748e22", null ], - [ "NthTypeOf", "sir_8hh.html#a5c911aacde28fbe7829c1e9a01906788", null ], - [ "std_format_logger", "sir_8hh.html#a761e9525ba93e5eb99533ef06a8a6b3a", null ], + [ "boost_logger", "sir_8hh.html#a27b8dfbb87bdf40379a55b9d4bb105b5", null ], + [ "default_logger", "sir_8hh.html#ac3c8132d7d64f839a8eebb8f91c3d43c", null ], + [ "fmt_logger", "sir_8hh.html#a6ca56fffad9f46909d2df3e7664fc72d", null ], + [ "iostream_logger", "sir_8hh.html#ae34b82a699369460553c660f4b2bcba3", null ], + [ "NthTypeOf", "sir_8hh.html#af7e07997ea6e1fd2886a5ddc09eb91f7", null ], + [ "std_format_logger", "sir_8hh.html#a50f9ed69f68f697c0839d6ea235f3685", null ], [ "all_derived_from_t", "sir_8hh.html#a5f417c5e60499d22d51b5128a66dbe1a", null ], [ "throw_on_policy", "sir_8hh.html#aeeaffc9b61a4a185d0376489c7424119", null ] ]; \ No newline at end of file diff --git a/docs/sir_8hh_source.html b/docs/sir_8hh_source.html index f561b3397..fd1395845 100644 --- a/docs/sir_8hh_source.html +++ b/docs/sir_8hh_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Functions

    - + @@ -89,7 +90,7 @@
    @@ -638,7 +639,7 @@
    755 };
    756
    757 using log_func = bool(*)(const char*, ...);
    -
    758 using buffer_type = buffer<log_func>;
    +
    758 using buffer_type = buffer<log_func>;
    759 using stream_type = stream<buffer_type>;
    760
    761 stream_type debug_stream {buffer_type {&sir_debug}};
    @@ -654,12 +655,12 @@
    770# endif // SIR_NO_STD_IOSTREAM
    771
    773 template<size_t N, typename ...Ts>
    -
    774 using NthTypeOf = typename std::tuple_element<N, std::tuple<Ts...>>::type;
    +
    774 using NthTypeOf = typename std::tuple_element<N, std::tuple<Ts...>>::type;
    775
    777 template<size_t N, typename TBase, typename ...Ts>
    778 consteval auto all_derived_from_t() {
    -
    779 if constexpr(!std::is_base_of_v<TBase, NthTypeOf<N, Ts...>>)
    +
    779 if constexpr(!std::is_base_of_v<TBase, NthTypeOf<N, Ts...>>)
    780 return std::false_type::value;
    781 if constexpr(N == 0)
    782 return std::true_type::value;
    @@ -835,10 +836,10 @@
    969 };
    970
    - +
    976
    977# if defined(__SIR_HAVE_STD_FORMAT__)
    - +
    984 <
    985 true,
    @@ -848,7 +849,7 @@
    990# endif
    991
    992# if defined(__SIR_HAVE_BOOST_FORMAT__)
    - +
    999 <
    1000 true,
    @@ -858,7 +859,7 @@
    1005# endif
    1006
    1007# if defined(__SIR_HAVE_FMT_FORMAT__)
    - +
    1014 <
    1015 true,
    @@ -868,7 +869,7 @@
    1020# endif
    1021
    1022# if !defined(SIR_NO_STD_IOSTREAM)
    - +
    1029 <
    1030 true,
    @@ -962,9 +963,9 @@
    Information about an error that occurred.
    Definition types.h:150
    libsir initialization and configuration data.
    Definition types.h:244
    libsir C++ wrapper implementation.
    Definition sir.hh:79
    -
    typename std::tuple_element< N, std::tuple< Ts... > >::type NthTypeOf
    Utility template for obtaining the type of Nth item in a parameter pack.
    Definition sir.hh:774
    consteval auto all_derived_from_t()
    Ensures (at compile time) that all Ts are derived classes of TBase.
    Definition sir.hh:778
    static bool throw_on_policy(bool expr) noexcept(false)
    Handles a potential error; if an error is present and the policy in place requires throwing an except...
    Definition sir.hh:289
    +
    typename std::tuple_element< N, std::tuple< Ts... > >::type NthTypeOf
    Utility template for obtaining the type of Nth item in a parameter pack.
    Definition sir.hh:774
    Public interface to libsir.
    Contains all available information about an error.
    Definition sir.hh:116
    std::string os_message
    If an OS/libc error, the associated message.
    Definition sir.hh:121
    @@ -982,7 +983,7 @@ diff --git a/docs/sircondition_8c.html b/docs/sircondition_8c.html index 014f53f1d..efbd26246 100644 --- a/docs/sircondition_8c.html +++ b/docs/sircondition_8c.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -118,16 +119,16 @@ - + - + - + - +

    Functions

    bool _sir_condcreate (sir_condition *cond)
    bool _sir_condcreate (sir_condition *cond)
     Creates/initializes a new condition variable.
     
    bool _sir_condbroadcast (sir_condition *cond)
    bool _sir_condbroadcast (sir_condition *cond)
     Broadcast signals a condition variable.
     
    bool _sir_conddestroy (sir_condition *cond)
    bool _sir_conddestroy (sir_condition *cond)
     Destroys a condition variable.
     
    bool _sir_condwait_timeout (sir_condition *cond, sir_mutex *mutex, const sir_wait *howlong)
    bool _sir_condwait_timeout (sir_condition *cond, sir_mutex *mutex, const sir_wait *howlong)
     Waits a given amount of time for a condition variable to become signaled.
     
    @@ -150,8 +151,7 @@

    bool _sir_condbroadcast ( - sir_condition *  - cond) + sir_condition * cond) @@ -177,8 +177,7 @@

    bool _sir_condcreate ( - sir_condition *  - cond) + sir_condition * cond) @@ -204,8 +203,7 @@

    bool _sir_conddestroy ( - sir_condition *  - cond) + sir_condition * cond) @@ -231,25 +229,17 @@

    bool _sir_condwait_timeout ( - sir_condition *  - cond, + sir_condition * cond, - sir_mutex *  - mutex, + sir_mutex * mutex, - const sir_wait *  - howlong  - - - - ) - + const sir_wait * howlong )

    @@ -274,7 +264,7 @@

    diff --git a/docs/structsir_1_1error.html b/docs/structsir_1_1error.html index 6c6b966f4..cb0466a02 100644 --- a/docs/structsir_1_1error.html +++ b/docs/structsir_1_1error.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Contains basic information about an error. - More...

    + More...

    Inheritance diagram for sir::error:
    @@ -151,7 +152,7 @@ diff --git a/docs/structsir_1_1error__info.html b/docs/structsir_1_1error__info.html index e823bc2d7..d823afc7d 100644 --- a/docs/structsir_1_1error__info.html +++ b/docs/structsir_1_1error__info.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Contains all available information about an error. - More...

    + More...

    Inheritance diagram for sir::error_info:
    @@ -146,7 +147,7 @@ std::string os_message  If an OS/libc error, the associated message.
      -- Data Fields inherited from sir::error +- Data Fields inherited from sir::error uint16_t code {}  Numeric error code (see sir_errorcode).
    @@ -170,7 +171,7 @@ diff --git a/docs/structsir__cl__arg.html b/docs/structsir__cl__arg.html index 852ccaa4c..242cbeb07 100644 --- a/docs/structsir__cl__arg.html +++ b/docs/structsir__cl__arg.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,14 +118,14 @@

    A command line argument. - More...

    + More...

    - + - +

    Data Fields

    const char *const usage
    const char *const usage
     (e.g.
     
    const char *const desc
    const char *const desc
     (e.g.
     
    @@ -175,7 +176,7 @@

      - +

    diff --git a/docs/structsir__cl__config.html b/docs/structsir__cl__config.html index 32ee30798..7f9924f30 100644 --- a/docs/structsir__cl__config.html +++ b/docs/structsir__cl__config.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Shared command line configuration. - More...

    + More...

    @@ -195,7 +196,7 @@

    diff --git a/docs/structsir__level__str__pair.html b/docs/structsir__level__str__pair.html index 91ddb3f6f..dfa79a267 100644 --- a/docs/structsir__level__str__pair.html +++ b/docs/structsir__level__str__pair.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    sir_level <-> human-readable string form. - More...

    + More...

    @@ -175,7 +176,7 @@

    diff --git a/docs/structsir__level__style__tuple.html b/docs/structsir__level__style__tuple.html index 1cfcede15..62b47b165 100644 --- a/docs/structsir__level__style__tuple.html +++ b/docs/structsir__level__style__tuple.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    sir_level <-> sir_textstyle mapping. - More...

    + More...

    @@ -195,7 +196,7 @@

    diff --git a/docs/structsir__plugin.html b/docs/structsir__plugin.html index ac3b9f4b0..4a0ce9353 100644 --- a/docs/structsir__plugin.html +++ b/docs/structsir__plugin.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Internally-used plugin module data. - More...

    + More...

    Detailed Description

    Internally-used plugin module data.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__plugincache.html b/docs/structsir__plugincache.html index ed1e032ac..68f0931c4 100644 --- a/docs/structsir__plugincache.html +++ b/docs/structsir__plugincache.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Plugin module cache. - More...

    + More...

    Detailed Description

    Plugin module cache.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__pluginifacev1.html b/docs/structsir__pluginifacev1.html index 119564690..00431b6e1 100644 --- a/docs/structsir__pluginifacev1.html +++ b/docs/structsir__pluginifacev1.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Plugin interface for v1. - More...

    + More...

    @@ -215,7 +216,7 @@

    diff --git a/docs/structsir__plugininfo.html b/docs/structsir__plugininfo.html index 4aee28aa6..4356d7b7c 100644 --- a/docs/structsir__plugininfo.html +++ b/docs/structsir__plugininfo.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    The libsir-to-plugin query data structure. - More...

    + More...

    @@ -315,7 +316,7 @@

    diff --git a/docs/structsir__queue.html b/docs/structsir__queue.html index add95b397..8c1aa7d19 100644 --- a/docs/structsir__queue.html +++ b/docs/structsir__queue.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    FIFO queue. - More...

    + More...

    @@ -155,7 +156,7 @@

      - +
    diff --git a/docs/structsir__queue__node.html b/docs/structsir__queue__node.html index 5a7166283..3050987b1 100644 --- a/docs/structsir__queue__node.html +++ b/docs/structsir__queue__node.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    A node in a sir_queue. - More...

    + More...

    Detailed Description

    A node in a sir_queue.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__test.html b/docs/structsir__test.html index 992b7b231..6833eced7 100644 --- a/docs/structsir__test.html +++ b/docs/structsir__test.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Maps a test function to a human-readable name and some metadata. - More...

    + More...

    @@ -196,7 +197,7 @@

      - +
    diff --git a/docs/structsir__text__style__data.html b/docs/structsir__text__style__data.html index 50260ec20..cf2fdb7f9 100644 --- a/docs/structsir__text__style__data.html +++ b/docs/structsir__text__style__data.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Container for text style related data that is mutex protected. - More...

    + More...

    Detailed Description

    Container for text style related data that is mutex protected.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__thread__err.html b/docs/structsir__thread__err.html index 3c16bae2f..6657cce16 100644 --- a/docs/structsir__thread__err.html +++ b/docs/structsir__thread__err.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Per-thread error type. - More...

    + More...

    Detailed Description

    Per-thread error type.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__threadpool.html b/docs/structsir__threadpool.html index 6d940f4d3..efb88f623 100644 --- a/docs/structsir__threadpool.html +++ b/docs/structsir__threadpool.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Thread pool/job queue data container. - More...

    + More...

    @@ -255,7 +256,7 @@

    diff --git a/docs/structsir__threadpool__job.html b/docs/structsir__threadpool__job.html index 4922672f3..6f6aa4d08 100644 --- a/docs/structsir__threadpool__job.html +++ b/docs/structsir__threadpool__job.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Job used by a job queue. - More...

    + More...

    @@ -142,7 +143,7 @@ diff --git a/docs/structsir__time.html b/docs/structsir__time.html index 0822a0281..0b5f06c55 100644 --- a/docs/structsir__time.html +++ b/docs/structsir__time.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Internally-used time value type. - More...

    + More...

    Detailed Description

    Internally-used time value type.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsir__update__config__data.html b/docs/structsir__update__config__data.html index 6acc17ef1..23aae8ad1 100644 --- a/docs/structsir__update__config__data.html +++ b/docs/structsir__update__config__data.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -117,7 +118,7 @@

    Encapsulates dynamic updating of current configuration. - More...

    + More...

    @@ -235,7 +236,7 @@

    diff --git a/docs/structsirbuf.html b/docs/structsirbuf.html index 614ad376f..6944ab666 100644 --- a/docs/structsirbuf.html +++ b/docs/structsirbuf.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@

    Data Fields

    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Formatted output container. - More...

    + More...

    Detailed Description

    Formatted output container.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsirconfig.html b/docs/structsirconfig.html index 1b0f9cf35..47f82cafa 100644 --- a/docs/structsirconfig.html +++ b/docs/structsirconfig.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Internally-used global config container. - More...

    + More...

    Detailed Description

    Internally-used global config container.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsirconfig_8state_8last.html b/docs/structsirconfig_8state_8last.html index 242866ba0..4dc9b096c 100644 --- a/docs/structsirconfig_8state_8last.html +++ b/docs/structsirconfig_8state_8last.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Spam squelch state data. - More...

    + More...

    Detailed Description

    Spam squelch state data.


    The documentation for this struct was generated from the following files:
    @@ -125,7 +126,7 @@ diff --git a/docs/structsirfcache.html b/docs/structsirfcache.html index 9618c0020..ea6548bbf 100644 --- a/docs/structsirfcache.html +++ b/docs/structsirfcache.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Log file cache. - More...

    + More...

    Detailed Description

    Log file cache.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/structsirfile.html b/docs/structsirfile.html index 7fa5b6797..6666bb8f7 100644 --- a/docs/structsirfile.html +++ b/docs/structsirfile.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -115,7 +116,7 @@

    Internally-used log file data. - More...

    + More...

    Detailed Description

    Internally-used log file data.


    The documentation for this struct was generated from the following file:
      @@ -128,7 +129,7 @@ diff --git a/docs/tabs.css b/docs/tabs.css index f06ac4840..88959fe02 100644 --- a/docs/tabs.css +++ b/docs/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#B6A2DD;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_bd.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px black;color:#B6A2DD;outline:0}.sm-dox a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:#030205}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:#030205;background-image:none}.sm-dox ul a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_bd.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#B6A2DD transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_sd.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:#DBD1EE transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #030205 transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#030205;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #BBBBBB;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#BBBBBB;background-image:none;border:0 !important;color:#BBBBBB;background-image:none}.sm-dox ul a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #DBD1EE}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#030205;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #BBBBBB transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#BBBBBB transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_bd.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#030205}} \ No newline at end of file +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#B6A2DD;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_bd.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px black;color:#B6A2DD;outline:0}.sm-dox a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:#030205}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:#030205;background-image:none}.sm-dox ul a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_bd.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#B6A2DD transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_sd.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:#DBD1EE transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #030205 transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#030205;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #BBBBBB;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#BBBBBB;background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:url('tab_ad.png');background-repeat:repeat-x;color:#DBD1EE;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #DBD1EE}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#030205;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #BBBBBB transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#BBBBBB transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_bd.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#030205}} \ No newline at end of file diff --git a/docs/tests_09_09_8hh_source.html b/docs/tests_09_09_8hh_source.html index be9f35563..f3036f5aa 100644 --- a/docs/tests_09_09_8hh_source.html +++ b/docs/tests_09_09_8hh_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - +
    @@ -89,7 +90,7 @@
    @@ -221,7 +222,7 @@ diff --git a/docs/tests_8h_source.html b/docs/tests_8h_source.html index 42a88f71e..0ec57c023 100644 --- a/docs/tests_8h_source.html +++ b/docs/tests_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -317,7 +318,7 @@ diff --git a/docs/tests__malloc_8h_source.html b/docs/tests__malloc_8h_source.html index 57a3430bb..232f7461f 100644 --- a/docs/tests__malloc_8h_source.html +++ b/docs/tests__malloc_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -217,7 +218,7 @@ diff --git a/docs/tests__shared_8h_source.html b/docs/tests__shared_8h_source.html index 17a2c6ae5..f246f7a5d 100644 --- a/docs/tests__shared_8h_source.html +++ b/docs/tests__shared_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -364,7 +365,7 @@ diff --git a/docs/testsuite.html b/docs/testsuite.html index 736ed0ebd..b604caf32 100644 --- a/docs/testsuite.html +++ b/docs/testsuite.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -113,7 +114,7 @@
    Test suite
    -

    In order to ensure that libsir is working properly on your system, the first thing you should do after compilation is verify that the test suite runs successfully (in fact, we recommend making it part of your deployment workflow).

    +

    In order to ensure that libsir is working properly on your system, the first thing you should do after compilation is verify that the test suite runs successfully (in fact, we recommend making it part of your deployment workflow).

    It will exit with 0 if all test(s) ran successfully and passed, or 1 if errors occurred/any test failed.

    Basic usage

    The simplest way to achieve this is simply to run build/bin/sirtests from the root of the repository. You should see output similar to the following:

    @@ -146,7 +147,7 @@

    Basic usage

    diff --git a/docs/textstyle_8h_source.html b/docs/textstyle_8h_source.html index fcc27101b..82ce660b9 100644 --- a/docs/textstyle_8h_source.html +++ b/docs/textstyle_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - +
    @@ -89,7 +90,7 @@
    @@ -184,7 +185,7 @@ diff --git a/docs/threadpool_8h_source.html b/docs/threadpool_8h_source.html index a5fa1c630..4ddde519a 100644 --- a/docs/threadpool_8h_source.html +++ b/docs/threadpool_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -171,7 +172,7 @@ diff --git a/docs/topics.html b/docs/topics.html index 2071655f9..17d95e472 100644 --- a/docs/topics.html +++ b/docs/topics.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -84,7 +85,7 @@
    @@ -114,14 +115,14 @@
    Here is a list of all topics with brief descriptions:
    -
    [detail level 12]
    - +
    [detail level 12]
     Public InterfaceFunctions and types that comprise the public interface to libsir
    + - - + +
     Public Interface
     Functions
     Types
     C++ Wrapper
     Plugins
     DefaultsDefault sir_option bitmasks, sir_level registrations, and sir_textstyle bitmasks
     TestsLibsir integrity tests
     Defaults
     Tests
    @@ -130,7 +131,7 @@ diff --git a/docs/types_8h_source.html b/docs/types_8h_source.html index 2f4acc8f6..0332c5983 100644 --- a/docs/types_8h_source.html +++ b/docs/types_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@ - + @@ -89,7 +90,7 @@
    @@ -656,7 +657,7 @@ diff --git a/docs/version_8h_source.html b/docs/version_8h_source.html index 5dfa47f59..8d8ac1fac 100644 --- a/docs/version_8h_source.html +++ b/docs/version_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -181,7 +182,7 @@ diff --git a/docs/wineventlog_8h_source.html b/docs/wineventlog_8h_source.html index 566896fe7..dea16e355 100644 --- a/docs/wineventlog_8h_source.html +++ b/docs/wineventlog_8h_source.html @@ -4,7 +4,7 @@ - + @@ -32,6 +32,7 @@ + @@ -54,7 +55,7 @@
    - + @@ -89,7 +90,7 @@
    @@ -215,7 +216,7 @@ diff --git a/msvs/compile_man.ps1 b/msvs/compile_man.ps1 index 0d7044738..216d3b58a 100644 --- a/msvs/compile_man.ps1 +++ b/msvs/compile_man.ps1 @@ -89,5 +89,5 @@ wevtutil im /rf:${target_dir}\$dll_file /mf:${target_dir}\$dll_file ` /pf:${target_dir}\$dll_file ".\$provider.man" exit-on-failure "failed to register logging provider!" -echo-green ("sucessfully registered logging provider as '$provider'. to unregister, run" + +echo-green ("successfully registered logging provider as '$provider'. to unregister, run" + " 'wevtutil um $provider.man' `ndone.") diff --git a/tests/tests.c b/tests/tests.c index b7b099168..5686a82b2 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -975,7 +975,7 @@ bool sirtest_optionssanity(void) { _sir_eqland(pass, !_sir_validopts(invalid)); (void)printf(INDENT_ITEM SIR_WHITE("lowest byte: %08"PRIx32) SIR_EOL, invalid); - /* gaps inbetween valid options. */ + /* gaps in between valid options. */ invalid = 0x0001ff00U & ~(SIRO_NOTIME | SIRO_NOHOST | SIRO_NOLEVEL | SIRO_NONAME | SIRO_NOMSEC | SIRO_NOPID | SIRO_NOTID | SIRO_NOHDR); _sir_eqland(pass, !_sir_validopts(invalid)); @@ -1129,7 +1129,7 @@ bool sirtest_mutexsanity(void) { (void)print_test_error(pass, pass); - (void)printf(INDENT_ITEM SIR_WHITE("destryoing...") SIR_EOL); + (void)printf(INDENT_ITEM SIR_WHITE("destroying...") SIR_EOL); _sir_eqland(pass, _sir_mutexdestroy(&m1)); (void)print_test_error(pass, pass); diff --git a/tests/tests_shared.h b/tests/tests_shared.h index a4b870988..93be201cf 100644 --- a/tests/tests_shared.h +++ b/tests/tests_shared.h @@ -227,7 +227,7 @@ void print_test_summary(size_t tgt_tests, size_t passed, double elapsed); /** Prints a message if any tests failed, announcing the failed test(s). */ void print_failed_test_intro(size_t tgt_tests, size_t passed); -/** Printes a message containing the name of a failed test. */ +/** Prints a message containing the name of a failed test. */ void print_failed_test(const char* const name); /**