>>> lnav: Building community/lnav 0.14.0-r0 (using abuild 3.16.0-r0) started Mon, 13 Apr 2026 01:44:31 +0000 >>> lnav: Validating /home/buildozer/aports/community/lnav/APKBUILD... >>> lnav: Analyzing dependencies... >>> lnav: Installing for build: build-base tzdata bash bzip2-dev curl-dev gpm-dev libarchive-dev libbsd-dev libunistring-dev ncurses-dev pcre2-dev readline-dev sqlite-dev zlib-dev ( 1/43) Installing tzdata (2026a-r0) ( 2/43) Installing bash (5.3.9-r1) Executing bash-5.3.9-r1.post-install ( 3/43) Installing libbz2 (1.0.8-r6) ( 4/43) Installing bzip2-dev (1.0.8-r6) ( 5/43) Installing brotli (1.2.0-r1) ( 6/43) Installing brotli-dev (1.2.0-r1) ( 7/43) Installing c-ares-dev (1.34.6-r0) ( 8/43) Installing libidn2-dev (2.3.8-r0) ( 9/43) Installing libpsl-utils (0.21.5-r3) (10/43) Installing libpsl-dev (0.21.5-r3) (11/43) Installing nghttp2-dev (1.68.1-r0) (12/43) Installing openssl-dev (3.5.6-r0) (13/43) Installing zlib-dev (1.3.2-r0) (14/43) Installing zstd (1.5.7-r2) (15/43) Installing zstd-dev (1.5.7-r2) (16/43) Installing curl-dev (8.19.0-r0) (17/43) Installing gpm-libs (1.20.7-r6) (18/43) Installing gpm-dev (1.20.7-r6) (19/43) Installing xz-libs (5.8.2-r0) (20/43) Installing libarchive (3.8.6-r0) (21/43) Installing libarchive-dev (3.8.6-r0) (22/43) Installing bsd-compat-headers (0.7.2-r6) (23/43) Installing linux-headers (6.19.11-r1) (24/43) Installing libmd (1.1.0-r0) (25/43) Installing libmd-dev (1.1.0-r0) (26/43) Installing libbsd (0.12.2-r0) (27/43) Installing libbsd-dev (0.12.2-r0) (28/43) Installing libunistring-dev (1.4.1-r0) (29/43) Installing libformw (6.6_p20260404-r0) (30/43) Installing libmenuw (6.6_p20260404-r0) (31/43) Installing libpanelw (6.6_p20260404-r0) (32/43) Installing libncurses++ (6.6_p20260404-r0) (33/43) Installing ncurses-dev (6.6_p20260404-r0) (34/43) Installing libedit-dev (20251016.3.1-r1) (35/43) Installing libpcre2-16 (10.47-r0) (36/43) Installing libpcre2-32 (10.47-r0) (37/43) Installing pcre2-dev (10.47-r0) (38/43) Installing libhistory (8.3.3-r1) (39/43) Installing readline-dev (8.3.3-r1) (40/43) Installing sqlite (3.53.0-r0) (41/43) Installing sqlite-libs (3.53.0-r0) (42/43) Installing sqlite-dev (3.53.0-r0) (43/43) Installing .makedepends-lnav (20260413.014433) Executing busybox-1.37.0-r31.trigger OK: 447.8 MiB in 147 packages >>> lnav: Cleaning up srcdir >>> lnav: Cleaning up pkgdir >>> lnav: Cleaning up tmpdir >>> lnav: Fetching https://distfiles.alpinelinux.org/distfiles/edge/lnav-0.14.0.tar.gz Connecting to distfiles.alpinelinux.org (172.105.82.32:443) wget: server returned error: HTTP/1.1 404 Not Found >>> lnav: Fetching https://github.com/tstack/lnav/releases/download/v0.14.0/lnav-0.14.0.tar.gz Connecting to github.com (140.82.121.3:443) Connecting to release-assets.githubusercontent.com (185.199.111.133:443) saving to '/var/cache/distfiles/edge/lnav-0.14.0.tar.gz.part' lnav-0.14.0.tar.gz.p 100% |********************************| 4659k 0:00:00 ETA '/var/cache/distfiles/edge/lnav-0.14.0.tar.gz.part' saved /var/cache/distfiles/edge/lnav-0.14.0.tar.gz: OK >>> lnav: Fetching https://distfiles.alpinelinux.org/distfiles/edge/lnav-0.14.0.tar.gz /var/cache/distfiles/edge/lnav-0.14.0.tar.gz: OK >>> lnav: Unpacking /var/cache/distfiles/edge/lnav-0.14.0.tar.gz... configure: WARNING: unrecognized options: --disable-tinfo checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking build system type... i586-alpine-linux-musl checking host system type... i586-alpine-linux-musl checking whether make supports the include directive... yes (GNU style) checking for i586-alpine-linux-musl-gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether cc accepts -g... yes checking for cc option to enable C11 features... none needed checking whether cc understands -c and -o together... yes checking dependency style of cc... gcc3 checking how to run the C preprocessor... cc -E checking for i586-alpine-linux-musl-gcc... i586-alpine-linux-musl-gcc checking whether the compiler supports GNU C... (cached) yes checking whether i586-alpine-linux-musl-gcc accepts -g... yes checking for i586-alpine-linux-musl-gcc option to enable C11 features... (cached) none needed checking whether i586-alpine-linux-musl-gcc understands -c and -o together... yes checking dependency style of i586-alpine-linux-musl-gcc... gcc3 checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking how to run the C preprocessor... i586-alpine-linux-musl-gcc -E checking whether the compiler supports GNU C++... yes checking whether c++ accepts -g... yes checking for c++ option to enable C++11 features... none needed checking dependency style of c++... gcc3 checking how to run the C++ preprocessor... c++ -E checking for i586-alpine-linux-musl-g++... i586-alpine-linux-musl-g++ checking whether the compiler supports GNU C++... (cached) yes checking whether i586-alpine-linux-musl-g++ accepts -g... yes checking for i586-alpine-linux-musl-g++ option to enable C++11 features... (cached) none needed checking dependency style of i586-alpine-linux-musl-g++... gcc3 checking how to run the C++ preprocessor... i586-alpine-linux-musl-g++ -E checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking whether cc is Clang... no checking whether pthreads work with "-pthread" and "-lpthread"... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking whether more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes checking whether c++ supports C++17 features with -std=c++17... yes checking for i586-alpine-linux-musl-ranlib... no checking for ranlib... ranlib checking for i586-alpine-linux-musl-ar... no checking for i586-alpine-linux-musl-lib... no checking for i586-alpine-linux-musl-link... no checking for ar... ar checking the archiver (ar) interface... ar checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bash... /bin/bash checking for cargo... no checking for bzip2... /usr/bin/bzip2 checking for re2c... no checking for xz... no checking for tshark... no checking for check-jsonschema... no checking for windres... no checking for cxxbridge... no checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking size of off_t... 8 checking size of size_t... 4 checking for mkostemp... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for c++ -std=c++17 options needed to detect all undeclared functions... none needed checking for struct tm.tm_zone... yes checking for library containing openpty... none required checking for library containing gzseek... -lz checking for library containing BZ2_bzopen... -lbz2 checking for library containing dlopen... none required checking for library containing backtrace... no checking for library containing uc_width... -lunistring checking for gawk... (cached) awk checking for curl-config... /usr/bin/curl-config checking for the version of libcurl... 8.19.0 checking for libcurl >= version 7.23.0... yes checking whether libcurl is usable... yes checking for curl_free... yes checking for execinfo.h... no checking for pty.h... yes checking for util.h... no checking for zlib.h... yes checking for bzlib.h... yes checking for libutil.h... no checking for sys/ttydefaults.h... yes checking for libproc.h... no checking for uniwidth.h... yes checking for sys/sysctl.h... no checking for windows.h... no checking lib archive... (testing) checking for archive_read_new in -larchive... yes checking for archive.h... yes checking lib archive... -larchive checking if PCRE2 is wanted... yes checking for pcre2_compile_8 in -lpcre2-8... yes checking for pcre2.h... yes checking whether to build with code coverage support... no checking for library containing sqlite3_open... -lsqlite3 checking for sqlite3.h... yes checking for SQLite3 library >= 3.9.0... yes checking for sqlite3_stmt_readonly... yes checking for sqlite3_value_subtype... yes checking for sqlite3_error_offset... yes checking for sqlite3_drop_modules... yes Adding include path: /usr/local/include checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating TESTS_ENVIRONMENT config.status: creating tools/Makefile config.status: creating src/help.md config.status: creating src/Makefile config.status: creating src/base/Makefile config.status: creating src/formats/logfmt/Makefile config.status: creating src/fmtlib/Makefile config.status: creating src/pcrepp/Makefile config.status: creating src/pugixml/Makefile config.status: creating src/tailer/Makefile config.status: creating src/yajl/Makefile config.status: creating src/yajlpp/Makefile config.status: creating src/third-party/base64/lib/Makefile config.status: creating src/third-party/date/src/Makefile config.status: creating src/third-party/notcurses/src/lib/Makefile config.status: creating src/third-party/scnlib/src/Makefile config.status: creating test/Makefile config.status: creating test/expected/Makefile config.status: creating src/config.h config.status: executing depfiles commands configure: WARNING: unrecognized options: --disable-tinfo Making all in tools make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' cc -I../src/third-party/doctest-root -D_ISOC99_SOURCE -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -DHAS_REMOTE_API=0 -DUSE_OS_TZDB=1 -I/usr/include -I/usr/include -I/usr/local/include -Wl,--as-needed,-O1,--sort-common -Wl,-z,pack-relative-relocs -L/usr/lib -L/usr/lib -L/usr/local/lib -L/usr/lib -L//lib -g3 -o bin2c bin2c.c -lz -fPIE make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' Making all in src make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' BIN2C animals-json.cc BIN2C ansi-palette-json.cc BIN2C builtin-scripts.cc BIN2C builtin-sh-scripts.cc BIN2C static-files.cc BIN2C css-color-names-json.cc BIN2C default-config.cc BIN2C default-formats.cc BIN2C diseases-json.cc BIN2C emojis-json.cc BIN2C words-json.cc BIN2C help-md.cc BIN2C init-sql.cc BIN2C prql-modules.cc BIN2C terminfo-files.cc CXX ptimec BIN2C xml-entities-json.cc BIN2C xterm-palette-json.cc ptimec.cc: In function 'int main(int, char**)': ptimec.cc:124:46: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 124 | " if (len - off_inout < %lu) {\n" | ~~^ | | | long unsigned int | %u ...... 127 | min_width); | ~~~~~~~~~ | | | size_t {aka unsigned int} ptimec.cc:144:52: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'unsigned int' [-Wformat=] 144 | printf(" off_inout += %lu;\n", checked_pos.value()); | ~~^ ~~~~~~~~~~~~~~~~~~~ | | | | long unsigned int unsigned int | %u ptimec.cc:193:36: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=] 193 | "%lu);\n", | ~~^ | | | long unsigned int | %u 194 | arg[index + 1], 195 | checked_pos.value()); | ~~~~~~~~~~~~~~~~~~~ | | | unsigned int ptimec.cc:217:71: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'unsigned int' [-Wformat=] 217 | " PTIME_CHECK_CHAR('%s', str[off_inout + %lu]);\n", | ~~^ | | | long unsigned int | %u 218 | escape_char(arg[index]), 219 | checked_pos.value()); | ~~~~~~~~~~~~~~~~~~~ | | | unsigned int ptimec.cc:231:40: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 231 | printf(" off_inout += %lu;\n", min_width); | ~~^ ~~~~~~~~~ | | | | | size_t {aka unsigned int} | long unsigned int | %u TIMEFMT time_fmts.cc make all-recursive make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' Making all in fmtlib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' CXX os.o CXX format.o AR libcppfmt.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' Making all in third-party/base64/lib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' CC lib.o CC arch/generic/codec.o CC tables/tables.o AR libbase64.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' Making all in third-party/date/src make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' CXX tz.o AR libdatepp.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' Making all in third-party/notcurses/src/lib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' CC automaton.o CC blit.o CC capabilities.o CC debug.o CC direct.o CC fade.o CC fd.o CC fill.o CC gpm.o CC in.o CC kitty.o CC layout.o CC linux.o CC menu.o CC metric.o CC mice.o CC notcurses.o CC plot.o CC progbar.o CC reader.o CC reel.o CC render.o CC selector.o CC sixel.o CC sprite.o CC stats.o CC tabbed.o CC termdesc.o CC terminfo.o CC tree.o CC unixsig.o CC util.o CC visual.o CC windows.o CC ../compat/compat.o In file included from ./../lib/fbuf.h:15, from ./../lib/sprite.h:10, from ./../lib/termdesc.h:16, from internal.h:46, from linux.c:2: linux.c: In function 'add_to_map': linux.c:333:12: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 333 | logdebug("adding mapping U+%04x -> %03u", w, fidx); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ | | | wchar_t {aka long int} ./../lib/logging.h:49:49: note: in definition of macro 'logdebug' 49 | nclog(NCLOGLEVEL_DEBUG, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ linux.c:333:33: note: format string is defined here 333 | logdebug("adding mapping U+%04x -> %03u", w, fidx); | ~~~^ | | | unsigned int | %04lx linux.c: In function 'program_block_drawing_chars': linux.c:499:20: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 499 | logdebug("found %lc at fontidx %u", half[s].w, i); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:49:49: note: in definition of macro 'logdebug' 49 | nclog(NCLOGLEVEL_DEBUG, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ linux.c:499:29: note: format string is defined here 499 | logdebug("found %lc at fontidx %u", half[s].w, i); | ~~^ | | | unsigned int | %ld linux.c:507:20: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 507 | logdebug("found %lc at fontidx %u", quads[s].w, i); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:49:49: note: in definition of macro 'logdebug' 49 | nclog(NCLOGLEVEL_DEBUG, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ linux.c:507:29: note: format string is defined here 507 | logdebug("found %lc at fontidx %u", quads[s].w, i); | ~~^ | | | unsigned int | %ld linux.c:515:20: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 515 | logdebug("found %lc at fontidx %u", eighths[s].w, i); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:49:49: note: in definition of macro 'logdebug' 49 | nclog(NCLOGLEVEL_DEBUG, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ linux.c:515:29: note: format string is defined here 515 | logdebug("found %lc at fontidx %u", eighths[s].w, i); | ~~^ | | | unsigned int | %ld in.c: In function 'prep_special_keys': in.c:357:17: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 357 | char* seq = terminfo_get_string_by_name(notcurses_terminfo, k->tinfo); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ termdesc.c: In function 'terminfostr': termdesc.c:276:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 276 | *gseq = terminfo_get_string_by_name(notcurses_terminfo, name); | ^ direct.c: In function 'ncdirect_box': direct.c:1417:29: warning: format '%lc' expects argument of type 'wint_t', but argument 3 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1417 | if(fprintf(n->ttyfp, "%lc", wchars[0]) < 0){ | ~~^ ~~~~~~~~~ | | | | | wchar_t {aka long int} | unsigned int | %ld In file included from ./../lib/fbuf.h:15, from ./../lib/sprite.h:10, from ./../lib/termdesc.h:16, from internal.h:46, from direct.c:11: direct.c:1418:16: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1418 | logerror("error emitting %lc\n", wchars[0]); | ^~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:29:49: note: in definition of macro 'logerror' 29 | nclog(NCLOGLEVEL_ERROR, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ direct.c:1418:34: note: format string is defined here 1418 | logerror("error emitting %lc\n", wchars[0]); | ~~^ | | | unsigned int | %ld direct.c:1427:14: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1427 | logerror("error converting %lc\n", wchars[4]); | ^~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:29:49: note: in definition of macro 'logerror' 29 | nclog(NCLOGLEVEL_ERROR, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ direct.c:1427:34: note: format string is defined here 1427 | logerror("error converting %lc\n", wchars[4]); | ~~^ | | | unsigned int | %ld direct.c:1433:14: warning: format '%lc' expects argument of type 'wint_t', but argument 5 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1433 | logerror("error converting %lc\n", wchars[5]); | ^~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ | | | wchar_t {aka long int} ./../lib/logging.h:29:49: note: in definition of macro 'logerror' 29 | nclog(NCLOGLEVEL_ERROR, __func__, __LINE__, fmt, ##__VA_ARGS__); } \ | ^~~ direct.c:1433:34: note: format string is defined here 1433 | logerror("error converting %lc\n", wchars[5]); | ~~^ | | | unsigned int | %ld direct.c:1451:29: warning: format '%lc' expects argument of type 'wint_t', but argument 3 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1451 | if(fprintf(n->ttyfp, "%lc", wchars[1]) < 0){ | ~~^ ~~~~~~~~~ | | | | | wchar_t {aka long int} | unsigned int | %ld direct.c:1486:29: warning: format '%lc' expects argument of type 'wint_t', but argument 3 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1486 | if(fprintf(n->ttyfp, "%lc", wchars[2]) < 0){ | ~~^ ~~~~~~~~~ | | | | | wchar_t {aka long int} | unsigned int | %ld direct.c:1506:29: warning: format '%lc' expects argument of type 'wint_t', but argument 3 has type 'wchar_t' {aka 'long int'} [-Wformat=] 1506 | if(fprintf(n->ttyfp, "%lc", wchars[3]) < 0){ | ~~^ ~~~~~~~~~ | | | | | wchar_t {aka long int} | unsigned int | %ld In file included from egcpool.h:8, from notcurses.c:4: In function 'vsprintf', inlined from 'ncplane_vprintf_prep' at notcurses.c:2197:5: /usr/include/fortify/stdio.h:102:23: warning: '__orig_vsnprintf' specified size 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overflow=] 102 | __r = __orig_vsnprintf(__s, __b, __f, __v); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/fortify/sys/select.h:26, from /usr/include/sys/types.h:71, from /usr/include/unistring/stdint.h:72, from /usr/include/unitypes.h:22, from /usr/include/uniwidth.h:22, from notcurses.c:3: /usr/include/fortify/stdio.h: In function 'ncplane_vprintf_prep': /usr/include/fortify/stdio.h:82:1: note: in a call to function '__orig_vsnprintf' declared with attribute 'access (read_only, 3)' 82 | _FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n, | ^~~~~~~~~~~ AR liblnavnotcurses.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' Making all in third-party/scnlib/src make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' CXX scn/impl.o AR libscnlib.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' Making all in pcrepp make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' CXX pcre2pp.o AR libpcrepp.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' Making all in base make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' CXX ansi_scrubber.o CXX attr_line.o CXX attr_line.builder.o CXX auto_fd.o CXX auto_pid.o CXX cell_container.o CXX color_spaces.o CXX date_time_scanner.o CXX fs_util.o CXX fts_fuzzy_match.o CXX humanize.o CXX humanize.network.o CXX humanize.time.o CXX intern_string.o CXX is_utf8.o CXX isc.o CXX lnav.console.o CXX lnav.console.win.o CXX lnav.gzip.o CXX lnav.tz.o CXX lnav_log.o CXX network.tcp.o CXX paths.o CXX piper.file.o CXX progress.o CXX relative_time.o CXX small_string_map.o CXX snippet_highlighters.o CXX string_attr_type.o CXX string_util.o CC strnatcmp.o CXX time_util.o CC ../third-party/xxHash/xxhash.o piper.file.cc: In function 'std::optional lnav::piper::read_header(int, const char*)': piper.file.cc:72:18: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare] 72 | if (meta_prc != meta_size) { | ~~~~~~~~~^~~~~~~~~~~~ attr_line.cc: In member function 'attr_line_t& attr_line_t::insert(size_t, ui_icon_t)': attr_line.cc:291:12: warning: unused variable 'start_len' [-Wunused-variable] 291 | size_t start_len = this->al_string.length(); | ^~~~~~~~~ In file included from humanize.time.cc:42: ../../src/ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ../../src/ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ../../src/ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ In file included from date_time_scanner.cc:44: ../../src/ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ../../src/ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ../../src/ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ../../src/ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ lnav_log.cc: In function 'void log_rusage_raw(lnav_log_level_t, const char*, int, const rusage&)': lnav_log.cc:454:24: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'long long int' [-Wformat=] 454 | " utime=%ld.%06d", | ~~^ | | | long int | %lld 455 | ru.ru_utime.tv_sec, | ~~~~~~~~~~~~~~~~~~ | | | long long int lnav_log.cc:454:29: warning: format '%d' expects argument of type 'int', but argument 6 has type 'long long int' [-Wformat=] 454 | " utime=%ld.%06d", | ~~~^ | | | int | %06lld 455 | ru.ru_utime.tv_sec, 456 | ru.ru_utime.tv_usec); | ~~~~~~~~~~~~~~~~~~~ | | | long long int lnav_log.cc:460:24: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'long long int' [-Wformat=] 460 | " stime=%ld.%06d", | ~~^ | | | long int | %lld 461 | ru.ru_stime.tv_sec, | ~~~~~~~~~~~~~~~~~~ | | | long long int lnav_log.cc:460:29: warning: format '%d' expects argument of type 'int', but argument 6 has type 'long long int' [-Wformat=] 460 | " stime=%ld.%06d", | ~~~^ | | | int | %06lld 461 | ru.ru_stime.tv_sec, 462 | ru.ru_stime.tv_usec); | ~~~~~~~~~~~~~~~~~~~ | | | long long int ansi_scrubber.cc: In function 'void scrub_ansi_string(std::string&, string_attrs_t*)': ansi_scrubber.cc:490:35: warning: comparison of integer expressions of different signedness: 'const int32_t' {aka 'const int'} and 'std::__cxx11::basic_string::size_type' {aka 'unsigned int'} [-Wsign-compare] 490 | if (sf.sf_end < str.size()) { | ~~~~~~~~~~^~~~~~~~~~~~ date_time_scanner.cc: In static member function 'static Result humanize::time::point::from(string_fragment, std::optional)': date_time_scanner.cc:472:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'unsigned int'} and 'int' [-Wsign-compare] 472 | if (matched_size != in.length()) { | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ relative_time.cc: In member function 'int64_t relative_time::to_microseconds() const': relative_time.cc:1176:15: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct exttm'; use assignment or value-initialization instead [-Wclass-memaccess] 1176 | memset(&etm, 0, sizeof(etm)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~ In file included from relative_time.hh:45, from relative_time.cc:33: time_util.hh:163:8: note: 'struct exttm' declared here 163 | struct exttm { | ^~~~~ AR libbase.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' Making all in tailer make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' ../../tools/bin2c -n tailer_bin tailerbin ./tailer.main.py ./tailer.ape make all-am make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' CC sha-256.o CC tailer.o CXX libtailerpp_a-tailerpp.o CXX libtailerservice_a-tailerbin.o CXX libtailerservice_a-tailer.looper.o AR libtailercommon.a ar: `u' modifier ignored since `D' is the default (see `U') AR libtailerpp.a ar: `u' modifier ignored since `D' is the default (see `U') In file included from ../../src/base/auto_pid.hh:42, from tailer.looper.hh:39, from tailer.looper.cc:38: tailer.looper.cc: In lambda function: tailer.looper.cc:888:27: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'std::vector::size_type' {aka 'unsigned int'} [-Wformat=] 888 | log_debug("writing tail to: %lld/%ld %s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 889 | ptb.ptb_offset, 890 | ptb.ptb_bits.size(), | ~~~~~~~~~~~~~~~~~~~ | | | std::vector::size_type {aka unsigned int} ../../src/base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ tailer.looper.cc:888:17: note: in expansion of macro 'log_debug' 888 | log_debug("writing tail to: %lld/%ld %s", | ^~~~~~~~~ tailer.looper.cc:888:52: note: format string is defined here 888 | log_debug("writing tail to: %lld/%ld %s", | ~~^ | | | long int | %d AR libtailerservice.a ar: `u' modifier ignored since `D' is the default (see `U') make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' Making all in pugixml make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' CXX pugixml.o AR libpugixml.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' Making all in yajl make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' CC yajl.o CC yajl_alloc.o CC yajl_encode.o CC yajl_buf.o CC yajl_gen.o CC yajl_lex.o CC yajl_parser.o CC yajl_tree.o CC yajl_version.o AR libyajl.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' Making all in yajlpp make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' CXX json_op.o CXX json_ptr.o CXX yajlpp.o AR libyajlpp.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' Making all in formats/logfmt make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' CXX logfmt.parser.o AR liblogfmt.a ar: `u' modifier ignored since `D' is the default (see `U') make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' Making all in . make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' CXX lnav.o CXX lnav.events.o CXX lnav.indexing.o CXX lnav.management_cli.o CXX all_ids_vtabs.o CXX breakpoint_vtab.o CXX file_vtab.o CXX all_logs_vtab.o CXX archive_manager.o CXX apps.o CXX bin2c_rt.o CXX bookmarks.o CXX bottom_status_source.o CXX breadcrumb_curses.o CXX cmd.parser.o CXX cmds.bookmarks.o CXX cmds.breakpoints.o CXX cmds.display.o CXX cmds.filtering.o CXX cmds.io.o CXX cmds.metadata.o CXX cmds.scripting.o CXX collation-functions.o CXX column_namer.o CXX command_executor.o CXX crashd.client.o CXX curl_looper.o CXX db_sub_source.o CXX document.sections.o CXX dump_internals.o CXX elem_to_json.o CXX environ_vtab.o CXX ext.longpoll.o CXX extension-functions.o CXX external_editor.o CXX external_opener.o CXX field_overlay_source.o CXX file_collection.o CXX file_converter_manager.o CXX file_format.o CXX file_options.o CXX files_sub_source.o CXX filter_observer.o CXX filter_status_source.o CXX filter_sub_source.o CXX fs-extension-functions.o CXX fstat_vtab.o CXX grep_proc.o CXX help_text.o CXX help_text_formatter.o CXX highlighter.o CXX hist_source.o In file included from base/auto_pid.hh:42, from grep_proc.hh:48, from grep_proc.cc:35: grep_proc.cc: In instantiation of 'void grep_proc::start() [with LineType = strong_int]': grep_proc.cc:486:16: required from here 486 | template class grep_proc; | ^~~~~~~~~~~~~~~~~~~~~ grep_proc.cc:134:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'unsigned int' [-Wformat=] 134 | log_info(" queue[%lu]: [%d:%d)", | ^~~~~~~~~~~~~~~~~~~~~~~ ./base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ grep_proc.cc:134:9: note: in expansion of macro 'log_info' 134 | log_info(" queue[%lu]: [%d:%d)", | ^~~~~~~~ grep_proc.cc:134:29: note: format string is defined here 134 | log_info(" queue[%lu]: [%d:%d)", | ~~^ | | | long unsigned int | %u In file included from file_format.cc:39: file_format.cc: In function 'detect_file_format_result detect_file_format(const std::filesystem::__cxx11::path&)': file_format.cc:133:38: warning: format '%d' expects argument of type 'int', but argument 6 has type 'text_format_t' [-Wformat=] 133 | log_info("file has text format: %s -> %d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | filename.c_str(), 135 | tf.value()); | ~~~~~~~~~~ | | | text_format_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ file_format.cc:133:29: note: in expansion of macro 'log_info' 133 | log_info("file has text format: %s -> %d", | ^~~~~~~~ file_format.cc:133:68: note: format string is defined here 133 | log_info("file has text format: %s -> %d", | ~^ | | | int CXX hotkeys.o CXX input_dispatcher.o file_collection.cc: In lambda function: file_collection.cc:881:52: warning: comparison of integer expressions of different signedness: 'int' and 'const rlim_t' {aka 'const long long unsigned int'} [-Wsign-compare] 881 | && v.fc_files.back()->get_fd() > lim.l_high_fd) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ In file included from field_overlay_source.cc:48: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ CXX json-extension-functions.o CXX line_buffer.o In file included from fs-extension-functions.cc:57: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = mapbox::util::variant; Args = {const char*}; Return (* f)(Args ...) = sql_basename; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = mapbox::util::variant; Args = {const char*}; Return (* f)(Args ...) = sql_basename]' 524 | }; | ^ fs-extension-functions.cc:342:76: required from here 342 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 343 | help_text("basename", "Extract the base portion of a pathname.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | .sql_function() | ~~~~~~~~~~~~~~~ 345 | .with_prql_path({"fs", "basename"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 346 | .with_parameter({"path", "The path"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | .with_tags({"filename"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 348 | .with_example({"To get the base of a plain file name", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 349 | "SELECT basename('foobar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | .with_example( | ~~~~~~~~~~~~~~ 351 | {"To get the base of a path", "SELECT basename('foo/bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | .with_example({"To get the base of a directory", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | "SELECT basename('foo/bar/')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | .with_example({"To get the base of an empty string", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 355 | "SELECT basename('')"}) | ~~~~~~~~~~~~~~~~~~~~~~~ 356 | .with_example({"To get the base of a Windows path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 357 | "SELECT basename('foo\\bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | .with_example({"To get the base of the root directory", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | "SELECT basename('/')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 360 | .with_example({ | ~~~~~~~~~~~~~~~ 361 | "To get the base of a path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | "from [{p='foo/bar'}] | select { fs.basename p }", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 363 | help_example::language::prql, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 364 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = mapbox::util::variant; Args = {const char*}; Return (* f)(Args ...) = sql_dirname; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = mapbox::util::variant; Args = {const char*}; Return (* f)(Args ...) = sql_dirname]' 524 | }; | ^ fs-extension-functions.cc:366:74: required from here 366 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 367 | help_text("dirname", "Extract the directory portion of a pathname.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | .sql_function() | ~~~~~~~~~~~~~~~ 369 | .with_parameter({"path", "The path"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 | .with_prql_path({"fs", "dirname"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 371 | .with_tags({"filename"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 372 | .with_example({"To get the directory of a relative file path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | "SELECT dirname('foo/bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | .with_example({"To get the directory of an absolute file path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 375 | "SELECT dirname('/foo/bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | .with_example( | ~~~~~~~~~~~~~~ 377 | {"To get the directory of a file in the root directory", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 378 | "SELECT dirname('/bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 379 | .with_example({"To get the directory of a Windows path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 380 | "SELECT dirname('foo\\bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 381 | .with_example({"To get the directory of an empty path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 382 | "SELECT dirname('')"})), | ~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {const std::vector >&}; Return (* f)(Args ...) = sql_joinpath; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {const std::vector >&}; Return (* f)(Args ...) = sql_joinpath]' 524 | }; | ^ fs-extension-functions.cc:384:76: required from here 384 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 385 | help_text("joinpath", "Join components of a path together.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | .sql_function() | ~~~~~~~~~~~~~~~ 387 | .with_prql_path({"fs", "join"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 388 | .with_parameter( | ~~~~~~~~~~~~~~~~ 389 | help_text( | ~~~~~~~~~~ 390 | "path", | ~~~~~~~ 391 | "One or more path components to join together. " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | "If an argument starts with a forward or backward " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 393 | "slash, it will be considered " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | "an absolute path and any preceding elements will " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | "be ignored.") | ~~~~~~~~~~~~~~ 396 | .one_or_more()) | ~~~~~~~~~~~~~~~ 397 | .with_tags({"filename"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 398 | .with_example( | ~~~~~~~~~~~~~~ 399 | {"To join a directory and file name into a relative path", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | "SELECT joinpath('foo', 'bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 401 | .with_example( | ~~~~~~~~~~~~~~ 402 | {"To join an empty component with other names into " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | "a relative path", | ~~~~~~~~~~~~~~~~~~ 404 | "SELECT joinpath('', 'foo', 'bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | .with_example( | ~~~~~~~~~~~~~~ 406 | {"To create an absolute path with two path components", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | "SELECT joinpath('/', 'foo', 'bar')"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 408 | .with_example( | ~~~~~~~~~~~~~~ 409 | {"To create an absolute path from a path component " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | "that starts with a forward slash", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | "SELECT joinpath('/', 'foo', '/bar')"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = text_auto_buffer; Args = {const char*}; Return (* f)(Args ...) = sql_readlink; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = text_auto_buffer; Args = {const char*}; Return (* f)(Args ...) = sql_readlink]' 524 | }; | ^ fs-extension-functions.cc:413:76: required from here 413 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 414 | help_text("readlink", "Read the target of a symbolic link.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | .sql_function() | ~~~~~~~~~~~~~~~ 416 | .with_prql_path({"fs", "readlink"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | .with_parameter({"path", "The path to the symbolic link."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | .with_tags({"filename"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = text_auto_buffer; Args = {const char*}; Return (* f)(Args ...) = sql_realpath; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = text_auto_buffer; Args = {const char*}; Return (* f)(Args ...) = sql_realpath]' 524 | }; | ^ fs-extension-functions.cc:420:76: required from here 420 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 421 | help_text( | ~~~~~~~~~~ 422 | "realpath", | ~~~~~~~~~~~ 423 | "Returns the resolved version of the given path, expanding " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | "symbolic links and " | ~~~~~~~~~~~~~~~~~~~~~ 425 | "resolving '.' and '..' references.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | .sql_function() | ~~~~~~~~~~~~~~~ 427 | .with_prql_path({"fs", "realpath"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 428 | .with_parameter({"path", "The path to resolve."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 429 | .with_tags({"filename"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = blob_auto_buffer; Args = {const char*, std::optional, std::optional}; Return (* f)(Args ...) = sql_shell_exec; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = blob_auto_buffer; Args = {const char*, std::optional, std::optional}; Return (* f)(Args ...) = sql_shell_exec]' 524 | }; | ^ fs-extension-functions.cc:431:80: required from here 431 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 432 | help_text("shell_exec", | ~~~~~~~~~~~~~~~~~~~~~~~ 433 | "Executes a shell command and returns its output.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | .sql_function() | ~~~~~~~~~~~~~~~ 435 | .with_prql_path({"shell", "exec"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 436 | .with_parameter({"cmd", "The command to execute."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | .with_parameter(help_text{ | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 438 | "input", | ~~~~~~~~ 439 | "A blob of data to write to the command's standard input."} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | .optional()) | ~~~~~~~~~~~~ 441 | .with_parameter( | ~~~~~~~~~~~~~~~~ 442 | help_text{"options", | ~~~~~~~~~~~~~~~~~~~~ 443 | "A JSON object containing options for the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 444 | "execution with the following properties:"} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | .optional() | ~~~~~~~~~~~ 446 | .with_parameter(help_text{ | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 447 | "env", | ~~~~~~ 448 | "An object containing the environment variables " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 449 | "to set or, if NULL, to unset."} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 450 | .optional())) | ~~~~~~~~~~~~~ 451 | .with_tags({"shell"})) | ~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int CXX listview_curses.o In file included from base/auto_pid.hh:42, from file_collection.hh:50, from lnav.indexing.hh:33, from lnav.indexing.cc:33: lnav.indexing.cc: In function 'rebuild_indexes_result_t rebuild_indexes(std::optional > > >)': lnav.indexing.cc:395:21: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'long long int' [-Wformat=] 395 | "Keeping duplicated file: %s; size=%lld; mtime=%ld; " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 396 | "path=%s", | ~~~~~~~~~ ./base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ lnav.indexing.cc:394:17: note: in expansion of macro 'log_info' 394 | log_info( | ^~~~~~~~ lnav.indexing.cc:395:70: note: format string is defined here 395 | "Keeping duplicated file: %s; size=%lld; mtime=%ld; " | ~~^ | | | long int | %lld CXX lnav.exec-phase.o CXX lnav.prompt.o In file included from logfile.hh:50, from filter_observer.hh:37, from filter_observer.cc:33: filter_observer.cc: In member function 'void line_filter_observer::clear_deleted_filter_state()': filter_observer.cc:124:23: warning: format '%d' expects argument of type 'int', but argument 7 has type 'filter_lang_t' [-Wformat=] 124 | log_debug("skipping deleted %p %zu %d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 127 | filter->get_lang()); | ~~~~~~~~~~~~~~~~~~ | | | filter_lang_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ filter_observer.cc:124:13: note: in expansion of macro 'log_debug' 124 | log_debug("skipping deleted %p %zu %d", | ^~~~~~~~~ filter_observer.cc:124:49: note: format string is defined here 124 | log_debug("skipping deleted %p %zu %d", | ~^ | | | int CXX lnav.script.parser.o lnav.indexing.cc: In instantiation of 'rebuild_indexes(std::optional > > >):: [with auto:38 = std::shared_ptr]': /usr/include/c++/15.2.0/bits/stl_algo.h:3798:5: required from '_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator*, vector > >; _Funct = rebuild_indexes(std::optional > > >)::]' 3798 | __f(*__first); | ~~~^~~~~~~~~~ lnav.indexing.cc:402:30: required from here 402 | std::for_each( | ~~~~~~~~~~~~~^ 403 | lf.begin(), lf.end(), [&dupe_name, &reload](auto& lf) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 404 | if (lf->mark_as_duplicate(dupe_name)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | log_info( | ~~~~~~~~~ 406 | " Hiding copy: size=%lld; mtime=%ld; path=%s", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | lf->get_stat().st_size, | ~~~~~~~~~~~~~~~~~~~~~~~ 408 | lf->get_stat().st_mtime, | ~~~~~~~~~~~~~~~~~~~~~~~~ 409 | lf->get_filename_as_string().c_str()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 410 | lnav_data.ld_log_source.find_data(lf) | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | [](auto ld) { ld->set_visibility(false); }; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 412 | reload = true; | ~~~~~~~~~~~~~~ 413 | } | ~ 414 | }); | ~~ lnav.indexing.cc:406:33: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'long long int' [-Wformat=] 406 | " Hiding copy: size=%lld; mtime=%ld; path=%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ lnav.indexing.cc:405:29: note: in expansion of macro 'log_info' 405 | log_info( | ^~~~~~~~ lnav.indexing.cc:406:68: note: format string is defined here 406 | " Hiding copy: size=%lld; mtime=%ld; path=%s", | ~~^ | | | long int | %lld CXX lnav_commands.o CXX lnav_config.o CXX lnav_util.o CXX log.annotate.o filter_sub_source.cc: In member function 'Result > filter_sub_source::time_filter_row::parse_time(textview_curses*, textinput_curses&)': filter_sub_source.cc:626:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string::size_type' {aka 'unsigned int'} [-Wsign-compare] 626 | if (matched_size == time_str.size()) { | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ CXX log.watch.o CXX log_accel.o CXX log_actions.o CXX log_data_helper.o CXX log_data_table.o CXX log_format.o CXX log_format_loader.o In file included from command_executor.cc:34: command_executor.cc: In function 'Result, lnav::console::user_message> execute_sql(exec_context&, const std::string&, std::string&)': base/ansi_scrubber.hh:40:30: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'time_t' {aka 'long long int'} [-Wformat=] 40 | #define ANSI_CSI "\x1b[" base/ansi_scrubber.hh:43:30: note: in expansion of macro 'ANSI_CSI' 43 | #define ANSI_BOLD_START ANSI_CSI ANSI_BOLD_PARAM ANSI_CHAR_ATTR | ^~~~~~~~ base/ansi_scrubber.hh:49:29: note: in expansion of macro 'ANSI_BOLD_START' 49 | #define ANSI_BOLD(msg) ANSI_BOLD_START msg ANSI_NORM | ^~~~~~~~~~~~~~~ command_executor.cc:606:30: note: in expansion of macro 'ANSI_BOLD' 606 | ANSI_BOLD("%'d") " row%s matched in " ANSI_BOLD( | ^~~~~~~~~ command_executor.cc:607:37: note: format string is defined here 607 | "%ld.%03ld") " seconds", | ~~^ | | | long int | %lld CXX log_level.o In file included from base/cell_container.hh:40, from db_sub_source.hh:43, from command_executor.hh:46, from command_executor.cc:32: command_executor.cc: In function 'Result, lnav::console::user_message> execute_file(exec_context&, const std::string&)': command_executor.cc:818:26: warning: format '%d' expects argument of type 'int', but argument 7 has type 'text_format_t' [-Wformat=] 818 | log_info("%s: setting out format for '%s' to %d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 821 | ec.ec_output_stack.back().od_format); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | text_format_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ command_executor.cc:818:17: note: in expansion of macro 'log_info' 818 | log_info("%s: setting out format for '%s' to %d", | ^~~~~~~~ command_executor.cc:818:63: note: format string is defined here 818 | log_info("%s: setting out format for '%s' to %d", | ~^ | | | int CXX log_level_re.o CXX log_search_table.o CXX log_stmt_vtab.o CXX logfile.o listview_curses.cc: In member function 'vis_line_t listview_curses::get_overlay_top(vis_line_t, size_t, const std::vector&)': listview_curses.cc:502:24: warning: comparison of integer expressions of different signedness: 'const int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 502 | if (ov_sel >= count) { | ~~~~~~~^~~~~~~~ In file included from json-extension-functions.cc:42: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = json_string; Args = {std::optional, const std::vector >&}; Return (* f)(Args ...) = {anonymous}::json_concat; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = json_string; Args = {std::optional, const std::vector >&}; Return (* f)(Args ...) = {anonymous}::json_concat]' 524 | }; | ^ json-extension-functions.cc:879:74: required from here 879 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 880 | help_text("json_concat", | ~~~~~~~~~~~~~~~~~~~~~~~~ 881 | "Returns an array with the given values concatenated " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 882 | "onto the end. " | ~~~~~~~~~~~~~~~~~ 883 | "If the initial value is null, the result will be an " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 884 | "array with " | ~~~~~~~~~~~~~ 885 | "the given elements. If the initial value is an array, " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 886 | "the result " | ~~~~~~~~~~~~~ 887 | "will be an array with the given values at the end. If " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 888 | "the initial " | ~~~~~~~~~~~~~~ 889 | "value is not null or an array, the result will be an " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 890 | "array with " | ~~~~~~~~~~~~~ 891 | "two elements: the initial value and the given value.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 892 | .sql_function() | ~~~~~~~~~~~~~~~ 893 | .with_prql_path({"json", "concat"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 894 | .with_parameter({"json", "The initial JSON value."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 895 | .with_parameter( | ~~~~~~~~~~~~~~~~ 896 | help_text("value", | ~~~~~~~~~~~~~~~~~~ 897 | "The value(s) to add to the end of the array.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 898 | .one_or_more()) | ~~~~~~~~~~~~~~~ 899 | .with_tags({"json"}) | ~~~~~~~~~~~~~~~~~~~~ 900 | .with_example({ | ~~~~~~~~~~~~~~~ 901 | "To append the number 4 to null", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 902 | "SELECT json_concat(NULL, 4)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 903 | }) | ~~ 904 | .with_example({ | ~~~~~~~~~~~~~~~ 905 | "To append 4 and 5 to the array [1, 2, 3]", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | "SELECT json_concat('[1, 2, 3]', 4, 5)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | }) | ~~ 908 | .with_example({ | ~~~~~~~~~~~~~~~ 909 | "To concatenate two arrays together", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | "SELECT json_concat('[1, 2, 3]', json('[4, 5]'))", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | })) | ~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = bool; Args = {vtab_types::nullable, sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::json_contains; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = bool; Args = {vtab_types::nullable, sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::json_contains]' 524 | }; | ^ json-extension-functions.cc:914:78: required from here 914 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 915 | help_text("json_contains", | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 916 | "Check if a JSON value contains the given element.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 917 | .sql_function() | ~~~~~~~~~~~~~~~ 918 | .with_prql_path({"json", "contains"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 919 | .with_parameter({"json", "The JSON value to query."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 920 | .with_parameter( | ~~~~~~~~~~~~~~~~ 921 | {"value", "The value to look for in the first argument"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | .with_tags({"json"}) | ~~~~~~~~~~~~~~~~~~~~ 923 | .with_example({ | ~~~~~~~~~~~~~~~ 924 | "To test if a JSON array contains the number 4", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 925 | "SELECT json_contains('[1, 2, 3]', 4)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | }) | ~~ 927 | .with_example({ | ~~~~~~~~~~~~~~~ 928 | "To test if a JSON array contains the string 'def'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | "SELECT json_contains('[\"abc\", \"def\"]', 'def')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int CXX logfile_sub_source.o CXX logline_window.o In file included from base/auto_pid.hh:42, from line_buffer.cc:48: line_buffer.cc: In member function 'void line_buffer::gz_indexed::open(int, lnav::gzip::header&)': line_buffer.cc:242:25: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'time_t' {aka 'long long int'} [-Wformat=] 242 | "%d: read gzip header (mtime=%ld; name='%s'; " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 243 | "comment='%s'; crc=%x)", | ~~~~~~~~~~~~~~~~~~~~~~~ 244 | fd, 245 | hd.h_mtime.tv_sec, | ~~~~~~~~~~~~~~~~~ | | | time_t {aka long long int} ./base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ line_buffer.cc:241:21: note: in expansion of macro 'log_info' 241 | log_info( | ^~~~~~~~ line_buffer.cc:242:56: note: format string is defined here 242 | "%d: read gzip header (mtime=%ld; name='%s'; " | ~~^ | | | long int | %lld CXX md2attr_line.o CXX md4cpp.o CXX msg.text.o CXX network-extension-functions.o CXX data_parser.o CXX piper.header.o lnav.cc: In function 'void looper()': lnav.cc:2168:29: warning: comparison of integer expressions of different signedness: 'const int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 2167 | && sel_opt.value() | ~~~~~~~~~~~~~~~ 2168 | < lnav_data.ld_log_source.text_line_count()) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from log_format.hh:51, from all_logs_vtab.hh:36, from lnav.cc:68: lnav.cc:2289:23: warning: format '%d' expects argument of type 'int', but argument 7 has type 'lnav::phase_t' [-Wformat=] 2289 | log_trace(" (changes=%zu; before_deadline=%d; exec_phase=%d)", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 2292 | exec_phase.ep_value); | ~~~~~~~~~~~~~~~~~~~ | | | lnav::phase_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ lnav.cc:2289:13: note: in expansion of macro 'log_trace' 2289 | log_trace(" (changes=%zu; before_deadline=%d; exec_phase=%d)", | ^~~~~~~~~ lnav.cc:2289:72: note: format string is defined here 2289 | log_trace(" (changes=%zu; before_deadline=%d; exec_phase=%d)", | ~^ | | | int CXX piper.looper.o lnav.cc: In function 'int main(int, char**)': lnav.cc:4225:36: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare] 4225 | if (max_height < term_size.ws_row - 3) { | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ CXX piper.match.o lnav_config.cc: In function 'void load_config(const std::vector&, std::vector&)': lnav_config.cc:2207:29: warning: comparison of integer expressions of different signedness: 'time_t' {aka 'long long int'} and 'lnav::time64_t' {aka 'long long unsigned int'} [-Wsign-compare] 2207 | if (st.st_mtime >= lnav::filesystem::self_mtime()) { | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from yajlpp/yajlpp.hh:54, from apps.cfg.hh:37, from lnav_config.hh:42, from lnav_config.cc:39: lnav_config.cc:2208:27: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'time_t' {aka 'long long int'} [-Wformat=] 2208 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ lnav_config.cc:2208:17: note: in expansion of macro 'log_debug' 2208 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ^~~~~~~~~ lnav_config.cc:2208:68: note: format string is defined here 2208 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ~~^ | | | long int | %lld CXX plain_text_source.o CXX pollable.o CXX pretty_printer.o CXX preview_status_source.o CXX progress_source.o CXX ptimec_rt.o log_format_loader.cc: In function 'void write_sample_file()': log_format_loader.cc:1274:29: warning: comparison of integer expressions of different signedness: 'time_t' {aka 'long long int'} and 'lnav::time64_t' {aka 'long long unsigned int'} [-Wsign-compare] 1274 | if (st.st_mtime >= lnav::filesystem::self_mtime()) { | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from log_format.hh:51, from log_format_loader.cc:35: log_format_loader.cc:1275:27: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'time_t' {aka 'long long int'} [-Wformat=] 1275 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ log_format_loader.cc:1275:17: note: in expansion of macro 'log_debug' 1275 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ^~~~~~~~~ log_format_loader.cc:1275:68: note: format string is defined here 1275 | log_debug("skipping writing sample: %.*s (mtimes %ld >= %lld)", | ~~^ | | | long int | %lld log_format_loader.cc:1312:29: warning: comparison of integer expressions of different signedness: 'time_t' {aka 'long long int'} and 'lnav::time64_t' {aka 'long long unsigned int'} [-Wsign-compare] 1312 | if (st.st_mtime >= lnav::filesystem::self_mtime()) { | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ log_format_loader.cc:1347:29: warning: comparison of integer expressions of different signedness: 'time_t' {aka 'long long int'} and 'lnav::time64_t' {aka 'long long unsigned int'} [-Wsign-compare] 1347 | if (st.st_mtime >= lnav::filesystem::self_mtime()) { | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from log_format.cc:62: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx log_format_loader.cc: In function 'void extract_metadata(string_fragment, script_metadata&)': log_format_loader.cc:1699:22: warning: format '%d' expects argument of type 'int', but argument 7 has type 'text_format_t' [-Wformat=] 1699 | log_info("%s (%s): setting output format to %d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 1702 | meta_out.sm_output_format); | ~~~~~~~~~~~~~~~~~~~~~~~~~ | | | text_format_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ log_format_loader.cc:1699:13: note: in expansion of macro 'log_info' 1699 | log_info("%s (%s): setting output format to %d", | ^~~~~~~~ log_format_loader.cc:1699:58: note: format string is defined here 1699 | log_info("%s (%s): setting output format to %d", | ~^ | | | int ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ logfile.cc: In member function 'logfile::map_entry_result logfile::find_content_map_entry(file_off_t, map_read_requirement)': logfile.cc:472:40: warning: comparison of integer expressions of different signedness: 'ssize_t' {aka 'int'} and 'file_size_t' {aka 'long long unsigned int'} [-Wsign-compare] 472 | && end_range.next_offset() >= upper_offset) | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ logfile.cc: In lambda function: logfile.cc:498:49: warning: comparison of integer expressions of different signedness: 'ssize_t' {aka 'int'} and 'file_size_t' {aka 'long long unsigned int'} [-Wsign-compare] 498 | if (end_range.next_offset() > upper_offset) { | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ logfile.cc:500:47: warning: comparison of integer expressions of different signedness: 'file_ssize_t' {aka 'long long int'} and 'file_size_t' {aka 'long long unsigned int'} [-Wsign-compare] 500 | if (end_range.fr_size < upper_offset) { | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ logfile.cc:522:49: warning: comparison of integer expressions of different signedness: 'ssize_t' {aka 'int'} and 'file_size_t' {aka 'long long unsigned int'} [-Wsign-compare] 522 | if (end_range.next_offset() == upper_offset) { | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ In file included from logfile.hh:50, from logfile.cc:39: logfile.cc: In member function 'logfile::rebuild_result_t logfile::build_content_map()': logfile.cc:664:18: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'std::__iterator_traits<__gnu_cxx::__normal_iterator >, void>::difference_type' {aka 'int'} [-Wformat=] 664 | log_info(" lower bound is within current index, erasing %ld lines", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | std::distance(this->lf_index.cbegin(), ll)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | std::__iterator_traits<__gnu_cxx::__normal_iterator >, void>::difference_type {aka int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile.cc:664:9: note: in expansion of macro 'log_info' 664 | log_info(" lower bound is within current index, erasing %ld lines", | ^~~~~~~~ logfile.cc:664:68: note: format string is defined here 664 | log_info(" lower bound is within current index, erasing %ld lines", | ~~^ | | | long int | %d In file included from network-extension-functions.cc:42: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {const char*}; Return (* f)(Args ...) = sql_gethostbyname; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {const char*}; Return (* f)(Args ...) = sql_gethostbyname]' 524 | }; | ^ network-extension-functions.cc:140:20: required from here 139 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | builder( | ~~~~~~~^ 141 | help_text("gethostbyname", | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | "Get the IP address for the given hostname") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | .sql_function() | ~~~~~~~~~~~~~~~ 144 | .with_prql_path({"net", "gethostbyname"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | .with_parameter({"hostname", "The DNS hostname to lookup."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | .with_tags({"net"}) | ~~~~~~~~~~~~~~~~~~~ 147 | .with_example({ | ~~~~~~~~~~~~~~~ 148 | "To get the IP address for 'localhost'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | "SELECT gethostbyname('localhost')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {const char*}; Return (* f)(Args ...) = sql_gethostbyaddr; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {const char*}; Return (* f)(Args ...) = sql_gethostbyaddr]' 524 | }; | ^ network-extension-functions.cc:153:20: required from here 152 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | builder( | ~~~~~~~^ 154 | help_text("gethostbyaddr", | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 155 | "Get the hostname for the given IP address") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 156 | .sql_function() | ~~~~~~~~~~~~~~~ 157 | .with_prql_path({"net", "gethostbyaddr"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 158 | .with_parameter({"hostname", "The IP address to lookup."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 159 | .with_tags({"net"}) | ~~~~~~~~~~~~~~~~~~~ 160 | .with_example({ | ~~~~~~~~~~~~~~~ 161 | "To get the hostname for the IP '127.0.0.1'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 162 | "SELECT gethostbyaddr('127.0.0.1')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 163 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int logfile.cc: In member function 'logfile::rebuild_result_t logfile::rebuild_index(std::optional > > >)': logfile.cc:1993:47: warning: comparison of integer expressions of different signedness: 'file_size_t' {aka 'long long unsigned int'} and 'file_ssize_t' {aka 'long long int'} [-Wsign-compare] 1993 | && this->lf_file_size_at_map_time != this->get_content_size()) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ logfile.cc: In member function 'void logfile::dump_stats()': logfile.cc:2483:14: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 2483 | log_info(" buffer_size=%ld", this->lf_line_buffer.get_buffer_size()); | ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile.cc:2483:5: note: in expansion of macro 'log_info' 2483 | log_info(" buffer_size=%ld", this->lf_line_buffer.get_buffer_size()); | ^~~~~~~~ logfile.cc:2483:31: note: format string is defined here 2483 | log_info(" buffer_size=%ld", this->lf_line_buffer.get_buffer_size()); | ~~^ | | | long int | %d CXX readline_callbacks.o In file included from lnav.prompt.cc:48: ./fmtlib/fmt/ranges.h:215:59: warning: self-comparison always evaluates to true [-Wtautological-compare] 215 | integer_sequence); | ~~~^~~~~ CXX readline_highlighters.o In file included from lnav_commands.cc:77: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ lnav_commands.cc: In function 'Result, lnav::console::user_message> com_add_src_path(exec_context&, std::string, std::vector >&)': lnav_commands.cc:263:34: warning: variable 'SRC' set but not used [-Wunused-but-set-variable] 263 | static const intern_string_t SRC = intern_string::lookup("path"); | ^~~ CXX readline_possibilities.o CXX regex101.client.o CXX regex101.import.o CXX regexp_vtab.o CXX session.export.o lnav_commands.cc: In function 'Result, lnav::console::user_message> com_adjust_log_time(exec_context&, std::string, std::vector >&)': lnav_commands.cc:370:61: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 370 | "info: log timestamps will be adjusted by %ld.%06ld seconds", | ~~^ | | | long int | %lld 371 | time_diff.tv_sec, | ~~~~~~~~~~~~~~~~ | | | time_t {aka long long int} lnav_commands.cc: In function 'Result, lnav::console::user_message> com_unix_time(exec_context&, std::string, std::vector >&)': lnav_commands.cc:448:47: warning: format '%ld' expects argument of type 'long int*', but argument 3 has type 'time_t*' {aka 'long long int*'} [-Wformat=] 448 | } else if (sscanf(args[1].c_str(), "%ld", &u_time)) { | ~~^ ~~~~~~~ | | | | | time_t* {aka long long int*} | long int* | %lld CXX session_data.o In file included from ptimec_rt.cc:32: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ CXX shared_buffer.o CXX shlex.o CXX spectro_impls.o In file included from logfile_sub_source.cc:62: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ CXX spectro_source.o CXX sqlitepp.o logfile_sub_source.cc: At global scope: logfile_sub_source.cc:77:72: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 77 | const DIST_SLICE(bm_types) bookmark_type_t logfile_sub_source::BM_FILES("file"); | ^ In file included from big_array.hh:38, from logfile_sub_source.hh:43, from logfile_sub_source.cc:39: logfile_sub_source.cc: In member function 'logfile_sub_source::rebuild_result logfile_sub_source::rebuild_index(std::optional > > >)': logfile_sub_source.cc:1113:37: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 1113 | "%s:%ld: found older lines, full " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1114 | "rebuild: %p %lld < %lld", | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1115 | lf->get_filename().c_str(), 1116 | ld.ld_lines_indexed, | ~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1112:33: note: in expansion of macro 'log_debug' 1112 | log_debug( | ^~~~~~~~~ logfile_sub_source.cc:1113:43: note: format string is defined here 1113 | "%s:%ld: found older lines, full " | ~~^ | | | long int | %d logfile_sub_source.cc:1204:19: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Wformat=] 1204 | log_debug("partial rebuild with lowest time: %ld", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1205 | lowest_tv.value().tv_sec); | ~~~~~~~~~~~~~~~~~~~~~~~~ | | | time_t {aka long long int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1204:9: note: in expansion of macro 'log_debug' 1204 | log_debug("partial rebuild with lowest time: %ld", | ^~~~~~~~~ logfile_sub_source.cc:1204:56: note: format string is defined here 1204 | log_debug("partial rebuild with lowest time: %ld", | ~~^ | | | long int | %lld logfile_sub_source.cc:1221:27: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Wformat=] 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1222 | line_iter.value()->get_timeval().tv_sec, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | time_t {aka long long int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1221:17: note: in expansion of macro 'log_debug' 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~ logfile_sub_source.cc:1221:47: note: format string is defined here 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ~~^ | | | long int | %lld logfile_sub_source.cc:1221:27: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'std::__iterator_traits<__gnu_cxx::__normal_iterator >, void>::difference_type' {aka 'int'} [-Wformat=] 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1222 | line_iter.value()->get_timeval().tv_sec, 1223 | std::distance(lf->cbegin(), line_iter.value()), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | std::__iterator_traits<__gnu_cxx::__normal_iterator >, void>::difference_type {aka int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1221:17: note: in expansion of macro 'log_debug' 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~ logfile_sub_source.cc:1221:57: note: format string is defined here 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ~~^ | | | long int | %d logfile_sub_source.cc:1221:27: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 1224 | lf->size(), | ~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1221:17: note: in expansion of macro 'log_debug' 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ^~~~~~~~~ logfile_sub_source.cc:1221:67: note: format string is defined here 1221 | log_debug("lowest line time %ld; line %ld; size %ld; path=%s", | ~~^ | | | long int | %d logfile_sub_source.cc:1238:19: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1239 | this->lss_index.ba_size, | ~~~~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1238:9: note: in expansion of macro 'log_debug' 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~ logfile_sub_source.cc:1238:37: note: format string is defined here 1238 | log_debug("new index size %ld/%ld; remain %ld", | ~~^ | | | long int | %d logfile_sub_source.cc:1238:19: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1239 | this->lss_index.ba_size, 1240 | this->lss_index.ba_capacity, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1238:9: note: in expansion of macro 'log_debug' 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~ logfile_sub_source.cc:1238:41: note: format string is defined here 1238 | log_debug("new index size %ld/%ld; remain %ld", | ~~^ | | | long int | %d logfile_sub_source.cc:1238:19: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 1241 | remaining); | ~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ logfile_sub_source.cc:1238:9: note: in expansion of macro 'log_debug' 1238 | log_debug("new index size %ld/%ld; remain %ld", | ^~~~~~~~~ logfile_sub_source.cc:1238:53: note: format string is defined here 1238 | log_debug("new index size %ld/%ld; remain %ld", | ~~^ | | | long int | %d CXX sqlite-extension-func.o logfile_sub_source.cc: In member function 'virtual std::optional > logfile_sub_source::adjacent_anchor(vis_line_t, text_anchors::direction)': logfile_sub_source.cc:3523:12: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 3523 | if (vl < this->lss_filtered_index.size()) { | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CXX static_file_vtab.o CXX statusview_curses.o CXX string-extension-functions.o CXX styling.o CXX term_extra.o CXX text_anonymizer.o CXX text_format.o CXX text_overlay_menu.o CXX textfile_sub_source.o CXX timer.o CXX sql.formatter.o CXX sql_commands.o CXX sql_util.o progress_source.cc: In member function 'bool progress_source::poll()': progress_source.cc:112:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 112 | for (auto lpc = 0; lpc < pct; lpc++) { | ~~~~^~~~~ progress_source.cc: In member function 'virtual line_info progress_source::text_value_for_line(textview_curses&, int, std::string&, text_sub_source::line_flags_t)': progress_source.cc:167:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 167 | if (line < 0 || line >= this->ps_lines.size()) { | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ progress_source.cc: In member function 'virtual size_t progress_source::text_size_for_line(textview_curses&, int, text_sub_source::line_flags_t)': progress_source.cc:181:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 181 | if (line < 0 || line >= this->ps_lines.size()) { | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ progress_source.cc: In member function 'virtual void progress_source::text_attrs_for_line(textview_curses&, int, string_attrs_t&)': progress_source.cc:193:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 193 | if (line < 0 || line >= this->ps_lines.size()) { | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ CXX src_ref.o CXX state-extension-functions.o CXX sysclip.o CXX textinput_curses.o CXX textinput.history.o spectro_source.cc: In member function 'void spectrogram_source::cache_bounds()': spectro_source.cc:557:31: warning: comparison of integer expressions of different signedness: 'const int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 557 | for (auto row = 0_vl; row < this->ss_cached_line_count; row += 1_vl) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ spectro_source.cc: In member function 'const spectrogram_row& spectrogram_source::load_row(const listview_curses&, int)': spectro_source.cc:623:25: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 623 | if (st[lpc] < lpc + 1) { | ~~~~~~~~^~~~~~~~~ CXX textfile_highlighters.o readline_callbacks.cc: In function 'void rl_sql_change(textinput_curses&, bool)': readline_callbacks.cc:618:14: warning: variable 'stage_iter' set but not used [-Wunused-but-set-variable] 618 | auto stage_iter = rfind_string_attr_if( | ^~~~~~~~~~ readline_callbacks.cc: In lambda function: readline_callbacks.cc:748:51: warning: comparison of integer expressions of different signedness: 'const int' and 'const unsigned int' [-Wsign-compare] 748 | return attr.sa_range.lr_start <= cursor_offset | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ readline_callbacks.cc:749:42: warning: comparison of integer expressions of different signedness: 'const unsigned int' and 'const int' [-Wsign-compare] 749 | && cursor_offset <= attr.sa_range.lr_end; | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ readline_callbacks.cc: In function 'void rl_search_internal(textinput_curses&, ln_mode_t, bool)': readline_callbacks.cc:1156:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string::size_type' {aka 'unsigned int'} [-Wsign-compare] 1156 | if (cursor_x >= orig_prql_stmt.get_string().length()) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CXX textview_curses.o CXX time-extension-functions.o CXX timeline_source.o CXX top_status_source.o string-extension-functions.cc: In function 'std::string sql_humanize_id(string_fragment)': string-extension-functions.cc:1032:10: warning: variable 'attrs' set but not used [-Wunused-but-set-variable] 1032 | auto attrs = vc.attrs_for_ident(id.data(), id.length()); | ^~~~~ CXX unique_path.o CXX view_curses.o CXX view_helpers.o In file included from string-extension-functions.cc:39: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = bool; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = {anonymous}::regexp; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = bool; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = {anonymous}::regexp]' 524 | }; | ^ string-extension-functions.cc:1057:64: required from here 1057 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1058 | help_text("regexp", "Test if a string matches a regular expression") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1059 | .sql_function() | ~~~~~~~~~~~~~~~ 1060 | .with_parameter({"re", "The regular expression to use"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1061 | .with_parameter({ | ~~~~~~~~~~~~~~~~~ 1062 | "str", | ~~~~~~ 1063 | "The string to test against the regular expression", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1064 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = mapbox::util::variant; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = {anonymous}::regexp_match; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = mapbox::util::variant; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = {anonymous}::regexp_match]' 524 | }; | ^ string-extension-functions.cc:1066:76: required from here 1066 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1067 | help_text("regexp_match", | ~~~~~~~~~~~~~~~~~~~~~~~~~ 1068 | "Match a string against a regular expression and return " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1069 | "the capture groups as JSON.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1070 | .sql_function() | ~~~~~~~~~~~~~~~ 1071 | .with_prql_path({"text", "regexp_match"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1072 | .with_parameter({"re", "The regular expression to use"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1073 | .with_parameter({ | ~~~~~~~~~~~~~~~~~ 1074 | "str", | ~~~~~~ 1075 | "The string to test against the regular expression", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1076 | }) | ~~ 1077 | .with_tags({"string", "regex"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1078 | .with_example({ | ~~~~~~~~~~~~~~~ 1079 | "To capture the digits from the string '123'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1080 | "SELECT regexp_match('(\\d+)', '123')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1081 | }) | ~~ 1082 | .with_example({ | ~~~~~~~~~~~~~~~ 1083 | "To capture a number and word into a JSON object with the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1084 | "properties 'col_0' and 'col_1'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1085 | "SELECT regexp_match('(\\d+) (\\w+)', '123 four')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1086 | }) | ~~ 1087 | .with_example({ | ~~~~~~~~~~~~~~~ 1088 | "To capture a number and word into a JSON object with the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1089 | "named properties 'num' and 'str'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1090 | "SELECT regexp_match('(?\\d+) (?\\w+)', '123 " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1091 | "four')", | ~~~~~~~~~ 1092 | })) | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {string_fragment, string_fragment, const char*}; Return (* f)(Args ...) = {anonymous}::regexp_replace; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {string_fragment, string_fragment, const char*}; Return (* f)(Args ...) = {anonymous}::regexp_replace]' 524 | }; | ^ string-extension-functions.cc:1095:80: required from here 1095 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1096 | help_text("regexp_replace", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1097 | "Replace the parts of a string that match a regular " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1098 | "expression.") | ~~~~~~~~~~~~~~ 1099 | .sql_function() | ~~~~~~~~~~~~~~~ 1100 | .with_prql_path({"text", "regexp_replace"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1101 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1102 | {"str", "The string to perform replacements on"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1103 | .with_parameter({"re", "The regular expression to match"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1104 | .with_parameter({ | ~~~~~~~~~~~~~~~~~ 1105 | "repl", | ~~~~~~~ 1106 | "The replacement string. " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1107 | "You can reference capture groups with a " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1108 | "backslash followed by the number of the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1109 | "group, starting with 1.", | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1110 | }) | ~~ 1111 | .with_tags({"string", "regex"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1112 | .with_example({ | ~~~~~~~~~~~~~~~ 1113 | "To replace the word at the start of the string " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1114 | "'Hello, World!' with 'Goodbye'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1115 | "SELECT regexp_replace('Hello, World!', " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1116 | "'^(\\w+)', 'Goodbye')", | ~~~~~~~~~~~~~~~~~~~~~~~~ 1117 | }) | ~~ 1118 | .with_example({ | ~~~~~~~~~~~~~~~ 1119 | "To wrap alphanumeric words with angle brackets", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1120 | "SELECT regexp_replace('123 abc', '(\\w+)', '<\\1>')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1121 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {long long int}; Return (* f)(Args ...) = {anonymous}::sql_humanize_file_size; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {long long int}; Return (* f)(Args ...) = {anonymous}::sql_humanize_file_size]' 524 | }; | ^ string-extension-functions.cc:1125:20: required from here 1123 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 1125 | builder(help_text( | ~~~~~~~^~~~~~~~~~~ 1126 | "humanize_file_size", | ~~~~~~~~~~~~~~~~~~~~~ 1127 | "Format the given file size as a human-friendly string") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1128 | .sql_function() | ~~~~~~~~~~~~~~~ 1129 | .with_prql_path({"humanize", "file_size"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1130 | .with_parameter({"value", "The file size to format"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1131 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1132 | .with_example({ | ~~~~~~~~~~~~~~~ 1133 | "To format an amount", | ~~~~~~~~~~~~~~~~~~~~~~ 1134 | "SELECT humanize_file_size(10 * 1024 * 1024)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1135 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = sql_humanize_id; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = sql_humanize_id]' 524 | }; | ^ string-extension-functions.cc:1138:20: required from here 1137 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1138 | builder(help_text("humanize_id", | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ 1139 | "Colorize the given ID using ANSI escape codes.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1140 | .sql_function() | ~~~~~~~~~~~~~~~ 1141 | .with_prql_path({"humanize", "id"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1142 | .with_parameter({"id", "The identifier to color"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1143 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1144 | .with_example({ | ~~~~~~~~~~~~~~~ 1145 | "To colorize the ID 'cluster1'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1146 | "SELECT humanize_id('cluster1')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1147 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = const std::__cxx11::basic_string&; Args = {double, std::optional}; Return (* f)(Args ...) = humanize::sparkline; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = const std::__cxx11::basic_string&; Args = {double, std::optional}; Return (* f)(Args ...) = humanize::sparkline]' 524 | }; | ^ string-extension-functions.cc:1151:20: required from here 1149 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~ 1151 | builder( | ~~~~~~~^ 1152 | help_text("sparkline", | ~~~~~~~~~~~~~~~~~~~~~~ 1153 | "Function used to generate a sparkline bar chart. " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1154 | "The non-aggregate version converts a single numeric " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1155 | "value on a range to a bar chart character. The " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1156 | "aggregate version returns a string with a bar " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1157 | "character for every numeric input") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1158 | .sql_function() | ~~~~~~~~~~~~~~~ 1159 | .with_prql_path({"text", "sparkline"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1160 | .with_parameter({"value", "The numeric value to convert"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1161 | .with_parameter(help_text("upper", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1162 | "The upper bound of the numeric " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1163 | "range. The non-aggregate " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1164 | "version defaults to 100. The " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1165 | "aggregate version uses the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1166 | "largest value in the inputs.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1167 | .optional()) | ~~~~~~~~~~~~ 1168 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1169 | .with_example({ | ~~~~~~~~~~~~~~~ 1170 | "To get the unicode block element for the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1171 | "value 32 in the " | ~~~~~~~~~~~~~~~~~~ 1172 | "range of 0-128", | ~~~~~~~~~~~~~~~~~ 1173 | "SELECT sparkline(32, 128)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1174 | }) | ~~ 1175 | .with_example({ | ~~~~~~~~~~~~~~~ 1176 | "To chart the values in a JSON array", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1177 | "SELECT sparkline(value) FROM json_each('[0, 1, 2, 3, " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1178 | "4, 5, 6, 7, 8]')", | ~~~~~~~~~~~~~~~~~~~ 1179 | })), | ~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::sql_anonymize; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::sql_anonymize]' 524 | }; | ^ string-extension-functions.cc:1181:78: required from here 1181 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1182 | help_text("anonymize", | ~~~~~~~~~~~~~~~~~~~~~~ 1183 | "Replace identifying information with random values.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1184 | .sql_function() | ~~~~~~~~~~~~~~~ 1185 | .with_prql_path({"text", "anonymize"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1186 | .with_parameter({"value", "The text to anonymize"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1187 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1188 | .with_example({ | ~~~~~~~~~~~~~~~ 1189 | "To anonymize an IP address", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1190 | "SELECT anonymize('Hello, 192.168.1.2')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1191 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = json_string; Args = {const char*}; Return (* f)(Args ...) = extract; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = json_string; Args = {const char*}; Return (* f)(Args ...) = extract]' 524 | }; | ^ string-extension-functions.cc:1193:66: required from here 1193 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1194 | help_text("extract", | ~~~~~~~~~~~~~~~~~~~~ 1195 | "Automatically Parse and extract data from a string") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1196 | .sql_function() | ~~~~~~~~~~~~~~~ 1197 | .with_prql_path({"text", "discover"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1198 | .with_parameter({"str", "The string to parse"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1199 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1200 | .with_example({ | ~~~~~~~~~~~~~~~ 1201 | "To extract key/value pairs from a string", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1202 | "SELECT extract('foo=1 bar=2 name=\"Rolo Tomassi\"')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1203 | }) | ~~ 1204 | .with_example({ | ~~~~~~~~~~~~~~~ 1205 | "To extract columnar data from a string", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1206 | "SELECT extract('1.0 abc 2.0')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1207 | })) | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = json_string; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::logfmt2json; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = json_string; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::logfmt2json]' 524 | }; | ^ string-extension-functions.cc:1210:74: required from here 1210 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1211 | help_text("logfmt2json", | ~~~~~~~~~~~~~~~~~~~~~~~~ 1212 | "Convert a logfmt-encoded string into JSON") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1213 | .sql_function() | ~~~~~~~~~~~~~~~ 1214 | .with_prql_path({"logfmt", "to_json"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1215 | .with_parameter({"str", "The logfmt message to parse"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1216 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1217 | .with_example({ | ~~~~~~~~~~~~~~~ 1218 | "To extract key/value pairs from a log message", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1219 | "SELECT logfmt2json('foo=1 bar=2 name=\"Rolo Tomassi\"')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1220 | })) | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = bool; Args = {const char*, const char*}; Return (* f)(Args ...) = startswith; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = bool; Args = {const char*, const char*}; Return (* f)(Args ...) = startswith]' 524 | }; | ^ string-extension-functions.cc:1227:20: required from here 1223 | sqlite_func_adapter< | ~~~~~~~~~~~~~~~~~~~~ 1224 | decltype(static_cast( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1225 | &startswith)), | ~~~~~~~~~~~~~~ 1226 | startswith>:: | ~~~~~~~~~~~~~ 1227 | builder(help_text("startswith", | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ 1228 | "Test if a string begins with the given prefix") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1229 | .sql_function() | ~~~~~~~~~~~~~~~ 1230 | .with_parameter({"str", "The string to test"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1231 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1232 | {"prefix", "The prefix to check in the string"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1233 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1234 | .with_example({ | ~~~~~~~~~~~~~~~ 1235 | "To test if the string 'foobar' starts with 'foo'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1236 | "SELECT startswith('foobar', 'foo')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1237 | }) | ~~ 1238 | .with_example({ | ~~~~~~~~~~~~~~~ 1239 | "To test if the string 'foobar' starts with 'bar'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1240 | "SELECT startswith('foobar', 'bar')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1241 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = bool; Args = {const char*, const char*}; Return (* f)(Args ...) = endswith; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = bool; Args = {const char*, const char*}; Return (* f)(Args ...) = endswith]' 524 | }; | ^ string-extension-functions.cc:1246:20: required from here 1243 | sqlite_func_adapter(&endswith)), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1245 | endswith>:: | ~~~~~~~~~~~ 1246 | builder( | ~~~~~~~^ 1247 | help_text("endswith", | ~~~~~~~~~~~~~~~~~~~~~ 1248 | "Test if a string ends with the given suffix") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1249 | .sql_function() | ~~~~~~~~~~~~~~~ 1250 | .with_parameter({"str", "The string to test"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1251 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1252 | {"suffix", "The suffix to check in the string"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1253 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1254 | .with_example({ | ~~~~~~~~~~~~~~~ 1255 | "To test if the string 'notbad.jpg' ends with '.jpg'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1256 | "SELECT endswith('notbad.jpg', '.jpg')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1257 | }) | ~~ 1258 | .with_example({ | ~~~~~~~~~~~~~~~ 1259 | "To test if the string 'notbad.png' starts with '.jpg'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1260 | "SELECT endswith('notbad.png', '.jpg')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1261 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {const char*, const char*}; Return (* f)(Args ...) = {anonymous}::sql_fuzzy_match; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {const char*, const char*}; Return (* f)(Args ...) = {anonymous}::sql_fuzzy_match]' 524 | }; | ^ string-extension-functions.cc:1264:20: required from here 1263 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1264 | builder(help_text( | ~~~~~~~^~~~~~~~~~~ 1265 | "fuzzy_match", | ~~~~~~~~~~~~~~ 1266 | "Perform a fuzzy match of a pattern against a " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1267 | "string and return a score or NULL if the pattern was " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1268 | "not matched") | ~~~~~~~~~~~~~~ 1269 | .sql_function() | ~~~~~~~~~~~~~~~ 1270 | .with_parameter(help_text( | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1271 | "pattern", "The pattern to look for in the string")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1272 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1273 | help_text("str", "The string to match against")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1274 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1275 | .with_example({ | ~~~~~~~~~~~~~~~ 1276 | "To match the pattern 'fo' against 'filter-out'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1277 | "SELECT fuzzy_match('fo', 'filter-out')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1278 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = string_fragment; Args = {const std::vector >&}; Return (* f)(Args ...) = {anonymous}::spooky_hash; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = string_fragment; Args = {const std::vector >&}; Return (* f)(Args ...) = {anonymous}::spooky_hash]' 524 | }; | ^ string-extension-functions.cc:1280:74: required from here 1280 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1281 | help_text("spooky_hash", | ~~~~~~~~~~~~~~~~~~~~~~~~ 1282 | "Compute the hash value for the given arguments.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1283 | .sql_function() | ~~~~~~~~~~~~~~~ 1284 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1285 | help_text("str", "The string to hash").one_or_more()) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1286 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1287 | .with_example({ | ~~~~~~~~~~~~~~~ 1288 | "To produce a hash for the string 'Hello, World!'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1289 | "SELECT spooky_hash('Hello, World!')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1290 | }) | ~~ 1291 | .with_example({ | ~~~~~~~~~~~~~~~ 1292 | "To produce a hash for the parameters where one is NULL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1293 | "SELECT spooky_hash('Hello, World!', NULL)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1294 | }) | ~~ 1295 | .with_example({ | ~~~~~~~~~~~~~~~ 1296 | "To produce a hash for the parameters where one " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1297 | "is an empty string", | ~~~~~~~~~~~~~~~~~~~~~ 1298 | "SELECT spooky_hash('Hello, World!', '')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1299 | }) | ~~ 1300 | .with_example({ | ~~~~~~~~~~~~~~~ 1301 | "To produce a hash for the parameters where one " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1302 | "is a number", | ~~~~~~~~~~~~~~ 1303 | "SELECT spooky_hash('Hello, World!', 123)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1304 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::sql_gunzip; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::sql_gunzip]' 524 | }; | ^ string-extension-functions.cc:1306:72: required from here 1306 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1307 | help_text("gunzip", "Decompress a gzip file") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1308 | .sql_function() | ~~~~~~~~~~~~~~~ 1309 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1310 | help_text("b", "The blob to decompress").one_or_more()) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1311 | .with_tags({"string"})), | ~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::sql_gzip; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {sqlite3_value*}; Return (* f)(Args ...) = {anonymous}::sql_gzip]' 524 | }; | ^ string-extension-functions.cc:1313:68: required from here 1313 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1314 | help_text("gzip", "Compress a string into a gzip file") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1315 | .sql_function() | ~~~~~~~~~~~~~~~ 1316 | .with_parameter( | ~~~~~~~~~~~~~~~~ 1317 | help_text("value", "The value to compress").one_or_more()) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1318 | .with_tags({"string"})), | ~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = mapbox::util::variant, null_value_t>; Args = {sqlite3_value*, encode_algo}; Return (* f)(Args ...) = {anonymous}::sql_encode; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = mapbox::util::variant, null_value_t>; Args = {sqlite3_value*, encode_algo}; Return (* f)(Args ...) = {anonymous}::sql_encode]' 524 | }; | ^ string-extension-functions.cc:1320:72: required from here 1320 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1321 | help_text("encode", "Encode the value using the given algorithm") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1322 | .sql_function() | ~~~~~~~~~~~~~~~ 1323 | .with_parameter(help_text("value", "The value to encode")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1324 | .with_parameter(help_text("algorithm", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1325 | "One of the following encoding " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1326 | "algorithms: base64, hex, uri, html")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1327 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1328 | .with_example({ | ~~~~~~~~~~~~~~~ 1329 | "To base64-encode 'Hello, World!'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1330 | "SELECT encode('Hello, World!', 'base64')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1331 | }) | ~~ 1332 | .with_example({ | ~~~~~~~~~~~~~~~ 1333 | "To hex-encode 'Hello, World!'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1334 | "SELECT encode('Hello, World!', 'hex')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1335 | }) | ~~ 1336 | .with_example({ | ~~~~~~~~~~~~~~~ 1337 | "To URI-encode 'Hello, World!'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1338 | "SELECT encode('Hello, World!', 'uri')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1339 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = mapbox::util::variant >; Args = {string_fragment, encode_algo}; Return (* f)(Args ...) = {anonymous}::sql_decode; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = mapbox::util::variant >; Args = {string_fragment, encode_algo}; Return (* f)(Args ...) = {anonymous}::sql_decode]' 524 | }; | ^ string-extension-functions.cc:1341:72: required from here 1341 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1342 | help_text("decode", "Decode the value using the given algorithm") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1343 | .sql_function() | ~~~~~~~~~~~~~~~ 1344 | .with_parameter(help_text("value", "The value to decode")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1345 | .with_parameter(help_text("algorithm", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1346 | "One of the following encoding " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1347 | "algorithms: base64, hex, uri")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1348 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1349 | .with_example({ | ~~~~~~~~~~~~~~~ 1350 | "To decode the URI-encoded string '%63%75%72%6c'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1351 | "SELECT decode('%63%75%72%6c', 'uri')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1352 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = json_string; Args = {std::__cxx11::basic_string, std::allocator >}; Return (* f)(Args ...) = {anonymous}::sql_parse_url; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = json_string; Args = {std::__cxx11::basic_string, std::allocator >}; Return (* f)(Args ...) = {anonymous}::sql_parse_url]' 524 | }; | ^ string-extension-functions.cc:1354:78: required from here 1354 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1355 | help_text("parse_url", | ~~~~~~~~~~~~~~~~~~~~~~ 1356 | "Parse a URL and return the components in a JSON object. " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1357 | "Limitations: not all URL schemes are supported and " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1358 | "repeated query parameters are not captured.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1359 | .sql_function() | ~~~~~~~~~~~~~~~ 1360 | .with_parameter(help_text("url", "The URL to parse")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1361 | .with_result({ | ~~~~~~~~~~~~~~ 1362 | "scheme", | ~~~~~~~~~ 1363 | "The URL's scheme", | ~~~~~~~~~~~~~~~~~~~ 1364 | }) | ~~ 1365 | .with_result({ | ~~~~~~~~~~~~~~ 1366 | "username", | ~~~~~~~~~~~ 1367 | "The name of the user specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1368 | }) | ~~ 1369 | .with_result({ | ~~~~~~~~~~~~~~ 1370 | "password", | ~~~~~~~~~~~ 1371 | "The password specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1372 | }) | ~~ 1373 | .with_result({ | ~~~~~~~~~~~~~~ 1374 | "host", | ~~~~~~~ 1375 | "The host name / IP specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1376 | }) | ~~ 1377 | .with_result({ | ~~~~~~~~~~~~~~ 1378 | "port", | ~~~~~~~ 1379 | "The port specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1380 | }) | ~~ 1381 | .with_result({ | ~~~~~~~~~~~~~~ 1382 | "path", | ~~~~~~~ 1383 | "The path specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1384 | }) | ~~ 1385 | .with_result({ | ~~~~~~~~~~~~~~ 1386 | "query", | ~~~~~~~~ 1387 | "The query string in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1388 | }) | ~~ 1389 | .with_result({ | ~~~~~~~~~~~~~~ 1390 | "parameters", | ~~~~~~~~~~~~~ 1391 | "An object containing the query parameters", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1392 | }) | ~~ 1393 | .with_result({ | ~~~~~~~~~~~~~~ 1394 | "fragment", | ~~~~~~~~~~~ 1395 | "The fragment specified in the URL", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1396 | }) | ~~ 1397 | .with_tags({"string", "url"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1398 | .with_example({ | ~~~~~~~~~~~~~~~ 1399 | "To parse the URL " | ~~~~~~~~~~~~~~~~~~~ 1400 | "'https://example.com/search?q=hello%20world'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1401 | "SELECT " | ~~~~~~~~~ 1402 | "parse_url('https://example.com/search?q=hello%20world')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1403 | }) | ~~ 1404 | .with_example({ | ~~~~~~~~~~~~~~~ 1405 | "To parse the URL " | ~~~~~~~~~~~~~~~~~~~ 1406 | "'https://alice@[fe80::14ff:4ee5:1215:2fb2]'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1407 | "SELECT " | ~~~~~~~~~ 1408 | "parse_url('https://alice@[fe80::14ff:4ee5:1215:2fb2]')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1409 | })) | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = auto_mem; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::sql_unparse_url; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = auto_mem; Args = {string_fragment}; Return (* f)(Args ...) = {anonymous}::sql_unparse_url]' 524 | }; | ^ string-extension-functions.cc:1413:20: required from here 1412 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1413 | builder( | ~~~~~~~^ 1414 | help_text("unparse_url", | ~~~~~~~~~~~~~~~~~~~~~~~~ 1415 | "Convert a JSON object containing the parts of a " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1416 | "URL into a URL string") | ~~~~~~~~~~~~~~~~~~~~~~~~ 1417 | .sql_function() | ~~~~~~~~~~~~~~~ 1418 | .with_parameter(help_text( | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1419 | "obj", "The JSON object containing the URL parts")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1420 | .with_tags({"string", "url"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1421 | .with_example({ | ~~~~~~~~~~~~~~~ 1422 | "To unparse the object " | ~~~~~~~~~~~~~~~~~~~~~~~~ 1423 | "'{\"scheme\": \"https\", \"host\": \"example.com\"}'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1424 | "SELECT " | ~~~~~~~~~ 1425 | "unparse_url('{\"scheme\": \"https\", \"host\": " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1426 | "\"example.com\"}')", | ~~~~~~~~~~~~~~~~~~~~~ 1427 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = sql_pretty_print; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {string_fragment}; Return (* f)(Args ...) = sql_pretty_print]' 524 | }; | ^ string-extension-functions.cc:1430:20: required from here 1429 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1430 | builder( | ~~~~~~~^ 1431 | help_text("pretty_print", "Pretty-print the given string") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1432 | .sql_function() | ~~~~~~~~~~~~~~~ 1433 | .with_prql_path({"text", "pretty"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1434 | .with_parameter(help_text("str", "The string to format")) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1435 | .with_tags({"string"}) | ~~~~~~~~~~~~~~~~~~~~~~ 1436 | .with_example({ | ~~~~~~~~~~~~~~~ 1437 | "To pretty-print the string " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1438 | "'{\"scheme\": \"https\", \"host\": \"example.com\"}'", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1439 | "SELECT " | ~~~~~~~~~ 1440 | "pretty_print('{\"scheme\": \"https\", \"host\": " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1441 | "\"example.com\"}')", | ~~~~~~~~~~~~~~~~~~~~~ 1442 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int CXX views_vtab.o CXX vtab_module.o In file included from logfile.hh:50, from filter_observer.hh:37, from textfile_sub_source.hh:41, from textfile_sub_source.cc:36: textfile_sub_source.cc: In member function 'textfile_sub_source::rescan_result_t textfile_sub_source::rescan_files(scan_callback&, std::optional > > >)': textfile_sub_source.cc:964:29: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Wformat=] 964 | "text file has changed, invalidating metadata. " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | "old: {mtime: %ld size: %lld isize: %lld}, new: " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | "{mtime: %ld size: %lld isize: %lld}", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 967 | (*iter)->fvs_mtime, | ~~~~~~~~~~~~~~~~~~ | | | time_t {aka long long int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ textfile_sub_source.cc:963:25: note: in expansion of macro 'log_debug' 963 | log_debug( | ^~~~~~~~~ textfile_sub_source.cc:965:45: note: format string is defined here 965 | "old: {mtime: %ld size: %lld isize: %lld}, new: " | ~~^ | | | long int | %lld textfile_sub_source.cc:964:29: warning: format '%ld' expects argument of type 'long int', but argument 8 has type 'long long int' [-Wformat=] 964 | "text file has changed, invalidating metadata. " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | "old: {mtime: %ld size: %lld isize: %lld}, new: " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | "{mtime: %ld size: %lld isize: %lld}", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ textfile_sub_source.cc:963:25: note: in expansion of macro 'log_debug' 963 | log_debug( | ^~~~~~~~~ textfile_sub_source.cc:966:40: note: format string is defined here 966 | "{mtime: %ld size: %lld isize: %lld}", | ~~^ | | | long int | %lld CXX log_vtab_impl.o textfile_sub_source.cc: In lambda function: textfile_sub_source.cc:1783:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1783 | if (vl < height) { | ~~~^~~~~~~~ CXX xml_util.o In file included from textview_curses.hh:42, from plain_text_source.hh:42, from textinput_curses.hh:49, from textinput_curses.cc:32: textinput_curses.cc: In member function 'virtual bool textinput_curses::handle_mouse(mouse_event&)': textinput_curses.cc:356:15: warning: format '%d' expects argument of type 'int', but argument 5 has type 'mouse_button_t' [-Wformat=] 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 357 | me.me_button, | ~~~~~~~~~~~~ | | | mouse_button_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ textinput_curses.cc:356:5: note: in expansion of macro 'log_debug' 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ^~~~~~~~~ textinput_curses.cc:356:36: note: format string is defined here 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ~^ | | | int textinput_curses.cc:356:15: warning: format '%d' expects argument of type 'int', but argument 6 has type 'mouse_button_state_t' [-Wformat=] 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 357 | me.me_button, 358 | me.me_state, | ~~~~~~~~~~~ | | | mouse_button_state_t base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ textinput_curses.cc:356:5: note: in expansion of macro 'log_debug' 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ^~~~~~~~~ textinput_curses.cc:356:45: note: format string is defined here 356 | log_debug("mouse here! button=%d state=%d x=%d y=%d", | ~^ | | | int textinput_curses.cc:394:44: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 394 | y <= range->sr_end.y && y < this->tc_lines.size(); | ~~^~~~~~~~~~~~~~~~~~~~~~~ textinput_curses.cc: In member function 'std::string textinput_curses::replace_selection_no_change(string_fragment)': textinput_curses.cc:1639:51: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 1639 | curr_line <= range.sr_end.y && curr_line < this->tc_lines.size(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ In file included from time-extension-functions.cc:44: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ CXX xpath_vtab.o CXX xterm_mouse.o In file included from time-extension-functions.cc:46: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {sqlite3_value*, std::optional}; Return (* f)(Args ...) = timeslice; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {sqlite3_value*, std::optional}; Return (* f)(Args ...) = timeslice]' 524 | }; | ^ time-extension-functions.cc:272:70: required from here 272 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 273 | help_text( | ~~~~~~~~~~ 274 | "timeslice", | ~~~~~~~~~~~~ 275 | "Return the start of the slice of time that the given " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 | "timestamp falls in. " | ~~~~~~~~~~~~~~~~~~~~~~~ 277 | "If the time falls outside of the slice, NULL is returned.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | .sql_function() | ~~~~~~~~~~~~~~~ 279 | .with_prql_path({"time", "slice"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | .with_parameter( | ~~~~~~~~~~~~~~~~ 281 | {"time", "The timestamp to get the time slice for."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | .with_parameter({"slice", "The size of the time slices"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | .with_tags({"datetime"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 284 | .with_example({ | ~~~~~~~~~~~~~~~ 285 | "To get the timestamp rounded down to the start of the " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | "ten minute slice", | ~~~~~~~~~~~~~~~~~~~ 287 | "SELECT timeslice('2017-01-01T05:05:00', '10m')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | }) | ~~ 289 | .with_example({ | ~~~~~~~~~~~~~~~ 290 | "To group log messages into five minute buckets and count " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | "them", | ~~~~~~~ 292 | "SELECT timeslice(log_time_msecs, '5m') AS slice, " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | "count(1)\n FROM lnav_example_log GROUP BY slice", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 294 | }) | ~~ 295 | .with_example({ | ~~~~~~~~~~~~~~~ 296 | "To group log messages by those before 4:30am and after", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 297 | "SELECT timeslice(log_time_msecs, 'before 4:30am') AS " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | "slice, count(1) FROM lnav_example_log GROUP BY slice", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | })), | ~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = sql_timediff; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = sql_timediff]' 524 | }; | ^ time-extension-functions.cc:301:76: required from here 301 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 302 | help_text( | ~~~~~~~~~~ 303 | "timediff", | ~~~~~~~~~~~ 304 | "Compute the difference between two timestamps in seconds") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 305 | .sql_function() | ~~~~~~~~~~~~~~~ 306 | .with_prql_path({"time", "diff"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | .with_parameter({"time1", "The first timestamp"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | .with_parameter( | ~~~~~~~~~~~~~~~~ 309 | {"time2", "The timestamp to subtract from the first"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 310 | .with_tags({"datetime"}) | ~~~~~~~~~~~~~~~~~~~~~~~~ 311 | .with_example({ | ~~~~~~~~~~~~~~~ 312 | "To get the difference between two timestamps", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 | "SELECT timediff('2017-02-03T04:05:06', " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | "'2017-02-03T04:05:00')", | ~~~~~~~~~~~~~~~~~~~~~~~~~ 315 | }) | ~~ 316 | .with_example({ | ~~~~~~~~~~~~~~~ 317 | "To get the difference between relative timestamps", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | "SELECT timediff('today', 'yesterday')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::__cxx11::basic_string; Args = {double}; Return (* f)(Args ...) = sql_humanize_duration; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::__cxx11::basic_string; Args = {double}; Return (* f)(Args ...) = sql_humanize_duration]' 524 | }; | ^ time-extension-functions.cc:323:20: required from here 321 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~ 323 | builder( | ~~~~~~~^ 324 | help_text("humanize_duration", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | "Format the given seconds value as an abbreviated " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | "duration string") | ~~~~~~~~~~~~~~~~~~ 327 | .sql_function() | ~~~~~~~~~~~~~~~ 328 | .with_prql_path({"humanize", "duration"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 | .with_parameter({"secs", "The duration in seconds"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 330 | .with_tags({"datetime", "string"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 331 | .with_example({ | ~~~~~~~~~~~~~~~ 332 | "To format a duration", | ~~~~~~~~~~~~~~~~~~~~~~~ 333 | "SELECT humanize_duration(15 * 60)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 334 | }) | ~~ 335 | .with_example({ | ~~~~~~~~~~~~~~~ 336 | "To format a sub-second value", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 337 | "SELECT humanize_duration(1.5)", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = sql_timezone; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {string_fragment, string_fragment}; Return (* f)(Args ...) = sql_timezone]' 524 | }; | ^ time-extension-functions.cc:340:76: required from here 340 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 341 | help_text("timezone", "Convert a timestamp to the given timezone") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | .sql_function() | ~~~~~~~~~~~~~~~ 343 | .with_prql_path({"time", "to_zone"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | .with_parameter({"tz", "The target timezone"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | .with_parameter({"ts", "The source timestamp"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 346 | .with_tags({"datetime", "string"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 | .with_example({ | ~~~~~~~~~~~~~~~ 348 | "To convert a time to America/Los_Angeles", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 349 | "SELECT timezone('America/Los_Angeles', " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 350 | "'2022-03-02T10:00')", | ~~~~~~~~~~~~~~~~~~~~~~ 351 | })), | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int CXX yaml-extension-functions.o CXX animals-json.o CXX ansi-palette-json.o CXX builtin-scripts.o CXX builtin-sh-scripts.o view_curses.cc: In static member function 'static view_curses::mvwattrline_result view_curses::mvwattrline(ncplane*, int, int, attr_line_t&, const line_range&, role_t)': view_curses.cc:299:24: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 299 | if (y < 0 || y >= rows || x < 0 || x >= cols) { | ~~^~~~~~~ view_curses.cc:299:46: warning: comparison of integer expressions of different signedness: 'const int' and 'unsigned int' [-Wsign-compare] 299 | if (y < 0 || y >= rows || x < 0 || x >= cols) { | ~~^~~~~~~ view_curses.cc:301:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 301 | } else if ((x + line_width_chars) > cols) { | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~ view_curses.cc:405:42: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'unsigned int'} and 'int' [-Wsign-compare] 405 | for (size_t i = 0; i < read_res; i++) { | ~~^~~~~~~~~~ CXX static-files.o CXX css-color-names-json.o timeline_source.cc: In member function 'virtual std::vector timeline_preview_overlay::list_overlay_menu(const listview_curses&, vis_line_t)': timeline_source.cc:142:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 142 | if (left + MENU_WIDTH >= dim.second) { | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ timeline_source.cc: In member function 'virtual bool timeline_header_overlay::list_static_overlay(const listview_curses&, list_overlay_source::media_t, int, int, attr_line_t&)': timeline_source.cc:255:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 255 | if (y < this->gho_static_lines.size()) { | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc:309:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::tuple_element<1, std::pair, long unsigned int> >::type' {aka 'long unsigned int'} [-Wsign-compare] 309 | if (lr.lr_end > width) { | ~~~~~~~~~~^~~~~~~ timeline_source.cc: In member function 'virtual void timeline_header_overlay::list_value_for_overlay(const listview_curses&, vis_line_t, std::vector&)': timeline_source.cc:385:14: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 385 | if (line >= this->gho_src->ts_time_order.size()) { | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CXX default-config.o sql_commands.cc:201:49: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 201 | DIST_SLICE(prog_reps) lnav::progress_reporter_t backup_rep = backup_prog_rep; | ^~~~~~~~~~ timeline_source.cc: In member function 'bool timeline_source::rebuild_indexes()': timeline_source.cc:973:45: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'unsigned int'} [-Wsign-compare] 973 | if (sub.ostr_subid.length() > row.or_max_subid_width) { | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc: In member function 'virtual std::optional timeline_source::time_for_row(vis_line_t)': timeline_source.cc:1317:13: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 1317 | if (row >= this->ts_time_order.size()) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc:1326:38: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 1326 | if (ov_sel && ov_sel.value() < otr.otr_sub_ops.size()) { | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc: In member function 'virtual void timeline_source::text_selection_changed(textview_curses&)': timeline_source.cc:1360:29: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 1360 | if (!sel || sel.value() >= this->ts_time_order.size()) { | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc:1488:19: warning: comparison of integer expressions of different signedness: 'int' and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare] 1488 | if (msg_count < level_stats.lls_total_count) { | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ timeline_source.cc: In member function 'virtual void timeline_source::text_crumbs_for_line(int, std::vector&)': timeline_source.cc:1588:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'unsigned int'} [-Wsign-compare] 1588 | if (line >= this->ts_time_order.size()) { | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CXX default-formats.o In file included from state-extension-functions.cc:41: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {}; Return (* f)(Args ...) = sql_log_top_line; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {}; Return (* f)(Args ...) = sql_log_top_line]' 524 | }; | ^ state-extension-functions.cc:167:20: required from here 166 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | builder( | ~~~~~~~^ 168 | help_text( | ~~~~~~~~~~ 169 | "log_top_line", | ~~~~~~~~~~~~~~~ 170 | "Return the number of the focused line of the log view.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | .sql_function() | ~~~~~~~~~~~~~~~ 172 | .with_prql_path({"lnav", "view", "top_line"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional; Args = {}; Return (* f)(Args ...) = sql_log_msg_line; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional; Args = {}; Return (* f)(Args ...) = sql_log_msg_line]' 524 | }; | ^ state-extension-functions.cc:175:20: required from here 174 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | builder(help_text("log_msg_line", | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ 176 | "Return the starting line number of the focused " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | "log message.") | ~~~~~~~~~~~~~~~ 178 | .sql_function() | ~~~~~~~~~~~~~~~ 179 | .with_prql_path({"lnav", "view", "msg_line"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {}; Return (* f)(Args ...) = sql_log_top_datetime; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {}; Return (* f)(Args ...) = sql_log_top_datetime]' 524 | }; | ^ state-extension-functions.cc:183:20: required from here 181 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~ 183 | builder(help_text("log_top_datetime", | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 184 | "Return the timestamp of the line at the top of " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 185 | "the log view.") | ~~~~~~~~~~~~~~~~ 186 | .sql_function() | ~~~~~~~~~~~~~~~ 187 | .with_prql_path({"lnav", "view", "top_datetime"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {}; Return (* f)(Args ...) = sql_lnav_top_file; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {}; Return (* f)(Args ...) = sql_lnav_top_file]' 524 | }; | ^ state-extension-functions.cc:190:20: required from here 189 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | builder(help_text("lnav_top_file", | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | "Return the name of the file that the top line " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 192 | "in the current view came from.") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 193 | .sql_function() | ~~~~~~~~~~~~~~~ 194 | .with_prql_path({"lnav", "view", "top_file"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = const char*; Args = {}; Return (* f)(Args ...) = sql_lnav_version; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = const char*; Args = {}; Return (* f)(Args ...) = sql_lnav_version]' 524 | }; | ^ state-extension-functions.cc:197:20: required from here 196 | sqlite_func_adapter:: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | builder( | ~~~~~~~^ 198 | help_text("lnav_version", "Return the current version of lnav") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | .sql_function() | ~~~~~~~~~~~~~~~ 200 | .with_prql_path({"lnav", "version"})), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = long long int; Args = {const char*, std::optional, std::optional}; Return (* f)(Args ...) = sql_error; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = long long int; Args = {const char*, std::optional, std::optional}; Return (* f)(Args ...) = sql_error]' 524 | }; | ^ state-extension-functions.cc:202:70: required from here 202 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 203 | help_text("raise_error", | ~~~~~~~~~~~~~~~~~~~~~~~~ 204 | "Raises an error with the given message when executed") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | .sql_function() | ~~~~~~~~~~~~~~~ 206 | .with_parameter({"msg", "The error message"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | .with_parameter( | ~~~~~~~~~~~~~~~~ 208 | help_text("reason", "The reason the error occurred") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 | .optional()) | ~~~~~~~~~~~~ 210 | .with_parameter( | ~~~~~~~~~~~~~~~~ 211 | help_text("help", "A possible resolution to the error") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | .optional()) | ~~~~~~~~~~~~ 213 | .with_example({ | ~~~~~~~~~~~~~~~ 214 | "To raise an error if a variable is not set", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | "SELECT ifnull($val, raise_error('please set $val', " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | "'because'))", | ~~~~~~~~~~~~~~ 217 | })) | ~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = std::optional >; Args = {std::optional, std::allocator > >}; Return (* f)(Args ...) = sql_echoln; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = std::optional >; Args = {std::optional, std::allocator > >}; Return (* f)(Args ...) = sql_echoln]' 524 | }; | ^ state-extension-functions.cc:220:72: required from here 220 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 221 | help_text("echoln", | ~~~~~~~~~~~~~~~~~~~ 222 | "Echo the argument to the current output file and return " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 223 | "it") | ~~~~~ 224 | .sql_function() | ~~~~~~~~~~~~~~~ 225 | .with_parameter( | ~~~~~~~~~~~~~~~~ 226 | {"value", "The value to write to the current output file"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | .with_tags({"io"})) | ~~~~~~~~~~~~~~~~~~~ vtab_module.hh:485:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d 486 | fd->fd_help.ht_name, 487 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int vtab_module.hh:485:58: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'unsigned int' [-Wformat=] 485 | "%s() expects between %ld and %ld arguments", | ~~^ | | | long int | %d ...... 488 | REQ_COUNT + OPT_COUNT); | ~~~~~~~~~~~~~~~~~~~~~ | | | unsigned int CXX diseases-json.o CXX emojis-json.o CXX words-json.o textview_curses.cc:209:70: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 209 | const DIST_SLICE(bm_types) bookmark_type_t textview_curses::BM_ERRORS("error"); | ^ textview_curses.cc:211:49: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 211 | bookmark_type_t textview_curses::BM_WARNINGS("warning"); | ^ textview_curses.cc:212:68: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 212 | const DIST_SLICE(bm_types) bookmark_type_t textview_curses::BM_USER("user"); | ^ textview_curses.cc:214:50: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 214 | bookmark_type_t textview_curses::BM_USER_EXPR("user-expr"); | ^ textview_curses.cc:215:70: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 215 | const DIST_SLICE(bm_types) bookmark_type_t textview_curses::BM_SEARCH("search"); | ^ textview_curses.cc:216:68: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 216 | const DIST_SLICE(bm_types) bookmark_type_t textview_curses::BM_META("meta"); | ^ textview_curses.cc:218:50: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 218 | bookmark_type_t textview_curses::BM_PARTITION("partition"); | ^ textview_curses.cc:219:70: warning: 'no_sanitize_address' attribute ignored [-Wattributes] 219 | const DIST_SLICE(bm_types) bookmark_type_t textview_curses::BM_STICKY("sticky"); | ^ CXX help-md.o textview_curses.cc: In member function 'virtual bool textview_curses::handle_mouse(mouse_event&)': textview_curses.cc:499:47: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector >::size_type' {aka 'unsigned int'} [-Wsign-compare] 499 | auto mouse_line = (me.me_y < 0 || me.me_y >= this->lv_display_lines.size()) | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ textview_curses.cc:692:40: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 692 | } else if (me.me_x >= width - 1) { | ~~~~~~~~^~~~~~~~~~~~ CXX init-sql.o CXX prql-modules.o CXX terminfo-files.o CXX time_fmts.o In file included from bookmarks.hh:44, from view_helpers.hh:38, from view_helpers.cc:33: view_helpers.cc: In function 'void open_pretty_view()': base/lnav_log.hh:211:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string::size_type' {aka 'unsigned int'} and 'const int' [-Wsign-compare] 211 | ((void) ((lhs >= rhs) \ view_helpers.cc:460:17: note: in expansion of macro 'require_ge' 460 | require_ge(al.al_string.length(), orig_lr.lr_end); | ^~~~~~~~~~ base/lnav_log.hh:211:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string::size_type' {aka 'unsigned int'} and 'const int' [-Wsign-compare] 211 | ((void) ((lhs >= rhs) \ view_helpers.cc:468:13: note: in expansion of macro 'require_ge' 468 | require_ge(al.al_string.length(), orig_lr.lr_end); | ^~~~~~~~~~ CXX xml-entities-json.o CXX xterm-palette-json.o CXX data_scanner.o CXX data_scanner_re.o CC test_override.o CC third-party/md4c/entity.o CC third-party/md4c/md4c.o CC third-party/md4c/md4c-html.o CC third-party/sqlite/ext/dbdump.o CC third-party/sqlite/ext/series.o CXX spookyhash/SpookyV2.o In file included from byte_array.hh:40, from log_format_fwd.hh:53, from log_vtab_impl.hh:46, from log_vtab_impl.cc:36: log_vtab_impl.cc: In function 'int vt_next(sqlite3_vtab_cursor*)': log_vtab_impl.cc:655:22: warning: format '%lu' expects argument of type 'long unsigned int', but argument 8 has type 'size_t' {aka 'unsigned int'} [-Wformat=] 655 | log_info("vt_next at EOF (%d:%d:%d), scanned rows %lu", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...... 659 | vc->log_cursor.lc_scanned_rows); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | size_t {aka unsigned int} base/lnav_log.hh:173:48: note: in definition of macro 'log_msg_wrapper' 173 | log_msg(level, __FILE__, __LINE__, fmt); \ | ^~~ log_vtab_impl.cc:655:13: note: in expansion of macro 'log_info' 655 | log_info("vt_next at EOF (%d:%d:%d), scanned rows %lu", | ^~~~~~~~ log_vtab_impl.cc:655:65: note: format string is defined here 655 | log_info("vt_next at EOF (%d:%d:%d), scanned rows %lu", | ~~^ | | | long unsigned int | %u In file included from time_fmts.cc:4: ptimec.hh: In function 'void ftime_s(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:368:51: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 368 | snprintf(&dst[off_inout], len - off_inout, "%ld", t); | ~~^ ~ | | | | | time_t {aka long long int} | long int | %lld ptimec.hh: In function 'void ftime_q(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:426:51: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'time_t' {aka 'long long int'} [-Wformat=] 426 | snprintf(&dst[off_inout], len - off_inout, "%lx", t); | ~~^ ~ | | | | | time_t {aka long long int} | long unsigned int | %llx ptimec.hh: In function 'void ftime_f(char*, off_t&, ssize_t, const exttm&)': ptimec.hh:1213:28: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1213 | for (auto lpc = 0; lpc < out_len; lpc++) { | ~~~~^~~~~~~~~ In file included from yaml-extension-functions.cc:41: vtab_module.hh: In instantiation of 'static void sqlite_func_adapter::func1(sqlite3_context*, int, sqlite3_value**) [with Return = json_string; Args = {string_fragment}; Return (* f)(Args ...) = yaml_to_json; sqlite3_context = sqlite3_context; sqlite3_value = sqlite3_value]': vtab_module.hh:524:9: required from 'static FuncDef sqlite_func_adapter::builder(help_text) [with Return = json_string; Args = {string_fragment}; Return (* f)(Args ...) = yaml_to_json]' 524 | }; | ^ yaml-extension-functions.cc:91:76: required from here 91 | sqlite_func_adapter::builder( | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 92 | help_text("yaml_to_json", | ~~~~~~~~~~~~~~~~~~~~~~~~~ 93 | "Convert a YAML document to a JSON-encoded string") | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | .sql_function() | ~~~~~~~~~~~~~~~ 95 | .with_prql_path({"yaml", "to_json"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | .with_parameter({"yaml", "The YAML value to convert to JSON."}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | .with_tags({"json", "yaml"}) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | .with_example({ | ~~~~~~~~~~~~~~~ 99 | "To convert the document \"abc: def\"", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100 | "SELECT yaml_to_json('abc: def')", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101 | })) | ~~~ vtab_module.hh:478:50: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=] 478 | "%s() expects exactly %ld argument%s", | ~~^ | | | long int | %d 479 | fd->fd_help.ht_name, 480 | REQ_COUNT, | ~~~~~~~~~ | | | unsigned int In function 'md_is_link_reference_definition', inlined from 'md_consume_link_reference_definitions' at third-party/md4c/md4c.c:5081:28, inlined from 'md_end_current_block' at third-party/md4c/md4c.c:5130:13: third-party/md4c/md4c.c:2239:7: warning: 'label_contents_line_index' may be used uninitialized [-Wmaybe-uninitialized] 2239 | if(label_is_multiline) { | ^ third-party/md4c/md4c.c: In function 'md_end_current_block': third-party/md4c/md4c.c:2158:13: note: 'label_contents_line_index' was declared here 2158 | MD_SIZE label_contents_line_index; | ^~~~~~~~~~~~~~~~~~~~~~~~~ AR libdiag.a ar: `u' modifier ignored since `D' is the default (see `U') AR libdatascanner.a ar: `u' modifier ignored since `D' is the default (see `U') CXXLD lnav CXXLD lnav-test if test -w ./internals; then \ env DUMP_INTERNALS_DIR=./internals DUMP_CRASH=1 ./lnav Makefile; \ mv ./internals/*.schema.json ../docs/schemas; \ fi make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' Making all in test make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' Making all in expected make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' CXX test_stubs.o AR libtestdummy.a ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' make[1]: Nothing to be done for 'all-am'. make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' >>> lnav: Entering fakeroot... Making install in tools make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/tools' Making install in src make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make install-recursive make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' Making install in fmtlib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/fmtlib' Making install in third-party/base64/lib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/base64/lib' Making install in third-party/date/src make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/date/src' Making install in third-party/notcurses/src/lib make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/notcurses/src/lib' Making install in third-party/scnlib/src make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/third-party/scnlib/src' Making install in pcrepp make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pcrepp' Making install in base make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/base' Making install in tailer make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make install-am make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make[5]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/tailer' Making install in pugixml make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/pugixml' Making install in yajl make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajl' Making install in yajlpp make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/yajlpp' Making install in formats/logfmt make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src/formats/logfmt' Making install in . make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' if test -w ./internals; then \ env DUMP_INTERNALS_DIR=./internals DUMP_CRASH=1 ./lnav Makefile; \ mv ./internals/*.schema.json ../docs/schemas; \ fi make[4]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[4]: Nothing to be done for 'install-data-am'. .././install-sh -c -d '/home/buildozer/aports/community/lnav/pkg/lnav/usr/bin' /usr/bin/install -c lnav '/home/buildozer/aports/community/lnav/pkg/lnav/usr/bin' make[4]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/src' Making install in test make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' Making install in expected make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test/expected' make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[3]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[3]: Nothing to be done for 'install-exec-am'. make[3]: Nothing to be done for 'install-data-am'. make[3]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0/test' make[1]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' make[2]: Entering directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' make[2]: Nothing to be done for 'install-exec-am'. ./install-sh -c -d '/home/buildozer/aports/community/lnav/pkg/lnav/usr/share/man/man1' /usr/bin/install -c -m 644 lnav.1 '/home/buildozer/aports/community/lnav/pkg/lnav/usr/share/man/man1' make[2]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' make[1]: Leaving directory '/home/buildozer/aports/community/lnav/src/lnav-0.14.0' >>> lnav-doc*: Running split function doc... libfakeroot internal error: payload not recognized! 'usr/share/man' -> '/home/buildozer/aports/community/lnav/pkg/lnav-doc/usr/share/man' >>> lnav-doc*: Preparing subpackage lnav-doc... >>> lnav-doc*: Running postcheck for lnav-doc >>> lnav*: Running postcheck for lnav >>> lnav*: Preparing package lnav... >>> lnav*: Stripping binaries >>> lnav*: Scanning shared objects >>> lnav-doc*: Tracing dependencies... >>> lnav-doc*: Package size: 1.4 KB >>> lnav-doc*: Compressing data... >>> lnav-doc*: Create checksum... >>> lnav-doc*: Create lnav-doc-0.14.0-r0.apk >>> lnav*: Tracing dependencies... tzdata so:libarchive.so.13 so:libbz2.so.1 so:libc.musl-x86.so.1 so:libcurl.so.4 so:libgcc_s.so.1 so:libpcre2-8.so.0 so:libsqlite3.so.0 so:libstdc++.so.6 so:libunistring.so.5 so:libz.so.1 >>> lnav*: Package size: 8.1 MB >>> lnav*: Compressing data... >>> lnav*: Create checksum... >>> lnav*: Create lnav-0.14.0-r0.apk >>> lnav: Build complete at Mon, 13 Apr 2026 01:48:48 +0000 elapsed time 0h 4m 17s >>> lnav: Cleaning up srcdir >>> lnav: Cleaning up pkgdir >>> lnav: Cleaning up tmpdir >>> lnav: Uninstalling dependencies... ( 1/43) Purging .makedepends-lnav (20260413.014433) ( 2/43) Purging tzdata (2026a-r0) ( 3/43) Purging bash (5.3.9-r1) Executing bash-5.3.9-r1.pre-deinstall ( 4/43) Purging bzip2-dev (1.0.8-r6) ( 5/43) Purging curl-dev (8.19.0-r0) ( 6/43) Purging gpm-dev (1.20.7-r6) ( 7/43) Purging gpm-libs (1.20.7-r6) ( 8/43) Purging libarchive-dev (3.8.6-r0) ( 9/43) Purging libarchive (3.8.6-r0) (10/43) Purging libbsd-dev (0.12.2-r0) (11/43) Purging linux-headers (6.19.11-r1) (12/43) Purging libmd-dev (1.1.0-r0) (13/43) Purging libbsd (0.12.2-r0) (14/43) Purging libunistring-dev (1.4.1-r0) (15/43) Purging readline-dev (8.3.3-r1) (16/43) Purging libhistory (8.3.3-r1) (17/43) Purging sqlite-dev (3.53.0-r0) (18/43) Purging sqlite (3.53.0-r0) (19/43) Purging sqlite-libs (3.53.0-r0) (20/43) Purging brotli-dev (1.2.0-r1) (21/43) Purging brotli (1.2.0-r1) (22/43) Purging c-ares-dev (1.34.6-r0) (23/43) Purging libbz2 (1.0.8-r6) (24/43) Purging libmd (1.1.0-r0) (25/43) Purging libpsl-dev (0.21.5-r3) (26/43) Purging libpsl-utils (0.21.5-r3) (27/43) Purging nghttp2-dev (1.68.1-r0) (28/43) Purging openssl-dev (3.5.6-r0) (29/43) Purging xz-libs (5.8.2-r0) (30/43) Purging zstd-dev (1.5.7-r2) (31/43) Purging zstd (1.5.7-r2) (32/43) Purging pcre2-dev (10.47-r0) (33/43) Purging zlib-dev (1.3.2-r0) (34/43) Purging libpcre2-16 (10.47-r0) (35/43) Purging libpcre2-32 (10.47-r0) (36/43) Purging libedit-dev (20251016.3.1-r1) (37/43) Purging ncurses-dev (6.6_p20260404-r0) (38/43) Purging libncurses++ (6.6_p20260404-r0) (39/43) Purging libpanelw (6.6_p20260404-r0) (40/43) Purging bsd-compat-headers (0.7.2-r6) (41/43) Purging libformw (6.6_p20260404-r0) (42/43) Purging libidn2-dev (2.3.8-r0) (43/43) Purging libmenuw (6.6_p20260404-r0) Executing busybox-1.37.0-r31.trigger OK: 425.8 MiB in 104 packages >>> lnav: Updating the community/x86 repository index... >>> lnav: Signing the index...