Build
- It expects NeoMutt to be built in
../neomakemake test
Notes
- Eliminate dependence on MuttWindow
- Duplicate environment
- Set
COLUMNS - Pass to exec
Won't work. We'd need to pass the dupe environment to the token function. exec() needs to happen outside of token function.
-
Move
filter.cto libmutt?- Factor out environment
- Factor out
EXECSHELL - Do we need both
fdandFILEversions?
-
Eliminate myvar?
- Fold myvar support into libconfig?
- Handle is still held by NeoMutt
Option Behaviour and Callers
-
MUTT_TOKEN_BACKTICK_VARS- Expand variables within backticks- Contents are executed in a shell (
EXECSHELL) parse_set()
- Contents are executed in a shell (
-
MUTT_TOKEN_COMMENT- Don't reap commentspattern.eat_regex()pattern.eat_query()pattern.eat_date()
-
MUTT_TOKEN_CONDENSE-^(char)to control chars (macros)mutt_parse_push()mutt_parse_macro()
I think this should be happening after token, in the caller.
-
MUTT_TOKEN_EQUAL- Treat '=' as a specialparse_set()parse_setenv()
-
MUTT_TOKEN_NOSHELL- Don't expand environment variables- Recursive call to
mutt_extract_token()
- Recursive call to
-
MUTT_TOKEN_PATTERN-~%=!|are terms (for patterns)pattern.eat_regex()pattern.eat_query()pattern.eat_date()
These are all non-whitespace. Do we need special cases for them?
MUTT_TOKEN_QUESTION- Treat?as a specialparse_set()
For ':set ?var' or ':set var?' Can't this be dealt with by the caller?
-
MUTT_TOKEN_QUOTE- Don't interpret quotesparse_alias()parse_my_hdr()
-
MUTT_TOKEN_SEMICOLON- Don't treat;as specialparse_alias()
-
MUTT_TOKEN_SPACE- Don't treat whitespace as a termparse_alias()parse_ifdef()parse_my_hdr()mutt_parse_hook()
-
MUTT_TOKEN_NO_FLAGS- Default behaviourdo_uncolor()icmd_bind()mutt_expando_format()mutt_lua_source_file()mutt_parse_bind()mutt_parse_exec()mutt_parse_hook()mutt_parse_icommand()mutt_parse_rc_line()mutt_parse_score()mutt_parse_unbind()mutt_parse_unhook()mutt_parse_unscore()parse_alias()parse_alternates()parse_attachments()parse_attach_list()parse_attr_spec()parse_color()parse_color_pair()parse_echo()parse_group()parse_grouplist()parse_ifdef()parse_ignore()parse_keymap()parse_lists()parse_mailboxes()parse_object()parse_path_list()parse_path_unlist()parse_replace_list()parse_setenv()parse_source()parse_spam_list()parse_stailq()parse_subscribe()parse_subscribe_to()parse_tag_formats()parse_tag_transforms()parse_unalias()parse_unalternates()parse_unattachments()parse_unattach_list()parse_uncolor()parse_unignore()parse_unlists()parse_unmailboxes()parse_unmy_hdr()parse_unreplace_list()parse_unstailq()parse_unsubscribe()parse_unsubscribe_from()