mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
Merge branch 'release'
Add Jani's fix for notmuch-new
This commit is contained in:
commit
c970de6dc5
5 changed files with 43 additions and 7 deletions
7
NEWS
7
NEWS
|
@ -1,4 +1,9 @@
|
||||||
Notmuch 0.23.3 (UNRELEASED)
|
Notmuch 0.23.3 (2016-11-26)
|
||||||
|
|
||||||
|
Command Line Interface
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Treat disappearing files during notmuch new as non-fatal.
|
||||||
|
|
||||||
Test Suite
|
Test Suite
|
||||||
----------
|
----------
|
||||||
|
|
9
debian/changelog
vendored
9
debian/changelog
vendored
|
@ -1,9 +1,12 @@
|
||||||
notmuch (0.23.3-1) UNRELEASED; urgency=medium
|
notmuch (0.23.3-1) unstable; urgency=medium
|
||||||
|
|
||||||
* Re-enable test suite
|
* Re-enable test suite
|
||||||
* Fix test suite compatibility with gnupg 2.1.16
|
* Fix test suite compatibility with gnupg 2.1.16. Fixes: "FTBFS:
|
||||||
|
Tests failures", thanks to Lucas Nussbaum (Closes: #844915).
|
||||||
|
* Bug fix: "race condition in `notmuch new`?", thanks to Paul Wise
|
||||||
|
(Closes: #843127).
|
||||||
|
|
||||||
-- David Bremner <bremner@debian.org> Thu, 24 Nov 2016 20:29:35 -0400
|
-- David Bremner <bremner@debian.org> Sat, 26 Nov 2016 08:37:39 -0400
|
||||||
|
|
||||||
notmuch (0.23.2-1) unstable; urgency=medium
|
notmuch (0.23.2-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,14 @@ Supported options for **new** include
|
||||||
``--quiet``
|
``--quiet``
|
||||||
Do not print progress or results.
|
Do not print progress or results.
|
||||||
|
|
||||||
|
EXIT STATUS
|
||||||
|
===========
|
||||||
|
|
||||||
|
This command supports the following special exit status code
|
||||||
|
|
||||||
|
``75 (EX_TEMPFAIL)``
|
||||||
|
A temporary failure occured; the user is invited to retry.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
========
|
========
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#define _GNU_SOURCE /* for getline */
|
#define _GNU_SOURCE /* for getline */
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <sysexits.h>
|
||||||
|
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
|
||||||
|
@ -114,6 +115,16 @@ chomp_newline (char *str)
|
||||||
str[strlen(str)-1] = '\0';
|
str[strlen(str)-1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Exit status code indicating temporary failure; user is invited to
|
||||||
|
* retry.
|
||||||
|
*
|
||||||
|
* For example, file(s) in the mail store were removed or renamed
|
||||||
|
* after notmuch new scanned the directories but before indexing the
|
||||||
|
* file(s). If the file was renamed, the indexing might not be
|
||||||
|
* complete, and the user is advised to re-run notmuch new.
|
||||||
|
*/
|
||||||
|
#define NOTMUCH_EXIT_TEMPFAIL EX_TEMPFAIL
|
||||||
|
|
||||||
/* Exit status code indicating the requested format version is too old
|
/* Exit status code indicating the requested format version is too old
|
||||||
* (support for that version has been dropped). CLI code should use
|
* (support for that version has been dropped). CLI code should use
|
||||||
* notmuch_exit_if_unsupported_format rather than directly exiting
|
* notmuch_exit_if_unsupported_format rather than directly exiting
|
||||||
|
|
|
@ -53,6 +53,7 @@ typedef struct {
|
||||||
int total_files;
|
int total_files;
|
||||||
int processed_files;
|
int processed_files;
|
||||||
int added_messages, removed_messages, renamed_messages;
|
int added_messages, removed_messages, renamed_messages;
|
||||||
|
int vanished_files;
|
||||||
struct timeval tv_start;
|
struct timeval tv_start;
|
||||||
|
|
||||||
_filename_list_t *removed_files;
|
_filename_list_t *removed_files;
|
||||||
|
@ -280,11 +281,13 @@ add_file (notmuch_database_t *notmuch, const char *filename,
|
||||||
case NOTMUCH_STATUS_FILE_NOT_EMAIL:
|
case NOTMUCH_STATUS_FILE_NOT_EMAIL:
|
||||||
fprintf (stderr, "Note: Ignoring non-mail file: %s\n", filename);
|
fprintf (stderr, "Note: Ignoring non-mail file: %s\n", filename);
|
||||||
break;
|
break;
|
||||||
/* Fatal issues. Don't process anymore. */
|
|
||||||
case NOTMUCH_STATUS_FILE_ERROR:
|
case NOTMUCH_STATUS_FILE_ERROR:
|
||||||
|
/* Someone renamed/removed the file between scandir and now. */
|
||||||
|
state->vanished_files++;
|
||||||
fprintf (stderr, "Unexpected error with file %s\n", filename);
|
fprintf (stderr, "Unexpected error with file %s\n", filename);
|
||||||
(void) print_status_database ("add_file", notmuch, status);
|
(void) print_status_database ("add_file", notmuch, status);
|
||||||
goto DONE;
|
break;
|
||||||
|
/* Fatal issues. Don't process anymore. */
|
||||||
case NOTMUCH_STATUS_READ_ONLY_DATABASE:
|
case NOTMUCH_STATUS_READ_ONLY_DATABASE:
|
||||||
case NOTMUCH_STATUS_XAPIAN_EXCEPTION:
|
case NOTMUCH_STATUS_XAPIAN_EXCEPTION:
|
||||||
case NOTMUCH_STATUS_OUT_OF_MEMORY:
|
case NOTMUCH_STATUS_OUT_OF_MEMORY:
|
||||||
|
@ -1151,5 +1154,11 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[])
|
||||||
if (!no_hooks && !ret && !interrupted)
|
if (!no_hooks && !ret && !interrupted)
|
||||||
ret = notmuch_run_hook (db_path, "post-new");
|
ret = notmuch_run_hook (db_path, "post-new");
|
||||||
|
|
||||||
return ret || interrupted ? EXIT_FAILURE : EXIT_SUCCESS;
|
if (ret || interrupted)
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
if (add_files_state.vanished_files)
|
||||||
|
return NOTMUCH_EXIT_TEMPFAIL;
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue