The original Macro implementation involved a call with parameter err but the function implementation passed the parameter function. Now, err is set within the calling frame.
From v3.8 #define RETURN_FUNCTION_ERROR(err) \ { \ FdOrFp retval; \if (function == FOPEN || function == FREOPEN || \ function == FOPEN64 || function == FREOPEN64) \
retval.fp = NULL; \else /* if (function == OPEN || function == OPEN64)*/ \
retval.fd = -1; \ errno = err; \return retval; /* the caller will know which member of the union to access */ \
} v3.9-2 FdOrFp return_function_error(int function) { \ FdOrFp retval;if (function == FOPEN || function == FREOPEN || function == FOPEN64 || function == FREOPEN64)
retval.fp = NULL; else /* if (function == OPEN || function == OPEN64)*/ retval.fd = -1;return retval; /* the caller will know which member of the union to access */
} -- Peter Hyman
Attachment:
libtrash_3.9.0-2_amd64.deb
Description: application/vnd.debian.binary-package
Attachment:
v3.9.0-2.diff.gz
Description: application/gzip