summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2013-11-27 15:30:19 +0200
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2013-11-28 10:28:36 +0200
commitfe92a1294727fd1dc24bfde95f487acc9d2e8c54 (patch)
treee2b3b5a6707deba5d29a757be487dacb1d7a6610
parent6b11eceeb8ad9f9853d86b26d281027327d995be (diff)
downloadaiaiai-fe92a1294727fd1dc24bfde95f487acc9d2e8c54.tar.gz
sh-functions: change subject parsing
This patch change subject parsing so that it would allow a prefix before the PATCH keyword: [Prefix PATCH Suffix m/n], as Jacob Keller requested. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-rw-r--r--aiaiai-sh-functions12
-rwxr-xr-xtests/test-subj-parsing16
2 files changed, 20 insertions, 8 deletions
diff --git a/aiaiai-sh-functions b/aiaiai-sh-functions
index e6e2973..9e2c730 100644
--- a/aiaiai-sh-functions
+++ b/aiaiai-sh-functions
@@ -74,7 +74,7 @@ fetch_header_per_patch()
}
# All patches we deal with have to have the following prefix
-prefix_format="[PATCH <ver> <m/n>]"
+prefix_format="[Prefix PATCH Suffix <m/n>]"
# A single blank character
__blank="[[:blank:]]{1}"
@@ -82,16 +82,18 @@ __blank="[[:blank:]]{1}"
__blanks="[[:blank:]]{0,16}"
# Reasonable number of [blah] prefixes
__blah="(\[[^]]*\]${__blanks}){0,4}"
+# The prefix
+__prefix="${__blanks}([^[:blank:]]*${__blanks}${__blank}){0,1}"
# Patch number pattern
__num="0*([[:digit:]]+)"
# The "PATCH" word for case-insensitive matching
__patch="[Pp][Aa][Tt][Cc][Hh]"
# Sed regexp matching correct subject
-__single="^${__blah}\[${__blanks}${__patch}.*\].*$"
+__single="^${__blah}\[${__prefix}${__patch}.*\].*$"
# Sed regexps matching m and n
-__series="^${__blah}\[${__blanks}${__patch}.*${__blank}${__num}\/{0,1}${__num}${__blanks}\].*$"
-__mref="\2"
-__nref="\3"
+__series="^${__blah}\[${__prefix}${__patch}.*${__blank}${__num}\/{0,1}${__num}${__blanks}\].*$"
+__mref="\3"
+__nref="\4"
# Get "m" (patch's number in the series) from the subject
# Usage: subject_m <subject>
diff --git a/tests/test-subj-parsing b/tests/test-subj-parsing
index 97b7488..386ab0a 100755
--- a/tests/test-subj-parsing
+++ b/tests/test-subj-parsing
@@ -52,12 +52,13 @@ check_subject "[PATCH] kuku" "" ""
check_subject "[PATCH so-so] kuku" "" ""
check_subject "[PATCH so-so 1/1] kuku" "1" "1"
check_subject "[*] [PATCH so-so 1/1] kuku" "1" "1"
+check_subject "[*] [Prefix PATCH so-so 1/1] kuku" "1" "1"
# Numbers
check_subject "[PATCH 100/1] kuku" "100" "1"
check_subject "[PATCH mfld-666 1/999] kuku" "1" "999"
check_subject "[PATCH 0001/0999] kuku" "1" "999"
-check_subject "[PATCH mfld-666 10/00000009] kuku" "10" "9"
+check_subject "[XXX PATCH mfld 666 10/00000009] kuku" "10" "9"
check_subject "[PATCH 100/1] kuku" "100" "1"
check_subject "[PATCH 1/999] kuku" "1" "999"
@@ -67,21 +68,26 @@ check_subject "[PATCH 10/00000009] kuku" "10" "9"
# Invalid numbers
check_subject "[PATCH abcd 1/] kuku" "" ""
check_subject "[PATCH 01/] kuku" "" ""
-check_subject "[PATCH 018888888888888888/] kuku" "" ""
+check_subject "[A PATCH 018888888888888888/] kuku" "" ""
check_subject "[PATCH /1] kuku" "" ""
check_subject "[PATCH /1/] kuku" "" ""
check_subject "[PATCH /] kuku" "" ""
check_subject "[PATCH //] kuku" "" ""
check_subject "[PATCH /0000000002] kuku" "" ""
-# Stuff between PATCH and numbers
+# Prefix/Suffix
check_subject "[PATCH 1 10/010] kuku" "10" "10"
check_subject "[PATCH -_)(*&^ 10/10] kuku" "10" "10"
+check_subject "[*&^ PATCH v2] kuku" "" ""
+check_subject "[driver] [-_)(*&^ PATCH v2] kuku" "" ""
+check_subject "[driver] [ My[[:blank:]] PATCH v2] kuku" "" ""
+
# Spaces
check_subject "[PATCH x 10/10] kuku" "10" "10" # tabtabxtabtab
check_subject "[PATCH @ 10/10] kuku" "10" "10" # spcspc@spcspc
check_subject "[ PATCH + 10/010 ] kuku" "10" "10" # tabPATCHspcspc+spcspc
+check_subject "[ A PATCH 10/010] kuku" "10" "10" # spcAspctabPATCH
# Several prefixes
check_subject "[RFC][PATCH] kuku" "" ""
@@ -103,8 +109,12 @@ check_subject "[driver] [PATCH [ 9/111] kuku" "9" "111"
check_subject "[Patch 9/111] kuku" "9" "111"
# Bad subjects
+bad_subject " [PATCH] kuku"
bad_subject "[driver] kuku"
bad_subject "Re: [driver] [PATCH V2 prj] kuku"
bad_subject "Re: [PATCH 1 10/10] kuku"
+bad_subject "[mPATCH 1 10/10] kuku"
+bad_subject "[mPATCH] kuku"
+bad_subject "[ mPATCH] kuku"
echo "Done" >&2