add php_pq_version_to_string() helper (factorization)
authorRemi Collet <remi@remirepo.net>
Tue, 13 Jun 2023 13:06:39 +0000 (15:06 +0200)
committerRemi Collet <remi@php.net>
Tue, 13 Jun 2023 13:06:39 +0000 (15:06 +0200)
src/php_pq_misc.c
src/php_pq_misc.h
src/php_pq_module.c
src/php_pqconn.c

index 9acef342576603ac693610a7224da8d66b6ac0bd..4d251d2b5415c1b0846a2a1dd89969a296ee416b 100644 (file)
 #undef PHP_PQ_TYPE
 #include "php_pq_type.h"
 
+/* convert version to string */
+extern void php_pq_version_to_string(int version, char *buffer, int len) {
+       if (version < 100000) {
+               slprintf(buffer, len, "%d.%d.%d", version/10000, version/100%100, version%100);
+       } else { /* since version 10 */
+               slprintf(buffer, len, "%d.%d", version/10000, version%100);
+       }
+}
 
 /* clear result object associated with a result handle */
 void php_pqres_clear(PGresult *r) {
index 34ab6c1bf9c285f5a75c18883abb3cc07ca46787..d86beebc2ae251459e4ea2b54d4a1da21097ec7f 100644 (file)
@@ -33,6 +33,8 @@ extern PGresult *php_pq_exec_params(PGconn *conn, const char *command, int nPara
 extern PGresult *php_pq_prepare(PGconn *conn, const char *stmtName, const char *query, int nParams, const Oid *paramTypes);
 extern PGresult *php_pq_exec_prepared(PGconn *conn, const char *stmtName, int nParams, const char *const * paramValues, const int *paramLengths, const int *paramFormats, int resultFormat);
 
+/* convert version to string */
+extern void php_pq_version_to_string(int version, char *buffer, int len);
 
 /* trim LF from EOL */
 extern char *php_pq_rtrim(char *e);
index 3d6dacb1e7d6cd7d2d83a28a3034a4a9991603d5..7385b0b378f234f861da3c0b8cb161432c6b11c6 100644 (file)
@@ -105,11 +105,7 @@ static PHP_MINFO_FUNCTION(pq)
        php_info_print_table_header(3, "Used Library", "Compiled", "Linked");
 #ifdef HAVE_PQLIBVERSION
        libpq_v = PQlibVersion();
-       if (libpq_v < 100000) {
-               slprintf(libpq_version, sizeof(libpq_version), "%d.%d.%d", libpq_v/10000, libpq_v/100%100, libpq_v%100);
-       } else {
-               slprintf(libpq_version, sizeof(libpq_version), "%d.%d", libpq_v/10000, libpq_v%100);
-       }
+       php_pq_version_to_string(libpq_v, libpq_version, sizeof(libpq_version));
 #endif
        php_info_print_table_row(3, "libpq", PHP_PQ_LIBVERSION, libpq_version);
        php_info_print_table_end();
index 32cc5264effd3e76264428d582ae7d5f25299415..0e9e32fc34f8bbe49f60b1e825789c3254e70085 100644 (file)
@@ -495,13 +495,8 @@ static void php_pqconn_object_write_def_auto_conv(void *o, zval *value)
 static void php_pqconn_object_read_lib_version(void *o, zval *return_value)
 {
        char ver[16];
-       int v = PQlibVersion();
 
-       if (v < 100000) {
-               slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100);
-       } else {
-               slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100);
-       }
+       php_pq_version_to_string(PQlibVersion(), ver, sizeof(ver));
        RETVAL_STRING(ver);
 }
 #endif
@@ -518,13 +513,8 @@ static void php_pqconn_object_read_server_version(void *o, zval *return_value)
 {
        php_pqconn_object_t *obj = o;
        char ver[16];
-       int v = PQserverVersion(obj->intern->conn);
 
-       if (v < 100000) {
-               slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100);
-       } else {
-               slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100);
-       }
+       php_pq_version_to_string(PQserverVersion(obj->intern->conn), ver, sizeof(ver));
        RETVAL_STRING(ver);
 }
 #endif