am ccc802e1
: Merge "Support quoted parameters" into gingerbread
* commit 'ccc802e12be64248c2c6822eb36a957435a06ef2': Support quoted parameters
This commit is contained in:
@ -578,6 +578,23 @@ public class ICalendar {
|
|||||||
+ text);
|
+ text);
|
||||||
}
|
}
|
||||||
parameter.name = text.substring(startIndex + 1, equalIndex);
|
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;
|
++state.index;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user