#define REENTRANT_PROTO_B_B 1
#define REENTRANT_PROTO_B_BI 2
#define REENTRANT_PROTO_B_BW 3
-#define REENTRANT_PROTO_B_CCS 4
-#define REENTRANT_PROTO_B_IBI 5
-#define REENTRANT_PROTO_B_IBW 6
-#define REENTRANT_PROTO_B_SB 7
-#define REENTRANT_PROTO_B_SBI 8
-#define REENTRANT_PROTO_I_BI 9
-#define REENTRANT_PROTO_I_BW 10
-#define REENTRANT_PROTO_I_CCSBWR 11
-#define REENTRANT_PROTO_I_CCSD 12
-#define REENTRANT_PROTO_I_CII 13
-#define REENTRANT_PROTO_I_CIISD 14
-#define REENTRANT_PROTO_I_CSBI 15
-#define REENTRANT_PROTO_I_CSBIR 16
-#define REENTRANT_PROTO_I_CSBWR 17
-#define REENTRANT_PROTO_I_CSBWRE 18
-#define REENTRANT_PROTO_I_CSD 19
-#define REENTRANT_PROTO_I_CWISBWRE 20
-#define REENTRANT_PROTO_I_CWISD 21
-#define REENTRANT_PROTO_I_H 22
-#define REENTRANT_PROTO_I_IBI 23
-#define REENTRANT_PROTO_I_IBW 24
-#define REENTRANT_PROTO_I_ICBI 25
-#define REENTRANT_PROTO_I_ICSBWR 26
-#define REENTRANT_PROTO_I_ICSD 27
-#define REENTRANT_PROTO_I_ID 28
-#define REENTRANT_PROTO_I_IISD 29
-#define REENTRANT_PROTO_I_ISBWR 30
-#define REENTRANT_PROTO_I_ISD 31
-#define REENTRANT_PROTO_I_LISBI 32
-#define REENTRANT_PROTO_I_LISD 33
-#define REENTRANT_PROTO_I_LS 34
-#define REENTRANT_PROTO_I_S 35
-#define REENTRANT_PROTO_I_SB 36
-#define REENTRANT_PROTO_I_SBI 37
-#define REENTRANT_PROTO_I_SBIE 38
-#define REENTRANT_PROTO_I_SBIH 39
-#define REENTRANT_PROTO_I_SBIR 40
-#define REENTRANT_PROTO_I_SBWR 41
-#define REENTRANT_PROTO_I_SBWRE 42
-#define REENTRANT_PROTO_I_SD 43
-#define REENTRANT_PROTO_I_ST 44
-#define REENTRANT_PROTO_I_TISD 45
-#define REENTRANT_PROTO_I_TS 46
-#define REENTRANT_PROTO_I_TSBI 47
-#define REENTRANT_PROTO_I_TSBIR 48
-#define REENTRANT_PROTO_I_TSBWR 49
-#define REENTRANT_PROTO_I_TSR 50
-#define REENTRANT_PROTO_I_UISBWRE 51
-#define REENTRANT_PROTO_S_CBI 52
-#define REENTRANT_PROTO_S_CCSBI 53
-#define REENTRANT_PROTO_S_CIISBIE 54
-#define REENTRANT_PROTO_S_CSBI 55
-#define REENTRANT_PROTO_S_CSBIE 56
-#define REENTRANT_PROTO_S_CWISBIE 57
-#define REENTRANT_PROTO_S_CWISBWIE 58
-#define REENTRANT_PROTO_S_ICSBI 59
-#define REENTRANT_PROTO_S_ISBI 60
-#define REENTRANT_PROTO_S_LISBI 61
-#define REENTRANT_PROTO_S_SBI 62
-#define REENTRANT_PROTO_S_SBIE 63
-#define REENTRANT_PROTO_S_SBW 64
-#define REENTRANT_PROTO_S_TISBI 65
-#define REENTRANT_PROTO_S_TS 66
-#define REENTRANT_PROTO_S_TSBI 67
-#define REENTRANT_PROTO_S_TSBIE 68
-#define REENTRANT_PROTO_S_TWISBIE 69
-#define REENTRANT_PROTO_V_H 70
-#define REENTRANT_PROTO_V_ID 71
-#define REENTRANT_PROTO_V_S 72
+#define REENTRANT_PROTO_B_CCD 4
+#define REENTRANT_PROTO_B_CCS 5
+#define REENTRANT_PROTO_B_IBI 6
+#define REENTRANT_PROTO_B_IBW 7
+#define REENTRANT_PROTO_B_SB 8
+#define REENTRANT_PROTO_B_SBI 9
+#define REENTRANT_PROTO_I_BI 10
+#define REENTRANT_PROTO_I_BW 11
+#define REENTRANT_PROTO_I_CCSBWR 12
+#define REENTRANT_PROTO_I_CCSD 13
+#define REENTRANT_PROTO_I_CII 14
+#define REENTRANT_PROTO_I_CIISD 15
+#define REENTRANT_PROTO_I_CSBI 16
+#define REENTRANT_PROTO_I_CSBIR 17
+#define REENTRANT_PROTO_I_CSBWR 18
+#define REENTRANT_PROTO_I_CSBWRE 19
+#define REENTRANT_PROTO_I_CSD 20
+#define REENTRANT_PROTO_I_CWISBWRE 21
+#define REENTRANT_PROTO_I_CWISD 22
+#define REENTRANT_PROTO_I_H 23
+#define REENTRANT_PROTO_I_IBI 24
+#define REENTRANT_PROTO_I_IBW 25
+#define REENTRANT_PROTO_I_ICBI 26
+#define REENTRANT_PROTO_I_ICSBWR 27
+#define REENTRANT_PROTO_I_ICSD 28
+#define REENTRANT_PROTO_I_ID 29
+#define REENTRANT_PROTO_I_IISD 30
+#define REENTRANT_PROTO_I_ISBWR 31
+#define REENTRANT_PROTO_I_ISD 32
+#define REENTRANT_PROTO_I_LISBI 33
+#define REENTRANT_PROTO_I_LISD 34
+#define REENTRANT_PROTO_I_LS 35
+#define REENTRANT_PROTO_I_S 36
+#define REENTRANT_PROTO_I_SB 37
+#define REENTRANT_PROTO_I_SBI 38
+#define REENTRANT_PROTO_I_SBIE 39
+#define REENTRANT_PROTO_I_SBIH 40
+#define REENTRANT_PROTO_I_SBIR 41
+#define REENTRANT_PROTO_I_SBWR 42
+#define REENTRANT_PROTO_I_SBWRE 43
+#define REENTRANT_PROTO_I_SD 44
+#define REENTRANT_PROTO_I_ST 45
+#define REENTRANT_PROTO_I_TISD 46
+#define REENTRANT_PROTO_I_TS 47
+#define REENTRANT_PROTO_I_TSBI 48
+#define REENTRANT_PROTO_I_TSBIR 49
+#define REENTRANT_PROTO_I_TSBWR 50
+#define REENTRANT_PROTO_I_TSR 51
+#define REENTRANT_PROTO_I_UISBWRE 52
+#define REENTRANT_PROTO_S_CBI 53
+#define REENTRANT_PROTO_S_CCSBI 54
+#define REENTRANT_PROTO_S_CIISBIE 55
+#define REENTRANT_PROTO_S_CSBI 56
+#define REENTRANT_PROTO_S_CSBIE 57
+#define REENTRANT_PROTO_S_CWISBIE 58
+#define REENTRANT_PROTO_S_CWISBWIE 59
+#define REENTRANT_PROTO_S_ICSBI 60
+#define REENTRANT_PROTO_S_ISBI 61
+#define REENTRANT_PROTO_S_LISBI 62
+#define REENTRANT_PROTO_S_SBI 63
+#define REENTRANT_PROTO_S_SBIE 64
+#define REENTRANT_PROTO_S_SBW 65
+#define REENTRANT_PROTO_S_TISBI 66
+#define REENTRANT_PROTO_S_TS 67
+#define REENTRANT_PROTO_S_TSBI 68
+#define REENTRANT_PROTO_S_TSBIE 69
+#define REENTRANT_PROTO_S_TWISBIE 70
+#define REENTRANT_PROTO_V_H 71
+#define REENTRANT_PROTO_V_ID 72
+#define REENTRANT_PROTO_V_S 73
/* Defines for indicating which special features are supported. */
size_t _asctime_size;
#endif /* HAS_ASCTIME_R */
#ifdef HAS_CRYPT_R
+#if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+ CRYPTD* _crypt_data;
+#else
struct crypt_data _crypt_struct;
+#endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTIME_R
char* _ctime_buffer;
# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_struct)
# endif
+# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_data)
+# endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTERMID_R