Re: [PATCH v3] emacs: add compatibility functions for emacs 23

2016-11-16 Thread Tomi Ollila
On Tue, Nov 15 2016, Mark Walters  wrote:

> Some of the recent changes to the emacs code have used functions
> introduced in emacs 24. The functions used are read-char-choice and
> setq-local. This changeset adds a file notmuch-compat.el which
> contains compatibility functions so that it should work on emacs
> 23.
>
> Note, since these functions are taken almost unchanged from the emacs
> source they are copyright the Free Software Foundation, and the header
> in the file reflects that.
> ---
>
> Hi
>
> This is another version of this patch. The previous version is at
> id:1477736487-31319-1-git-send-email-markwalters1...@gmail.com
>
> The main change is to split out the compatibility functions into a
> separate file.
>
> I haven't moved the defadvice code mentioned in
> id:87mvh4rigu@tethera.net into this file as that confuses the
> copyright situation (I think that it is all Tomi's code)

LGTM.

Tomi


>
> Best wishes
>
> Mark
>
>
>
>
> emacs/Makefile.local |  1 +
>  emacs/notmuch-address.el |  4 +--
>  emacs/notmuch-company.el |  3 +-
>  emacs/notmuch-compat.el  | 73 
> 
>  emacs/notmuch-lib.el |  1 +
>  emacs/notmuch-maildir-fcc.el |  4 +--
>  6 files changed, 81 insertions(+), 5 deletions(-)
>  create mode 100644 emacs/notmuch-compat.el
>
> diff --git a/emacs/Makefile.local b/emacs/Makefile.local
> index 6896ff9..442a5e4 100644
> --- a/emacs/Makefile.local
> +++ b/emacs/Makefile.local
> @@ -3,6 +3,7 @@
>  dir := emacs
>  emacs_sources := \
>   $(dir)/notmuch-lib.el \
> + $(dir)/notmuch-compat.el \
>   $(dir)/notmuch-parser.el \
>   $(dir)/notmuch.el \
>   $(dir)/notmuch-query.el \
> diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el
> index 5b2beef..b3c56cf 100644
> --- a/emacs/notmuch-address.el
> +++ b/emacs/notmuch-address.el
> @@ -147,11 +147,11 @@ toggles the setting in this buffer."
>(interactive)
>(if (local-variable-p 'notmuch-address-command)
>(kill-local-variable 'notmuch-address-command)
> -(setq-local notmuch-address-command 'internal))
> +(notmuch-setq-local notmuch-address-command 'internal))
>(if (boundp 'company-idle-delay)
>(if (local-variable-p 'company-idle-delay)
> (kill-local-variable 'company-idle-delay)
> - (setq-local company-idle-delay nil
> + (notmuch-setq-local company-idle-delay nil
>  
>  (defun notmuch-address-matching (substring)
>"Returns a list of completion candidates matching SUBSTRING.
> diff --git a/emacs/notmuch-company.el b/emacs/notmuch-company.el
> index b0f9782..ebe2c08 100644
> --- a/emacs/notmuch-company.el
> +++ b/emacs/notmuch-company.el
> @@ -28,6 +28,7 @@
>  ;;; Code:
>  
>  (eval-when-compile (require 'cl))
> +(require 'notmuch-lib)
>  
>  (defvar notmuch-company-last-prefix nil)
>  (make-variable-buffer-local 'notmuch-company-last-prefix)
> @@ -53,7 +54,7 @@
>;; internal completion) can still be accessed via standard company
>;; functions, e.g., company-complete.
>(unless (eq notmuch-address-command 'internal)
> -(setq-local company-idle-delay nil)))
> +(notmuch-setq-local company-idle-delay nil)))
>  
>  ;;;###autoload
>  (defun notmuch-company (command  arg  _ignore)
> diff --git a/emacs/notmuch-compat.el b/emacs/notmuch-compat.el
> new file mode 100644
> index 000..c3d827a
> --- /dev/null
> +++ b/emacs/notmuch-compat.el
> @@ -0,0 +1,73 @@
> +;; Compatibility functions for emacs 23 and 24 pre 24.4
> +
> +;; The functions in this file are copied from eamcs 24.4 and are
> +;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2014 Free Software
> +;; Foundation, Inc.
> +
> +(if (fboundp 'setq-local)
> +(defalias 'notmuch-setq-local 'setq-local)
> +  (defmacro notmuch-setq-local (var val)
> +"Set variable VAR to value VAL in current buffer.
> +
> +Backport of setq-local for emacs without setq-local (pre 24.3)."
> +`(set (make-local-variable ',var) ,val)))
> +
> +(if (fboundp 'read-char-choice)
> +(defalias 'notmuch-read-char-choice 'read-char-choice)
> +  (defun notmuch-read-char-choice (prompt chars  
> inhibit-keyboard-quit)
> +  "Read and return one of CHARS, prompting for PROMPT.
> +Any input that is not one of CHARS is ignored.
> +
> +If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
> +keyboard-quit events while waiting for a valid input.
> +
> +This is an exact copy of this function from emacs 24 for use on
> +emacs 23, except with the one emacs 24 only function it calls
> +inlined."
> +  (unless (consp chars)
> +(error "Called `read-char-choice' without valid char choices"))
> +  (let (char done show-help (helpbuf " *Char Help*"))
> +(let ((cursor-in-echo-area t)
> +  (executing-kbd-macro executing-kbd-macro)
> +   (esc-flag nil))
> +  (save-window-excursion   ; in case we call help-form-show
> + (while (not done)
> +   (unless (get-text-property 0 'face prompt)

Re: [PATCH 1/3] emacs: generate notmuch-pkg.el

2016-11-16 Thread Tomi Ollila
On Fri, Nov 11 2016, David Bremner  wrote:

> This file contains metadata for the built in (as of emacs 24) packaging
> system.

Series LGTM.

Tomi


> ---
>  Makefile.local| 3 +++
>  emacs/.gitignore  | 1 +
>  emacs/Makefile.local  | 8 +++-
>  emacs/notmuch-pkg.el.tmpl | 6 ++
>  4 files changed, 17 insertions(+), 1 deletion(-)
>  create mode 100644 emacs/notmuch-pkg.el.tmpl
>
> diff --git a/Makefile.local b/Makefile.local
> index d1b0585..0a122ab 100644
> --- a/Makefile.local
> +++ b/Makefile.local
> @@ -19,9 +19,12 @@ DATE:=$(shell date +%F)
>  endif
>  
>  VERSION:=$(shell cat ${srcdir}/version)
> +ELPA_VERSION:=$(subst ~,_,$(VERSION))
>  ifeq ($(filter release release-message pre-release 
> update-versions,$(MAKECMDGOALS)),)
>  ifeq ($(IS_GIT),yes)
>  VERSION:=$(shell git --git-dir=${srcdir}/.git describe --abbrev=7 --match 
> '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/)
> +# drop the ~g$sha1 part
> +ELPA_VERSION:=$(word 1,$(subst ~, ,$(VERSION)))
>  # Write the file 'version.stamp' in case its contents differ from $(VERSION)
>  FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || 
> vs=; echo $$vs)
>  ifneq ($(FILE_VERSION),$(VERSION))
> diff --git a/emacs/.gitignore b/emacs/.gitignore
> index 9fa1c44..8e15eed 100644
> --- a/emacs/.gitignore
> +++ b/emacs/.gitignore
> @@ -1,3 +1,4 @@
>  .eldeps*
>  *.elc
>  notmuch-version.el
> +notmuch-pkg.el
> diff --git a/emacs/Makefile.local b/emacs/Makefile.local
> index 2d6aedb..e4f7a04 100644
> --- a/emacs/Makefile.local
> +++ b/emacs/Makefile.local
> @@ -27,6 +27,12 @@ $(dir)/notmuch-version.el: 
> $(srcdir)/$(dir)/notmuch-version.el.tmpl
>   @sed -e 's/%AG%/Generated file (from $(-e 's/%VERSION%/"$(VERSION)"/' $< > $@
>  
> +$(dir)/notmuch-pkg.el: $(srcdir)/$(dir)/notmuch-pkg.el.tmpl
> + @sed -e 's/%AG%/Generated file (from $( +  -e 's/%VERSION%/"$(ELPA_VERSION)"/' $< > $@
> +
> +all: $(dir)/notmuch-pkg.el
> +install-emacs: $(dir)/notmuch-pkg.el
>  
>  emacs_images := \
>   $(srcdir)/$(dir)/notmuch-logo.png
> @@ -84,4 +90,4 @@ endif
>   mkdir -p "$(DESTDIR)$(emacsetcdir)"
>   install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)"
>  
> -CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el
> +CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el 
> $(dir)/notmuch-pkg.el
> diff --git a/emacs/notmuch-pkg.el.tmpl b/emacs/notmuch-pkg.el.tmpl
> new file mode 100644
> index 000..de97baa
> --- /dev/null
> +++ b/emacs/notmuch-pkg.el.tmpl
> @@ -0,0 +1,6 @@
> +;; %AG%
> +(define-package
> +  "notmuch"
> +  %VERSION%
> +  "Emacs based front-end (MUA) for notmuch"
> +  nil)
> -- 
> 2.10.2
>
> ___
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH 0/9] doc: config and build improvements

2016-11-16 Thread Tomi Ollila
On Sat, Nov 05 2016, Jani Nikula  wrote:

> Here's a bunch of fixes to the documentation config and build.
>
> BR,
> Jani.

This series looks good to me.

Tomi


>
>
> Jani Nikula (9):
>   doc/conf.py: add notmuch-emacs-mua to texinfo documents
>   doc/conf.py: generate texinfo_documents list from man_pages list
>   doc/conf.py: abstract notmuch authors
>   doc/conf.py: reindent, whitespace clean man page, texinfo lists
>   doc/conf.py: include command name in texinfo document title
>   doc: fix references in notmuch-emacs.rst
>   build: do not touch roff files after sphinx-build
>   build: generate man page list from source files, not conf.py
>   build: only install known man pages
>
>  doc/.gitignore|   1 -
>  doc/Makefile.local|  33 +-
>  doc/conf.py   | 165 
> --
>  doc/mkdocdeps.py  |  18 --
>  doc/notmuch-emacs.rst |   4 +-
>  5 files changed, 87 insertions(+), 134 deletions(-)
>  delete mode 100644 doc/mkdocdeps.py
>
> -- 
> 2.1.4
>
> ___
> notmuch mailing list
> notmuch@notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] cli: consider files vanishing during notmuch new non-fatal

2016-11-16 Thread David Bremner
Jani Nikula  writes:

> +/* Exit status code indicating that 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_VANISHED_FILES 10
> +

What do you think about defining something like NOTMUCH_EXIT_TEMPFAIL 75
(to match EX_TEMPFAIL) and using that?  There is also some stalled patch
around for insert to use EX_TEMPFAIL (although in that case part of the
reason it has stalled is I'm not convinced the error is temporary).

I think such an exit code would also make sense for locking failures;
but that is a different discussion.

Other than that the patch looks like an incremental improvement
___
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch