[Patchew-devel] [PATCH 1/2] mbox: Recognize raw diff

fam at euphon.net fam at euphon.net
Sat Jan 9 20:59:57 UTC 2021


From: Fam Zheng <famzheng at amazon.com>

In order to pick up for example:

https://lists.xenproject.org/archives/html/xen-devel/2020-12/msg00146.html
---
 mbox.py                          |   1 +
 tests/data/0033-raw-diff.mbox.gz | Bin 0 -> 3218 bytes
 tests/test_mbox.py               |   6 ++++++
 3 files changed, 7 insertions(+)
 create mode 100644 tests/data/0033-raw-diff.mbox.gz

diff --git a/mbox.py b/mbox.py
index fa24b3d..c324dc5 100644
--- a/mbox.py
+++ b/mbox.py
@@ -267,6 +267,7 @@ class MboxMessage(object):
             self._has_lines(body, "---", "diff ", "index ", "---", "+++", "@@")
             or self._has_lines(body, "---", "diff ", "index ", "GIT binary patch")
             or self._has_lines(body, "---", "diff ", "old mode ", "new mode ")
+            or self._has_lines(body, "---", "+++", "@@")
         )
 
     def is_series_head(self):
diff --git a/tests/data/0033-raw-diff.mbox.gz b/tests/data/0033-raw-diff.mbox.gz
new file mode 100644
index 0000000000000000000000000000000000000000..7e5ee9bc3b8aea72abdbc5a9289f17d0a8ee4da3
GIT binary patch
literal 3218
zcmV;D3~lotiwFpR`ORMd128Z%Gc9sqcP(UTW at avJVsCf=y;$jU+DI1vJgUn7(3KCf
zFpPvwB;=4a_hG;oVH-1*a_MM5pbH&bJAeGX7U1A3ai+G`aSYx4^!gpYcc~HjF4|&`
zw(uG|wBaY7iK9!$j^c=c{UG!g*o+xJoS{Z&qZ&355)sR*qM(We#Irn0)v#l)afmH?
z<f~|^yHh_*f+!BL?q1GZ-F6t$cc~#ZG0<5mGIsDF at X%RFEl518ioi!TSiYzh4HXw<
zQ&qU4fHrnKM_O+*K(<98pEsj`mnB}3oaOq0$nz)2LPR2Bd>4vl6_!Prfi}ugW4h`4
zGY8X}8wa%JC!vW|3Y9C?e9+l<h1=m^9(Edz84kkQxMdZJ+fa#;P1o7?l$CDxx3O_!
z>Ju+Y!eM?i*_)m<XxDlV{bUtcQRTkL!yRv^#!D(Mu%fEI&|)FFp(wMwP?UGZf)PZ8
z;R>wG%1VJRfNDp**q<p at 9#&}$>yC=-5_f_0QW)uUG>3Z&7bq@$=Xrt5b;<KRe1WXe
zEHwsk#|4F=k{+5g&jPK&6=1_C*|BUbr(AB at T1>{(yG>IO_a?vSne`T4FJ}eeZdDc6
z%jrsJa(S_p+~q5lhP^?rJ`}@dtB`7_DW+l>vp6cYb4#~u2Hf>c&lEkW5;*<5UmdPm
zT03qG_+~C=$!2x4xSz;7E$U5m(Y_t?y&+4XffQe_*0(iyZqi>xxm7&cUr80KJFai;
za>^Z-v<>+t*9hZ6qZOAM_k+g1*1zV)PFOD1*7<(m3 at LPH6{F=u@!R`u*y~(Xmjijc
zs?FTSmGBTax$C7+-!-mVt5x%6Ac>1v=ia(8T8b62)@VJftivu_pio6ywgNsXh at -Z9
zYxVEf5B+sqyC1ZgRo3V7{V-TNidF7a`o7;&gmn&2qB6&s5BEJypYE?cD>p?J7tBhf
z)Nef;MfwadY0o at 8PD1>q6U|bH9es<f{PFYW4xE=v-;1#q({ZSK(G-U?_DtWhy_tGC
zaddB%!0oDQyO at T!jcngjlL%;G*NZ8nT6zq}M<H!XjS_=o0d)%5LN!e__El?XyL9v<
ze}p{?hiVW)AXsoE1}-=Z{V<||n4}XLm_%l18~CuCV<$L#3;ZZPd`rA1B6QfXEdtAV
zDYlv$d)y4;!8B+G6>Wc4^oBF8(72Op`Izf<f`N6d?KicXSt$kbq~9z!_4R0d8&tVr
zO{o at RdoaG*+bg^tIUT1voQsuU&s*zmVIDt}_k~Kd7&MIKby$!h&Y9R0%Gak;_BwRe
zlSQR|*Xfu=U9)@n`hAUUitF9DmfUsXh7k!|Z`^YGLQCH)>K!~T4(@Z|X0W{38ZL!a
zokd5ow%y#umllQnE?niERj}@Nuk$@i*>3uEGue$gSCwYxs at 17%qiDRV&#k5*H?QLx
zP1gCD3|wmS+P2B_;kAEzv#y!agRldk+;TxoYLlrPvPqZKG`+nV+)pqVW$4Z{-jP;y
zvCWIE_P{lokoG3yq?MD#qj~OOtGTssBJ}UdgXJuitG)ZBG`S1ho6RIQ=~u-1pwZvl
zyW#43yBeEOuRC6QVs}wRg_(W=ayg0T02$lVV*nAP!6<R!=!j-_%bcMV5yX at NJ&FLP
zSO>H)cIh$#+>ztcR#YN87UoVHM(Lr~T92e&>jFi=^vEFdow156A4-ge{OLyvnS~F)
z#lVRx@(eG?3 at 1wr2f0>{P=G_%j$>@01FEwSXiz*DQpiXIls<M1XzW6Go+J)RH at D?s
zxj$<6>!3-ge+{3O9i?BgCv{W)C!;{cgy8b%fgaCQ^yOpMem$$Rgd2L(1ev#X84CUN
z!XDqUq at q3Z<e{F`NkP-niWYE1IkGvZb`s0&j2R;eEJF$xFko1bVR_hLL<wb%$)+^w
zYTTnhA=3`#I3&x*a$S3btoPWg_8zrXSx`h|*l|>Xy*&KS{-7*U&+6hyds-VbR78yb
z4qB*Rhszsip<crUnT|~otsRtJ&|gsR1<ZS~@<ymozZ5I~cjf<4s8DCI@=rtM73c|a
z-_(f!7~07so<c2L(nMHS_ZU$W3Opkh#Ufy-zO`K>GDSX%GS~wJ`~cI0HTB^@%tCY^
zZs{lwOPXa_!M16MeTHM|0A!9OKo(e(12Puc$?KD7y at O~fI(7`m at U0!vJqx)|G>?{u
zP>7 at 0hyEMIKC+?SyHM{bbd0v=efLYPQ3iH`B+ee}cG?BW&&=^8H1$3DUI_it{=TU@
zb0TBrFOHWP7XESHKw!r&y=AN{_1llUg)o8DxmT#)p1bAaUZH+Fxn*&1i$IV1Z={!l
zf_(9nf^S;U_6|n$!&f#0bic=3dE0ur<IuXR?`f<@9AkTlYxrsE&HN>Z45V9#L!Oc3
zZ`8q}NyI(T^JnzgABMoWQK|Q^t_?M|WENws)M!6NTWMk7#Ieo!Wdsc#+|B^+7<dER
zPS<-lP9uOi*xF8QJ at 3%9erlvAZ at p7HUs{a%iOJk8&!pm67-bS~>G>OvR5M6bg2eEo
z7)jrtl7m6svlhy<bjSCy=LL=;UNo at 68J2F+g`%v`VnO6+qcBxyrC79hEN}(6DEz?5
z@<C#hxgAxrFXbk!{qD!2a||yZMSrH{0K#i(Z_ni=(pIHvy;!c6m6J&5wMd0$B8}+^
z#@+}@F$^L<b_~@eU3nX%A7c-tbO4r+WM?ypNV+)-MCR at OBxP~?z14 at -W*)~uq~`N)
zJ&- at fQ{E2<zM}jS|F3 at nK*=eL7~i8m#H$4I;hW<B`#8yz&L)kcK*XBrYj*GSSm`4z
zGQ#{*3CR3&<fHwnCCH)eP5u9gDb5U0KTK at oEzZZXDK&T+_|!DfP}*S-M4!he2A at CP
zxsK^}8jW<jrhX{u;E6jsOd?t{b<aB{XNc{!9a*%8H%N~Wv at S6X{nasUsM=M#cRqQq
zKR9`xl3zM^A3Lw}H!bX808eM+^iPNbXGg~0bew)UQ=feW68MF=8h$DCY%G7ac$)2Z
z0e-%KR{E!N|ErUKI9Z>1Oyx#w+G1zox}kX`<hNqH#)h+vTlzIWOy;6&c at wUln{79`
ztx2*`-}xe*-sTp{V$L-vB+P=1yeN-yTKy`Hiw&u0Re4EnPvWxS<lM#H;_}jH*A5ob
z#nsG{w}Kp-qebVYwkYm>SuW(p&8sqn?ibD6Zk+c9YrVSeI=14EWFZQ at PNiS8rFw}X
zaQ^(`fIi3QJJ_t6Dk^(c2%xI^Y0mqir%S*DSqhh?9f$UoK!ikN6T at Q|)e_Iq1N3E<
zE*UFbJ|jhK=oLD;xr|8iv^R^(7gqzbPC`Zs)C{3BKwlQ=ijW=7krv~r?)mVk8`yDd
z&qiOO=xK4e#Gwc2_{i)Y+o)?N=*z}=;z2bCVnGZKRSu;cu6Zi*N92E{wBw5)^w*#~
zs<yr%7rTDAQ<1**q4Wg4?ZplNJB1 at u)^y5&mNXqVfc8<htjE}Y4CcGY)q_lyI=u=b
z5&s2?+|*D+nJy?Irg at 3wX^Agzv{c|&1sgin4faf$8VRXauYo!4sp at jjC)|=3TV?WM
z3%Y23Z##~jml!C0_qJ#Gn+WwsP!$>Iabcq%UZ5 at c6RuTRVc0D3qq+3+JmJN$92(6N
zlHd$GwDLd!HJa+Rdv*Hm7^8?|SgLvqxe<v?NI=^-A2=|0L1vljVT7Un#8X;%qU)Ys
z$sqvYtp-`GzV at 9Y9TAVOtdXE7Q)60Si_%oEMBS7HQ!eO|&U38E6)_CVd~s?R#qXD&
z;=O*#1W19Anxe|qB7w#{^3evP#IvCtbDiDMg&xKh at gUg<fx`?QOdB at +xleuX69uCz
za&%y2$2d&4nNQRws$p+2jI@$0%eo+oyrn28^SOQ9>)ono?mK`JGRlN_3b)6$gY;=k
zS_llnk|Ac)t)QusMDx$tPZUYiFwFbYDQ)b23Q%%AP18sxl`#)HuJ7d!7-h^)R4$i8
z#@k1imxxv*@lR+k$wv{v27vh;+(vPjnDKF({zRekpIi?79qLR#w7h`Bv-A8Ps5%Eg
zr51f2BU7;Azar%MP_bUy75$M1%}#89ID;~|oaK8MeJ!E#a9DnL)Y_AJhFltD(eJ;b
zGbys@@4wF;Pk%C7Jr3xvk-Y~NDCGnX%>l6?jBd_j5Mt~G at uNxP&1AC(oRNDbz%vF%
zVSfMpjOuVt=GUZr{`5}-dLsMJ3nzpoDj~>#VT^LAau+WMj1cR~3xXHwzuGmP9|Ri!
E0H8lh1ONa4

literal 0
HcmV?d00001

diff --git a/tests/test_mbox.py b/tests/test_mbox.py
index 792147a..4070d51 100755
--- a/tests/test_mbox.py
+++ b/tests/test_mbox.py
@@ -50,6 +50,12 @@ Virtualization:  qemu.org | libvirt.org
             msg = mbox.MboxMessage(f.read())
         self.assertTrue(msg.is_patch())
 
+    def test_raw_diff(self):
+        dp = self.get_data_path("0033-raw-diff.mbox.gz")
+        with open(dp, "r") as f:
+            msg = mbox.MboxMessage(f.read())
+        self.assertTrue(msg.is_patch())
+
     def test_get_json(self):
         dp = self.get_data_path("0001-simple-patch.mbox.gz")
         with open(dp, "r") as f:
-- 
2.25.1






More information about the Patchew-devel mailing list