diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-01-31 17:55:24 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-01-31 17:55:24 +0100 |
commit | d8a91f15df2b00a4fa175b0e5444daad06ad66c7 (patch) | |
tree | 0fcf1a0dba1c225b74b7bee1d1f74c8d5c682acf /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java | |
parent | 3c897d68ff75fac4a351154ca903a1d8791604c0 (diff) | |
download | open-keychain-d8a91f15df2b00a4fa175b0e5444daad06ad66c7.tar.gz open-keychain-d8a91f15df2b00a4fa175b0e5444daad06ad66c7.tar.bz2 open-keychain-d8a91f15df2b00a4fa175b0e5444daad06ad66c7.zip |
Fix and simplify user id parsing
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java')
-rw-r--r-- | OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java index e14c8bbdf..7ab7aae3f 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyHelper.java @@ -539,9 +539,23 @@ public class PgpKeyHelper { * @return array with naming (0), email (1), comment (2) */ public static String[] splitUserId(String userId) { - String[] result = new String[] { "", "", "" }; + String[] result = new String[] { null, null, null }; - Pattern withComment = Pattern.compile("^(.*) \\((.*)\\) <(.*)>$"); + if (userId == null || userId.equals("")) { + return result; + } + + /* + * User ID matching: + * http://fiddle.re/t4p6f + * + * test cases: + * "Max Mustermann (this is a comment) <max@example.com>" + * "Max Mustermann <max@example.com>" + * "Max Mustermann (this is a comment)" + * "Max Mustermann [this is nothing]" + */ + Pattern withComment = Pattern.compile("^(.*?)(?: \\((.*)\\))?(?: <(.*)>)?$"); Matcher matcher = withComment.matcher(userId); if (matcher.matches()) { result[0] = matcher.group(1); @@ -550,13 +564,6 @@ public class PgpKeyHelper { return result; } - Pattern withoutComment = Pattern.compile("^(.*) <(.*)>$"); - matcher = withoutComment.matcher(userId); - if (matcher.matches()) { - result[0] = matcher.group(1); - result[1] = matcher.group(2); - return result; - } return result; } |