X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1e0b1d40a6285c532b722f4584fa7ddde220deff..3dd25c63bd45b1b008f30ea021569b7215b84f29:/docs/contrib/replaliases diff --git a/docs/contrib/replaliases b/docs/contrib/replaliases index 6848dc23..077965c1 100644 --- a/docs/contrib/replaliases +++ b/docs/contrib/replaliases @@ -1,7 +1,13 @@ #### replaliases #### #### convenience functions for various repl(1) commands -#### They're functions instead of aliases for portability. +#### +#### They're functions instead of aliases for portability. This file +#### is intended to be sourced from a Bourne-compatible shell, e.g., +#### source `mhparam docdir`/contrib/replaliases +#### to declare the functions. +#### +#### Author: David Levine #### If using par (see mhn.defaults), it helps to have its PARINIT #### environment variable set. If you really want it to be null, @@ -13,6 +19,7 @@ if [ -z "$PARINIT" ]; then export PARINIT fi + #### Reply, including text/html (converted to text/plain) and #### text/plain parts. #### @@ -26,12 +33,12 @@ fi rt() { if [ "$1" = -h ]; then shift - repl -filter mhl.replywithoutbody -convertargs text/plain '' "$@" + \repl -filter mhl.replywithoutbody -convertargs text/plain '' "$@" elif [ "$1" = -p ]; then shift - repl -filter mhl.replywithoutbody -convertargs text/html '' "$@" + \repl -filter mhl.replywithoutbody -convertargs text/html '' "$@" else - repl -filter mhl.replywithoutbody \ + \repl -filter mhl.replywithoutbody \ -convertargs text/html '' -convertargs text/plain '' "$@" fi } @@ -51,27 +58,78 @@ rtm() { } +#### Internal function for use by calendar response functions below. +#### Pulls "-a address" out of command line arguments. +mhical_attendee() { + mhical_prev= + mhical_attendee= + for arg in "$@"; do + test "$mhical_prev" = -a && mhical_attendee="$arg" + mhical_prev="$arg" + done + unset arg + unset mhical_prev + echo "$mhical_attendee" +} + + #### accept a calendar request +#### usage: calaccept [-a address] [repl switches] +#### -a specifies attendee, see mhical(1) +#### Other arguments passed to repl(1). calaccept() { - repl -noformat -editor mhbuild \ - -convertargs text/calendar '-reply accept -contenttype' "$@" + if [ "$1" = -a ]; then + attendee=' -attendee '`mhical_attendee "$@"` + shift; shift + else + attendee= + fi + \repl -noformat -editor mhbuild \ + -convertargs text/calendar "-reply accept -contenttype${attendee}" \ + "$@" + unset attendee } + #### decline a calendar request +#### usage: caldecline [-a address] [repl switches] +#### -a specifies attendee, see mhical(1) +#### Other arguments passed to repl(1). caldecline() { - repl -noformat -editor mhbuild \ - -convertargs text/calendar '-reply decline -contenttype' "$@" + if [ "$1" = -a ]; then + attendee=' -attendee '`mhical_attendee "$@"` + shift; shift + else + attendee= + fi + \repl -noformat -editor mhbuild \ + -convertargs text/calendar "-reply decline -contenttype${attendee}" \ + "$@" + unset attendee } + #### reply as tentative to a calendar request +#### usage: caltentative [-a address] [repl switches] +#### -a specifies attendee, see mhical(1) +#### Other arguments passed to repl(1). caltentative() { - repl -noformat -editor mhbuild \ - -convertargs text/calendar '-reply tentative -contenttype' "$@" + if [ "$1" = -a ]; then + attendee=' -attendee '`mhical_attendee "$@"` + shift; shift + else + attendee= + fi + \repl -noformat -editor mhbuild \ + -convertargs text/calendar "-reply tentative -contenttype${attendee}" \ + "$@" + unset attendee } + #### cancel a calendar request calcancel() { - repl -noformat -editor mhbuild \ + \repl -noformat -editor mhbuild \ -convertargs text/calendar '-cancel -contenttype' "$@" }