1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

sysutils/fsearch: try to unbreak the port's build on -CURRENT/i386:

error: incompatible function pointer types passing 'bool (const
  char *, time_t *, time_t *)' (aka 'bool (const char *, int *,
  int *)') to parameter of type 'FsearchQueryIntegerParserFunc *'
  (aka 'bool (*)(const char *, long long *, long long *)')

i386 is the only architecture with 32-bit `time_t' and I don't think
adding another `FsearchQueryTimeParserFunc' type just to circumvent
this [-Wincompatible-function-pointer-types] issue is warranted, or
even upstreamable, so simply pass those numbers as `int64_t' as this
does not affect internal time-related calculations.

Reported by:	pkg-fallout
This commit is contained in:
Alexey Dokuchaev 2023-07-31 06:58:58 +00:00
parent 9fc9a5a93f
commit 62dc27e0ab
2 changed files with 37 additions and 0 deletions

View File

@ -23,5 +23,8 @@ post-patch:
@${PRINTF} '\n%s\n%s;\n' int \
'strverscmp(const char *, const char *)' \
>> ${WRKSRC}/src/fsearch_string_utils.h
@${REINPLACE_CMD} -e 's,time_t,int64_t,g' \
${WRKSRC}/src/fsearch_time_utils.h \
${WRKSRC}/src/tests/test_time_utils.c
.include <bsd.port.mk>

View File

@ -0,0 +1,34 @@
--- src/fsearch_time_utils.c.orig 2022-08-22 10:06:20 UTC
+++ src/fsearch_time_utils.c
@@ -1,11 +1,11 @@
#define _GNU_SOURCE
-#include "fsearch_time_utils.h"
-
#include <glib.h>
#include <stdint.h>
#include <time.h>
+#include "fsearch_time_utils.h"
+
typedef enum FsearchDateTimeType {
FSEARCH_DATE_TIME_TYPE_SECOND,
FSEARCH_DATE_TIME_TYPE_MINUTE,
@@ -377,7 +377,7 @@ parse_implicit_date_time_constants(const char *str, st
}
static bool
-parse_date_time_constants(const char *str, time_t *time_start_out, time_t *time_end_out) {
+parse_date_time_constants(const char *str, int64_t *time_start_out, int64_t *time_end_out) {
struct tm tm_start = {};
struct tm tm_end = {};
@@ -469,7 +469,7 @@ round_down_tm_to_reference_with_date_time_accuracy(str
}
bool
-fsearch_date_time_parse_interval(const char *str, time_t *time_start_out, time_t *time_end_out) {
+fsearch_date_time_parse_interval(const char *str, int64_t *time_start_out, int64_t *time_end_out) {
if (parse_date_time_constants(str, time_start_out, time_end_out)) {
return true;
}