add relax option, a synonym for [loose_unicode, single_quotes, comments, ignore_bad_escapes]

This commit is contained in:
alisdair sullivan 2012-03-29 00:24:31 -07:00
parent f909a5bc6d
commit c8ff83a394
2 changed files with 14 additions and 2 deletions

View file

@ -135,6 +135,10 @@ json escaping is lossy, it mutates the json string and repeated application can
during decoding, ignore unrecognized escape sequences and leave them as is in the stream during decoding, ignore unrecognized escape sequences and leave them as is in the stream
#### `relax` ####
relax is a synonym for `[loose_unicode, single_quotes, comments, ignore_bad_escapes]`
### <a name="incompletes">incomplete input</a> ### ### <a name="incompletes">incomplete input</a> ###

View file

@ -52,9 +52,16 @@ parse_opts([comments|Rest], Opts) ->
parse_opts([json_escape|Rest], Opts) -> parse_opts([json_escape|Rest], Opts) ->
parse_opts(Rest, Opts#opts{json_escape=true}); parse_opts(Rest, Opts#opts{json_escape=true});
parse_opts([dirty_strings|Rest], Opts) -> parse_opts([dirty_strings|Rest], Opts) ->
parse_opts(Rest, Opts#opts{json_escape=true}); parse_opts(Rest, Opts#opts{dirty_strings=true});
parse_opts([ignore_bad_escapes|Rest], Opts) -> parse_opts([ignore_bad_escapes|Rest], Opts) ->
parse_opts(Rest, Opts#opts{ignore_bad_escapes=true}); parse_opts(Rest, Opts#opts{ignore_bad_escapes=true});
parse_opts([relax|Rest], Opts) ->
parse_opts(Rest, Opts#opts{
loose_unicode = true,
single_quotes = true,
comments = true,
ignore_bad_escapes = true
});
parse_opts(_, _) -> parse_opts(_, _) ->
{error, badarg}. {error, badarg}.
@ -69,7 +76,8 @@ valid_flags() ->
comments, comments,
json_escape, json_escape,
dirty_strings, dirty_strings,
ignore_bad_escapes ignore_bad_escapes,
relax
]. ].