Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06912bdd authored by Alon Albert's avatar Alon Albert
Browse files

Support quoted parameters

iCalendar RFC http://www.ietf.org/rfc/rfc2445.txt says:
4.1.1 List and Field Separators
   Property parameters with values containing a COLON, a SEMICOLON or a
   COMMA character MUST be placed in quoted text.

So we must be able to support this.

Bug: 3463510
Change-Id: Ie0463fdc2d5cbc340801cc8cc5b4f00e374f2954
parent 3259d885
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -578,6 +578,23 @@ public class ICalendar {
                            + text);
                }
                parameter.name = text.substring(startIndex + 1, equalIndex);
            } else if (c == '"') {
                if (parameter == null) {
                    throw new FormatException("Expected parameter before '\"' in " + text);
                }
                if (equalIndex == -1) {
                    throw new FormatException("Expected '=' within parameter in " + text);
                }
                if (state.index > equalIndex + 1) {
                    throw new FormatException("Parameter value cannot contain a '\"' in " + text);
                }
                final int endQuote = text.indexOf('"', state.index + 1);
                if (endQuote < 0) {
                    throw new FormatException("Expected closing '\"' in " + text);
                }
                parameter.value = text.substring(state.index + 1, endQuote);
                state.index = endQuote + 1;
                return parameter;
            }
            ++state.index;
        }