jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 932cefafefbd34efcb4e73fb8cac7c58dbc26111
parent f7cdd74b7e7751ca77935877d525dab855e4edfe
Author: Jaromil <jaromil@dyne.org>
Date:   Mon,  8 Feb 2016 16:27:44 +0100

fix to editor for optional emacsclient activation

Diffstat:
Msrc/jaro | 2+-
Msrc/zlibs/helpers | 57+++++++++++++++++++++++++++++++--------------------------
2 files changed, 32 insertions(+), 27 deletions(-)

diff --git a/src/jaro b/src/jaro @@ -743,7 +743,7 @@ main() { exitcode=$? ;; - edit|vim) jarovim ${PARAM} ;; + edit|vim) edit_file ${PARAM} ;; open) open_folder ${PARAM} ;; preview) preview_file ${PARAM} ;; diff --git a/src/zlibs/helpers b/src/zlibs/helpers @@ -38,7 +38,7 @@ trim() { printfile() { print ${mapfile[$1]} } - + # extract all emails found in a text from stdin # outputs them one per line extract_emails() { @@ -50,7 +50,6 @@ awk '{ for (i=1;i<=NF;i++) # zmodload zsh/regex isemail() { [[ "$1" -regex-match "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" ]] && return 0 - return 1 } @@ -65,7 +64,7 @@ ismailinglist() { && return 0 return 1 } - + # parses stdin and converts some characters to html escape_html() { sed -e ' @@ -90,7 +89,7 @@ e_parse() { isemail "$_e" || continue # avoid duplicates [[ "${(v)e_addr[$_e]}" = "" ]] || continue - + # extract also the name using comma separator _n="${(Q)_p[(ws:,:)2]}" @@ -179,38 +178,44 @@ replay() { # of course we have a preference for AutOrg, the editor from our suite # however the default is nano if nothing else is choosen. jarovim() { + fn jarovim vim -c 'set fo=tcrq' -c 'set tw=72' \ - -c 'map <C-j> {gq}' -c 'imap <C-j> <esc>{gq}i' \ + -c 'map <C-j> {gq}' -c 'imap <C-j> <esc>{gq}i' \ "${@}" return $? } edit_file() { - { test ${EDITOR} } && { _editor="${EDITOR}" } - { test ${JARO_EDITOR} } && { _editor="$JARO_EDITOR" } - { test "$_editor" = "" } && { _editor=vim } + fn edit_file + [[ "${EDITOR}" = "" ]] || { _editor="${EDITOR}" } + [[ "${JARO_EDITOR}" = "" ]] || { _editor="$JARO_EDITOR" } + [[ "$_editor" = "" ]] && { _editor=vim } + req=(_editor) + ckreq || return 1 + + func "selected editor: $_editor" case $_editor in - # refine settings for email - vi|vim) jarovim "${PARAM}"; return $? ;; - emacs) emacsclient -a emacs "${PARAM}"; return $? ;; - *) ${=_editor} "${PARAM}"; return $? ;; + # refine settings for email + vi|vim) jarovim "${PARAM}"; return $? ;; + emacs) emacsclient -n "${PARAM}"; return $? ;; + *) ${=_editor} "${PARAM}"; return $? ;; esac # if we are here we need to guess case $OS in - MAC) open -t ${=PARAM} ;; - GNU) - ps ax|grep '[e]macs' > /dev/null - if [ $? = 0 ]; then - emacsclient -a ${=PARAM} - elif command -v vim > /dev/null; then - jarovim ${=PARAM} - elif command -v nano > /dev/null; then - nano -m -S -Q ">" -I -E -D -T 4 -U -W -c -i -k -r 72 ${=PARAM} - else - error "No editor found, please configure the JARO_EDITOR environment variable." - fi - ;; + MAC) open -t ${=PARAM} ;; + GNU) + ps ax|grep '[e]macs' > /dev/null + if [ $? = 0 ]; then + emacsclient -a ${=PARAM} + elif command -v vim > /dev/null; then + jarovim ${=PARAM} + elif command -v nano > /dev/null; then + nano -m -S -Q ">" -I -E -D -T 4 -U -W -c -i -k -r 72 ${=PARAM} + else + error "No editor found, please configure the JARO_EDITOR environment variable." + fi + ;; esac return $? } @@ -223,7 +228,7 @@ open_folder() { if maildircheck "${MAILDIRS}/${PARAM[1]}"; then _mutt -f "$MAILDIRS/${PARAM[1]}" exitcode=$? - + elif maildircheck "${PARAM[1]}"; then _mutt -f "${PARAM[1]}" exitcode=$?