From: Jason Woofenden <jason@jasonwoof.com>
Date: Mon, 11 Jul 2011 05:40:09 +0000 (-0400)
Subject: vim: fix (hack) cig/cit parsing within multipart/*
X-Git-Tag: 0.7_rc1~7
X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=6c6c8a9c8589ee0a56469e8d8e7a31bd038eb3ae;p=obsolete%2Fnotmuch-old

vim: fix (hack) cig/cit parsing within multipart/*

The vim front-end isn't written to handle nested parts.

This patch doesn't change that, it just changes the code to pretend that
multipart/* sections end immediately. This makes the parsing code think that
all sections are top-level, and are thus parsed well enough.

The lovely result of this is that citation folds and signature folds now work
in text/plain parts that are within multipart/* sections. Also, all mime
section starts are now shown correctly (before some were not parsed and showed
the ugly ^L and an ID and so on from notmuch.)

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---

diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim
index 4ad992be..f29dff1c 100644
--- a/vim/plugin/notmuch.vim
+++ b/vim/plugin/notmuch.vim
@@ -796,7 +796,14 @@ function! s:NM_cmd_show_parse(inlines)
                                 endif
                                 call add(info['disp'],
                                          \ printf('--- %s ---', in_part))
-                                let part_start = len(info['disp']) + 1
+                                " We don't yet handle nested parts, so pop
+                                " multipart/* immediately so text/plain
+                                " sub-parts are parsed properly
+                                if match(in_part, '^multipart/') != -1
+                                        let in_part = ''
+                                else
+                                        let part_start = len(info['disp']) + 1
+                                endif
                         endif
 
                 elseif in_header