FirebirdSQL / php-firebird

Firebird PHP driver
Other
66 stars 15 forks source link

What is LL_MASK for? #20

Open MartinKoeditz opened 3 years ago

MartinKoeditz commented 3 years ago

Maybe someone can help me.

In php_ibase_includes.c I had to change the code since it doesn't work anymore on PHP 8.0 and Windows:

#ifdef PHP_WIN32
// Case switch, because of troubles on Windows and PHP 8.0
#if PHP_VERSION_ID < 80000
   #define LL_MASK "I64"
#else
   #define LL_MASK "ll"
#endif
#define LL_LIT(lit) lit ## I64
typedef void (__stdcall *info_func_t)(char*);
#else
#define LL_MASK "ll"
#define LL_LIT(lit) lit ## ll
typedef void (*info_func_t)(char*);
#endif

What are LL_MASK "I64" and LL_MASK "ll" doing? And where are they defined?

AlexPeshkoff commented 3 years ago

On 5/18/21 10:51 AM, Martin Köditz wrote:

Maybe someone can help me.

In php_ibase_includes.c I had to change the code since it doesn't work anymore on PHP 8.0 and Windows:

|#ifdef PHP_WIN32 // Case switch, because of troubles on Windows and PHP 8.0 #if PHP_VERSION_ID < 80000 #define LL_MASK "I64" #else #define LL_MASK "ll" #endif #define LL_LIT(lit) lit ## I64 typedef void (__stdcall info_func_t)(char); #else #define LL_MASK "ll" #define LL_LIT(lit) lit ## ll typedef void (info_func_t)(char); #endif |

What are |LL_MASK "I64"| and |LL_MASK "ll"| doing?

Help to define (|LL_LIT) and print (||LL_MASK) 64-bit integers.|

And where are they defined?

In the code you citated in email :-)

||

mrotteveel commented 3 years ago

Maybe this helps: https://bugs.php.net/bug.php?id=60052

Maybe @mapopa can tell you more about it.