]> git.eshelyaron.com Git - emacs.git/commitdiff
Make sqlite.c build with SQlite in Fedora 9
authorPo Lu <luangruo@yahoo.com>
Sat, 5 Nov 2022 11:43:12 +0000 (19:43 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 5 Nov 2022 11:43:30 +0000 (19:43 +0800)
* src/sqlite.c (sqlite_prepare_errdata): Use sqlite3_errmsg
instead of sqlite3_errstr.

src/sqlite.c

index 08bf696b8ca1b2ba1006db57da5a6c9ae38397e2..906d0640003a8c0587ced8d06ab82f6aa7fa2549 100644 (file)
@@ -428,11 +428,23 @@ row_to_value (sqlite3_stmt *stmt)
 static Lisp_Object
 sqlite_prepare_errdata (int code, sqlite3 *sdb)
 {
-  Lisp_Object errstr = build_string (sqlite3_errstr (code));
-  Lisp_Object errcode = make_fixnum (code);
+  Lisp_Object errstr, errcode, ext_errcode;
+  const char *errmsg;
+
+  /* The internet says this is identical to sqlite3_errstr (code),
+     which is too new to exist on Fedora 9.  */
+  errmsg = sqlite3_errmsg (sdb);
+  errstr = errmsg ? build_string (errmsg) : Qnil;
+  errcode = make_fixnum (code);
+
   /* More details about what went wrong.  */
-  Lisp_Object ext_errcode = make_fixnum (sqlite3_extended_errcode (sdb));
-  const char *errmsg = sqlite3_errmsg (sdb);
+#if SQLITE_VERSION_NUMBER >= 3006005
+  ext_errcode = make_fixnum (sqlite3_extended_errcode (sdb));
+#else
+  /* What value to use here?  */
+  ext_errcode = make_fixnum (0);
+#endif
+
   return list4 (errstr, errmsg ? build_string (errmsg) : Qnil,
                errcode, ext_errcode);
 }