diff options
| author | Drew DeVault <sir@cmpwn.com> | 2019-03-31 14:42:18 -0400 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-03-31 14:42:18 -0400 | 
| commit | 8e5ed2a161bf654888a8b48af2d9fdf6fbc0c7e0 (patch) | |
| tree | 9a83cf70c8c7e1491005cfc1bab1d7e2e6cbe92d /widgets | |
| parent | f9262e4b0600fcc83ddac642412769c2bce05c5c (diff) | |
Implement header-regex-match filters
Diffstat (limited to 'widgets')
| -rw-r--r-- | widgets/msgviewer.go | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go index 67fd0cc..56c3897 100644 --- a/widgets/msgviewer.go +++ b/widgets/msgviewer.go @@ -117,8 +117,25 @@ func NewMessageViewer(conf *config.AercConfig, store *lib.MessageStore,  		case config.FILTER_MIMETYPE:  			if fnmatch.Match(f.Filter, mime, 0) {  				filter = exec.Command(cmd[0], cmd[1:]...) -				fmt.Printf("Using filter for %s: %s\n", mime, f.Command)  			} +		case config.FILTER_HEADER: +			var header string +			switch f.Header { +			case "subject": +				header = msg.Envelope.Subject +			case "from": +				header = formatAddresses(msg.Envelope.From) +			case "to": +				header = formatAddresses(msg.Envelope.To) +			case "cc": +				header = formatAddresses(msg.Envelope.Cc) +			} +			if f.Regex.Match([]byte(header)) { +				filter = exec.Command(cmd[0], cmd[1:]...) +			} +		} +		if filter != nil { +			break  		}  	}  	if filter != nil {  | 
