Skip to content

Commit

Permalink
sysutils/fsearch: try to unbreak the port's build on -CURRENT/i386:
Browse files Browse the repository at this point in the history
  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
  • Loading branch information
Alexey Dokuchaev authored and Alexey Dokuchaev committed Jul 31, 2023
1 parent 9fc9a5a commit 62dc27e
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
3 changes: 3 additions & 0 deletions sysutils/fsearch/Makefile
Expand Up @@ -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>
34 changes: 34 additions & 0 deletions sysutils/fsearch/files/patch-src_fsearch__time__utils.c
@@ -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;
}

0 comments on commit 62dc27e

Please sign in to comment.