]> git.madduck.net Git - etc/mutt.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge branch 'master' of ssh://git.madduck.net/srv/git/git.madduck.net/pub/etc/mutt
authormartin f. krafft <madduck@madduck.net>
Sun, 26 Aug 2007 18:29:23 +0000 (20:29 +0200)
committermartin f. krafft <madduck@madduck.net>
Sun, 26 Aug 2007 18:29:23 +0000 (20:29 +0200)
add-tickle-stamp [new file with mode: 0755]
headers
keybindings

diff --git a/add-tickle-stamp b/add-tickle-stamp
new file mode 100755 (executable)
index 0000000..c712f61
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+set -eu
+
+file=/dev/stdin
+if [ -r "${1:-}" ] && [ -w "${1:-}" ]; then
+  file="$1"
+  shift
+fi
+
+date=
+arg="${1:-}"
+args="$*"
+if [ -z "$arg" ]; then
+  read -p 'When should I tickle you about this message? ' args
+  arg="${args%% *}"
+fi
+
+if [ "$arg" = '-d' ] || [ $# -gt 1 ]; then
+  shift
+  date="$args"
+else
+  case "$arg" in
+    *[0-9]w) date="now + ${arg%w} weeks 00:00";;
+    *[0-9]m) date="now + ${arg%m} months 00:00";;
+    *[0-9]h) date="now + ${arg%h} hours";;
+    *[0-9]d) date="now + ${arg%d} days 00:00";;
+    *' '*) date="$args";;
+    *[!0-9]*) 
+      echo "E: invalid argument: $arg" >&2
+      exit 1
+      ;;
+    *) date="now + $arg days 00:00";;
+  esac
+fi
+
+tickle=$(date +'%s (%c)' -d "$date")
+
+TMPFILE="$(tempfile -d /tmp -p tickle)"
+trap "rm -f $TMPFILE" 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15
+
+formail -i "X-Tickle: $tickle" < $file > $TMPFILE
+
+[ -w "$file" ] && mv $TMPFILE $file
+
+rm -f $TMPFILE
+trap - 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15
diff --git a/headers b/headers
index c0e146eac1a05f5c5b0e7795884c43e888c75a5b..892048fef5ff60be8eb21a09847c582907584e79 100644 (file)
--- a/headers
+++ b/headers
@@ -13,6 +13,7 @@ hdr_order x-trained-as x-crm114-autotrain
 hdr_order user-agent x-mailer x-newsreader
 hdr_order x-justme
 hdr_order x-autoreplied
+hdr_order x-tickle
 
 ignore *
 unignore date
@@ -29,5 +30,6 @@ unignore x-spam:
 #unignore user-agent x-mailer x-newsreader
 unignore x-justme
 unignore x-autoreplied
+unignore x-tickle
 
 # vim:ft=muttrc
index 65da4b13794a9645aac875ee4ae0a95616094518..418734b11f7f3f0d006ea2c8e282e14750953861 100644 (file)
@@ -20,7 +20,7 @@ bind pager,index      <backtab>       previous-unread
 
 ##macro index  L       "<list-reply><save-message>=store<enter>"
 macro index,pager      S       "<save-message>=store<enter><sync-mailbox>" "save message to store"
-macro index,pager      E       "<save-message>=tickle/" "save message to tickler"
+macro index,pager      E       ':set my_editor="$editor"<enter>:set editor=/tmp/add-tickle-stamp<enter><edit><toggle-new><save-message>=tickler<enter><sync-mailbox>:set editor="$my_editor"<enter>' "schedule message with tickler"
 
 macro index,pager      \eS     "<change-folder>=store<enter>" "go to store folder"
 
@@ -30,10 +30,10 @@ macro compose       \eR     ":source $my_confdir/muttrc<enter>" "reload muttrc"
 macro index,pager      X       "<save-message>=retrain/spam<enter>" "retrain message as spam"
 macro index,pager      Z       "<save-message>=retrain/ham<enter>" "retrain message as ham"
 
-macro index,pager      \Cb     "<pipe-message>/usr/bin/urlview<enter>" "invoke urlview"
+macro index,pager      \Cb     ':set my_pipe_decode="$pipe_decode"<enter>:set pipe_decode<enter><pipe-message>/usr/bin/urlview<enter>:set pipe_decode="$my_pipe_decode"<enter>' "invoke urlview"
 
 #TODO this is a hack until switch-profile does not readd headers.
-#macro compose e       ":set my_editor='$editor'<enter>:set editor=sensible-editor<enter><edit-headers>:set editor='$my_editor'<enter>" "invoke normal editor to edit message"
-#macro index,pager     e       ":set my_editor='$editor'<enter>:set editor=sensible-editor<enter><edit>:set editor='$my_editor'<enter>" "invoke normal editor to edit message"
+macro compose  e       ':set my_editor="$editor"<enter>:set editor=sensible-editor<enter><edit-headers>:set editor="$my_editor"<enter>' "invoke normal editor to edit message"
+macro index,pager      e       ':set my_editor="$editor"<enter>:set editor=sensible-editor<enter><edit>:set editor="$my_editor"<enter>' "invoke normal editor to edit message"
 
 # vim:sw=12:noet:sts=12:ts=12:ft=muttrc