From cc660a804a5eb1da2e2b0ca83f12da0bb8b0d216 Mon Sep 17 00:00:00 2001 From: Huck Boles Date: Fri, 21 Oct 2022 21:00:04 -0500 Subject: [PATCH] automatic backup --- .../@usr@include@alloca.h | 40 + .../@usr@include@alloca.h.blob | Bin 0 -> 3031 bytes .../@usr@include@bits@atomic_wide_counter.h | 35 + ...sr@include@bits@atomic_wide_counter.h.blob | Bin 0 -> 3401 bytes .../@usr@include@bits@byteswap.h | 79 + .../@usr@include@bits@byteswap.h.blob | Bin 0 -> 3839 bytes .../@usr@include@bits@endian.h | 49 + .../@usr@include@bits@endian.h.blob | Bin 0 -> 2916 bytes .../@usr@include@bits@endianness.h | 11 + .../@usr@include@bits@endianness.h.blob | Bin 0 -> 2573 bytes .../@usr@include@bits@floatn-common.h | 329 +++ .../@usr@include@bits@floatn-common.h.blob | Bin 0 -> 6614 bytes .../@usr@include@bits@floatn.h | 121 + .../@usr@include@bits@floatn.h.blob | Bin 0 -> 2929 bytes .../@usr@include@bits@libc-header-start.h | 110 + ...@usr@include@bits@libc-header-start.h.blob | Bin 0 -> 3215 bytes .../@usr@include@bits@long-double.h | 21 + .../@usr@include@bits@long-double.h.blob | Bin 0 -> 2494 bytes .../@usr@include@bits@pthreadtypes-arch.h | 55 + ...@usr@include@bits@pthreadtypes-arch.h.blob | Bin 0 -> 3535 bytes .../@usr@include@bits@pthreadtypes.h | 121 + .../@usr@include@bits@pthreadtypes.h.blob | Bin 0 -> 7515 bytes .../@usr@include@bits@select.h | 37 + .../@usr@include@bits@select.h.blob | Bin 0 -> 2816 bytes .../@usr@include@bits@stdint-intn.h | 29 + .../@usr@include@bits@stdint-intn.h.blob | Bin 0 -> 2993 bytes .../@usr@include@bits@stdio_lim.h | 39 + .../@usr@include@bits@stdio_lim.h.blob | Bin 0 -> 2778 bytes .../@usr@include@bits@stdlib-float.h | 29 + .../@usr@include@bits@stdlib-float.h.blob | Bin 0 -> 2389 bytes .../@usr@include@bits@struct_mutex.h | 63 + .../@usr@include@bits@struct_mutex.h.blob | Bin 0 -> 3783 bytes .../@usr@include@bits@struct_rwlock.h | 65 + .../@usr@include@bits@struct_rwlock.h.blob | Bin 0 -> 4195 bytes .../@usr@include@bits@thread-shared-types.h | 115 + ...sr@include@bits@thread-shared-types.h.blob | Bin 0 -> 4851 bytes .../@usr@include@bits@time.h | 93 + .../@usr@include@bits@time.h.blob | Bin 0 -> 3528 bytes .../@usr@include@bits@time64.h | 36 + .../@usr@include@bits@time64.h.blob | Bin 0 -> 2578 bytes .../@usr@include@bits@timesize.h | 27 + .../@usr@include@bits@timesize.h.blob | Bin 0 -> 2490 bytes .../@usr@include@bits@timex.h | 141 ++ .../@usr@include@bits@timex.h.blob | Bin 0 -> 8480 bytes .../@usr@include@bits@types.h | 228 ++ .../@usr@include@bits@types.h.blob | Bin 0 -> 9860 bytes .../@usr@include@bits@types@FILE.h | 9 + .../@usr@include@bits@types@FILE.h.blob | Bin 0 -> 2651 bytes .../@usr@include@bits@types@__FILE.h | 7 + .../@usr@include@bits@types@__FILE.h.blob | Bin 0 -> 2588 bytes .../@usr@include@bits@types@__fpos64_t.h | 16 + .../@usr@include@bits@types@__fpos64_t.h.blob | Bin 0 -> 3379 bytes .../@usr@include@bits@types@__fpos_t.h | 16 + .../@usr@include@bits@types@__fpos_t.h.blob | Bin 0 -> 3325 bytes .../@usr@include@bits@types@__locale_t.h | 43 + .../@usr@include@bits@types@__locale_t.h.blob | Bin 0 -> 3509 bytes .../@usr@include@bits@types@__mbstate_t.h | 23 + ...@usr@include@bits@types@__mbstate_t.h.blob | Bin 0 -> 3167 bytes .../@usr@include@bits@types@__sigset_t.h | 10 + .../@usr@include@bits@types@__sigset_t.h.blob | Bin 0 -> 2795 bytes .../@usr@include@bits@types@clock_t.h | 9 + .../@usr@include@bits@types@clock_t.h.blob | Bin 0 -> 2628 bytes .../@usr@include@bits@types@clockid_t.h | 9 + .../@usr@include@bits@types@clockid_t.h.blob | Bin 0 -> 2658 bytes ...include@bits@types@cookie_io_functions_t.h | 63 + ...de@bits@types@cookie_io_functions_t.h.blob | Bin 0 -> 5402 bytes .../@usr@include@bits@types@locale_t.h | 26 + .../@usr@include@bits@types@locale_t.h.blob | Bin 0 -> 2685 bytes .../@usr@include@bits@types@sigset_t.h | 9 + .../@usr@include@bits@types@sigset_t.h.blob | Bin 0 -> 2728 bytes .../@usr@include@bits@types@struct_FILE.h | 120 + ...@usr@include@bits@types@struct_FILE.h.blob | Bin 0 -> 6896 bytes ...usr@include@bits@types@struct_itimerspec.h | 14 + ...nclude@bits@types@struct_itimerspec.h.blob | Bin 0 -> 2891 bytes .../@usr@include@bits@types@struct_timespec.h | 33 + ...@include@bits@types@struct_timespec.h.blob | Bin 0 -> 3118 bytes .../@usr@include@bits@types@struct_timeval.h | 18 + ...r@include@bits@types@struct_timeval.h.blob | Bin 0 -> 2934 bytes .../@usr@include@bits@types@struct_tm.h | 28 + .../@usr@include@bits@types@struct_tm.h.blob | Bin 0 -> 3563 bytes .../@usr@include@bits@types@time_t.h | 13 + .../@usr@include@bits@types@time_t.h.blob | Bin 0 -> 2608 bytes .../@usr@include@bits@types@timer_t.h | 9 + .../@usr@include@bits@types@timer_t.h.blob | Bin 0 -> 2645 bytes .../@usr@include@bits@typesizes.h | 106 + .../@usr@include@bits@typesizes.h.blob | Bin 0 -> 6390 bytes .../@usr@include@bits@uintn-identity.h | 50 + .../@usr@include@bits@uintn-identity.h.blob | Bin 0 -> 3405 bytes .../@usr@include@bits@waitflags.h | 39 + .../@usr@include@bits@waitflags.h.blob | Bin 0 -> 2954 bytes .../@usr@include@bits@waitstatus.h | 59 + .../@usr@include@bits@waitstatus.h.blob | Bin 0 -> 3514 bytes .../@usr@include@bits@wordsize.h | 17 + .../@usr@include@bits@wordsize.h.blob | Bin 0 -> 2630 bytes .../@usr@include@c++@12.2.0@bits@std_abs.h | 111 + ...usr@include@c++@12.2.0@bits@std_abs.h.blob | Bin 0 -> 5515 bytes .../@usr@include@c++@12.2.0@cstdlib | 261 ++ .../@usr@include@c++@12.2.0@cstdlib.blob | Bin 0 -> 9139 bytes .../@usr@include@c++@12.2.0@stdlib.h | 86 + .../@usr@include@c++@12.2.0@stdlib.h.blob | Bin 0 -> 6899 bytes ...2.2.0@x86_64-pc-linux-gnu@bits@c++config.h | 2235 +++++++++++++++++ ...@x86_64-pc-linux-gnu@bits@c++config.h.blob | Bin 0 -> 38019 bytes ...2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h | 33 + ...86_64-pc-linux-gnu@bits@cpu_defines.h.blob | Bin 0 -> 2815 bytes ....2.0@x86_64-pc-linux-gnu@bits@os_defines.h | 70 + ...x86_64-pc-linux-gnu@bits@os_defines.h.blob | Bin 0 -> 3283 bytes .../@usr@include@ctype.h | 329 +++ .../@usr@include@ctype.h.blob | Bin 0 -> 14556 bytes .../@usr@include@endian.h | 72 + .../@usr@include@endian.h.blob | Bin 0 -> 3838 bytes .../@usr@include@features-time64.h | 37 + .../@usr@include@features-time64.h.blob | Bin 0 -> 2447 bytes .../@usr@include@features.h | 517 ++++ .../@usr@include@features.h.blob | Bin 0 -> 5477 bytes .../@usr@include@gnu@stubs-64.h | 17 + .../@usr@include@gnu@stubs-64.h.blob | Bin 0 -> 2946 bytes .../@usr@include@gnu@stubs.h | 14 + .../@usr@include@gnu@stubs.h.blob | Bin 0 -> 2426 bytes .../@usr@include@stdc-predef.h | 64 + .../@usr@include@stdc-predef.h.blob | Bin 0 -> 2908 bytes .../@usr@include@stdio.h | 911 +++++++ .../@usr@include@stdio.h.blob | Bin 0 -> 37520 bytes .../@usr@include@stdlib.h | 1050 ++++++++ .../@usr@include@stdlib.h.blob | Bin 0 -> 43360 bytes .../@usr@include@string.h | 541 ++++ .../@usr@include@string.h.blob | Bin 0 -> 17042 bytes .../@usr@include@strings.h | 148 ++ .../@usr@include@strings.h.blob | Bin 0 -> 6444 bytes .../@usr@include@sys@cdefs.h | 705 ++++++ .../@usr@include@sys@cdefs.h.blob | Bin 0 -> 12470 bytes .../@usr@include@sys@select.h | 155 ++ .../@usr@include@sys@select.h.blob | Bin 0 -> 6078 bytes .../@usr@include@sys@types.h | 232 ++ .../@usr@include@sys@types.h.blob | Bin 0 -> 8113 bytes .../@usr@include@time.h | 454 ++++ .../@usr@include@time.h.blob | Bin 0 -> 14872 bytes .../@usr@lib@clang@14.0.6@include@stdarg.h | 35 + ...usr@lib@clang@14.0.6@include@stdarg.h.blob | Bin 0 -> 3235 bytes .../@usr@lib@clang@14.0.6@include@stddef.h | 121 + ...usr@lib@clang@14.0.6@include@stddef.h.blob | Bin 0 -> 2703 bytes .ccls-cache/@home@huck@.repos@odot/error.c | 2 + .../@home@huck@.repos@odot/error.c.blob | Bin 0 -> 2442 bytes .ccls-cache/@home@huck@.repos@odot/file.c | 60 + .../@home@huck@.repos@odot/file.c.blob | Bin 0 -> 5452 bytes .ccls-cache/@home@huck@.repos@odot/func.c | 35 + .../@home@huck@.repos@odot/func.c.blob | Bin 0 -> 4078 bytes .ccls-cache/@home@huck@.repos@odot/input.c | 50 + .../@home@huck@.repos@odot/input.c.blob | Bin 0 -> 4273 bytes .ccls-cache/@home@huck@.repos@odot/main.c | 46 + .../@home@huck@.repos@odot/main.c.blob | Bin 0 -> 4162 bytes .ccls-cache/@home@huck@.repos@odot/odot.h | 23 + .../@home@huck@.repos@odot/odot.h.blob | Bin 0 -> 3870 bytes .../@home@huck@.repos@odot/structure.c | 43 + .../@home@huck@.repos@odot/structure.c.blob | Bin 0 -> 4543 bytes Makefile | 5 +- error.c | 2 + file.c | 45 +- func.c | 35 + input.c | 43 +- main.c | 5 +- odot.h | 11 +- structure.c | 43 + 162 files changed, 11212 insertions(+), 53 deletions(-) create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endianness.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endianness.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn-common.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn-common.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_mutex.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_mutex.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_rwlock.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_rwlock.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@thread-shared-types.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@thread-shared-types.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time64.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time64.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timesize.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timesize.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos64_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos64_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__mbstate_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__mbstate_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__sigset_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__sigset_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_tm.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_tm.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@time_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@time_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitstatus.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitstatus.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@c++config.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@c++config.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@os_defines.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@os_defines.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@features.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@features.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs-64.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs-64.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@select.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@select.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@types.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@types.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h.blob create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h create mode 100644 .ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/error.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/error.c.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/file.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/file.c.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/func.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/func.c.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/input.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/input.c.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/main.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/main.c.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/odot.h create mode 100644 .ccls-cache/@home@huck@.repos@odot/odot.h.blob create mode 100644 .ccls-cache/@home@huck@.repos@odot/structure.c create mode 100644 .ccls-cache/@home@huck@.repos@odot/structure.c.blob create mode 100644 error.c create mode 100644 func.c create mode 100644 structure.c diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h new file mode 100644 index 0000000..7665a13 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h @@ -0,0 +1,40 @@ +/* Copyright (C) 1992-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _ALLOCA_H +#define _ALLOCA_H 1 + +#include + +#define __need_size_t +#include + +__BEGIN_DECLS + +/* Remove any previous definition. */ +#undef alloca + +/* Allocate a block that will be freed when the calling function exits. */ +extern void *alloca (size_t __size) __THROW; + +#ifdef __GNUC__ +# define alloca(size) __builtin_alloca (size) +#endif /* GCC. */ + +__END_DECLS + +#endif /* alloca.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@alloca.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..899af999d4930e4d32140bbcb569888a16d126db GIT binary patch literal 3031 zcma)8O^6&t6s{guB@jYfa3OO@H>(?WhwW)MSw=64OR_P-F6t$Sm!f~Fr_1TC9;&J{ zJGn$Wih?H*@w^ug@!-{y5D-KKPo5$kJcv1ZGZ|l1%?#5?|Jbm-L%&z=eeb>Rece6u zX!nB;?;#6$NuCieDZ-K0=VY7-U4%0jw)xce;47~ibt}GY@w6vkBMR%^hb#zz{ zNXUpX>B3)Ap7|2;4!IV13 zC$maN)2~X?O3QU^?UTVchMgGfw|mY(Ju!ro2A*CZZ*RZ+k zkd?1yK(!JpIaV&89G{j+vf5ZW6hzj*Ruz@-EJSxD0LG#zgyN$hDM)&KAf+!kPHFX0 zF0|QIXa@TYVOr7{39me_P_`_BVYpUh8rAg6w50{+#HTV&{U%v1l+?N)j7(BFtwgL- zsZi>*R#ej+`Wm`pSaQP@_1Z3Jg^n@btgMjaq&`yxH!Hc&_&PF}a~{>cAvF^!Q4CoD zUlv6m+$IXF?rdckNB}!kX>1Z)~Psn(wQ3imkxwweb*)EM`L3l9twV_=F zkTv`6htIyqKK*5joWP5eIk$2eIXypB1KBPZ>?k9VqaIB4zIRW=cLKr+J4t!&z@Fn5I1q&t3nL|#1d3^+V@7#IrC6^Bl5yZ6Yu6@a} zY-Ha=sB;%RcC9$idOv zN`r0_bncwS@Tz_7VP{SGUc38H1(+T3znpLHKmCkp2Ru3Z0_3C&iZ=~X$9K+P927K_ zlwtGO+1Ae?@8GkF5#ltgufM@;u`esMnFPXFd0hth8%>V!Z literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h new file mode 100644 index 0000000..e0f8038 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h @@ -0,0 +1,35 @@ +/* Monotonically increasing wide counters (at least 62 bits). + Copyright (C) 2016-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_ATOMIC_WIDE_COUNTER_H +#define _BITS_ATOMIC_WIDE_COUNTER_H + +/* Counter that is monotonically increasing (by less than 2**31 per + increment), with a single writer, and an arbitrary number of + readers. */ +typedef union +{ + __extension__ unsigned long long int __value64; + struct + { + unsigned int __low; + unsigned int __high; + } __value32; +} __atomic_wide_counter; + +#endif /* _BITS_ATOMIC_WIDE_COUNTER_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@atomic_wide_counter.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..b7f5f30f1652f2e8bb0aaab177c78b7b920ff937 GIT binary patch literal 3401 zcmd5;&u<$=6dpSXO2ZFDt)P|LB%>geB=UM`6Xj5;QQI_8gJ^>w2nh*I$GcVSnSG7w>)YOI=MoeyKi&4v1=Po8Vtx!@U z98X4(6vbhNM@;iiN(eQ3hUqTtlwc&3y-<3G1$4(UgD4snr3Iw`NlUUCsOve<;Q zz~-A9lOqSDp3*hsO*iQY_rgZw^~UDN#-K4(ZOilM&%*~9AM2iWJ)gD8bP5!szM})G znC~RI6sJ7krn=T)#bH@>t*=YV37L6L04$htpw(1pdj`4QR zg@FyA-Ex;kJLIk&H^YQw_o)e=5h^9%BsLu)A%te`!6oyl_HUecD|qqF^RM;yuYPv$ z?ft(`p#E>}qwm&(``=I@1x_mm550m=dr`#-NvC0oUU!-j-VBO~sSF1VI>G8Tp@ zc-uHvvu9aG`M7gGh5P*nA>h@&P`ShnWuNeAy14OBTZf2LN2E3VpP zhH6#E(i$a?W-2!Q{#Qod`Sp$6uWjo?58;wj3j{cKZtZ^~0G`GT5CGvulH9O}|0KE2 zj4TxknCF7|P#S|*j!V3H=~8-^dJAp|31t`64(346h2@31_1MDfLjB(CX{+8)&NLpc z#6r-B`K$i{B?J!in5|z#%UdS_X=!$;HgIcgRHj*QCmNM%MA4q8IJsnr4lp-2(D`c? zvv#X?+hW#m?e-h($ literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h new file mode 100644 index 0000000..ca8417d --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h @@ -0,0 +1,79 @@ +/* Macros and inline functions to swap the order of bytes in integer values. + Copyright (C) 1997-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H +# error "Never use directly; include instead." +#endif + +#ifndef _BITS_BYTESWAP_H +#define _BITS_BYTESWAP_H 1 + +#include +#include + +/* Swap bytes in 16-bit value. */ +#define __bswap_constant_16(x) \ + ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) + +static __inline __uint16_t +__bswap_16 (__uint16_t __bsx) +{ +#if __GNUC_PREREQ (4, 8) + return __builtin_bswap16 (__bsx); +#else + return __bswap_constant_16 (__bsx); +#endif +} + +/* Swap bytes in 32-bit value. */ +#define __bswap_constant_32(x) \ + ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) \ + | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) + +static __inline __uint32_t +__bswap_32 (__uint32_t __bsx) +{ +#if __GNUC_PREREQ (4, 3) + return __builtin_bswap32 (__bsx); +#else + return __bswap_constant_32 (__bsx); +#endif +} + +/* Swap bytes in 64-bit value. */ +#define __bswap_constant_64(x) \ + ((((x) & 0xff00000000000000ull) >> 56) \ + | (((x) & 0x00ff000000000000ull) >> 40) \ + | (((x) & 0x0000ff0000000000ull) >> 24) \ + | (((x) & 0x000000ff00000000ull) >> 8) \ + | (((x) & 0x00000000ff000000ull) << 8) \ + | (((x) & 0x0000000000ff0000ull) << 24) \ + | (((x) & 0x000000000000ff00ull) << 40) \ + | (((x) & 0x00000000000000ffull) << 56)) + +__extension__ static __inline __uint64_t +__bswap_64 (__uint64_t __bsx) +{ +#if __GNUC_PREREQ (4, 3) + return __builtin_bswap64 (__bsx); +#else + return __bswap_constant_64 (__bsx); +#endif +} + +#endif /* _BITS_BYTESWAP_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@byteswap.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..5f7f1eba554347afe708d8260cae4d074c823bab GIT binary patch literal 3839 zcma)8Z)h837=JGfTZ|Dysaut{yBG{j+smbC8pF(L*EQ=}Iw)*71l@VLT$*bycj4~6 zHFX08KPreH_CfKJ_#e0WMUjEX{4f~!WeCDPOhH77_+|J-#TlRX{-n9&?&3i&X`VOF z@Av$k-}79i(7!WVuiiowg;+z^SV<9Nqbjl$3F~ZS7mNB1-^|nzTUQ$*TQ`JlHlvA6 zRcFmka=bE|D0rYRBc;QHkqoVi2_!&-4j0f(SnPWfOnfBurWEi zA|_uF)me^fRCLT^k;9%xYa&k=>z+X~Pfb>NtT2MwXsC++F)TGiU3z&SAwgD!Z67jS zyx|lt`;i8rL9hVMPVJ{x*USEtbzGGc%)nnzU8amyYdMKjsp(Bo@XyL)wIK=Ij#L#n zK{XUCYW{~sr7H1?BI-fK0H%Kit5lmGZg?KF^zsaKNp99QxHBAA1IHKggHPI|`kEk1 z71kUNb~c~MW(u7-gNE?hCgJ({-R)a0OY6HjD^$f=kWO_?oWXuAuVmc_-Zo>P-`yI+>L* zye8BKpt8glK?!A*EHBll$lf-!JnljXasV`$oHZTby=Td?B}d*k`=Q$;-NH(nx`=&f zlZsq?T#Mf7ImhWiDTp6+QHF)>pNQ-im6Ij!p>#GcL)aAZ0ci%nSPRjTFVAmwG1pq1xt9>ld%a!Qjv$2;ca)&RbZMh)5s$V-d4zuHm;DL?D@2nM!DPwRYv8J5VbtE9zqCF z?Ry{GeEs77*4HRT!T+dTIrYWWx0078y#VHNT>x`A8=&*44Uk1y0ASJ67Qp(wCtmyX zow554z}}Bv-v0BmpALHg%oe%;W(zhz=TjRXff4{fqe%nUQDCQH3bM>I1t;^g>;ya_FrmN&vwd9*wermj07 z=ap)A%54Ag==~RO-g$Vs4+2_bBM`~Z)Km`wOSAbfl^x9j!Zjze^GdZlb+++^v(FfG ztlWp7*Hz8IAgZBE#*GoCX&NvRqY1!B4X4h8sfozM*dmH_3b0&r&{TBfNED2c&18!Y zLMFZ9^#?H!WWF?iI!2NEB5J?={Y&pZe(~Gi9s3EY0u5F$_z)^cB|&S;sFpijVd{AN zcp(J$rRPu^Tu7}AuN4;$3bq&>xWHzV$RtcgP)zZf$tYDy0V8q;Mv0HViLOuW|Io*1 zE*HoMeBDYvM6MU2G(8DdD@~{9Y^zqwnwOEL7Z&JTK22XCVLO`5T5&5{Oq<{CIbofF z6QvSe?EN~)U8`9^NS+2ArsLC~%XFN%V(BtJJWq6SMz(jpZC%QlvZ)JLwYX>MvQ}CH zUC14DdF1EV$;?L^bB?jd>rgV1d~%V>MRIUoiLAiAee6{F&YSXkTYdV?76SEyv32Qp z(7m*yCddcnTbjCMsMTz7%=*XU<52&2e4=I54~8Z6Gv6KBXa9I*j$2wie~w#v{(Sk| dg_9fH8K6aXjMfvQXF<=S@uS%gx#!J%=s%6OIV1o8 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h new file mode 100644 index 0000000..1160e89 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h @@ -0,0 +1,49 @@ +/* Endian macros for string.h functions + Copyright (C) 1992-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_ENDIAN_H +#define _BITS_ENDIAN_H 1 + +/* Definitions for byte order, according to significance of bytes, + from low addresses to high addresses. The value is what you get by + putting '4' in the most significant byte, '3' in the second most + significant byte, '2' in the second least significant byte, and '1' + in the least significant byte, and then writing down one digit for + each byte, starting with the byte at the lowest address at the left, + and proceeding to the byte with the highest address at the right. */ + +#define __LITTLE_ENDIAN 1234 +#define __BIG_ENDIAN 4321 +#define __PDP_ENDIAN 3412 + +/* This file defines `__BYTE_ORDER' for the particular machine. */ +#include + +/* Some machines may need to use a different endianness for floating point + values. */ +#ifndef __FLOAT_WORD_ORDER +# define __FLOAT_WORD_ORDER __BYTE_ORDER +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +# define __LONG_LONG_PAIR(HI, LO) LO, HI +#elif __BYTE_ORDER == __BIG_ENDIAN +# define __LONG_LONG_PAIR(HI, LO) HI, LO +#endif + +#endif /* bits/endian.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endian.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..533ada92fcb2060ebb815a29c388a2af0b9e36b3 GIT binary patch literal 2916 zcma)8zi-n(6t;r|R4_y^z(CtbP*Fl0w`o+dP*K#hi4@ujA|VEJIOj`p)bT}kXF@tu zm5`WVti-^~%m#k}I}!`901Hbc7?=s~?4*goc8KH~{GPw}eec&LtNqSB+<&L(n%QD) zVzxZIW9B*OFkv#ANmEGfVd-&_$J#OMSZ?!wJdG~nJJf9&Hsu6M#(URe@U<1w6WpXO zc08MySoS(3-wIfTEOjb{sjR|8s9hJ*k_5>}*9Nf^V-aceaT*S@q-$W-ZZkLDP0}_I zbT@%ey(fw2TAc(8pE7nB-ie_*rVP9+Cr%cW0#cfwYM7n%O0^VENJyKy(tsyPxz9Q% zKB6iQTyzMIN3|qtQ;fRQCI~anm4wGT6W6Ae>k^S924cn|1X2h5WINI^$XBFkEakqo z$(2E<0W+~&oa{Lu^-mETS~vXxG8c>ah5YhS&qF~h-c&qaf82Q&YI@NVCbmfRlRJI1?(v#W+6vG$-08!cc#xB+v?qo;B#=fk=I@*~Tczyszl zN&a9XsOluurX&44`N|B7UI#=N={-KIg0hoU5P02EpI`W+CxiPbt* zF3)bg3OC7kVrf$l8ADqs3h@~(-7x@!L=uGRM?oA|>G42nzcA#`=%F0$W<#-AE+)WC z2otRE$nO=)34;)HxWARD9h0vhEfZ*VEh-z1m9&;UwQ3DmjIN}z7s=QUrJ&Tc=0&$V z;qHi9smwCJN{>ZpU7ZeiKASX}TW#sqpH; zNUHw$xJJT202rr8(@}&->!{f$n9YAScxYY%0*2p)LnM7IR1rT^=&sXqTK=@Ao#@~H ze)#L_RA(Qd>el8)aBQzuZflyBxd;`eF3J3Dn=e;#nd;URcygI?Mbq@FXRa1f>fF}) zI(*vywfFS(pCbkVgZ=Xrf26< z>MRVHAN))|d2sH>DG*($)vBct&ddlWWSUwmEENH2Iz63Fsq>l-rDx}}>%eMmp?t{p zXP<+z%Ekz7jMeD directly; include instead." +#endif + +/* i386/x86_64 are little-endian. */ +#define __BYTE_ORDER __LITTLE_ENDIAN + +#endif /* bits/endianness.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endianness.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@endianness.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..83763555996aab0896d14a6352b9af0d691e925d GIT binary patch literal 2573 zcma)8L2DC16y9wS0($68j|DwQaWXB0;zhBgkpyamHkY2p$?PN!W{vTnf>*Bv ze}QNJf|r6P5xnT1&|lCvGn>>6otbSQf#kjY=6m1!-kWSi7Y|;(Kab)Fj(A4ls32q5 z6m-HRJDhGsT8PEM`ie*%?HvvNZnWA!v zCjksgnWUVIJ#;IT=`5W3%F?aSk_M_;s`Ipa*!B~WDq*<-`W>p=vM!sCn9)JV2_=41 zta!!oR)XJ>Ieo849brskM(Jv*N_ENcd#bhzEPEb-`7>RLl{ikTXuIJ9yL zvqphldbwh1=45P-GEnBqD%^J0x)LzaLtZ+?T*)iD0;lF?@WU^LE-Ms$?ay-9c6sks ze1=f)7Ani(BJo~~)+A0A!@SUcD2l!WA$L^A*$JZ$(BtL|U7p~K{;#qo46khX6`@K3 zz}j?)6vgY&jayN)K0o`r@!`eoKR2VwD{gExI#1&H&)=upZ_j>QAhdtlYoq7K2km2> zcIU3{Jj>~3^>_W{u-oe$wo&`&pu2YzMR8-JaevKxcA|N#pPTP(@~@x1eSe4cyS. */ + +#ifndef _BITS_FLOATN_COMMON_H +#define _BITS_FLOATN_COMMON_H + +#include +#include + +/* This header should be included at the bottom of each bits/floatn.h. + It defines the following macros for each _FloatN and _FloatNx type, + where the same definitions, or definitions based only on the macros + in bits/floatn.h, are appropriate for all glibc configurations. */ + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for this type, and this + glibc includes corresponding *fN or *fNx interfaces for it. */ +#define __HAVE_FLOAT16 0 +#define __HAVE_FLOAT32 1 +#define __HAVE_FLOAT64 1 +#define __HAVE_FLOAT32X 1 +#define __HAVE_FLOAT128X 0 + +/* Defined to 1 if the corresponding __HAVE_ macro is 1 and the + type is the first with its format in the sequence of (the default + choices for) float, double, long double, _Float16, _Float32, + _Float64, _Float128, _Float32x, _Float64x, _Float128x for this + glibc; that is, if functions present once per floating-point format + rather than once per type are present for this type. + + All configurations supported by glibc have _Float32 the same format + as float, _Float64 and _Float32x the same format as double, the + _Float64x the same format as either long double or _Float128. No + configurations support _Float128x or, as of GCC 7, have compiler + support for a type meeting the requirements for _Float128x. */ +#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16 +#define __HAVE_DISTINCT_FLOAT32 0 +#define __HAVE_DISTINCT_FLOAT64 0 +#define __HAVE_DISTINCT_FLOAT32X 0 +#define __HAVE_DISTINCT_FLOAT64X 0 +#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X + +/* Defined to 1 if the corresponding _FloatN type is not binary compatible + with the corresponding ISO C type in the current compilation unit as + opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built + in glibc. */ +#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \ + && __LDBL_MANT_DIG__ != 113) + +/* Defined to 1 if any _FloatN or _FloatNx types that are not + ABI-distinct are however distinct types at the C language level (so + for the purposes of __builtin_types_compatible_p and _Generic). */ +#if __GNUC_PREREQ (7, 0) && !defined __cplusplus +# define __HAVE_FLOATN_NOT_TYPEDEF 1 +#else +# define __HAVE_FLOATN_NOT_TYPEDEF 0 +#endif + +#ifndef __ASSEMBLER__ + +/* Defined to concatenate the literal suffix to be used with _FloatN + or _FloatNx types, if __HAVE_ is 1. The corresponding + literal suffixes exist since GCC 7, for C only. */ +# if __HAVE_FLOAT16 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* No corresponding suffix available for this type. */ +# define __f16(x) ((_Float16) x##f) +# else +# define __f16(x) x##f16 +# endif +# endif + +# if __HAVE_FLOAT32 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# define __f32(x) x##f +# else +# define __f32(x) x##f32 +# endif +# endif + +# if __HAVE_FLOAT64 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# ifdef __NO_LONG_DOUBLE_MATH +# define __f64(x) x##l +# else +# define __f64(x) x +# endif +# else +# define __f64(x) x##f64 +# endif +# endif + +# if __HAVE_FLOAT32X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# define __f32x(x) x +# else +# define __f32x(x) x##f32x +# endif +# endif + +# if __HAVE_FLOAT64X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# if __HAVE_FLOAT64X_LONG_DOUBLE +# define __f64x(x) x##l +# else +# define __f64x(x) __f128 (x) +# endif +# else +# define __f64x(x) x##f64x +# endif +# endif + +# if __HAVE_FLOAT128X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# error "_Float128X supported but no constant suffix" +# else +# define __f128x(x) x##f128x +# endif +# endif + +/* Defined to a complex type if __HAVE_ is 1. */ +# if __HAVE_FLOAT16 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__))); +# define __CFLOAT16 __cfloat16 +# else +# define __CFLOAT16 _Complex _Float16 +# endif +# endif + +# if __HAVE_FLOAT32 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# define __CFLOAT32 _Complex float +# else +# define __CFLOAT32 _Complex _Float32 +# endif +# endif + +# if __HAVE_FLOAT64 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# ifdef __NO_LONG_DOUBLE_MATH +# define __CFLOAT64 _Complex long double +# else +# define __CFLOAT64 _Complex double +# endif +# else +# define __CFLOAT64 _Complex _Float64 +# endif +# endif + +# if __HAVE_FLOAT32X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# define __CFLOAT32X _Complex double +# else +# define __CFLOAT32X _Complex _Float32x +# endif +# endif + +# if __HAVE_FLOAT64X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# if __HAVE_FLOAT64X_LONG_DOUBLE +# define __CFLOAT64X _Complex long double +# else +# define __CFLOAT64X __CFLOAT128 +# endif +# else +# define __CFLOAT64X _Complex _Float64x +# endif +# endif + +# if __HAVE_FLOAT128X +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# error "_Float128X supported but no complex type" +# else +# define __CFLOAT128X _Complex _Float128x +# endif +# endif + +/* The remaining of this file provides support for older compilers. */ +# if __HAVE_FLOAT16 + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef float _Float16 __attribute__ ((__mode__ (__HF__))); +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ()) +# define __builtin_inff16() ((_Float16) __builtin_inf ()) +# define __builtin_nanf16(x) ((_Float16) __builtin_nan (x)) +# define __builtin_nansf16(x) ((_Float16) __builtin_nans (x)) +# endif + +# endif + +# if __HAVE_FLOAT32 + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef float _Float32; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf32() (__builtin_huge_valf ()) +# define __builtin_inff32() (__builtin_inff ()) +# define __builtin_nanf32(x) (__builtin_nanf (x)) +# define __builtin_nansf32(x) (__builtin_nansf (x)) +# endif + +# endif + +# if __HAVE_FLOAT64 + +/* If double, long double and _Float64 all have the same set of + values, TS 18661-3 requires the usual arithmetic conversions on + long double and _Float64 to produce _Float64. For this to be the + case when building with a compiler without a distinct _Float64 + type, _Float64 must be a typedef for long double, not for + double. */ + +# ifdef __NO_LONG_DOUBLE_MATH + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef long double _Float64; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf64() (__builtin_huge_vall ()) +# define __builtin_inff64() (__builtin_infl ()) +# define __builtin_nanf64(x) (__builtin_nanl (x)) +# define __builtin_nansf64(x) (__builtin_nansl (x)) +# endif + +# else + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef double _Float64; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf64() (__builtin_huge_val ()) +# define __builtin_inff64() (__builtin_inf ()) +# define __builtin_nanf64(x) (__builtin_nan (x)) +# define __builtin_nansf64(x) (__builtin_nans (x)) +# endif + +# endif + +# endif + +# if __HAVE_FLOAT32X + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef double _Float32x; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf32x() (__builtin_huge_val ()) +# define __builtin_inff32x() (__builtin_inf ()) +# define __builtin_nanf32x(x) (__builtin_nan (x)) +# define __builtin_nansf32x(x) (__builtin_nans (x)) +# endif + +# endif + +# if __HAVE_FLOAT64X + +# if __HAVE_FLOAT64X_LONG_DOUBLE + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef long double _Float64x; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf64x() (__builtin_huge_vall ()) +# define __builtin_inff64x() (__builtin_infl ()) +# define __builtin_nanf64x(x) (__builtin_nanl (x)) +# define __builtin_nansf64x(x) (__builtin_nansl (x)) +# endif + +# else + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef _Float128 _Float64x; +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf64x() (__builtin_huge_valf128 ()) +# define __builtin_inff64x() (__builtin_inff128 ()) +# define __builtin_nanf64x(x) (__builtin_nanf128 (x)) +# define __builtin_nansf64x(x) (__builtin_nansf128 (x)) +# endif + +# endif + +# endif + +# if __HAVE_FLOAT128X + +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# error "_Float128x supported but no type" +# endif + +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ()) +# define __builtin_inff128x() ((_Float128x) __builtin_inf ()) +# define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x)) +# define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x)) +# endif + +# endif + +#endif /* !__ASSEMBLER__. */ + +#endif /* _BITS_FLOATN_COMMON_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn-common.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn-common.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..691d09dcf11ff9dcb88f08432a610309db867a42 GIT binary patch literal 6614 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 VXN?zrr)AgWlFM*61F2m~{|5;Ss(%0g literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h new file mode 100644 index 0000000..34a6fdc --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h @@ -0,0 +1,121 @@ +/* Macros to control TS 18661-3 glibc features on x86. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_FLOATN_H +#define _BITS_FLOATN_H + +#include + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the IEEE 754 binary128 format, and this + glibc includes corresponding *f128 interfaces for it. The required + libgcc support was added some time after the basic compiler + support, for x86_64 and x86. */ +#if (defined __x86_64__ \ + ? __GNUC_PREREQ (4, 3) \ + : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) +# define __HAVE_FLOAT128 1 +#else +# define __HAVE_FLOAT128 0 +#endif + +/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct + from the default float, double and long double types in this glibc. */ +#if __HAVE_FLOAT128 +# define __HAVE_DISTINCT_FLOAT128 1 +#else +# define __HAVE_DISTINCT_FLOAT128 0 +#endif + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X 1 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 1 + +#ifndef __ASSEMBLER__ + +/* Defined to concatenate the literal suffix to be used with _Float128 + types, if __HAVE_FLOAT128 is 1. */ +# if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* The literal suffix f128 exists only since GCC 7.0. */ +# define __f128(x) x##q +# else +# define __f128(x) x##f128 +# endif +# endif + +/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ +# if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* Add a typedef for older GCC compilers which don't natively support + _Complex _Float128. */ +typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); +# define __CFLOAT128 __cfloat128 +# else +# define __CFLOAT128 _Complex _Float128 +# endif +# endif + +/* The remaining of this file provides support for older compilers. */ +# if __HAVE_FLOAT128 + +/* The type _Float128 exists only since GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef __float128 _Float128; +# endif + +/* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) +# endif + +/* Older GCC has only a subset of built-in functions for _Float128 on + x86, and __builtin_infq is not usable in static initializers. + Converting a narrower sNaN to _Float128 produces a quiet NaN, so + attempts to use _Float128 sNaNs will not work properly with older + compilers. */ +# if !__GNUC_PREREQ (7, 0) +# define __builtin_copysignf128 __builtin_copysignq +# define __builtin_fabsf128 __builtin_fabsq +# define __builtin_inff128() ((_Float128) __builtin_inf ()) +# define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) +# define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) +# endif + +/* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, + e.g.: __builtin_signbitf128, before GCC 6. However, there has never + been a __builtin_signbitf128 in GCC and the type-generic builtin is + only available since GCC 6. */ +# if !__GNUC_PREREQ (6, 0) +# define __builtin_signbitf128 __signbitf128 +# endif + +# endif + +#endif /* !__ASSEMBLER__. */ + +#include + +#endif /* _BITS_FLOATN_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@floatn.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..98609aa33f745a1a2de5a6011646cc72d3534f5a GIT binary patch literal 2929 zcma)8L2naB6doIhDyu{hs0UOM1qDR`Wj#r1tV&T43D`}L>m(wyy^YqhV|$wQt~E1T z z7JPIQM^a!OP(Sh*rmEj%#dgdp5ovHGv5rbiNT(r{s~AzKsZHi;#xgZ%aGHMTs=%RP zrxOPDG{rki@}DvYHTsIlp4-j9FqEku(gO?K5oM6&`Zih63MgrYs$q4i+qH_FkW?NI zlmovk<%V_Ke8P1dgzPeEM|D-$;gs~a#|RChKrvxYW`W1uAYd{}4BTl)h@}qrsZMHQ zT(8v7NXd=1$(p4CPF8Qa%GAjyb6i2&6K=)Y7g>OQsMlKyhQ>1QiSw=>j@ zI$apz*a`YsPV55L*RO*eelS#>NU;a@tQ1?O+92~KGL?fT-m^ZA#ssM>T0sOK6;VSv zS=}EU*Hjp|0LCdbbaF##^nbHY2;);5JW;5afMdQShDiDAiH;4u4&i?j0mEVZ8|2(& zG+$UmONDi`IbA{Z={+Q-5t=&w>{Ye?%h{)I3EA5CwnD14osIo+>3f9G+ya<|2W);U zG{1^a4$t6XUY~2|I0wnc??3}cXsY?)+&%zwqTB?8T=bFH>&v@ zoOcKKQ~&+8dsu4xGr+&IeQ$reetSPAyt?)!fUk^!pURnE0p`~(T-(g+vpPV2^!RZ0 z_u8e`qs(K#)Cxez;9R+IWhI}3vt)42E`GAOcq_MFSYNu8s}w45?iKdnJU;*C(~aVv zyI%mqlfN^w)3XqpE6vs6Y|Q-(d4E6Kdh%-P#Z|Joy?-y(RVQ2UFPBerjYV=7XD%-1 I%^7R?0AJNL`2YX_ literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h new file mode 100644 index 0000000..d161ca5 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h @@ -0,0 +1,110 @@ +/* Handle feature test macros at the start of a header. + Copyright (C) 2016-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* This header is internal to glibc and should not be included outside + of glibc headers. Headers including it must define + __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header + cannot have multiple include guards because ISO C feature test + macros depend on the definition of the macro when an affected + header is included, not when the first system header is + included. */ + +#ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +# error "Never include directly." +#endif + +#undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION + +#include + +/* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ + macro. */ +#undef __GLIBC_USE_LIB_EXT2 +#if (defined __USE_GNU \ + || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) +# define __GLIBC_USE_LIB_EXT2 1 +#else +# define __GLIBC_USE_LIB_EXT2 0 +#endif + +/* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ + macro. Most but not all symbols enabled by that macro in TS + 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in + Annex F still require a new feature test macro + __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define + __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS + 18661-1 are not included in C2X (and thus should depend on + __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are + enabled). + + __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS + 18661-1 not included in C2X. + + __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS + 18661-1 that are also included in C2X (with no feature test macro + required in C2X). + + __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 + that are included in C2X but conditional on + __STDC_WANT_IEC_60559_EXT__. (There are currently no features + conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS + 18661-1.) */ +#undef __GLIBC_USE_IEC_60559_BFP_EXT +#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ +# define __GLIBC_USE_IEC_60559_BFP_EXT 1 +#else +# define __GLIBC_USE_IEC_60559_BFP_EXT 0 +#endif +#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X +#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X) +# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 +#else +# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0 +#endif +#undef __GLIBC_USE_IEC_60559_EXT +#if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ +# define __GLIBC_USE_IEC_60559_EXT 1 +#else +# define __GLIBC_USE_IEC_60559_EXT 0 +#endif + +/* ISO/IEC TS 18661-4:2015 defines the + __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction + functions, the symbols from this TS are enabled unconditionally in + C2X. */ +#undef __GLIBC_USE_IEC_60559_FUNCS_EXT +#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 +#else +# define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 +#endif +#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X +#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X) +# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 +#else +# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0 +#endif + +/* ISO/IEC TS 18661-3:2015 defines the + __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ +#undef __GLIBC_USE_IEC_60559_TYPES_EXT +#if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __GLIBC_USE_IEC_60559_TYPES_EXT 1 +#else +# define __GLIBC_USE_IEC_60559_TYPES_EXT 0 +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@libc-header-start.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8cab81649e95bbbe8d5ce394c3c6ad380d1fa171 GIT binary patch literal 3215 zcma)8(Tf{J7@v()&LCCdgCcSs6tNXIdmh&l4|;}+NsXqx^Li)O+A_D9og`y6yJ2V6 z81bR#Q^o!VKKmy4BI<*JLW|FZioUh@;Je_9LeFnzH!(|RXA`&~FkgPZ-}imL@0)uG zJ$U*3>$j1GoPIc@PCq6Cry9{w$eqv&g~LS@6A?$WO3)+3cZ1#{k@h%@1}x~=9*Zau zVKh0HgO9eHm`4r^h#z~@A!0J3)qbKXbJJmhJMxx07!NyKxPoG#4ee4_D(2cth12yz zR|GZ*hr=+)4-;%iIs3>Us523ikKK_0LrErnNCr7_=Q4vR*Uw7}S^*_BWHqf$v(;|o z3*y3Kfw1Avl(|x!G#@irhlr0T$wzfXIAjEmnMW}R<3P|TKbQs{bAy0#Q!>DrkC3FA z>Jvk4U{Wvb)m+I{ZpEF!xC=9}v0faRih8ICKI=GYfSgy>tE<(GndhM)Zq$=Hzy5u2 zJ7ao2;STX=*Hou|L|xD3eK(?>t?H7Wa;hyFOFQO=WveTPz}Wk#?_`A*u8*wy2d-Zr z0*23!`$(wd6~FC9q+fvMNK%tRKa@Kwj61&Gdx>!~ET*gW7LtTkIg2_#s zBH!Z70&so#B;>=V13iod{V+dDV_U6FjL%P!P8fN)FQPJuRz)v};XjGE!)=p0=EqqJ z0|YQ`+N&9Z_V)i_D7bbWTHBdIB?4?^(7pUwu=#@%;Cj_b@)+Zf)1`!KDUnHR^a{_3YW#aP#0|{Ss~* z?&JE}AwsBm3Y@|My0Sp{$|^z@sgT2xJg=f-3jmHkd-B&O9)0Ti%>n=j-CB@K@m#B1 z+bvme?x#Hd%KeZ3xP>};p8d`;GFV&vGdEf-~Dy(MLiEx4j9(V znLv=j-mC1rQL^BCGtJ@F!H*|?v+zH9?Cs|6TxYh;9CN{nt6gdDmn=9BQ!f1Od-s1n zb?^Y>&ORqvOReRa)wCzt)2^&dKQiB$jq literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h new file mode 100644 index 0000000..350df84 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h @@ -0,0 +1,21 @@ +/* Properties of long double type. ldbl-96 version. + Copyright (C) 2016-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* long double is distinct from double, so there is nothing to + define here. */ +#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@long-double.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..926d0afa0c32118d3de5315e31fb92fac445ee5e GIT binary patch literal 2494 zcma)8L2eT<6rI8aKx=^KKuCPI@`-|p(>7xn$2-f^Mx{4<;r4X zblHSxM#WE|qAh^jydp%7y04D!qCc!Ovdd+Gs2!E9;zNW>*W|D;idZ;>fEz#%qPO>pv{7_I4ZTO5{xWG&Iwbs zv|PuFxy%KXlABaBaAzE$X?4TTR>8tXui(*+tNWnNW%e_5*~E zj(dl_{!Qk=5UOX6=g&X$>sIK^%3zlBX-cO;bDASlP|b7Xb&0pU;ii`^j`6a#x^4)P z-a}^$6~KaP1aqmwQ@Nx0);B=@M9U5yFn_7`HygpZlk#R^y-vO}L^UfqZpAJa5x^$C zEr67{;Ge7Y=7yK7+qACa+nXP4|93SLGsA6!kt5sUv)!jV0ECzngo~QtC2Z?BkXs#! zlp;KD+qH`voBnYErsJAsI|sk-SaxK*39nzcB9G|R$kIV`Nrj!3G_`SSw?z@`JZXhp z1sVIR9F%*p>Tr@lSB4fazfDryi`-fRv~&+c9DXxTRc-lIyebgeU`&#aP}7dmdGuZM zAqldW$r^r7)DweJ>DZmrAPigp;}$%+xgmJ^e;7KB@vY_E5~?A9d`!1U8T{?7zd!!9 z{`&jTLqbMp7w=9-19CYy8(t1xkKdB<1vwvGoQ#j2zaS^4L#RK00)`985AINYa0vMO Q5BA^RbN@eN>pcMY2kUynhyVZp literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h new file mode 100644 index 0000000..dd06d67 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h @@ -0,0 +1,55 @@ +/* Copyright (C) 2002-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_PTHREADTYPES_ARCH_H +#define _BITS_PTHREADTYPES_ARCH_H 1 + +#include + +#ifdef __x86_64__ +# if __WORDSIZE == 64 +# define __SIZEOF_PTHREAD_MUTEX_T 40 +# define __SIZEOF_PTHREAD_ATTR_T 56 +# define __SIZEOF_PTHREAD_RWLOCK_T 56 +# define __SIZEOF_PTHREAD_BARRIER_T 32 +# else +# define __SIZEOF_PTHREAD_MUTEX_T 32 +# define __SIZEOF_PTHREAD_ATTR_T 32 +# define __SIZEOF_PTHREAD_RWLOCK_T 44 +# define __SIZEOF_PTHREAD_BARRIER_T 20 +# endif +#else +# define __SIZEOF_PTHREAD_MUTEX_T 24 +# define __SIZEOF_PTHREAD_ATTR_T 36 +# define __SIZEOF_PTHREAD_RWLOCK_T 32 +# define __SIZEOF_PTHREAD_BARRIER_T 20 +#endif +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4 +#define __SIZEOF_PTHREAD_COND_T 48 +#define __SIZEOF_PTHREAD_CONDATTR_T 4 +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4 + +#define __LOCK_ALIGNMENT +#define __ONCE_ALIGNMENT + +#ifndef __x86_64__ +/* Extra attributes for the cleanup functions. */ +# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) +#endif + +#endif /* bits/pthreadtypes.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes-arch.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..eb339b59b52a4d39e800d0e38d762e8840bbb086 GIT binary patch literal 3535 zcma)8OK%%h6rOQ;sHH7d6{#;&O^XDnoAEfUF%>EmPV8W}wi7w73f)|dXRhrb^RQ;_ z;06g)SVTfXU4g^~Ar!=l*OCPbgixhOEl40h@B?50>Y`%7D&gFDICebunn*dD`{g^| z`OagK5w_=ExphYn1*PX$Sn2uNnv!*K-|-YjcZlK<*Vl;e;;bg@(@fRw{vV_~aNIS+ z?#jC1VvRWN`tuBa;j-d;u434l>FZe0$a)`Vd!eeam$pGXg}!%LZdxH&olk z9ztgAms5V=#Y8Xggeb9qDR9)rjfj9 z@xhg;nnIpKGbK%UmlOYW zgH)7?eyjZC83tc9xeuEgP73`Nj~xKjq@M&feY8oIPw-7PDq(CB$AtU&3CnR@o%ux! zh9pr%*Y@E*3BT>hyy@tZ;Fhtw3<+S}_!$ykcb8$xvodkE$BYUE$ibM#OycZV$M)K^ z?+M}b;WNV12j_+SK|wgQbNlX%kM91IyMRz_dGRVL)~YWy>g7gD5CrK-m;=Mc(&U?% zO=okdAPPGoV0UhpI$uAw|CbCxtJNFjd$U(Jo@dQ6U0#q0`5GMdx(-QoCo@oGbbx48e?BR&TW79{>DRpP0)vy2JGjV z>@i4srU2w8W=?=95Nnb4Uo&rSy>a06PbbKShOt9TsoC@_v=w6P y{G~SsH~;?O@vCT|+FFgbw)OH#c@-6#ixpG>O}lMnf%eY>_mT7wFdyPlXxe}KDd!;o literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h new file mode 100644 index 0000000..6f8907f --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h @@ -0,0 +1,121 @@ +/* Declaration of common pthread types for all architectures. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_PTHREADTYPES_COMMON_H +# define _BITS_PTHREADTYPES_COMMON_H 1 + +/* For internal mutex and condition variable definitions. */ +#include + +/* Thread identifiers. The structure of the attribute type is not + exposed on purpose. */ +typedef unsigned long int pthread_t; + + +/* Data structures for mutex handling. The structure of the attribute + type is not exposed on purpose. */ +typedef union +{ + char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; + int __align; +} pthread_mutexattr_t; + + +/* Data structure for condition variable handling. The structure of + the attribute type is not exposed on purpose. */ +typedef union +{ + char __size[__SIZEOF_PTHREAD_CONDATTR_T]; + int __align; +} pthread_condattr_t; + + +/* Keys for thread-specific data */ +typedef unsigned int pthread_key_t; + + +/* Once-only execution */ +typedef int __ONCE_ALIGNMENT pthread_once_t; + + +union pthread_attr_t +{ + char __size[__SIZEOF_PTHREAD_ATTR_T]; + long int __align; +}; +#ifndef __have_pthread_attr_t +typedef union pthread_attr_t pthread_attr_t; +# define __have_pthread_attr_t 1 +#endif + + +typedef union +{ + struct __pthread_mutex_s __data; + char __size[__SIZEOF_PTHREAD_MUTEX_T]; + long int __align; +} pthread_mutex_t; + + +typedef union +{ + struct __pthread_cond_s __data; + char __size[__SIZEOF_PTHREAD_COND_T]; + __extension__ long long int __align; +} pthread_cond_t; + + +#if defined __USE_UNIX98 || defined __USE_XOPEN2K +/* Data structure for reader-writer lock variable handling. The + structure of the attribute type is deliberately not exposed. */ +typedef union +{ + struct __pthread_rwlock_arch_t __data; + char __size[__SIZEOF_PTHREAD_RWLOCK_T]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; + long int __align; +} pthread_rwlockattr_t; +#endif + + +#ifdef __USE_XOPEN2K +/* POSIX spinlock data type. */ +typedef volatile int pthread_spinlock_t; + + +/* POSIX barriers data type. The structure of the type is + deliberately not exposed. */ +typedef union +{ + char __size[__SIZEOF_PTHREAD_BARRIER_T]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; + int __align; +} pthread_barrierattr_t; +#endif + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@pthreadtypes.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..58e50ff19753b1d221ebd0779d3422afdf6e98d2 GIT binary patch literal 7515 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 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h new file mode 100644 index 0000000..9afd878 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h @@ -0,0 +1,37 @@ +/* Copyright (C) 1997-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _SYS_SELECT_H +# error "Never use directly; include instead." +#endif + + +/* We don't use `memset' because this would require a prototype and + the array isn't too big. */ +#define __FD_ZERO(s) \ + do { \ + unsigned int __i; \ + fd_set *__arr = (s); \ + for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ + __FDS_BITS (__arr)[__i] = 0; \ + } while (0) +#define __FD_SET(d, s) \ + ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d))) +#define __FD_CLR(d, s) \ + ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d))) +#define __FD_ISSET(d, s) \ + ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0) diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@select.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..30155ac5d1c29096815c04757d91eda688dcecf3 GIT binary patch literal 2816 zcmb7G%Wl&^6m<#`2(bu{Ma6=;4^;`O<5sG=3y4RGDq0~WT>+If8BdZSwkMhyHv}Ps z#I|er1GeQCDpmajV8It4!Il+a9!VRkGY%}`#mx0R=iGblb?!KSR$jh4aSD##Au;kh zDeU?cih6|kBqZEtoTiYc6jh*e0Y)Hc|4XFTC$x)`wijZGASZNCwd8m1`YEG6PGFRV z$cKE;LzRwZmAPqR&U|^x{2+*%j027WZVYW9AQ>~`rOMNa2;hkaNgR{J9>#Hu7=E2Y zs5#(>^+7KuhoTH40=pKv6Usysh-|V%D?~|iRE?{%xwT!h6Jk8X3HQV=Pq|{Pn;&3V z2g-T~+Oq;qVhn>m4p9I}ns7wz!6*qaND{>I#0X4#1}$~OkH^M9T`%L+M9G!5>75CJ zmY9i+_34o#Qs`q>9dR)~>Df0k@ohhik^hI96h{*Lu(q?3~srGmVCC>q($ud?sz`Tj&I+h^^JD;*9 znJg@BGsG>lrJ@X<@zR}05CkkQh4dpskyz>WL~_57Aj0OM9PegNve{U-r_n3gcrRH@ zF}ilJ+PXNj)I-ajLZc5bZ$%()?WS^-dSdY<9P@#Zv4WDRsefieS7wGy9Zl|J(-86iO5DlugH(oWeEd##P6;I6S(%cl>4l_uC-Yd=zXo8ns== zac(Y(-r@wgXQ!ob#bssp#TC~rmE>_Fc(AqGa7(QGTt(HkcimE0-gB4rTRZm~Pvk+_ zov*s9WydKj78jRh#B(Weh6RB#Tt2K9j_N;#>ivh?b#YeAAd9mM?mod`*|ouI^s1}1 zNPGz|k>`u^?u>XY&=K;%<4f;+VPUp7yD%f3w{Ph;{{pcX8Ik}1 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h new file mode 100644 index 0000000..599e280 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h @@ -0,0 +1,29 @@ +/* Define intN_t types. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_STDINT_INTN_H +#define _BITS_STDINT_INTN_H 1 + +#include + +typedef __int8_t int8_t; +typedef __int16_t int16_t; +typedef __int32_t int32_t; +typedef __int64_t int64_t; + +#endif /* bits/stdint-intn.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdint-intn.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8374ea6275cdd2cd8c14461e3ad94db22783326e GIT binary patch literal 2993 zcma)8zmFS56kcB_0zzO&;kA{*IxG}Lw_ffzEEEX}ekmuBG&#|v7{;?>dvg23%*2C6_w9N@ zRA-4`WFaC>SeB=n%lcpoX-z-`>LJyfv-$*{MuMg(S4}(trXHbEQYX$pD~0oDO-)00 zv*?6O!0w~{&5?x;kLVkVacE{E+}$6(G#nkRT?j$pt#CKCG%P`n&Nup)(fDfCZNUjGS~2+?wVE4V3;v8gJkMqt(=Y zG3OHPkgqQM zR5i)EuwtsXuAz+`Rrr+qbPa$I)dYclR6K@lT@M6y78!|!dnn7b8z7s}egn*gGIl#V z^O5C-L9h-t3s*!ndRbXE&|FZVCoyf>xVcE-8G%ijYN3}-#-MoGhkk4&Nv8u?m{pu|CdD z7$^Ya<~%yC;5_|*7&aV-k8JpgP?kVoY+53<&Q@-$Qp)pAuKbgiKkxoLcm>@F*WAY) z(pkxkpZoZ?)ob^*pJ=VN4nIxL{q@7mGVM5{UuF&l&tUkVx3|^mdA&W% zKCX7ZW&XYQ)P-NK-idFOD3EJwzq|*vegC1_-F6pie{ti+2RrgT^Y9>LHOpj?w>yHo z)2AQG^V>e=J$L8LY>&RgMS{s(voQ5ygN literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h new file mode 100644 index 0000000..4ef3ebb --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h @@ -0,0 +1,39 @@ +/* Copyright (C) 1994-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_STDIO_LIM_H +#define _BITS_STDIO_LIM_H 1 + +#ifndef _STDIO_H +# error "Never include directly; use instead." +#endif + +#define L_tmpnam 20 +#define TMP_MAX 238328 +#define FILENAME_MAX 4096 + +#ifdef __USE_POSIX +# define L_ctermid 9 +# if !defined __USE_XOPEN2K || defined __USE_GNU +# define L_cuserid 9 +# endif +#endif + +#undef FOPEN_MAX +#define FOPEN_MAX 16 + +#endif /* bits/stdio_lim.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdio_lim.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..62dc396505bc0b75a54b603f1379202dcba2da17 GIT binary patch literal 2778 zcma)8&ubGw6y8SYL8OEz5(_O$tx{|^o2DVOhYBsW8cfAsf1#|FJX%9_4X@!h|3M}%gQ`p z9X1~jSqIAc7^R~^?l}a30kJSZp6_x@(~Yrf5$L*@WhEnGrXz%@M*O&=Gz{ydyh@Zj z$ZdRQ0BDPus8z>XMx-t@!6q#;7$9@GS}K=n=b9G{fwUueo_y<_j)9p7#z80vCEqMxt!1$TkkJyZ+VW{ghmR)8@i~5;Zl%zqQUjUKP?(NKt<;xMzA&DWMaT8UKMKFaj4X8| zXH^L!0*F~sUY$o!-iBS5D`U*Hd0~Bz6e=WO1Tu}0wA?lA`juHtpVG9+v$s!vOrGp? zJ~jXnPoYCBP16cDMSF>h_4AMVnx;+66lUgg@?6l)CWP79ufxKh-dQ6ZJfEMR%gHl#&VRVS`0Cx~pE7}+jpkP5UyNfXzw6cVngp57PcP);S&10D zE*>wG-+aA%(Ae-vy0&6Fd+Yb1}w+OMO{j74n5j JPM)<8>mT2?3PJz? literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h new file mode 100644 index 0000000..b4645dc --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h @@ -0,0 +1,29 @@ +/* Floating-point inline functions for stdlib.h. + Copyright (C) 2012-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _STDLIB_H +# error "Never use directly; include instead." +#endif + +#ifdef __USE_EXTERN_INLINES +__extern_inline double +__NTH (atof (const char *__nptr)) +{ + return strtod (__nptr, (char **) NULL); +} +#endif /* Optimizing and Inlining. */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@stdlib-float.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7b6c5c2a2045ca49846f6c66d546c6c5c9b9c729 GIT binary patch literal 2389 zcma)8L9P@b6hz&+GRBoBFf#a)$?SBeiOKg2ga&3BhlUP39LJRh@Eoo^#lM4>F#vom{;h}>(Afs&?7{8J4n(8ek2-gSj0BYwBg72Ix4WAWdO%ttMkly8a`D?2j@r0>!=Lupg27#At|@PfOPd@X@p|NNZ)EE-dRVO zTD|atp;$QSRXmzWo_kxL45j. */ + +#ifndef _THREAD_MUTEX_INTERNAL_H +#define _THREAD_MUTEX_INTERNAL_H 1 + +struct __pthread_mutex_s +{ + int __lock; + unsigned int __count; + int __owner; +#ifdef __x86_64__ + unsigned int __nusers; +#endif + /* KIND must stay at this position in the structure to maintain + binary compatibility with static initializers. */ + int __kind; +#ifdef __x86_64__ + short __spins; + short __elision; + __pthread_list_t __list; +# define __PTHREAD_MUTEX_HAVE_PREV 1 +#else + unsigned int __nusers; + __extension__ union + { + struct + { + short __espins; + short __eelision; +# define __spins __elision_data.__espins +# define __elision __elision_data.__eelision + } __elision_data; + __pthread_slist_t __list; + }; +# define __PTHREAD_MUTEX_HAVE_PREV 0 +#endif +}; + +#ifdef __x86_64__ +# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ + 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } +#else +# define __PTHREAD_MUTEX_INITIALIZER(__kind) \ + 0, 0, 0, __kind, 0, { { 0, 0 } } +#endif + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_mutex.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_mutex.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..06660e0d4fca6888ca23555bf22b3e372a9e13f1 GIT binary patch literal 3783 zcma)8O>7%Q6dpSkN{fj?swjU_vT*{XkoBe^N@)dEBH}86Bx<5iRj6WE?@r<&>s@PS z7Gp|KK;lA5Idb6wqTFb?^oLV(Ksi+$kN~y4AXITc9DzzeV&3d}H+HhS#)>!g&ht0l z``-87?9*s>T(;~r zYOcyUwTZ?pyYfN=K02*9%vPwW8IDdAjaNz}Tku#ltmG+Yidba|#>G72DkqqShOQ7* zFlM2PF3yT!soaz`t5~$m=rB%;gweNS2<0oBu(Dc;!Eh;ShNZ1V(5=f1qEsU)Ehq&@ z8k3c;&Y9V{Tr?rZb!u`M-f@|`ti9r6Ds-?}iD=QNDz}PM!)2-ytXYo9i5(qGOr5Hx zNmyJmuxB)amuih4FNOwsdWA04N$%#>yfPTCKu=7JH;=55I#2|I<`uVrl;h*s(dd=+%^sIF*&*xEy8 znp^-D#Fn8i?eMOw)7-BcAit>^O?W{6#id`H2%q1sAIf6Ybl`Eq$ul{w?)8lt3IiKJBZV#nJA|(8*}TcJa$t5h2;~uwT?6_^ zDES0>HhmI3pGJ>VHx?hZFK)iXgvp>HZ71$Nz=ziRzEXUcA5g{ZEC&P-*L`+BCaWLcX}SCJr3a_0 zW&PXElOMi!8Qs_))KdM6FD3tO|8=u^>(Be!hu*n&yL$77U#>j9e(NiAb$@iS`Z@pf zgQMT^xbEunw+over@6MKL>IyI-I$x+W zwpc@%nKWcQ^yJW(zygns1+Cy=`lgD^-YT2KhV+GcJ?Wlafzy-f>8)|{{pOf(N|{85 zG$LelA3;&?qyXyf?;a6A-Kp-8s~!>G=8?Y_&qr<hiT&-ImVWTzvl% zjL$C5Eaj%A@%$^xx$}5-VRm_TYHs$`+!EMjVhEa_ngkS!40{S=QSoEag~O6GIIj~SAO^E zm60#@^PQPGm&0e5a_3;Xv8beiAjy3lhb@LXhNqL_x>TdO@yBnE9er). */ + +#ifndef _RWLOCK_INTERNAL_H +#define _RWLOCK_INTERNAL_H + +struct __pthread_rwlock_arch_t +{ + unsigned int __readers; + unsigned int __writers; + unsigned int __wrphase_futex; + unsigned int __writers_futex; + unsigned int __pad3; + unsigned int __pad4; +#ifdef __x86_64__ + int __cur_writer; + int __shared; + signed char __rwelision; +# ifdef __ILP32__ + unsigned char __pad1[3]; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } +# else + unsigned char __pad1[7]; +# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } +# endif + unsigned long int __pad2; + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned int __flags; +#else /* __x86_64__ */ + /* FLAGS must stay at this position in the structure to maintain + binary compatibility. */ + unsigned char __flags; + unsigned char __shared; + signed char __rwelision; + unsigned char __pad2; + int __cur_writer; +#endif +}; + +#ifdef __x86_64__ +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags +#else +# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ + 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 +#endif + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_rwlock.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@struct_rwlock.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..56e3cc58143cc5ac3eb104aa6e0a7fc93e25374c GIT binary patch literal 4195 zcma)8U2NM_7`@2?8&gz9Rob*oQ1P-s`i0(2}}=tftui7||0yN#)12m6{3 zrlG>dgwQ6jmx%`+Ktdpdv>~SL35g+K57R&h#=|6pKto78@W2B?AO-VX|264sCsmt= z-kWpJcfRwTd$*wf($6hlMiIo6)UwEw41S5pXktax8C6g*qhrnBv7w0>9uE{GgqtotrnI194MVTI<^a#>Y^w_&L)>e5Rggo-sR>Q$~1f?-kSWtCqFpxaOx z?Be90vY-_pX-HMBIy>`)nP5UX79<7J@E2CO#oBH@D-j(uy(03#s2o4Zx$6n;uJ;H!-|13gAwdf9e%j%yV2Imcd0>gtG3piVc7+kiHU6Moers+njlL> z#u^}IYc?~MneaRh4dJv!!t>+nOP8BWuh(>j7sQ1yol2U>3AA3~G*O@}U0Rjw%0}EB z+Emw2r1Y@Dp){T@0S!^3VK6oSv1|~%fx!!$+=4F*U`YKHYzbgdr8$i+wLoJ?!$XTv zNp7h|QTF$rZQiC+!deU6BYUmZ`bR9uS+eEi7>ERi%F2@ew7H>66E+js5SSLn*xBs+eZsOWhg)$g2?2W9vb3OCpA!oUGAZoW(23BIchPoeXxmQcjJeB|?MSEi3Y zfiA9Ii<*ZIeuX9uW@&S|=k$dO$F{9SXIF1pYd-(co+nTL$bM_yHgxCYhx2dmGvE5@ z*ztEC`gO#7?Yo}8&nB3Hx#Q66_jkN<=4+Gw;X`JrN?!?cV>Cc(o@XBS9TK*1@1?N9Yj6WIP(|Fpx-wMx6N6;8Mp z(BgoWOeMDvv}7!~#X)o3?ev0&mr7VOw5ljeI%tg&ySo8#C^!ra=6B7_rYCgPk+-$DE?gCjhdF}DKx3U`P+R&AaTAz-HZeX-a5loqNOgWGmuuM4+ z8*okO#<7Pc!?Q2UmH;=7lC#9)qnk&wq#>iR(d;?fk&!>n+{mo^eKFi8Q1rA{^lDEw zIf}UOh@Tayqd;J!Yh+)Pe4cQ$aW9D$al#uKYg+*#B>_N#@xe``lEK*ECMQzdob`lh bHLoDd). */ + +#ifndef _THREAD_SHARED_TYPES_H +#define _THREAD_SHARED_TYPES_H 1 + +/* Arch-specific definitions. Each architecture must define the following + macros to define the expected sizes of pthread data types: + + __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. + __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. + __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. + __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. + __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. + __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. + __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. + __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. + __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. + + The additional macro defines any constraint for the lock alignment + inside the thread structures: + + __LOCK_ALIGNMENT - for internal lock/futex usage. + + Same idea but for the once locking primitive: + + __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */ + +#include + +#include + + +/* Common definition of pthread_mutex_t. */ + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; + +/* Arch-specific mutex definitions. A generic implementation is provided + by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture + can override it by defining: + + 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t + definition). It should contains at least the internal members + defined in the generic version. + + 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with + atomic operations. + + 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. + It should initialize the mutex internal flag. */ + +#include + +/* Arch-sepecific read-write lock definitions. A generic implementation is + provided by struct_rwlock.h. If required, an architecture can override it + by defining: + + 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). + It should contain at least the internal members defined in the + generic version. + + 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. + It should initialize the rwlock internal type. */ + +#include + + +/* Common definition of pthread_cond_t. */ + +struct __pthread_cond_s +{ + __atomic_wide_counter __wseq; + __atomic_wide_counter __g1_start; + unsigned int __g_refs[2] __LOCK_ALIGNMENT; + unsigned int __g_size[2]; + unsigned int __g1_orig_size; + unsigned int __wrefs; + unsigned int __g_signals[2]; +}; + +typedef unsigned int __tss_t; +typedef unsigned long int __thrd_t; + +typedef struct +{ + int __data __ONCE_ALIGNMENT; +} __once_flag; + +#define __ONCE_FLAG_INIT { 0 } + +#endif /* _THREAD_SHARED_TYPES_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@thread-shared-types.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@thread-shared-types.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..120d525233c7c938333386104a819bb18255bf5a GIT binary patch literal 4851 zcmbtXZ*0_L7=PQ9hyms@P+%;V6UhQ|cel;kGHwIMxQ&g#*v2F}Sl;#8ce}c~_H28M z4KXtcF{s3tg(!&_{h%ZWk|=~26HpU~WPUJUf_^am|AL7jG2$O)ectxk-ED1eiA&bp z^?mw#f6woEp5NQ6M*r44Ie7&!D3VmtB$CVuqmi&mGKv;aL`9Eix|$XAtV+THDiKn= zJhG6;(3ql*O7ciZlvE<XGl0{u_{5K4^eL>uEXJ{TrtA*BeT z9(40EgD5`bl@^o&B=yP4R;QzDN4qy6O&29u55d1*<|b>a_*kMks9J^y-l)8;q$L55 zNg~05l9hF$dIu9(lz3StnqM-or#FI?YL1_tb`7-ja$U-k+{~?bWiTFwnP`j_kIa#p zSA>+5h?oNusf&hd!;MbQLqT|Tgz`N1_2`v?rq{-`h#-<-Kb`U`Wj3sDopS8dG1`#D zw6T)*OBs?9LP^4lL=C}6s_p}sC%0WPsP29~RfGVHo=@f(J*mRZW-EkvRY(>=i%@lZ zlToN+DcMBIz4NTLE!f4cs8BZ=YZlerT&cs-ke7D8Q&{(W!K4w5=pM9bMg@FqAI$^6 zSo4FREvAtaxU@GAwG0KPB=K_xiU}_@vWT_d!9%FDG>EpEZ;nAwM3Uk42ozR^ zg9V{_7%_vTgJG5#M8j0vdyFHyMxVQ|=7knyocQrr_1h&M_D&j?tN%E?@0Z8FngQ`| zUz+%+JG}9enMuaUXa=!PQZucrQ5ksVpKX<|U!R#|?GoKsbmHF3V~=*)dd{N`x)N39 zQ&>w$8kN{4YJLZ?dwSM_*v(vX70WcC<|-mzPMepcP=8&Y{S^+Rm%A#;`pOC0a++|t(`$Nf+AwC~295K-gMag7Mp0q*j$RE-I$)r+K+VC>4AGNBKb~GOCp|qo1w8v4>qF)+}S6wXoa|(z$e@wa}9cyKr z?)x7kWO6{yk!XlFm?RpwhPfnc5A$ka+hi=`q{)rcVe>Zvs_9t)2@cf`#c6`jrg3LH ztORXWbWFxN8eAZ;3crr_)(@hJ&D41K03W89JjX|og=IVD0g#HVs_^dKVv5~Xm2 zBe5KuZ93liS}yBWWpjlpVJh6VpO!h+5$mH{#JE_W. */ + +/* + * Never include this file directly; use instead. + */ + +#ifndef _BITS_TIME_H +#define _BITS_TIME_H 1 + +#include + +/* ISO/IEC 9899:1999 7.23.1: Components of time + The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is + the number per second of the value returned by the `clock' function. */ +/* CAE XSH, Issue 4, Version 2: + The value of CLOCKS_PER_SEC is required to be 1 million on all + XSI-conformant systems. */ +#define CLOCKS_PER_SEC ((__clock_t) 1000000) + +#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \ + && !defined __USE_XOPEN2K +/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK + presents the real value for clock ticks per second for the system. */ +extern long int __sysconf (int); +# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */ +#endif + +#ifdef __USE_POSIX199309 +/* Identifier for system-wide realtime clock. */ +# define CLOCK_REALTIME 0 +/* Monotonic system-wide clock. */ +# define CLOCK_MONOTONIC 1 +/* High-resolution timer from the CPU. */ +# define CLOCK_PROCESS_CPUTIME_ID 2 +/* Thread-specific CPU-time clock. */ +# define CLOCK_THREAD_CPUTIME_ID 3 +/* Monotonic system-wide clock, not adjusted for frequency scaling. */ +# define CLOCK_MONOTONIC_RAW 4 +/* Identifier for system-wide realtime clock, updated only on ticks. */ +# define CLOCK_REALTIME_COARSE 5 +/* Monotonic system-wide clock, updated only on ticks. */ +# define CLOCK_MONOTONIC_COARSE 6 +/* Monotonic system-wide clock that includes time spent in suspension. */ +# define CLOCK_BOOTTIME 7 +/* Like CLOCK_REALTIME but also wakes suspended system. */ +# define CLOCK_REALTIME_ALARM 8 +/* Like CLOCK_BOOTTIME but also wakes suspended system. */ +# define CLOCK_BOOTTIME_ALARM 9 +/* Like CLOCK_REALTIME but in International Atomic Time. */ +# define CLOCK_TAI 11 + +/* Flag to indicate time is absolute. */ +# define TIMER_ABSTIME 1 +#endif + +#ifdef __USE_GNU +# include + +__BEGIN_DECLS + +/* Tune a POSIX clock. */ +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2)); + +#ifdef __USE_TIME_BITS64 +# if defined(__REDIRECT_NTH) +extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id, + struct timex *__utx), + __clock_adjtime64) __nonnull((2)); +# else +# define clock_adjtime __clock_adjtime64 +# endif +#endif + +__END_DECLS +#endif /* use GNU */ + +#endif /* bits/time.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..aceb24fe773d49437ef8d53b504b7040c526d47f GIT binary patch literal 3528 zcma);Pi)&%9LF8+WPz$;0Ye3iPD4{V>bP0ce~h+s(ryd1O_gLq8izN>eo4GKc4R*< zqyoewBrX#ikapM+A&_=}?SMc?{E?7$ffM2aLhL;LNRxJ994No%KUrRDJ5=gVQQps= z_x=5KPH_KDUwZ2{m*M2L-NAC(({|*XgS)mX+qz9;mpGnAJO}4A?vQ4xR_p(GN$JV?9}rOLW5`68xt{?yC-pj|`dz$L(S*nW_@IV`!*n=oo3XXA$fqJ7Y^X zRLjEd$Y4SRq!SAZG7@_&?-@OX`8237b4T7 zHmJak1e52)&)rbYhsc*zbA%3v8NA*VZ^a~V8b(s z3Is@gn?|I}Nv2}VRs1n->d~{@g)GO7?Opr!;x5^`Yt+k|>s6!_YxD!haTCX&`i6xk znFB!(@*J006W6ABY75+62Aub9UBC72-HXb1s93Jo5PbxlgYTb;Aj9ALgu~;9vwQ~Z zbV!&iSj(%I+-FN0mD0;Kv<+fv>m^`36EWD6$;oUMq44L-)MS3f|C<7FN5_wXIItH& zbnmk(kG%iQpZ9$Ls;(;=VT>$#Z~{Tj07nv~98c|h$l-2IkBz^5e60?gwqlQ|ZI z0s!a4xkaAZl@R#%tNIhqKlpKO9}r+i5@11DWl^5tGhm~LuYd8?FRzo&zYIXz)ko(_>;KmF6#8^?eBK0wx$GH^te17Fe(rY)?9%5yxmx$yBfyVpK`@}IN61&>Ev zf=U&oTB8GTf<^6f5QI5^E{F>+^3)bXDEi>Wy$^ple. */ + +#ifndef _BITS_TYPES_H +# error "Never include directly; use instead." +#endif + +#ifndef _BITS_TIME64_H +#define _BITS_TIME64_H 1 + +/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ + +#if __TIMESIZE == 64 +/* If we already have 64-bit time type then use it. */ +# define __TIME64_T_TYPE __TIME_T_TYPE +#else +/* Define a 64-bit time type alongsize the 32-bit one. */ +# define __TIME64_T_TYPE __SQUAD_TYPE +#endif + +#endif /* bits/time64.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time64.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@time64.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7d5ca101d5967f3bb034f0c8b18d3e148dbeb112 GIT binary patch literal 2578 zcma)8&2AGh5O&%Nm3lxGQV;zR2#EvKaVk~0fhwdRBGC$oT)1F4UMFj^yN+ycLpbpO z+{=XA&ps*0u0wL;da5XNa=X`&g{PS*h=7O`>~i#UTs5S>9P(o|%AH_cO~`0D_m{!}wH zA>%-d0y0em9eLocRA#(L;w#IH!n8C{)uKC(x=%WOKuSkE)6l#_l^3YX;bU(5Ak~;r ze^jDH$|;`kh+!)7Of%_sW?95ZmN6A7#^m%zC`+B=)2Y+3?3dHD((_ffGx=E3&)@1x$pMH<9-fH%&{9SF(f{V1{gc3kJBA*vheWd3*A)N|M#a@}Xkd z1KUiv4PzcLM#S$aw{yXGAWTh~Qo^0jTa-16P%^ww zWgdC@RkUS7xE>@VB)hqlQfP!P(_BxTh?b%3*~;B?HhrUTY?ioWf<4O>Eg*@#4*u}- zrAl+nUirNov~*@?+5}0*znwA-y*1u%0 zF{3LAUTIVb02VY{L;`DD;Kt@YxU~tu`t1FSZ{2$r=N~Zcbx%6xbo6lV`O^*nVE?um zGSAq}e@q)2}TuC#jn%P hcksh*@7W^hW8=2F%vZ5&90JhTzP^31W. */ + +#include + +#if defined __x86_64__ && defined __ILP32__ +/* For x32, time is 64-bit even though word size is 32-bit. */ +# define __TIMESIZE 64 +#else +/* For others, time size is word size. */ +# define __TIMESIZE __WORDSIZE +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timesize.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timesize.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..e27db2cfe24276ce50c9073cb5d7c568374adc7a GIT binary patch literal 2490 zcma)8y^a$x5Z*uqB{~V6Xple@2*)5rsep_b;7Y&{ZA&?NVR5S1uCW}F;Z=xCGd;q&}s#lAlz0I60>dTv<|EWk&+n= zeN;n)no=8VC^FI1CB>exjs`oNC70L;KxETMkxnbOhUyJ&(;0yf;gYNqWO}?^7Un6^ zPG~1shV#Dnmq)J_X+qjmOc>xknZ5#47%gIkHB{-Ak~AtdvS9>mSVa+$Rv4<%$y8Jf z3qf_R8CNrnFyLpJXkySS8tO^j^)@~kgqF_n^VxXjPP8jS;H-q*dcY^M>Er4A!qILZ zSgkzIAHUXT154|zhNPm)oKCf(xB|MyidLZ0CEfClo7#9grqhP%xZx(b}Xm@ zZtGNh=X#p&Xn5&QFdyN;PIG%2sD|m}X49HZr!E~}Me32N(38sna_Ntkv?Y(*G8>)X5_$z$Mrdv@GfR$hXW9Bw3*2E8hM8@Y zaaYPi`InZBZ@bf#fYvQ}aEgB^4{inK{_T;5-z{BZ4gHkPir6-4lkA%+v?Eoe-SS3j zbtZ{MR>Hc!6t>hL=Z^k5M`2t6w{FqUMTKbeav4U#@XCcB2o(r`&Zc{$$^F5^{*`HR zP~5&*6qEDcCqL(RzS?gHy*oNyygmA`D2n3Xo|`-q^zP-aHxPRN`pt`wFgd(+_~4rV Lep;MQ+yj3BsJz3h literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h new file mode 100644 index 0000000..ce1ac9d --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h @@ -0,0 +1,141 @@ +/* Copyright (C) 1995-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_TIMEX_H +#define _BITS_TIMEX_H 1 + +#include +#include + +/* These definitions from linux/timex.h as of 3.18. */ + +struct timex +{ +# if defined __USE_TIME_BITS64 || (__TIMESIZE == 64 && __WORDSIZE == 32) + unsigned int modes; /* mode selector */ + int :32; /* pad */ + long long offset; /* time offset (usec) */ + long long freq; /* frequency offset (scaled ppm) */ + long long maxerror; /* maximum error (usec) */ + long long esterror; /* estimated error (usec) */ + int status; /* clock command/status */ + int :32; /* pad */ + long long constant; /* pll time constant */ + long long precision; /* clock precision (usec) (read only) */ + long long tolerance; /* clock frequency tolerance (ppm) (ro) */ + struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ + long long tick; /* (modified) usecs between clock ticks */ + long long ppsfreq; /* pps frequency (scaled ppm) (ro) */ + long long jitter; /* pps jitter (us) (ro) */ + int shift; /* interval duration (s) (shift) (ro) */ + int :32; /* pad */ + long long stabil; /* pps stability (scaled ppm) (ro) */ + long long jitcnt; /* jitter limit exceeded (ro) */ + long long calcnt; /* calibration intervals (ro) */ + long long errcnt; /* calibration errors (ro) */ + long long stbcnt; /* stability limit exceeded (ro) */ + + int tai; /* TAI offset (ro) */ + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +# else + unsigned int modes; /* mode selector */ + __syscall_slong_t offset; /* time offset (usec) */ + __syscall_slong_t freq; /* frequency offset (scaled ppm) */ + __syscall_slong_t maxerror; /* maximum error (usec) */ + __syscall_slong_t esterror; /* estimated error (usec) */ + int status; /* clock command/status */ + __syscall_slong_t constant; /* pll time constant */ + __syscall_slong_t precision; /* clock precision (usec) (ro) */ + __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */ + struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ + __syscall_slong_t tick; /* (modified) usecs between clock ticks */ + __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */ + __syscall_slong_t jitter; /* pps jitter (us) (ro) */ + int shift; /* interval duration (s) (shift) (ro) */ + __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */ + __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */ + __syscall_slong_t calcnt; /* calibration intervals (ro) */ + __syscall_slong_t errcnt; /* calibration errors (ro) */ + __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */ + + int tai; /* TAI offset (ro) */ + + /* ??? */ + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +# endif +}; + +/* Mode codes (timex.mode) */ +#define ADJ_OFFSET 0x0001 /* time offset */ +#define ADJ_FREQUENCY 0x0002 /* frequency offset */ +#define ADJ_MAXERROR 0x0004 /* maximum time error */ +#define ADJ_ESTERROR 0x0008 /* estimated time error */ +#define ADJ_STATUS 0x0010 /* clock status */ +#define ADJ_TIMECONST 0x0020 /* pll time constant */ +#define ADJ_TAI 0x0080 /* set TAI offset */ +#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ +#define ADJ_MICRO 0x1000 /* select microsecond resolution */ +#define ADJ_NANO 0x2000 /* select nanosecond resolution */ +#define ADJ_TICK 0x4000 /* tick value */ +#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ +#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ + +/* xntp 3.4 compatibility names */ +#define MOD_OFFSET ADJ_OFFSET +#define MOD_FREQUENCY ADJ_FREQUENCY +#define MOD_MAXERROR ADJ_MAXERROR +#define MOD_ESTERROR ADJ_ESTERROR +#define MOD_STATUS ADJ_STATUS +#define MOD_TIMECONST ADJ_TIMECONST +#define MOD_CLKB ADJ_TICK +#define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */ +#define MOD_TAI ADJ_TAI +#define MOD_MICRO ADJ_MICRO +#define MOD_NANO ADJ_NANO + + +/* Status codes (timex.status) */ +#define STA_PLL 0x0001 /* enable PLL updates (rw) */ +#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ +#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ +#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ + +#define STA_INS 0x0010 /* insert leap (rw) */ +#define STA_DEL 0x0020 /* delete leap (rw) */ +#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ +#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ + +#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ +#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ +#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ +#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ + +#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ +#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ +#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ +#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ + +/* Read-only bits */ +#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \ + | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) + +#endif /* bits/timex.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@timex.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..cbe3fefa66c817eed8f9e558830eb9c54b21037f GIT binary patch literal 8480 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 yu|<<i-|#_Xtn` literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h new file mode 100644 index 0000000..f912e77 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h @@ -0,0 +1,228 @@ +/* bits/types.h -- definitions of __*_t types underlying *_t types. + Copyright (C) 2002-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * Never include this file directly; use instead. + */ + +#ifndef _BITS_TYPES_H +#define _BITS_TYPES_H 1 + +#include +#include +#include + +/* Convenience types. */ +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + +/* Fixed-size types, underlying types depend on word size and compiler. */ +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; +#if __WORDSIZE == 64 +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; +#else +__extension__ typedef signed long long int __int64_t; +__extension__ typedef unsigned long long int __uint64_t; +#endif + +/* Smallest types with at least a given width. */ +typedef __int8_t __int_least8_t; +typedef __uint8_t __uint_least8_t; +typedef __int16_t __int_least16_t; +typedef __uint16_t __uint_least16_t; +typedef __int32_t __int_least32_t; +typedef __uint32_t __uint_least32_t; +typedef __int64_t __int_least64_t; +typedef __uint64_t __uint_least64_t; + +/* quad_t is also 64 bits. */ +#if __WORDSIZE == 64 +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; +#else +__extension__ typedef long long int __quad_t; +__extension__ typedef unsigned long long int __u_quad_t; +#endif + +/* Largest integral types. */ +#if __WORDSIZE == 64 +typedef long int __intmax_t; +typedef unsigned long int __uintmax_t; +#else +__extension__ typedef long long int __intmax_t; +__extension__ typedef unsigned long long int __uintmax_t; +#endif + + +/* The machine-dependent file defines __*_T_TYPE + macros for each of the OS types we define below. The definitions + of those macros must use the following macros for underlying types. + We define __S_TYPE and __U_TYPE for the signed and unsigned + variants of each of the following integer types on this machine. + + 16 -- "natural" 16-bit type (always short) + 32 -- "natural" 32-bit type (always int) + 64 -- "natural" 64-bit type (long or long long) + LONG32 -- 32-bit type, traditionally long + QUAD -- 64-bit type, traditionally long long + WORD -- natural type of __WORDSIZE bits (int or long) + LONGWORD -- type of __WORDSIZE bits, traditionally long + + We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the + conventional uses of `long' or `long long' type modifiers match the + types we define, even when a less-adorned type would be the same size. + This matters for (somewhat) portably writing printf/scanf formats for + these types, where using the appropriate l or ll format modifiers can + make the typedefs and the formats match up across all GNU platforms. If + we used `long' when it's 64 bits where `long long' is expected, then the + compiler would warn about the formats not matching the argument types, + and the programmer changing them to shut up the compiler would break the + program's portability. + + Here we assume what is presently the case in all the GCC configurations + we support: long long is always 64 bits, long is always word/address size, + and int is always 32 bits. */ + +#define __S16_TYPE short int +#define __U16_TYPE unsigned short int +#define __S32_TYPE int +#define __U32_TYPE unsigned int +#define __SLONGWORD_TYPE long int +#define __ULONGWORD_TYPE unsigned long int +#if __WORDSIZE == 32 +# define __SQUAD_TYPE __int64_t +# define __UQUAD_TYPE __uint64_t +# define __SWORD_TYPE int +# define __UWORD_TYPE unsigned int +# define __SLONG32_TYPE long int +# define __ULONG32_TYPE unsigned long int +# define __S64_TYPE __int64_t +# define __U64_TYPE __uint64_t +/* We want __extension__ before typedef's that use nonstandard base types + such as `long long' in C89 mode. */ +# define __STD_TYPE __extension__ typedef +#elif __WORDSIZE == 64 +# define __SQUAD_TYPE long int +# define __UQUAD_TYPE unsigned long int +# define __SWORD_TYPE long int +# define __UWORD_TYPE unsigned long int +# define __SLONG32_TYPE int +# define __ULONG32_TYPE unsigned int +# define __S64_TYPE long int +# define __U64_TYPE unsigned long int +/* No need to mark the typedef with __extension__. */ +# define __STD_TYPE typedef +#else +# error +#endif +#include /* Defines __*_T_TYPE macros. */ +#include /* Defines __TIME*_T_TYPE macros. */ + + +__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ +__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */ +__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */ +__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */ +__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/ +__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */ +__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */ +__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */ +__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */ +__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ +__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ +__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */ +__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */ +__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */ +__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */ +__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ +__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ +__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ +__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t; + +__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */ +__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */ + +/* Clock ID used in clock and timer functions. */ +__STD_TYPE __CLOCKID_T_TYPE __clockid_t; + +/* Timer ID returned by `timer_create'. */ +__STD_TYPE __TIMER_T_TYPE __timer_t; + +/* Type to represent block size. */ +__STD_TYPE __BLKSIZE_T_TYPE __blksize_t; + +/* Types from the Large File Support interface. */ + +/* Type to count number of disk blocks. */ +__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; +__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t; + +/* Type to count file system blocks. */ +__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; +__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; + +/* Type to count file system nodes. */ +__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; +__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; + +/* Type of miscellaneous file system fields. */ +__STD_TYPE __FSWORD_T_TYPE __fsword_t; + +__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */ + +/* Signed long type used in system calls. */ +__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t; +/* Unsigned long type used in system calls. */ +__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t; + +/* These few don't really vary by system, they always correspond + to one of the other defined types. */ +typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ +typedef char *__caddr_t; + +/* Duplicates info from stdint.h but this is used in unistd.h. */ +__STD_TYPE __SWORD_TYPE __intptr_t; + +/* Duplicate info from sys/socket.h. */ +__STD_TYPE __U32_TYPE __socklen_t; + +/* C99: An integer type that can be accessed as an atomic entity, + even in the presence of asynchronous interrupts. + It is not currently necessary for this to be machine-specific. */ +typedef int __sig_atomic_t; + +/* Seconds since the Epoch, visible to user code when time_t is too + narrow only for consistency with the old way of widening too-narrow + types. User code should never use __time64_t. */ +#if __TIMESIZE == 64 && defined __LIBC +# define __time64_t __time_t +#elif __TIMESIZE != 64 +__STD_TYPE __TIME64_T_TYPE __time64_t; +#endif + +#undef __STD_TYPE + +#endif /* bits/types.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..a54b7dd7ca8651e7dbbd8fdb89408c3a6e20496f GIT binary patch literal 9860 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 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h new file mode 100644 index 0000000..f268263 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h @@ -0,0 +1,9 @@ +#ifndef __FILE_defined +#define __FILE_defined 1 + +struct _IO_FILE; + +/* The opaque type of streams. This is the definition used elsewhere. */ +typedef struct _IO_FILE FILE; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@FILE.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..b8a2b49c19b08871cc7770b5678aa101385add6f GIT binary patch literal 2651 zcma)8F>ljA6h1d7Vye0^fGSIDs28VFRds<4s!AZ14lKyJoGr?kM1Rnk_oS9(PS*4dS0_Z z-m>agMqH}|tSU*8=5!sR}`W9u+IhO7{c7ei3QG-9x$B%^27m9t2=EglSi}^Lb#oVGvq{+pWwq zPrcf*Y@j(KT#pM9TFVWrT5J|$rMaFv8QV|*1;<+Bmb&*xli*3!rXytLJv^;QoGd0)V_rI%k-{N$tdFx3#so0q<}_VJa9aNi zgWueOV=KXx7eZ)jA#T2T`s&m1caWFqQ{2`(PEQ`Ea2~{PLBrv7begkR)Z}@?V(^WH z^<|_~gE&6Txr)tK8z+OpD{}ygDsB|ZVpb?N%b9r}Ls5U&KiZ1=sDEUFqs2M?_WqcE z{_!*F{QZjq+TPv)JA7`SsJGqQjiMgv?IHuX+aFwuqQ%z>^zP%6`a^12r XxA$?^67QRbqn&7P3$8=700zGSsm=6> literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h new file mode 100644 index 0000000..06dd79b --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h @@ -0,0 +1,7 @@ +#ifndef ____FILE_defined +#define ____FILE_defined 1 + +struct _IO_FILE; +typedef struct _IO_FILE __FILE; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__FILE.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..cd8f0719168226931601ffce199fe1840793aa42 GIT binary patch literal 2588 zcma)8J&zMH5cOVCqSJMBr$}@N$2lpw>Oi6ZbP@;&(OZt!$(ro0Bil;|)s+Uhl1xFU@%7&CGk_Tt|OyJUKZ<2_l&)1j#BsCqpe3 z$`F+*ON`YOx0Mz{j(R+2-K;Exkxuqo)$Opv^+?_9B^8 zh2(T8Q$e|^N-K1`GsKHnw{zPf=;%8UG;KAr#@*d>N~ezPhvRO~O+)S;-@ntyoy!TS zr9lqH!_n~YoXxJ;OwYjg-Iw`kgU)7U2v5Z{GAf&C!BT88rbUWt>NnD!X{IiDgH11i zXzgxZKpW?p-qE?b$~ev(3Zb!6oDS=4tLIyhpR&9Ihf`Lp{EgOOISioGt;!@Ql57X4ktdS+g05@dttr-yBv9M^t<>iAnO_FRkR?dvDEwC@6C`wH% z1n|*_+%4-yVHY@-N=0)S7UkL2#en8;90}8r#xLjKc|h4A1kdn#-^#S5U%sy$Fqcf) zY0hE`w}Lf_-O?+qw5uTEIu(S13#$s#-K`0Z7f$4!DR3b-b_L7fUT6=$5nWMP@vPk| zK-*kVTn6;`A%%zoT7RI?=n6tff7CzPN&2XN zN?5B2sT;C_GDPm=Zf+uuIF{_*G+ kbq}Pa4vH*A>W&Pq`R@)%(>6G80g}CBv;*&Bv<4J^0qiE +#include + +/* The tag name of this struct is _G_fpos64_t to preserve historic + C++ mangled names for functions taking fpos_t and/or fpos64_t + arguments. That name should not be used in new code. */ +typedef struct _G_fpos64_t +{ + __off64_t __pos; + __mbstate_t __state; +} __fpos64_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos64_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos64_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..f30a54d1b76fabe3112674af6b013e1be7912f5c GIT binary patch literal 3379 zcmdT`&x;&I6t12OOZKNBgw3)pn<5gFi9MZ|VT2WP5fwp2F#x4|z3;uM9{T&m zyZ0X<2YHc9m=~q=(CaHUk=m1iG@dppr6yIZPtiFV6EXfTk?vHgLoUW{z!jrLs^eE1 z@X>8A)ym_7#%aJjYK|wYALXnnD?QOJzC5wKv&g>F;zy;f4Ps0JV(k$4FY=&H8# z=Y1Z+9BQl0#AG^UnYl#KXvwagt#%t=EbY*e=_sx@U+&z>E^Q8gBHP%^0rm6M4p|%W z1!l=M z`CzVn-?CiN2)VeNW(3}!(!kDxT+tdzF7sj11+#J_3&bG2p_OMFp?GCz9 zcLGhGJH;Nxm03YzdnPo)&zmku4g0t`s>ZgpHfcS7@^qvM8jr-xB(*HYB896&I?`^N zJId``3j-TKyVWi&cBox_+6+sUy)zTOB2-Sm&1_mAbyg}Bt88_?Vd-CY7=%`4e|>%L z;^!}X_dGiDnO*z!E_(1}S6hFBQE*;#T)GF9pV9vQ_8emY`WSw2X5W8w<<>Xu``)T!DVew<}?acoCS`Z zG*d?mLloR2IbD10`gNSZJv3%PhM{pN6%JED4VOX#w!L}c{OG_$1fE@R;Zy@O7g(?oS2!Ejo8V)c0KLy$BZtj2}Xmcmax+weOOoVd_ffi;e*Y)7Q_n{u> zQh&{wYG?iGlTO!~>*~Yvm#v0{s1<`h^@V*uyZ@t|m$m?5V{fBp5x~{GMX%&YdnZ>O r{Csrqp>IEh34G`wE?59t^`6V0!Syu(_$Ht`7o3BR{eK(HY +#include + +/* The tag name of this struct is _G_fpos_t to preserve historic + C++ mangled names for functions taking fpos_t arguments. + That name should not be used in new code. */ +typedef struct _G_fpos_t +{ + __off_t __pos; + __mbstate_t __state; +} __fpos_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__fpos_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7b940621ad0de699238bea620464efff41732463 GIT binary patch literal 3325 zcmdT`J&YSg6rOdgDEBMtba3c|%t(j>U081}I=MJ0DL{abpd#HB%XoIyJGtE%Yi2ga zL6Jh}P!x$8h(JPA6i}t0PX{Fu6$K@tjG#y`Z+5+o7w@iVv2^E^=j}J&_ulv3%pv;w z)$6w(A_sYqOqds?^vvriHj>(tfi#{rDy1e>tVhu~8WS=6FOlw8sxvNzZon0zMykn` z8hmusOSSU2pm7>7kDAGd^`e|rX=T8T_Ux+md_NgzLk#mxWoXEVWvnX~Gn_D%#0Zzl zB$1*%%ufhnQ-cldBA)sQ(>5@4`w3ZLAFqy_ky%> z-yrb{9?*Xc@<%4qpD}icqR|R8&(^!Ch_SR|OQwUk+J3orOS?2x7K&$Mv&vRaSUYBI z$lZ6pDHne+VSK2WsiAEZmG~6HbOFHkbrXd3nPxGJ>UtnMH>4l)>Siluu4~!!j~ifC zY?F`X%J(hH6$a0pn@w9D)Z{Bq%LHrg59v5$eLg6NZ~fCF5)>3uTY1wA#jy zSL%+Sd2^@O|Fxl4)43AmX}3#8WhQpHMJU8q_5*DVI2^V3J4 z-rV`$Nrs_s(Ek2*!Nk6eoQ?LzPTP4<{8)TD)4{#dFMj*! zvt2X|K0kWq&gsvO3W9HC=caG)hquu7_71uhF>J^X3z9G_Lu?|h3pMcM&*P26&=i`f z8w^7X+#xw#fBoV`oWLD4WTIcwduOD$)uv(*B9tp#aC?rx(!$4Z}iuk~*oeEV0o zNZyj>{L%oKynMOyKTy8a-r5D_XlplwV i7ukny;DQAJeDGra4E|kO#z%nYbew+6{y#xetLY!g`qg^? literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h new file mode 100644 index 0000000..a578eae --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h @@ -0,0 +1,43 @@ +/* Definition of struct __locale_struct and __locale_t. + Copyright (C) 1997-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_TYPES___LOCALE_T_H +#define _BITS_TYPES___LOCALE_T_H 1 + +/* POSIX.1-2008: the locale_t type, representing a locale context + (implementation-namespace version). This type should be treated + as opaque by applications; some details are exposed for the sake of + efficiency in e.g. ctype functions. */ + +struct __locale_struct +{ + /* Note: LC_ALL is not a valid index into this array. */ + struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ + + /* To increase the speed of this solution we add some special members. */ + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + /* Note: LC_ALL is not a valid index into this array. */ + const char *__names[13]; +}; + +typedef struct __locale_struct *__locale_t; + +#endif /* bits/types/__locale_t.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@__locale_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..41fdbb605b971b767e2bff54f9125d192d6ac10e GIT binary patch literal 3509 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 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h new file mode 100644 index 0000000..ce97248 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h @@ -0,0 +1,9 @@ +#ifndef __clock_t_defined +#define __clock_t_defined 1 + +#include + +/* Returned by `clock'. */ +typedef __clock_t clock_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clock_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..74cbb7c06b3ac6b29c4f8091ee26e37c2413ded1 GIT binary patch literal 2628 zcma)8v5pfl5ZygcDg-CWtD@s1Bw%CibV_$nfk1+WA2438lQr30N4A#`8W5DwP}0M7 zNJvm3(OttA@D2RJi7@tNb6K735GmP6Gk)`C=FNC-M1OBRdwmkc5z0l$P+rps8b~%3 z3W-c;q_nK5t|c4L=mITBHU1yZWG3W{K$hJ-9fdIh*z|zGlr<1PuU=E zSamEZ*9sY{LKv5+(nK??ovtHB3}fXqTAWcKh^`VU%2HH*H_c0?_{#vHbgr42k!b+K zQZ57~g^w@P7-|)u+opa0;iG&0NJ?kC(g}P+DOoyAS1~sUN;PHFk4m&CImI)cF-%2W zX(s*7tjaj4DyBloKukYElj@S6E}f1|y_}{smDt=o3R!c*cm!e}9&Ywrk~-Iff~Uw% z2HHOy+#U>9VupqgIW|1M{+^t4)U4(T(Tt5kb;>0pS)y_xS(ezk_)}hTlQR(7#P8Ov zu2FZe_mCM)a$vz^0s|-A^)z+i>aUyi!zPN+9iZR=z+ONgZThN#Hs zA_Q0nv$sT@7H*j~8t+62DFB*me60f9E7t5;+#w1>9IsKck-rfUEg zs}O|IqhbZ@YCn+KF9H|bJ(TUzO$?jiVE|@Bm}WOS&l{E-2BA?nHDkatPraJ5Y@j(K zT#pJ8TFbRrwFxZ7N^?DTGPa=%l)0~Jx7?wwG?~JXH%c-0ac5VM!rUHy_~p=*wPr8; zUJlthWfHupnskKBytkqiiIc^+s^M*-PE`_8$ND%sVITmEo71$4;Iy6%!v-@tx8Xa5 zY6v7&rY%z3>vXIWDvGui4}N?;I=*}5n^7mUxo>t%A7d+1tfQTstI_gvYMya#ySIBW zUc{IF{QULi`_1;)>O{Xixwm&Ydcxpsr(#(@o%f$w!}S3`?DY<|;$GA{Fo-J#r?CyN qc=z$c+b^#^Emn{icyT}h^X|3g{~5#9*xv_o@pcTz@H>na2JIi@(C_yE literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h new file mode 100644 index 0000000..b17c7da --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h @@ -0,0 +1,9 @@ +#ifndef __clockid_t_defined +#define __clockid_t_defined 1 + +#include + +/* Clock ID used in clock and timer functions. */ +typedef __clockid_t clockid_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@clockid_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..114b2197706b16a33ff3c083c293e94737570736 GIT binary patch literal 2658 zcma)8Pm2>V6rWk8XW4@+co`6uMNH$u+QWig`~wSm^(G-r(oXD5Qj(0dp8Np%1@^92 z1rZNkJnc8|Ac!aZ3Z52gGSlwPut~;3JB9c1d%ySI@4d{8Hm0wg;X;xrhszAh>>b}CxD;ag_Ty23sO{+L1LD3 zHq0AV9m|*-4V_g(gvzlt*f3E8IFmwRBLI zJc3bECWR!k0Nqw*)(aP*v}`MENh4Wps`K#Z(StA{Z73H8*l#TJnsw8B#9bYfo--0g z#YUE#parK45m^btRM?pb%CQhk$C9xz!w5~PYksEmIyUw4np!2VbL;O6LK8a^ql13W zHK_|tDEJuG0|fUEhPQ^JGtJwEU^R6-KYX8^bVRS08WPGTu{!07VG4AP6{Dc8OE~2< zH??qb47+u!>xLlOdz%>nxn;o=uyd*WQ`xHdrf(McIWBs5*!hd4zupM0JF(u(O|9`#(wLdI2@*NJWEpV%>W$i>avWyF@kCAlCHulzL%o06Rrq(^&+s^<3jUW_V$7cM8=I z0JZuyNa>){u}-KY*;@Vi_~X;(pU1~eleW#76;6gw{YtAk(}S!%bE*Dt;6p1=6^eZjXB%5+|w)RXv_T`CM$>d E4`5RNz5oCK literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h new file mode 100644 index 0000000..dc59536 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h @@ -0,0 +1,63 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef __cookie_io_functions_t_defined +#define __cookie_io_functions_t_defined 1 + +#include + +/* Functions to do I/O and file management for a stream. */ + +/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF. + Return number of bytes read. */ +typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, + size_t __nbytes); + +/* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes + unless there is an error. Return number of bytes written. If + there is an error, return 0 and do not write anything. If the file + has been opened for append (__mode.__append set), then set the file + pointer to the end of the file and then do the write; if not, just + write at the current file pointer. */ +typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, + size_t __nbytes); + +/* Move COOKIE's file position to *POS bytes from the + beginning of the file (if W is SEEK_SET), + the current position (if W is SEEK_CUR), + or the end of the file (if W is SEEK_END). + Set *POS to the new file position. + Returns zero if successful, nonzero if not. */ +typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); + +/* Close COOKIE. */ +typedef int cookie_close_function_t (void *__cookie); + +/* The structure with the cookie function pointers. + The tag name of this struct is _IO_cookie_io_functions_t to + preserve historic C++ mangled names for functions taking + cookie_io_functions_t arguments. That name should not be used in + new code. */ +typedef struct _IO_cookie_io_functions_t +{ + cookie_read_function_t *read; /* Read bytes. */ + cookie_write_function_t *write; /* Write bytes. */ + cookie_seek_function_t *seek; /* Seek/tell file position. */ + cookie_close_function_t *close; /* Close file. */ +} cookie_io_functions_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@cookie_io_functions_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8030c52c7d10313a22de6b7543bf2a9c5a39790d GIT binary patch literal 5402 zcmd^DU5F%C6~5K9kaU)?Y}72XAXjHd=BKJ_b}}~er!Lv;4NH=pVP-aKK&ez$-I}hQ z>bgzcThrSsfkmGrg6vC(lD9l0BoGC`7s1DXNszonMNuIj2#P)^A<1s%oLf~r)!S7y zzB@2Yb=5sT_dDPD?x|iR_w*aL->GTD?D8HnyRmaZ92ubtkaH17h6d zog2)N{t+{rr6r@wY?nnR*ct;K9s1#c;rbES@@V*tl3=85#v(HP&hw)A0AdJn9F9oh~cj-H}X34^(|5F9V@=Uutt%MCiMzJF;AHj=6pE-pFunHJml^U2A zTILc;L&;v@!X!lDqZ|_)05kAA1>DaCvMdi8y0uzTK{13r0`^vIM|Db?@Dz-YfT;w+ zJipppZnnl949VG%YR#Yj{;;$G71SlUCA;WGAT);P+7WXNRi{E+a$C-@#TFUW`HYG_aC;;Z9;%R{NM8(2WyqzOEI3Z1F`HE8Zr9xAoXxNd{ zE%z31RBax2f)lxnH7vm;>EwwhRfGW|;@T?02>(DZSrRTm4br(e5i&beFww#XIkYXS zG6MFCU;&(E<&IF}xE1)ty`Aa2f!VZHE8LWa!7NT_h2+2~_ns)85_jLNf^%T|(hKa9 z1g~l*G0MFG=R+ucIV{f!L*Z#07gHE;b&Nj9K*Ex#bHNVqI4F0YwtFv@CHzn{D4=Y{ zp9z{&9z8idC>>w8IC*S<@yRVc#ud*Bw~Hf^ka0&CRb|PmL7|&tDVxIj7>Yv6aRP-; zkB!Z#^JD_+BmqNlIrF5=mke{TfRG1A@BZ_dPw#y3Cm$lgfhjbpI<>BB!*s$AeP%&( zdT|JoEDwbxY2jV6ySqsCyDT+_!Hf=k*`*S0B?dI}LHiu|4Ff~7fd)CBumU3CXx%8xpTgN2_n_fK zlhXaJEt8x?m&XBkm3P0O0AZ8X#65?R@*$pANsyUL&Jl|Kp`Me)Fdv^=^+o z`S9!;0`lt4U(a2A>BkRd1jdt?S{C;_oZ`sL z%o(f&{(XiYn%>oK)wNOle`Nis%nUe5=TmM7#tz4vx8%b75%*oXs2{t8 zHSc@$ItAwMwcAfyd+q%Ny`efNjw0aZvDe9k7q9KYLf|^C1wF3t*}i&dq1o7DGRX?E zLmMRYMB2^9E`ztLP|#Z};uO*nvE#rCh8G7qv_qKPhR%R4(9i0ZYMM^;R}o=??1xgN zWz#n58_NLr+b@6TOM9Y?E4IwvvUg;EIP;nzYktq!6Ub;L4>gS0bWz2sehHbm4(ARRuus8(mv~ z%CL~~J_|uMFnzVhO$)>HreyoL%xSp$NKqLL*Q$Lga%8dA zR@ciA_#@*;0BQr2Wk4 OGgoW)xl2ZP27eB{^Sm?w literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h new file mode 100644 index 0000000..0ebc9f0 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h @@ -0,0 +1,26 @@ +/* Definition of locale_t. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_TYPES_LOCALE_T_H +#define _BITS_TYPES_LOCALE_T_H 1 + +#include + +typedef __locale_t locale_t; + +#endif /* bits/types/locale_t.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@locale_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..428fb166c8d17944113b312942bcaa061406f541 GIT binary patch literal 2685 zcma)8yKWOf6kR8LK%^j9qOt@^5oJ9@L~eK}fDA+m4=E{tW;LE2dk63CSTnO2Q<08> zjt&Ya5ETUl1z(VYFGva+8pJm}8atgeM74?O}=~RI-;2 zLcNKia*Rg~jGQuwIT>2$=8U8YS*m>fHS^JR(0V$KR7rDZXSZu-gB4F03C1j>0pVGy zsIUhYkc9&R24V;~qQt&|rXj;=N~MdZhOr~mQmVulSV&=9nlnjG*QIzRSYLa+v$Z&~ z)ZvW2G3%kcG0^5#`*OQ8^Rg}}76ah<^>}z#GqapXL_*qk=@bcyLtjQ%(9qAx+K*gv z6JxNMJ*=)SnA=%SeKO)lngtcU?l)oXwmHp98X*01953LZ`^t6vveThDuG)-Lu2X(8 z9}5yK$cliR3ozy|ws_Wy%{DDOUd!TgfG#q`<_<7VSQxVq^5*{Mx=H4RWdli-g*Ke1 z#-|#la{xggT@c_$Nn<^#?LaW0cn~vlQ&uzA2R5B82h4&r#b`F}2bK#Op>TLUZCPm1 ztB_>@%`s-GA7j_V&0tvjdXlD!sfm$so(iDgy2{LU*SZpaq?^2O3S7svS%G8S)YuMR zHeHe_`obP%u&vQ1kSlgJh`!oG>!p~R#K>ZhX8L6!>q+0`j`?;r!srCL-Hc1K493;d zW>~O{&P@24Pz3=$w`qmcSg%#=G?ji;nG@9WmZyIne5c1BPX^wZ&-BWN_J#M~##h0^ z+6=9tu&o(H`G0-(KzZBS=S!R!@CiIdG{ zTC=m%XnM^K?4NNtY2iE4a0@zZdL3dDPttb|2opx!Vo)gL^t={v^I5))s@w2OYpnxO#$~Gm)--B literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h new file mode 100644 index 0000000..8b27e91 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h @@ -0,0 +1,9 @@ +#ifndef __sigset_t_defined +#define __sigset_t_defined 1 + +#include + +/* A set of signals to be blocked, unblocked, or waited for. */ +typedef __sigset_t sigset_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@sigset_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7e8459df701302f3020d8a48399f94f82af6d5c9 GIT binary patch literal 2728 zcma)8F^|(Q6i)6?=M!Q+qPx=#aH%;_RV*M70)zxRTjV%yW185N?OZ7nKLD|?vVz2R zhyf%92Bh2g0kAN`jF?UoJ89ZPXFF7C71gib`@Z+S_uNa~--E}`PCVZODa$cP3p4?J zj;BljmM{r~p7m7!JB4 zm!!@#AtNy;2M8Pv`d9kHmFHDMARlX<$KNI=Ez^s+04TvDSDjLhVG@cIa-4)^UF?#V z-1tn}(H_>Wt{wts@0BtXriumTp_)r>p2|ke>%J-EBbasYQ1j=KzuXAAJFebLWm%_E zSqM2wJF)`p3m0I<^m=1OoSAJ}dAyayE&J8u2;lKgYk)~SB#@}m}9R{zQTW(vDSj1Lk z>7Y4-M2<4(TDOH>p`luMR1!HiGA>hTD1BWOW*e)zqHwB)w{n2Kj$1nbX8KmJ!!L&^ zFC>0qk22WNXcOlRRLNmHv0jR$NsKJUv`~L0idcj$cQnV;2%{3HF)|*lG8j+S!_aXI z&TQ^hp(+AlY110X@3lI%PNn{;H0I9pHW#=5>|FeM`S_)G=CwG#`|HK$w?98>4=XbS zRbzuSMB~xh-oCIzSV5lZFZ|wCZ||JHIC}N&_xG!>Z`NQ9l$w#ZzrW?(3e;8zn94@R z6lNljEQoOs>k9%W2SGtskBkS}$~Xx|jQ3Th{oZiH?|HqUPQ0Rj>X$qgA3p8ed;jRi kmv!bysUj37>U?jvdTvOnPlH3H!r$@-8~XE_x6pY10L$wXi2wiq literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h new file mode 100644 index 0000000..1eb4298 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h @@ -0,0 +1,120 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef __struct_FILE_defined +#define __struct_FILE_defined 1 + +/* Caution: The contents of this file are not part of the official + stdio.h API. However, much of it is part of the official *binary* + interface, and therefore cannot be changed. */ + +#if defined _IO_USE_OLD_IO_FILE && !defined _LIBC +# error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself" +#endif + +#if defined _IO_lock_t_defined && !defined _LIBC +# error "_IO_lock_t_defined should only be defined when building libc itself" +#endif + +#include + +struct _IO_FILE; +struct _IO_marker; +struct _IO_codecvt; +struct _IO_wide_data; + +/* During the build of glibc itself, _IO_lock_t will already have been + defined by internal headers. */ +#ifndef _IO_lock_t_defined +typedef void _IO_lock_t; +#endif + +/* The tag name of this struct is _IO_FILE to preserve historic + C++ mangled names for functions taking FILE* arguments. + That name should not be used in new code. */ +struct _IO_FILE +{ + int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ + + /* The following pointers correspond to the C++ streambuf protocol. */ + char *_IO_read_ptr; /* Current read pointer */ + char *_IO_read_end; /* End of get area. */ + char *_IO_read_base; /* Start of putback+get area. */ + char *_IO_write_base; /* Start of put area. */ + char *_IO_write_ptr; /* Current put pointer. */ + char *_IO_write_end; /* End of put area. */ + char *_IO_buf_base; /* Start of reserve area. */ + char *_IO_buf_end; /* End of reserve area. */ + + /* The following fields are used to support backing up and undo. */ + char *_IO_save_base; /* Pointer to start of non-current get area. */ + char *_IO_backup_base; /* Pointer to first valid character of backup area */ + char *_IO_save_end; /* Pointer to end of non-current get area. */ + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + int _flags2; + __off_t _old_offset; /* This used to be _offset but it's too small. */ + + /* 1+column number of pbase(); 0 is unknown. */ + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + _IO_lock_t *_lock; +#ifdef _IO_USE_OLD_IO_FILE +}; + +struct _IO_FILE_complete +{ + struct _IO_FILE _file; +#endif + __off64_t _offset; + /* Wide character stream stuff. */ + struct _IO_codecvt *_codecvt; + struct _IO_wide_data *_wide_data; + struct _IO_FILE *_freeres_list; + void *_freeres_buf; + size_t __pad5; + int _mode; + /* Make sure we don't get into trouble again. */ + char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; +}; + +/* These macros are used by bits/stdio.h and internal headers. */ +#define __getc_unlocked_body(_fp) \ + (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ + ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) + +#define __putc_unlocked_body(_ch, _fp) \ + (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ + ? __overflow (_fp, (unsigned char) (_ch)) \ + : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) + +#define _IO_EOF_SEEN 0x0010 +#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) + +#define _IO_ERR_SEEN 0x0020 +#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) + +#define _IO_USER_LOCK 0x8000 +/* Many more flag bits are defined internally. */ + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_FILE.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..ee0295535134b1edd1303ce4584a2bd551206c34 GIT binary patch literal 6896 zcma)AeQez18Gn5>G)+ThLKTi%2qsO#<#Lz19BrCj(LR5{o>1rLGfv|D8;8s*_n8!Ce5mPT+OLQTsO2*)+lLG zXBMr>7DQ$0tE`O8tJ;jLOvQ4tCS?s(Ti8}XKH45H=~`S?vV~Gkif4_5S*df{wyJC< zBO7`g&+2hOC}wm+G$g_BU7D9fY_aY;N#x`Us%R*&tXeFpO66sST$FVA#wrG777R(B z7iX);ASP!EYIdfAxgO78l~}0c790hHw2D_WI#&%1rz;zz8#!4qV(_n;=frCJ@C6yi zLDOfYY-OpUp%&$=FfZpMA*+@YL((cQmXw?~?_+Q5Ll+to(^nGcT7RSzplO*_@QG=KQoK ziMg0QEoxFOMx3qehZ6;D9%HQXvht8&WLG^<@GKjf1}h{j2Fa%Rru*>^v-a)m^&y(Ohq&Q*w)9oH4ioEK#yUl6O++7hmxF{pNm zAsY+6786xi6z)|ef4D<*NQ2n1Wclo(PP!n;Z0{>F`xj_&3DSx;5&ORn^u^Puh=`mfEa-(mBjRy zomiQwRY4T0YeLO+*P`p{&;?fH^+y*zeqHo4}8ePIZs9t&souFg%%~&@FM_!X2RDOXTqhs{VSg*cy z==2#``xIFd?ETrxxOe|U%_7zaf|}2RIiXNJ-9yY_hS;G7mU)&A(l=|JctAOR$0Mh1 zwBq+2P_{jPX@hm_Px6aT{bs1cdivvgK99yP`6+siE~oE+b@YRaihq9WC#S8q51u*u zjkTeBkagzFt*NIDAKXX{np5Q*FAVJ#aEl{0twV^3gd&{*CW0cJMA%sd#w`87D_=fg z$Ro@cI~HUa>-GD-IQ!}gpS@^j3K2p`N=`IHR9_#Wc3g~@4fPws46^}k2!ot(sP$;i z<)_|bCK@K9AZO#)>93D|_sAM*(zzI6QUFnEppxt;?PK>f!nWuB_GsoGr@N1O)E7l< zM$$kx_+bA)_xk$vEex|Bt#1L{$6h${*EJ^(-^vU$477oedrx!guPoHpdW2-voRpn2 zKuV)WN^5;e@6y~{^VqS;2sm?&%Sr$zYAT3f^@lWiGPTom1}z$3D&Undm%g^qIu!4Ie$c##}tljfjcPw_bfPba3~* zH{5S7p6?>fM5|q}nfOqq+TU7VY!#?1$lud)99?S&7YIrGdv%|wlh8gsG6g`tVo zxG^*r*SLruSpWz-GodjkLvg!?B37q4`a3a+5KV1Rtjwol%0g&y|QSM zgnK!39rS7*hfvJI-Gqmol30XSDW8XUj7P_Nv5s+eyw^=P+frJUNIk^4?)4H%Bycmd zE(|r2*%#c`hJ`@tw>@WXrkO*|&TAStj48e_YiPvHfs&>Hm*DXrKdZtaK#5>Bahr(i zo7hd%b((2@66ZA;F2xy9mq2C{+KXvBujcvLlEK4GLIg*9xSlAsv4`!6I>Dql=O-~E zW@k#XRAe(6vn}HRQh8a^4IZdIl;(4B1#R{oq7X6tTz@Cl*U$EMI{IjvSOPRcxBzK& zXqP-S9Rs2P#{}OIa=fgQkdN#b92(dP5dyU^WD_*RBfx=ha*=xwI_g|-$NF(A7nj0@W3CB+_oo&5lxrFc+gep8Rru>BobW-5TkHPIDnts zju=`u{m#TbW#Dvh$RU(ga!Zal#ib%RASpH#aY9ZTiYH&}E>xB-_K=R+Qn(uoLcxXj4_ zaG5J84l=i#-22<DZ6Qn0LUYgqmXeE6AAVA`#Zg!49lHVBpUGL75@L7R;944JxuuEzVYF*?U0DKnkT_Cf8Ye)s~ zbGsvxvUZ#UHpeduJsyJ8$0TH|X^b>kp!aR=J;9DTC76CC0O$nmV!?A20D6g}%}KO4 zZRNI-;3Zz|(gJ$yIz^jmw=dxYWL z1J^**LT=Q&6VM`h5((TQ49_wnaIKB#o6|riFqg)(CIhskYzOq9Fr9&Mwkw#+tNu~IMQr7xuh7;JGooS^=TD2oTnYa zp}`0CLaC^r=42!4>ahRAE2Uxv2oq*|xYLE(xAF;0lS;~rqRwN^Kio1*n&vP&-1C^7 zG4!Iol#0m(Nl}4|VOBd>HyFa!4zhzGhhH6i;+Ekje}DZJY*yN-*~>_dGfqfO5+nE! zcL+!hJSoYcUk8?I$6wx(j`m%3yNLE(>@KRE-rERPJdq)xf;^w-!uKJ#jx(e6qdYc! JlpS@_@BhmeR~rBT literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h new file mode 100644 index 0000000..17cc1ac --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h @@ -0,0 +1,14 @@ +#ifndef __itimerspec_defined +#define __itimerspec_defined 1 + +#include +#include + +/* POSIX.1b structure for timer start values and intervals. */ +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_itimerspec.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..6c2a459e11b3d7f14f1ed4060a0bf66ae41fa471 GIT binary patch literal 2891 zcma)8&ubGw6yBuLG!fb!q`j^RQpC+#D5VtJn?k{2!HakqC$p1e%w{Ld%o?Kzy(kJE zym=EZdJz0^7Q7Y&{{atz7ykoqQsbMQO`5f{n--F$d9UC5-Z$TSvlpGem+tN#I3>q# z^Dgz>KJmAWgO2kCPg4T&MLqZ(2PLk>Mx#+N{{^@$qvXuWM%Wg-oxq_3mWN2uG73M-0~HML2xW-P721g9BttRj!_ZkI>-X^M5J zWDg1mH3o{xKJFD@B$P?WNhgQyL}!qN!@RcOC_vJJu14xy+qr%z^cNsx_7EnZZ94RXDt7<6=qKQbxYe;piiKcyPXhK0-eQkPX zO6r)VA#3=_Jou|?^~?43v4ufjELxi9r|+GEjEChw`Xr#u0#Q|4P#k!&jRg(7JAU?nFH%emtc;UV8cN?%vEA;VEAe_TUyh83H!%3d`2ikz)Ng8LMqQ@PApSuE+>>eP$4}p=^A#N^6<^pyZy$i zZ)wyWMcs#wocZ}hC;eH5-{s*4fA8h(KMOyHAHP1Uz4-F`b-B7!y>O~jTdKkPu(I&^ zeRcNiV`C7PX)K{j8L%_X-i@0(x9Y16*JQwxlH24WsVU$)Sokii@t8^%M}Z4&rvm<# zb*EIBubeBFD$eQI3=wC{4mOuDbmn;O>(jPY=q!?jUqT2*EJ2hz3w_<-Gaq V+T!jiV3!t48)f}|#Tn|B{{i_zPUips literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h new file mode 100644 index 0000000..489e811 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h @@ -0,0 +1,33 @@ +/* NB: Include guard matches what uses. */ +#ifndef _STRUCT_TIMESPEC +#define _STRUCT_TIMESPEC 1 + +#include +#include +#include + +/* POSIX.1b structure for a time value. This is like a `struct timeval' but + has nanoseconds instead of microseconds. */ +struct timespec +{ +#ifdef __USE_TIME_BITS64 + __time64_t tv_sec; /* Seconds. */ +#else + __time_t tv_sec; /* Seconds. */ +#endif +#if __WORDSIZE == 64 \ + || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ + || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) + __syscall_slong_t tv_nsec; /* Nanoseconds. */ +#else +# if __BYTE_ORDER == __BIG_ENDIAN + int: 32; /* Padding. */ + long int tv_nsec; /* Nanoseconds. */ +# else + long int tv_nsec; /* Nanoseconds. */ + int: 32; /* Padding. */ +# endif +#endif +}; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timespec.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..97e0b424cceb0f54fe09abf1767006a5c952572a GIT binary patch literal 3118 zcma)8O^72!6t2z&8A8bXY;m2{a-SE#C< zm=$4IL=ZgbK~H;94=#$g-J>Wh9uz#N_;Xl6&mLqif*N0Sr!(nIcgHX@VfwxP-uK@7 z-m7{H{rmVU$G4DyET8wO4y#l&3nSmDxiqe8sKuJroN~`nC z&U4$vgrxFVs7&}R%RFYCG~Z^r4nhv7TZ~E+?=#mPGLPCWk3vO7u`>-lM#7NFvSc7; zF+!5+grDl?IwtkXHO-Vf&TVmLY`X(9(cWC_IUzOIgn&6#JV4gQX6r($J=Hukgov)@ z`PomsTN%;Ik+fWocFOAH3rajw`b1FAjO$XI@`RfhYB?6Wr9#pvmn94-xuy@{sW4$6 zMgBO>6gzDg^!A7Z3kbmAmE=88apEymlL*&efM)4NmnOsYzT%M+tMP~qPTb4m+fk_&`jxGk$3xnGM%b&7z z*_xV7d$R;)L6~GG=f1C5E>LzN*?7$|ub^H@Sr*V75~ex_;le9C4P%ky zvgn2p+#(`Jnq}&k9p_va2ms@jYnn#LwVn*a0<$%@vNMHB2$-=0T%nT};b)#gpp zUexDpiGZg|s!~Ud+P&z(I;xJpdG}_+xw^%*3y1{=u&FQ%_DI5QA+V+X-&W}C*>yDe z{H?!@X0>^~YK+OZFaLJ=$KQXr>-8iQytR^jYq`4ItQt4chv|1^{KXsBJ0E=c#Fg=# z&p*BPOaCh$jX%8f@v(F5>&YzORWtDCsKtw8SZd_N$iN> z1c+!0<3pcG3_k(uQLtT3oMRtwc?3I=s`*6Xkc3=Pmxms>hf=}0gLwzTwL_%OTga$2 zYUe6O4V|k1^Apl&%K8|cF?3S*OrOk^a+=7+i|WV@At-wI$p(7p4I zw{I++0mNyAY&$7#7DvOZov)*VBnN<4zHfP5LqN&bClJ3Leb>JKz36?-F#Q;(>!H}cgduRX7TUS?a+XsjHFK!*$ lhdaC52YcIF;ENvuL9vkHyKQ&_uq!K-3l;r$6ODDv{sYQ_h;0A> literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h new file mode 100644 index 0000000..3466137 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h @@ -0,0 +1,18 @@ +#ifndef __timeval_defined +#define __timeval_defined 1 + +#include + +/* A time value that is accurate to the nearest + microsecond but also has a range of years. */ +struct timeval +{ +#ifdef __USE_TIME_BITS64 + __time64_t tv_sec; /* Seconds. */ + __suseconds64_t tv_usec; /* Microseconds. */ +#else + __time_t tv_sec; /* Seconds. */ + __suseconds_t tv_usec; /* Microseconds. */ +#endif +}; +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_timeval.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..fb2d47b02fbde9a1d2fa8b9651deab76e3e8d160 GIT binary patch literal 2934 zcma)8O^Xyq7_Ocj+$c_Gi9ulzDOXRy?$)sEVZnfh1OiG9dQlH;O?Az5IXzuNRkf4x z1H8q9xBP&R9K7V>P4Wkp90P*r!IO$-LGWTSd8=zawqtcq26krYdh4m@dESreuh2hd zZr_h5-Jjj(2>%zpt_JOq-c$1B=7&9$Y3nwfam=n;gV4;rOTJnSk>G>f$}w8w~HtelG_PA?Ng=K&SN zp~&mQG#@g>Z#NL?PBc?vGHSpmDbq~QK@Ht~${>nlb+RB8U}=M@xjWx|fAQOTLP{q* z*8%)BDKA;u4 z*}31aTv6J#X3IItlN!IQEh}h_3D>=hG!5Fq49@^YU9P#FI2o5m87Om674C8eUuiIc zwzZXFF5*h}lg!))_3*Q99u}JYSRdsmTW6Ux-aS^1kV)-zSQd$sML#d#HKORMps70c zx3d!l4uE!ZE-g-Qt}dHl#d7q?%&r(^2?S-C&XK$Wm5f!6@(!ZIhfsTZ@9Fj5A02tw zF%=4_#%9i7Xv;z|D)Iz|9NOI6M6=IF^XvI-|3urHlE1FKy7Bz=v;SZ)^JD^LIbspML#$`sU%EclS;{K8>bV*9Px)-~RT%77;d(w@8NX+(W+a zqYLE&3{MJ%bxJhm3KL2T39nsP3wXwG&fv~b`Vd_FQdlv#TWCx&C2&e$1D5c@$gt?) z3B;-pdF%fA@s_uaHd?@LNenHR-ABhfLws#PI*zU0Img{yeJh6J&=;o + +/* ISO C `broken-down time' structure. */ +struct tm +{ + int tm_sec; /* Seconds. [0-60] (1 leap second) */ + int tm_min; /* Minutes. [0-59] */ + int tm_hour; /* Hours. [0-23] */ + int tm_mday; /* Day. [1-31] */ + int tm_mon; /* Month. [0-11] */ + int tm_year; /* Year - 1900. */ + int tm_wday; /* Day of week. [0-6] */ + int tm_yday; /* Days in year.[0-365] */ + int tm_isdst; /* DST. [-1/0/1]*/ + +# ifdef __USE_MISC + long int tm_gmtoff; /* Seconds east of UTC. */ + const char *tm_zone; /* Timezone abbreviation. */ +# else + long int __tm_gmtoff; /* Seconds east of UTC. */ + const char *__tm_zone; /* Timezone abbreviation. */ +# endif +}; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_tm.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@struct_tm.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..fef60e70f5a7419a7a233f6601e2dacb5a2b9cc9 GIT binary patch literal 3563 zcma)9U1%It6uz^W#@)?ivn0`^vFNB^W9;ngnlzedZJ|{RT3Se2keW_sXYTG^Gdr`) zz0-9gO7NjR=!4)7z6nKyzKKGsFVYt)2rBwe5D}yZzV$)yaUJiyvop-LGqVN~Hr#W* z^PO|PbMD9IQH~LsU#$&mf))D+U-dEZuJYA4{d{ zxI4&hDkgHFK^(VtBn2Nlt9sZ~k!@I>2~~siIzL>SY9!IL z0d>Y0CmwQ~hUMtQRt%@zcImn0shU3`;y6MKy zHj!@I5N9PrVZXEQx(iK(cQ!rc0XMhHRF-ZQ=wo2awVl~gnwg=r zC=2K+bllwJVT;u~hI~=CM)06xm6iTr&{=n~deb4iPCPS3ca7GFs47c43(#`d)^fbM zm8`x%x8_s7`m|!y}`ZJaz1|d*5U$)3hsaH^z5j49xA`MH= z+O{6spbFi0HbJD9$e4#>Q0%tylI2e8YA78#F|T0YkLH~mTr|G z+eDdUUO+)Qj%%jgiCiR!ESk1Q-x6LOD_QD@k8>gn4M4{&@hFOrcp7w_ZIuzn>RlUt zs89g`h08QV62^x*HWW&@7tEKy*fns+kKliGX#eAX8Skxwt9KlMg8#vvpI&-M{p4%^ z^3B^3{r7V{=E&7MlgQAbg7?lJ z@2kJx^m9u`f7$!^@&o?E`ddG)=YP8g_~f*G`s~5o!Fx_7ZTa;#K&d2xjm=Z?arr{s zb#|alH(%G5*$f|)17We39}vb%6AZ=dOdF)$~va!JuSTi7(6^>xzLnr-4V8lX5m z4K|_S*d~^tj*09vRtjT^d6RxE%%`AR?bzG<<-L!WJ;P^ zU?5ZC)WQHH>|6|_8v|hpbRpcS6e!3lg(yiS4p9^X z$+=95lOdN-nlWek&ZfQ+IO*7=#q+4Kf=ZG!&mv2rG(V_CDDb#*tQM>vHD#GOPe>Cy z@`N}MMh?d$=G=0;fc6XY1LmQhSf<`ZsmQ&HVlng%r!D5)Mg!i+rW-bJKfFfW3sQkI zFNlSZc{sH(cMJ`l_CSt71FPHeVokQ7-jV4!mFZ(Z$V+(+mlyLP+)tpi@7pKO-%l@Z m{v}MK3a7UOvY| + +/* Returned by `time'. */ +#ifdef __USE_TIME_BITS64 +typedef __time64_t time_t; +#else +typedef __time_t time_t; +#endif + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@time_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@time_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..07ed96006b3e79c78131ee6a4a417e87729837d5 GIT binary patch literal 2608 zcma)8F>ezw6uv8{B8VX)>OvGYRNu8yR3=yum5^X!g2gyKCueeZj%;5;m>3!O9nAcS z&afa55(|i5Q4#!nxiqKR4wceIde5J~_ultD_g?h(@b$a%D2~!xlq}6_I!hDD=0c?+ z6FOB|)>PM$B{aH53sO!0Clf7%obhUkGAN&GNUjp4OG>3=k&?b$9_UeXS~wLd_t95*3IxShdxL(XVi~Mv?w{n z3!X7dMO|qo{mHD#IH@Y8LdBRn{RmB|YksLO>p+4o3kqoJvNR}bn7k|lXZgK%~ z^rv;Z3ri53y{U|%+^}F0nZ1ISSUpoR!Cp4S6wtcddAtGt+ zzqJrxT%sNqZUHvx?VJzI){GBw?QGp13q}hmAD(^ej(@vle5#oCR0taG@M-OI3jkvk zf&ir{Rv5GP1A%i0TyXcgwXTbR&B-VLv*Vh^oSo-^YmGf%&ow(Ov}AY4xh z5;EKxOcWW*t2Eb3Cu4gRK*57myM=7}O3~b`Z=)1=kUK6w3V0X%@auIdYt7#HvmCN@ z$|U#(HRTAId7niq5+{pkRhxe&>ajv0b!;!H6UJO%*3B8Zl)E#$A>fQ&9!{@#cc)Pe z0c2&`BE|ciiCtougm^!?aWmRmk*(O1AFY2b;BVaP z_XgMF)!CmHcW(C&AGN321B3Os;qVqD4|~a8+>3e%oZVb?5nHI$+5Ioif4)Ec(H_R; feqOQ6LX!2fs(r3b6hGoR;YB literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h new file mode 100644 index 0000000..d71a413 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h @@ -0,0 +1,9 @@ +#ifndef __timer_t_defined +#define __timer_t_defined 1 + +#include + +/* Timer ID returned by `timer_create'. */ +typedef __timer_t timer_t; + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@types@timer_t.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..ef8b5a247483bc42bee0a83c844535faea17238e GIT binary patch literal 2645 zcma)8!EVz)5VZ>mH&k)%!77!IDx9UI;2%*{dXTPgD^muC>Y8rIz>atW&v`m-83I_QwOPLjJi>Y76qqx z&Qpe|s7lSG+nJRqCuPZ$FBypGMrcx9@zaIXv8k8Uv{7=5#~}96QGat*(XLfD=LxDO z105U<9}GupF+-(^oEQS%e@-tuYE}z{Xv)UE0%VerG*%grERE}g-MOr|$+^*)+pSwR zqi%0gAu}3hz=Fvb22R??ZKIfNLjd`Vr`hJ6G^k4sK|)f z2bc@9w?viXcKtQt?L_e@0Ge!kYX#U>tl6{1<@1YgU6E`SmQNJZ4%#N84xe_LZUA7c zd=N&Disi7Y-9Tn>2%K~Kw6#k&Hf%;m9+;jm&2F}yH!OPwp;36fZh7jcS5uZAnsdVS zI48b+TbUgi!^SH$*9$A-I+TGj_f=(=JJglNGZ^wlDds-z>7IVYsTmR$cEb?Aj9t{SQ@my29)!m literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h new file mode 100644 index 0000000..20e7023 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h @@ -0,0 +1,106 @@ +/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. + Copyright (C) 2012-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_TYPES_H +# error "Never include directly; use instead." +#endif + +#ifndef _BITS_TYPESIZES_H +#define _BITS_TYPESIZES_H 1 + +/* See for the meaning of these macros. This file exists so + that need not vary across different GNU platforms. */ + +/* X32 kernel interface is 64-bit. */ +#if defined __x86_64__ && defined __ILP32__ +# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE +# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE +#else +# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE +# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE +#endif + +#define __DEV_T_TYPE __UQUAD_TYPE +#define __UID_T_TYPE __U32_TYPE +#define __GID_T_TYPE __U32_TYPE +#define __INO_T_TYPE __SYSCALL_ULONG_TYPE +#define __INO64_T_TYPE __UQUAD_TYPE +#define __MODE_T_TYPE __U32_TYPE +#ifdef __x86_64__ +# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE +# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE +#else +# define __NLINK_T_TYPE __UWORD_TYPE +# define __FSWORD_T_TYPE __SWORD_TYPE +#endif +#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE +#define __OFF64_T_TYPE __SQUAD_TYPE +#define __PID_T_TYPE __S32_TYPE +#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE +#define __RLIM64_T_TYPE __UQUAD_TYPE +#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE +#define __BLKCNT64_T_TYPE __SQUAD_TYPE +#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE +#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE +#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE +#define __FSFILCNT64_T_TYPE __UQUAD_TYPE +#define __ID_T_TYPE __U32_TYPE +#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE +#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE +#define __USECONDS_T_TYPE __U32_TYPE +#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE +#define __SUSECONDS64_T_TYPE __SQUAD_TYPE +#define __DADDR_T_TYPE __S32_TYPE +#define __KEY_T_TYPE __S32_TYPE +#define __CLOCKID_T_TYPE __S32_TYPE +#define __TIMER_T_TYPE void * +#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE +#define __FSID_T_TYPE struct { int __val[2]; } +#define __SSIZE_T_TYPE __SWORD_TYPE +#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE + +#ifdef __x86_64__ +/* Tell the libc code that off_t and off64_t are actually the same type + for all ABI purposes, even if possibly expressed as different base types + for C type-checking purposes. */ +# define __OFF_T_MATCHES_OFF64_T 1 + +/* Same for ino_t and ino64_t. */ +# define __INO_T_MATCHES_INO64_T 1 + +/* And for __rlim_t and __rlim64_t. */ +# define __RLIM_T_MATCHES_RLIM64_T 1 + +/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ +# define __STATFS_MATCHES_STATFS64 1 + +/* And for getitimer, setitimer and rusage */ +# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 +#else +# define __RLIM_T_MATCHES_RLIM64_T 0 + +# define __STATFS_MATCHES_STATFS64 0 + +# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 +#endif + +/* Number of descriptors that can fit in an `fd_set'. */ +#define __FD_SETSIZE 1024 + + +#endif /* bits/typesizes.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@typesizes.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7c044a60fcc15bda1202fa427b6bd8c794c7e8f5 GIT binary patch literal 6390 zcma)93v63g8TNG_!4R>FTiP;8akAy*`4z`;^KjDZ_z^pC9*do@bZt)^`zChl*pct` zvMwE?JSweYXwufA3Jp4*RfnJ;wJVg3BG4+J6RQTSEz&?L+5}NqSt-*%Ed1x*dwkDz zuboB8ulWAQ-~G<_fB%0@tcLe(`#$%wfiXBUg?ZkYDWYubjAUF%@g6I^)Vksq- zio7FbSd+>n^K&0$rG2qb+@HTX7 zS!pseSy6D}tl&gwent?JB9BDfrL%kzGZu7{63%R{kQDRwRAGL;kgvW>%+B*d_K_Nd zW)6tFu$Ww^fgw>&!q8bB$xKKdSwurg`V(wR$r-*x}ylW?2J=tAZNSB;c|G(o`-@Yi*uOg>8tx+)|g&6 zAUIQLezulQnIfM|+l5TB$fxa+F4ecJa4RliJ62z&RTnow&Dz7xQuYk6;EQ(X%c6c) zQks*x0rEr1+-f{z>1zqUAW9-gwC%}aDzh3SE_yA%TmjFnLTM(a??KtXnzz&{FH{h( zmCCC>X7Q}WOTIkvU9AIX)v|K}FIJ(AcckG%CMpGhkWdQ(n@!+zFt4iv;o(t0xvYN2 zk-=-nY`mTtFsr;qp3l19$1GQIxolr)px|%eAr=VuitG*)f)`$EC2eZ_4wZ%-?(O=e%5rjIwBl1&@(W>Fke2V|-mch%1Hq;@zKpeCrZI;UJ2K z67lHH5PW~jJ>a5jp107?O{R92+hZ^=v+QiE5l4? zMv3x^;1e9O33!b|eU0uC6UH4kk8?&Gg9>irv2Wdb?VUINf>0dG0mzBzajeQ#6^_oB zOtA7ZV-v7tX&n<~qc$Us5e2bjJ~k8iWYhy{#-p%|0N$+vQVEkuZbi$I1ttTO01mhZ z-Mf1&j{@5W8?hR3+@oN(Z;AMp)^7&vf!MH?uSJE|<}l&uc)%Zvp?GX;bdV4qWCvYF z2I5Wy{Hte-Ec@1j$Bx_II~0ZvTK@EZ-|_Yyy@k+dEIK-@ zD-oTcc}&vc+srnHk%36WAOG`jUB2_-W`v@nW7yHeHk9~u1|v`2Kj|;~u#Ihl5O^CRmwdKV;1SCDK}NmlFtdxhS87u)4FG7w`5?2q=m`qQV$XmFHEf)XKI3S%}0f{ejm`o(UW8FIxrvU>bZ4yTBV)e}B;P^UTs)l0Rvw zsR}C7N~*2&R(cN|YzI^jV!48cVy-b$1UxY^7NkZKHA$$10dYW4MxiwE4RACm?fZO4r2d^E=R**d`DLA`$t=+|kUFL(i|Lg<02ZYliXG zVrzkDbyx>Drq9~f&oP{b!-9?cY}`5gk4tua6%4JaYImxHrNc9iJ}n!}4LwE%;x1{6 zb#9wG!7=@={s%Z_hhxVS$N0VeJsdOW9^A<>+uhqC+TC`DD}Qxf-v6bG8xE>e=!vRF zMa=^h=>tur(cB1BAj(wMwc1*Nip_0<}~&MADdVf7|rS zg-Ze)R`JPrC@?k}gzG7Rzn3y_MV5Mjrhgx3J@nZY%)rqn<;SoRA-TN_nk6N z0X9T(zP#}COyfm%As8S>>oNzptth1R!Nm?Dx!8T= z;;m=d;BWA)iTclFlWN}bW32L|+R=S%U$c>c*ss*BIKu51-mnF{Rnb-&4^$?#pd8DA zq7aE;pULbs<-c-b3^2++Orx(6&*u~MrW+GqW1gnkyu5E%OrKPQQ8|xWoz`W59q2ML J5GUl_{2xu%`2+v} literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h new file mode 100644 index 0000000..145a6d5 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h @@ -0,0 +1,50 @@ +/* Inline functions to return unsigned integer values unchanged. + Copyright (C) 2017-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#if !defined _NETINET_IN_H && !defined _ENDIAN_H +# error "Never use directly; include or instead." +#endif + +#ifndef _BITS_UINTN_IDENTITY_H +#define _BITS_UINTN_IDENTITY_H 1 + +#include + +/* These inline functions are to ensure the appropriate type + conversions and associated diagnostics from macros that convert to + a given endianness. */ + +static __inline __uint16_t +__uint16_identity (__uint16_t __x) +{ + return __x; +} + +static __inline __uint32_t +__uint32_identity (__uint32_t __x) +{ + return __x; +} + +static __inline __uint64_t +__uint64_identity (__uint64_t __x) +{ + return __x; +} + +#endif /* _BITS_UINTN_IDENTITY_H. */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@uintn-identity.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..b4df500b5f2259348a370dea2c71bd225ca38891 GIT binary patch literal 3405 zcma)8O=u%k9Dhm6f@`5tmsY&=(Y2x5W->O`9<-|xtXOc1U_^I8hRK_k$n zB6>Z+^VKx#QN<1m2(<>9ssp!Q;3K3=d_ned=#E7OTCSfL7L)=~S`bx|omX~V+s-GX zw8yx%;8PTN$T}*%!%QBe>Qj>M)zzZMh;zU^>JSldO=Z3^ZCzz|8j$g&OnI zy-dX@Uzwt@l!viRu8iZfVJ0>=CTqr|&K1FDEjt__dwrw!bZv9g^H301b_~xif8IMz zHN6@rn|QQcl&7wwu4k#PE2(FNdC3ns<|YqJJLapUvulQ+u=WrcvAV#5N(<&vW>4i< z&Xc-<=Y7|ozys#5DExRMnCcYOrmw?1g^^jVB;5(9w&{x^hrTfDO$04JyG^4WPoWfb z02JBih8>W-iOo7TDj#0^EZrpIiDex{bq;M4QHoEpbjKVxjw*6t`cY9IR(if8vtNYc zv+SWvcC%&JY;F{|nE(^5@JxHda>5`)9Ug9F=H=uoO3MVA2QJfX-z{3pM#Y?~AiIqr zU&QLe@J1bA&T(o7xW2gxnSq83<6-Irn%>OU%4o;T@)us95D!kfmwOb$;%Bnx@Bm&W zf|jz1sy;rZnQj08#wb%XLdcY!Hu(gxeQtB75)~1!!uCr%mFlUArJzc4=+ey8aQ1%l zw~r6+9h*jA1T*e4PO;+zaEHxRIeml+$~Du2m6Y)26;!V;m8z(^R4%O{yNnPj4UfKi z|EC8FkAI40O7J%tKJw$#vnRLzs%N1*Qy-zg;~A7#7^75B1yGjJl?df)X8qZ^@xkv2 z%G-^pCqJ5fIG=^GzBxjH$1^CgFh;=$1Ii-0Tt>|@O^kUiPX7=U8MvuVh_VRMu!Up=~lQcMGyB}B837!uEvp_ z2KN_T++q8a1I*~H#N_si+fRLec>k9hanu*?nhcNsjHQ40;;pNHfAa8~&kZLSWE^nV zqZ~+>GjUp5jjGj4iI0EGLwOCaZA_P{mFjcTrK3cYe3yo!+z%hj{_)PeA0Ayh2LT-v zBbX|p)zvcy%Xk?ODwPT#+(|qq-(ztO^;_4T5Ae+PIRw=eGQlu4M77!(j77W%7`TD~ zV|vt<=?+Ho^A{ko)vapdq#TCaxO*}K|EbN@o|rieHL^-NGPbI0RYEHWqj3~kt<0?$ ztE5bkRnlRx72d+36%cFO39XjqmW-9W^%ePc{@2%?#!mAM=gpnn=B~5z^7d|Xr+M9Z e6_QiE3}p;QG*bhw1Mh{$7PiXf_e*GK=I=is)Y)kO literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h new file mode 100644 index 0000000..3834d61 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h @@ -0,0 +1,39 @@ +/* Definitions of flag bits for `waitpid' et al. + Copyright (C) 1992-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#if !defined _SYS_WAIT_H && !defined _STDLIB_H +# error "Never include directly; use instead." +#endif + + +/* Bits in the third argument to `waitpid'. */ +#define WNOHANG 1 /* Don't block waiting. */ +#define WUNTRACED 2 /* Report status of stopped children. */ + +/* Bits in the fourth argument to `waitid'. */ +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 +# define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ +# define WEXITED 4 /* Report dead child. */ +# define WCONTINUED 8 /* Report continued child. */ +# define WNOWAIT 0x01000000 /* Don't reap, just poll status. */ +#endif + +#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads + in this group */ +#define __WALL 0x40000000 /* Wait for any child. */ +#define __WCLONE 0x80000000 /* Wait for cloned process. */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitflags.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..d802eb778ef7fbdf894c78392a063e2e69a52103 GIT binary patch literal 2954 zcma)8J&Y4a6ds#2mPoLiQviiKtX#NADC_kR>$oOF)|~^E92*fMN1|A*XUF#7^{$zj zjnAo&kWxj8lqwZf6c7TDK20jp(nR6}RERcRQX!5vv%5Y!%&xPNr+D+;_rCW#K8s#| zdi~}jltJde9}#m9;GtP!WbAX(cYI-T!2&D-MoJhR!LIG~|Bt3I@!61ieZ!%QVBxdr z=Lz`ef*EjTQV+X?@SFFS0TU6$O@iD>4sJ8G&6k8MO5DWW(CkRVcCZ0oW&m%l781R{l5QZA@ z6Cr0-$?GGO< zG(Dek6Fa1rmZt$Dwqx*t&4^>Dyd;MlabpwNj>&3^*_A_(T6>5L8v|fLm;rOi^iw&P z^SEw+{H^US;Q{lP7Jjr5WOdSNGZrdODl)@nc(BB)Df=P~(Dmhd^MkIdZ_}{H7rdl( z02Ep3st(X^V!4i`$`4=ty4WQ1iKTr`L;`IY(E^`%>CORI7Egna{m6+6D?J%V?ib&3 zseUNq-E2rUTa^@;C2qnMuCWCm~;9T9(iZv@8Tsg{nynb`1t z!J8H6dl{03jWJAc*aq@VURVUSE1!mB_-LX=fgpRyTAH5J_CV@06o%t7C-G%e9iU~= z_X7Aw5p=ncR{Hr_)xv-Sm?iDi%!Bs!u+x`Zn{Tb}g+zq}4Ap}%63P_N%29-J2iuR2 z?O$8Hebcf!%~t!;m0EQdA@spI6qkCWI43U3ue^7z9DWF8*7NHdS$XcFgA7<5+*o<_ z*!!;ELYy!K7`oFZxpi`IJY8*f1bSm>ieJn{S(-9s`WM?ycZ)x zA^<3F&NvhcMF4;^1}Hw*|LNA#-CLcVRJ=LI9)gm5x{via^HFJ zkH(gvBnRFrhxE_n&z#C;;H*UUFP~k%_wMnBpLA;9)Z5DSA^lL4 ztAO9N!WyuK^W(^F?Zfti;qP~T>3rR8UB0XgXPJv-xpQE-T3G!kE6. */ + +#if !defined _SYS_WAIT_H && !defined _STDLIB_H +# error "Never include directly; use instead." +#endif + + +/* Everything extant so far uses these same bits. */ + + +/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ +#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) + +/* If WIFSIGNALED(STATUS), the terminating signal. */ +#define __WTERMSIG(status) ((status) & 0x7f) + +/* If WIFSTOPPED(STATUS), the signal that stopped the child. */ +#define __WSTOPSIG(status) __WEXITSTATUS(status) + +/* Nonzero if STATUS indicates normal termination. */ +#define __WIFEXITED(status) (__WTERMSIG(status) == 0) + +/* Nonzero if STATUS indicates termination by a signal. */ +#define __WIFSIGNALED(status) \ + (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) + +/* Nonzero if STATUS indicates the child is stopped. */ +#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) + +/* Nonzero if STATUS indicates the child continued after a stop. We only + define this if provides the WCONTINUED flag bit. */ +#ifdef WCONTINUED +# define __WIFCONTINUED(status) ((status) == __W_CONTINUED) +#endif + +/* Nonzero if STATUS indicates the child dumped core. */ +#define __WCOREDUMP(status) ((status) & __WCOREFLAG) + +/* Macros for constructing status values. */ +#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) +#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) +#define __W_CONTINUED 0xffff +#define __WCOREFLAG 0x80 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitstatus.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@waitstatus.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..29f35f7de2d4938a6ff5aa908c01beb6d2286fec GIT binary patch literal 3514 zcma)8O=#Rk6qdJ8^nDDYTbBp@l-}HHDVYLn$TBdn0KrWhHG59;G8F zdyczf+AY~IU7|C`Jy=M=7Zw$dx{7J*mS+$}X9rzUZ2PQYCk>NP1y8A>s+|U98Y3!8 zG;Ik?vYrpuaiFt5om+0xJ8gn|PuI`xzQFX_&8FAB% ziEWsgZ4;Um4ERh(@Iwvwu}-3)pRdHDNXmI^gDaz|P3Vc)nZcF;slFmuW<%i(q@0;4 zmWs1I%|k&nw}m|K{k-!aCVF~672P1stUR?{q8T!6Yc4Tlo|p8H18(jf$}!z6o?UE$ z%-Ta_y4(g9#Fe2h-Q=!}Xp00jrZ$n=a#d;*rUktG5SuRZtgM zfR=;f&G8ymvP^xA$Gl`I0E&#ZTmi|G7{@W1e6sdMTqM!Nnk`CL3T=!i#wQ%Q5dc-C zSrDj4N-P-Z=|DJN9Mv+Dn=+iuGP0SS$$%N)#vkE{_mSm*M(`ERr?P3JKs{o(m*c{L-d>In2a+X0ubv#D))2$LDnJ9tG zSBU$A=iNws7`XrvS+r~qzEF4#DrZ$b+Ny~#-~d`F@u=q^@$^XO1CEux=^aayPeA4p z43UJP}3lq^fVL%Ny(U+WK~7MG%D7-hlF&Hj!cnBO|5#Cj1D( z&^htk=^U=}!r>5HI5e(2Zhi3Qhlg;XR*gcv9)XISGAh-kgBb`4lm8I)aX@9PXz-6(V z&*6GG0RFZ7-Dfwxym^)ffXJIX6H(w=HP{a+1NrcyGy%}fW&xuJeN2f{-~-lf;N!)Q zgukbM*cwLil}ojH68UgH?-DjG1rfmKUIaWU3}H^319(`Q0sO|b<%hpr_H;jl+J*I{ z)xK&%48cK<`8zL25(Z+nY+^_{yv_ywzh598801WvlFk&Q#YMhKB_uE@PJ##~#e6#; zaQopg@9yt4EY9-A#Y%N`=>pW|l}K&EZIn{E1Q_$;{6r4dvjN8U^xmWOop;|0FjltL zHWM&#I}9Kqp$Sw_=mROvh%*2WYe@0=8@E2*{A+HE=LmDnGZdv*tNPnV@L*f7TwH_1 zg?qfph(9il13s)*1NxmG-@1SMkAEJ+9TW@P0rn>%83=Ymq!BPge_QpX`u0}13&^L$ zQ{y>YuLQ`W!*BlbX!y=oM{J%!euiT#EukdG#4$jH^-_TP>Gk~GJKrq*7o!2d(FxGc WuV4735*J4qlX6l#3A%ta(EU@BgyIVT literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h new file mode 100644 index 0000000..70f652b --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h @@ -0,0 +1,17 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __x86_64__ && !defined __ILP32__ +# define __WORDSIZE 64 +#else +# define __WORDSIZE 32 +#define __WORDSIZE32_SIZE_ULONG 0 +#define __WORDSIZE32_PTRDIFF_LONG 0 +#endif + +#ifdef __x86_64__ +# define __WORDSIZE_TIME64_COMPAT32 1 +/* Both x86-64 and x32 use the 64-bit system call interface. */ +# define __SYSCALL_WORDSIZE 64 +#else +# define __WORDSIZE_TIME64_COMPAT32 0 +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@bits@wordsize.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..9e87ac33f27ff7bedef8a9b7b546572f4ed5b108 GIT binary patch literal 2630 zcma)8!EO^V5Oop`RBaKe_y8mj2h@!zgxn~qN-GsLDrzGkxLA(Y$(ro0Bil;|5)!AL z_zo@z!I3ZMA8>#Rf53qo7lOT;v{_<%Im8#wzIpTJ%{aHgpUoF<&p-{ph$j?A85zQ+ zpd&6J54nO;iHxXB&?W&566196Kas(hiy=z~LC6Fpii^nu2R_(_nG}$vB+fz#iJFXP zGb&h>ZhA~fXl^A$DCtRs6-CM#+Nansme$K0ryp~y(tz+J;i)@Jv4l$Y+C!)}QB;oc z$b*qnCNU>N2i=9rbQF$VW$9LENj+7~)!9Ed+;bC>DrBh&^v_p$&bnwmVnzocN0hix zvEm6MXv{*22+vYQg*%w0A;W1(rLP#B(~VG+I^(AjYha<5^=d)#yteAjAk^10(QZ{o z&PXjaA!a?84-njHHSaXr=bqOM!D3)|e*QK*E16zSBqSm2`*ex~#bF>LENB?yy0}Z8 zaT8->M|W6RT{8sU-s{Rp5NQ@v1bQxoeJU3;pZ858zr=9`4?Tar@@E^tbjR15k;-+- zD+{n7QAJj0eBlF(xmj;K>&14P79KBU@i{;@*~I1!uy10sj!nqB&ik@S7KLR4NtJ`P zsi?$fzH}D=5RyI!<3~wjz0%!4X1{P0Gy71^cXMFav|ApSiZsOvw|;L}Rt!Sn@O&$? z(4ki$O9jm_W~v`!-&)ShstxpFOchfTE8{$sfillpX1BZ6l>{R__4dN*71wZS zf0tw^2n4wa=SZM_30z*g0i= ztqa_Fwtu5mwlwgFwPmz|Tw|kgt6tORX7Tx7F{9+k literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h new file mode 100644 index 0000000..c8d589d --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h @@ -0,0 +1,111 @@ +// -*- C++ -*- C library enhancements header. + +// Copyright (C) 2016-2022 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file include/bits/std_abs.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{cmath, cstdlib} + */ + +#ifndef _GLIBCXX_BITS_STD_ABS_H +#define _GLIBCXX_BITS_STD_ABS_H + +#pragma GCC system_header + +#include + +#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS +#include_next +#ifdef __CORRECT_ISO_CPP_MATH_H_PROTO +# include_next +#endif +#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS + +#undef abs + +extern "C++" +{ +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + + using ::abs; + +#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO + inline long + abs(long __i) { return __builtin_labs(__i); } +#endif + +#ifdef _GLIBCXX_USE_LONG_LONG + inline long long + abs(long long __x) { return __builtin_llabs (__x); } +#endif + +// _GLIBCXX_RESOLVE_LIB_DEFECTS +// 2192. Validity and return type of std::abs(0u) is unclear +// 2294. should declare abs(double) +// 2735. std::abs(short), std::abs(signed char) and others should return int + +#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO + inline _GLIBCXX_CONSTEXPR double + abs(double __x) + { return __builtin_fabs(__x); } + + inline _GLIBCXX_CONSTEXPR float + abs(float __x) + { return __builtin_fabsf(__x); } + + inline _GLIBCXX_CONSTEXPR long double + abs(long double __x) + { return __builtin_fabsl(__x); } +#endif + +#if defined(__GLIBCXX_TYPE_INT_N_0) + __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_0 + abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; } +#endif +#if defined(__GLIBCXX_TYPE_INT_N_1) + __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_1 + abs(__GLIBCXX_TYPE_INT_N_1 __x) { return __x >= 0 ? __x : -__x; } +#endif +#if defined(__GLIBCXX_TYPE_INT_N_2) + __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_2 + abs(__GLIBCXX_TYPE_INT_N_2 __x) { return __x >= 0 ? __x : -__x; } +#endif +#if defined(__GLIBCXX_TYPE_INT_N_3) + __extension__ inline _GLIBCXX_CONSTEXPR __GLIBCXX_TYPE_INT_N_3 + abs(__GLIBCXX_TYPE_INT_N_3 __x) { return __x >= 0 ? __x : -__x; } +#endif + +#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) + __extension__ inline _GLIBCXX_CONSTEXPR + __float128 + abs(__float128 __x) + { return __x < 0 ? -__x : __x; } +#endif + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace +} // extern "C"++" + +#endif // _GLIBCXX_BITS_STD_ABS_H diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@bits@std_abs.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..894124f17d2304d3e87ab2ec211b03ba89b4f3ec GIT binary patch literal 5515 zcmb7IU2NOd6($`;%>>p+-83))BPB8~mE%y1Tu*X5Epr@8iS0xlD#mcSEi6S|NsK8{ z?%h+Vn?p3kH;g9Y8;-orXH3*GEZ$HIn=F|Im5?<_ zuTxyxs9r&`t!^Mro}AchUc=n_YK$bk>MRolWevZ2@1Iw(m@=|`})S_q#Uzp{O^?}RYp zQ;QeHX4SGK8;N!#>3yluazq8yR2^B7iV$%%&5&%JlZ|H6&?80FkYqciixH!;+C-N6 z^Z=u(TQ;&brB>jQOa^CaYBeIC1A;`c2A4E99TP!o3+@JFCA~t&cBtQoMe*g_WDQbv6o6VjCB=>sv*`K9SVk_TQQmjY$EX)NY*f+;&4_&GLgcO z;6^$#fawJU-qXLGIj?RJ*20yH&|SmN>XaaL`nATeY|1b;6=>TXv#T82l=8EhqzS zmV}y#q~RVC58u7+O~;PO50VBEDeL7=Uz!Z;SAlvEJI5H-?(+l8QA%v@CwUfWE}oSv z+o@XIps)n1K_pDCl!biVb44VluR!E!kC_iOp*~-`3UDNsJ*1(9zM6VJo(39!VqEIu z_AN{trP9nQb%}YB`WADUl9+v+M)s3OUNwZ9styAvVgbQ|#A%tVC_+AGr)F5-o}HDd zR@&bY#r6a>eJV){2_bcNC_z_P;aQ5J=#KK|ci+jbt~^9Bd*GSsjQ=-%<43QKJs3jA zg_m^;Z%;sQlgOA|NYdp*naH@1SXm%4W`4zr|Nhxn)06SS58p~B?tJOBkc^%1-DiS) zVm3*a5+#CMOq`u3$Pc1tOZC70;b9N?)4j*$j0zv&sqM#9N*VC_D z9BsUD+C%-vXTt6M>CL-A)P6t+-~=^#BuVEJd4iQoT znzZ(4$a0tu@UXulFZ?~C?aX|Vt|e+jg2L8aAAJ1O$-g}_y!^5!VdS5mKL2;L_Dj@; z@mpsh*I1lm_&)|=bpy3!)Uwks;-U%a;K3v)3Lge9^y3E}Ka`;NeTW}|AG+hqxf9&S z-|3E@Id6u~{LH--KJ(*uJACHn%#HAwAEE2vGvDK#C->dkdo%x^C0)XkoFpThSnSnn z)PVy@YQ?e1y)fr>+HcGLa@4Eo&#FZD#vaZE0Y4 z!_eTR+okPUWuiK2!+RRkC6KoB6x-asP zQ@enDBV^Q13cQdQjGmkg7wIhw}0nP9ON zLbIucZMSB5zAnod0Ld6;oi|8}Qw-VS{kz0#@cW2m!#hBGtB!Qu_d5({b`uxc2RdG1 z?Ra&&H9ru z#WO*PDY3WjLb;~TPM@7+dX+iQLZH&Sm7T5~siiSjjj5$S#9Vvo2kT=DT|Zu*f_0{T z3J^Zn|Kh)jpMUmyFu?!N{1`tE`ut?_<8N%dcl{Or0KU*!Dmw>f?>_RQRV&x2<} z6``^{M+=NF0~F6)eEsL=URr%ENI_qrt`y+RtJI_?Lkp!+DQsu{V15j1oM-Z5*NL6^ zujf~>mXEym)A!$^p9^B`Eshj(bM)fKBCHoiF2GvJRGyflm5c&w$Lkb*eV;S{iY~B) zqgYUZDIC2)1Qjk96cFUKC4c;&7zS&$G`e&cGb}Mnhi?&v<=k=s7`*;Rqyz#tI*QrK zM-9${7ZCPNFFV8Z&eu+7l_ E16HYRcK`qY literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib new file mode 100644 index 0000000..8a832af --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib @@ -0,0 +1,261 @@ +// -*- C++ -*- forwarding header. + +// Copyright (C) 1997-2022 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file include/cstdlib + * This is a Standard C++ Library file. You should @c \#include this file + * in your programs, rather than any of the @a *.h implementation files. + * + * This is the C++ version of the Standard C Library header @c stdlib.h, + * and its contents are (mostly) the same as that header, but are all + * contained in the namespace @c std (except for names which are defined + * as macros in C). + */ + +// +// ISO C++ 14882: 20.4.6 C library +// + +#pragma GCC system_header + +#include + +#ifndef _GLIBCXX_CSTDLIB +#define _GLIBCXX_CSTDLIB 1 + +#if !_GLIBCXX_HOSTED +// The C standard does not require a freestanding implementation to +// provide . However, the C++ standard does still require +// -- but only the functionality mentioned in +// [lib.support.start.term]. + +#define EXIT_SUCCESS 0 +#define EXIT_FAILURE 1 + +namespace std +{ + extern "C" void abort(void) throw () _GLIBCXX_NORETURN; + extern "C" int atexit(void (*)(void)) throw (); + extern "C" void exit(int) throw () _GLIBCXX_NORETURN; +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT + extern "C" int at_quick_exit(void (*)(void)) throw (); +# endif +# ifdef _GLIBCXX_HAVE_QUICK_EXIT + extern "C" void quick_exit(int) throw() _GLIBCXX_NORETURN; +# endif +#endif +} // namespace std + +#else + +// Need to ensure this finds the C library's not a libstdc++ +// wrapper that might already be installed later in the include search path. +#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS +#include_next +#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS +#include + +// Get rid of those macros defined in in lieu of real functions. +#undef abort +#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC) +# undef aligned_alloc +#endif +#undef atexit +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT +# undef at_quick_exit +# endif +#endif +#undef atof +#undef atoi +#undef atol +#undef bsearch +#undef calloc +#undef div +#undef exit +#undef free +#undef getenv +#undef labs +#undef ldiv +#undef malloc +#undef mblen +#undef mbstowcs +#undef mbtowc +#undef qsort +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_QUICK_EXIT +# undef quick_exit +# endif +#endif +#undef rand +#undef realloc +#undef srand +#undef strtod +#undef strtol +#undef strtoul +#undef system +#undef wcstombs +#undef wctomb + +extern "C++" +{ +namespace std _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + + using ::div_t; + using ::ldiv_t; + + using ::abort; +#if __cplusplus >= 201703L && defined(_GLIBCXX_HAVE_ALIGNED_ALLOC) + using ::aligned_alloc; +#endif + using ::atexit; +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT + using ::at_quick_exit; +# endif +#endif + using ::atof; + using ::atoi; + using ::atol; + using ::bsearch; + using ::calloc; + using ::div; + using ::exit; + using ::free; + using ::getenv; + using ::labs; + using ::ldiv; + using ::malloc; +#ifdef _GLIBCXX_HAVE_MBSTATE_T + using ::mblen; + using ::mbstowcs; + using ::mbtowc; +#endif // _GLIBCXX_HAVE_MBSTATE_T + using ::qsort; +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_QUICK_EXIT + using ::quick_exit; +# endif +#endif + using ::rand; + using ::realloc; + using ::srand; + using ::strtod; + using ::strtol; + using ::strtoul; + using ::system; +#ifdef _GLIBCXX_USE_WCHAR_T + using ::wcstombs; + using ::wctomb; +#endif // _GLIBCXX_USE_WCHAR_T + +#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO + inline ldiv_t + div(long __i, long __j) { return ldiv(__i, __j); } +#endif + + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace + +#if _GLIBCXX_USE_C99_STDLIB + +#undef _Exit +#undef llabs +#undef lldiv +#undef atoll +#undef strtoll +#undef strtoull +#undef strtof +#undef strtold + +namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + +#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + using ::lldiv_t; +#endif +#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC + extern "C" void (_Exit)(int) throw () _GLIBCXX_NORETURN; +#endif +#if !_GLIBCXX_USE_C99_DYNAMIC + using ::_Exit; +#endif + +#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + using ::llabs; + + inline lldiv_t + div(long long __n, long long __d) + { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } + + using ::lldiv; +#endif + +#if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + extern "C" long long int (atoll)(const char *) throw (); + extern "C" long long int + (strtoll)(const char * __restrict, char ** __restrict, int) throw (); + extern "C" unsigned long long int + (strtoull)(const char * __restrict, char ** __restrict, int) throw (); +#endif +#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + using ::atoll; + using ::strtoll; + using ::strtoull; +#endif + using ::strtof; + using ::strtold; + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace __gnu_cxx + +namespace std +{ +#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + using ::__gnu_cxx::lldiv_t; +#endif + using ::__gnu_cxx::_Exit; +#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC + using ::__gnu_cxx::llabs; + using ::__gnu_cxx::div; + using ::__gnu_cxx::lldiv; +#endif + using ::__gnu_cxx::atoll; + using ::__gnu_cxx::strtof; + using ::__gnu_cxx::strtoll; + using ::__gnu_cxx::strtoull; + using ::__gnu_cxx::strtold; +} // namespace std + +#endif // _GLIBCXX_USE_C99_STDLIB + +} // extern "C++" + +#endif // !_GLIBCXX_HOSTED + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@cstdlib.blob new file mode 100644 index 0000000000000000000000000000000000000000..0f1ea5ed83044415111d10bbc4ceb4c7cb896514 GIT binary patch literal 9139 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 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h new file mode 100644 index 0000000..377b910 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h @@ -0,0 +1,86 @@ +// -*- C++ -*- compatibility header. + +// Copyright (C) 2002-2022 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file stdlib.h + * This is a Standard C++ Library header. + */ + +#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS +# include_next +#else + +#ifndef _GLIBCXX_STDLIB_H +#define _GLIBCXX_STDLIB_H 1 + +# include + +using std::abort; +using std::atexit; +using std::exit; +#if __cplusplus >= 201103L +# ifdef _GLIBCXX_HAVE_AT_QUICK_EXIT + using std::at_quick_exit; +# endif +# ifdef _GLIBCXX_HAVE_QUICK_EXIT + using std::quick_exit; +# endif +#endif + +#if _GLIBCXX_HOSTED +using std::div_t; +using std::ldiv_t; + +using std::abs; +using std::atof; +using std::atoi; +using std::atol; +using std::bsearch; +using std::calloc; +using std::div; +using std::free; +using std::getenv; +using std::labs; +using std::ldiv; +using std::malloc; +#ifdef _GLIBCXX_HAVE_MBSTATE_T +using std::mblen; +using std::mbstowcs; +using std::mbtowc; +#endif // _GLIBCXX_HAVE_MBSTATE_T +using std::qsort; +using std::rand; +using std::realloc; +using std::srand; +using std::strtod; +using std::strtol; +using std::strtoul; +using std::system; +#ifdef _GLIBCXX_USE_WCHAR_T +using std::wcstombs; +using std::wctomb; +#endif // _GLIBCXX_USE_WCHAR_T +#endif + +#endif // _GLIBCXX_STDLIB_H +#endif // __cplusplus diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@stdlib.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..0fefaad7d7d2075526852fa8bd227b37480fe253 GIT binary patch literal 6899 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. + +/** @file bits/c++config.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{version} + */ + +#ifndef _GLIBCXX_CXX_CONFIG_H +#define _GLIBCXX_CXX_CONFIG_H 1 + +// The major release number for the GCC release the C++ library belongs to. +#define _GLIBCXX_RELEASE 12 + +// The datestamp of the C++ library in compressed ISO date format. +#define __GLIBCXX__ 20220819 + +// Macros for various attributes. +// _GLIBCXX_PURE +// _GLIBCXX_CONST +// _GLIBCXX_NORETURN +// _GLIBCXX_NOTHROW +// _GLIBCXX_VISIBILITY +#ifndef _GLIBCXX_PURE +# define _GLIBCXX_PURE __attribute__ ((__pure__)) +#endif + +#ifndef _GLIBCXX_CONST +# define _GLIBCXX_CONST __attribute__ ((__const__)) +#endif + +#ifndef _GLIBCXX_NORETURN +# define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) +#endif + +// See below for C++ +#ifndef _GLIBCXX_NOTHROW +# ifndef __cplusplus +# define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) +# endif +#endif + +// Macros for visibility attributes. +// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY +// _GLIBCXX_VISIBILITY +# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1 + +#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY +# define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) +#else +// If this is not supplied by the OS-specific or CPU-specific +// headers included below, it will be defined to an empty default. +# define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V) +#endif + +// Macros for deprecated attributes. +// _GLIBCXX_USE_DEPRECATED +// _GLIBCXX_DEPRECATED +// _GLIBCXX_DEPRECATED_SUGGEST( string-literal ) +// _GLIBCXX11_DEPRECATED +// _GLIBCXX11_DEPRECATED_SUGGEST( string-literal ) +// _GLIBCXX14_DEPRECATED +// _GLIBCXX14_DEPRECATED_SUGGEST( string-literal ) +// _GLIBCXX17_DEPRECATED +// _GLIBCXX17_DEPRECATED_SUGGEST( string-literal ) +// _GLIBCXX20_DEPRECATED( string-literal ) +// _GLIBCXX20_DEPRECATED_SUGGEST( string-literal ) +#ifndef _GLIBCXX_USE_DEPRECATED +# define _GLIBCXX_USE_DEPRECATED 1 +#endif + +#if defined(__DEPRECATED) +# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__)) +# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \ + __attribute__ ((__deprecated__ ("use '" ALT "' instead"))) +#else +# define _GLIBCXX_DEPRECATED +# define _GLIBCXX_DEPRECATED_SUGGEST(ALT) +#endif + +#if defined(__DEPRECATED) && (__cplusplus >= 201103L) +# define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED +# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) +#else +# define _GLIBCXX11_DEPRECATED +# define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) +#endif + +#if defined(__DEPRECATED) && (__cplusplus >= 201402L) +# define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED +# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) +#else +# define _GLIBCXX14_DEPRECATED +# define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) +#endif + +#if defined(__DEPRECATED) && (__cplusplus >= 201703L) +# define _GLIBCXX17_DEPRECATED [[__deprecated__]] +# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) +#else +# define _GLIBCXX17_DEPRECATED +# define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) +#endif + +#if defined(__DEPRECATED) && (__cplusplus >= 202002L) +# define _GLIBCXX20_DEPRECATED(MSG) [[deprecated(MSG)]] +# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) +#else +# define _GLIBCXX20_DEPRECATED(MSG) +# define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) +#endif + +// Macros for ABI tag attributes. +#ifndef _GLIBCXX_ABI_TAG_CXX11 +# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11"))) +#endif + +// Macro to warn about unused results. +#if __cplusplus >= 201703L +# define _GLIBCXX_NODISCARD [[__nodiscard__]] +#else +# define _GLIBCXX_NODISCARD +#endif + + + +#if __cplusplus + +// Macro for constexpr, to support in mixed 03/0x mode. +#ifndef _GLIBCXX_CONSTEXPR +# if __cplusplus >= 201103L +# define _GLIBCXX_CONSTEXPR constexpr +# define _GLIBCXX_USE_CONSTEXPR constexpr +# else +# define _GLIBCXX_CONSTEXPR +# define _GLIBCXX_USE_CONSTEXPR const +# endif +#endif + +#ifndef _GLIBCXX14_CONSTEXPR +# if __cplusplus >= 201402L +# define _GLIBCXX14_CONSTEXPR constexpr +# else +# define _GLIBCXX14_CONSTEXPR +# endif +#endif + +#ifndef _GLIBCXX17_CONSTEXPR +# if __cplusplus >= 201703L +# define _GLIBCXX17_CONSTEXPR constexpr +# else +# define _GLIBCXX17_CONSTEXPR +# endif +#endif + +#ifndef _GLIBCXX20_CONSTEXPR +# if __cplusplus >= 202002L +# define _GLIBCXX20_CONSTEXPR constexpr +# else +# define _GLIBCXX20_CONSTEXPR +# endif +#endif + +#ifndef _GLIBCXX23_CONSTEXPR +# if __cplusplus >= 202100L +# define _GLIBCXX23_CONSTEXPR constexpr +# else +# define _GLIBCXX23_CONSTEXPR +# endif +#endif + +#ifndef _GLIBCXX17_INLINE +# if __cplusplus >= 201703L +# define _GLIBCXX17_INLINE inline +# else +# define _GLIBCXX17_INLINE +# endif +#endif + +// Macro for noexcept, to support in mixed 03/0x mode. +#ifndef _GLIBCXX_NOEXCEPT +# if __cplusplus >= 201103L +# define _GLIBCXX_NOEXCEPT noexcept +# define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__) +# define _GLIBCXX_USE_NOEXCEPT noexcept +# define _GLIBCXX_THROW(_EXC) +# else +# define _GLIBCXX_NOEXCEPT +# define _GLIBCXX_NOEXCEPT_IF(...) +# define _GLIBCXX_USE_NOEXCEPT throw() +# define _GLIBCXX_THROW(_EXC) throw(_EXC) +# endif +#endif + +#ifndef _GLIBCXX_NOTHROW +# define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT +#endif + +#ifndef _GLIBCXX_THROW_OR_ABORT +# if __cpp_exceptions +# define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) +# else +# define _GLIBCXX_THROW_OR_ABORT(_EXC) (__builtin_abort()) +# endif +#endif + +#if __cpp_noexcept_function_type +#define _GLIBCXX_NOEXCEPT_PARM , bool _NE +#define _GLIBCXX_NOEXCEPT_QUAL noexcept (_NE) +#else +#define _GLIBCXX_NOEXCEPT_PARM +#define _GLIBCXX_NOEXCEPT_QUAL +#endif + +// Macro for extern template, ie controlling template linkage via use +// of extern keyword on template declaration. As documented in the g++ +// manual, it inhibits all implicit instantiations and is used +// throughout the library to avoid multiple weak definitions for +// required types that are already explicitly instantiated in the +// library binary. This substantially reduces the binary size of +// resulting executables. +// Special case: _GLIBCXX_EXTERN_TEMPLATE == -1 disallows extern +// templates only in basic_string, thus activating its debug-mode +// checks even at -O0. +# define _GLIBCXX_EXTERN_TEMPLATE 1 + +/* + Outline of libstdc++ namespaces. + + namespace std + { + namespace __debug { } + namespace __parallel { } + namespace __cxx1998 { } + + namespace __detail { + namespace __variant { } // C++17 + } + + namespace rel_ops { } + + namespace tr1 + { + namespace placeholders { } + namespace regex_constants { } + namespace __detail { } + } + + namespace tr2 { } + + namespace decimal { } + + namespace chrono { } // C++11 + namespace placeholders { } // C++11 + namespace regex_constants { } // C++11 + namespace this_thread { } // C++11 + inline namespace literals { // C++14 + inline namespace chrono_literals { } // C++14 + inline namespace complex_literals { } // C++14 + inline namespace string_literals { } // C++14 + inline namespace string_view_literals { } // C++17 + } + } + + namespace abi { } + + namespace __gnu_cxx + { + namespace __detail { } + } + + For full details see: + http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html +*/ +namespace std +{ + typedef __SIZE_TYPE__ size_t; + typedef __PTRDIFF_TYPE__ ptrdiff_t; + +#if __cplusplus >= 201103L + typedef decltype(nullptr) nullptr_t; +#endif + +#pragma GCC visibility push(default) + // This allows the library to terminate without including all of + // and without making the declaration of std::terminate visible to users. + extern "C++" __attribute__ ((__noreturn__, __always_inline__)) + inline void __terminate() _GLIBCXX_USE_NOEXCEPT + { + void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__)); + terminate(); + } +#pragma GCC visibility pop +} + +# define _GLIBCXX_USE_DUAL_ABI 1 + +#if ! _GLIBCXX_USE_DUAL_ABI +// Ignore any pre-defined value of _GLIBCXX_USE_CXX11_ABI +# undef _GLIBCXX_USE_CXX11_ABI +#endif + +#ifndef _GLIBCXX_USE_CXX11_ABI +# define _GLIBCXX_USE_CXX11_ABI 1 +#endif + +#if _GLIBCXX_USE_CXX11_ABI +namespace std +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +namespace __gnu_cxx +{ + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +} +# define _GLIBCXX_NAMESPACE_CXX11 __cxx11:: +# define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 { +# define _GLIBCXX_END_NAMESPACE_CXX11 } +# define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11 +#else +# define _GLIBCXX_NAMESPACE_CXX11 +# define _GLIBCXX_BEGIN_NAMESPACE_CXX11 +# define _GLIBCXX_END_NAMESPACE_CXX11 +# define _GLIBCXX_DEFAULT_ABI_TAG +#endif + +// Defined if inline namespaces are used for versioning. +# define _GLIBCXX_INLINE_VERSION 0 + +// Inline namespace for symbol versioning. +#if _GLIBCXX_INLINE_VERSION +# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __8 { +# define _GLIBCXX_END_NAMESPACE_VERSION } + +namespace std +{ +inline _GLIBCXX_BEGIN_NAMESPACE_VERSION +#if __cplusplus >= 201402L + inline namespace literals { + inline namespace chrono_literals { } + inline namespace complex_literals { } + inline namespace string_literals { } +#if __cplusplus > 201402L + inline namespace string_view_literals { } +#endif // C++17 + } +#endif // C++14 +_GLIBCXX_END_NAMESPACE_VERSION +} + +namespace __gnu_cxx +{ +inline _GLIBCXX_BEGIN_NAMESPACE_VERSION +_GLIBCXX_END_NAMESPACE_VERSION +} + +#else +# define _GLIBCXX_BEGIN_NAMESPACE_VERSION +# define _GLIBCXX_END_NAMESPACE_VERSION +#endif + +// Inline namespaces for special modes: debug, parallel. +#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) +namespace std +{ +_GLIBCXX_BEGIN_NAMESPACE_VERSION + + // Non-inline namespace for components replaced by alternates in active mode. + namespace __cxx1998 + { +# if _GLIBCXX_USE_CXX11_ABI + inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } +# endif + } + +_GLIBCXX_END_NAMESPACE_VERSION + + // Inline namespace for debug mode. +# ifdef _GLIBCXX_DEBUG + inline namespace __debug { } +# endif + + // Inline namespaces for parallel mode. +# ifdef _GLIBCXX_PARALLEL + inline namespace __parallel { } +# endif +} + +// Check for invalid usage and unsupported mixed-mode use. +# if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL) +# error illegal use of multiple inlined namespaces +# endif + +// Check for invalid use due to lack for weak symbols. +# if __NO_INLINE__ && !__GXX_WEAK__ +# warning currently using inlined namespace mode which may fail \ + without inlining due to lack of weak symbols +# endif +#endif + +// Macros for namespace scope. Either namespace std:: or the name +// of some nested namespace within it corresponding to the active mode. +// _GLIBCXX_STD_A +// _GLIBCXX_STD_C +// +// Macros for opening/closing conditional namespaces. +// _GLIBCXX_BEGIN_NAMESPACE_ALGO +// _GLIBCXX_END_NAMESPACE_ALGO +// _GLIBCXX_BEGIN_NAMESPACE_CONTAINER +// _GLIBCXX_END_NAMESPACE_CONTAINER +#if defined(_GLIBCXX_DEBUG) +# define _GLIBCXX_STD_C __cxx1998 +# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \ + namespace _GLIBCXX_STD_C { +# define _GLIBCXX_END_NAMESPACE_CONTAINER } +#else +# define _GLIBCXX_STD_C std +# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER +# define _GLIBCXX_END_NAMESPACE_CONTAINER +#endif + +#ifdef _GLIBCXX_PARALLEL +# define _GLIBCXX_STD_A __cxx1998 +# define _GLIBCXX_BEGIN_NAMESPACE_ALGO \ + namespace _GLIBCXX_STD_A { +# define _GLIBCXX_END_NAMESPACE_ALGO } +#else +# define _GLIBCXX_STD_A std +# define _GLIBCXX_BEGIN_NAMESPACE_ALGO +# define _GLIBCXX_END_NAMESPACE_ALGO +#endif + +// GLIBCXX_ABI Deprecated +// Define if compatibility should be provided for -mlong-double-64. +#undef _GLIBCXX_LONG_DOUBLE_COMPAT + +// Define if compatibility should be provided for alternative 128-bit long +// double formats. Not possible for Clang until __ibm128 is supported. +#ifndef __clang__ +#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT +#endif + +// Inline namespaces for long double 128 modes. +#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ + && defined __LONG_DOUBLE_IEEE128__ +namespace std +{ + // Namespaces for 128-bit IEEE long double format on 64-bit POWER LE. + inline namespace __gnu_cxx_ieee128 { } + inline namespace __gnu_cxx11_ieee128 { } +} +# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128:: +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 { +# define _GLIBCXX_END_NAMESPACE_LDBL } +# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128:: +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 { +# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 } + +#else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128 + +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ +namespace std +{ + inline namespace __gnu_cxx_ldbl128 { } +} +# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ldbl128:: +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ldbl128 { +# define _GLIBCXX_END_NAMESPACE_LDBL } +#else +# define _GLIBCXX_NAMESPACE_LDBL +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL +# define _GLIBCXX_END_NAMESPACE_LDBL +#endif + +#if _GLIBCXX_USE_CXX11_ABI +# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11 +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11 +# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11 +#else +# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_LDBL +# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_LDBL +# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL +#endif + +#endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128 + +namespace std +{ +#pragma GCC visibility push(default) + // Internal version of std::is_constant_evaluated(). + // This can be used without checking if the compiler supports the feature. + // The macro _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED can be used to check if + // the compiler support is present to make this function work as expected. + _GLIBCXX_CONSTEXPR inline bool + __is_constant_evaluated() _GLIBCXX_NOEXCEPT + { +#if __cpp_if_consteval >= 202106L +# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1 + if consteval { return true; } else { return false; } +#elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated) +# define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1 + return __builtin_is_constant_evaluated(); +#else + return false; +#endif + } +#pragma GCC visibility pop +} + +// Debug Mode implies checking assertions. +#if defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_ASSERTIONS) +# define _GLIBCXX_ASSERTIONS 1 +#endif + +// Disable std::string explicit instantiation declarations in order to assert. +#ifdef _GLIBCXX_ASSERTIONS +# undef _GLIBCXX_EXTERN_TEMPLATE +# define _GLIBCXX_EXTERN_TEMPLATE -1 +#endif + + +#if _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED +# define __glibcxx_constexpr_assert(cond) \ + if (std::__is_constant_evaluated() && !bool(cond)) \ + __builtin_unreachable() /* precondition violation detected! */ +#else +# define __glibcxx_constexpr_assert(unevaluated) +#endif + +#define _GLIBCXX_VERBOSE_ASSERT 1 + +// Assert. +#if defined(_GLIBCXX_ASSERTIONS) \ + || defined(_GLIBCXX_PARALLEL) || defined(_GLIBCXX_PARALLEL_ASSERTIONS) +# ifdef _GLIBCXX_VERBOSE_ASSERT +namespace std +{ +#pragma GCC visibility push(default) + // Avoid the use of assert, because we're trying to keep the + // include out of the mix. + extern "C++" _GLIBCXX_NORETURN + void + __glibcxx_assert_fail(const char* __file, int __line, + const char* __function, const char* __condition) + _GLIBCXX_NOEXCEPT; +#pragma GCC visibility pop +} +#define __glibcxx_assert_impl(_Condition) \ + if (__builtin_expect(!bool(_Condition), false)) \ + { \ + __glibcxx_constexpr_assert(false); \ + std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \ + #_Condition); \ + } +# else // ! VERBOSE_ASSERT +# define __glibcxx_assert_impl(_Condition) \ + if (__builtin_expect(!bool(_Condition), false)) \ + { \ + __glibcxx_constexpr_assert(false); \ + __builtin_abort(); \ + } +# endif +#endif + +#if defined(_GLIBCXX_ASSERTIONS) +# define __glibcxx_assert(cond) \ + do { __glibcxx_assert_impl(cond); } while (false) +#else +# define __glibcxx_assert(cond) \ + do { __glibcxx_constexpr_assert(cond); } while (false) +#endif + +// Macro indicating that TSAN is in use. +#if __SANITIZE_THREAD__ +# define _GLIBCXX_TSAN 1 +#elif defined __has_feature +# if __has_feature(thread_sanitizer) +# define _GLIBCXX_TSAN 1 +# endif +#endif + +// Macros for race detectors. +// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) and +// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) should be used to explain +// atomic (lock-free) synchronization to race detectors: +// the race detector will infer a happens-before arc from the former to the +// latter when they share the same argument pointer. +// +// The most frequent use case for these macros (and the only case in the +// current implementation of the library) is atomic reference counting: +// void _M_remove_reference() +// { +// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount); +// if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0) +// { +// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount); +// _M_destroy(__a); +// } +// } +// The annotations in this example tell the race detector that all memory +// accesses occurred when the refcount was positive do not race with +// memory accesses which occurred after the refcount became zero. +#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE +# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) +#endif +#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER +# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) +#endif + +// Macros for C linkage: define extern "C" linkage only when using C++. +# define _GLIBCXX_BEGIN_EXTERN_C extern "C" { +# define _GLIBCXX_END_EXTERN_C } + +# define _GLIBCXX_USE_ALLOCATOR_NEW 1 + +#ifdef __SIZEOF_INT128__ +#if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__ +// If __int128 is supported, we expect __GLIBCXX_TYPE_INT_N_0 to be defined +// unless the compiler is in strict mode. If it's not defined and the strict +// macro is not defined, something is wrong. +#warning "__STRICT_ANSI__ seems to have been undefined; this is not supported" +#endif +#endif + +#else // !__cplusplus +# define _GLIBCXX_BEGIN_EXTERN_C +# define _GLIBCXX_END_EXTERN_C +#endif + + +// First includes. + +// Pick up any OS-specific definitions. +#include + +// Pick up any CPU-specific definitions. +#include + +// If platform uses neither visibility nor psuedo-visibility, +// specify empty default for namespace annotation macros. +#ifndef _GLIBCXX_PSEUDO_VISIBILITY +# define _GLIBCXX_PSEUDO_VISIBILITY(V) +#endif + +// Certain function definitions that are meant to be overridable from +// user code are decorated with this macro. For some targets, this +// macro causes these definitions to be weak. +#ifndef _GLIBCXX_WEAK_DEFINITION +# define _GLIBCXX_WEAK_DEFINITION +#endif + +// By default, we assume that __GXX_WEAK__ also means that there is support +// for declaring functions as weak while not defining such functions. This +// allows for referring to functions provided by other libraries (e.g., +// libitm) without depending on them if the respective features are not used. +#ifndef _GLIBCXX_USE_WEAK_REF +# define _GLIBCXX_USE_WEAK_REF __GXX_WEAK__ +#endif + +// Conditionally enable annotations for the Transactional Memory TS on C++11. +// Most of the following conditions are due to limitations in the current +// implementation. +#if __cplusplus >= 201103L && _GLIBCXX_USE_CXX11_ABI \ + && _GLIBCXX_USE_DUAL_ABI && __cpp_transactional_memory >= 201500L \ + && !_GLIBCXX_FULLY_DYNAMIC_STRING && _GLIBCXX_USE_WEAK_REF \ + && _GLIBCXX_USE_ALLOCATOR_NEW +#define _GLIBCXX_TXN_SAFE transaction_safe +#define _GLIBCXX_TXN_SAFE_DYN transaction_safe_dynamic +#else +#define _GLIBCXX_TXN_SAFE +#define _GLIBCXX_TXN_SAFE_DYN +#endif + +#if __cplusplus > 201402L +// In C++17 mathematical special functions are in namespace std. +# define _GLIBCXX_USE_STD_SPEC_FUNCS 1 +#elif __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0 +// For C++11 and C++14 they are in namespace std when requested. +# define _GLIBCXX_USE_STD_SPEC_FUNCS 1 +#endif + +// The remainder of the prewritten config is automatic; all the +// user hooks are listed above. + +// Create a boolean flag to be used to determine if --fast-math is set. +#ifdef __FAST_MATH__ +# define _GLIBCXX_FAST_MATH 1 +#else +# define _GLIBCXX_FAST_MATH 0 +#endif + +// This marks string literals in header files to be extracted for eventual +// translation. It is primarily used for messages in thrown exceptions; see +// src/functexcept.cc. We use __N because the more traditional _N is used +// for something else under certain OSes (see BADNAMES). +#define __N(msgid) (msgid) + +// For example, is known to #define min and max as macros... +#undef min +#undef max + +// N.B. these _GLIBCXX_USE_C99_XXX macros are defined unconditionally +// so they should be tested with #if not with #ifdef. +#if __cplusplus >= 201103L +# ifndef _GLIBCXX_USE_C99_MATH +# define _GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH +# endif +# ifndef _GLIBCXX_USE_C99_COMPLEX +# define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX +# endif +# ifndef _GLIBCXX_USE_C99_STDIO +# define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO +# endif +# ifndef _GLIBCXX_USE_C99_STDLIB +# define _GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB +# endif +# ifndef _GLIBCXX_USE_C99_WCHAR +# define _GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR +# endif +#else +# ifndef _GLIBCXX_USE_C99_MATH +# define _GLIBCXX_USE_C99_MATH _GLIBCXX98_USE_C99_MATH +# endif +# ifndef _GLIBCXX_USE_C99_COMPLEX +# define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX98_USE_C99_COMPLEX +# endif +# ifndef _GLIBCXX_USE_C99_STDIO +# define _GLIBCXX_USE_C99_STDIO _GLIBCXX98_USE_C99_STDIO +# endif +# ifndef _GLIBCXX_USE_C99_STDLIB +# define _GLIBCXX_USE_C99_STDLIB _GLIBCXX98_USE_C99_STDLIB +# endif +# ifndef _GLIBCXX_USE_C99_WCHAR +# define _GLIBCXX_USE_C99_WCHAR _GLIBCXX98_USE_C99_WCHAR +# endif +#endif + +// Unless explicitly specified, enable char8_t extensions only if the core +// language char8_t feature macro is defined. +#ifndef _GLIBCXX_USE_CHAR8_T +# ifdef __cpp_char8_t +# define _GLIBCXX_USE_CHAR8_T 1 +# endif +#endif +#ifdef _GLIBCXX_USE_CHAR8_T +# define __cpp_lib_char8_t 201907L +#endif + +/* Define if __float128 is supported on this host. */ +#if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__) +/* For powerpc64 don't use __float128 when it's the same type as long double. */ +# if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__)) +# define _GLIBCXX_USE_FLOAT128 1 +# endif +#endif + +// Define if float has the IEEE binary32 format. +#if __FLT_MANT_DIG__ == 24 \ + && __FLT_MIN_EXP__ == -125 \ + && __FLT_MAX_EXP__ == 128 +# define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1 +#endif + +// Define if double has the IEEE binary64 format. +#if __DBL_MANT_DIG__ == 53 \ + && __DBL_MIN_EXP__ == -1021 \ + && __DBL_MAX_EXP__ == 1024 +# define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1 +#endif + +#ifdef __has_builtin +# ifdef __is_identifier +// Intel and older Clang require !__is_identifier for some built-ins: +# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) || ! __is_identifier(B) +# else +# define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) +# endif +#endif + +#if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations) +# define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1 +#endif + +#if _GLIBCXX_HAS_BUILTIN(__is_aggregate) +# define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1 +#endif + +#if _GLIBCXX_HAS_BUILTIN(__is_same) +# define _GLIBCXX_HAVE_BUILTIN_IS_SAME 1 +#endif + +#if _GLIBCXX_HAS_BUILTIN(__builtin_launder) +# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1 +#endif + +#undef _GLIBCXX_HAS_BUILTIN + +// PSTL configuration + +#if __cplusplus >= 201703L +// This header is not installed for freestanding: +#if __has_include() +// Preserved here so we have some idea which version of upstream we've pulled in +// #define PSTL_VERSION 9000 + +// For now this defaults to being based on the presence of Thread Building Blocks +# ifndef _GLIBCXX_USE_TBB_PAR_BACKEND +# define _GLIBCXX_USE_TBB_PAR_BACKEND __has_include() +# endif +// This section will need some rework when a new (default) backend type is added +# if _GLIBCXX_USE_TBB_PAR_BACKEND +# define _PSTL_PAR_BACKEND_TBB +# else +# define _PSTL_PAR_BACKEND_SERIAL +# endif + +# define _PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition) +# define _PSTL_ASSERT_MSG(_Condition, _Message) __glibcxx_assert(_Condition) + +#include +#endif // __has_include +#endif // C++17 + +// End of prewritten config; the settings discovered at configure time follow. +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `acosf' function. */ +#define _GLIBCXX_HAVE_ACOSF 1 + +/* Define to 1 if you have the `acosl' function. */ +#define _GLIBCXX_HAVE_ACOSL 1 + +/* Define to 1 if you have the `aligned_alloc' function. */ +#define _GLIBCXX_HAVE_ALIGNED_ALLOC 1 + +/* Define if arc4random is available in . */ +#define _GLIBCXX_HAVE_ARC4RANDOM 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the `asinf' function. */ +#define _GLIBCXX_HAVE_ASINF 1 + +/* Define to 1 if you have the `asinl' function. */ +#define _GLIBCXX_HAVE_ASINL 1 + +/* Define to 1 if the target assembler supports .symver directive. */ +#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1 + +/* Define to 1 if you have the `atan2f' function. */ +#define _GLIBCXX_HAVE_ATAN2F 1 + +/* Define to 1 if you have the `atan2l' function. */ +#define _GLIBCXX_HAVE_ATAN2L 1 + +/* Define to 1 if you have the `atanf' function. */ +#define _GLIBCXX_HAVE_ATANF 1 + +/* Define to 1 if you have the `atanl' function. */ +#define _GLIBCXX_HAVE_ATANL 1 + +/* Defined if shared_ptr reference counting should use atomic operations. */ +#define _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1 + +/* Define to 1 if you have the `at_quick_exit' function. */ +#define _GLIBCXX_HAVE_AT_QUICK_EXIT 1 + +/* Define to 1 if the target assembler supports thread-local storage. */ +/* #undef _GLIBCXX_HAVE_CC_TLS */ + +/* Define to 1 if you have the `ceilf' function. */ +#define _GLIBCXX_HAVE_CEILF 1 + +/* Define to 1 if you have the `ceill' function. */ +#define _GLIBCXX_HAVE_CEILL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_COMPLEX_H 1 + +/* Define to 1 if you have the `cosf' function. */ +#define _GLIBCXX_HAVE_COSF 1 + +/* Define to 1 if you have the `coshf' function. */ +#define _GLIBCXX_HAVE_COSHF 1 + +/* Define to 1 if you have the `coshl' function. */ +#define _GLIBCXX_HAVE_COSHL 1 + +/* Define to 1 if you have the `cosl' function. */ +#define _GLIBCXX_HAVE_COSL 1 + +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#define _GLIBCXX_HAVE_DECL_STRNLEN 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_DIRENT_H 1 + +/* Define if dirfd is available in . */ +#define _GLIBCXX_HAVE_DIRFD 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_ENDIAN_H 1 + +/* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */ +#define _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_EXECINFO_H 1 + +/* Define to 1 if you have the `expf' function. */ +#define _GLIBCXX_HAVE_EXPF 1 + +/* Define to 1 if you have the `expl' function. */ +#define _GLIBCXX_HAVE_EXPL 1 + +/* Define to 1 if you have the `fabsf' function. */ +#define _GLIBCXX_HAVE_FABSF 1 + +/* Define to 1 if you have the `fabsl' function. */ +#define _GLIBCXX_HAVE_FABSL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_FCNTL_H 1 + +/* Define if fdopendir is available in . */ +#define _GLIBCXX_HAVE_FDOPENDIR 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_FENV_H 1 + +/* Define to 1 if you have the `finite' function. */ +#define _GLIBCXX_HAVE_FINITE 1 + +/* Define to 1 if you have the `finitef' function. */ +#define _GLIBCXX_HAVE_FINITEF 1 + +/* Define to 1 if you have the `finitel' function. */ +#define _GLIBCXX_HAVE_FINITEL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `floorf' function. */ +#define _GLIBCXX_HAVE_FLOORF 1 + +/* Define to 1 if you have the `floorl' function. */ +#define _GLIBCXX_HAVE_FLOORL 1 + +/* Define to 1 if you have the `fmodf' function. */ +#define _GLIBCXX_HAVE_FMODF 1 + +/* Define to 1 if you have the `fmodl' function. */ +#define _GLIBCXX_HAVE_FMODL 1 + +/* Define to 1 if you have the `fpclass' function. */ +/* #undef _GLIBCXX_HAVE_FPCLASS */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_FP_H */ + +/* Define to 1 if you have the `frexpf' function. */ +#define _GLIBCXX_HAVE_FREXPF 1 + +/* Define to 1 if you have the `frexpl' function. */ +#define _GLIBCXX_HAVE_FREXPL 1 + +/* Define if getentropy is available in . */ +#define _GLIBCXX_HAVE_GETENTROPY 1 + +/* Define if _Unwind_GetIPInfo is available. */ +#define _GLIBCXX_HAVE_GETIPINFO 1 + +/* Define if gets is available in before C++14. */ +#define _GLIBCXX_HAVE_GETS 1 + +/* Define to 1 if you have the `hypot' function. */ +#define _GLIBCXX_HAVE_HYPOT 1 + +/* Define to 1 if you have the `hypotf' function. */ +#define _GLIBCXX_HAVE_HYPOTF 1 + +/* Define to 1 if you have the `hypotl' function. */ +#define _GLIBCXX_HAVE_HYPOTL 1 + +/* Define if you have the iconv() function. */ +#define _GLIBCXX_HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_IEEEFP_H */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `isinf' function. */ +/* #undef _GLIBCXX_HAVE_ISINF */ + +/* Define to 1 if you have the `isinff' function. */ +#define _GLIBCXX_HAVE_ISINFF 1 + +/* Define to 1 if you have the `isinfl' function. */ +#define _GLIBCXX_HAVE_ISINFL 1 + +/* Define to 1 if you have the `isnan' function. */ +/* #undef _GLIBCXX_HAVE_ISNAN */ + +/* Define to 1 if you have the `isnanf' function. */ +#define _GLIBCXX_HAVE_ISNANF 1 + +/* Define to 1 if you have the `isnanl' function. */ +#define _GLIBCXX_HAVE_ISNANL 1 + +/* Defined if iswblank exists. */ +#define _GLIBCXX_HAVE_ISWBLANK 1 + +/* Define if LC_MESSAGES is available in . */ +#define _GLIBCXX_HAVE_LC_MESSAGES 1 + +/* Define to 1 if you have the `ldexpf' function. */ +#define _GLIBCXX_HAVE_LDEXPF 1 + +/* Define to 1 if you have the `ldexpl' function. */ +#define _GLIBCXX_HAVE_LDEXPL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LIBINTL_H 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_AS 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_DATA 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_FSIZE 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_RSS 1 + +/* Only used in build directory testsuite_hooks.h. */ +#define _GLIBCXX_HAVE_LIMIT_VMEM 0 + +/* Define if link is available in . */ +#define _GLIBCXX_HAVE_LINK 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LINK_H 1 + +/* Define if futex syscall is available. */ +#define _GLIBCXX_HAVE_LINUX_FUTEX 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LINUX_RANDOM_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LINUX_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `log10f' function. */ +#define _GLIBCXX_HAVE_LOG10F 1 + +/* Define to 1 if you have the `log10l' function. */ +#define _GLIBCXX_HAVE_LOG10L 1 + +/* Define to 1 if you have the `logf' function. */ +#define _GLIBCXX_HAVE_LOGF 1 + +/* Define to 1 if you have the `logl' function. */ +#define _GLIBCXX_HAVE_LOGL 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */ + +/* Define if mbstate_t exists in wchar.h. */ +#define _GLIBCXX_HAVE_MBSTATE_T 1 + +/* Define to 1 if you have the `memalign' function. */ +#define _GLIBCXX_HAVE_MEMALIGN 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `modf' function. */ +#define _GLIBCXX_HAVE_MODF 1 + +/* Define to 1 if you have the `modff' function. */ +#define _GLIBCXX_HAVE_MODFF 1 + +/* Define to 1 if you have the `modfl' function. */ +#define _GLIBCXX_HAVE_MODFL 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_NAN_H */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_NETINET_TCP_H 1 + +/* Define if defines obsolete isinf function. */ +/* #undef _GLIBCXX_HAVE_OBSOLETE_ISINF */ + +/* Define if defines obsolete isnan function. */ +/* #undef _GLIBCXX_HAVE_OBSOLETE_ISNAN */ + +/* Define if openat is available in . */ +#define _GLIBCXX_HAVE_OPENAT 1 + +/* Define if poll is available in . */ +#define _GLIBCXX_HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_POLL_H 1 + +/* Define to 1 if you have the `posix_memalign' function. */ +#define _GLIBCXX_HAVE_POSIX_MEMALIGN 1 + +/* Define to 1 if POSIX Semaphores with sem_timedwait are available in + . */ +#define _GLIBCXX_HAVE_POSIX_SEMAPHORE 1 + +/* Define to 1 if you have the `powf' function. */ +#define _GLIBCXX_HAVE_POWF 1 + +/* Define to 1 if you have the `powl' function. */ +#define _GLIBCXX_HAVE_POWL 1 + +/* Define to 1 if you have the `qfpclass' function. */ +/* #undef _GLIBCXX_HAVE_QFPCLASS */ + +/* Define to 1 if you have the `quick_exit' function. */ +#define _GLIBCXX_HAVE_QUICK_EXIT 1 + +/* Define if readlink is available in . */ +#define _GLIBCXX_HAVE_READLINK 1 + +/* Define to 1 if you have the `secure_getenv' function. */ +#define _GLIBCXX_HAVE_SECURE_GETENV 1 + +/* Define to 1 if you have the `setenv' function. */ +#define _GLIBCXX_HAVE_SETENV 1 + +/* Define to 1 if you have the `sincos' function. */ +#define _GLIBCXX_HAVE_SINCOS 1 + +/* Define to 1 if you have the `sincosf' function. */ +#define _GLIBCXX_HAVE_SINCOSF 1 + +/* Define to 1 if you have the `sincosl' function. */ +#define _GLIBCXX_HAVE_SINCOSL 1 + +/* Define to 1 if you have the `sinf' function. */ +#define _GLIBCXX_HAVE_SINF 1 + +/* Define to 1 if you have the `sinhf' function. */ +#define _GLIBCXX_HAVE_SINHF 1 + +/* Define to 1 if you have the `sinhl' function. */ +#define _GLIBCXX_HAVE_SINHL 1 + +/* Define to 1 if you have the `sinl' function. */ +#define _GLIBCXX_HAVE_SINL 1 + +/* Defined if sleep exists. */ +/* #undef _GLIBCXX_HAVE_SLEEP */ + +/* Define to 1 if you have the `sockatmark' function. */ +#define _GLIBCXX_HAVE_SOCKATMARK 1 + +/* Define to 1 if you have the `sqrtf' function. */ +#define _GLIBCXX_HAVE_SQRTF 1 + +/* Define to 1 if you have the `sqrtl' function. */ +#define _GLIBCXX_HAVE_SQRTL 1 + +/* Define if the header is supported. */ +#define _GLIBCXX_HAVE_STACKTRACE 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDALIGN_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STDLIB_H 1 + +/* Define if strerror_l is available in . */ +#define _GLIBCXX_HAVE_STRERROR_L 1 + +/* Define if strerror_r is available in . */ +#define _GLIBCXX_HAVE_STRERROR_R 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_STRING_H 1 + +/* Define to 1 if you have the `strtof' function. */ +#define _GLIBCXX_HAVE_STRTOF 1 + +/* Define to 1 if you have the `strtold' function. */ +#define _GLIBCXX_HAVE_STRTOLD 1 + +/* Define to 1 if `d_type' is a member of `struct dirent'. */ +#define _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1 + +/* Define if strxfrm_l is available in . */ +#define _GLIBCXX_HAVE_STRXFRM_L 1 + +/* Define if symlink is available in . */ +#define _GLIBCXX_HAVE_SYMLINK 1 + +/* Define to 1 if the target runtime linker supports binding the same symbol + to different versions. */ +#define _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_IPC_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have a suitable header file */ +#define _GLIBCXX_HAVE_SYS_SDT_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_SEM_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_STATVFS_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_SYSINFO_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_SYS_UIO_H 1 + +/* Define if S_IFREG is available in . */ +/* #undef _GLIBCXX_HAVE_S_IFREG */ + +/* Define if S_ISREG is available in . */ +#define _GLIBCXX_HAVE_S_ISREG 1 + +/* Define to 1 if you have the `tanf' function. */ +#define _GLIBCXX_HAVE_TANF 1 + +/* Define to 1 if you have the `tanhf' function. */ +#define _GLIBCXX_HAVE_TANHF 1 + +/* Define to 1 if you have the `tanhl' function. */ +#define _GLIBCXX_HAVE_TANHL 1 + +/* Define to 1 if you have the `tanl' function. */ +#define _GLIBCXX_HAVE_TANL 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_TGMATH_H 1 + +/* Define to 1 if you have the `timespec_get' function. */ +#define _GLIBCXX_HAVE_TIMESPEC_GET 1 + +/* Define to 1 if the target supports thread-local storage. */ +#define _GLIBCXX_HAVE_TLS 1 + +/* Define if truncate is available in . */ +#define _GLIBCXX_HAVE_TRUNCATE 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_UCHAR_H 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_UNISTD_H 1 + +/* Define if unlinkat is available in . */ +#define _GLIBCXX_HAVE_UNLINKAT 1 + +/* Define to 1 if you have the `uselocale' function. */ +#define _GLIBCXX_HAVE_USELOCALE 1 + +/* Defined if usleep exists. */ +/* #undef _GLIBCXX_HAVE_USLEEP */ + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_UTIME_H 1 + +/* Defined if vfwscanf exists. */ +#define _GLIBCXX_HAVE_VFWSCANF 1 + +/* Defined if vswscanf exists. */ +#define _GLIBCXX_HAVE_VSWSCANF 1 + +/* Defined if vwscanf exists. */ +#define _GLIBCXX_HAVE_VWSCANF 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_WCHAR_H 1 + +/* Defined if wcstof exists. */ +#define _GLIBCXX_HAVE_WCSTOF 1 + +/* Define to 1 if you have the header file. */ +#define _GLIBCXX_HAVE_WCTYPE_H 1 + +/* Defined if Sleep exists. */ +/* #undef _GLIBCXX_HAVE_WIN32_SLEEP */ + +/* Define if writev is available in . */ +#define _GLIBCXX_HAVE_WRITEV 1 + +/* Define to 1 if you have the header file. */ +/* #undef _GLIBCXX_HAVE_XLOCALE_H */ + +/* Define to 1 if you have the `_acosf' function. */ +/* #undef _GLIBCXX_HAVE__ACOSF */ + +/* Define to 1 if you have the `_acosl' function. */ +/* #undef _GLIBCXX_HAVE__ACOSL */ + +/* Define to 1 if you have the `_aligned_malloc' function. */ +/* #undef _GLIBCXX_HAVE__ALIGNED_MALLOC */ + +/* Define to 1 if you have the `_asinf' function. */ +/* #undef _GLIBCXX_HAVE__ASINF */ + +/* Define to 1 if you have the `_asinl' function. */ +/* #undef _GLIBCXX_HAVE__ASINL */ + +/* Define to 1 if you have the `_atan2f' function. */ +/* #undef _GLIBCXX_HAVE__ATAN2F */ + +/* Define to 1 if you have the `_atan2l' function. */ +/* #undef _GLIBCXX_HAVE__ATAN2L */ + +/* Define to 1 if you have the `_atanf' function. */ +/* #undef _GLIBCXX_HAVE__ATANF */ + +/* Define to 1 if you have the `_atanl' function. */ +/* #undef _GLIBCXX_HAVE__ATANL */ + +/* Define to 1 if you have the `_ceilf' function. */ +/* #undef _GLIBCXX_HAVE__CEILF */ + +/* Define to 1 if you have the `_ceill' function. */ +/* #undef _GLIBCXX_HAVE__CEILL */ + +/* Define to 1 if you have the `_cosf' function. */ +/* #undef _GLIBCXX_HAVE__COSF */ + +/* Define to 1 if you have the `_coshf' function. */ +/* #undef _GLIBCXX_HAVE__COSHF */ + +/* Define to 1 if you have the `_coshl' function. */ +/* #undef _GLIBCXX_HAVE__COSHL */ + +/* Define to 1 if you have the `_cosl' function. */ +/* #undef _GLIBCXX_HAVE__COSL */ + +/* Define to 1 if you have the `_expf' function. */ +/* #undef _GLIBCXX_HAVE__EXPF */ + +/* Define to 1 if you have the `_expl' function. */ +/* #undef _GLIBCXX_HAVE__EXPL */ + +/* Define to 1 if you have the `_fabsf' function. */ +/* #undef _GLIBCXX_HAVE__FABSF */ + +/* Define to 1 if you have the `_fabsl' function. */ +/* #undef _GLIBCXX_HAVE__FABSL */ + +/* Define to 1 if you have the `_finite' function. */ +/* #undef _GLIBCXX_HAVE__FINITE */ + +/* Define to 1 if you have the `_finitef' function. */ +/* #undef _GLIBCXX_HAVE__FINITEF */ + +/* Define to 1 if you have the `_finitel' function. */ +/* #undef _GLIBCXX_HAVE__FINITEL */ + +/* Define to 1 if you have the `_floorf' function. */ +/* #undef _GLIBCXX_HAVE__FLOORF */ + +/* Define to 1 if you have the `_floorl' function. */ +/* #undef _GLIBCXX_HAVE__FLOORL */ + +/* Define to 1 if you have the `_fmodf' function. */ +/* #undef _GLIBCXX_HAVE__FMODF */ + +/* Define to 1 if you have the `_fmodl' function. */ +/* #undef _GLIBCXX_HAVE__FMODL */ + +/* Define to 1 if you have the `_fpclass' function. */ +/* #undef _GLIBCXX_HAVE__FPCLASS */ + +/* Define to 1 if you have the `_frexpf' function. */ +/* #undef _GLIBCXX_HAVE__FREXPF */ + +/* Define to 1 if you have the `_frexpl' function. */ +/* #undef _GLIBCXX_HAVE__FREXPL */ + +/* Define to 1 if you have the `_hypot' function. */ +/* #undef _GLIBCXX_HAVE__HYPOT */ + +/* Define to 1 if you have the `_hypotf' function. */ +/* #undef _GLIBCXX_HAVE__HYPOTF */ + +/* Define to 1 if you have the `_hypotl' function. */ +/* #undef _GLIBCXX_HAVE__HYPOTL */ + +/* Define to 1 if you have the `_isinf' function. */ +/* #undef _GLIBCXX_HAVE__ISINF */ + +/* Define to 1 if you have the `_isinff' function. */ +/* #undef _GLIBCXX_HAVE__ISINFF */ + +/* Define to 1 if you have the `_isinfl' function. */ +/* #undef _GLIBCXX_HAVE__ISINFL */ + +/* Define to 1 if you have the `_isnan' function. */ +/* #undef _GLIBCXX_HAVE__ISNAN */ + +/* Define to 1 if you have the `_isnanf' function. */ +/* #undef _GLIBCXX_HAVE__ISNANF */ + +/* Define to 1 if you have the `_isnanl' function. */ +/* #undef _GLIBCXX_HAVE__ISNANL */ + +/* Define to 1 if you have the `_ldexpf' function. */ +/* #undef _GLIBCXX_HAVE__LDEXPF */ + +/* Define to 1 if you have the `_ldexpl' function. */ +/* #undef _GLIBCXX_HAVE__LDEXPL */ + +/* Define to 1 if you have the `_log10f' function. */ +/* #undef _GLIBCXX_HAVE__LOG10F */ + +/* Define to 1 if you have the `_log10l' function. */ +/* #undef _GLIBCXX_HAVE__LOG10L */ + +/* Define to 1 if you have the `_logf' function. */ +/* #undef _GLIBCXX_HAVE__LOGF */ + +/* Define to 1 if you have the `_logl' function. */ +/* #undef _GLIBCXX_HAVE__LOGL */ + +/* Define to 1 if you have the `_modf' function. */ +/* #undef _GLIBCXX_HAVE__MODF */ + +/* Define to 1 if you have the `_modff' function. */ +/* #undef _GLIBCXX_HAVE__MODFF */ + +/* Define to 1 if you have the `_modfl' function. */ +/* #undef _GLIBCXX_HAVE__MODFL */ + +/* Define to 1 if you have the `_powf' function. */ +/* #undef _GLIBCXX_HAVE__POWF */ + +/* Define to 1 if you have the `_powl' function. */ +/* #undef _GLIBCXX_HAVE__POWL */ + +/* Define to 1 if you have the `_qfpclass' function. */ +/* #undef _GLIBCXX_HAVE__QFPCLASS */ + +/* Define to 1 if you have the `_sincos' function. */ +/* #undef _GLIBCXX_HAVE__SINCOS */ + +/* Define to 1 if you have the `_sincosf' function. */ +/* #undef _GLIBCXX_HAVE__SINCOSF */ + +/* Define to 1 if you have the `_sincosl' function. */ +/* #undef _GLIBCXX_HAVE__SINCOSL */ + +/* Define to 1 if you have the `_sinf' function. */ +/* #undef _GLIBCXX_HAVE__SINF */ + +/* Define to 1 if you have the `_sinhf' function. */ +/* #undef _GLIBCXX_HAVE__SINHF */ + +/* Define to 1 if you have the `_sinhl' function. */ +/* #undef _GLIBCXX_HAVE__SINHL */ + +/* Define to 1 if you have the `_sinl' function. */ +/* #undef _GLIBCXX_HAVE__SINL */ + +/* Define to 1 if you have the `_sqrtf' function. */ +/* #undef _GLIBCXX_HAVE__SQRTF */ + +/* Define to 1 if you have the `_sqrtl' function. */ +/* #undef _GLIBCXX_HAVE__SQRTL */ + +/* Define to 1 if you have the `_tanf' function. */ +/* #undef _GLIBCXX_HAVE__TANF */ + +/* Define to 1 if you have the `_tanhf' function. */ +/* #undef _GLIBCXX_HAVE__TANHF */ + +/* Define to 1 if you have the `_tanhl' function. */ +/* #undef _GLIBCXX_HAVE__TANHL */ + +/* Define to 1 if you have the `_tanl' function. */ +/* #undef _GLIBCXX_HAVE__TANL */ + +/* Define to 1 if you have the `_wfopen' function. */ +/* #undef _GLIBCXX_HAVE__WFOPEN */ + +/* Define to 1 if you have the `__cxa_thread_atexit' function. */ +/* #undef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT */ + +/* Define to 1 if you have the `__cxa_thread_atexit_impl' function. */ +#define _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1 + +/* Define as const if the declaration of iconv() needs const. */ +#define _GLIBCXX_ICONV_CONST + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define _GLIBCXX_LT_OBJDIR ".libs/" + +/* Name of package */ +/* #undef _GLIBCXX_PACKAGE */ + +/* Define to the address where bug reports for this package should be sent. */ +#define _GLIBCXX_PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define _GLIBCXX_PACKAGE_NAME "package-unused" + +/* Define to the full name and version of this package. */ +#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused" + +/* Define to the one symbol short name of this package. */ +#define _GLIBCXX_PACKAGE_TARNAME "libstdc++" + +/* Define to the home page for this package. */ +#define _GLIBCXX_PACKAGE_URL "" + +/* Define to the version of this package. */ +#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused" + +/* The size of `char', as computed by sizeof. */ +/* #undef SIZEOF_CHAR */ + +/* The size of `int', as computed by sizeof. */ +/* #undef SIZEOF_INT */ + +/* The size of `long', as computed by sizeof. */ +/* #undef SIZEOF_LONG */ + +/* The size of `short', as computed by sizeof. */ +/* #undef SIZEOF_SHORT */ + +/* The size of `void *', as computed by sizeof. */ +/* #undef SIZEOF_VOID_P */ + +/* Define to 1 if you have the ANSI C header files. */ +#define _GLIBCXX_STDC_HEADERS 1 + +/* Version number of package */ +/* #undef _GLIBCXX_VERSION */ + +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _GLIBCXX_DARWIN_USE_64_BIT_INODE +# define _GLIBCXX_DARWIN_USE_64_BIT_INODE 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _GLIBCXX_FILE_OFFSET_BITS */ + +/* Define if C99 functions in should be used in for + C++11. Using compiler builtins for these functions requires corresponding + C99 library functions to be present. */ +#define _GLIBCXX11_USE_C99_COMPLEX 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++11. */ +#define _GLIBCXX11_USE_C99_MATH 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++11. */ +#define _GLIBCXX11_USE_C99_STDIO 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++11. */ +#define _GLIBCXX11_USE_C99_STDLIB 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++11. */ +#define _GLIBCXX11_USE_C99_WCHAR 1 + +/* Define if C99 functions in should be used in for + C++98. Using compiler builtins for these functions requires corresponding + C99 library functions to be present. */ +#define _GLIBCXX98_USE_C99_COMPLEX 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++98. */ +#define _GLIBCXX98_USE_C99_MATH 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++98. */ +#define _GLIBCXX98_USE_C99_STDIO 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++98. */ +#define _GLIBCXX98_USE_C99_STDLIB 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std for C++98. */ +#define _GLIBCXX98_USE_C99_WCHAR 1 + +/* Define if the compiler supports C++11 atomics. */ +#define _GLIBCXX_ATOMIC_BUILTINS 1 + +/* Define to use concept checking code from the boost libraries. */ +/* #undef _GLIBCXX_CONCEPT_CHECKS */ + +/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable, + undefined for platform defaults */ +#define _GLIBCXX_FULLY_DYNAMIC_STRING 0 + +/* Define if gthreads library is available. */ +#define _GLIBCXX_HAS_GTHREADS 1 + +/* Define to 1 if a full hosted library is built, or 0 if freestanding. */ +#define _GLIBCXX_HOSTED 1 + +/* Define if compatibility should be provided for alternative 128-bit long + double formats. */ + +/* Define if compatibility should be provided for -mlong-double-64. */ + +/* Define to the letter to which size_t is mangled. */ +#define _GLIBCXX_MANGLE_SIZE_T m + +/* Define if C99 llrint and llround functions are missing from . */ +/* #undef _GLIBCXX_NO_C99_ROUNDING_FUNCS */ + +/* Defined if no way to sleep is available. */ +/* #undef _GLIBCXX_NO_SLEEP */ + +/* Define if ptrdiff_t is int. */ +/* #undef _GLIBCXX_PTRDIFF_T_IS_INT */ + +/* Define if using setrlimit to set resource limits during "make check" */ +#define _GLIBCXX_RES_LIMITS 1 + +/* Define if size_t is unsigned int. */ +/* #undef _GLIBCXX_SIZE_T_IS_UINT */ + +/* Define to the value of the EOF integer constant. */ +#define _GLIBCXX_STDIO_EOF -1 + +/* Define to the value of the SEEK_CUR integer constant. */ +#define _GLIBCXX_STDIO_SEEK_CUR 1 + +/* Define to the value of the SEEK_END integer constant. */ +#define _GLIBCXX_STDIO_SEEK_END 2 + +/* Define to use symbol versioning in the shared library. */ +#define _GLIBCXX_SYMVER 1 + +/* Define to use darwin versioning in the shared library. */ +/* #undef _GLIBCXX_SYMVER_DARWIN */ + +/* Define to use GNU versioning in the shared library. */ +#define _GLIBCXX_SYMVER_GNU 1 + +/* Define to use GNU namespace versioning in the shared library. */ +/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */ + +/* Define to use Sun versioning in the shared library. */ +/* #undef _GLIBCXX_SYMVER_SUN */ + +/* Define if C11 functions in should be imported into namespace std + in . */ +#define _GLIBCXX_USE_C11_UCHAR_CXX11 1 + +/* Define if C99 functions or macros from , , , + , and can be used or exposed. */ +#define _GLIBCXX_USE_C99 1 + +/* Define if C99 functions in should be used in . + Using compiler builtins for these functions requires corresponding C99 + library functions to be present. */ +#define _GLIBCXX_USE_C99_COMPLEX_TR1 1 + +/* Define if C99 functions in should be imported in in + namespace std::tr1. */ +#define _GLIBCXX_USE_C99_CTYPE_TR1 1 + +/* Define if C99 functions in should be imported in in + namespace std::tr1. */ +#define _GLIBCXX_USE_C99_FENV_TR1 1 + +/* Define if C99 functions in should be imported in + in namespace std::tr1. */ +#define _GLIBCXX_USE_C99_INTTYPES_TR1 1 + +/* Define if wchar_t C99 functions in should be imported in + in namespace std::tr1. */ +#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1 + +/* Define if C99 functions or macros in should be imported in + in namespace std::tr1. */ +#define _GLIBCXX_USE_C99_MATH_TR1 1 + +/* Define if C99 types in should be imported in in + namespace std::tr1. */ +#define _GLIBCXX_USE_C99_STDINT_TR1 1 + +/* Defined if clock_gettime syscall has monotonic and realtime clock support. + */ +/* #undef _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL */ + +/* Defined if clock_gettime has monotonic clock support. */ +#define _GLIBCXX_USE_CLOCK_MONOTONIC 1 + +/* Defined if clock_gettime has realtime clock support. */ +#define _GLIBCXX_USE_CLOCK_REALTIME 1 + +/* Define if ISO/IEC TR 24733 decimal floating point types are supported on + this host. */ +#define _GLIBCXX_USE_DECIMAL_FLOAT 1 + +/* Define if /dev/random and /dev/urandom are available for + std::random_device. */ +#define _GLIBCXX_USE_DEV_RANDOM 1 + +/* Define if fchmod is available in . */ +#define _GLIBCXX_USE_FCHMOD 1 + +/* Define if fchmodat is available in . */ +#define _GLIBCXX_USE_FCHMODAT 1 + +/* Defined if gettimeofday is available. */ +#define _GLIBCXX_USE_GETTIMEOFDAY 1 + +/* Define if get_nprocs is available in . */ +#define _GLIBCXX_USE_GET_NPROCS 1 + +/* Define if LFS support is available. */ +#define _GLIBCXX_USE_LFS 1 + +/* Define if code specialized for long long should be used. */ +#define _GLIBCXX_USE_LONG_LONG 1 + +/* Define if lstat is available in . */ +#define _GLIBCXX_USE_LSTAT 1 + +/* Defined if nanosleep is available. */ +#define _GLIBCXX_USE_NANOSLEEP 1 + +/* Define if NLS translations are to be used. */ +#define _GLIBCXX_USE_NLS 1 + +/* Define if pthreads_num_processors_np is available in . */ +/* #undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP */ + +/* Define if pthread_cond_clockwait is available in . */ +#define _GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1 + +/* Define if pthread_mutex_clocklock is available in . */ +#define _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK 1 + +/* Define if pthread_rwlock_clockrdlock and pthread_rwlock_clockwrlock are + available in . */ +#define _GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1 + +/* Define if POSIX read/write locks are available in . */ +#define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1 + +/* Define if /dev/random and /dev/urandom are available for the random_device + of TR1 (Chapter 5.1). */ +#define _GLIBCXX_USE_RANDOM_TR1 1 + +/* Define if usable realpath is available in . */ +#define _GLIBCXX_USE_REALPATH 1 + +/* Defined if sched_yield is available. */ +#define _GLIBCXX_USE_SCHED_YIELD 1 + +/* Define if _SC_NPROCESSORS_ONLN is available in . */ +#define _GLIBCXX_USE_SC_NPROCESSORS_ONLN 1 + +/* Define if _SC_NPROC_ONLN is available in . */ +/* #undef _GLIBCXX_USE_SC_NPROC_ONLN */ + +/* Define if sendfile is available in . */ +#define _GLIBCXX_USE_SENDFILE 1 + +/* Define to restrict std::__basic_file<> to stdio APIs. */ +/* #undef _GLIBCXX_USE_STDIO_PURE */ + +/* Define if struct stat has timespec members. */ +#define _GLIBCXX_USE_ST_MTIM 1 + +/* Define if sysctl(), CTL_HW and HW_NCPU are available in . */ +/* #undef _GLIBCXX_USE_SYSCTL_HW_NCPU */ + +/* Define if obsolescent tmpnam is available in . */ +#define _GLIBCXX_USE_TMPNAM 1 + +/* Define if c8rtomb and mbrtoc8 functions in should be imported + into namespace std in for C++20. */ +#define _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1 + +/* Define if c8rtomb and mbrtoc8 functions in should be imported + into namespace std in for -fchar8_t. */ +#define _GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1 + +/* Define if utime is available in . */ +#define _GLIBCXX_USE_UTIME 1 + +/* Define if utimensat and UTIME_OMIT are available in and + AT_FDCWD in . */ +#define _GLIBCXX_USE_UTIMENSAT 1 + +/* Define if code specialized for wchar_t should be used. */ +#define _GLIBCXX_USE_WCHAR_T 1 + +/* Define to 1 if a verbose library is built, or 0 otherwise. */ +#define _GLIBCXX_VERBOSE 1 + +/* Defined if as can handle rdrand. */ +#define _GLIBCXX_X86_RDRAND 1 + +/* Defined if as can handle rdseed. */ +#define _GLIBCXX_X86_RDSEED 1 + +/* Define to 1 if mutex_timedlock is available. */ +#define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 + +/* Define for large files, on AIX-style hosts. */ +/* #undef _GLIBCXX_LARGE_FILES */ + +/* Define if all C++11 floating point overloads are available in . */ +#if __cplusplus >= 201103L +/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP */ +#endif + +/* Define if all C++11 integral type overloads are available in . */ +#if __cplusplus >= 201103L +/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO_INT */ +#endif + +#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF) +# define _GLIBCXX_HAVE_ACOSF 1 +# define acosf _acosf +#endif + +#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL) +# define _GLIBCXX_HAVE_ACOSL 1 +# define acosl _acosl +#endif + +#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF) +# define _GLIBCXX_HAVE_ASINF 1 +# define asinf _asinf +#endif + +#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL) +# define _GLIBCXX_HAVE_ASINL 1 +# define asinl _asinl +#endif + +#if defined (_GLIBCXX_HAVE__ATAN2F) && ! defined (_GLIBCXX_HAVE_ATAN2F) +# define _GLIBCXX_HAVE_ATAN2F 1 +# define atan2f _atan2f +#endif + +#if defined (_GLIBCXX_HAVE__ATAN2L) && ! defined (_GLIBCXX_HAVE_ATAN2L) +# define _GLIBCXX_HAVE_ATAN2L 1 +# define atan2l _atan2l +#endif + +#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF) +# define _GLIBCXX_HAVE_ATANF 1 +# define atanf _atanf +#endif + +#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL) +# define _GLIBCXX_HAVE_ATANL 1 +# define atanl _atanl +#endif + +#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF) +# define _GLIBCXX_HAVE_CEILF 1 +# define ceilf _ceilf +#endif + +#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL) +# define _GLIBCXX_HAVE_CEILL 1 +# define ceill _ceill +#endif + +#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF) +# define _GLIBCXX_HAVE_COSF 1 +# define cosf _cosf +#endif + +#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF) +# define _GLIBCXX_HAVE_COSHF 1 +# define coshf _coshf +#endif + +#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL) +# define _GLIBCXX_HAVE_COSHL 1 +# define coshl _coshl +#endif + +#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL) +# define _GLIBCXX_HAVE_COSL 1 +# define cosl _cosl +#endif + +#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF) +# define _GLIBCXX_HAVE_EXPF 1 +# define expf _expf +#endif + +#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL) +# define _GLIBCXX_HAVE_EXPL 1 +# define expl _expl +#endif + +#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF) +# define _GLIBCXX_HAVE_FABSF 1 +# define fabsf _fabsf +#endif + +#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL) +# define _GLIBCXX_HAVE_FABSL 1 +# define fabsl _fabsl +#endif + +#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE) +# define _GLIBCXX_HAVE_FINITE 1 +# define finite _finite +#endif + +#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF) +# define _GLIBCXX_HAVE_FINITEF 1 +# define finitef _finitef +#endif + +#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL) +# define _GLIBCXX_HAVE_FINITEL 1 +# define finitel _finitel +#endif + +#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF) +# define _GLIBCXX_HAVE_FLOORF 1 +# define floorf _floorf +#endif + +#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL) +# define _GLIBCXX_HAVE_FLOORL 1 +# define floorl _floorl +#endif + +#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF) +# define _GLIBCXX_HAVE_FMODF 1 +# define fmodf _fmodf +#endif + +#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL) +# define _GLIBCXX_HAVE_FMODL 1 +# define fmodl _fmodl +#endif + +#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS) +# define _GLIBCXX_HAVE_FPCLASS 1 +# define fpclass _fpclass +#endif + +#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF) +# define _GLIBCXX_HAVE_FREXPF 1 +# define frexpf _frexpf +#endif + +#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL) +# define _GLIBCXX_HAVE_FREXPL 1 +# define frexpl _frexpl +#endif + +#if defined (_GLIBCXX_HAVE__HYPOT) && ! defined (_GLIBCXX_HAVE_HYPOT) +# define _GLIBCXX_HAVE_HYPOT 1 +# define hypot _hypot +#endif + +#if defined (_GLIBCXX_HAVE__HYPOTF) && ! defined (_GLIBCXX_HAVE_HYPOTF) +# define _GLIBCXX_HAVE_HYPOTF 1 +# define hypotf _hypotf +#endif + +#if defined (_GLIBCXX_HAVE__HYPOTL) && ! defined (_GLIBCXX_HAVE_HYPOTL) +# define _GLIBCXX_HAVE_HYPOTL 1 +# define hypotl _hypotl +#endif + +#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF) +# define _GLIBCXX_HAVE_ISINF 1 +# define isinf _isinf +#endif + +#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF) +# define _GLIBCXX_HAVE_ISINFF 1 +# define isinff _isinff +#endif + +#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL) +# define _GLIBCXX_HAVE_ISINFL 1 +# define isinfl _isinfl +#endif + +#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN) +# define _GLIBCXX_HAVE_ISNAN 1 +# define isnan _isnan +#endif + +#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF) +# define _GLIBCXX_HAVE_ISNANF 1 +# define isnanf _isnanf +#endif + +#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL) +# define _GLIBCXX_HAVE_ISNANL 1 +# define isnanl _isnanl +#endif + +#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF) +# define _GLIBCXX_HAVE_LDEXPF 1 +# define ldexpf _ldexpf +#endif + +#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL) +# define _GLIBCXX_HAVE_LDEXPL 1 +# define ldexpl _ldexpl +#endif + +#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F) +# define _GLIBCXX_HAVE_LOG10F 1 +# define log10f _log10f +#endif + +#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L) +# define _GLIBCXX_HAVE_LOG10L 1 +# define log10l _log10l +#endif + +#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF) +# define _GLIBCXX_HAVE_LOGF 1 +# define logf _logf +#endif + +#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL) +# define _GLIBCXX_HAVE_LOGL 1 +# define logl _logl +#endif + +#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF) +# define _GLIBCXX_HAVE_MODF 1 +# define modf _modf +#endif + +#if defined (_GLIBCXX_HAVE__MODFF) && ! defined (_GLIBCXX_HAVE_MODFF) +# define _GLIBCXX_HAVE_MODFF 1 +# define modff _modff +#endif + +#if defined (_GLIBCXX_HAVE__MODFL) && ! defined (_GLIBCXX_HAVE_MODFL) +# define _GLIBCXX_HAVE_MODFL 1 +# define modfl _modfl +#endif + +#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF) +# define _GLIBCXX_HAVE_POWF 1 +# define powf _powf +#endif + +#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL) +# define _GLIBCXX_HAVE_POWL 1 +# define powl _powl +#endif + +#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS) +# define _GLIBCXX_HAVE_QFPCLASS 1 +# define qfpclass _qfpclass +#endif + +#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS) +# define _GLIBCXX_HAVE_SINCOS 1 +# define sincos _sincos +#endif + +#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF) +# define _GLIBCXX_HAVE_SINCOSF 1 +# define sincosf _sincosf +#endif + +#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL) +# define _GLIBCXX_HAVE_SINCOSL 1 +# define sincosl _sincosl +#endif + +#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF) +# define _GLIBCXX_HAVE_SINF 1 +# define sinf _sinf +#endif + +#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF) +# define _GLIBCXX_HAVE_SINHF 1 +# define sinhf _sinhf +#endif + +#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL) +# define _GLIBCXX_HAVE_SINHL 1 +# define sinhl _sinhl +#endif + +#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL) +# define _GLIBCXX_HAVE_SINL 1 +# define sinl _sinl +#endif + +#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF) +# define _GLIBCXX_HAVE_SQRTF 1 +# define sqrtf _sqrtf +#endif + +#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL) +# define _GLIBCXX_HAVE_SQRTL 1 +# define sqrtl _sqrtl +#endif + +#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF) +# define _GLIBCXX_HAVE_STRTOF 1 +# define strtof _strtof +#endif + +#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD) +# define _GLIBCXX_HAVE_STRTOLD 1 +# define strtold _strtold +#endif + +#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF) +# define _GLIBCXX_HAVE_TANF 1 +# define tanf _tanf +#endif + +#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF) +# define _GLIBCXX_HAVE_TANHF 1 +# define tanhf _tanhf +#endif + +#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL) +# define _GLIBCXX_HAVE_TANHL 1 +# define tanhl _tanhl +#endif + +#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL) +# define _GLIBCXX_HAVE_TANL 1 +# define tanl _tanl +#endif + +#endif // _GLIBCXX_CXX_CONFIG_H diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@c++config.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@c++config.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..ed934719fe9bff920c9f26c0fef047657db240c1 GIT binary patch literal 38019 zcmb7N3w%?>(r?<*LP4yhAa4TlD37+ZRzO~owrLwolaiz@AaE#c+6MZvO?e}N0=`fX z6-Ds@f)_y)6;M$DMNp6{3O+y-Me%_O0&?-Hq2GUZ&YtAt?M|(1ES;8`Qtz&-ZAh&xtM&3nN@YZJX;n#0MMUz<+9^}r zrC!f;cXDa}{>hc@k}`Mw6@HsMqqcsUr=}vg%u|ow*4ED&p~Eb~oZ8q>pX#Y8t!gZD zr~Pf1T1m^yRFAZbuW za$RY1m8Yh0W^zSMV=AXqTGuF*xywB@?gmDKX++DeysEauTa#Q`TU}jS6OvWAyTsdA zPc$?l2gt#BHh9aVk||;Mc|Fzc2G8s;3Yap>>u#7)QWsK~02P&1)s{}vQ4dEe@zz#* zN~IZ|GPhJ(+gRgu*Xz@S;GP<9GCrZTz$vrGrgqh3Sz=f zgz5h}FV`m5Vsc4+X{A23s#@l#Ya6FjU2y=gKGe|*4SyAva8?HEWw_z2tie;!;P&dU zBdtN4nJSiI9$|uptO(GyB!%U`23do<3e%T9A?6rsr7BNohae`0WG2m^j4)*M*)S=t zFcfH((x)zuS!Vg3vT*90QR4BISCw4JONMJnBby_VF{#veJ>FURGBH+c3U3T;!q97J zavj_NS&3#cDXC&}h(39FxK}rNb?k$iK?su-_MJ3uqd=jZ+$u!*xrbHwa0_@5(f~_NyY~FBJho*7|>(s+ojTx+VdVxh)Gyk-pB& zR6*JQTi3oG|9=AN$gpN;#PHTR5u;m8jwo$a88NL@T|`5x#)z45^CE7KyEkHK+^UGx zt=C4ZYrP?2W2-F@ue5qSVn?gp5%0G8DB?)#uOq%`{awTlalVm;2%pK&%I88k4yA;0 zmLbkJALUy7|3#Fq;{R`;+==o4%7gg+5XuvVD&My#f5!J0P+r3K%_1XwE%0fH&sCAF zd~Hy+McE!@CzL%<_C(niWiCn!N^4}C&w;W~{uD>H_RRyl5cP{t-i2}_$}Pa#hVo7P z{~eTj@c-{o{(=Ah7vP`EP`-|G2guO z3FTiX|3TS=($GA@7u~#-F9u}`lr2%VMj4N?4a&AC+oSA=vJ1*?D0`sniLwvMz9BhYEYQm!niud$}qJ+stZ=ZzRJD8=B5ij2l5-4_{c@I?Y{ z9T^j0Ve6Edk}BhLg!%|OjkV=OREK0roU78)U@R@EF-~zC8ynnZ#u*-OWo@I^SX$}E zd{|Rq^pqRDl}yy?I!~3m-q_GsS65r_ZQ$R^Q#hmJHddFE*4G-PT&pEBYwTDl&s1cV zEKVuQZgaX!HkV{BGFb~vE_1eup|_TJfl*v2Mn(vTsjdN2rV+T+CDYtsjW0!PZDfmS zV@ZP%ibOQxE=!5PzgAJ~+4S@CEeEWLn{#q{t*4As0S#4qYM|0Ujm9M=Fm(JZBEsMs zWJtiLr_TV@4l*>y=Rtfs7|>utM_%L6_h@JEWf(f+ zLp^rAp{s9*Atr+BpH0^@NTG-c>r3iqv6d=?ls=&ufprRg!TNSM83cNIWL!y&zw@9Z zhQ-ub=Eg#%zJx786l?HPp6+SzAg*QX(EIfbOm#|273D>t&7{xRrgiTbruLgZbe7!m zni96OC@FOtB?(iVR627eGhq~IX~sG8B6I zn;{zTJ*ZL8LXc(D66J0(C}I#bt0B>6HS{(Z@PtP&LUHEkpy?nq{8ya!~5n zlT+$v8070`$m5jyffC?AN)r;lZa?ku>fVA+};uo@Ks+#AVvm9B zTM6#+oZ5QKT5#QD2@S>uw|i(@rPo_GG&QxNv@``CG^Mt_BDI!>2W7RT4XMglO0B}2 z)!;=YV&<$0cTK8dcUU5NtE(_hqm*e$@!U$l5#1!5L6h(=O~QXE4w5<3C|@5q(>{id zaHf6WOotjGeR=pMkAIVgZ*Imnf8(3K`8R*#oA^jLT;XLS5K0@GMi_2?{_10A|0CtP z@*HMUwp8deOZkN^^H|Ac$v0)WAISF8kPSp2 z+9uF8#SR5+f=0@;51jnR`|2Z8*Qse|NwxxqJjc4T3q5d3>=5W z7Jwr`E}3KM_br}S>{zxUh-02PTN-CETbc3)>TptUh{F(Y7!o@Q90G&s3dbvpag+ze=>LVM@&n@CAH4g=jt6goCds_x zJHG$qi8XUKhU87-QK5w9=7nV)gioCNfODVNvEWS51etRu-%AUhx_UsYinGn?1Q+f2 zVTO)6qSzG_yYlfvkQhIMJLldTJA0|x9&9F?-Dx$O3qW^3Na+;}qTUJAJH-x%yabJs z&yuPoL|S)Cc74Fru-u!zf7;PO>WHnxJLoQ4$ig66m za*_ zgx2SnZAG$*(sjE+AQ6vm!QIUuc_lZZ5GjmbP@-VU?y7)^SqyIGZWok_9K_u-I}z zT|0C`AsPp=aDOFut>iYW$d}+bPKW{$RXu{559BR!Xa99+> z!cKxj*g0VRCp#|nDDVfiCYPNxBeT$gxx>chYz+q~2!}W<1BYdt13`jAqPyqpT}{6$ z!!N^yA@YyiJ?DL{&@M1#-E7LmG-GmLfUsCZYfnKq#vV!@pa&Zrqrhtv zZwEnR<&oIQ{!HiTcMMC?@RAv6+aVY+1Y-|ma;KG4xRV=e*k%A{H59Cd@@5ev;`?uR z_MF~k_F=_{C96xaXO7OcFt?}mO-ik?M+$38Dkq)>;%VGN5hNV;grsY~G29>ZiP8=W zb`gqbD*@z_G;T^&j}$BDCdUjxU&xTGpI@YZ=gqu3)<3rSCWRzrjWtQ~;tv}XV=XSp zf+-rDtQt;Xe?gYe58V63OaOO+Cd=ISZ_M!+I4%*Q!jZC6D-CWP931x@Xf|9$ZUfH{A5UO z#kY4CEUIo=)=%NbHG+OOBNAona_urqg+V%683q3y#g<_NiDlTJEv0vT(__&lHT5EA zu`|nLW7D1vb%8KKy0uNj2eV_Vy$^x)B2kVe+`hj2-6;y19w>o*JXf+dMAFHWx{>wgwAL z8cWjnT|=6Es}5 z$i(NG-gIm&^!EX8xd|J~VfvO=6Wx0BZ9VT>f<)i`Fys9bjW^c#eX=s-!;M@x40+_< z1G@Kcx&#TjvE_~bjPG0>L|2X>C9A2>hR_1~*2ctKfFML_LvmDtFFDEz-4IkD>n8hP zbll13ZC4MF8eLsG)$q(wUcAD+a0WbbPS5>Noo7h zLHnbaK@lVj$}sBe`Sbr88#LfdP79x9bX+#CCc2YBcQWsIf<(vvx9zZrhX=Ggs+L&v zC(c7SDdxLE$IFPst1nz+-zXc}K#)V$`hcR7<69@)a6-*Xqz#zI&<raBjaPItNGfSuZV`tU$O^yN+5R!wk^0lZBU*+*x-DTiAG@OuosNO@3ae*ARLn5BqTT)#g^6t ziP3DyiO#V-wDP}7%ltvAH9ONP*&T?)DYK;2wGOWTz>yz8CSvgYju`fL9>WrJr`!b( z9)EE6i%ox4s8tb%m?Dm=qRVR+dj55NSN~QW763;1eM9!OdfL0%7S{& ztx6lkl%iyQv_n*l61?&h2iO9qo)MUOM(}J0LAS}=pMC1ns^9K22Bj(kavjG4P#~#L;$~8YPtS#E)4DCjlR3vIL1}q5YZp+m2rqp(J#8jA^yoawYbF;zD%=LX+VbjDHM83fIgJL7?*Ap;J(7oAf#iLaZm zb<2l{UT3hi7002*U4=E%Rn3^O5+pjKD6jCP=LU@P=hPh72jk9}Wd^l@qQ9ExZh_z0 z!Z!~H5=#3#aZTSbkKgalak<9Y5FF;PgkTSigZ5V%d@o1F3@<6PxnbsD7duSI!>dW=!!XRl+%O3eI$kt*VvDm6 zwz;U#rF>U_)LI9pM!~6K98;??_Q>jCoWq(h15KF0eHuaIW#ykfeskf7^amCwtl$PE z6ZE1D8F&pl1j*>_LWr`@$dSw*`bwyYBw64*tiwP24y!?f@LqA;H zcTk}&pP7ca)&V}jNRABnxd;i|uBf{?O5%z#u-OF#JaG z;YX0r-!om7?3lJ`w?E8dqst%iviKS8(ncJi&WT6y*x4$cC?ZG%+~YUw%Y3S`)hUItRsn(Qj698}4TGt>+Ewa05XP z$!hH|`0ew(Kkl+r5sK>z&B+Th@$zbF?0PhIeKgBE6D0iG>Mg%De%yKMRzWvyFzu0; z#}=?KM59J^yel;wOOW#E9wPv?IWKu?v#(KsCt3`8)@N|*(T>?u>6*`?E} zby;Il1Vt%$$3ZOkhHE+^B&PpJInv4U$$jQV$3XLA3@k-L&~%yqCv89Y*N1NymMHxB zbre}Y+C3Mg)_*q#)E`ZJ6bU3e>CggQxQUEpi}jtw8_qZDTHQjS&wDnB1zK!D!_c_9SN|*TP=bMzfuNg2ZvO@#YIZjcz%i zCC)2j6AtR5sjRPYLY$G^4@$yR7VhFw@7~7l?1B^h zs&5PSGb6fB-XD+}YjCr@w6X*@QIhzUKsWf>ZjsDuFsOT^m=hBZFH8UBGdsDY*D*OiIH4rg$W8NrfaClX`Gt>e06^lVC~063mZy-XojQ zmo1-JKWjwh-%yY8ubq3i+cC;eJ-iyv#^H^4&Ko`t&wHES+jW#-Me`MSu8do09A$VW z?ioBc#BIQHOWYPbUypko&)spm@!TJ`A5Y%^Tre77z;Arbad)tJWDh_aF}rMxWZ!KA zw2ecrqxN-Pdj#Jd;ooH-b&(Op@NSK5jt_&T1DejDrk9#d_V{7Gb-ysC^nn4RR&o~R z=9-;s2G-;xLn0>O3>{O_!i0s$MdK+FTMz#-A?4GHmkI?N%~+QwDGeJPM1$`ajOt$u zEaNRha(C3Pm^!;+tJA*(v)Pe=F&DU`F@+{J4{8k|2*dDG{7>*y>?zZ%IM!vx;K#c7 z11_4=ut=c8LTraK%VjBI@wqmOu7^ycyd0yvoTmZ_5*o`K-=g~&?N0=w0c#gd`g6eSq}9Ty6~rM5J}1{$N-L3)B*vfYi?oVfDhl0%!- z9Gxuf%5q4WIh^wAR8N#wLQ5-oC`6F3=$*s5j{J4K^;3ni7y}@yU15q!|2@+P!-2#D z2s-ej4McY9bO=7UQ>tq^)E4`~Pz6W^ZoH>{lg zq^%Y*D*p_=YvA9m;i=gyukndDyIrN^kW~>#IA0bLQTVdi3A5p4@DwBSjf|o>b-TAK zE7G)#D@0ZS^{UumP2w8(89c>q-L74CoveQ7<&Hs$!x*&Kvs|>Lp|h#N(i$=nDe+e* z@z-dUq9RCG@%HWu*WU5!Q~t$}NFT66c~Gk+j+4{~2Hz`KX1x;0PBY1nY^~o#Ju~jd zH*b7ONDsaE1HiEA4~59p?~kgrltlm3Ce)&T@O)I3`B}MlV(qulI`QJ3+{O@^I1WO#+TTzV+R`wZI&_YY!jR$yJle3M5^5M^?pG; z)g7Bb-J>Q!p9D>jxtE+Dlz#ou_WogHvu9gy*2TdxecCuLpw@7I!u@Cod&;y{9)A3- z5z}}1)Gf(2XIa@9Oq&RiDqEJ#>@!HlOEXgfQ&K78@BEe(P! z9kgUO-sL5RHW1-y8iAp56^|u8hV&zzVrs}-@zbL%k2-ErsPpzh)8Uqlyqc8J3%P_| z&DgS$AmL+ATzqH1b;Va-P}60b+pGt*DNW9nR}^Sn{@8u$#urGbaYzx`0m(~ z!&8itAd!Zuo!n4-bH}9- z3T>`CBr?OS+gL489goJ3=j%3t#JcULipa%nKHvAce`rXMvz_9I6mF6+ePDX}z#(Zj zqTxN`d-jfGPeG>BmfqusZn<@}g3cPwjv(Sr4CrZxZa_T=n2Vi-+*o#+f*>(;n>wE! zdh?g%epgN-6VrVdi*mARqWc;e{u+-42oe@`ss2BE&p-0%P(@-2#v!css5(^seFPL!pQC1Dn`$EV(@L)mmsE0;ka~sk zC^QSO2?z;0D%~UEc2*I%24(9`tU~MXibP4`3(w?){t({n2;Ry6--x1di^4y4znt$A)Fg!uerC9?c!328`W z<5@1xNuD37Ox4@Jdqbg*eK=DgP6Nveb8yl|>OnYut5U7zVc|X}7Kly*3xEg``?JN{ zS8R)!;tLAnt@hk7!;saIvdpkXGarToiSe^}U++GNXD|J!G=>}_yjz%5hTl z9K-!4LBh(Xj;S(zd(dZrGL(M?yoo3dANIPDUd6ZW-TCybO=`X@KNxOwv1)412DE1b zA6*0qzMsUeylDRGypk7?iY!h`rp0P;vGt919`IKu6|qB}N-{+@Wd1r44=(D@VqaWW zM9CC$f*B42PmxSHb**pv;PYQi63tP?kYKDCgenBTHTc6tm_kiL4W?#1#i@jx+R}(^ zul~4CaFJ|whuKx=U_nr*)elvMXjM&Zy&G>at&vUqhJ+iCSi`ekHu0C1{rAvw1IN9k zFydC>;#Xa@j6@~%Oa^A?jAm>rk03Ec%}dNUa^cuXr$SSc47J-_CWN~z&6}-pG-0rj zNy3=fW+(zr8Is$P_*8MfUnjJ@L*W^y-w@W|uMVNKGB;k@Q_9|4B&%&=!bDgBp0j0k zzdrfGyZ0`*dZl0ox8lp8I2-G+l|=5JxIWW$@F? zvFdumtBJ3o0qiNOsp|CF)EQrWuB>+{WGZ%8T;?$80jeh(D}jxbG-Go%L4xwosG&z6 z&Z#}BsHVVaF3h&8oq%?^puvJKV5)fps(FNGp9m6}pwB;h`f$$;r~ESv9|76coGd!Q zqV0h|1Zu)+IL_5kEUG6+OudmyJG8Cpz2Rx43D{Z{x9hM)1AS{|M|QO*0L926MBiJO z9pB=!BSB(zY&mWByk}nT^q4~5Z=nHeUG1iu7L8WAEc2~(n}K5miD+ECG4|JV9cbZ8!JGTV0YZ{_Gw%2)=@3Lsm0{Xh={!QTD)IJbZ;okT7{; z&viqaUFF@bXp0B+>@8&hXFacnNkoj)_|(v-#P2Gs?yusxJ%YpnE_=YaDXW^VI;kiR z0M740fBg&@(BGXGY7drl>%T>jhqn|NMoI(ew3O71qw!ptOr`-SOXWm_b8jQr|$S8b}hQuM^YF-(u+JvhS`D zbOWxB>fQhi#vu+%A^B2%(~uz1`)l^?Ydd#(FMocYjqPk~zOcX^vTMD1AOg`Ijy@l5 zU|J!Fv=WKefwsa2H+p=V5CU(CWFsa0)5Vt`jJWBzXc3KhB>W1;%9mHd?Odqwi2ERn zoI!l&f*>(py%IaD>f8A0laj7{-<9vKt=gyI39PrA9I|G2liOFs;Bzh8h%f#qdtKUn4&+Jco18acv5~j60aB> zg3lCaZ;+uMJ}$7^@%5g~>85c($2zQ867C2(aTk@HxzNcu2OyE&5}>yPo^vKhq{9B} zI_}G|%0&rE4+RIIvPZb`?jIrIpg!zlH{bn}A=xMVy5y;EEVEkQr*PuK0*9&j0TeVv zJ0?{a)D9Qg;o^Hs1c@>E=iB$3@Lb-1z0zj@48E2)Cf|~8KopdnYTfPU*T*Z|`FzXH zl$bK@ItQ85D0Eufn1mOr)y^=||5yn1RpM7z$>LchH*~{<{e9|O1$7E5=QvvyW_O!q zyosG;#ULoa-6~woGv{D&13_(yxr&@a_@5-1cL#8#XAPmEg@jt?$v8SxUvZAXjUo4IGU(aQJkUL>MeQ2lnfO=A&gfL0s zIX8j?UuSxN<+mB={tLH%{UZtqmiZzBuv2xP6gxg0^MoTxAZ6Bfv_}`SN=r9Eo`J z#8B$Voi9Pc`F1#c=Yom%9vH3e4>|3wANSCv1YUDwzM_8Z|%D4Cti1sRkt*iK3D+m(4<&n}GKJPHPP0+1R z?A3+I3$t3Hx&b=bz{d$eVx0Wz(YfERPLc8ziJ3Fu3tgL2=j5*ngQ!n{pP#_*vk)Yv z$=PQQ4)vTmw@slg8wh_vh0fT9%<|aY1erH+nF$gy->~-j)mJ@H8g#QLZ(M<$t!i|Z z9=w{Q{RMP?;Y$yK#M0y1+yfsT>)&mNTH2g!cFCJw4x;tmG&cwoqW>D`zs5J%2ofoo z=4-dC-Dx>EMonMdy42AIt0k(NU~`*zW}hITjjiJ!Ut!GrZ$=PR`HDzUj*|}^?P8Wo zE^eD}G~yG7oLgKoc7l;0aqf9>e0k^8pWadq*ph$XZ?R$rue8wssfN7@OTMeS1A5uP zQyT;c4>)pC=WP#-jQ3}6#SObcM`+&~P;czP-^P-KL6gPbnnI8mG*x%KmG#(CbI_?V zew~WVU3x;Z>sDq`$J-G4Z7wuHLg?L-ifYbOxcp}?cz_b{E+?H3MqntJtbjc)p5J33 z`*Fl}$N5bGf<%<}M*jCNytVDDKg#1e#_mtrz|fissHf&+!iqBaEJToK&N2IA8Iwnz z2@01%;@Mj*NOfc73v zn;=2ESNFO(@7L^(3!=?-#JSz;(Iy0xuF~P(H|whajQtX~{hwS>whMKrD5b@!;+yOF!CkvQ2CcOB+`OBN2~Q@V%{K**+pc zBCcBVW#Z9|gI4TNc#w4Re!h;EWEYd<-aG`^4{@-(63Ko&tnqpt6A~n3Uw7@PZ?Zcq4O%9{2j_&oMaZf1YNERevajN@6C`AB zJ@eSJ)7x~Opq4$yAR1yocAa}qDNysc;nXfhrTw1pd4moa?Y}UKLN@o zIAwwaK0%a zjVZL?mBQ@RQu=&UXvAkG+B1{ipCL%_IUQed!*?Av`FC#p3m|c!LK}qz;b85|&%6&E z%DiO(V)g>QlTMIWy;S}FaGjUPX^@D=-I%)W=C9QuNQ?pJyYHPTt!qDD@Syn?PJ#uJI?)2FC8|F` z`#h;5-bR1E&Es~0MBIM#Xz5iG zbC2Jt=719gwwy3pp?abm0m>2FQV0^Vr@x-_@r5rvK}Ykko+!+6N$gxc-aM8qv2l!E z&DNyAxDG>M6W8P5dOX?%-%rq3c`bLZZ)?-};hX%~H%^Dk8>TO)o+w9waujb5L83iX zvvSrCOZhM>SW{RBht(9TC(12Axdo?8kf6LE?e7_{E;#7F@XBT8qcIF+swc{ALAfob zOpu`b@#d2|HqHLe3boAnnd}NR?S$yW^$H5n9|QVh_&_ z@mybq?B>~4q&7Dc#IO4F;*1$VTC?Y}L9a7qVDTUaAbDs>9$#P*q)Zuq?mjZX{MEy1 zs_Y^l8<$%1=8ELiq@fq#)?eho7(v3k-yU)%=CkZBi`8@yv9LQfdeWkns3t?&WG*d1 zLfZRh?ELYQMn}-TG^5HV3cX36*AwM|pgfSf5rTvpdHmlWZn|#8@wP$o+Otg9RAn)k zcEv|FC1Viv;h;X8?_8mZgJ)x2MA2LxejwK-96H=#8BA8wHMA0^on9fvIruJjA$D4+<*hlqQgN+8tio0 z9pl1jOJET7VzjB4Yl|SEt$ThfKKs$Rl(*GwVvCnBHp#1r?nKa?$d45gBy4hL_4ZGC z&YT&crpvP=*|eb4@d^qG(KjH8Vra&;CI}K<;rO_t4|$DS8`bn(x%^FwVQffX5cL#L zPvIBs2@+a)tl~c{Kk!_fs8DA!P3ZS2;jbN-97Fg%PLal|U-@SwMsLy+j5!uL{MPwCa}oYFo%zVJFX{z^CO zgfIHhYJkjiy2tneO$ej9%w;t=VF+MaGS5^UMqqE==!f-U=Qw2U%e8EMK zSP1VqKR|9)FDs@*k9y9Av;V&`u3y(+6E zsxu+$Ozu?)5>#L4|99`a+XpL~6to!OMsLpN`Up2J7z)vkhSbq~To5G2#l)Upe%ZV+ zCCF7!qnV_(|tdq}GMGx*xzEI}K7 zmLR(4`s#=S#r`uBe3U`@uy$4~+u2=c+g-eE1c|ntZtPsv`E-Y%2u78G(24u}IMlBD z!Qp-$_YoxGz7%(}`7hSK93;2$M?aVc(c$37Ar5~buK9~^GZ7>>94x9=k?*l<84K@z3&2OTSs7)O5t_eUQ z`Tquwzj^YFAdz@jXq!^B_{8RDMSi+~81OP~?O0c%&|Ci|Ahw^tx3LK#{TT2klAGhh z-g+Ei_+V=Cr8WH&P9!Ma8fAkh~WQg0eQx66~; zgE)-Km%~iGz90mmeG;@!^1dKQ^u?0Gmp0}-S>(U{tUey-e{rq${UAD+2Hza$Yz}`H zhz!X-%d`38A9tBAoCs=%3-9B1Iq;_RFq%?us5Lv#njKtI1PM(&d*fQkdnU`jVNQL) zvsvNdHOhAh|Gp2@_wjg*AQ71y{OrK0`;J}}v;@awnVrdr>-2++K$4e(b~*0{f8bLXPwr6AFLbpr#oo#OKY!k<75<~e+cvs@s%7wVs1*S`S#RLXKwl?6#ej;VdRBo z4ukq(t{H-aW^zYA_D%NNzbS|A`DqSZX|>=;7~Skc-)dtT7NV)Js0~f<=1tt26C}L( zbC(N7%z69$Y)u01c_kj-PeX@3>(=HblemIj?Ho8OKi^3?_@%uW}HAXPVi19 zNObZC$s?EM{`KxXN;4FnnU6!Uyqoo05u7jK5Qjg(;ZHum2oeMA>uDFp){I{sw7bkh zsBtXONJkuW!b%ky@rg$$70>r+2@;x${CvRCe%sd8DlO4FMrX>w3-F*gZB{4jFXVG~ z4LEn#5IGsq6+z{)r+Vtahg0j~Uj9j8ul9AgP@-J^(H>IL#l_zNf@j>$--jzhGQTl9 zF6KPjC3T#_Pw6@NZLIxvpw9O5G4FbtBUw#qbE%*526ku z^=}r1i4bHY;?WKoY1fQxEfORm1k3xQI{iGVSFixg}@T-5(U8voTPJ`!6g+(;Msph3I#H{2lmegCIe_cDiZAyVjUXS{+#m@V9fq z)8{Be|1A38EO#aZ3Hrr-zdSm*U6){+#AOZSSwLN9w!>8phCsBtLH2IV*u5cw#B7(l zzwL~K%4>pGjj(lRff;FeGux%p`ddCKn6(Qm;*tg~Y5cD(5G3Y{OGo-lo7#O?kUPZc zGfZ^PYKdxpQ0>pxrUZ%TKK;_nNjsO#KNhTa{uj+~2Rak4MaPZ^{`3~+O-G@Pk4|S{ zfjo;;Y7!OlSpQ#sPm=wB9{VABCbUY>TzO2U?CIIcyCr`wbf^4dSLR0IQ-nx0()Lxa zC-zotRZEUt92@&10r-hd?oVJ4_rcK1V4k-jNQ~KmE$;iGYBVb-W)FERqr z9tzq+xxEl1>?P)%ox+ zfCzw5P0-{SO?}Ohk<1q2ol+bkA7u~~-x4JHc6s5DZ*Lp$#tnjYz)_+wnE)*o>8cW;S0xX<2ok>F`)`i4e&?%R zZ3GwUgQA=({#_#(gQ#241}nE9f`kQin7ina%|jmcZyU47)|$gMVEiZP1CPm|jwmJ| z`t%uqstq{laWE&#YKv^IvSS|h_(aLI=IFO5*q(~N@i)!Tc!Rym2!yQ z!j|^hI69y{DJ3PPuX6tdFHa~kNhSxDC=xr_|6$^X2ovxWce9_G_Q~N%w|0JBt#&$o zAI2%j2-J*1G^3C=gCNli=eAu_BBp+RCYZJ}>~f$ui`5h5v7kJb-^?XQ4sQMr@3BOh literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h new file mode 100644 index 0000000..31cfe23 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h @@ -0,0 +1,33 @@ +// Specific definitions for generic platforms -*- C++ -*- + +// Copyright (C) 2005-2022 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . + +/** @file bits/cpu_defines.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{iosfwd} + */ + +#ifndef _GLIBCXX_CPU_DEFINES +#define _GLIBCXX_CPU_DEFINES 1 + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@cpu_defines.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..3d68a20fcd83e31a5d7befea281c0ebe81b8a5d8 GIT binary patch literal 2815 zcmai0OK#gR5LJpEpxbVO0NE5xX(fSSWYKP#Iz@n>C{VP>j-V*YVl0sYNyTV`W#8IO)flc(tea74MW`tx`0Q>Y6|rJQqyxx_^) zU@=Ic14w%{x&B1WN(Gw*>5?dxBiCFnnZ1~shS<3Yb>5k;4b{TV#jdCw`vIuER(74V z(fs2KEYtP2M6hdAWYY|!Y?-;%AViW zFJa)7q6XGLr;@EhPAYpt!r|BBUbiNo4<`eUWHddUS(TcKU3lLd;;KoeRfW_j?jSX4ghjm-b6~^ zZ}0KP;p<. + +/** @file bits/os_defines.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{iosfwd} + */ + +#ifndef _GLIBCXX_OS_DEFINES +#define _GLIBCXX_OS_DEFINES 1 + +// System-specific #define, typedefs, corrections, etc, go here. This +// file will come before all others. + +// This keeps isalnum, et al from being propagated as macros. +#define __NO_CTYPE 1 + +#include + +// Provide a declaration for the possibly deprecated gets function, as +// glibc 2.15 and later does not declare gets for ISO C11 when +// __GNU_SOURCE is defined. +#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE) +# undef _GLIBCXX_HAVE_GETS +#endif + +// Glibc 2.23 removed the obsolete isinf and isnan declarations. Check the +// version dynamically in case it has changed since libstdc++ was configured. +#define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23) + +#if __GLIBC_PREREQ(2, 27) +// Since glibc 2.27 pthread_self() is usable without linking to libpthread. +# define _GLIBCXX_NATIVE_THREAD_ID pthread_self() +#else +// Before then it was in libc.so.6 but not libc.a, and always returns 0, +// which breaks the invariant this_thread::get_id() != thread::id{}. +// So only use it if we know the libpthread version is available. +// Otherwise use (__gthread_t)1 as the ID of the main (and only) thread. +# define _GLIBCXX_NATIVE_THREAD_ID \ + (__gthread_active_p() ? __gthread_self() : (__gthread_t)1) +#endif + +#if __GLIBC_PREREQ(2, 34) +// Since glibc 2.34 all pthreads functions are usable without linking to +// libpthread. +# define _GLIBCXX_GTHREAD_USE_WEAK 0 +#endif + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@os_defines.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@c++@12.2.0@x86_64-pc-linux-gnu@bits@os_defines.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..7ac0abcb3578e22951cd9d14bb223d8b7121e19b GIT binary patch literal 3283 zcma)8&u<$=6kZ34a^MgZB;Zn65Ftal-q=YkgjA(YylGbiJB6HTrF1>(+#Ek<;oVoQ6Xm~Tbw%2%OO{C1h^WOWu`QER6*LeP% z8c&UaVGY=bSc4c3t#U}lEV7u#xID@O<3;SdLEkXXS@%A{oIW5X-q|q+#PvwH#@C#% za7cr`>Cq5;Svb9}0W)kXjzWtD*pEG80fJSjmaFAm>-@bMs_mO&Z2B~a&&_@iTV2W{ zVS`!FqkSMLpRyc*Psc>uT)qF<)1@2fEN&wUp;0&DE+>d9P5&2-ag03DqXCJOL?m3# zXD$y+%tj*?D4}}9<#CwASfQNZA;U%7LvA+*kJAx}=))WVx>HV~i91%3$w-8KhKCw? zq?yavh+;IM9zmGJ0Vkn8CJ?6qH{oBcf{aK4kGcWqDId5ZMur@4bA4U%GIj_ZJ14fD zR#FWS4`a*`72<`_m|&#?SV2YSQ3H3SXNFJ;#YalR1VVY0sRRsS`n0R4{R|L7J!t6K zz9xgw6#59NH}5&JQ&Pe!G6Dfh4hXBVU*0X(<{b>=+)%dWlRt*q2E>dFDM6H>UL3%1 zVL_x}nt7AVPp;V@gz02P12-g|DU+)dGZS-`5Yacf%uDmsFr0|KSQj->UqdyM$|RE_ zni$Ee(+X6^>BKc*UWMvurGCx>*Iz>u=0r~Z$6Tr@RW#iY5A@M|CPqDryZ+h+5INN7 zlC=L4N?w&g^$Od(DvM}8B3uKPs0MV-mmp`GNDx(CWYk6|7eO>xM0{9)`aohZGUQYB zK$tBDQ?RM+=Y-M22o`HvA=y&;=*gIr8-aRxa!y>zd%nAFO6I*J7CXX(r4n$;r+Q8T zO04i$UBaL%Hpegqk}6qQCay1bh(3JU?xUD%>O+=+qGV_Fvs5PQ_Z56FdD_J-i$uv) zd=y1I?nY*wrrB0jhFQ#^6`>aIPRZWIT2X6M+%=5C z;pM}|hB$8-7X@&;`1R3iKY#V`ryu5S&3ecA*hVRW(@@6#uTe489>E~!mEHlMYnQJ9 z5S-l<=$psi{@v`n`PTxdg<6O0)`{J*k<)gX$8a|5P1LyCtbgbn0q*I_o0|DPMU+HG zr)Tz=eY;e>THO<5DqEF%8{+&jB~yC+^Gi>D`R5sc%>Q24+1%N_QP|tugY#hX0M3i= zV)Xl;rGr-x0_3C4-BTOPU!BvM|5~g7%J$aw_J%l1Da!ZH9{qUli{D!FC%4+DVIMn9 byA5I9o`;#Gb#X1@UD>))+bF>KeiH9rQWv}} literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h new file mode 100644 index 0000000..eee1dcc --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h @@ -0,0 +1,329 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * ISO C99 Standard 7.4: Character handling + */ + +#ifndef _CTYPE_H +#define _CTYPE_H 1 + +#include +#include + +__BEGIN_DECLS + +#ifndef _ISbit +/* These are all the characteristics of characters. + If there get to be more than 16 distinct characteristics, + many things must be changed that use `unsigned short int's. + + The characteristics are stored always in network byte order (big + endian). We define the bit value interpretations here dependent on the + machine's byte order. */ + +# include +# if __BYTE_ORDER == __BIG_ENDIAN +# define _ISbit(bit) (1 << (bit)) +# else /* __BYTE_ORDER == __LITTLE_ENDIAN */ +# define _ISbit(bit) ((bit) < 8 ? ((1 << (bit)) << 8) : ((1 << (bit)) >> 8)) +# endif + +enum +{ + _ISupper = _ISbit (0), /* UPPERCASE. */ + _ISlower = _ISbit (1), /* lowercase. */ + _ISalpha = _ISbit (2), /* Alphabetic. */ + _ISdigit = _ISbit (3), /* Numeric. */ + _ISxdigit = _ISbit (4), /* Hexadecimal numeric. */ + _ISspace = _ISbit (5), /* Whitespace. */ + _ISprint = _ISbit (6), /* Printing. */ + _ISgraph = _ISbit (7), /* Graphical. */ + _ISblank = _ISbit (8), /* Blank (usually SPC and TAB). */ + _IScntrl = _ISbit (9), /* Control character. */ + _ISpunct = _ISbit (10), /* Punctuation. */ + _ISalnum = _ISbit (11) /* Alphanumeric. */ +}; +#endif /* ! _ISbit */ + +/* These are defined in ctype-info.c. + The declarations here must match those in localeinfo.h. + + In the thread-specific locale model (see `uselocale' in ) + we cannot use global variables for these as was done in the past. + Instead, the following accessor functions return the address of + each variable, which is local to the current thread if multithreaded. + + These point into arrays of 384, so they can be indexed by any `unsigned + char' value [0,255]; by EOF (-1); or by any `signed char' value + [-128,-1). ISO C requires that the ctype functions work for `unsigned + char' values and for EOF; we also support negative `signed char' values + for broken old programs. The case conversion arrays are of `int's + rather than `unsigned char's because tolower (EOF) must be EOF, which + doesn't fit into an `unsigned char'. But today more important is that + the arrays are also used for multi-byte character sets. */ +extern const unsigned short int **__ctype_b_loc (void) + __THROW __attribute__ ((__const__)); +extern const __int32_t **__ctype_tolower_loc (void) + __THROW __attribute__ ((__const__)); +extern const __int32_t **__ctype_toupper_loc (void) + __THROW __attribute__ ((__const__)); + + +#ifndef __cplusplus +# define __isctype(c, type) \ + ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type) +#elif defined __USE_EXTERN_INLINES +# define __isctype_f(type) \ + __extern_inline int \ + is##type (int __c) __THROW \ + { \ + return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _IS##type; \ + } +#endif + +#define __isascii(c) (((c) & ~0x7f) == 0) /* If C is a 7 bit value. */ +#define __toascii(c) ((c) & 0x7f) /* Mask off high bits. */ + +#define __exctype(name) extern int name (int) __THROW + +/* The following names are all functions: + int isCHARACTERISTIC(int c); + which return nonzero iff C has CHARACTERISTIC. + For the meaning of the characteristic names, see the `enum' above. */ +__exctype (isalnum); +__exctype (isalpha); +__exctype (iscntrl); +__exctype (isdigit); +__exctype (islower); +__exctype (isgraph); +__exctype (isprint); +__exctype (ispunct); +__exctype (isspace); +__exctype (isupper); +__exctype (isxdigit); + + +/* Return the lowercase version of C. */ +extern int tolower (int __c) __THROW; + +/* Return the uppercase version of C. */ +extern int toupper (int __c) __THROW; + + +/* ISO C99 introduced one new function. */ +#ifdef __USE_ISOC99 +__exctype (isblank); +#endif + +#ifdef __USE_GNU +/* Test C for a set of character classes according to MASK. */ +extern int isctype (int __c, int __mask) __THROW; +#endif + +#if defined __USE_MISC || defined __USE_XOPEN + +/* Return nonzero iff C is in the ASCII set + (i.e., is no more than 7 bits wide). */ +extern int isascii (int __c) __THROW; + +/* Return the part of C that is in the ASCII set + (i.e., the low-order 7 bits of C). */ +extern int toascii (int __c) __THROW; + +/* These are the same as `toupper' and `tolower' except that they do not + check the argument for being in the range of a `char'. */ +__exctype (_toupper); +__exctype (_tolower); +#endif /* Use X/Open or use misc. */ + +/* This code is needed for the optimized mapping functions. */ +#define __tobody(c, f, a, args) \ + (__extension__ \ + ({ int __res; \ + if (sizeof (c) > 1) \ + { \ + if (__builtin_constant_p (c)) \ + { \ + int __c = (c); \ + __res = __c < -128 || __c > 255 ? __c : (a)[__c]; \ + } \ + else \ + __res = f args; \ + } \ + else \ + __res = (a)[(int) (c)]; \ + __res; })) + +#if !defined __NO_CTYPE +# ifdef __isctype_f +__isctype_f (alnum) +__isctype_f (alpha) +__isctype_f (cntrl) +__isctype_f (digit) +__isctype_f (lower) +__isctype_f (graph) +__isctype_f (print) +__isctype_f (punct) +__isctype_f (space) +__isctype_f (upper) +__isctype_f (xdigit) +# ifdef __USE_ISOC99 +__isctype_f (blank) +# endif +# elif defined __isctype +# define isalnum(c) __isctype((c), _ISalnum) +# define isalpha(c) __isctype((c), _ISalpha) +# define iscntrl(c) __isctype((c), _IScntrl) +# define isdigit(c) __isctype((c), _ISdigit) +# define islower(c) __isctype((c), _ISlower) +# define isgraph(c) __isctype((c), _ISgraph) +# define isprint(c) __isctype((c), _ISprint) +# define ispunct(c) __isctype((c), _ISpunct) +# define isspace(c) __isctype((c), _ISspace) +# define isupper(c) __isctype((c), _ISupper) +# define isxdigit(c) __isctype((c), _ISxdigit) +# ifdef __USE_ISOC99 +# define isblank(c) __isctype((c), _ISblank) +# endif +# endif + +# ifdef __USE_EXTERN_INLINES +__extern_inline int +__NTH (tolower (int __c)) +{ + return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; +} + +__extern_inline int +__NTH (toupper (int __c)) +{ + return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; +} +# endif + +# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus +# define tolower(c) __tobody (c, tolower, *__ctype_tolower_loc (), (c)) +# define toupper(c) __tobody (c, toupper, *__ctype_toupper_loc (), (c)) +# endif /* Optimizing gcc */ + +# if defined __USE_MISC || defined __USE_XOPEN +# define isascii(c) __isascii (c) +# define toascii(c) __toascii (c) + +# define _tolower(c) ((int) (*__ctype_tolower_loc ())[(int) (c)]) +# define _toupper(c) ((int) (*__ctype_toupper_loc ())[(int) (c)]) +# endif + +#endif /* Not __NO_CTYPE. */ + + +#ifdef __USE_XOPEN2K8 +/* POSIX.1-2008 extended locale interface (see locale.h). */ +# include + +/* These definitions are similar to the ones above but all functions + take as an argument a handle for the locale which shall be used. */ +# define __isctype_l(c, type, locale) \ + ((locale)->__ctype_b[(int) (c)] & (unsigned short int) type) + +# define __exctype_l(name) \ + extern int name (int, locale_t) __THROW + +/* The following names are all functions: + int isCHARACTERISTIC(int c, locale_t *locale); + which return nonzero iff C has CHARACTERISTIC. + For the meaning of the characteristic names, see the `enum' above. */ +__exctype_l (isalnum_l); +__exctype_l (isalpha_l); +__exctype_l (iscntrl_l); +__exctype_l (isdigit_l); +__exctype_l (islower_l); +__exctype_l (isgraph_l); +__exctype_l (isprint_l); +__exctype_l (ispunct_l); +__exctype_l (isspace_l); +__exctype_l (isupper_l); +__exctype_l (isxdigit_l); + +__exctype_l (isblank_l); + + +/* Return the lowercase version of C in locale L. */ +extern int __tolower_l (int __c, locale_t __l) __THROW; +extern int tolower_l (int __c, locale_t __l) __THROW; + +/* Return the uppercase version of C. */ +extern int __toupper_l (int __c, locale_t __l) __THROW; +extern int toupper_l (int __c, locale_t __l) __THROW; + +# if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus +# define __tolower_l(c, locale) \ + __tobody (c, __tolower_l, (locale)->__ctype_tolower, (c, locale)) +# define __toupper_l(c, locale) \ + __tobody (c, __toupper_l, (locale)->__ctype_toupper, (c, locale)) +# define tolower_l(c, locale) __tolower_l ((c), (locale)) +# define toupper_l(c, locale) __toupper_l ((c), (locale)) +# endif /* Optimizing gcc */ + + +# ifndef __NO_CTYPE +# define __isalnum_l(c,l) __isctype_l((c), _ISalnum, (l)) +# define __isalpha_l(c,l) __isctype_l((c), _ISalpha, (l)) +# define __iscntrl_l(c,l) __isctype_l((c), _IScntrl, (l)) +# define __isdigit_l(c,l) __isctype_l((c), _ISdigit, (l)) +# define __islower_l(c,l) __isctype_l((c), _ISlower, (l)) +# define __isgraph_l(c,l) __isctype_l((c), _ISgraph, (l)) +# define __isprint_l(c,l) __isctype_l((c), _ISprint, (l)) +# define __ispunct_l(c,l) __isctype_l((c), _ISpunct, (l)) +# define __isspace_l(c,l) __isctype_l((c), _ISspace, (l)) +# define __isupper_l(c,l) __isctype_l((c), _ISupper, (l)) +# define __isxdigit_l(c,l) __isctype_l((c), _ISxdigit, (l)) + +# define __isblank_l(c,l) __isctype_l((c), _ISblank, (l)) + +# ifdef __USE_MISC +# define __isascii_l(c,l) ((l), __isascii (c)) +# define __toascii_l(c,l) ((l), __toascii (c)) +# endif + +# define isalnum_l(c,l) __isalnum_l ((c), (l)) +# define isalpha_l(c,l) __isalpha_l ((c), (l)) +# define iscntrl_l(c,l) __iscntrl_l ((c), (l)) +# define isdigit_l(c,l) __isdigit_l ((c), (l)) +# define islower_l(c,l) __islower_l ((c), (l)) +# define isgraph_l(c,l) __isgraph_l ((c), (l)) +# define isprint_l(c,l) __isprint_l ((c), (l)) +# define ispunct_l(c,l) __ispunct_l ((c), (l)) +# define isspace_l(c,l) __isspace_l ((c), (l)) +# define isupper_l(c,l) __isupper_l ((c), (l)) +# define isxdigit_l(c,l) __isxdigit_l ((c), (l)) + +# define isblank_l(c,l) __isblank_l ((c), (l)) + +# ifdef __USE_MISC +# define isascii_l(c,l) __isascii_l ((c), (l)) +# define toascii_l(c,l) __toascii_l ((c), (l)) +# endif + +# endif /* Not __NO_CTYPE. */ + +#endif /* Use POSIX 2008. */ + +__END_DECLS + +#endif /* ctype.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@ctype.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..08f0be32b1907930b0e8e096e7b53688f5a82d74 GIT binary patch literal 14556 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 Ptj2@Ycw%KjoYnsU_{dW& literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h new file mode 100644 index 0000000..f919846 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h @@ -0,0 +1,72 @@ +/* Copyright (C) 1992-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _ENDIAN_H +#define _ENDIAN_H 1 + +#include + +/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */ +#include + +#ifdef __USE_MISC +# define LITTLE_ENDIAN __LITTLE_ENDIAN +# define BIG_ENDIAN __BIG_ENDIAN +# define PDP_ENDIAN __PDP_ENDIAN +# define BYTE_ORDER __BYTE_ORDER +#endif + +#if defined __USE_MISC && !defined __ASSEMBLER__ +/* Conversion interfaces. */ +# include +# include + +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define htobe16(x) __bswap_16 (x) +# define htole16(x) __uint16_identity (x) +# define be16toh(x) __bswap_16 (x) +# define le16toh(x) __uint16_identity (x) + +# define htobe32(x) __bswap_32 (x) +# define htole32(x) __uint32_identity (x) +# define be32toh(x) __bswap_32 (x) +# define le32toh(x) __uint32_identity (x) + +# define htobe64(x) __bswap_64 (x) +# define htole64(x) __uint64_identity (x) +# define be64toh(x) __bswap_64 (x) +# define le64toh(x) __uint64_identity (x) + +# else +# define htobe16(x) __uint16_identity (x) +# define htole16(x) __bswap_16 (x) +# define be16toh(x) __uint16_identity (x) +# define le16toh(x) __bswap_16 (x) + +# define htobe32(x) __uint32_identity (x) +# define htole32(x) __bswap_32 (x) +# define be32toh(x) __uint32_identity (x) +# define le32toh(x) __bswap_32 (x) + +# define htobe64(x) __uint64_identity (x) +# define htole64(x) __bswap_64 (x) +# define be64toh(x) __uint64_identity (x) +# define le64toh(x) __bswap_64 (x) +# endif +#endif + +#endif /* endian.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@endian.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..bff878251e40e18e0bbf674937319c8276c809bc GIT binary patch literal 3838 zcma)8OKjXk81@Db3W%uMm;z}dMTJc^ZM@Fzrh5QUm68n&3Z<>mLr;Srvsn|bz1ZU> zDWXE^4V6O<6%h}W3m`=ZB2mGi2O_GLLlID^yd@-pS}sKt5C<*||Ja_j9Y2OMXcYEylmoIZUPHdVjEH)iwUMyL-ZQ7!#nnbjTj5$HoEUXaIT6#PMpW7!owk2wYqB|-U6|&UErKZO!;*m9Ci_~k22(@IJNCYF2 zxV3>L%GgeHx;PEpl!zfHW~*fy>D!3b!nSrYgOI#Lu)QF)Gca7rif$_NDRe`T!7fQp z3ky;Kl4eB3)R~%|sizaNiK-byfPYrxE^9CONTWJfb{i|{s1h+-nt~QI6(hxT41%rn z&Dc;i$uO{;6%3r2j^Ksr^CPXqjh3RHqm{jPb!uKU6Vz(fyDAe zX}nbH)I20avgRnywIAj$M~dEFvPDJ3jVzs-7M4`OZb}wb1y`5!kbQ2}0xie%ZBcb; z6J+KdB2$DWu)vl8eQ70kWk_?DH$Xli>0Nk0|7C^mPXwBstlYGTtCJgASr7 zo9_37Ln!k)^1?AKHT8ycizM-sIm3Z33rDtvtm+8&Y$6OC0PU9O>YR}14Z5j|Ta1ly z_NC%NcmxEuOc~Oh#Yo0jFMzugakv1TOiadop>K<+xHndCxxL(EAIJ4?epdMWwW+K3 zFE@#)L-%nU*Y_~glV;!{f2p`QI)o5KfD4V)>=3MST&~QQclA&^%WdZ1-OcYt-Z1|i zyuJeO%5gZlxXRskq@0HB@uod5)u0X?~TPP_Ea z8Ou#%wE}d)bwNc-RBR8w2O3k51N)Mk4F1(#SdwKxi;O z2!y~gLdzSPaN_H?hi0Z{XJ_g`a05)Ghy&mv&wx0P9~kSQcE;E0?{D(wufIOBsN-@i zR%7l`P-ErV)*2h-M`6A$eWjNcF$A0~A^OIiM-&;cWm%=!muCMSFzyZr}K3#dC@0~T_QFrph u;-Yy9B#dWdgdYJouuQ`3{TH1JFMhk>!o_Ns&XE8vK19a&F@OW>!~F-s<4eZ? literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h new file mode 100644 index 0000000..84d56ee --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h @@ -0,0 +1,37 @@ +/* Features part to handle 64-bit time_t support. + Copyright (C) 2021-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* We need to know the word size in order to check the time size. */ +#include +#include + +#if defined _TIME_BITS +# if _TIME_BITS == 64 +# if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64 +# error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" +# elif __TIMESIZE == 32 +# define __USE_TIME_BITS64 1 +# endif +# elif _TIME_BITS == 32 +# if __TIMESIZE > 32 +# error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32" +# endif +# else +# error Invalid _TIME_BITS value (can only be 32 or 64-bit) +# endif +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features-time64.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..fdf3efe9d67fd6613f898c320a8f6b641af4e500 GIT binary patch literal 2447 zcma)8OODhq5Y51rH77s_A>3x9R_|a35)z!javXQZ(~ce4WtwKi0XPS1PBC}jG6;Xt zqlC7dS!7kESFc{ZD(7|c_s!jp`{t&>y&gF39XsNU;iI-#cN(w-;}|%@H>`QeBvpsU zWTKNcN1+a=6NWR;=KQXJ-@M1p8Y~o(uH%@&dE}cuv06l00Tzd-#e@v41qz%%Hg(Tw zU~IF&h_jcPfOBi?kl#y_-^!Wh zm$`Z5uT-w^@cUP5f4T@^I3A!=B^QWXbZ)BvRp=S{m-=53lhzNk`jfFE+m zjSk3P;&6^b%Fi#qmL{1CD-M=Jfp+LL0p~hYc(PpH%3d>u zM!&$x1>s3v+yN@X%TR`&7HV+7zm>Bxmdsk9`U)jwwCRcuV>CdP#X&j$L*ZJBYO>E) zH4Ebl_*Ke=9x7y`Y3ku(tc3B^^. */ + +#ifndef _FEATURES_H +#define _FEATURES_H 1 + +/* These are defined by the user (or the compiler) + to specify the desired environment: + + __STRICT_ANSI__ ISO Standard C. + _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. + _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. + _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. + __STDC_WANT_LIB_EXT2__ + Extensions to ISO C99 from TR 27431-2:2010. + __STDC_WANT_IEC_60559_BFP_EXT__ + Extensions to ISO C11 from TS 18661-1:2014. + __STDC_WANT_IEC_60559_FUNCS_EXT__ + Extensions to ISO C11 from TS 18661-4:2015. + __STDC_WANT_IEC_60559_TYPES_EXT__ + Extensions to ISO C11 from TS 18661-3:2015. + __STDC_WANT_IEC_60559_EXT__ + ISO C2X interfaces defined only in Annex F. + + _POSIX_SOURCE IEEE Std 1003.1. + _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; + if >=199309L, add IEEE Std 1003.1b-1993; + if >=199506L, add IEEE Std 1003.1c-1995; + if >=200112L, all of IEEE 1003.1-2004 + if >=200809L, all of IEEE 1003.1-2008 + _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if + Single Unix conformance is wanted, to 600 for the + sixth revision, to 700 for the seventh revision. + _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. + _LARGEFILE_SOURCE Some more functions for correct standard I/O. + _LARGEFILE64_SOURCE Additional functionality from LFS for large files. + _FILE_OFFSET_BITS=N Select default filesystem interface. + _ATFILE_SOURCE Additional *at interfaces. + _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) + MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. + _GNU_SOURCE All of the above, plus GNU extensions. + _DEFAULT_SOURCE The default set of features (taking precedence over + __STRICT_ANSI__). + + _FORTIFY_SOURCE Add security hardening to many library functions. + Set to 1 or 2; 2 performs stricter checks than 1. + + _REENTRANT, _THREAD_SAFE + Obsolete; equivalent to _POSIX_C_SOURCE=199506L. + + The `-ansi' switch to the GNU C compiler, and standards conformance + options such as `-std=c99', define __STRICT_ANSI__. If none of + these are defined, or if _DEFAULT_SOURCE is defined, the default is + to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to + 200809L, as well as enabling miscellaneous functions from BSD and + SVID. If more than one of these are defined, they accumulate. For + example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together + give you ISO C, 1003.1, and 1003.2, but nothing else. + + These are defined by this file and are used by the + header files to decide what to declare or define: + + __GLIBC_USE (F) Define things from feature set F. This is defined + to 1 or 0; the subsequent macros are either defined + or undefined, and those tests should be moved to + __GLIBC_USE. + __USE_ISOC11 Define ISO C11 things. + __USE_ISOC99 Define ISO C99 things. + __USE_ISOC95 Define ISO C90 AMD1 (C95) things. + __USE_ISOCXX11 Define ISO C++11 things. + __USE_POSIX Define IEEE Std 1003.1 things. + __USE_POSIX2 Define IEEE Std 1003.2 things. + __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. + __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. + __USE_XOPEN Define XPG things. + __USE_XOPEN_EXTENDED Define X/Open Unix things. + __USE_UNIX98 Define Single Unix V2 things. + __USE_XOPEN2K Define XPG6 things. + __USE_XOPEN2KXSI Define XPG6 XSI things. + __USE_XOPEN2K8 Define XPG7 things. + __USE_XOPEN2K8XSI Define XPG7 XSI things. + __USE_LARGEFILE Define correct standard I/O things. + __USE_LARGEFILE64 Define LFS things with separate names. + __USE_FILE_OFFSET64 Define 64bit interface as default. + __USE_MISC Define things from 4.3BSD or System V Unix. + __USE_ATFILE Define *at interfaces and AT_* constants for them. + __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) + MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. + __USE_GNU Define GNU extensions. + __USE_FORTIFY_LEVEL Additional security measures used, according to level. + + The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are + defined by this file unconditionally. `__GNU_LIBRARY__' is provided + only for compatibility. All new code should use the other symbols + to test for features. + + All macros listed above as possibly being defined by this file are + explicitly undefined if they are not explicitly defined. + Feature-test macros that are not defined by the user or compiler + but are implied by the other feature-test macros defined (or by the + lack of any definitions) are defined by the file. + + ISO C feature test macros depend on the definition of the macro + when an affected header is included, not when the first system + header is included, and so they are handled in + , which does not have a multiple include + guard. Feature test macros that can be handled from the first + system header included are handled here. */ + + +/* Undefine everything, so we get a clean slate. */ +#undef __USE_ISOC11 +#undef __USE_ISOC99 +#undef __USE_ISOC95 +#undef __USE_ISOCXX11 +#undef __USE_POSIX +#undef __USE_POSIX2 +#undef __USE_POSIX199309 +#undef __USE_POSIX199506 +#undef __USE_XOPEN +#undef __USE_XOPEN_EXTENDED +#undef __USE_UNIX98 +#undef __USE_XOPEN2K +#undef __USE_XOPEN2KXSI +#undef __USE_XOPEN2K8 +#undef __USE_XOPEN2K8XSI +#undef __USE_LARGEFILE +#undef __USE_LARGEFILE64 +#undef __USE_FILE_OFFSET64 +#undef __USE_MISC +#undef __USE_ATFILE +#undef __USE_DYNAMIC_STACK_SIZE +#undef __USE_GNU +#undef __USE_FORTIFY_LEVEL +#undef __KERNEL_STRICT_NAMES +#undef __GLIBC_USE_ISOC2X +#undef __GLIBC_USE_DEPRECATED_GETS +#undef __GLIBC_USE_DEPRECATED_SCANF + +/* Suppress kernel-name space pollution unless user expressedly asks + for it. */ +#ifndef _LOOSE_KERNEL_NAMES +# define __KERNEL_STRICT_NAMES +#endif + +/* Convenience macro to test the version of gcc. + Use like this: + #if __GNUC_PREREQ (2,8) + ... code requiring gcc 2.8 or later ... + #endif + Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was + added in 2.0. */ +#if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +# define __GNUC_PREREQ(maj, min) 0 +#endif + +/* Similarly for clang. Features added to GCC after version 4.2 may + or may not also be available in clang, and clang's definitions of + __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such + features can be queried via __has_extension/__has_feature. */ +#if defined __clang_major__ && defined __clang_minor__ +# define __glibc_clang_prereq(maj, min) \ + ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) +#else +# define __glibc_clang_prereq(maj, min) 0 +#endif + +/* Whether to use feature set F. */ +#define __GLIBC_USE(F) __GLIBC_USE_ ## F + +/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for + _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not + issue a warning; the expectation is that the source is being + transitioned to use the new macro. */ +#if (defined _BSD_SOURCE || defined _SVID_SOURCE) \ + && !defined _DEFAULT_SOURCE +# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" +# undef _DEFAULT_SOURCE +# define _DEFAULT_SOURCE 1 +#endif + +/* If _GNU_SOURCE was defined by the user, turn on all the other features. */ +#ifdef _GNU_SOURCE +# undef _ISOC95_SOURCE +# define _ISOC95_SOURCE 1 +# undef _ISOC99_SOURCE +# define _ISOC99_SOURCE 1 +# undef _ISOC11_SOURCE +# define _ISOC11_SOURCE 1 +# undef _ISOC2X_SOURCE +# define _ISOC2X_SOURCE 1 +# undef _POSIX_SOURCE +# define _POSIX_SOURCE 1 +# undef _POSIX_C_SOURCE +# define _POSIX_C_SOURCE 200809L +# undef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +# undef _XOPEN_SOURCE_EXTENDED +# define _XOPEN_SOURCE_EXTENDED 1 +# undef _LARGEFILE64_SOURCE +# define _LARGEFILE64_SOURCE 1 +# undef _DEFAULT_SOURCE +# define _DEFAULT_SOURCE 1 +# undef _ATFILE_SOURCE +# define _ATFILE_SOURCE 1 +# undef _DYNAMIC_STACK_SIZE_SOURCE +# define _DYNAMIC_STACK_SIZE_SOURCE 1 +#endif + +/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, + define _DEFAULT_SOURCE. */ +#if (defined _DEFAULT_SOURCE \ + || (!defined __STRICT_ANSI__ \ + && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \ + && !defined _ISOC2X_SOURCE \ + && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \ + && !defined _XOPEN_SOURCE)) +# undef _DEFAULT_SOURCE +# define _DEFAULT_SOURCE 1 +#endif + +/* This is to enable the ISO C2X extension. */ +#if (defined _ISOC2X_SOURCE \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L)) +# define __GLIBC_USE_ISOC2X 1 +#else +# define __GLIBC_USE_ISOC2X 0 +#endif + +/* This is to enable the ISO C11 extension. */ +#if (defined _ISOC11_SOURCE || defined _ISOC2X_SOURCE \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)) +# define __USE_ISOC11 1 +#endif + +/* This is to enable the ISO C99 extension. */ +#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ + || defined _ISOC2X_SOURCE \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) +# define __USE_ISOC99 1 +#endif + +/* This is to enable the ISO C90 Amendment 1:1995 extension. */ +#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ + || defined _ISOC2X_SOURCE \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L)) +# define __USE_ISOC95 1 +#endif + +#ifdef __cplusplus +/* This is to enable compatibility for ISO C++17. */ +# if __cplusplus >= 201703L +# define __USE_ISOC11 1 +# endif +/* This is to enable compatibility for ISO C++11. + Check the temporary macro for now, too. */ +# if __cplusplus >= 201103L || defined __GXX_EXPERIMENTAL_CXX0X__ +# define __USE_ISOCXX11 1 +# define __USE_ISOC99 1 +# endif +#endif + +/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE + is defined, use POSIX.1-2008 (or another version depending on + _XOPEN_SOURCE). */ +#ifdef _DEFAULT_SOURCE +# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE +# define __USE_POSIX_IMPLICITLY 1 +# endif +# undef _POSIX_SOURCE +# define _POSIX_SOURCE 1 +# undef _POSIX_C_SOURCE +# define _POSIX_C_SOURCE 200809L +#endif + +#if ((!defined __STRICT_ANSI__ \ + || (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \ + && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE) +# define _POSIX_SOURCE 1 +# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500 +# define _POSIX_C_SOURCE 2 +# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600 +# define _POSIX_C_SOURCE 199506L +# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700 +# define _POSIX_C_SOURCE 200112L +# else +# define _POSIX_C_SOURCE 200809L +# endif +# define __USE_POSIX_IMPLICITLY 1 +#endif + +/* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be + defined in all multithreaded code. GNU libc has not required this + for many years. We now treat them as compatibility synonyms for + _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with + comprehensive support for multithreaded code. Using them never + lowers the selected level of POSIX conformance, only raises it. */ +#if ((!defined _POSIX_C_SOURCE || (_POSIX_C_SOURCE - 0) < 199506L) \ + && (defined _REENTRANT || defined _THREAD_SAFE)) +# define _POSIX_SOURCE 1 +# undef _POSIX_C_SOURCE +# define _POSIX_C_SOURCE 199506L +#endif + +#if (defined _POSIX_SOURCE \ + || (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \ + || defined _XOPEN_SOURCE) +# define __USE_POSIX 1 +#endif + +#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE +# define __USE_POSIX2 1 +#endif + +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L +# define __USE_POSIX199309 1 +#endif + +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L +# define __USE_POSIX199506 1 +#endif + +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L +# define __USE_XOPEN2K 1 +# undef __USE_ISOC95 +# define __USE_ISOC95 1 +# undef __USE_ISOC99 +# define __USE_ISOC99 1 +#endif + +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L +# define __USE_XOPEN2K8 1 +# undef _ATFILE_SOURCE +# define _ATFILE_SOURCE 1 +#endif + +#ifdef _XOPEN_SOURCE +# define __USE_XOPEN 1 +# if (_XOPEN_SOURCE - 0) >= 500 +# define __USE_XOPEN_EXTENDED 1 +# define __USE_UNIX98 1 +# undef _LARGEFILE_SOURCE +# define _LARGEFILE_SOURCE 1 +# if (_XOPEN_SOURCE - 0) >= 600 +# if (_XOPEN_SOURCE - 0) >= 700 +# define __USE_XOPEN2K8 1 +# define __USE_XOPEN2K8XSI 1 +# endif +# define __USE_XOPEN2K 1 +# define __USE_XOPEN2KXSI 1 +# undef __USE_ISOC95 +# define __USE_ISOC95 1 +# undef __USE_ISOC99 +# define __USE_ISOC99 1 +# endif +# else +# ifdef _XOPEN_SOURCE_EXTENDED +# define __USE_XOPEN_EXTENDED 1 +# endif +# endif +#endif + +#ifdef _LARGEFILE_SOURCE +# define __USE_LARGEFILE 1 +#endif + +#ifdef _LARGEFILE64_SOURCE +# define __USE_LARGEFILE64 1 +#endif + +#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64 +# define __USE_FILE_OFFSET64 1 +#endif + +#include + +#if defined _DEFAULT_SOURCE +# define __USE_MISC 1 +#endif + +#ifdef _ATFILE_SOURCE +# define __USE_ATFILE 1 +#endif + +#ifdef _DYNAMIC_STACK_SIZE_SOURCE +# define __USE_DYNAMIC_STACK_SIZE 1 +#endif + +#ifdef _GNU_SOURCE +# define __USE_GNU 1 +#endif + +#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 +# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0 +# warning _FORTIFY_SOURCE requires compiling with optimization (-O) +# elif !__GNUC_PREREQ (4, 1) +# warning _FORTIFY_SOURCE requires GCC 4.1 or later +# elif _FORTIFY_SOURCE > 2 && (__glibc_clang_prereq (9, 0) \ + || __GNUC_PREREQ (12, 0)) + +# if _FORTIFY_SOURCE > 3 +# warning _FORTIFY_SOURCE > 3 is treated like 3 on this platform +# endif +# define __USE_FORTIFY_LEVEL 3 +# elif _FORTIFY_SOURCE > 1 +# if _FORTIFY_SOURCE > 2 +# warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform +# endif +# define __USE_FORTIFY_LEVEL 2 +# else +# define __USE_FORTIFY_LEVEL 1 +# endif +#endif +#ifndef __USE_FORTIFY_LEVEL +# define __USE_FORTIFY_LEVEL 0 +#endif + +/* The function 'gets' existed in C89, but is impossible to use + safely. It has been removed from ISO C11 and ISO C++14. Note: for + compatibility with various implementations of , this test + must consider only the value of __cplusplus when compiling C++. */ +#if defined __cplusplus ? __cplusplus >= 201402L : defined __USE_ISOC11 +# define __GLIBC_USE_DEPRECATED_GETS 0 +#else +# define __GLIBC_USE_DEPRECATED_GETS 1 +#endif + +/* GNU formerly extended the scanf functions with modified format + specifiers %as, %aS, and %a[...] that allocate a buffer for the + input using malloc. This extension conflicts with ISO C99, which + defines %a as a standalone format specifier that reads a floating- + point number; moreover, POSIX.1-2008 provides the same feature + using the modifier letter 'm' instead (%ms, %mS, %m[...]). + + We now follow C99 unless GNU extensions are active and the compiler + is specifically in C89 or C++98 mode (strict or not). For + instance, with GCC, -std=gnu11 will have C99-compliant scanf with + or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the + old extension. */ +#if (defined __USE_GNU \ + && (defined __cplusplus \ + ? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \ + : (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L))) +# define __GLIBC_USE_DEPRECATED_SCANF 1 +#else +# define __GLIBC_USE_DEPRECATED_SCANF 0 +#endif + +/* Get definitions of __STDC_* predefined macros, if the compiler has + not preincluded this header automatically. */ +#include + +/* This macro indicates that the installed library is the GNU C Library. + For historic reasons the value now is 6 and this will stay from now + on. The use of this variable is deprecated. Use __GLIBC__ and + __GLIBC_MINOR__ now (see below) when you want to test for a specific + GNU C library version and use the values in to get + the sonames of the shared libraries. */ +#undef __GNU_LIBRARY__ +#define __GNU_LIBRARY__ 6 + +/* Major and minor version number of the GNU C library package. Use + these macros to test for features in specific releases. */ +#define __GLIBC__ 2 +#define __GLIBC_MINOR__ 36 + +#define __GLIBC_PREREQ(maj, min) \ + ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) + +/* This is here only because every header file already includes this one. */ +#ifndef __ASSEMBLER__ +# ifndef _SYS_CDEFS_H +# include +# endif + +/* If we don't have __REDIRECT, prototypes will be missing if + __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */ +# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT +# define __USE_LARGEFILE 1 +# define __USE_LARGEFILE64 1 +# endif + +#endif /* !ASSEMBLER */ + +/* Decide whether we can define 'extern inline' functions in headers. */ +#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \ + && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \ + && defined __extern_inline +# define __USE_EXTERN_INLINES 1 +#endif + + +/* This is here only because every header file already includes this one. + Get the definitions of all the appropriate `__stub_FUNCTION' symbols. + contains `#define __stub_FUNCTION' when FUNCTION is a stub + that will always return failure (and set errno to ENOSYS). */ +#include + + +#endif /* features.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@features.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..53fd5de932f036e39cfb714f5df79687078be01a GIT binary patch literal 5477 zcma)8e{37o9lw{PgjA*rF3b24QMZA}$>LvW>LpQ0lR9?e)JZ(sX;aem^eTXU6F=r=-}l~~ zeV3jcEWLYQ-S_$P{d|AEYvnGr?YZ++4so8elodSbd~&bHEeq3<;*nC4>QPiVpH%a* z;7)SY$qb*H`Z_0FGm^Yl%uTscqAVm;NuIr>3_jQ6$t$u)%q27Vl;BCKv(th*%~+W< z6QZhkh*t4noSjfqUKOxf{^(>z;?r=}EN2SiP&g7Se@anPVor6zs^mFk&GL&y5(inC7Lw&rc~#1a zNjxK_1e}!eIaQF$9~N>ckrIIsXvpfO|m&Q-cS{`KavQ!!Bh5EL9W-y+FviEl^ ze^MiLSrRhhgopNs$JgQZy8XqnhJ^6)6ybU7-Mz1x>ROpqJjs+WSt(9wS>RJHCC$r1 z%0=T+-erxOJVVN{{4sNMNfT7eJ$ROMrGbSYyP);t3XOLe^7r}7GCZLFD!H#UJ;_d` z+)S%9PSn1Omy_vbta?aYR07OMWP(ZgiHvobvKlv8sZ;@wWO9~Pfc3B?6PFyhf9Qz0 zNDRfSh*OH7mZ42NGV#&pssRAwiV&n86(IvtyF3t?FA~m()=fDn@Z`c!T!f9kqXNt_ zX4nX~{6As2Oe3&5q*GZ;m5CP%%Q7@)cu}3q@Ri1Lo{U--491))sio29B~!BSglhGo>A%O<=jP>g_!mZ^?ZQ&?4P%Gu@JP&i^f zVa|HtttDE+{ZOc?F<~3sT>UurgzcByuWTo|S8TuI&e|?=pR6pbL|oyU$X2)s_IB92 zVc!Hh5Bn_aKZN}b*bl(|BiQeT{U@*=g8f0*e+K(Qus;m@ldwMn`*X0r2Kyh;%EATM zKSrwx|AqZaWaGGXi!a^#=7~4oIpyLEKQw>kd~+{abY6SUies;z{{-VLk?`gKj>dwq z;CJC*V-wW8m=hdkjWf&dX>(-7T#IAp$~vc0*J8)UjSio`#qsUpABMuiBQcB}J-0ZV zh=$qW#<=0_%(Wm3u$C>*D(g#-s5d4#!6VU0v}0+7heM z`#K*%8bfwit$@TNFF`^D4qkKgHIv+^upMk}M^5m*#Wrs9RzLKZ?uCxoJ_fdKD%oPO zDQWAxVDVG?r~WGP?AAErZQ~0sHH}^}paD#S1&lM)QfD}Y9ZgM+5I{a#|7>#=c}6wJ zZ>>1<{H>Q(R|8J*x8kG0kM{JU&j&w;XJL^Wghiw)&>$=#y^i`}rNF_dxt8P62H%TD zWBox$a-c5}?8osy-!RzaIxRTjrRN;P>B4D<=V>$uVP?{>#`KP>JHD#<`Nz{NVSNeG zsDQjAVeCCi*g-%#NHfDEw}v$1_obdb@YyjS5b7I^ByfCWG!`IWHx_A{RTS^M{k*pd z!LvidS*&sG^X&f5Rg6(|Bpx2a;h|_G90(^OI{>b&2uF)-=?TWN5nWSgM7`iIllnFE zzg9hZ_|EZ;pEC5Ja6ABr*O(E>TZVEU_Jc>Uw-#tGDb?|}IBaNlDK8NuX`EbPan;65z zCJVR0VQ0~th2GTi4(Mg9{T+H*lA*y3ozHNgyQ!j5=O4Ep@2*0}?eq6*p=fWe{rybO zU`>%b2xzW#E(G+iI%n&1AC0buG9Df^45?C>j0zKBHlxVDOhhTp*O^d9?MGoc9ktKx zqdXA|)+=GH16Btgf8Wt?@_$~#jM@OCmy|r6T^m^Hwn6H)(UND9Hlu3cbuE3(B$!d7 zFr!B4j8dmuzvwl5T1HNNnhO%ZQJAg4#r!9vEg6@#}lz| zAc2SbhJtZ`YAt2o@&Gz)KfJMuKDAtZqv@W`53dhj(8@Mo)uOC$byZ!v*W2msijWbq z7TjHnpjkDkm!j6fRTzQ=W2>+k4ZxZNX$$IswG*VRs2A2QkVZfnp;8>AIF-gh8Yj}? z-!J|-(s8@cZD@P&(J+O{7^mb|PWpjOKXL*aCbelkE~GEiAN%m!%?u|r5=(?bJ8&ep zEeK9<&83(TJd>IY%BKMLDbxwLOxmd7y8dzXnVL5K-1e^9zuSP>4sc5mKcLy02C6xm_ zLxuOC-QJ^kOlsExyXK8|I;*>GycLIneTmUnFpdWRt5i&-*OZsN-VQS!p89<6+1~z| zI(FU5m|c9OJ}J3p(lGCKfp@zo8z$*&Hb446^>6>ua8AF?wfVKgJNg}`sp{5K_ZGmt z1q#R{JzQ`9>%qoLGyGW{kOazJszLVIgX^G{P~j|KoJH#(Yc^hW4 zAy0r~n9T--mcImen4otUlXMRs_*3)RlY#m}IwA5;!*|G*V1f)R|5Az;$5<1d06Qnp L0FY)!O)Z;p|EM8+n1S)0>qY%93P zR&`*!g`gc32%2CRwsC|)NV8NRW)DVbgh84jUY3l!(~gj*TJRHzF)*)}(bZRSo!jWn zgkfFI#OliE$b!^`CJ0$Yl^pG1gVj|-P}+N$8T4bx0x@6CB{NTDU(LIHlgOKZjNl>XuPpsy zBdG3_^`<3sopfeCU@#tWYoK&d21uw{Z#1hBvrKc158P6w0NG>}s}*40#A+R@klhFG z21U|eSlr-9SZJ$^2KaQBZXZAx@-hgeM~;YG>2@HsUua0Mc__QP*;i~e=iT{SxoIK9u7mnW&j!NPd!} zj^oVVkPXBsn!o6CXS|u^inh*~D`U^TK6d_`o<3ji#tPAqf6op>=)Yah^A;-F7N-xM z%#oM%?UU|lBnWL_MdJD}!nw9Z3~pozn^X#e%$*}pft=J^1t0lZ&Gqlwm7}_ z{>Z=o{n37LnxReFM3TX^AqHKCJLOF+RJ{?RyED-82*7Ih_qUUlaya}0w zvIWZ8_R;RI{hy}=N)Kdih{(Ce9rwnUD%utpw-$E@e{+%)7@_>oNm@XJwWv-q9!o~m RA+U=f?wB{WR?#*`{Ri(YS114g literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h new file mode 100644 index 0000000..70a1ba0 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h @@ -0,0 +1,14 @@ +/* This file is automatically generated. + This file selects the right generated file of `__stub_FUNCTION' macros + based on the architecture being compiled for. */ + + +#if !defined __x86_64__ +# include +#endif +#if defined __x86_64__ && defined __LP64__ +# include +#endif +#if defined __x86_64__ && defined __ILP32__ +# include +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@gnu@stubs.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..673cd05f31d934bad4ab640a17c1622c9d828cba GIT binary patch literal 2426 zcma)8OO6vU6zl;Z77QDXfp82`G&|UVgal`>+_sZ8aoa8XnGjYSfOD|s6mthIgYYLA zx*6NeA}hZx*Q-~roaf!|7oWb}c2^x9%qZ~S*#U2?n2f`Q8^8{%XW*^au{_NWDi~TEW2B)9VU;_Xc}svD8d?E--`BBsN24wK(Y|I2=zMCS>d#P!I%)r8_|* zV^=&(I6Gx1XvEAo8eJ~~ISMDgHVE}65bj8)21cUHlwpSo-C1X$imF;$VH82qMpqYg z-o5|uwob?aml{y`wK`9%^YDp`I#@ReR!5~^M#;!gazU8!8icJE3(Y0fTDVp-;m$fj zZuQI$#$sXCt9Ue%JoUCd8A5hpCvLXum1k1-hM;7R(*ogF+s(_(&7J4NK&ahEoaJ+|C|VMI<47EkaS9&A!^yMax0F$XaOn{#n3z8-b>^U{qT#Fu(i!L~)4G+(ORj!~c zP|F?jbuPk$3&Oe;kN(94e A&j0`b literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h new file mode 100644 index 0000000..d76933d --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h @@ -0,0 +1,64 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _STDC_PREDEF_H +#define _STDC_PREDEF_H 1 + +/* This header is separate from features.h so that the compiler can + include it implicitly at the start of every compilation. It must + not itself include or any other header that includes + because the implicit include comes before any feature + test macros that may be defined in a source file before it first + explicitly includes a system header. GCC knows the name of this + header in order to preinclude it. */ + +/* glibc's intent is to support the IEC 559 math functionality, real + and complex. If the GCC (4.9 and later) predefined macros + specifying compiler intent are available, use them to determine + whether the overall intent is to support these features; otherwise, + presume an older compiler has intent to support these features and + define these macros by default. */ + +#ifdef __GCC_IEC_559 +# if __GCC_IEC_559 > 0 +# define __STDC_IEC_559__ 1 +# define __STDC_IEC_60559_BFP__ 201404L +# endif +#else +# define __STDC_IEC_559__ 1 +# define __STDC_IEC_60559_BFP__ 201404L +#endif + +#ifdef __GCC_IEC_559_COMPLEX +# if __GCC_IEC_559_COMPLEX > 0 +# define __STDC_IEC_559_COMPLEX__ 1 +# define __STDC_IEC_60559_COMPLEX__ 201404L +# endif +#else +# define __STDC_IEC_559_COMPLEX__ 1 +# define __STDC_IEC_60559_COMPLEX__ 201404L +#endif + +/* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is + synchronized with ISO/IEC 10646:2017, fifth edition, plus + the following additions from Amendment 1 to the fifth edition: + - 56 emoji characters + - 285 hentaigana + - 3 additional Zanabazar Square characters */ +#define __STDC_ISO_10646__ 201706L + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdc-predef.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..dc3462191e7ce4c36d29c752a5e60dbc3446d263 GIT binary patch literal 2908 zcma)8zi-n(6n0VxDV^E~1|)i}*31!#Q8#Yy2a+J2wq5 zFfg)!#J>QH>`W}(7?6+<1481DKw_cXos;6UXPY6nym#My?|a{S&Z72bY5&=gR?rML z^pW94uxC^V>W9<_osb!nkqEMgpbFHcpl1i&|H;$`A?e|ut2>w=$U-t)O~KdJjEE8g z2hfWgWI#6Tqlz1|nuxS9qlSo50|38GnavPj%G3_B1!JlVN}P@t+APpv==))ip2o0` zD1Mwls6Awe4(xsghNKL=5cX2&CMx4uwwG2GZv~e$qpGnwt&PoQIw8s&959{#vMQIX zx|7wLK9f4h%5d(1Bv|-0uQT)a=e>$!KP+qz~np= zuW;pk!7^tMVu#DEjGYv{Vp(!%4s6Uio}IOpBe80Az8C|B*-*(?J|&>UXDw3O-S))S zA^rMjsQieb!}KhLEtNLN{1U}uy<#@0XFuwLDj5T zH2^eCyE4xw9tUXdY_wEbHmldo+NP!zR%ceNqBvXHae-euet!7*_s9L$=f~HY4RGz+ zP0-lh+SzR0m(b>E=+il+Do0)^uhfg;93#(uI=J`n@WUX1Tr&lBy|p88mlU{(j5$Hu zGA%)SvAnoe6z9%}_SDe5z%KrT32*@|l$cY%%2-MATqrLr7YqEnF@l=C{mXy(s*Vy+ zF^i-ImICxtR)VfowpzskKkts-`11A9+b6Z}yK(1scAM+X7P!U9UOK^*Jsn3R)ACGt LsaW8r8Ke9K3dAr4 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h new file mode 100644 index 0000000..0e0f16b --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h @@ -0,0 +1,911 @@ +/* Define ISO C stdio on top of C++ iostreams. + Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * ISO C99 Standard: 7.19 Input/output + */ + +#ifndef _STDIO_H +#define _STDIO_H 1 + +#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +#include + +__BEGIN_DECLS + +#define __need_size_t +#define __need_NULL +#include + +#define __need___va_list +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __USE_GNU +# include +#endif + +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 +# ifdef __GNUC__ +# ifndef _VA_LIST_DEFINED +typedef __gnuc_va_list va_list; +# define _VA_LIST_DEFINED +# endif +# else +# include +# endif +#endif + +#if defined __USE_UNIX98 || defined __USE_XOPEN2K +# ifndef __off_t_defined +# ifndef __USE_FILE_OFFSET64 +typedef __off_t off_t; +# else +typedef __off64_t off_t; +# endif +# define __off_t_defined +# endif +# if defined __USE_LARGEFILE64 && !defined __off64_t_defined +typedef __off64_t off64_t; +# define __off64_t_defined +# endif +#endif + +#ifdef __USE_XOPEN2K8 +# ifndef __ssize_t_defined +typedef __ssize_t ssize_t; +# define __ssize_t_defined +# endif +#endif + +/* The type of the second argument to `fgetpos' and `fsetpos'. */ +#ifndef __USE_FILE_OFFSET64 +typedef __fpos_t fpos_t; +#else +typedef __fpos64_t fpos_t; +#endif +#ifdef __USE_LARGEFILE64 +typedef __fpos64_t fpos64_t; +#endif + +/* The possibilities for the third argument to `setvbuf'. */ +#define _IOFBF 0 /* Fully buffered. */ +#define _IOLBF 1 /* Line buffered. */ +#define _IONBF 2 /* No buffering. */ + + +/* Default buffer size. */ +#define BUFSIZ 8192 + + +/* The value returned by fgetc and similar functions to indicate the + end of the file. */ +#define EOF (-1) + + +/* The possibilities for the third argument to `fseek'. + These values should not be changed. */ +#define SEEK_SET 0 /* Seek from beginning of file. */ +#define SEEK_CUR 1 /* Seek from current position. */ +#define SEEK_END 2 /* Seek from end of file. */ +#ifdef __USE_GNU +# define SEEK_DATA 3 /* Seek to next data. */ +# define SEEK_HOLE 4 /* Seek to next hole. */ +#endif + + +#if defined __USE_MISC || defined __USE_XOPEN +/* Default path prefix for `tempnam' and `tmpnam'. */ +# define P_tmpdir "/tmp" +#endif + + +/* Get the values: + L_tmpnam How long an array of chars must be to be passed to `tmpnam'. + TMP_MAX The minimum number of unique filenames generated by tmpnam + (and tempnam when it uses tmpnam's name space), + or tempnam (the two are separate). + L_ctermid How long an array to pass to `ctermid'. + L_cuserid How long an array to pass to `cuserid'. + FOPEN_MAX Minimum number of files that can be open at once. + FILENAME_MAX Maximum length of a filename. */ +#include + + +#if __GLIBC_USE (ISOC2X) +/* Maximum length of printf output for a NaN. */ +# define _PRINTF_NAN_LEN_MAX 4 +#endif + + +/* Standard streams. */ +extern FILE *stdin; /* Standard input stream. */ +extern FILE *stdout; /* Standard output stream. */ +extern FILE *stderr; /* Standard error output stream. */ +/* C89/C99 say they're macros. Make them happy. */ +#define stdin stdin +#define stdout stdout +#define stderr stderr + +/* Remove file FILENAME. */ +extern int remove (const char *__filename) __THROW; +/* Rename file OLD to NEW. */ +extern int rename (const char *__old, const char *__new) __THROW; + +#ifdef __USE_ATFILE +/* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */ +extern int renameat (int __oldfd, const char *__old, int __newfd, + const char *__new) __THROW; +#endif + +#ifdef __USE_GNU +/* Flags for renameat2. */ +# define RENAME_NOREPLACE (1 << 0) +# define RENAME_EXCHANGE (1 << 1) +# define RENAME_WHITEOUT (1 << 2) + +/* Rename file OLD relative to OLDFD to NEW relative to NEWFD, with + additional flags. */ +extern int renameat2 (int __oldfd, const char *__old, int __newfd, + const char *__new, unsigned int __flags) __THROW; +#endif + +/* Close STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fclose (FILE *__stream); + +#undef __attr_dealloc_fclose +#define __attr_dealloc_fclose __attr_dealloc (fclose, 1) + +/* Create a temporary file and open it read/write. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +#ifndef __USE_FILE_OFFSET64 +extern FILE *tmpfile (void) + __attribute_malloc__ __attr_dealloc_fclose __wur; +#else +# ifdef __REDIRECT +extern FILE *__REDIRECT (tmpfile, (void), tmpfile64) + __attribute_malloc__ __attr_dealloc_fclose __wur; +# else +# define tmpfile tmpfile64 +# endif +#endif + +#ifdef __USE_LARGEFILE64 +extern FILE *tmpfile64 (void) + __attribute_malloc__ __attr_dealloc_fclose __wur; +#endif + +/* Generate a temporary filename. */ +extern char *tmpnam (char[L_tmpnam]) __THROW __wur; + +#ifdef __USE_MISC +/* This is the reentrant variant of `tmpnam'. The only difference is + that it does not allow S to be NULL. */ +extern char *tmpnam_r (char __s[L_tmpnam]) __THROW __wur; +#endif + + +#if defined __USE_MISC || defined __USE_XOPEN +/* Generate a unique temporary filename using up to five characters of PFX + if it is not NULL. The directory to put this file in is searched for + as follows: First the environment variable "TMPDIR" is checked. + If it contains the name of a writable directory, that directory is used. + If not and if DIR is not NULL, that value is checked. If that fails, + P_tmpdir is tried and finally "/tmp". The storage for the filename + is allocated by `malloc'. */ +extern char *tempnam (const char *__dir, const char *__pfx) + __THROW __attribute_malloc__ __wur __attr_dealloc_free; +#endif + +/* Flush STREAM, or all streams if STREAM is NULL. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fflush (FILE *__stream); + +#ifdef __USE_MISC +/* Faster versions when locking is not required. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int fflush_unlocked (FILE *__stream); +#endif + +#ifdef __USE_GNU +/* Close all streams. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int fcloseall (void); +#endif + + +#ifndef __USE_FILE_OFFSET64 +/* Open a file and create a new stream for it. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern FILE *fopen (const char *__restrict __filename, + const char *__restrict __modes) + __attribute_malloc__ __attr_dealloc_fclose __wur; +/* Open a file, replacing an existing stream with it. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern FILE *freopen (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __wur; +#else +# ifdef __REDIRECT +extern FILE *__REDIRECT (fopen, (const char *__restrict __filename, + const char *__restrict __modes), fopen64) + __attribute_malloc__ __attr_dealloc_fclose __wur; +extern FILE *__REDIRECT (freopen, (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream), freopen64) + __wur; +# else +# define fopen fopen64 +# define freopen freopen64 +# endif +#endif +#ifdef __USE_LARGEFILE64 +extern FILE *fopen64 (const char *__restrict __filename, + const char *__restrict __modes) + __attribute_malloc__ __attr_dealloc_fclose __wur; +extern FILE *freopen64 (const char *__restrict __filename, + const char *__restrict __modes, + FILE *__restrict __stream) __wur; +#endif + +#ifdef __USE_POSIX +/* Create a new stream that refers to an existing system file descriptor. */ +extern FILE *fdopen (int __fd, const char *__modes) __THROW + __attribute_malloc__ __attr_dealloc_fclose __wur; +#endif + +#ifdef __USE_GNU +/* Create a new stream that refers to the given magic cookie, + and uses the given functions for input and output. */ +extern FILE *fopencookie (void *__restrict __magic_cookie, + const char *__restrict __modes, + cookie_io_functions_t __io_funcs) __THROW + __attribute_malloc__ __attr_dealloc_fclose __wur; +#endif + +#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) +/* Create a new stream that refers to a memory buffer. */ +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) + __THROW __attribute_malloc__ __attr_dealloc_fclose __wur; + +/* Open a stream that writes into a malloc'd buffer that is expanded as + necessary. *BUFLOC and *SIZELOC are updated with the buffer's location + and the number of characters written on fflush or fclose. */ +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW + __attribute_malloc__ __attr_dealloc_fclose __wur; + +#ifdef _WCHAR_H +/* Like OPEN_MEMSTREAM, but the stream is wide oriented and produces + a wide character string. Declared here only to add attribute malloc + and only if has been previously #included. */ +extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) __THROW + __attribute_malloc__ __attr_dealloc_fclose; +# endif +#endif + +/* If BUF is NULL, make STREAM unbuffered. + Else make it use buffer BUF, of size BUFSIZ. */ +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __THROW; +/* Make STREAM use buffering mode MODE. + If BUF is not NULL, use N bytes of it for buffering; + else allocate an internal buffer N bytes long. */ +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) __THROW; + +#ifdef __USE_MISC +/* If BUF is NULL, make STREAM unbuffered. + Else make it use SIZE bytes of BUF for buffering. */ +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) __THROW; + +/* Make STREAM line-buffered. */ +extern void setlinebuf (FILE *__stream) __THROW; +#endif + + +/* Write formatted output to STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fprintf (FILE *__restrict __stream, + const char *__restrict __format, ...); +/* Write formatted output to stdout. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int printf (const char *__restrict __format, ...); +/* Write formatted output to S. */ +extern int sprintf (char *__restrict __s, + const char *__restrict __format, ...) __THROWNL; + +/* Write formatted output to S from argument list ARG. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg); +/* Write formatted output to stdout from argument list ARG. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); +/* Write formatted output to S from argument list ARG. */ +extern int vsprintf (char *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) __THROWNL; + +#if defined __USE_ISOC99 || defined __USE_UNIX98 +/* Maximum chars of output to write in MAXLEN. */ +extern int snprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, ...) + __THROWNL __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + const char *__restrict __format, __gnuc_va_list __arg) + __THROWNL __attribute__ ((__format__ (__printf__, 3, 0))); +#endif + +#if __GLIBC_USE (LIB_EXT2) +/* Write formatted output to a string dynamically allocated with `malloc'. + Store the address of the string in *PTR. */ +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, + __gnuc_va_list __arg) + __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))) __wur; +extern int __asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur; +extern int asprintf (char **__restrict __ptr, + const char *__restrict __fmt, ...) + __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur; +#endif + +#ifdef __USE_XOPEN2K8 +/* Write formatted output to a file descriptor. */ +extern int vdprintf (int __fd, const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +#endif + + +/* Read formatted input from STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) __wur; +/* Read formatted input from stdin. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int scanf (const char *__restrict __format, ...) __wur; +/* Read formatted input from S. */ +extern int sscanf (const char *__restrict __s, + const char *__restrict __format, ...) __THROW; + +/* For historical reasons, the C99-compliant versions of the scanf + functions are at alternative names. When __LDBL_COMPAT or + __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in + bits/stdio-ldbl.h. */ +#include +#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ + && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 +# ifdef __REDIRECT +extern int __REDIRECT (fscanf, (FILE *__restrict __stream, + const char *__restrict __format, ...), + __isoc99_fscanf) __wur; +extern int __REDIRECT (scanf, (const char *__restrict __format, ...), + __isoc99_scanf) __wur; +extern int __REDIRECT_NTH (sscanf, (const char *__restrict __s, + const char *__restrict __format, ...), + __isoc99_sscanf); +# else +extern int __isoc99_fscanf (FILE *__restrict __stream, + const char *__restrict __format, ...) __wur; +extern int __isoc99_scanf (const char *__restrict __format, ...) __wur; +extern int __isoc99_sscanf (const char *__restrict __s, + const char *__restrict __format, ...) __THROW; +# define fscanf __isoc99_fscanf +# define scanf __isoc99_scanf +# define sscanf __isoc99_sscanf +# endif +#endif + +#ifdef __USE_ISOC99 +/* Read formatted input from S into argument list ARG. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) __wur; + +/* Read formatted input from stdin into argument list ARG. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; + +/* Read formatted input from S into argument list ARG. */ +extern int vsscanf (const char *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg) + __THROW __attribute__ ((__format__ (__scanf__, 2, 0))); + +/* Same redirection as above for the v*scanf family. */ +# if !__GLIBC_USE (DEPRECATED_SCANF) +# if defined __REDIRECT && !defined __LDBL_COMPAT \ + && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 +extern int __REDIRECT (vfscanf, + (FILE *__restrict __s, + const char *__restrict __format, __gnuc_va_list __arg), + __isoc99_vfscanf) + __attribute__ ((__format__ (__scanf__, 2, 0))) __wur; +extern int __REDIRECT (vscanf, (const char *__restrict __format, + __gnuc_va_list __arg), __isoc99_vscanf) + __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; +extern int __REDIRECT_NTH (vsscanf, + (const char *__restrict __s, + const char *__restrict __format, + __gnuc_va_list __arg), __isoc99_vsscanf) + __attribute__ ((__format__ (__scanf__, 2, 0))); +# elif !defined __REDIRECT +extern int __isoc99_vfscanf (FILE *__restrict __s, + const char *__restrict __format, + __gnuc_va_list __arg) __wur; +extern int __isoc99_vscanf (const char *__restrict __format, + __gnuc_va_list __arg) __wur; +extern int __isoc99_vsscanf (const char *__restrict __s, + const char *__restrict __format, + __gnuc_va_list __arg) __THROW; +# define vfscanf __isoc99_vfscanf +# define vscanf __isoc99_vscanf +# define vsscanf __isoc99_vsscanf +# endif +# endif +#endif /* Use ISO C9x. */ + + +/* Read a character from STREAM. + + These functions are possible cancellation points and therefore not + marked with __THROW. */ +extern int fgetc (FILE *__stream); +extern int getc (FILE *__stream); + +/* Read a character from stdin. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int getchar (void); + +#ifdef __USE_POSIX199506 +/* These are defined in POSIX.1:1996. + + These functions are possible cancellation points and therefore not + marked with __THROW. */ +extern int getc_unlocked (FILE *__stream); +extern int getchar_unlocked (void); +#endif /* Use POSIX. */ + +#ifdef __USE_MISC +/* Faster version when locking is not necessary. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int fgetc_unlocked (FILE *__stream); +#endif /* Use MISC. */ + + +/* Write a character to STREAM. + + These functions are possible cancellation points and therefore not + marked with __THROW. + + These functions is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fputc (int __c, FILE *__stream); +extern int putc (int __c, FILE *__stream); + +/* Write a character to stdout. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int putchar (int __c); + +#ifdef __USE_MISC +/* Faster version when locking is not necessary. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int fputc_unlocked (int __c, FILE *__stream); +#endif /* Use MISC. */ + +#ifdef __USE_POSIX199506 +/* These are defined in POSIX.1:1996. + + These functions are possible cancellation points and therefore not + marked with __THROW. */ +extern int putc_unlocked (int __c, FILE *__stream); +extern int putchar_unlocked (int __c); +#endif /* Use POSIX. */ + + +#if defined __USE_MISC \ + || (defined __USE_XOPEN && !defined __USE_XOPEN2K) +/* Get a word (int) from STREAM. */ +extern int getw (FILE *__stream); + +/* Write a word (int) to STREAM. */ +extern int putw (int __w, FILE *__stream); +#endif + + +/* Get a newline-terminated string of finite length from STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __wur __fortified_attr_access (__write_only__, 1, 2); + +#if __GLIBC_USE (DEPRECATED_GETS) +/* Get a newline-terminated string from stdin, removing the newline. + + This function is impossible to use safely. It has been officially + removed from ISO C11 and ISO C++14, and we have also removed it + from the _GNU_SOURCE feature list. It remains available when + explicitly using an old ISO C, Unix, or POSIX standard. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern char *gets (char *__s) __wur __attribute_deprecated__; +#endif + +#ifdef __USE_GNU +/* This function does the same as `fgets' but does not lock the stream. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) __wur + __fortified_attr_access (__write_only__, 1, 2); +#endif + + +#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) +/* Read up to (and including) a DELIMITER from STREAM into *LINEPTR + (and null-terminate it). *LINEPTR is a pointer returned from malloc (or + NULL), pointing to *N characters of space. It is realloc'd as + necessary. Returns the number of characters read (not including the + null terminator), or -1 on error or EOF. + + These functions are not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation they are cancellation points and + therefore not marked with __THROW. */ +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __wur; +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __wur; + +/* Like `getdelim', but reads up to a newline. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) __wur; +#endif + + +/* Write a string to STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fputs (const char *__restrict __s, FILE *__restrict __stream); + +/* Write a string, followed by a newline, to stdout. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int puts (const char *__s); + + +/* Push a character back onto the input buffer of STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int ungetc (int __c, FILE *__stream); + + +/* Read chunks of generic data from STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __wur; +/* Write chunks of generic data to STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern size_t fwrite (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s); + +#ifdef __USE_GNU +/* This function does the same as `fputs' but does not lock the stream. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int fputs_unlocked (const char *__restrict __s, + FILE *__restrict __stream); +#endif + +#ifdef __USE_MISC +/* Faster versions when locking is not necessary. + + These functions are not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation they are cancellation points and + therefore not marked with __THROW. */ +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __wur; +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream); +#endif + + +/* Seek to a certain position on STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fseek (FILE *__stream, long int __off, int __whence); +/* Return the current position of STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern long int ftell (FILE *__stream) __wur; +/* Rewind to the beginning of STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern void rewind (FILE *__stream); + +/* The Single Unix Specification, Version 2, specifies an alternative, + more adequate interface for the two functions above which deal with + file offset. `long int' is not the right type. These definitions + are originally defined in the Large File Support API. */ + +#if defined __USE_LARGEFILE || defined __USE_XOPEN2K +# ifndef __USE_FILE_OFFSET64 +/* Seek to a certain position on STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fseeko (FILE *__stream, __off_t __off, int __whence); +/* Return the current position of STREAM. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern __off_t ftello (FILE *__stream) __wur; +# else +# ifdef __REDIRECT +extern int __REDIRECT (fseeko, + (FILE *__stream, __off64_t __off, int __whence), + fseeko64); +extern __off64_t __REDIRECT (ftello, (FILE *__stream), ftello64); +# else +# define fseeko fseeko64 +# define ftello ftello64 +# endif +# endif +#endif + +#ifndef __USE_FILE_OFFSET64 +/* Get STREAM's position. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); +/* Set STREAM's position. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int fsetpos (FILE *__stream, const fpos_t *__pos); +#else +# ifdef __REDIRECT +extern int __REDIRECT (fgetpos, (FILE *__restrict __stream, + fpos_t *__restrict __pos), fgetpos64); +extern int __REDIRECT (fsetpos, + (FILE *__stream, const fpos_t *__pos), fsetpos64); +# else +# define fgetpos fgetpos64 +# define fsetpos fsetpos64 +# endif +#endif + +#ifdef __USE_LARGEFILE64 +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); +extern __off64_t ftello64 (FILE *__stream) __wur; +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos); +#endif + +/* Clear the error and EOF indicators for STREAM. */ +extern void clearerr (FILE *__stream) __THROW; +/* Return the EOF indicator for STREAM. */ +extern int feof (FILE *__stream) __THROW __wur; +/* Return the error indicator for STREAM. */ +extern int ferror (FILE *__stream) __THROW __wur; + +#ifdef __USE_MISC +/* Faster versions when locking is not required. */ +extern void clearerr_unlocked (FILE *__stream) __THROW; +extern int feof_unlocked (FILE *__stream) __THROW __wur; +extern int ferror_unlocked (FILE *__stream) __THROW __wur; +#endif + + +/* Print a message describing the meaning of the value of errno. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern void perror (const char *__s); + + +#ifdef __USE_POSIX +/* Return the system file descriptor for STREAM. */ +extern int fileno (FILE *__stream) __THROW __wur; +#endif /* Use POSIX. */ + +#ifdef __USE_MISC +/* Faster version when locking is not required. */ +extern int fileno_unlocked (FILE *__stream) __THROW __wur; +#endif + + +#ifdef __USE_POSIX2 +/* Close a stream opened by popen and return the status of its child. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern int pclose (FILE *__stream); + +/* Create a new stream connected to a pipe running the given command. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern FILE *popen (const char *__command, const char *__modes) + __attribute_malloc__ __attr_dealloc (pclose, 1) __wur; + +#endif + + +#ifdef __USE_POSIX +/* Return the name of the controlling terminal. */ +extern char *ctermid (char *__s) __THROW + __attr_access ((__write_only__, 1)); +#endif /* Use POSIX. */ + + +#if (defined __USE_XOPEN && !defined __USE_XOPEN2K) || defined __USE_GNU +/* Return the name of the current user. */ +extern char *cuserid (char *__s) + __attr_access ((__write_only__, 1)); +#endif /* Use X/Open, but not issue 6. */ + + +#ifdef __USE_GNU +struct obstack; /* See . */ + +/* Write formatted output to an obstack. */ +extern int obstack_printf (struct obstack *__restrict __obstack, + const char *__restrict __format, ...) + __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + const char *__restrict __format, + __gnuc_va_list __args) + __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))); +#endif /* Use GNU. */ + + +#ifdef __USE_POSIX199506 +/* These are defined in POSIX.1:1996. */ + +/* Acquire ownership of STREAM. */ +extern void flockfile (FILE *__stream) __THROW; + +/* Try to acquire ownership of STREAM but do not block if it is not + possible. */ +extern int ftrylockfile (FILE *__stream) __THROW __wur; + +/* Relinquish the ownership granted for STREAM. */ +extern void funlockfile (FILE *__stream) __THROW; +#endif /* POSIX */ + +#if defined __USE_XOPEN && !defined __USE_XOPEN2K && !defined __USE_GNU +/* X/Open Issues 1-5 required getopt to be declared in this + header. It was removed in Issue 6. GNU follows Issue 6. */ +# include +#endif + +/* Slow-path routines used by the optimized inline functions in + bits/stdio.h. */ +extern int __uflow (FILE *); +extern int __overflow (FILE *, int); + +#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +/* Declare all functions from bits/stdio2-decl.h first. */ +# include +#endif + +/* The following headers provide asm redirections. These redirections must + appear before the first usage of these functions, e.g. in bits/stdio.h. */ +#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 +# include +#endif + +/* If we are compiling with optimizing read this file. It contains + several optimizing inline functions and macros. */ +#ifdef __USE_EXTERN_INLINES +# include +#endif +#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +/* Now include the function definitions and redirects too. */ +# include +#endif + +__END_DECLS + +#endif /* included. */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdio.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..756b69f6b3ff96178befeccfeef3958edd7ca94e GIT binary patch literal 37520 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 E1LjBVw*UYD literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h new file mode 100644 index 0000000..3a630a0 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h @@ -0,0 +1,1050 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * ISO C99 Standard: 7.20 General utilities + */ + +#ifndef _STDLIB_H + +#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +#include + +/* Get size_t, wchar_t and NULL from . */ +#define __need_size_t +#define __need_wchar_t +#define __need_NULL +#include + +__BEGIN_DECLS + +#define _STDLIB_H 1 + +#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H +/* XPG requires a few symbols from being defined. */ +# include +# include + +/* Define the macros also would define this way. */ +# define WEXITSTATUS(status) __WEXITSTATUS (status) +# define WTERMSIG(status) __WTERMSIG (status) +# define WSTOPSIG(status) __WSTOPSIG (status) +# define WIFEXITED(status) __WIFEXITED (status) +# define WIFSIGNALED(status) __WIFSIGNALED (status) +# define WIFSTOPPED(status) __WIFSTOPPED (status) +# ifdef __WIFCONTINUED +# define WIFCONTINUED(status) __WIFCONTINUED (status) +# endif +#endif /* X/Open or XPG7 and not included. */ + +/* _FloatN API tests for enablement. */ +#include + +/* Returned by `div'. */ +typedef struct + { + int quot; /* Quotient. */ + int rem; /* Remainder. */ + } div_t; + +/* Returned by `ldiv'. */ +#ifndef __ldiv_t_defined +typedef struct + { + long int quot; /* Quotient. */ + long int rem; /* Remainder. */ + } ldiv_t; +# define __ldiv_t_defined 1 +#endif + +#if defined __USE_ISOC99 && !defined __lldiv_t_defined +/* Returned by `lldiv'. */ +__extension__ typedef struct + { + long long int quot; /* Quotient. */ + long long int rem; /* Remainder. */ + } lldiv_t; +# define __lldiv_t_defined 1 +#endif + + +/* The largest number rand will return (same as INT_MAX). */ +#define RAND_MAX 2147483647 + + +/* We define these the same for all machines. + Changes from this to the outside world should be done in `_exit'. */ +#define EXIT_FAILURE 1 /* Failing exit status. */ +#define EXIT_SUCCESS 0 /* Successful exit status. */ + + +/* Maximum length of a multibyte character in the current locale. */ +#define MB_CUR_MAX (__ctype_get_mb_cur_max ()) +extern size_t __ctype_get_mb_cur_max (void) __THROW __wur; + + +/* Convert a string to a floating-point number. */ +extern double atof (const char *__nptr) + __THROW __attribute_pure__ __nonnull ((1)) __wur; +/* Convert a string to an integer. */ +extern int atoi (const char *__nptr) + __THROW __attribute_pure__ __nonnull ((1)) __wur; +/* Convert a string to a long integer. */ +extern long int atol (const char *__nptr) + __THROW __attribute_pure__ __nonnull ((1)) __wur; + +#ifdef __USE_ISOC99 +/* Convert a string to a long long integer. */ +__extension__ extern long long int atoll (const char *__nptr) + __THROW __attribute_pure__ __nonnull ((1)) __wur; +#endif + +/* Convert a string to a floating-point number. */ +extern double strtod (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); + +#ifdef __USE_ISOC99 +/* Likewise for `float' and `long double' sizes of floating-point numbers. */ +extern float strtof (const char *__restrict __nptr, + char **__restrict __endptr) __THROW __nonnull ((1)); + +extern long double strtold (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +/* Likewise for '_FloatN' and '_FloatNx'. */ + +#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float16 strtof16 (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float32 strtof32 (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float64 strtof64 (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float128 strtof128 (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float32x strtof32x (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float64x strtof64x (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern _Float128x strtof128x (const char *__restrict __nptr, + char **__restrict __endptr) + __THROW __nonnull ((1)); +#endif + +/* Convert a string to a long integer. */ +extern long int strtol (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); +/* Convert a string to an unsigned long integer. */ +extern unsigned long int strtoul (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); + +#ifdef __USE_MISC +/* Convert a string to a quadword integer. */ +__extension__ +extern long long int strtoq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); +/* Convert a string to an unsigned quadword integer. */ +__extension__ +extern unsigned long long int strtouq (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); +#endif /* Use misc. */ + +#ifdef __USE_ISOC99 +/* Convert a string to a quadword integer. */ +__extension__ +extern long long int strtoll (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); +/* Convert a string to an unsigned quadword integer. */ +__extension__ +extern unsigned long long int strtoull (const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __THROW __nonnull ((1)); +#endif /* ISO C99 or use MISC. */ + +/* Convert a floating-point number to a string. */ +#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + __THROW __nonnull ((3)); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + __THROW __nonnull ((3)); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf16 (char *__dest, size_t __size, const char * __format, + _Float16 __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf32 (char *__dest, size_t __size, const char * __format, + _Float32 __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf64 (char *__dest, size_t __size, const char * __format, + _Float64 __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf128 (char *__dest, size_t __size, const char * __format, + _Float128 __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf32x (char *__dest, size_t __size, const char * __format, + _Float32x __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf64x (char *__dest, size_t __size, const char * __format, + _Float64x __f) + __THROW __nonnull ((3)); +#endif + +#if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) +extern int strfromf128x (char *__dest, size_t __size, const char * __format, + _Float128x __f) + __THROW __nonnull ((3)); +#endif + + +#ifdef __USE_GNU +/* Parallel versions of the functions above which take the locale to + use as an additional parameter. These are GNU extensions inspired + by the POSIX.1-2008 extended locale API. */ +# include + +extern long int strtol_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) __THROW __nonnull ((1, 4)); + +extern unsigned long int strtoul_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + __THROW __nonnull ((1, 4)); + +__extension__ +extern long long int strtoll_l (const char *__restrict __nptr, + char **__restrict __endptr, int __base, + locale_t __loc) + __THROW __nonnull ((1, 4)); + +__extension__ +extern unsigned long long int strtoull_l (const char *__restrict __nptr, + char **__restrict __endptr, + int __base, locale_t __loc) + __THROW __nonnull ((1, 4)); + +extern double strtod_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + __THROW __nonnull ((1, 3)); + +extern float strtof_l (const char *__restrict __nptr, + char **__restrict __endptr, locale_t __loc) + __THROW __nonnull ((1, 3)); + +extern long double strtold_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); + +# if __HAVE_FLOAT16 +extern _Float16 strtof16_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT32 +extern _Float32 strtof32_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT64 +extern _Float64 strtof64_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT128 +extern _Float128 strtof128_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT32X +extern _Float32x strtof32x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT64X +extern _Float64x strtof64x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif + +# if __HAVE_FLOAT128X +extern _Float128x strtof128x_l (const char *__restrict __nptr, + char **__restrict __endptr, + locale_t __loc) + __THROW __nonnull ((1, 3)); +# endif +#endif /* GNU */ + + +#ifdef __USE_EXTERN_INLINES +__extern_inline int +__NTH (atoi (const char *__nptr)) +{ + return (int) strtol (__nptr, (char **) NULL, 10); +} +__extern_inline long int +__NTH (atol (const char *__nptr)) +{ + return strtol (__nptr, (char **) NULL, 10); +} + +# ifdef __USE_ISOC99 +__extension__ __extern_inline long long int +__NTH (atoll (const char *__nptr)) +{ + return strtoll (__nptr, (char **) NULL, 10); +} +# endif +#endif /* Optimizing and Inlining. */ + + +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +/* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant + digit first. Returns a pointer to static storage overwritten by the + next call. */ +extern char *l64a (long int __n) __THROW __wur; + +/* Read a number from a string S in base 64 as above. */ +extern long int a64l (const char *__s) + __THROW __attribute_pure__ __nonnull ((1)) __wur; + +#endif /* Use misc || extended X/Open. */ + +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +# include /* we need int32_t... */ + +/* These are the functions that actually do things. The `random', `srandom', + `initstate' and `setstate' functions are those from BSD Unices. + The `rand' and `srand' functions are required by the ANSI standard. + We provide both interfaces to the same random number generator. */ +/* Return a random long integer between 0 and 2^31-1 inclusive. */ +extern long int random (void) __THROW; + +/* Seed the random number generator with the given number. */ +extern void srandom (unsigned int __seed) __THROW; + +/* Initialize the random number generator to use state buffer STATEBUF, + of length STATELEN, and seed it with SEED. Optimal lengths are 8, 16, + 32, 64, 128 and 256, the bigger the better; values less than 8 will + cause an error and values greater than 256 will be rounded down. */ +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) __THROW __nonnull ((2)); + +/* Switch the random number generator to state buffer STATEBUF, + which should have been previously initialized by `initstate'. */ +extern char *setstate (char *__statebuf) __THROW __nonnull ((1)); + + +# ifdef __USE_MISC +/* Reentrant versions of the `random' family of functions. + These functions all use the following data structure to contain + state, rather than global state variables. */ + +struct random_data + { + int32_t *fptr; /* Front pointer. */ + int32_t *rptr; /* Rear pointer. */ + int32_t *state; /* Array of state values. */ + int rand_type; /* Type of random number generator. */ + int rand_deg; /* Degree of random number generator. */ + int rand_sep; /* Distance between front and rear. */ + int32_t *end_ptr; /* Pointer behind state table. */ + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) __THROW __nonnull ((1, 2)); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + __THROW __nonnull ((2)); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + __THROW __nonnull ((2, 4)); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + __THROW __nonnull ((1, 2)); +# endif /* Use misc. */ +#endif /* Use extended X/Open || misc. */ + + +/* Return a random integer between 0 and RAND_MAX inclusive. */ +extern int rand (void) __THROW; +/* Seed the random number generator with the given number. */ +extern void srand (unsigned int __seed) __THROW; + +#ifdef __USE_POSIX199506 +/* Reentrant interface according to POSIX.1. */ +extern int rand_r (unsigned int *__seed) __THROW; +#endif + + +#if defined __USE_MISC || defined __USE_XOPEN +/* System V style 48-bit random number generator functions. */ + +/* Return non-negative, double-precision floating-point value in [0.0,1.0). */ +extern double drand48 (void) __THROW; +extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1)); + +/* Return non-negative, long integer in [0,2^31). */ +extern long int lrand48 (void) __THROW; +extern long int nrand48 (unsigned short int __xsubi[3]) + __THROW __nonnull ((1)); + +/* Return signed, long integers in [-2^31,2^31). */ +extern long int mrand48 (void) __THROW; +extern long int jrand48 (unsigned short int __xsubi[3]) + __THROW __nonnull ((1)); + +/* Seed random number generator. */ +extern void srand48 (long int __seedval) __THROW; +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + __THROW __nonnull ((1)); +extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1)); + +# ifdef __USE_MISC +/* Data structure for communication with thread safe versions. This + type is to be regarded as opaque. It's only exported because users + have to allocate objects of this type. */ +struct drand48_data + { + unsigned short int __x[3]; /* Current state. */ + unsigned short int __old_x[3]; /* Old state. */ + unsigned short int __c; /* Additive const. in congruential formula. */ + unsigned short int __init; /* Flag for initializing. */ + __extension__ unsigned long long int __a; /* Factor in congruential + formula. */ + }; + +/* Return non-negative, double-precision floating-point value in [0.0,1.0). */ +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) __THROW __nonnull ((1, 2)); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) __THROW __nonnull ((1, 2)); + +/* Return non-negative, long integer in [0,2^31). */ +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __THROW __nonnull ((1, 2)); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __THROW __nonnull ((1, 2)); + +/* Return signed, long integers in [-2^31,2^31). */ +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __THROW __nonnull ((1, 2)); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __THROW __nonnull ((1, 2)); + +/* Seed random number generator. */ +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + __THROW __nonnull ((2)); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) __THROW __nonnull ((1, 2)); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + __THROW __nonnull ((1, 2)); + +/* Return a random integer between zero and 2**32-1 (inclusive). */ +extern __uint32_t arc4random (void) + __THROW __wur; + +/* Fill the buffer with random data. */ +extern void arc4random_buf (void *__buf, size_t __size) + __THROW __nonnull ((1)); + +/* Return a random number between zero (inclusive) and the specified + limit (exclusive). */ +extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) + __THROW __wur; +# endif /* Use misc. */ +#endif /* Use misc or X/Open. */ + +/* Allocate SIZE bytes of memory. */ +extern void *malloc (size_t __size) __THROW __attribute_malloc__ + __attribute_alloc_size__ ((1)) __wur; +/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ +extern void *calloc (size_t __nmemb, size_t __size) + __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur; + +/* Re-allocate the previously allocated block + in PTR, making the new block SIZE bytes long. */ +/* __attribute_malloc__ is not used, because if realloc returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ +extern void *realloc (void *__ptr, size_t __size) + __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2)); + +/* Free a block allocated by `malloc', `realloc' or `calloc'. */ +extern void free (void *__ptr) __THROW; + +#ifdef __USE_MISC +/* Re-allocate the previously allocated block in PTR, making the new + block large enough for NMEMB elements of SIZE bytes each. */ +/* __attribute_malloc__ is not used, because if reallocarray returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + __THROW __attribute_warn_unused_result__ + __attribute_alloc_size__ ((2, 3)) + __attr_dealloc_free; + +/* Add reallocarray as its own deallocator. */ +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + __THROW __attr_dealloc (reallocarray, 1); +#endif + +#ifdef __USE_MISC +# include +#endif /* Use misc. */ + +#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ + || defined __USE_MISC +/* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */ +extern void *valloc (size_t __size) __THROW __attribute_malloc__ + __attribute_alloc_size__ ((1)) __wur; +#endif + +#ifdef __USE_XOPEN2K +/* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */ +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + __THROW __nonnull ((1)) __wur; +#endif + +#ifdef __USE_ISOC11 +/* ISO C variant of aligned allocation. */ +extern void *aligned_alloc (size_t __alignment, size_t __size) + __THROW __attribute_malloc__ __attribute_alloc_align__ ((1)) + __attribute_alloc_size__ ((2)) __wur; +#endif + +/* Abort execution and generate a core-dump. */ +extern void abort (void) __THROW __attribute__ ((__noreturn__)); + + +/* Register a function to be called when `exit' is called. */ +extern int atexit (void (*__func) (void)) __THROW __nonnull ((1)); + +#if defined __USE_ISOC11 || defined __USE_ISOCXX11 +/* Register a function to be called when `quick_exit' is called. */ +# ifdef __cplusplus +extern "C++" int at_quick_exit (void (*__func) (void)) + __THROW __asm ("at_quick_exit") __nonnull ((1)); +# else +extern int at_quick_exit (void (*__func) (void)) __THROW __nonnull ((1)); +# endif +#endif + +#ifdef __USE_MISC +/* Register a function to be called with the status + given to `exit' and the given argument. */ +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + __THROW __nonnull ((1)); +#endif + +/* Call all functions registered with `atexit' and `on_exit', + in the reverse of the order in which they were registered, + perform stdio cleanup, and terminate program execution with STATUS. */ +extern void exit (int __status) __THROW __attribute__ ((__noreturn__)); + +#if defined __USE_ISOC11 || defined __USE_ISOCXX11 +/* Call all functions registered with `at_quick_exit' in the reverse + of the order in which they were registered and terminate program + execution with STATUS. */ +extern void quick_exit (int __status) __THROW __attribute__ ((__noreturn__)); +#endif + +#ifdef __USE_ISOC99 +/* Terminate the program with STATUS without calling any of the + functions registered with `atexit' or `on_exit'. */ +extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__)); +#endif + + +/* Return the value of envariable NAME, or NULL if it doesn't exist. */ +extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur; + +#ifdef __USE_GNU +/* This function is similar to the above but returns NULL if the + programs is running with SUID or SGID enabled. */ +extern char *secure_getenv (const char *__name) + __THROW __nonnull ((1)) __wur; +#endif + +#if defined __USE_MISC || defined __USE_XOPEN +/* The SVID says this is in , but this seems a better place. */ +/* Put STRING, which is of the form "NAME=VALUE", in the environment. + If there is no `=', remove NAME from the environment. */ +extern int putenv (char *__string) __THROW __nonnull ((1)); +#endif + +#ifdef __USE_XOPEN2K +/* Set NAME to VALUE in the environment. + If REPLACE is nonzero, overwrite an existing value. */ +extern int setenv (const char *__name, const char *__value, int __replace) + __THROW __nonnull ((2)); + +/* Remove the variable NAME from the environment. */ +extern int unsetenv (const char *__name) __THROW __nonnull ((1)); +#endif + +#ifdef __USE_MISC +/* The `clearenv' was planned to be added to POSIX.1 but probably + never made it. Nevertheless the POSIX.9 standard (POSIX bindings + for Fortran 77) requires this function. */ +extern int clearenv (void) __THROW; +#endif + + +#if defined __USE_MISC \ + || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) +/* Generate a unique temporary file name from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the file name unique. + Always returns TEMPLATE, it's either a temporary file name or a null + string if it cannot get a unique file name. */ +extern char *mktemp (char *__template) __THROW __nonnull ((1)); +#endif + +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 +/* Generate a unique temporary file name from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the filename unique. + Returns a file descriptor open on the file for reading and writing, + or -1 if it cannot create a uniquely-named file. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +# ifndef __USE_FILE_OFFSET64 +extern int mkstemp (char *__template) __nonnull ((1)) __wur; +# else +# ifdef __REDIRECT +extern int __REDIRECT (mkstemp, (char *__template), mkstemp64) + __nonnull ((1)) __wur; +# else +# define mkstemp mkstemp64 +# endif +# endif +# ifdef __USE_LARGEFILE64 +extern int mkstemp64 (char *__template) __nonnull ((1)) __wur; +# endif +#endif + +#ifdef __USE_MISC +/* Similar to mkstemp, but the template can have a suffix after the + XXXXXX. The length of the suffix is specified in the second + parameter. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +# ifndef __USE_FILE_OFFSET64 +extern int mkstemps (char *__template, int __suffixlen) __nonnull ((1)) __wur; +# else +# ifdef __REDIRECT +extern int __REDIRECT (mkstemps, (char *__template, int __suffixlen), + mkstemps64) __nonnull ((1)) __wur; +# else +# define mkstemps mkstemps64 +# endif +# endif +# ifdef __USE_LARGEFILE64 +extern int mkstemps64 (char *__template, int __suffixlen) + __nonnull ((1)) __wur; +# endif +#endif + +#ifdef __USE_XOPEN2K8 +/* Create a unique temporary directory from TEMPLATE. + The last six characters of TEMPLATE must be "XXXXXX"; + they are replaced with a string that makes the directory name unique. + Returns TEMPLATE, or a null pointer if it cannot get a unique name. + The directory is created mode 700. */ +extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur; +#endif + +#ifdef __USE_GNU +/* Generate a unique temporary file name from TEMPLATE similar to + mkstemp. But allow the caller to pass additional flags which are + used in the open call to create the file.. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +# ifndef __USE_FILE_OFFSET64 +extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur; +# else +# ifdef __REDIRECT +extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64) + __nonnull ((1)) __wur; +# else +# define mkostemp mkostemp64 +# endif +# endif +# ifdef __USE_LARGEFILE64 +extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur; +# endif + +/* Similar to mkostemp, but the template can have a suffix after the + XXXXXX. The length of the suffix is specified in the second + parameter. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +# ifndef __USE_FILE_OFFSET64 +extern int mkostemps (char *__template, int __suffixlen, int __flags) + __nonnull ((1)) __wur; +# else +# ifdef __REDIRECT +extern int __REDIRECT (mkostemps, (char *__template, int __suffixlen, + int __flags), mkostemps64) + __nonnull ((1)) __wur; +# else +# define mkostemps mkostemps64 +# endif +# endif +# ifdef __USE_LARGEFILE64 +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __nonnull ((1)) __wur; +# endif +#endif + + +/* Execute the given line as a shell command. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int system (const char *__command) __wur; + + +#ifdef __USE_GNU +/* Return a malloc'd string containing the canonical absolute name of the + existing named file. */ +extern char *canonicalize_file_name (const char *__name) + __THROW __nonnull ((1)) __attribute_malloc__ + __attr_dealloc_free __wur; +#endif + +#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED +/* Return the canonical absolute name of file NAME. If RESOLVED is + null, the result is malloc'd; otherwise, if the canonical name is + PATH_MAX chars or more, returns null with `errno' set to + ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, + returns the name in RESOLVED. */ +extern char *realpath (const char *__restrict __name, + char *__restrict __resolved) __THROW __wur; +#endif + + +/* Shorthand for type of comparison functions. */ +#ifndef __COMPAR_FN_T +# define __COMPAR_FN_T +typedef int (*__compar_fn_t) (const void *, const void *); + +# ifdef __USE_GNU +typedef __compar_fn_t comparison_fn_t; +# endif +#endif +#ifdef __USE_GNU +typedef int (*__compar_d_fn_t) (const void *, const void *, void *); +#endif + +/* Do a binary search for KEY in BASE, which consists of NMEMB elements + of SIZE bytes each, using COMPAR to perform the comparisons. */ +extern void *bsearch (const void *__key, const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __nonnull ((1, 2, 5)) __wur; + +#ifdef __USE_EXTERN_INLINES +# include +#endif + +/* Sort NMEMB elements of BASE, of SIZE bytes each, + using COMPAR to perform the comparisons. */ +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __nonnull ((1, 4)); +#ifdef __USE_GNU +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __nonnull ((1, 4)); +#endif + + +/* Return the absolute value of X. */ +extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; +extern long int labs (long int __x) __THROW __attribute__ ((__const__)) __wur; + +#ifdef __USE_ISOC99 +__extension__ extern long long int llabs (long long int __x) + __THROW __attribute__ ((__const__)) __wur; +#endif + + +/* Return the `div_t', `ldiv_t' or `lldiv_t' representation + of the value of NUMER over DENOM. */ +/* GCC may have built-ins for these someday. */ +extern div_t div (int __numer, int __denom) + __THROW __attribute__ ((__const__)) __wur; +extern ldiv_t ldiv (long int __numer, long int __denom) + __THROW __attribute__ ((__const__)) __wur; + +#ifdef __USE_ISOC99 +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + __THROW __attribute__ ((__const__)) __wur; +#endif + + +#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ + || defined __USE_MISC +/* Convert floating point numbers to strings. The returned values are + valid only until another call to the same function. */ + +/* Convert VALUE to a string with NDIGIT digits and return a pointer to + this. Set *DECPT with the position of the decimal character and *SIGN + with the sign of the number. */ +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; + +/* Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT + with the position of the decimal character and *SIGN with the sign of + the number. */ +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; + +/* If possible convert VALUE to a string with NDIGIT significant digits. + Otherwise use exponential representation. The resulting string will + be written to BUF. */ +extern char *gcvt (double __value, int __ndigit, char *__buf) + __THROW __nonnull ((3)) __wur; +#endif + +#ifdef __USE_MISC +/* Long double versions of above functions. */ +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __THROW __nonnull ((3, 4)) __wur; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __THROW __nonnull ((3, 4)) __wur; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + __THROW __nonnull ((3)) __wur; + + +/* Reentrant version of the functions above which provide their own + buffers. */ +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __THROW __nonnull ((3, 4, 5)); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __THROW __nonnull ((3, 4, 5)); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __THROW __nonnull ((3, 4, 5)); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __THROW __nonnull ((3, 4, 5)); +#endif /* misc */ + + +/* Return the length of the multibyte character + in S, which is no longer than N. */ +extern int mblen (const char *__s, size_t __n) __THROW; +/* Return the length of the given multibyte character, + putting its `wchar_t' representation in *PWC. */ +extern int mbtowc (wchar_t *__restrict __pwc, + const char *__restrict __s, size_t __n) __THROW; +/* Put the multibyte character represented + by WCHAR in S, returning its length. */ +extern int wctomb (char *__s, wchar_t __wchar) __THROW; + + +/* Convert a multibyte string to a wide char string. */ +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + const char *__restrict __s, size_t __n) __THROW + __attr_access ((__read_only__, 2)); +/* Convert a wide char string to multibyte string. */ +extern size_t wcstombs (char *__restrict __s, + const wchar_t *__restrict __pwcs, size_t __n) + __THROW + __fortified_attr_access (__write_only__, 1, 3) + __attr_access ((__read_only__, 2)); + +#ifdef __USE_MISC +/* Determine whether the string value of RESPONSE matches the affirmation + or negative response expression as specified by the LC_MESSAGES category + in the program's current locale. Returns 1 if affirmative, 0 if + negative, and -1 if not matching. */ +extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur; +#endif + + +#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 +/* Parse comma separated suboption from *OPTIONP and match against + strings in TOKENS. If found return index and set *VALUEP to + optional value introduced by an equal sign. If the suboption is + not part of TOKENS return in *VALUEP beginning of unknown + suboption. On exit *OPTIONP is set to the beginning of the next + token or at the terminating NUL character. */ +extern int getsubopt (char **__restrict __optionp, + char *const *__restrict __tokens, + char **__restrict __valuep) + __THROW __nonnull ((1, 2, 3)) __wur; +#endif + + +/* X/Open pseudo terminal handling. */ + +#ifdef __USE_XOPEN2KXSI +/* Return a master pseudo-terminal handle. */ +extern int posix_openpt (int __oflag) __wur; +#endif + +#ifdef __USE_XOPEN_EXTENDED +/* The next four functions all take a master pseudo-tty fd and + perform an operation on the associated slave: */ + +/* Chown the slave to the calling user. */ +extern int grantpt (int __fd) __THROW; + +/* Release an internal lock so the slave can be opened. + Call after grantpt(). */ +extern int unlockpt (int __fd) __THROW; + +/* Return the pathname of the pseudo terminal slave associated with + the master FD is open on, or NULL on errors. + The returned storage is good until the next call to this function. */ +extern char *ptsname (int __fd) __THROW __wur; +#endif + +#ifdef __USE_GNU +/* Store at most BUFLEN characters of the pathname of the slave pseudo + terminal associated with the master FD is open on in BUF. + Return 0 on success, otherwise an error number. */ +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3); + +/* Open a master pseudo terminal and return its file descriptor. */ +extern int getpt (void); +#endif + +#ifdef __USE_MISC +/* Put the 1 minute, 5 minute and 15 minute load averages into the first + NELEM elements of LOADAVG. Return the number written (never more than + three, but may be less than NELEM), or -1 if an error occurred. */ +extern int getloadavg (double __loadavg[], int __nelem) + __THROW __nonnull ((1)); +#endif + +#if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K +/* Return the index into the active-logins file (utmp) for + the controlling terminal. */ +extern int ttyslot (void) __THROW; +#endif + +#include + +/* Define some macros helping to catch buffer overflows. */ +#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +# include +#endif + +#include +#if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 +# include +#endif + +__END_DECLS + +#endif /* stdlib.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@stdlib.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8075e3830277ca03b187719a61bd74ec1fac01c1 GIT binary patch literal 43360 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 I4ulW?59cgA$N&HU literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h new file mode 100644 index 0000000..54dd834 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h @@ -0,0 +1,541 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * ISO C99 Standard: 7.21 String handling + */ + +#ifndef _STRING_H +#define _STRING_H 1 + +#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +#include + +__BEGIN_DECLS + +/* Get size_t and NULL from . */ +#define __need_size_t +#define __need_NULL +#include + +/* Tell the caller that we provide correct C++ prototypes. */ +#if defined __cplusplus && (__GNUC_PREREQ (4, 4) \ + || __glibc_clang_prereq (3, 5)) +# define __CORRECT_ISO_CPP_STRING_H_PROTO +#endif + + +/* Copy N bytes of SRC to DEST. */ +extern void *memcpy (void *__restrict __dest, const void *__restrict __src, + size_t __n) __THROW __nonnull ((1, 2)); +/* Copy N bytes of SRC to DEST, guaranteeing + correct behavior for overlapping strings. */ +extern void *memmove (void *__dest, const void *__src, size_t __n) + __THROW __nonnull ((1, 2)); + +/* Copy no more than N bytes of SRC to DEST, stopping when C is found. + Return the position in DEST one byte past where C was copied, + or NULL if C was not found in the first N bytes of SRC. */ +#if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X) +extern void *memccpy (void *__restrict __dest, const void *__restrict __src, + int __c, size_t __n) + __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4)); +#endif /* Misc || X/Open. */ + + +/* Set N bytes of S to C. */ +extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1)); + +/* Compare N bytes of S1 and S2. */ +extern int memcmp (const void *__s1, const void *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal. + Return some non-zero value otherwise. + + Essentially __memcmpeq has the exact same semantics as memcmp + except the return value is less constrained. memcmp is always a + correct implementation of __memcmpeq. As well !!memcmp, -memcmp, + or bcmp are correct implementations. + + __memcmpeq is meant to be used by compilers when memcmp return is + only used for its boolean value. + + __memcmpeq is declared only for use by compilers. Programs should + continue to use memcmp. */ +extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Search N bytes of S for C. */ +#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" +{ +extern void *memchr (void *__s, int __c, size_t __n) + __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1)); +extern const void *memchr (const void *__s, int __c, size_t __n) + __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1)); + +# ifdef __OPTIMIZE__ +__extern_always_inline void * +memchr (void *__s, int __c, size_t __n) __THROW +{ + return __builtin_memchr (__s, __c, __n); +} + +__extern_always_inline const void * +memchr (const void *__s, int __c, size_t __n) __THROW +{ + return __builtin_memchr (__s, __c, __n); +} +# endif +} +#else +extern void *memchr (const void *__s, int __c, size_t __n) + __THROW __attribute_pure__ __nonnull ((1)); +#endif + +#ifdef __USE_GNU +/* Search in S for C. This is similar to `memchr' but there is no + length limit. */ +# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" void *rawmemchr (void *__s, int __c) + __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1)); +extern "C++" const void *rawmemchr (const void *__s, int __c) + __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1)); +# else +extern void *rawmemchr (const void *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +# endif + +/* Search N bytes of S for the final occurrence of C. */ +# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" void *memrchr (void *__s, int __c, size_t __n) + __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) + __attr_access ((__read_only__, 1, 3)); +extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) + __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) + __attr_access ((__read_only__, 1, 3)); +# else +extern void *memrchr (const void *__s, int __c, size_t __n) + __THROW __attribute_pure__ __nonnull ((1)) + __attr_access ((__read_only__, 1, 3)); +# endif +#endif + + +/* Copy SRC to DEST. */ +extern char *strcpy (char *__restrict __dest, const char *__restrict __src) + __THROW __nonnull ((1, 2)); +/* Copy no more than N characters of SRC to DEST. */ +extern char *strncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + __THROW __nonnull ((1, 2)); + +/* Append SRC onto DEST. */ +extern char *strcat (char *__restrict __dest, const char *__restrict __src) + __THROW __nonnull ((1, 2)); +/* Append no more than N characters from SRC onto DEST. */ +extern char *strncat (char *__restrict __dest, const char *__restrict __src, + size_t __n) __THROW __nonnull ((1, 2)); + +/* Compare S1 and S2. */ +extern int strcmp (const char *__s1, const char *__s2) + __THROW __attribute_pure__ __nonnull ((1, 2)); +/* Compare N characters of S1 and S2. */ +extern int strncmp (const char *__s1, const char *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Compare the collated forms of S1 and S2. */ +extern int strcoll (const char *__s1, const char *__s2) + __THROW __attribute_pure__ __nonnull ((1, 2)); +/* Put a transformation of SRC into no more than N bytes of DEST. */ +extern size_t strxfrm (char *__restrict __dest, + const char *__restrict __src, size_t __n) + __THROW __nonnull ((2)) __attr_access ((__write_only__, 1, 3)); + +#ifdef __USE_XOPEN2K8 +/* POSIX.1-2008 extended locale interface (see locale.h). */ +# include + +/* Compare the collated forms of S1 and S2, using sorting rules from L. */ +extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) + __THROW __attribute_pure__ __nonnull ((1, 2, 3)); +/* Put a transformation of SRC into no more than N bytes of DEST, + using sorting rules from L. */ +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, + locale_t __l) __THROW __nonnull ((2, 4)) + __attr_access ((__write_only__, 1, 3)); +#endif + +#if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \ + || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X)) +/* Duplicate S, returning an identical malloc'd string. */ +extern char *strdup (const char *__s) + __THROW __attribute_malloc__ __nonnull ((1)); +#endif + +/* Return a malloc'd copy of at most N bytes of STRING. The + resultant string is terminated even if no null terminator + appears before STRING[N]. */ +#if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X) +extern char *strndup (const char *__string, size_t __n) + __THROW __attribute_malloc__ __nonnull ((1)); +#endif + +#if defined __USE_GNU && defined __GNUC__ +/* Duplicate S, returning an identical alloca'd string. */ +# define strdupa(s) \ + (__extension__ \ + ({ \ + const char *__old = (s); \ + size_t __len = strlen (__old) + 1; \ + char *__new = (char *) __builtin_alloca (__len); \ + (char *) memcpy (__new, __old, __len); \ + })) + +/* Return an alloca'd copy of at most N bytes of string. */ +# define strndupa(s, n) \ + (__extension__ \ + ({ \ + const char *__old = (s); \ + size_t __len = strnlen (__old, (n)); \ + char *__new = (char *) __builtin_alloca (__len + 1); \ + __new[__len] = '\0'; \ + (char *) memcpy (__new, __old, __len); \ + })) +#endif + +/* Find the first occurrence of C in S. */ +#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" +{ +extern char *strchr (char *__s, int __c) + __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1)); +extern const char *strchr (const char *__s, int __c) + __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1)); + +# ifdef __OPTIMIZE__ +__extern_always_inline char * +strchr (char *__s, int __c) __THROW +{ + return __builtin_strchr (__s, __c); +} + +__extern_always_inline const char * +strchr (const char *__s, int __c) __THROW +{ + return __builtin_strchr (__s, __c); +} +# endif +} +#else +extern char *strchr (const char *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +#endif +/* Find the last occurrence of C in S. */ +#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" +{ +extern char *strrchr (char *__s, int __c) + __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1)); +extern const char *strrchr (const char *__s, int __c) + __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1)); + +# ifdef __OPTIMIZE__ +__extern_always_inline char * +strrchr (char *__s, int __c) __THROW +{ + return __builtin_strrchr (__s, __c); +} + +__extern_always_inline const char * +strrchr (const char *__s, int __c) __THROW +{ + return __builtin_strrchr (__s, __c); +} +# endif +} +#else +extern char *strrchr (const char *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +#endif + +#ifdef __USE_GNU +/* This function is similar to `strchr'. But it returns a pointer to + the closing NUL byte in case C is not found in S. */ +# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" char *strchrnul (char *__s, int __c) + __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1)); +extern "C++" const char *strchrnul (const char *__s, int __c) + __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1)); +# else +extern char *strchrnul (const char *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +# endif +#endif + +/* Return the length of the initial segment of S which + consists entirely of characters not in REJECT. */ +extern size_t strcspn (const char *__s, const char *__reject) + __THROW __attribute_pure__ __nonnull ((1, 2)); +/* Return the length of the initial segment of S which + consists entirely of characters in ACCEPT. */ +extern size_t strspn (const char *__s, const char *__accept) + __THROW __attribute_pure__ __nonnull ((1, 2)); +/* Find the first occurrence in S of any character in ACCEPT. */ +#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" +{ +extern char *strpbrk (char *__s, const char *__accept) + __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2)); +extern const char *strpbrk (const char *__s, const char *__accept) + __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2)); + +# ifdef __OPTIMIZE__ +__extern_always_inline char * +strpbrk (char *__s, const char *__accept) __THROW +{ + return __builtin_strpbrk (__s, __accept); +} + +__extern_always_inline const char * +strpbrk (const char *__s, const char *__accept) __THROW +{ + return __builtin_strpbrk (__s, __accept); +} +# endif +} +#else +extern char *strpbrk (const char *__s, const char *__accept) + __THROW __attribute_pure__ __nonnull ((1, 2)); +#endif +/* Find the first occurrence of NEEDLE in HAYSTACK. */ +#ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" +{ +extern char *strstr (char *__haystack, const char *__needle) + __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); +extern const char *strstr (const char *__haystack, const char *__needle) + __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); + +# ifdef __OPTIMIZE__ +__extern_always_inline char * +strstr (char *__haystack, const char *__needle) __THROW +{ + return __builtin_strstr (__haystack, __needle); +} + +__extern_always_inline const char * +strstr (const char *__haystack, const char *__needle) __THROW +{ + return __builtin_strstr (__haystack, __needle); +} +# endif +} +#else +extern char *strstr (const char *__haystack, const char *__needle) + __THROW __attribute_pure__ __nonnull ((1, 2)); +#endif + + +/* Divide S into tokens separated by characters in DELIM. */ +extern char *strtok (char *__restrict __s, const char *__restrict __delim) + __THROW __nonnull ((2)); + +/* Divide S into tokens separated by characters in DELIM. Information + passed between calls are stored in SAVE_PTR. */ +extern char *__strtok_r (char *__restrict __s, + const char *__restrict __delim, + char **__restrict __save_ptr) + __THROW __nonnull ((2, 3)); +#ifdef __USE_POSIX +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, + char **__restrict __save_ptr) + __THROW __nonnull ((2, 3)); +#endif + +#ifdef __USE_GNU +/* Similar to `strstr' but this function ignores the case of both strings. */ +# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" char *strcasestr (char *__haystack, const char *__needle) + __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2)); +extern "C++" const char *strcasestr (const char *__haystack, + const char *__needle) + __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2)); +# else +extern char *strcasestr (const char *__haystack, const char *__needle) + __THROW __attribute_pure__ __nonnull ((1, 2)); +# endif +#endif + +#ifdef __USE_GNU +/* Find the first occurrence of NEEDLE in HAYSTACK. + NEEDLE is NEEDLELEN bytes long; + HAYSTACK is HAYSTACKLEN bytes long. */ +extern void *memmem (const void *__haystack, size_t __haystacklen, + const void *__needle, size_t __needlelen) + __THROW __attribute_pure__ __nonnull ((1, 3)) + __attr_access ((__read_only__, 1, 2)) + __attr_access ((__read_only__, 3, 4)); + +/* Copy N bytes of SRC to DEST, return pointer to bytes after the + last written byte. */ +extern void *__mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + __THROW __nonnull ((1, 2)); +extern void *mempcpy (void *__restrict __dest, + const void *__restrict __src, size_t __n) + __THROW __nonnull ((1, 2)); +#endif + + +/* Return the length of S. */ +extern size_t strlen (const char *__s) + __THROW __attribute_pure__ __nonnull ((1)); + +#ifdef __USE_XOPEN2K8 +/* Find the length of STRING, but scan at most MAXLEN characters. + If no '\0' terminator is found in that many characters, return MAXLEN. */ +extern size_t strnlen (const char *__string, size_t __maxlen) + __THROW __attribute_pure__ __nonnull ((1)); +#endif + + +/* Return a string describing the meaning of the `errno' code in ERRNUM. */ +extern char *strerror (int __errnum) __THROW; +#ifdef __USE_XOPEN2K +/* Reentrant version of `strerror'. + There are 2 flavors of `strerror_r', GNU which returns the string + and may or may not use the supplied temporary buffer and POSIX one + which fills the string into the buffer. + To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L + without -D_GNU_SOURCE is needed, otherwise the GNU version is + preferred. */ +# if defined __USE_XOPEN2K && !defined __USE_GNU +/* Fill BUF with a string describing the meaning of the `errno' code in + ERRNUM. */ +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (strerror_r, + (int __errnum, char *__buf, size_t __buflen), + __xpg_strerror_r) __nonnull ((2)) + __attr_access ((__write_only__, 2, 3)); +# else +extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) + __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); +# define strerror_r __xpg_strerror_r +# endif +# else +/* If a temporary buffer is required, at most BUFLEN bytes of BUF will be + used. */ +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3)); +# endif + +# ifdef __USE_GNU +/* Return a string describing the meaning of tthe error in ERR. */ +extern const char *strerrordesc_np (int __err) __THROW; +/* Return a string with the error name in ERR. */ +extern const char *strerrorname_np (int __err) __THROW; +# endif +#endif + +#ifdef __USE_XOPEN2K8 +/* Translate error number to string according to the locale L. */ +extern char *strerror_l (int __errnum, locale_t __l) __THROW; +#endif + +#ifdef __USE_MISC +# include + +/* Set N bytes of S to 0. The compiler will not delete a call to this + function, even if S is dead after the call. */ +extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)) + __fortified_attr_access (__write_only__, 1, 2); + +/* Return the next DELIM-delimited token from *STRINGP, + terminating it with a '\0', and update *STRINGP to point past it. */ +extern char *strsep (char **__restrict __stringp, + const char *__restrict __delim) + __THROW __nonnull ((1, 2)); +#endif + +#ifdef __USE_XOPEN2K8 +/* Return a string describing the meaning of the signal number in SIG. */ +extern char *strsignal (int __sig) __THROW; + +# ifdef __USE_GNU +/* Return an abbreviation string for the signal number SIG. */ +extern const char *sigabbrev_np (int __sig) __THROW; +/* Return a string describing the meaning of the signal number in SIG, + the result is not translated. */ +extern const char *sigdescr_np (int __sig) __THROW; +# endif + +/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) + __THROW __nonnull ((1, 2)); +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) + __THROW __nonnull ((1, 2)); + +/* Copy no more than N characters of SRC to DEST, returning the address of + the last character written into DEST. */ +extern char *__stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + __THROW __nonnull ((1, 2)); +extern char *stpncpy (char *__restrict __dest, + const char *__restrict __src, size_t __n) + __THROW __nonnull ((1, 2)); +#endif + +#ifdef __USE_GNU +/* Compare S1 and S2 as strings holding name & indices/version numbers. */ +extern int strverscmp (const char *__s1, const char *__s2) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Sautee STRING briskly. */ +extern char *strfry (char *__string) __THROW __nonnull ((1)); + +/* Frobnicate N bytes of S. */ +extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1)) + __attr_access ((__read_write__, 1, 2)); + +# ifndef basename +/* Return the file name within directory of FILENAME. We don't + declare the function if the `basename' macro is available (defined + in ) which makes the XPG version of this function + available. */ +# ifdef __CORRECT_ISO_CPP_STRING_H_PROTO +extern "C++" char *basename (char *__filename) + __THROW __asm ("basename") __nonnull ((1)); +extern "C++" const char *basename (const char *__filename) + __THROW __asm ("basename") __nonnull ((1)); +# else +extern char *basename (const char *__filename) __THROW __nonnull ((1)); +# endif +# endif +#endif + +#if __GNUC_PREREQ (3,4) +# if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +/* Functions with security checks. */ +# include +# endif +#endif + +__END_DECLS + +#endif /* string.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@string.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8f17dd3f50b5c05426419185a5a36efe6974e123 GIT binary patch literal 17042 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 hI;d!yy<4yx#m+zv(2{|oZf#Ww%| literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h new file mode 100644 index 0000000..a2a2efd --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h @@ -0,0 +1,148 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _STRINGS_H +#define _STRINGS_H 1 + +#include +#define __need_size_t +#include + +/* Tell the caller that we provide correct C++ prototypes. */ +#if defined __cplusplus && __GNUC_PREREQ (4, 4) +# define __CORRECT_ISO_CPP_STRINGS_H_PROTO +#endif + +__BEGIN_DECLS + +#if defined __USE_MISC || !defined __USE_XOPEN2K8 +/* Compare N bytes of S1 and S2 (same as memcmp). */ +extern int bcmp (const void *__s1, const void *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */ +extern void bcopy (const void *__src, void *__dest, size_t __n) + __THROW __nonnull ((1, 2)); + +/* Set N bytes of S to 0. */ +extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1)); + +/* Find the first occurrence of C in S (same as strchr). */ +# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO +extern "C++" +{ +extern char *index (char *__s, int __c) + __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); +extern const char *index (const char *__s, int __c) + __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); + +# if defined __OPTIMIZE__ +__extern_always_inline char * +index (char *__s, int __c) __THROW +{ + return __builtin_index (__s, __c); +} + +__extern_always_inline const char * +index (const char *__s, int __c) __THROW +{ + return __builtin_index (__s, __c); +} +# endif +} +# else +extern char *index (const char *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +# endif + +/* Find the last occurrence of C in S (same as strrchr). */ +# ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO +extern "C++" +{ +extern char *rindex (char *__s, int __c) + __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); +extern const char *rindex (const char *__s, int __c) + __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); + +# if defined __OPTIMIZE__ +__extern_always_inline char * +rindex (char *__s, int __c) __THROW +{ + return __builtin_rindex (__s, __c); +} + +__extern_always_inline const char * +rindex (const char *__s, int __c) __THROW +{ + return __builtin_rindex (__s, __c); +} +# endif +} +# else +extern char *rindex (const char *__s, int __c) + __THROW __attribute_pure__ __nonnull ((1)); +# endif +#endif + +#if defined __USE_MISC || !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI +/* Return the position of the first bit set in I, or 0 if none are set. + The least-significant bit is position 1, the most-significant 32. */ +extern int ffs (int __i) __THROW __attribute_const__; +#endif + +/* The following two functions are non-standard but necessary for non-32 bit + platforms. */ +# ifdef __USE_MISC +extern int ffsl (long int __l) __THROW __attribute_const__; +__extension__ extern int ffsll (long long int __ll) + __THROW __attribute_const__; +# endif + +/* Compare S1 and S2, ignoring case. */ +extern int strcasecmp (const char *__s1, const char *__s2) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +/* Compare no more than N chars of S1 and S2, ignoring case. */ +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) + __THROW __attribute_pure__ __nonnull ((1, 2)); + +#ifdef __USE_XOPEN2K8 +/* POSIX.1-2008 extended locale interface (see locale.h). */ +# include + +/* Compare S1 and S2, ignoring case, using collation rules from LOC. */ +extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) + __THROW __attribute_pure__ __nonnull ((1, 2, 3)); + +/* Compare no more than N chars of S1 and S2, ignoring case, using + collation rules from LOC. */ +extern int strncasecmp_l (const char *__s1, const char *__s2, + size_t __n, locale_t __loc) + __THROW __attribute_pure__ __nonnull ((1, 2, 4)); +#endif + +__END_DECLS + +#if __GNUC_PREREQ (3,4) && __USE_FORTIFY_LEVEL > 0 \ + && defined __fortify_function +/* Functions with security checks. */ +# if defined __USE_MISC || !defined __USE_XOPEN2K8 +# include +# endif +#endif + +#endif /* strings.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@strings.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8381de7ebd7d608feb91e4a503666d6fb194c816 GIT binary patch literal 6444 zcmb7Ie{dAl9e2l2T1Tl&ZJo~0%4lnA>y&mVief7c*iMHIw&M2t-tJ!Z zE_WBb8D8%8ec$){`F_5?-qM6V4QwAjfhZJC$|4_5rn%v8Na06hH7v(uEv#xvn$yw> zAL39gmtv*FXORqMWMx>862X|D@SG+qV>edNkJ`g&RS63cmrBR@FsF@;@S&uEs%U3O z(9|&ARl^J;4yhWe@r+hhG|saav08SM=!vIfR+EC9EQ+#JSxgf|UKMs$0W>tG@oI)0 zsiK2G=29{@Tmi1lGmv6amE5w)F-+&??v0g=@={D-C5cz7aG+{2LDGWouNngcy^#cr zfca3=5uU4Tnbl-b;FydM;~7p)OB%0K7RLIj?AmQ>Vp%~z25DAy%SIQ$Jv;jh6NkKS zYn@%vBxFVqQo>M}6iK+bHMBa^R>*50n^g$TXHN~EC`xQ~Obv4}K3*kMT2kTJSWr!} z3LguSBB<=LiA~Ail&dUel#(e-61{3%!80zH1QfgygxXWeSDuY?o90nAH46@?v1;y{ zRga@nEjA+tPsFnzt8mF#tcJ1M)fA>=+`{DaP^x^I8f8{wrCJ6+kg+Vufb!iIw_GeT zb<2~*Nn$5fNT|G40rqF9D27q1slfTD@+oNBMUGh=njpcwLuOJ!`J%M?ZxEwtYptSY z7BfbhE_)uMoTU(q3@4peh*jXr;B^+58CKBZDK=3hMbo&A2BGOmnxKu9MNCX#Rd{rz z%j*JOx!?#CxsfS&G#B*>HiaidW%Xv!iD`|`R+cK0wnfo3h+~-9rxA?#Sj7QJlB6t( zgp`JhMS4gLR?7~1IhR!f2B6%^ZWSz)-JPzcS+>J7I(!jP27n+*Q%h5=uP9kw zY|P#uE*B}7#u~Q8qizYhwmyJ1)OVpf>-V7t>g)B1%Wv;K`N&gm@L8C-5)BDSLpn$t ztMZ&U!lZnhEU6mJ!4RRFpa(Pu=#nQb0U8IB(P)N|0<>ige!*8iaynfIMP+dWrVuU3 zv?#-0Ey+rB57Da9a-8mOrdcUQ_k%7WA<1|;(-=a4POI?U!O5uF!&jA%yDm)L+vL10U2J*FW*!ddJcCzqd(0@ml8WU6Fx*=sV~=+&{1T%GIbIAu8|8 zucoLxn(RYJ54&&c|Fw2(uFdawTuu3K^TyCI@OcP6l)m=LO{a#pt#A+}qElQ>Q6dsG zP;$fhmD|po^BlJ+0rE`likK^A4J%(X%}OQj!Mhs$=e29*J^Qctt-8gB`h_qP!k zs#9&EC>3egmx;P3FZ}z}NA}xbfG<8AONJ4!vAGEK@o>A9fO(#Vfe4o}AQPC!zvF@e zA%>KpVMIU*(3=CatkA1zAr29fcp8TewnB~pkWTTess&*fNJ3oTSTKT53hK04$Puho zluP8+w17vHerVO-zSwu{#&?J#31?y{MI}%o365<3=zR3C+Z+C3bHtX6RS1PVkuV}Y z2Kgr?u*=SAem`&40m@qay)W;%Vb1dJ9?`pYzdU^Z)3?a_D|aMMdp~IUFTtI0W&#wI zL0KGtclYo5p;L7=o4Ac)fh3Oc*%HtY6F+jfARTdRw?6zwcl}D`ihiLcxZ}Z}?!S?! zW?W1oMKNd)tM)#=V*6bWIi4$~3gCzliZyEeYNODQ6$3P%ouqnms#mWjNw zO8>(3rydrh&Q!cM5P z!jHoH86WeLydM-_yW_#`m!H@F_u)YMHBEaP^yA94>vpsr3=`zu1~0JSMU9Ps{G$tO z-Qm+YWMg3nrbZENtMgR|1?jTZc(8}Vnh3N{WkqN~Dn<^<4V0nG2hoYF6S_{7m22ac^EDBVssbZIy8KzdxI|NYSEd+$BDbrZg!z#Yk$OyrHZFs;C! z1vuZ}qpx`+7zLXCJKQoe6(%Ion_m0z*rngL^jhQ;HBxi3qd;ky@$^Ng#zl>d5y~I)k4C7DNC!L_j10o6MKoBmku0p^k#SfjBa^Te z3ejHrsJs~Z4S`F2>Cva%qJS-UP zi*CV!(VL@NUN8i$8Z)S}V5lu-P~3OAg7z5Ptax<0r`@j9zx4v!v%i~0^x(c2YZ%~UDEN-eHtLch$6DhF? z(Ia&eiFRU;QD3yvG-&xU=qiuq^c5drS(f>*x&G z%w%Q?%R)zfoD`fUBzLr?Xtu_s>5lC~wi5o+JOeI7_T z>lSamWtiO~;Y)rJQRgw=1q9XGkD+(9f4bNgV)xUuf`6)a^^84aJz3}iIZl6B)PIbnH|yE)fKY_;V2j1&I{ DccHE3 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h new file mode 100644 index 0000000..f525f67 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h @@ -0,0 +1,705 @@ +/* Copyright (C) 1992-2022 Free Software Foundation, Inc. + Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _SYS_CDEFS_H +#define _SYS_CDEFS_H 1 + +/* We are almost always included from features.h. */ +#ifndef _FEATURES_H +# include +#endif + +/* The GNU libc does not support any K&R compilers or the traditional mode + of ISO C compilers anymore. Check for some of the combinations not + supported anymore. */ +#if defined __GNUC__ && !defined __STDC__ && !defined __cplusplus +# error "You need a ISO C or C++ conforming compiler to use the glibc headers" +#endif + +/* Some user header file might have defined this before. */ +#undef __P +#undef __PMT + +/* Compilers that lack __has_attribute may object to + #if defined __has_attribute && __has_attribute (...) + even though they do not need to evaluate the right-hand side of the &&. + Similarly for __has_builtin, etc. */ +#if (defined __has_attribute \ + && (!defined __clang_minor__ \ + || 3 < __clang_major__ + (5 <= __clang_minor__))) +# define __glibc_has_attribute(attr) __has_attribute (attr) +#else +# define __glibc_has_attribute(attr) 0 +#endif +#ifdef __has_builtin +# define __glibc_has_builtin(name) __has_builtin (name) +#else +# define __glibc_has_builtin(name) 0 +#endif +#ifdef __has_extension +# define __glibc_has_extension(ext) __has_extension (ext) +#else +# define __glibc_has_extension(ext) 0 +#endif + +#if defined __GNUC__ || defined __clang__ + +/* All functions, except those with callbacks or those that + synchronize memory, are leaf functions. */ +# if __GNUC_PREREQ (4, 6) && !defined _LIBC +# define __LEAF , __leaf__ +# define __LEAF_ATTR __attribute__ ((__leaf__)) +# else +# define __LEAF +# define __LEAF_ATTR +# endif + +/* GCC can always grok prototypes. For C++ programs we add throw() + to help it optimize the function calls. But this only works with + gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions + as non-throwing using a function attribute since programs can use + the -fexceptions options for C code as well. */ +# if !defined __cplusplus \ + && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) +# define __THROW __attribute__ ((__nothrow__ __LEAF)) +# define __THROWNL __attribute__ ((__nothrow__)) +# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct +# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct +# else +# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) +# if __cplusplus >= 201103L +# define __THROW noexcept (true) +# else +# define __THROW throw () +# endif +# define __THROWNL __THROW +# define __NTH(fct) __LEAF_ATTR fct __THROW +# define __NTHNL(fct) fct __THROW +# else +# define __THROW +# define __THROWNL +# define __NTH(fct) fct +# define __NTHNL(fct) fct +# endif +# endif + +#else /* Not GCC or clang. */ + +# if (defined __cplusplus \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) +# define __inline inline +# else +# define __inline /* No inline functions. */ +# endif + +# define __THROW +# define __THROWNL +# define __NTH(fct) fct + +#endif /* GCC || clang. */ + +/* These two macros are not used in glibc anymore. They are kept here + only because some other projects expect the macros to be defined. */ +#define __P(args) args +#define __PMT(args) args + +/* For these things, GCC behaves the ANSI way normally, + and the non-ANSI way under -traditional. */ + +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x + +/* This is not a typedef so `const __ptr_t' does the right thing. */ +#define __ptr_t void * + + +/* C++ needs to know that types and declarations are C, not C++. */ +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS +# define __END_DECLS +#endif + + +/* Fortify support. */ +#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) +#define __bos0(ptr) __builtin_object_size (ptr, 0) + +/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ +#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ + || __GNUC_PREREQ (12, 0)) +# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) +# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) +#else +# define __glibc_objsize0(__o) __bos0 (__o) +# define __glibc_objsize(__o) __bos (__o) +#endif + +/* Compile time conditions to choose between the regular, _chk and _chk_warn + variants. These conditions should get evaluated to constant and optimized + away. */ + +#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) +#define __glibc_unsigned_or_positive(__l) \ + ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ + || (__builtin_constant_p (__l) && (__l) > 0)) + +/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ + condition can be folded to a constant and if it is true, or unknown (-1) */ +#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ + ((__builtin_constant_p (__osz) && (__osz) == (__SIZE_TYPE__) -1) \ + || (__glibc_unsigned_or_positive (__l) \ + && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ + (__s), (__osz))) \ + && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) + +/* Conversely, we know at compile time that the length is unsafe if the + __L * __S <= __OBJSZ condition can be folded to a constant and if it is + false. */ +#define __glibc_unsafe_len(__l, __s, __osz) \ + (__glibc_unsigned_or_positive (__l) \ + && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ + __s, __osz)) \ + && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) + +/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be + declared. */ + +#define __glibc_fortify(f, __l, __s, __osz, ...) \ + (__glibc_safe_or_unknown_len (__l, __s, __osz) \ + ? __ ## f ## _alias (__VA_ARGS__) \ + : (__glibc_unsafe_len (__l, __s, __osz) \ + ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ + : __ ## f ## _chk (__VA_ARGS__, __osz))) \ + +/* Fortify function f, where object size argument passed to f is the number of + elements and not total size. */ + +#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ + (__glibc_safe_or_unknown_len (__l, __s, __osz) \ + ? __ ## f ## _alias (__VA_ARGS__) \ + : (__glibc_unsafe_len (__l, __s, __osz) \ + ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ + : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ + +#if __GNUC_PREREQ (4,3) +# define __warnattr(msg) __attribute__((__warning__ (msg))) +# define __errordecl(name, msg) \ + extern void name (void) __attribute__((__error__ (msg))) +#else +# define __warnattr(msg) +# define __errordecl(name, msg) extern void name (void) +#endif + +/* Support for flexible arrays. + Headers that should use flexible arrays only if they're "real" + (e.g. only if they won't affect sizeof()) should test + #if __glibc_c99_flexarr_available. */ +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif __GNUC_PREREQ (2,97) || defined __clang__ +/* GCC 2.97 and clang support C99 flexible array members as an extension, + even when in C89 mode or compiling C++ (any version). */ +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif defined __GNUC__ +/* Pre-2.97 GCC did not support C99 flexible arrays but did have + an equivalent extension with slightly different notation. */ +# define __flexarr [0] +# define __glibc_c99_flexarr_available 1 +#else +/* Some other non-C99 compiler. Approximate with [1]. */ +# define __flexarr [1] +# define __glibc_c99_flexarr_available 0 +#endif + + +/* __asm__ ("xyz") is used throughout the headers to rename functions + at the assembly language level. This is wrapped by the __REDIRECT + macro, in order to support compilers that can do this some other + way. When compilers don't support asm-names at all, we have to do + preprocessor tricks instead (which don't have exactly the right + semantics, but it's the best we can do). + + Example: + int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ + +#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) + +# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) +# ifdef __cplusplus +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __THROW __asm__ (__ASMNAME (#alias)) +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __THROWNL __asm__ (__ASMNAME (#alias)) +# else +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROW +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROWNL +# endif +# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) +# define __ASMNAME2(prefix, cname) __STRING (prefix) cname + +/* +#elif __SOME_OTHER_COMPILER__ + +# define __REDIRECT(name, proto, alias) name proto; \ + _Pragma("let " #name " = " #alias) +*/ +#endif + +/* GCC and clang have various useful declarations that can be made with + the '__attribute__' syntax. All of the ways we use this do fine if + they are omitted for compilers that don't understand it. */ +#if !(defined __GNUC__ || defined __clang__) +# define __attribute__(xyz) /* Ignore */ +#endif + +/* At some point during the gcc 2.96 development the `malloc' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) +# define __attribute_malloc__ __attribute__ ((__malloc__)) +#else +# define __attribute_malloc__ /* Ignore */ +#endif + +/* Tell the compiler which arguments to an allocation function + indicate the size of the allocation. */ +#if __GNUC_PREREQ (4, 3) +# define __attribute_alloc_size__(params) \ + __attribute__ ((__alloc_size__ params)) +#else +# define __attribute_alloc_size__(params) /* Ignore. */ +#endif + +/* Tell the compiler which argument to an allocation function + indicates the alignment of the allocation. */ +#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) +# define __attribute_alloc_align__(param) \ + __attribute__ ((__alloc_align__ param)) +#else +# define __attribute_alloc_align__(param) /* Ignore. */ +#endif + +/* At some point during the gcc 2.96 development the `pure' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) +# define __attribute_pure__ __attribute__ ((__pure__)) +#else +# define __attribute_pure__ /* Ignore */ +#endif + +/* This declaration tells the compiler that the value is constant. */ +#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) +# define __attribute_const__ __attribute__ ((__const__)) +#else +# define __attribute_const__ /* Ignore */ +#endif + +#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) +# define __attribute_maybe_unused__ __attribute__ ((__unused__)) +#else +# define __attribute_maybe_unused__ /* Ignore */ +#endif + +/* At some point during the gcc 3.1 development the `used' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) +# define __attribute_used__ __attribute__ ((__used__)) +# define __attribute_noinline__ __attribute__ ((__noinline__)) +#else +# define __attribute_used__ __attribute__ ((__unused__)) +# define __attribute_noinline__ /* Ignore */ +#endif + +/* Since version 3.2, gcc allows marking deprecated functions. */ +#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) +# define __attribute_deprecated__ __attribute__ ((__deprecated__)) +#else +# define __attribute_deprecated__ /* Ignore */ +#endif + +/* Since version 4.5, gcc also allows one to specify the message printed + when a deprecated function is used. clang claims to be gcc 4.2, but + may also support this feature. */ +#if __GNUC_PREREQ (4,5) \ + || __glibc_has_extension (__attribute_deprecated_with_message__) +# define __attribute_deprecated_msg__(msg) \ + __attribute__ ((__deprecated__ (msg))) +#else +# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ +#endif + +/* At some point during the gcc 2.8 development the `format_arg' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. + If several `format_arg' attributes are given for the same function, in + gcc-3.0 and older, all but the last one are ignored. In newer gccs, + all designated arguments are considered. */ +#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) +# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) +#else +# define __attribute_format_arg__(x) /* Ignore */ +#endif + +/* At some point during the gcc 2.97 development the `strfmon' format + attribute for functions was introduced. We don't want to use it + unconditionally (although this would be possible) since it + generates warnings. */ +#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) +# define __attribute_format_strfmon__(a,b) \ + __attribute__ ((__format__ (__strfmon__, a, b))) +#else +# define __attribute_format_strfmon__(a,b) /* Ignore */ +#endif + +/* The nonnull function attribute marks pointer parameters that + must not be NULL. This has the name __nonnull in glibc, + and __attribute_nonnull__ in files shared with Gnulib to avoid + collision with a different __nonnull in DragonFlyBSD 5.9. */ +#ifndef __attribute_nonnull__ +# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) +# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) +# else +# define __attribute_nonnull__(params) +# endif +#endif +#ifndef __nonnull +# define __nonnull(params) __attribute_nonnull__ (params) +#endif + +/* The returns_nonnull function attribute marks the return type of the function + as always being non-null. */ +#ifndef __returns_nonnull +# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) +# define __returns_nonnull __attribute__ ((__returns_nonnull__)) +# else +# define __returns_nonnull +# endif +#endif + +/* If fortification mode, we warn about unused results of certain + function calls which can lead to problems. */ +#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) +# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 +# define __wur __attribute_warn_unused_result__ +# endif +#else +# define __attribute_warn_unused_result__ /* empty */ +#endif +#ifndef __wur +# define __wur /* Ignore */ +#endif + +/* Forces a function to be always inlined. */ +#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) +/* The Linux kernel defines __always_inline in stddef.h (283d7573), and + it conflicts with this definition. Therefore undefine it first to + allow either header to be included first. */ +# undef __always_inline +# define __always_inline __inline __attribute__ ((__always_inline__)) +#else +# undef __always_inline +# define __always_inline __inline +#endif + +/* Associate error messages with the source location of the call site rather + than with the source location inside the function. */ +#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) +# define __attribute_artificial__ __attribute__ ((__artificial__)) +#else +# define __attribute_artificial__ /* Ignore */ +#endif + +/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ + or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions + older than 4.3 may define these macros and still not guarantee GNU inlining + semantics. + + clang++ identifies itself as gcc-4.2, but has support for GNU inlining + semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and + __GNUC_GNU_INLINE__ macro definitions. */ +#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ + || defined __GNUC_GNU_INLINE__))) +# if defined __GNUC_STDC_INLINE__ || defined __cplusplus +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__)) +# else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +# endif +#endif + +#ifdef __extern_always_inline +# define __fortify_function __extern_always_inline __attribute_artificial__ +#endif + +/* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +#if __GNUC_PREREQ (4,3) +# define __va_arg_pack() __builtin_va_arg_pack () +# define __va_arg_pack_len() __builtin_va_arg_pack_len () +#endif + +/* It is possible to compile containing GCC extensions even if GCC is + run in pedantic mode if the uses are carefully marked using the + `__extension__' keyword. But this is not generally available before + version 2.8. */ +#if !(__GNUC_PREREQ (2,8) || defined __clang__) +# define __extension__ /* Ignore */ +#endif + +/* __restrict is known in EGCS 1.2 and above, and in clang. + It works also in C++ mode (outside of arrays), but only when spelled + as '__restrict', not 'restrict'. */ +#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict restrict +# else +# define __restrict /* Ignore */ +# endif +#endif + +/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is + array_name[restrict] + GCC 3.1 and clang support this. + This syntax is not usable in C++ mode. */ +#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus +# define __restrict_arr __restrict +#else +# ifdef __GNUC__ +# define __restrict_arr /* Not supported in old GCC. */ +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict_arr restrict +# else +/* Some other non-C99 compiler. */ +# define __restrict_arr /* Not supported. */ +# endif +# endif +#endif + +#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) +# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) +# define __glibc_likely(cond) __builtin_expect ((cond), 1) +#else +# define __glibc_unlikely(cond) (cond) +# define __glibc_likely(cond) (cond) +#endif + +#if (!defined _Noreturn \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && !(__GNUC_PREREQ (4,7) \ + || (3 < __clang_major__ + (5 <= __clang_minor__)))) +# if __GNUC_PREREQ (2,8) +# define _Noreturn __attribute__ ((__noreturn__)) +# else +# define _Noreturn +# endif +#endif + +#if __GNUC_PREREQ (8, 0) +/* Describes a char array whose address can safely be passed as the first + argument to strncpy and strncat, as the char array is not necessarily + a NUL-terminated string. */ +# define __attribute_nonstring__ __attribute__ ((__nonstring__)) +#else +# define __attribute_nonstring__ +#endif + +/* Undefine (also defined in libc-symbols.h). */ +#undef __attribute_copy__ +#if __GNUC_PREREQ (9, 0) +/* Copies attributes from the declaration or type referenced by + the argument. */ +# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) +#else +# define __attribute_copy__(arg) +#endif + +#if (!defined _Static_assert && !defined __cplusplus \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ + || defined __STRICT_ANSI__)) +# define _Static_assert(expr, diagnostic) \ + extern int (*__Static_assert_function (void)) \ + [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] +#endif + +/* Gnulib avoids including these, as they don't work on non-glibc or + older glibc platforms. */ +#ifndef __GNULIB_CDEFS +# include +# include +#endif + +#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 +# ifdef __REDIRECT + +/* Alias name defined automatically. */ +# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir +# define __LDBL_REDIR_DECL(name) \ + extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); + +/* Alias name defined automatically, with leading underscores. */ +# define __LDBL_REDIR2_DECL(name) \ + extern __typeof (__##name) __##name \ + __asm (__ASMNAME ("__" #name "ieee128")); + +/* Alias name defined manually. */ +# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 +# define __LDBL_REDIR1_DECL(name, alias) \ + extern __typeof (name) name __asm (__ASMNAME (#alias)); + +# define __LDBL_REDIR1_NTH(name, proto, alias) \ + __REDIRECT_NTH (name, proto, alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) + +/* Unused. */ +# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl +# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth + +# else +_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); +# endif +#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# define __LDBL_COMPAT 1 +# ifdef __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) +# define __LDBL_REDIR(name, proto) \ + __LDBL_REDIR1 (name, proto, __nldbl_##name) +# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) +# define __LDBL_REDIR_NTH(name, proto) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) +# define __LDBL_REDIR2_DECL(name) \ + extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); +# define __LDBL_REDIR1_DECL(name, alias) \ + extern __typeof (name) name __asm (__ASMNAME (#alias)); +# define __LDBL_REDIR_DECL(name) \ + extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); +# define __REDIRECT_LDBL(name, proto, alias) \ + __LDBL_REDIR1 (name, proto, __nldbl_##alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) +# endif +#endif +#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ + || !defined __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) name proto +# define __LDBL_REDIR(name, proto) name proto +# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW +# define __LDBL_REDIR_NTH(name, proto) name proto __THROW +# define __LDBL_REDIR2_DECL(name) +# define __LDBL_REDIR_DECL(name) +# ifdef __REDIRECT +# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __REDIRECT_NTH (name, proto, alias) +# endif +#endif + +/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is + intended for use in preprocessor macros. + + Note: MESSAGE must be a _single_ string; concatenation of string + literals is not supported. */ +#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) +# define __glibc_macro_warning1(message) _Pragma (#message) +# define __glibc_macro_warning(message) \ + __glibc_macro_warning1 (GCC warning message) +#else +# define __glibc_macro_warning(msg) +#endif + +/* Generic selection (ISO C11) is a C-only feature, available in GCC + since version 4.9. Previous versions do not provide generic + selection, even though they might set __STDC_VERSION__ to 201112L, + when in -std=c11 mode. Thus, we must check for !defined __GNUC__ + when testing __STDC_VERSION__ for generic selection support. + On the other hand, Clang also defines __GNUC__, so a clang-specific + check is required to enable the use of generic selection. */ +#if !defined __cplusplus \ + && (__GNUC_PREREQ (4, 9) \ + || __glibc_has_extension (c_generic_selections) \ + || (!defined __GNUC__ && defined __STDC_VERSION__ \ + && __STDC_VERSION__ >= 201112L)) +# define __HAVE_GENERIC_SELECTION 1 +#else +# define __HAVE_GENERIC_SELECTION 0 +#endif + +#if __GNUC_PREREQ (10, 0) +/* Designates a 1-based positional argument ref-index of pointer type + that can be used to access size-index elements of the pointed-to + array according to access mode, or at least one element when + size-index is not provided: + access (access-mode, [, ]) */ +# define __attr_access(x) __attribute__ ((__access__ x)) +/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may + use the access attribute to get object sizes from function definition + arguments, so we can't use them on functions we fortify. Drop the object + size hints for such functions. */ +# if __USE_FORTIFY_LEVEL == 3 +# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) +# else +# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) +# endif +# if __GNUC_PREREQ (11, 0) +# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) +# else +# define __attr_access_none(argno) +# endif +#else +# define __fortified_attr_access(a, o, s) +# define __attr_access(x) +# define __attr_access_none(argno) +#endif + +#if __GNUC_PREREQ (11, 0) +/* Designates dealloc as a function to call to deallocate objects + allocated by the declared function. */ +# define __attr_dealloc(dealloc, argno) \ + __attribute__ ((__malloc__ (dealloc, argno))) +# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) +#else +# define __attr_dealloc(dealloc, argno) +# define __attr_dealloc_free +#endif + +/* Specify that a function such as setjmp or vfork may return + twice. */ +#if __GNUC_PREREQ (4, 1) +# define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) +#else +# define __attribute_returns_twice__ /* Ignore. */ +#endif + +#endif /* sys/cdefs.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@cdefs.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..e036e58e4906f50a87ece22bd00fe22a5229ed53 GIT binary patch literal 12470 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. */ + +/* POSIX 1003.1g: 6.2 Select from File Descriptor Sets */ + +#ifndef _SYS_SELECT_H +#define _SYS_SELECT_H 1 + +#include + +/* Get definition of needed basic types. */ +#include + +/* Get __FD_* definitions. */ +#include + +/* Get sigset_t. */ +#include + +/* Get definition of timer specification structures. */ +#include +#include +#ifdef __USE_XOPEN2K +# include +#endif + +#ifndef __suseconds_t_defined +typedef __suseconds_t suseconds_t; +# define __suseconds_t_defined +#endif + + +/* The fd_set member is required to be an array of longs. */ +typedef long int __fd_mask; + +/* Some versions of define this macros. */ +#undef __NFDBITS +/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ +#define __NFDBITS (8 * (int) sizeof (__fd_mask)) +#define __FD_ELT(d) ((d) / __NFDBITS) +#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) + +/* fd_set for select and pselect. */ +typedef struct + { + /* XPG4.2 requires this member name. Otherwise avoid the name + from the global namespace. */ +#ifdef __USE_XOPEN + __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS]; +# define __FDS_BITS(set) ((set)->fds_bits) +#else + __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; +# define __FDS_BITS(set) ((set)->__fds_bits) +#endif + } fd_set; + +/* Maximum number of file descriptors in `fd_set'. */ +#define FD_SETSIZE __FD_SETSIZE + +#ifdef __USE_MISC +/* Sometimes the fd_set member is assumed to have this type. */ +typedef __fd_mask fd_mask; + +/* Number of bits per word of `fd_set' (some code assumes this is 32). */ +# define NFDBITS __NFDBITS +#endif + + +/* Access macros for `fd_set'. */ +#define FD_SET(fd, fdsetp) __FD_SET (fd, fdsetp) +#define FD_CLR(fd, fdsetp) __FD_CLR (fd, fdsetp) +#define FD_ISSET(fd, fdsetp) __FD_ISSET (fd, fdsetp) +#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) + + +__BEGIN_DECLS + +/* Check the first NFDS descriptors each in READFDS (if not NULL) for read + readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS + (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out + after waiting the interval specified therein. Returns the number of ready + descriptors, or -1 for errors. + + This function is a cancellation point and therefore not marked with + __THROW. */ +#ifndef __USE_TIME_BITS64 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +#else +# ifdef __REDIRECT +extern int __REDIRECT (select, + (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout), + __select64); +# else +# define select __select64 +# endif +#endif + +#ifdef __USE_XOPEN2K +/* Same as above only that the TIMEOUT value is given with higher + resolution and a sigmask which is been set temporarily. This version + should be used. + + This function is a cancellation point and therefore not marked with + __THROW. */ +# ifndef __USE_TIME_BITS64 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); +# else +# ifdef __REDIRECT +extern int __REDIRECT (pselect, + (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask), + __pselect64); +# else +# define pselect __pselect64 +# endif +# endif +#endif + + +/* Define some inlines helping to catch common problems. */ +#if __USE_FORTIFY_LEVEL > 0 && defined __GNUC__ +# include +#endif + +__END_DECLS + +#endif /* sys/select.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@select.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@select.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..5cc5e99fdb5f1b708c29554263d849b5037ae9c4 GIT binary patch literal 6078 zcmcgve{5S<6~50iCC$>v3vH-EDUU3TY&W(OlcvRFndj6Y>0Dasv};q~?b*JLz1V)) zd(TbMQ8!6JD`l*cC|iXlq%mz>2Y*x>N{2Lc`-8P&tb!H|)~ZENGy#Q9LmL&Kt&elw zFaOAUPXFRbxpwY7@0{;^_k8DGd&#Y?hi15A3#&5^cHzkM@*}}Lll@-CgAkN%l z9;subY3d_t0WnQ{nxv1yv}h*+{*RQ;rL0xuVQNgidx%zE{i;f(j-mVd*x*zpG|U8*%alHLa`uI(cYLAQdz!Gpi;eLAf~+s zEma+#oVPU8__AE8pj^#u>7C)YG-#r)cWFx<)S^wuWfK8aK!KiKf49G{EJHcPi{ps% z)TN2DRYi{qO{QqN9#0vO@+qH`;YFJAsl3>ytYZ_WupI5ps@X*m)ZKf?Ea}St3M%?Q zm!h>QD>ygy4LtATb4%a={nblf?+Ca%_4Z~`R(Vo0^YLObvqaPY)btd#;D*;UPe&*AZ4?_O6`z9`dadn=2& zw5)@=N0F9}Af{|jN3}>SQH&RgaH}XLBwxMisMM>a8wdb;vRpDFSgvZjj%{O!<-npA zUPY7!z^9g};pvn9svR@50L#5q3so3Gi(TENaBD+pyFR z1Lpv_uQ5yHrbFat^D**dlS4T)aO&FXGoSxCordGTz=AB;Ni7vOe&@JCIwf_n=@bWD ziuJ-34X!jvT);ETZf#1;%G7R=PABQ4tga@7f+VwAN-XA%K&ztQq)?Q*Sk1KD?5eDw z1Lk>Y!b4hHn+ZJ2l+yn8f3G`xE}&c)JrIiD`bCfO!R6oIeBqGqHRXmJ>U?M>a7#J4 zb^OZ6`<<-v`W5%Lw$EJt0cj$HDYce57^Xz##|TkgJb!WL*q)c-74-c7*s0(J&fKbm zby_fCz)Z*|l$U=vfAM7S?O!U_H(tHe`r$K|m4`>}4F36>Pv5J&*C-uWar%TqdHs7g z0yp29->BwETWLGPP?8xXrKrjlCsG`!jDoc<;IEukZz-U_jPN6<+Nidex={k=1sM-#-5CbnY%A zH@qBysv$R25@~B|A)^^;2tQBr2`aK#i52O?Mfio7Vr79%P#~1$MUkIjg*1yUB%rms zy}Q@Jbd&C0H6~_RCf6Bhh_pGG$o5FW$!yrN;cH?P3x5q$afi3Jgt$pGSme-He2?@ylp z)YTP6c%2ZbC{gG=DY&WvDQ#$q57s+jye_X7kUw|Ni?fLzy`}&1E;ll@&RuAUk5=bK z(_!X1=lbB?(_eZy$bb0Me~hpovvNeX;ydZ;YQ>OU-iU+o5^n^3ny9rT)|d*sopwq3 z`dYx_{LuXFj~z~CzG;59*#|zxwqkb3+wRjO97dOO+vgJKa;|AEVX~vSG}^E(qRJD+ zI5kLnJLrTt7(6(HPN1TPOetzk(qH!W40?K=Mhc9FIZlqZh8eTlSp+ao9*BTkj(3l% z5kNn+5sY?PJ_Jca10E05PeX``cGA#-hQ?^L77=SwN_VF>gW^OFHV;ihA-wjPVTcE5y<%Z*w%9Ebu%Q;S;VvRZQ z^MLDtwGJG25e2JVdE@+m`~6oV?{M)waV{Q>MF&T@VOVH0{8lY2?*SjHT&uhe9R0eF z!;k)bV(-7sd;{VQ#&*EVO~%XG48+HagN93m1!joKoCU8tT|1!#!}y@?^#y-Czwqs$ z|5oXM)3QxL5U&x$#(-JhvcBJ;j=IN7pZV;sLnp$1j{C~c=E%rs9K5uYz37w6-J4i1 zi$K!9_3K6c)A-G+8=m;xE@$3k)X zwG#YShwf%24I6I8&z-?i;h8^SPVd15k;ZnLZt(Ho- zG+pDvm+7C|bk`T}SBp3r8-)yAmAc?yPAg%k)<8wI0!4kUJ}4g;x9CI~morn7th?gY z=Lv<%irU-L_jR%|h-XM-O{5#q!KEW*9{3G-5-Zmm6U)M1c=R1$e. */ + +/* + * POSIX Standard: 2.6 Primitive System Data Types + */ + +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H 1 + +#include + +__BEGIN_DECLS + +#include + +#ifdef __USE_MISC +# ifndef __u_char_defined +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; +# define __u_char_defined +# endif +typedef __loff_t loff_t; +#endif + +#ifndef __ino_t_defined +# ifndef __USE_FILE_OFFSET64 +typedef __ino_t ino_t; +# else +typedef __ino64_t ino_t; +# endif +# define __ino_t_defined +#endif +#if defined __USE_LARGEFILE64 && !defined __ino64_t_defined +typedef __ino64_t ino64_t; +# define __ino64_t_defined +#endif + +#ifndef __dev_t_defined +typedef __dev_t dev_t; +# define __dev_t_defined +#endif + +#ifndef __gid_t_defined +typedef __gid_t gid_t; +# define __gid_t_defined +#endif + +#ifndef __mode_t_defined +typedef __mode_t mode_t; +# define __mode_t_defined +#endif + +#ifndef __nlink_t_defined +typedef __nlink_t nlink_t; +# define __nlink_t_defined +#endif + +#ifndef __uid_t_defined +typedef __uid_t uid_t; +# define __uid_t_defined +#endif + +#ifndef __off_t_defined +# ifndef __USE_FILE_OFFSET64 +typedef __off_t off_t; +# else +typedef __off64_t off_t; +# endif +# define __off_t_defined +#endif +#if defined __USE_LARGEFILE64 && !defined __off64_t_defined +typedef __off64_t off64_t; +# define __off64_t_defined +#endif + +#ifndef __pid_t_defined +typedef __pid_t pid_t; +# define __pid_t_defined +#endif + +#if (defined __USE_XOPEN || defined __USE_XOPEN2K8) \ + && !defined __id_t_defined +typedef __id_t id_t; +# define __id_t_defined +#endif + +#ifndef __ssize_t_defined +typedef __ssize_t ssize_t; +# define __ssize_t_defined +#endif + +#ifdef __USE_MISC +# ifndef __daddr_t_defined +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; +# define __daddr_t_defined +# endif +#endif + +#if (defined __USE_MISC || defined __USE_XOPEN) && !defined __key_t_defined +typedef __key_t key_t; +# define __key_t_defined +#endif + +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 +# include +#endif +#include +#include +#include + +#ifdef __USE_XOPEN +# ifndef __useconds_t_defined +typedef __useconds_t useconds_t; +# define __useconds_t_defined +# endif +# ifndef __suseconds_t_defined +typedef __suseconds_t suseconds_t; +# define __suseconds_t_defined +# endif +#endif + +#define __need_size_t +#include + +#ifdef __USE_MISC +/* Old compatibility names for C types. */ +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; +#endif + +/* These size-specific names are used by some of the inet code. */ + +#include + +/* These were defined by ISO C without the first `_'. */ +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + +#if __GNUC_PREREQ (2, 7) +typedef int register_t __attribute__ ((__mode__ (__word__))); +#else +typedef int register_t; +#endif + +/* Some code from BIND tests this macro to see if the types above are + defined. */ +#define __BIT_TYPES_DEFINED__ 1 + + +#ifdef __USE_MISC +/* In BSD is expected to define BYTE_ORDER. */ +# include + +/* It also defines `fd_set' and the FD_* macros for `select'. */ +# include +#endif /* Use misc. */ + + +#if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \ + && !defined __blksize_t_defined +typedef __blksize_t blksize_t; +# define __blksize_t_defined +#endif + +/* Types from the Large File Support interface. */ +#ifndef __USE_FILE_OFFSET64 +# ifndef __blkcnt_t_defined +typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */ +# define __blkcnt_t_defined +# endif +# ifndef __fsblkcnt_t_defined +typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */ +# define __fsblkcnt_t_defined +# endif +# ifndef __fsfilcnt_t_defined +typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */ +# define __fsfilcnt_t_defined +# endif +#else +# ifndef __blkcnt_t_defined +typedef __blkcnt64_t blkcnt_t; /* Type to count number of disk blocks. */ +# define __blkcnt_t_defined +# endif +# ifndef __fsblkcnt_t_defined +typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */ +# define __fsblkcnt_t_defined +# endif +# ifndef __fsfilcnt_t_defined +typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */ +# define __fsfilcnt_t_defined +# endif +#endif + +#ifdef __USE_LARGEFILE64 +typedef __blkcnt64_t blkcnt64_t; /* Type to count number of disk blocks. */ +typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks. */ +typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */ +#endif + + +/* Now add the thread types. */ +#if defined __USE_POSIX199506 || defined __USE_UNIX98 +# include +#endif + +__END_DECLS + +#endif /* sys/types.h */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@types.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@sys@types.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..26c055b040051b5aeeda86d22003ee57d3d1cd35 GIT binary patch literal 8113 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 literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h new file mode 100644 index 0000000..d180891 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h @@ -0,0 +1,454 @@ +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* + * ISO C99 Standard: 7.23 Date and time + */ + +#ifndef _TIME_H +#define _TIME_H 1 + +#include + +#define __need_size_t +#define __need_NULL +#include + +/* This defines CLOCKS_PER_SEC, which is the number of processor clock + ticks per second, and possibly a number of other constants. */ +#include + +/* Many of the typedefs and structs whose official home is this header + may also need to be defined by other headers. */ +#include +#include +#include + +#if defined __USE_POSIX199309 || defined __USE_ISOC11 +# include +#endif + +#ifdef __USE_POSIX199309 +# include +# include +# include +struct sigevent; +#endif + +#ifdef __USE_XOPEN2K +# ifndef __pid_t_defined +typedef __pid_t pid_t; +# define __pid_t_defined +# endif +#endif + +#ifdef __USE_XOPEN2K8 +# include +#endif + +#ifdef __USE_ISOC11 +/* Time base values for timespec_get. */ +# define TIME_UTC 1 +#endif + +__BEGIN_DECLS + +/* Time used by the program so far (user time + system time). + The result / CLOCKS_PER_SEC is program time in seconds. */ +extern clock_t clock (void) __THROW; + +#ifndef __USE_TIME_BITS64 +/* Return the current time and put it in *TIMER if TIMER is not NULL. */ +extern time_t time (time_t *__timer) __THROW; + +/* Return the difference between TIME1 and TIME0. */ +extern double difftime (time_t __time1, time_t __time0) + __THROW __attribute__ ((__const__)); + +/* Return the `time_t' representation of TP and normalize TP. */ +extern time_t mktime (struct tm *__tp) __THROW; +#else +# ifdef __REDIRECT_NTH +extern time_t __REDIRECT_NTH (time, (time_t *__timer), __time64); +extern double __REDIRECT_NTH (difftime, (time_t __time1, time_t __time0), + __difftime64) __attribute__ ((__const__)); +extern time_t __REDIRECT_NTH (mktime, (struct tm *__tp), __mktime64); +# else +# define time __time64 +# define difftime __difftime64 +# define mktime __mktime64 +# endif +#endif + +/* Format TP into S according to FORMAT. + Write no more than MAXSIZE characters and return the number + of characters written, or 0 if it would exceed MAXSIZE. */ +extern size_t strftime (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp) __THROW; + +#ifdef __USE_XOPEN +/* Parse S according to FORMAT and store binary time information in TP. + The return value is a pointer to the first unparsed character in S. */ +extern char *strptime (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp) + __THROW; +#endif + +#ifdef __USE_XOPEN2K8 +/* Similar to the two functions above but take the information from + the provided locale and not the global locale. */ + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + const char *__restrict __format, + const struct tm *__restrict __tp, + locale_t __loc) __THROW; +#endif + +#ifdef __USE_GNU +extern char *strptime_l (const char *__restrict __s, + const char *__restrict __fmt, struct tm *__tp, + locale_t __loc) __THROW; +#endif + + +#ifndef __USE_TIME_BITS64 +/* Return the `struct tm' representation of *TIMER + in Universal Coordinated Time (aka Greenwich Mean Time). */ +extern struct tm *gmtime (const time_t *__timer) __THROW; + +/* Return the `struct tm' representation + of *TIMER in the local timezone. */ +extern struct tm *localtime (const time_t *__timer) __THROW; + +#else +# ifdef __REDIRECT_NTH +extern struct tm*__REDIRECT_NTH (gmtime, (const time_t *__timer), __gmtime64); +extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer), + __localtime64); +# else +# define gmtime __gmtime64 +# define localtime __localtime64 +# endif +#endif + + +#if defined __USE_POSIX || __GLIBC_USE (ISOC2X) +# ifndef __USE_TIME_BITS64 +/* Return the `struct tm' representation of *TIMER in UTC, + using *TP to store the result. */ +extern struct tm *gmtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) __THROW; + +/* Return the `struct tm' representation of *TIMER in local time, + using *TP to store the result. */ +extern struct tm *localtime_r (const time_t *__restrict __timer, + struct tm *__restrict __tp) __THROW; +# else +# ifdef __REDIRECT_NTH +extern struct tm*__REDIRECT_NTH (gmtime_r, (const time_t *__restrict __timer, + struct tm *__restrict __tp), + __gmtime64_r); + +extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t, + struct tm *__restrict __tp), + __localtime64_r); +# else +# define gmtime_r __gmtime64_r +# define localtime_r __localtime_r +# endif +# endif +#endif /* POSIX || C2X */ + +/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n" + that is the representation of TP in this format. */ +extern char *asctime (const struct tm *__tp) __THROW; + +/* Equivalent to `asctime (localtime (timer))'. */ +#ifndef __USE_TIME_BITS64 +extern char *ctime (const time_t *__timer) __THROW; +#else +# ifdef __REDIRECT_NTH +extern char *__REDIRECT_NTH (ctime, (const time_t *__timer), __ctime64); +# else +# define ctime __ctime64 +# endif +#endif + +#ifdef __USE_POSIX +/* Reentrant versions of the above functions. */ + +/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n" + that is the representation of TP in this format. */ +extern char *asctime_r (const struct tm *__restrict __tp, + char *__restrict __buf) __THROW; + +/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */ +#ifndef __USE_TIME_BITS64 +extern char *ctime_r (const time_t *__restrict __timer, + char *__restrict __buf) __THROW; +#else +# ifdef __REDIRECT_NTH +extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict __timer, + char *__restrict __buf), __ctime64_r); +# else +# define ctime_r __ctime64_r +# endif +#endif + +#endif /* POSIX */ + + +/* Defined in localtime.c. */ +extern char *__tzname[2]; /* Current timezone names. */ +extern int __daylight; /* If daylight-saving time is ever in use. */ +extern long int __timezone; /* Seconds west of UTC. */ + + +#ifdef __USE_POSIX +/* Same as above. */ +extern char *tzname[2]; + +/* Set time conversion information from the TZ environment variable. + If TZ is not defined, a locale-dependent default is used. */ +extern void tzset (void) __THROW; +#endif + +#if defined __USE_MISC || defined __USE_XOPEN +extern int daylight; +extern long int timezone; +#endif + + +/* Nonzero if YEAR is a leap year (every 4 years, + except every 100th isn't, and every 400th is). */ +#define __isleap(year) \ + ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) + + +#if defined __USE_MISC || __GLIBC_USE (ISOC2X) +# ifndef __USE_TIME_BITS64 +/* Like `mktime', but for TP represents Universal Time, not local time. */ +extern time_t timegm (struct tm *__tp) __THROW; +# else +# ifdef __REDIRECT_NTH +extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64); +# else +# define timegm __timegm64 +# endif +# endif +#endif + + +#ifdef __USE_MISC +/* Miscellaneous functions many Unices inherited from the public domain + localtime package. These are included only for compatibility. */ + +#ifndef __USE_TIME_BITS64 +/* Another name for `mktime'. */ +extern time_t timelocal (struct tm *__tp) __THROW; +#else +# ifdef __REDIRECT_NTH +extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp), __mktime64); +# endif +#endif + +/* Return the number of days in YEAR. */ +extern int dysize (int __year) __THROW __attribute__ ((__const__)); +#endif + + +#ifdef __USE_POSIX199309 +# ifndef __USE_TIME_BITS64 +/* Pause execution for a number of nanoseconds. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int nanosleep (const struct timespec *__requested_time, + struct timespec *__remaining); + +/* Get resolution of clock CLOCK_ID. */ +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW; + +/* Get current value of clock CLOCK_ID and store it in TP. */ +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) + __THROW __nonnull((2)); + +/* Set clock CLOCK_ID to value TP. */ +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) + __THROW __nonnull((2)); +# else +# ifdef __REDIRECT +extern int __REDIRECT (nanosleep, (const struct timespec *__requested_time, + struct timespec *__remaining), + __nanosleep64); +extern int __REDIRECT_NTH (clock_getres, (clockid_t __clock_id, + struct timespec *__res), + __clock_getres64); +extern int __REDIRECT_NTH (clock_gettime, (clockid_t __clock_id, struct + timespec *__tp), __clock_gettime64) + __nonnull((2)); +extern int __REDIRECT_NTH (clock_settime, (clockid_t __clock_id, const struct + timespec *__tp), __clock_settime64) + __nonnull((2)); +# else +# define nanosleep __nanosleep64 +# define clock_getres __clock_getres64 +# define clock_gettime __clock_gettime64 +# define clock_settime __clock_settime64 +# endif +# endif + + +# ifdef __USE_XOPEN2K +/* High-resolution sleep with the specified clock. + + This function is a cancellation point and therefore not marked with + __THROW. */ +# ifndef __USE_TIME_BITS64 +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem); +# else +# ifdef __REDIRECT +extern int __REDIRECT (clock_nanosleep, (clockid_t __clock_id, int __flags, + const struct timespec *__req, + struct timespec *__rem), + __clock_nanosleep_time64); +# else +# define clock_nanosleep __clock_nanosleep_time64 +# endif +# endif + +/* Return clock ID for CPU-time clock. */ +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW; +# endif + + +/* Create new per-process timer using CLOCK_ID. */ +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) __THROW; + +/* Delete timer TIMERID. */ +extern int timer_delete (timer_t __timerid) __THROW; + +/* Set timer TIMERID to VALUE, returning old value in OVALUE. */ +# ifndef __USE_TIME_BITS64 +extern int timer_settime (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) __THROW; + +/* Get current value of timer TIMERID and store it in VALUE. */ +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + __THROW; +# else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (timer_settime, (timer_t __timerid, int __flags, + const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue), + __timer_settime64); + +extern int __REDIRECT_NTH (timer_gettime, (timer_t __timerid, + struct itimerspec *__value), + __timer_gettime64); +# else +# define timer_settime __timer_settime64 +# define timer_gettime __timer_gettime64 +# endif +# endif + +/* Get expiration overrun for timer TIMERID. */ +extern int timer_getoverrun (timer_t __timerid) __THROW; +#endif + + +#ifdef __USE_ISOC11 +# ifndef __USE_TIME_BITS64 +/* Set TS to calendar time based in time base BASE. */ +extern int timespec_get (struct timespec *__ts, int __base) + __THROW __nonnull ((1)); +# else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base), + __timespec_get64) __nonnull ((1)); +# else +# define timespec_get __timespec_get64 +# endif +# endif +#endif + + +#if __GLIBC_USE (ISOC2X) +# ifndef __USE_TIME_BITS64 +/* Set TS to resolution of time base BASE. */ +extern int timespec_getres (struct timespec *__ts, int __base) + __THROW; +# else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (timespec_getres, (struct timespec *__ts, + int __base), + __timespec_getres64); +# else +# define timespec_getres __timespec_getres64 +# endif +# endif +#endif + + +#ifdef __USE_XOPEN_EXTENDED +/* Set to one of the following values to indicate an error. + 1 the DATEMSK environment variable is null or undefined, + 2 the template file cannot be opened for reading, + 3 failed to get file status information, + 4 the template file is not a regular file, + 5 an error is encountered while reading the template file, + 6 memory allication failed (not enough memory available), + 7 there is no line in the template that matches the input, + 8 invalid input specification Example: February 31 or a time is + specified that can not be represented in a time_t (representing + the time in seconds since 00:00:00 UTC, January 1, 1970) */ +extern int getdate_err; + +/* Parse the given string as a date specification and return a value + representing the value. The templates from the file identified by + the environment variable DATEMSK are used. In case of an error + `getdate_err' is set. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +extern struct tm *getdate (const char *__string); +#endif + +#ifdef __USE_GNU +/* Since `getdate' is not reentrant because of the use of `getdate_err' + and the static buffer to return the result in, we provide a thread-safe + variant. The functionality is the same. The result is returned in + the buffer pointed to by RESBUFP and in case of an error the return + value is != 0 with the same values as given above for `getdate_err'. + + This function is not part of POSIX and therefore no official + cancellation point. But due to similarity with an POSIX interface + or due to the implementation it is a cancellation point and + therefore not marked with __THROW. */ +extern int getdate_r (const char *__restrict __string, + struct tm *__restrict __resbufp); +#endif + +__END_DECLS + +#endif /* time.h. */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@include@time.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..f73f1a9449877e4cf7b9f38253779d248a2de01a GIT binary patch literal 14872 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 Rl?ZHB8r27W9MQ~q_+MvDvv2?a literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h new file mode 100644 index 0000000..0bc3940 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h @@ -0,0 +1,35 @@ +/*===---- stdarg.h - Variable argument handling ----------------------------=== + * + * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. + * See https://llvm.org/LICENSE.txt for license information. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + * + *===-----------------------------------------------------------------------=== + */ + +#ifndef __STDARG_H +#define __STDARG_H + +#ifndef _VA_LIST +typedef __builtin_va_list va_list; +#define _VA_LIST +#endif +#define va_start(ap, param) __builtin_va_start(ap, param) +#define va_end(ap) __builtin_va_end(ap) +#define va_arg(ap, type) __builtin_va_arg(ap, type) + +/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode + * or -ansi is not specified, since it was not part of C90. + */ +#define __va_copy(d,s) __builtin_va_copy(d,s) + +#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__) +#define va_copy(dest, src) __builtin_va_copy(dest, src) +#endif + +#ifndef __GNUC_VA_LIST +#define __GNUC_VA_LIST 1 +typedef __builtin_va_list __gnuc_va_list; +#endif + +#endif /* __STDARG_H */ diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stdarg.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..419fa603d02673c0644be6ee9a9563981ba9d6c3 GIT binary patch literal 3235 zcma)8O>7%Q6ka<5r4@;`X;I`VB&HxpE3dbeEZ++KftE@IMYKht2PWg$u{~t}G&39H zR;qF@;=l=tkl+H>UMi$=0*Rb^;lPbEDtDw-S>EiAvo^5EuJ{|Kn+m0=~oif#onxi46Go zyawNR%Z>!MnNQrvp*E4@khX`$LF?1K{V7Y2NntCiuo3clLSjjgEOqTutQ3nh$svQ+ePbq(qO3W#BP_M$Dmz1d%T(*E>_+Vc7Sns0s!+^$2OG znLg>2I;Qz5H5F2x#5VtC5b8rubUX7sGf~=05MyBzhxV&tA99KvOAIlmj+Ml!41QnE9&}+QB(+YXa?*fo_u{%cx^i);&S(mGfSLHjDNuH9( zEX>Jp4yx(d(@)W`~=o?BjeY28k-K%VSmEZXNf?X&IfWRgLf!6hqSHDEQTXbA*}fySQr9MrwRoFzkHEA5J0u^`{9WTw{3}9NKe%-neRL6Bzjos$c&@z$ z(J-Ha{Gz3K4lviv^;TW2XN_11j(>Y9|GD?#FHeA)1mPIAmhC` zQU?lFfIn%TT(7G&%;3*FX#8n4;%%gom=Ubx1e488rzK98VZ%0{u9~Z->T126p{~C0 z`_H!zjxT`P$*aoB3AD}ZQb;sO6dEAXzE zD{FPNx*6{qU!o`5M{aEaQu4e4x>-O^_7a2;bL`DTG;0L{(=?lPwepPM`&0bc+uc{k zKmh$eBOZ1DJdv%W&xp^gfO^b42C`w@&QL#o`tpO_yU$6XMkcZk_iD@LGN@5&cJAB9 kZ#KyzcM+i*H{ZGV;Z^h=C_0e`T->c4HIKetPuBG8zcNyr?EnA( literal 0 HcmV?d00001 diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h new file mode 100644 index 0000000..15acd44 --- /dev/null +++ b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h @@ -0,0 +1,121 @@ +/*===---- stddef.h - Basic type definitions --------------------------------=== + * + * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. + * See https://llvm.org/LICENSE.txt for license information. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + * + *===-----------------------------------------------------------------------=== + */ + +#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \ + defined(__need_size_t) || defined(__need_wchar_t) || \ + defined(__need_NULL) || defined(__need_wint_t) + +#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ + !defined(__need_wchar_t) && !defined(__need_NULL) && \ + !defined(__need_wint_t) +/* Always define miscellaneous pieces when modules are available. */ +#if !__has_feature(modules) +#define __STDDEF_H +#endif +#define __need_ptrdiff_t +#define __need_size_t +#define __need_wchar_t +#define __need_NULL +#define __need_STDDEF_H_misc +/* __need_wint_t is intentionally not defined here. */ +#endif + +#if defined(__need_ptrdiff_t) +#if !defined(_PTRDIFF_T) || __has_feature(modules) +/* Always define ptrdiff_t when modules are available. */ +#if !__has_feature(modules) +#define _PTRDIFF_T +#endif +typedef __PTRDIFF_TYPE__ ptrdiff_t; +#endif +#undef __need_ptrdiff_t +#endif /* defined(__need_ptrdiff_t) */ + +#if defined(__need_size_t) +#if !defined(_SIZE_T) || __has_feature(modules) +/* Always define size_t when modules are available. */ +#if !__has_feature(modules) +#define _SIZE_T +#endif +typedef __SIZE_TYPE__ size_t; +#endif +#undef __need_size_t +#endif /*defined(__need_size_t) */ + +#if defined(__need_STDDEF_H_misc) +/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is + * enabled. */ +#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \ + !defined(_RSIZE_T)) || __has_feature(modules) +/* Always define rsize_t when modules are available. */ +#if !__has_feature(modules) +#define _RSIZE_T +#endif +typedef __SIZE_TYPE__ rsize_t; +#endif +#endif /* defined(__need_STDDEF_H_misc) */ + +#if defined(__need_wchar_t) +#ifndef __cplusplus +/* Always define wchar_t when modules are available. */ +#if !defined(_WCHAR_T) || __has_feature(modules) +#if !__has_feature(modules) +#define _WCHAR_T +#if defined(_MSC_EXTENSIONS) +#define _WCHAR_T_DEFINED +#endif +#endif +typedef __WCHAR_TYPE__ wchar_t; +#endif +#endif +#undef __need_wchar_t +#endif /* defined(__need_wchar_t) */ + +#if defined(__need_NULL) +#undef NULL +#ifdef __cplusplus +# if !defined(__MINGW32__) && !defined(_MSC_VER) +# define NULL __null +# else +# define NULL 0 +# endif +#else +# define NULL ((void*)0) +#endif +#ifdef __cplusplus +#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED) +namespace std { typedef decltype(nullptr) nullptr_t; } +using ::std::nullptr_t; +#endif +#endif +#undef __need_NULL +#endif /* defined(__need_NULL) */ + +#if defined(__need_STDDEF_H_misc) +#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L +#include "__stddef_max_align_t.h" +#endif +#define offsetof(t, d) __builtin_offsetof(t, d) +#undef __need_STDDEF_H_misc +#endif /* defined(__need_STDDEF_H_misc) */ + +/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use +__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ +#if defined(__need_wint_t) +/* Always define wint_t when modules are available. */ +#if !defined(_WINT_T) || __has_feature(modules) +#if !__has_feature(modules) +#define _WINT_T +#endif +typedef __WINT_TYPE__ wint_t; +#endif +#undef __need_wint_t +#endif /* __need_wint_t */ + +#endif diff --git a/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h.blob b/.ccls-cache/@@home@huck@.repos@odot/@usr@lib@clang@14.0.6@include@stddef.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..8bf5ca30f0efe268314fc1f2d746049410794401 GIT binary patch literal 2703 zcma)8zi-n(6h0S(s;X27Dh8+^5+H@p%R#A1mp~anR7w$u0#zksobx5Q*7k+Fb3>RA zGcy}23kwnp8ygcp23VL73x5C-8xZclrt*?8F|!fURD1k%Xmw2MWi<_z zJjrc*XI!^#c4BF9yl0QpKTQaDjU)?1&McNsmzM@JZyMss2JnPc92t7mQH1)eo>!-) zWS);z)051{NnNs2?s1cC7{_e4(dxny4=l$F zcRIC+(sDneUTImz&}@5L*8?w4YGaU3Y{V|oTz9ODlTZK!M^$VeVN+L%TV`=t-HPD_ za3WYu34Cvn!dSEW*UQsKI31Fng zY8phaTGOtBQj9T^e^k5wV$v%&5WvZp_L0!!UUX=B4xOkjpvw9Mw07k>x;?dt+-ZvV ztq|=jBBxt=`@Hkx{lYaEQPb-}9GR7jm|p-DDL_SCjppa45pwW6UY>9;!pjIgKOMO4 z=^owV?|yx+a_8#JYSrABJZ4~c#0v1gP%Q2U?w3xUK4}0pW;f<0;JSdi@NoCb+PM!; z&VJhsK>d$HW=L_x>AqB}-w)3|+UnnjUkC5QC1bntsapB?>eDUv#_HxJcimWK`cVhB zoKyQw9hpe3y=Yet9(cOm*k2hzygPIExIx^y9$ftT?$_$DZKAkPtgbkvsgm*d18HXO Ap#T5? literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/error.c b/.ccls-cache/@home@huck@.repos@odot/error.c new file mode 100644 index 0000000..73d6a23 --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/error.c @@ -0,0 +1,2 @@ +#include "odot.h" + diff --git a/.ccls-cache/@home@huck@.repos@odot/error.c.blob b/.ccls-cache/@home@huck@.repos@odot/error.c.blob new file mode 100644 index 0000000000000000000000000000000000000000..09b9088b3aa0a5703541b2c48dbf058cda5778c3 GIT binary patch literal 2442 zcmai0L9Wv<5Dnr690TDRr0VYwE0B;_uwZXF&b0BbV@LLwQdXSiuUT?}e+Mq}h3%xD zM75ntUCs2(n>TO9ece30`u6bHyl7}|2B5tcC%UsR8b?iMkb$Z& zN$Ml%qy>S-UfvgQn-A1GOQjadcR&SRM%eYu)0_KWkE=*4(a{)nl(C_8$PpN3QxCw= zTX5N6!Z|3zQ4?W?!RT@t$^o4GSs~P35ZsxM6^uk#C?ie9yl&awk0jMoUZoD8~?Tx)Q(W~Hf zr?u(b#Zl40p{7%Bfp^69+(Ji^F6EYIZuT7QSWa838<(Iu`_P#neP98WguS%+tz2k+ zom)Wu&eaBwuz$7o=Zg@hQ=83*NvG5q;a2n;RcZ7^4N#eQ-i&Wm-lmhsS5;~b2t$s! z$pQHb9M5n}`SbN*ZIY$1^5_5yv|~prKG&nW0AS43Afg`~sBqHDK=Hm9reuC8ueX^* zHh239%to2%glB&rS#B)C~$Pqeh9BEaOxvLd9pz z=j|SJ6=V!cJ~`#)f#fQ_9%cA>=?0JRqnwqoZPq5$muhOq*sl0^CX-}Y9JQwoed|cg r9m{pj!h`~0-Lj$Q3fbuYW!MPQn+v}ZY9c_AO|MABe^>KvH{tUSo#nam literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/file.c b/.ccls-cache/@home@huck@.repos@odot/file.c new file mode 100644 index 0000000..9800c59 --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/file.c @@ -0,0 +1,60 @@ +#include "odot.h" + + +extern char *note; +extern FILE *fp; + +enum color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE}; + +void add(void){ + fp = fopen(TODOLIST, "a"); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE: %s\n",TODOLIST); + return; + } + fputs(strcat(note,"\n"),fp); + fclose(fp); +} + +void rem(void){ + char *s = malloc(MAXLINE * sizeof(char)); + FILE *tmp = fopen("temp", "w"); + + fp = fopen(TODOLIST, "r"); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE: %s\n",TODOLIST); + return; + } + + + while (fgets(s, MAXLINE, fp) != NULL){ + s[strlen(s) - 1] = 0; + if (strcmp(note, s) != 0){ + fputs(strcat(s,"\n"),tmp); + } + } + + fclose(fp); + fclose(tmp); + + remove (TODOLIST); + rename("temp", TODOLIST); + + free(s); +} + +void show(void){ + char *c = (char *) malloc(MAXLINE * sizeof(int)); + + fp = fopen(TODOLIST,"r"); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE %s",TODOLIST); + return; + } + + while (fgets(c, MAXLINE, fp) != NULL ) + printf("\t\t\033[1;3%im*\033[0m %s",geturgency(urgency), c); + fclose(fp); + free(c); +} + diff --git a/.ccls-cache/@home@huck@.repos@odot/file.c.blob b/.ccls-cache/@home@huck@.repos@odot/file.c.blob new file mode 100644 index 0000000000000000000000000000000000000000..9afed16e2dcde405ef4d9a519e0be47e375b3c8d GIT binary patch literal 5452 zcmai2du$tb9lvut@8YnwZq*6^tbd*j7CQ%4ukMhR^45qO`r)mf>pgF$Z-<{pN z#C9U(zQ6n4_xF8#zK`E8iBRjoljpBeG!@TD1wNiDaVO$2nJ-F8T*^plJS*h+7)Ld5 z`LsB&+jE6gdpTElIO$l_0V=$aIyQc67)SdR*yhml@e5zZGW zl^3cvWqCG7(VOHz9W`5+(MNdI{pjTuji6UJnaV<@23|TWTe!K97SwD$U2iOxaMVU& zFp8?6E>-oIm_k)}td**lJK)Mii_qkHrEEGN(|J5SYO6Pzu253>#oAI;%C>5m)IF*6 za3ncX^YA1^Qq_w&u@qO-(yS7#R~_bduBrwMK)Y4_RIyO?>+NRP;&Xh{gtq{tI}jyh zTGmwaZe{c~<*O)n8&3cmAjQ)l1(d z^65+_+(S8?4w`W?9vjV29vkkyqtV;grhThtX6?)yXFUy|pvlwJrX9GjZtGh1Yshdj zZm*`S|7PHOQ>975@VQy-E04Xp^v35JrjXIhH2bu}pLxyy*SEevbhv2LU6C95A38WQA4UL#AHjOR6W#=&mGBKSn6@HZ)70z+E3sIthw}T)KHCvLR2uLE2<`Xu z6FTS_)RoiEe3v=?`Y%tJ6B{XzMh}-nnA9SlVeuf^1V>9-OBhvy*%74LQ+NJLUBBna z(qTCEx+Gl z3(FUSVgqc51a~vH8vaAqPhT@^Ss-U2to(*z>Y*YLbB5`lFQ|K+UOx2V&5mtPlMYjI z(gJBQhK@R;UK<^yMzFoo>XuY31}|<7{GJ1y+h2C9rxb<%kS~Oe^OH z8CX{q37jC6iGvbD%#gJ`aYR(+3rZOMT5e%;7T`2h_^_T>NVbvB4KqZGo+W4?q9;sp3B~xCQ&K($mPmnO-eXWlv0r!m(N?TKdJ> z@|(IHV*(p=#RZc#NRc$Zaf;yo3UIh=(u9GarUvbqXa8~J?%lt*hZjo)80~pUW=}4| zu>&1RJDd)mjdoCuvyg0xa_VQqO7xv8`-PX^BRtDPlkQqQ{`gD#-^FVk+>fv~;SX0f zHF+>a>JcAQB4M0@lvY;tKTu=SeiD0W_^wxee6CVVHoM#Ix6?kx=dsi8(@v@rtM9!3 z?W;Jvi~||YVmG?54SwlCaqyIjuGFM)cu_8w%~-O#Sz~G+7&|gOIRhsVi&rBFP6;^a zdU`-fi?79Rqg$AkBh)sSA&&M?d#8&IdV*efhJvu}=2ZP`_mKNu7v1b{ZgtUq#t;1Mp6$SIA8Fs?qC5Saz)vs<;P-j@fS(*m0)NOq z1bppU#|PDmpSpZ*@ATNdkAOiZS%9Aj^fTZH5kG+%ewJsTjvaR!Mh^BEhe}UPJRwH} z&X_L-aK;$8dLf(*$xsp?96U34)UbZY60`)sJy^F{SFgS`9d+&%Z3(0SUo}pLuW$Hn@!??718F z9CPHz9-zjaC;r`g`o+axtsS12d=O1I$pYjDQGU^JhR6doctOtB6}#{S$RyN_2?z~T;P zn-k{J_O|WtY@cZV=qTOS)(7k4L=x6o)6vgfy7ue*4f7s*OQdB8q{HoCA$D(U3Z%nH GSpOfvuM^<_ literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/func.c b/.ccls-cache/@home@huck@.repos@odot/func.c new file mode 100644 index 0000000..7eed44c --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/func.c @@ -0,0 +1,35 @@ +#include "odot.h" + +enum color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE}; + +int listcheck(void){ + char *s = malloc(MAXLINE * sizeof(char)); + + fp = fopen(TODOLIST, "r"); + + while (fgets(s, MAXLINE, fp) != NULL){ + s[strlen(s) - 1] = 0; + if (strcmp(note, s) == 0){ + free(s); + return 1; + } + } + free(s); + return 0; +} + +int geturgency(int n){ + if(n > 0 && n <= 10){ + if (n > 7) + return RED; + else if (n > 3) + return YELLOW; + else + return GREEN; + } else { + printf("ERROR: urgency OUT OF RANGE"); + return -1; + } + +} + diff --git a/.ccls-cache/@home@huck@.repos@odot/func.c.blob b/.ccls-cache/@home@huck@.repos@odot/func.c.blob new file mode 100644 index 0000000000000000000000000000000000000000..db3956c63c493bbb818cf52a3650736e1cd10a62 GIT binary patch literal 4078 zcmai0eQXnD7{5C@)^s`HjyAK5= z1Py=qk46&{F~&eJCP*~Fg_x*84JwHwiys6{jEeCOKZt~XFlMXI^WL?z?5=InzHje+ zp5OC(KHrNlv$_1~iww&M87(UbnY=hE#B?dA8G@G5h>*^!VoYS_iAqu(sUZ{{*Yr_Y z9f_u7T@s0=Pxd;XG7k!QLl?tT-8#i6P*rAtVynVS^-z zlpwaEX(>tax@6cMQk=A+C5ajpwQN>XoyCZpl??gmDujk7iDZl?b5$@XWl_<@Q3twZ zo`FSC+-Rm^VNkODZ*ZK>t;9-Lbe< zjbK(doyu~`Azo%!YS0`{$|S8MtBvJ6j@l>;MwQ59(v~qbg;02{;h@K)1h^F*3(ma-{Z+cK$oQ$=U*WCxq3NT)AM;yC7(70b)^c|M+)1pt*<0o=Ti;mULWvEYo8{UL2Mc9x z=HT^+q$}uj@Ud8Ij(1D_OHGijOZ$)h(c*p?gES(+JL8C?ij!gZ+s?S%0XElW|l>OLXp8d;NxSFWZ~1XU0dHj-gv|!WrjKp$VS-Q!%Hc=#EFE5 zIorXb*+fF^;LTu^9}>9Kv+c|s-g|-`Gnnkzx7`P>eR;?-WY$KOPJnPlju4_EA9XEt zVH&`j*Sfad3U2-fNhq>G#Ec}4hSBdv*5!6JbF7PLH2t2}b#~d~3zZo+Di?~j(eF7A zFh8YKqXbee#RVT=K@^H*g%7aSN>z&wu%t_UfDf>?D;}8P=BCWbxcz%OMNHxB`M>wB z?fv2bNzG@W*cDCZpE=BUy--dp=j8$%%Q4(Bs_UiMTUg33hD3!xfcI>mEfAjJTx?)j zAUrh#p>#Ff)#UfFO?*?Uj}3-`%|15N8d~XN3&k**sWup&kF&OXFK;Dhuy5}`{}5C@ zkE2n8YK3-eZwEtlfw~~a*17BUG7G@Wd{3(fK)rr%BmA~{Vc)Q(q1(s$T79thH~Ir$ z^4h6?-@P*S-^m^E&EUy=Sisb3^stTVK-#!Y1;IadQQM*p7h5_Js|Hhcc9UQ8tb`jR0CF%%i^}hYkS~s>|{y8wUVE@K}U2)`wE9i8i&Jeeo>cDDo+q8N*JF{`siNU@t@u8i4 zpm3M91)a61v!BaQ9at@$hJ7!7eEDnTItZ6OTwSE@z74D=?CF6ad;C_%bKgvSHN9tR z|4t;~r5ixJ7ZE48qZAQV3-M;|`jN+0y)j*agAH51tUd-<%jc(DpFGujpyJH4)$=Hv zU0!}SnR?;E$&CYjn;u3xbOUxe(N2hKrFLMo?0gve?*1iLJ~(Mj*Bs>5g}9houHIem M3$UJbp7lQVe~033nE(I) literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/input.c b/.ccls-cache/@home@huck@.repos@odot/input.c new file mode 100644 index 0000000..5f1ac10 --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/input.c @@ -0,0 +1,50 @@ +#include "odot.h" + +extern char *note, *o; +extern int urgency; + +char *getnote(int n, char *arg[]){ + char *s = malloc(MAXLINE * sizeof(char)); + + while(--n > 0){ + if ((*++arg)[0] != '-'){ + strcat(s, *arg); + strcat(s, (n > 1) ? " " : ""); + } + } + return s; +} + +void getopt(int n, char *arg[]){ + char *c; + + if (n == 1){ + o = "s"; + return; + } + + while (--n > 0 && (*++arg)[0] == '-'){ + c = malloc(strlen(*arg) * sizeof(char)); + c = *arg; + strcat(o,(strchr(c, 'd')) ? "d" : "n"); + + if (strchr(c,'s') != NULL){ + strcat(o,"s"); + } + + if (strchr(c,'i') != NULL){ + if (isdigit((int) *++arg)){ + urgency = (int) *arg; + } else { + printf("Non-integer argument for -i: %s\n", *arg); + } + } else { + urgency = 5; + } + free(c); + } + + if (strlen(o) == 0) + o = (listcheck() == 0) ? "n" : "d"; +} + diff --git a/.ccls-cache/@home@huck@.repos@odot/input.c.blob b/.ccls-cache/@home@huck@.repos@odot/input.c.blob new file mode 100644 index 0000000000000000000000000000000000000000..6304dac9c960d7d511b14950e0f7c84173e98bc7 GIT binary patch literal 4273 zcmai1U2NM_6!vwR(52bdR9%(2UTe}|C23=qQL3%$psTiNzi1CbDw?Xub=<~lVrTZv zy6#6zzylI!5`u}B!Nki32u(;#V;})<6)zx|c-Z!UKtl)w8ch6X0ycB*b&@5kom8rw zUf=tj?|kPw$7!0m_i^d`GJ{xF&YML|&X?5%S+cZ}Y0GBL#IkOb%2-kvMlRbH{G}Gk zIZamaQc08YOp8MSwV)XDt#)M=O>03n<}*3n(o}3(OIv(!nI}D2+#5c0YPsRbtd4D& zaJ1!Ywm55J1#4Lhgja5z(-d5`G~4qb#hELZ3N|vTSuC1{|2C`_HCsPMWLX)70?jUA z&0bVW{ySXCYQa<&eCXC?2D_AkUs^V{K++~zRn^(CYwvb{LN?Cn2F}25v&^Z`5V5S{ ztWI>W?2@MXqbk@e>S}gT&uLlJEE`y}{5NYxPFD;=vzsLYG5rzTR4e>&(Q~7#m*=B8 z$!Tt_E0fL6K?9AAw%%DGwW0_GeO9K;BR@JSjYwm)&Vzy|);!_){`G}M)7wk7tmd@2 zW;*39P03~Kykcp&4AsRy_eMm)WD}Y`s)C)S-Tko@uRI3V5Iv4k@;d~3%Ykx zR%dgDuo)X|0@EUlJHkEB6P7I+!F4#D%6iU6FIScpG#3>e&lQwrW4TO5Z3YITfpxs( z$(V*BP~^2%_O?6ds%A>i6TU$xmq3Qvw2FlMzBg5R zn+ZFA+GRrA zc;gzv5mV0zbC#wh>8EsxiN)IM4-Rz>#puBgA76j<+1uL&D+g70e+X&th?=*Os%h9* zaF>P!pps%Zjs|8JdJFIgeuTjE$NCfG9*@Q8-MO7Vo4g@@@@)mSY`{D*w46Z3r2y~+ z&1is6G3j(YGRukF27)McN<1aHY1`LV*%vpzK@*zSuvx-Mpfp_JcW@@fgu@XO4M%%e z6lF$ONH^g0{dMV)>BE0+bvmvM_uYEo?H`!@@vpAklDyDAKTFP#E0ptX=!vf6k5L zuM!MV5Qm+8m+rCR$sUI+klNG=N*0I)4a7*Pw19q7eU&D)SBJ;cD`W-JwSAEe!(TH8x)y@#ZeA2?_B|MdOU z_5bd0K05Hk9#$zo*G6L0D3XG$SRl&R>PL2v5;QEhHAa_R5$<0D&T+i+>~FolEITy@ zRogR>n(^Ii;2Y+_872}5!SIM~h;F>gwxOsPonY=lsUGSb?H%V4H^xmwP#@PPM9|>W z;7*=iC)vbQVrK-2$HY?+RBJ5a00YJnNPwb3G)@6y(fDNo$aZ&jcSTSy*UR(B8IFba zEI<6!_50M}43tpl`w;dUEN&}v8%nSheix>om^Kp>g()-E5Ct< zgZ*MZM30McxDIhcJU~?oSg&d@5fo{3J}A1Xw#V8z9(70^BXFcz{JM@TTl1QsE6W?!7T&g0OTU|OYm9llwsX@FZRxvZ{!oZTyaPz Q0SaboClab`4FgYNABj(#5E-XxR(8 zSt*ot8*9X}mo|q)SbKgtcFRj9d3-xvaXsYcA}c0Im07(tv2f;wLn7;ufSIwkh9*pPo`9wr%ITa?rzyE zYSj=7eNJK8QSO{BP8Da`oTmd(?F!WS;r9!E(mP9zqLuM{6i!tetL1`IRc%}@FkHf0 zZq{Zm0v*H6{OE!RB4;xIq8LDj47Q8`!TT4MFqpuW4%>{5UU4u9 zDH}TS)zezK9g``QB0~Tl9c<8*9v%qxi&Zl8U{SVqa{;QEnT`n4C5^Yj1O1`OE<*4a z&bG2%4#CTVrAwKMs!rw&HEJz4VAU4rVl;_PmI5ngsUQ?wYmH#KQ(Uz|or>IJ%Bl-e zHQ@FL58o7BtwHd~iSk$w(4dMa66=4r$Ceg(!A($~iC$O+e)q z_^O>D@a>8iy1Z6aZFnD0UI7J0(^jO=?^aE1bE5m|!80%a_QviLcptq%O=+*Cm!)|d zW0`%*PjEv+0>^$t_>1yFK6P_^D{_Ax|MKF{IekB~vvEzH;MT0^>oDbqriNy~bc4L1 z$XvFqzw+)&N4HNlb5WW~6-+dGlThbOW^JeQ`lz-er1j6L0VuElR`ymIz!mQO90 zSLa(NuVZ<#Q(2bR{p;%8yZ+70{sD;$-JzMVwm|&^VX!mRpggzwHUu?7%_Vn{!z+Vsq6cb`89>usxo=!gIj`ST;o;$Yo zP4~%7o9)B)MdEJzyY~XOz+~LkeBl6w?zXrB2QV|A1+cKqSg-&(w^%3ME+Ch-te_59BkkP-2Oj+AXr*a}{^8uWxA}gdyBTx?%PsK-Agb@}2iGoNYw994kun5CV8)j zQc{XS>b^g8>d0l~z)r7USQ%coP2XWY%Y3tO+D$5rL|L2?QTo~RArWORXMPmX=%LY9 RL?nG7T@X=zFh4A!{{W3CtTzAv literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/odot.h b/.ccls-cache/@home@huck@.repos@odot/odot.h new file mode 100644 index 0000000..8dd58e8 --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/odot.h @@ -0,0 +1,23 @@ +#include +#include +#include +#include +#include + +#define MAXLINE 1000 +#define TIME "%H:%M %m-%d-%y" +#define TODOLIST "/home/huck/.local/state/odot/todo" + +char *getnote(int, char *[]); +void getopt(int, char *[]); +void add(void); +void rem(void); +void show(void); +int listcheck(void); +int geturgency(int); +void dialogue(char, char *); + +char *note, *o; +int urgency; +FILE *fp; + diff --git a/.ccls-cache/@home@huck@.repos@odot/odot.h.blob b/.ccls-cache/@home@huck@.repos@odot/odot.h.blob new file mode 100644 index 0000000000000000000000000000000000000000..1bf1678f29aefb3d05bcc5eef6ecd9ffdfe1a333 GIT binary patch literal 3870 zcma)9TWB0r7(TPcbeY{Gn`TpD8_E!grfFwqTSBM>AB5f_jaAwQiIw)jMT74-b^5% z)MVIe81+anA&N|!nrkui2r+}v8Zq?-v9NAZ-(lE|w+XT=tmB;*&rzWK(JPjhv^hVhL z*F7pCHM;;JPkYMRz!K`?Isl-GTJBhS8ui@`J0zs~-iG+^1~Jkn0mT5TAB>Lny*7DY zz}s}++xFl<>DJ31&V9^YTljXJ5=()rjZG^)UNB)h?NRtsS=@zWIfukg79nX;p4=`; zlW1}oq1HFAuAjSl;m=>7ACwA)J7NVpW^)1l-G$QWd`~Nv&do|v4&|N$E&IyInX7l- zJ;=3e;xV&|&9w!tv9+f$k)8lQ6KH~KoWFhk`s@c^-4`gmDs6zYET?MyLRD!Wp4iHf%#Qs zzNXGw>U@(M*pk~alj6?Uydjv;gE{TttZXFpth g>GfkPuW(o69arsF%HCqJ2&$vG(VZ#&TnIe;2S^o9>i_@% literal 0 HcmV?d00001 diff --git a/.ccls-cache/@home@huck@.repos@odot/structure.c b/.ccls-cache/@home@huck@.repos@odot/structure.c new file mode 100644 index 0000000..2e76b77 --- /dev/null +++ b/.ccls-cache/@home@huck@.repos@odot/structure.c @@ -0,0 +1,43 @@ +#include "odot.h" + +extern int urgency; +extern FILE *fp; + +struct note { + int length; + char *note; + int date; + int due; + int urgency; +}; + +struct note makenote(int n, char **arg){ + struct note temp; + + temp.note = getnote(n,arg); + temp.length = strlen(temp.note); + temp.date = 0; + temp.due = 0; + temp.urgency = urgency; + + return temp; +} + +void putnote(struct note n){ + fp = fopen(TODOLIST, "w"); + + if (fp == NULL){ + printf("ERROR: COULD NOT OPEN FILE %s\n", TODOLIST); + } + + fprintf(fp, "%i\t%s\t%i\t%i\t%i\n",n.length,n.note,n.date,n.due,n.urgency); + +} + +struct note findnote(char *c){ + struct note tmp; + + sscanf(c,"%i\t%s\t%i\t%i\t%i\n",&tmp.length,tmp.note,&tmp.date,&tmp.due,&tmp.urgency); + + return tmp; +} diff --git a/.ccls-cache/@home@huck@.repos@odot/structure.c.blob b/.ccls-cache/@home@huck@.repos@odot/structure.c.blob new file mode 100644 index 0000000000000000000000000000000000000000..9ef2910cbee46e27c00cb04fba9d551f796b4a4f GIT binary patch literal 4543 zcma)9e~jB^8TOat?tHf-IJq=U(%kU@x$`BelcS2N?zD+gjr~%&jln-->N210T-;0S zV1M5Ay0x63jEYTcnt)AHK^tX-KlVojtP;P4fFdD;RHT(36O%v)RZLn3`(vHp>b;*G z`<&IzEz*6Lvp+xY^FHtMzMrqgT)%w$+(ia4jgH<^8XZeoYt#*;ubT~B)=9%8h9wcp zQ0fvBm%5_1`hIo_>$BceCA^f%QPCQCUq@YX-H(Fuhcut^}REN`xx=1uZ(tAB!i{3`mo?@!UM-W=s zAd0yz_D5hil%=jNtwqocWCpv$Zd6)O3XpU}R-QVy-*xyC(S%GQs~QpDXH@16Yq$6< zmFi%aeMO2!6^Y(crPjJCD=kU4G@=;Mn-xt~MNL!8QOQ8eXaqOa0YB0U-RSBSdMhBg zliSXfX|>wW6Z@Mx?;Mc2p$J`drQtMC`Vtv2wc_@fztWuum|FSl0dUL~UNV3u% zrBlaHL|HI9qM^uwqf2zk18&ATwPWzI*#d0BE($Q4rLRrqYFx9t}k2i{9$0;Z5ny zW`VNV-y8w6Ll}32hdxhP?$8LX!=0(D$`N|Gvg|-}T~tZCD~=k=79F($3`UKpWFwTZ z6N*C7W6cV;JLoD2eQ0vmDK{LDVwavC(eQ(&>sdrO7QHLPwxKo|c~ZIQ=!P75cseEt zWwEMR@X}$en8GM`1lu_j1_D64h2HWbgx=k5h8=DRvoRO9#;~i}McJ3)SUIU-;K4 zZh+<@wDrEC4KW_ZtTLt2R1mI|EtMU(pZ;@k`gc#ys1NI^jQbYRbfPS{*2VNY)~d|Z zR2mhhiiH>|G9Qis46>iO?ew!x{9L*er$DyHDGrb`+)Ua2b&7*ZH5lHb}(MU=nJIjOn1qz@Yn{jH*nnHY9MSl38?e@S+6-9_Smamapp& z2&Lm}pn zYohf)FhoyWQ=Aagwwgz@25&cRuv8%h!BWg_8Z2&KK0CAL#cNOf&E9pbcIDOOE4%Ff z-ty-1Yi}OC9;2Dqo&+>171uA(HjRY+kH`Kfy#0IO`5=!+PB7^-3%(djkL6=%jJb&h z9J7xs^x2Pparq!)fBEeH&i^4JpWn1UJNNgihd%W7_qM=Ak3W6##5;F>?aCH(Nwa#+ z-1YCo=eITyvl|=|_sRKY^FDYkYKV?qrv}MxOLY(EvJ>}!YnRAGS0_``ak@M>>t-(xp~i@ zUOtQB={SVDFxch)8n+)Icb>UgeEp)IyPvS1t)Hr25at7ZYC%~^uMeIXhrn}qZa#+Q z*tvOM{}kAGoWGmDH-Y$v_%^JBKMw0@{;RM)$3LGy)qJ&_M83xcJ_Hj(bx>u0<-k@9 zgsW8!Fk1kI_&i^L?Oq1dQZT=*fp0;`7mus(`U!g?Bi1#IJ4)9EId zeM?I+{L{;@IcjZ|V+$0OW!b_7b~hL_o6VMT2pjl#67i4nr%r7fI)GqN0IJ3$H<_mZ zlk8;P1(?oG7XV-rKL!9#@!tRduM4&T{1W7#1Zawznx!C9?9{9alFQ~WfINYp1CVd? z=KsH|xU@u9CRv~nCUO%F z%L#U(%+SImxGV>S%iNN=4g3TL4sh-8eL#Av|HkI0`EOnd3KuKQmg)!5j66dQqIUtt Cy&PWv literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index 687fbd5..7e48f1c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ SHELL = /bin/zsh PROG = todo -PREFIX ?= /home/huck/.local/bin -TODOLIST = /home/huck/info/notes/todo +PREFIX ?= /usr/local/bin +TODOLIST = $(HOME)/.local/share/odot/todo install : main.c input.c file.c gcc *.c -o '$(PREFIX)/$(PROG)' @@ -12,7 +12,6 @@ header : todo.h clean : rm *.gch rm "$(PREFIX)/$(PROG)" - cp $(TODOLIST).md $(TODOLIST) test : todo diff --git a/error.c b/error.c new file mode 100644 index 0000000..73d6a23 --- /dev/null +++ b/error.c @@ -0,0 +1,2 @@ +#include "odot.h" + diff --git a/file.c b/file.c index 09d621d..9800c59 100644 --- a/file.c +++ b/file.c @@ -1,19 +1,19 @@ -#include "todo.h" +#include "odot.h" -#define TODOLIST "/home/huck/info/notes/todo" extern char *note; +extern FILE *fp; enum color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE}; -FILE *fp; - void add(void){ fp = fopen(TODOLIST, "a"); - if (fp != NULL){ - fputs(strcat(note,"\n"),fp); - fclose(fp); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE: %s\n",TODOLIST); + return; } + fputs(strcat(note,"\n"),fp); + fclose(fp); } void rem(void){ @@ -21,6 +21,10 @@ void rem(void){ FILE *tmp = fopen("temp", "w"); fp = fopen(TODOLIST, "r"); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE: %s\n",TODOLIST); + return; + } while (fgets(s, MAXLINE, fp) != NULL){ @@ -40,30 +44,17 @@ void rem(void){ } void show(void){ - char *c; - - c = (char *) malloc(MAXLINE * sizeof(int)); + char *c = (char *) malloc(MAXLINE * sizeof(int)); fp = fopen(TODOLIST,"r"); + if (fp == NULL){ + printf("ERROR: COULD NOT ACCESS FILE %s",TODOLIST); + return; + } + while (fgets(c, MAXLINE, fp) != NULL ) - printf("\t\t\033[1;35m*\033[0m %s", c); + printf("\t\t\033[1;3%im*\033[0m %s",geturgency(urgency), c); fclose(fp); free(c); } -int listcheck(void){ - char *s; - - fp = fopen(TODOLIST, "r"); - s = (char *) malloc(MAXLINE * sizeof(char)); - - while (fgets(s, MAXLINE, fp) != NULL){ - s[strlen(s) - 1] = 0; - if (strcmp(note, s) == 0){ - free(s); - return 1; - } - } - free(s); - return 0; -} diff --git a/func.c b/func.c new file mode 100644 index 0000000..7eed44c --- /dev/null +++ b/func.c @@ -0,0 +1,35 @@ +#include "odot.h" + +enum color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE}; + +int listcheck(void){ + char *s = malloc(MAXLINE * sizeof(char)); + + fp = fopen(TODOLIST, "r"); + + while (fgets(s, MAXLINE, fp) != NULL){ + s[strlen(s) - 1] = 0; + if (strcmp(note, s) == 0){ + free(s); + return 1; + } + } + free(s); + return 0; +} + +int geturgency(int n){ + if(n > 0 && n <= 10){ + if (n > 7) + return RED; + else if (n > 3) + return YELLOW; + else + return GREEN; + } else { + printf("ERROR: urgency OUT OF RANGE"); + return -1; + } + +} + diff --git a/input.c b/input.c index 786e28d..5f1ac10 100644 --- a/input.c +++ b/input.c @@ -1,8 +1,9 @@ -#include "todo.h" +#include "odot.h" extern char *note, *o; +extern int urgency; -void getnote(int n, char *arg[]){ +char *getnote(int n, char *arg[]){ char *s = malloc(MAXLINE * sizeof(char)); while(--n > 0){ @@ -11,8 +12,7 @@ void getnote(int n, char *arg[]){ strcat(s, (n > 1) ? " " : ""); } } - strcpy(note, s); - free(s); + return s; } void getopt(int n, char *arg[]){ @@ -20,28 +20,31 @@ void getopt(int n, char *arg[]){ if (n == 1){ o = "s"; + return; } - + while (--n > 0 && (*++arg)[0] == '-'){ - if (strlen(*arg) <= 3){ - c = malloc(strlen(*arg) * sizeof(char)); - c = *arg; - strcat(o,(strchr(c, 'd')) ? "d" : "n"); - if (strchr(c,'s') != NULL){ - strcat(o,"s"); + c = malloc(strlen(*arg) * sizeof(char)); + c = *arg; + strcat(o,(strchr(c, 'd')) ? "d" : "n"); + + if (strchr(c,'s') != NULL){ + strcat(o,"s"); + } + + if (strchr(c,'i') != NULL){ + if (isdigit((int) *++arg)){ + urgency = (int) *arg; + } else { + printf("Non-integer argument for -i: %s\n", *arg); } - free(c); } else { - printf("\033[31mToo many options\033[0m: %s\n\tUse -h for help", *arg); + urgency = 5; } + free(c); } - if (strlen(o) == 0){ - if (listcheck() == 0) - o = "n"; - else - o = "d"; - } + if (strlen(o) == 0) + o = (listcheck() == 0) ? "n" : "d"; } - diff --git a/main.c b/main.c index ce634b2..745a777 100644 --- a/main.c +++ b/main.c @@ -1,6 +1,7 @@ -#include "todo.h" +#include "odot.h" -char *note, *o; +extern char *note, *o; +extern int urgency; int main(int argc, char *argv[]){ char op; diff --git a/odot.h b/odot.h index 97a172c..8dd58e8 100644 --- a/odot.h +++ b/odot.h @@ -2,13 +2,22 @@ #include #include #include +#include #define MAXLINE 1000 +#define TIME "%H:%M %m-%d-%y" +#define TODOLIST "/home/huck/.local/state/odot/todo" -void getnote(int, char *[]); +char *getnote(int, char *[]); void getopt(int, char *[]); void add(void); void rem(void); void show(void); int listcheck(void); +int geturgency(int); +void dialogue(char, char *); + +char *note, *o; +int urgency; +FILE *fp; diff --git a/structure.c b/structure.c new file mode 100644 index 0000000..2e76b77 --- /dev/null +++ b/structure.c @@ -0,0 +1,43 @@ +#include "odot.h" + +extern int urgency; +extern FILE *fp; + +struct note { + int length; + char *note; + int date; + int due; + int urgency; +}; + +struct note makenote(int n, char **arg){ + struct note temp; + + temp.note = getnote(n,arg); + temp.length = strlen(temp.note); + temp.date = 0; + temp.due = 0; + temp.urgency = urgency; + + return temp; +} + +void putnote(struct note n){ + fp = fopen(TODOLIST, "w"); + + if (fp == NULL){ + printf("ERROR: COULD NOT OPEN FILE %s\n", TODOLIST); + } + + fprintf(fp, "%i\t%s\t%i\t%i\t%i\n",n.length,n.note,n.date,n.due,n.urgency); + +} + +struct note findnote(char *c){ + struct note tmp; + + sscanf(c,"%i\t%s\t%i\t%i\t%i\n",&tmp.length,tmp.note,&tmp.date,&tmp.due,&tmp.urgency); + + return tmp; +} -- 2.45.2