1.1 --- a/libsystypes/lib/src/stat.c Sat Apr 06 21:53:23 2024 +0200
1.2 +++ b/libsystypes/lib/src/stat.c Sat Apr 06 21:54:07 2024 +0200
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Utility functions for stat structures.
1.6 *
1.7 - * Copyright (C) 2022 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2022, 2024 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -21,32 +21,24 @@
1.13
1.14 #include "stat.h"
1.15
1.16 -#define COPY_STAT(s1, s2) \
1.17 - s1->st_dev = s2->st_dev; \
1.18 - s1->st_ino = s2->st_ino; \
1.19 - s1->st_mode = s2->st_mode; \
1.20 - s1->st_nlink = s2->st_nlink; \
1.21 - s1->st_uid = s2->st_uid; \
1.22 - s1->st_gid = s2->st_gid; \
1.23 - s1->st_rdev = s2->st_rdev; \
1.24 - s1->st_size = s2->st_size; \
1.25 - s1->st_atim.tv_sec = s2->st_atim.tv_sec; \
1.26 - s1->st_atim.tv_nsec = s2->st_atim.tv_nsec; \
1.27 - s1->st_mtim.tv_sec = s2->st_mtim.tv_sec; \
1.28 - s1->st_mtim.tv_nsec = s2->st_mtim.tv_nsec; \
1.29 - s1->st_ctim.tv_sec = s2->st_ctim.tv_sec; \
1.30 - s1->st_ctim.tv_nsec = s2->st_ctim.tv_nsec; \
1.31 - s1->st_blksize = s2->st_blksize; \
1.32 - s1->st_blocks = s2->st_blocks;
1.33 +void (*systypes_copy_from_sys_stat_override)(struct stat *, sys_stat_t *) = NULL;
1.34 +void (*systypes_copy_to_sys_stat_override)(struct stat *, sys_stat_t *) = NULL;
1.35
1.36 void systypes_copy_from_sys_stat(struct stat *st, sys_stat_t *sst)
1.37 {
1.38 - COPY_STAT(st, sst)
1.39 + if (systypes_copy_from_sys_stat_override != NULL)
1.40 + systypes_copy_from_sys_stat_override(st, sst);
1.41 + else
1.42 + COPY_STAT(st, sst)
1.43 }
1.44
1.45 void systypes_copy_to_sys_stat(struct stat *st, sys_stat_t *sst)
1.46 {
1.47 - COPY_STAT(sst, st)
1.48 + if (systypes_copy_from_sys_stat_override != NULL)
1.49 + systypes_copy_to_sys_stat_override(st, sst);
1.50 + else
1.51 + COPY_STAT(sst, st)
1.52 }
1.53
1.54 -// vim: tabstop=2 expandtab shiftwidth=2
1.55 +/* vim: tabstop=2 expandtab shiftwidth=2
1.56 +*/