emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/pq 69d6fba048 06/63: Make argument to pq:connectdb opti


From: ELPA Syncer
Subject: [elpa] externals/pq 69d6fba048 06/63: Make argument to pq:connectdb optional.
Date: Mon, 14 Feb 2022 23:24:18 -0500 (EST)

branch: externals/pq
commit 69d6fba04870c3c88d74575dc1b299f383acd77b
Author: Andreas Seltenreich <andreas+git@ansel.ydns.eu>
Commit: Andreas Seltenreich <andreas+git@ansel.ydns.eu>

    Make argument to pq:connectdb optional.
---
 pq.c    | 11 +++++++----
 test.el |  2 ++
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/pq.c b/pq.c
index 9ecda93aa3..f21a27a459 100644
--- a/pq.c
+++ b/pq.c
@@ -29,6 +29,7 @@ bool result_ok(emacs_env *env, PGresult *res)
 {
   int status = PQresultStatus(res);
   switch (status) {
+  case PGRES_NONFATAL_ERROR:
   case PGRES_TUPLES_OK:
   case PGRES_SINGLE_TUPLE:
   case PGRES_COMMAND_OK:
@@ -59,7 +60,7 @@ static char *my_string_to_c(emacs_env *env, emacs_value 
string)
 static emacs_value
 Fpq_connectdb (emacs_env *env, int nargs, emacs_value args[], void *data)
 {
-  char *conninfo = my_string_to_c(env, args[0]);
+  char *conninfo = nargs ? my_string_to_c(env, args[0]) : "";
   PGconn *conn = PQconnectdb(conninfo);
 
   char *errmsg = PQerrorMessage(conn);
@@ -67,12 +68,14 @@ Fpq_connectdb (emacs_env *env, int nargs, emacs_value 
args[], void *data)
     emacs_value errstring = env->make_string(env, errmsg, strlen(errmsg));
 
     env->non_local_exit_signal(env, Qpq_error, errstring);
-    free(conninfo);
+    if (nargs)
+      free(conninfo);
     PQfinish(conn);
     return Qnil;
   }
   fprintf(stderr, "PQconnectdb(%s) -> %p\n", conninfo, conn);
-  free(conninfo);
+  if (nargs)
+    free(conninfo);
 
   return env->make_user_ptr(env, pq_finalize_pointer, conn);
 }
@@ -204,7 +207,7 @@ emacs_module_init (struct emacs_runtime *init_ert)
   env = ert->get_environment(ert);
 
   emacs_value fun1 = env->make_function (env,
-              1,            /* min. number of arguments */
+              0,            /* min. number of arguments */
               1,            /* max. number of arguments */
               Fpq_connectdb,  /* actual function pointer */
               "Connect to PostgreSQL database described by CONNSTR.",        
/* docstring */
diff --git a/test.el b/test.el
index 8dd6d0ec3c..80fc0dab58 100644
--- a/test.el
+++ b/test.el
@@ -14,5 +14,7 @@
 ;; "'mo''oo\"oo'"
 (pq:escapeIdentifier con "moo'oo\"oo")
 ;; "\"moo'oo\"\"oo\""
+(setq con (pq:connectdb))
+(pq:query con "select version()")
 (setq con nil)
 (garbage-collect)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]