This is not supposed to change any functionality from an end user
point of view. Note that it will eliminate some output to stderr. The
query debugging output is left as is; it doesn't really fit with the
current primitive logging model. The remaining "bad" fprintf will need
an internal API change.
---
 lib/database.cc  | 34 +++++++++++++++++-----------------
 lib/directory.cc |  4 ++--
 lib/index.cc     | 11 +++++++----
 lib/message.cc   |  6 +++---
 lib/query.cc     |  8 ++++----
 5 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/lib/database.cc b/lib/database.cc
index 9af1a47..19f5f0e 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -493,7 +493,7 @@ notmuch_database_find_message (notmuch_database_t *notmuch,

        return NOTMUCH_STATUS_SUCCESS;
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred finding message: %s.\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred finding 
message: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        *message_ret = NULL;
@@ -725,7 +725,7 @@ notmuch_status_t
 _notmuch_database_ensure_writable (notmuch_database_t *notmuch)
 {
     if (notmuch->mode == NOTMUCH_DATABASE_MODE_READ_ONLY) {
-       fprintf (stderr, "Cannot write to a read-only database.\n");
+       _notmuch_database_log (notmuch, "Cannot write to a read-only 
database.\n");
        return NOTMUCH_STATUS_READ_ONLY_DATABASE;
     }

@@ -1010,7 +1010,7 @@ notmuch_database_close (notmuch_database_t *notmuch)
        } catch (const Xapian::Error &error) {
            status = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
            if (! notmuch->exception_reported) {
-               fprintf (stderr, "Error: A Xapian exception occurred closing 
database: %s\n",
+               _notmuch_database_log (notmuch, "Error: A Xapian exception 
occurred closing database: %s\n",
                         error.get_msg().c_str());
            }
        }
@@ -1142,12 +1142,12 @@ notmuch_database_compact (const char *path,
     }

     if (stat (backup_path, &statbuf) != -1) {
-       fprintf (stderr, "Path already exists: %s\n", backup_path);
+       _notmuch_database_log (notmuch, "Path already exists: %s\n", 
backup_path);
        ret = NOTMUCH_STATUS_FILE_ERROR;
        goto DONE;
     }
     if (errno != ENOENT) {
-       fprintf (stderr, "Unknown error while stat()ing path: %s\n",
+       _notmuch_database_log (notmuch, "Unknown error while stat()ing path: 
%s\n",
                 strerror (errno));
        ret = NOTMUCH_STATUS_FILE_ERROR;
        goto DONE;
@@ -1167,20 +1167,20 @@ notmuch_database_compact (const char *path,
        compactor.set_destdir (compact_xapian_path);
        compactor.compact ();
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "Error while compacting: %s\n", 
error.get_msg().c_str());
+       _notmuch_database_log (notmuch, "Error while compacting: %s\n", 
error.get_msg().c_str());
        ret = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
        goto DONE;
     }

     if (rename (xapian_path, backup_path)) {
-       fprintf (stderr, "Error moving %s to %s: %s\n",
+       _notmuch_database_log (notmuch, "Error moving %s to %s: %s\n",
                 xapian_path, backup_path, strerror (errno));
        ret = NOTMUCH_STATUS_FILE_ERROR;
        goto DONE;
     }

     if (rename (compact_xapian_path, xapian_path)) {
-       fprintf (stderr, "Error moving %s to %s: %s\n",
+       _notmuch_database_log (notmuch, "Error moving %s to %s: %s\n",
                 compact_xapian_path, xapian_path, strerror (errno));
        ret = NOTMUCH_STATUS_FILE_ERROR;
        goto DONE;
@@ -1188,7 +1188,7 @@ notmuch_database_compact (const char *path,

     if (! keep_backup) {
        if (rmtree (backup_path)) {
-           fprintf (stderr, "Error removing old database %s: %s\n",
+           _notmuch_database_log (notmuch, "Error removing old database %s: 
%s\n",
                     backup_path, strerror (errno));
            ret = NOTMUCH_STATUS_FILE_ERROR;
            goto DONE;
@@ -1217,7 +1217,7 @@ notmuch_database_compact (unused (const char *path),
                          unused (notmuch_compact_status_cb_t status_cb),
                          unused (void *closure))
 {
-    fprintf (stderr, "notmuch was compiled against a xapian version lacking 
compaction support.\n");
+    _notmuch_database_log (notmuch, "notmuch was compiled against a xapian 
version lacking compaction support.\n");
     return NOTMUCH_STATUS_UNSUPPORTED_OPERATION;
 }
 #endif
@@ -1495,7 +1495,7 @@ notmuch_database_upgrade (notmuch_database_t *notmuch,
            }

            if (private_status) {
-               fprintf (stderr,
+               _notmuch_database_log (notmuch,
                         "Upgrade failed while creating ghost messages.\n");
                status = COERCE_STATUS (private_status, "Unexpected status from 
_notmuch_message_initialize_ghost");
                goto DONE;
@@ -1545,7 +1545,7 @@ notmuch_database_begin_atomic (notmuch_database_t 
*notmuch)
     try {
        (static_cast <Xapian::WritableDatabase *> 
(notmuch->xapian_db))->begin_transaction (false);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred beginning transaction: 
%s.\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred beginning 
transaction: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        return NOTMUCH_STATUS_XAPIAN_EXCEPTION;
@@ -1579,7 +1579,7 @@ notmuch_database_end_atomic (notmuch_database_t *notmuch)
        if (thresh && atoi (thresh) == 1)
            db->flush ();
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred committing transaction: 
%s.\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred committing 
transaction: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        return NOTMUCH_STATUS_XAPIAN_EXCEPTION;
@@ -1825,7 +1825,7 @@ notmuch_database_get_directory (notmuch_database_t 
*notmuch,
        *directory = _notmuch_directory_create (notmuch, path,
                                                NOTMUCH_FIND_LOOKUP, &status);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred getting directory: %s.\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred getting 
directory: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        status = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
@@ -2407,7 +2407,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch,

        _notmuch_message_sync (message);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred adding message: %s.\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred adding 
message: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        ret = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
@@ -2499,7 +2499,7 @@ notmuch_database_find_message_by_filename 
(notmuch_database_t *notmuch,
                status = NOTMUCH_STATUS_OUT_OF_MEMORY;
        }
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "Error: A Xapian exception occurred finding message by 
filename: %s\n",
+       _notmuch_database_log (notmuch, "Error: A Xapian exception occurred 
finding message by filename: %s\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        status = NOTMUCH_STATUS_XAPIAN_EXCEPTION;
@@ -2552,7 +2552,7 @@ notmuch_database_get_all_tags (notmuch_database_t *db)
        _notmuch_string_list_sort (tags);
        return _notmuch_tags_create (db, tags);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred getting tags: %s.\n",
+       _notmuch_database_log (db, "A Xapian exception occurred getting tags: 
%s.\n",
                 error.get_msg().c_str());
        db->exception_reported = TRUE;
        return NULL;
diff --git a/lib/directory.cc b/lib/directory.cc
index 8daaec8..b836ea2 100644
--- a/lib/directory.cc
+++ b/lib/directory.cc
@@ -186,7 +186,7 @@ _notmuch_directory_create (notmuch_database_t *notmuch,
        directory->mtime = Xapian::sortable_unserialise (
            directory->doc.get_value (NOTMUCH_VALUE_TIMESTAMP));
     } catch (const Xapian::Error &error) {
-       fprintf (stderr,
+       _notmuch_database_log (notmuch,
                 "A Xapian exception occurred creating a directory: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
@@ -228,7 +228,7 @@ notmuch_directory_set_mtime (notmuch_directory_t *directory,

        db->replace_document (directory->document_id, directory->doc);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr,
+       _notmuch_database_log (notmuch,
                 "A Xapian exception occurred setting directory mtime: %s.\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
diff --git a/lib/index.cc b/lib/index.cc
index 1a2e63d..9493549 100644
--- a/lib/index.cc
+++ b/lib/index.cc
@@ -314,7 +314,8 @@ _index_mime_part (notmuch_message_t *message,
     const char *charset;

     if (! part) {
-       fprintf (stderr, "Warning: Not indexing empty mime part.\n");
+       _notmuch_database_log (_notmuch_message_database (message),
+                             "Warning: Not indexing empty mime part.\n");
        return;
     }

@@ -334,7 +335,8 @@ _index_mime_part (notmuch_message_t *message,
                if (i == 1)
                    continue;
                if (i > 1)
-                   fprintf (stderr, "Warning: Unexpected extra parts of 
multipart/signed. Indexing anyway.\n");
+                   _notmuch_database_log (_notmuch_message_database (message),
+                                         "Warning: Unexpected extra parts of 
multipart/signed. Indexing anyway.\n");
            }
            if (GMIME_IS_MULTIPART_ENCRYPTED (multipart)) {
                /* Don't index encrypted parts. */
@@ -357,8 +359,9 @@ _index_mime_part (notmuch_message_t *message,
     }

     if (! (GMIME_IS_PART (part))) {
-       fprintf (stderr, "Warning: Not indexing unknown mime part: %s.\n",
-                g_type_name (G_OBJECT_TYPE (part)));
+       _notmuch_database_log (_notmuch_message_database (message),
+                             "Warning: Not indexing unknown mime part: %s.\n",
+                             g_type_name (G_OBJECT_TYPE (part)));
        return;
     }

diff --git a/lib/message.cc b/lib/message.cc
index 43cc078..541eabc 100644
--- a/lib/message.cc
+++ b/lib/message.cc
@@ -252,7 +252,7 @@ _notmuch_message_create_for_message_id (notmuch_database_t 
*notmuch,

        doc_id = _notmuch_database_generate_doc_id (notmuch);
     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred creating message: %s\n",
+       _notmuch_database_log(_notmuch_message_database (message), "A Xapian 
exception occurred creating message: %s\n",
                 error.get_msg().c_str());
        notmuch->exception_reported = TRUE;
        *status_ret = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION;
@@ -467,7 +467,7 @@ notmuch_message_get_header (notmuch_message_t *message, 
const char *header)
                return talloc_strdup (message, value.c_str ());

        } catch (Xapian::Error &error) {
-           fprintf (stderr, "A Xapian exception occurred when reading header: 
%s\n",
+           _notmuch_database_log(_notmuch_message_database (message), "A 
Xapian exception occurred when reading header: %s\n",
                     error.get_msg().c_str());
            message->notmuch->exception_reported = TRUE;
            return NULL;
@@ -920,7 +920,7 @@ notmuch_message_get_date (notmuch_message_t *message)
     try {
        value = message->doc.get_value (NOTMUCH_VALUE_TIMESTAMP);
     } catch (Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred when reading date: %s\n",
+       _notmuch_database_log(_notmuch_message_database (message), "A Xapian 
exception occurred when reading date: %s\n",
                 error.get_msg().c_str());
        message->notmuch->exception_reported = TRUE;
        return 0;
diff --git a/lib/query.cc b/lib/query.cc
index 60ff8bd..9ed420c 100644
--- a/lib/query.cc
+++ b/lib/query.cc
@@ -282,9 +282,9 @@ notmuch_query_search_messages (notmuch_query_t *query)
        return &messages->base;

     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred performing query: %s\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred performing 
query: %s\n",
                 error.get_msg().c_str());
-       fprintf (stderr, "Query string was: %s\n", query->query_string);
+       _notmuch_database_log (notmuch, "Query string was: %s\n", 
query->query_string);
        notmuch->exception_reported = TRUE;
        talloc_free (messages);
        return NULL;
@@ -562,9 +562,9 @@ notmuch_query_count_messages (notmuch_query_t *query)
        count = mset.get_matches_estimated();

     } catch (const Xapian::Error &error) {
-       fprintf (stderr, "A Xapian exception occurred: %s\n",
+       _notmuch_database_log (notmuch, "A Xapian exception occurred: %s\n",
                 error.get_msg().c_str());
-       fprintf (stderr, "Query string was: %s\n", query->query_string);
+       _notmuch_database_log (notmuch, "Query string was: %s\n", 
query->query_string);
     }

     return count;
-- 
2.1.3

Reply via email to