fortrangoingonforty/fortsh / 413f789

Browse files

fix regex_t and regmatch_t struct sizes for macOS — regoff_t is long (8 bytes) not int

Authored by espadonne
SHA
413f789b3aaf2bd2d330745939ca5f67b01ac9c0
Parents
9e0d9b2
Tree
dee4293

1 changed file

StatusFile+-
M src/scripting/advanced_test.f90 12 3
src/scripting/advanced_test.f90modified
@@ -17,12 +17,21 @@ module advanced_test
1717
 
1818
   ! POSIX regex types for =~ operator
1919
   type, bind(C) :: regex_t
20
-    integer(c_int) :: re_dummy(32)  ! Opaque structure
20
+#ifdef __APPLE__
21
+    integer(c_int8_t) :: re_dummy(32)   ! macOS: regex_t is 32 bytes
22
+#else
23
+    integer(c_int8_t) :: re_dummy(256)  ! Linux: regex_t is ~128-256 bytes
24
+#endif
2125
   end type regex_t
2226
 
2327
   type, bind(C) :: regmatch_t
24
-    integer(c_int) :: rm_so  ! Start offset
25
-    integer(c_int) :: rm_eo  ! End offset
28
+#ifdef __APPLE__
29
+    integer(c_long) :: rm_so  ! regoff_t is long (8 bytes) on macOS
30
+    integer(c_long) :: rm_eo
31
+#else
32
+    integer(c_int) :: rm_so   ! regoff_t is int (4 bytes) on Linux
33
+    integer(c_int) :: rm_eo
34
+#endif
2635
   end type regmatch_t
2736
 
2837
   ! Regex compilation flags