Re: [PATCH v3] emacs: add compatibility functions for emacs 23
On Tue, Nov 15 2016, Mark Walterswrote: > 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
On Fri, Nov 11 2016, David Bremnerwrote: > 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
On Sat, Nov 05 2016, Jani Nikulawrote: > 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
Jani Nikulawrites: > +/* 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