From 672f8487e826c279e6702aafa4488785b3eeaa66 Mon Sep 17 00:00:00 2001 From: Shunichi Shinohara Date: Tue, 9 Aug 2011 15:57:41 +0900 Subject: [PATCH] Exclude semicolon character from 'normal' characters --- src/eini_lexer.xrl | 3 ++- test/eini_tests.erl | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/eini_lexer.xrl b/src/eini_lexer.xrl index d83b5ca..0aecdc4 100644 --- a/src/eini_lexer.xrl +++ b/src/eini_lexer.xrl @@ -23,10 +23,11 @@ Definitions. K = [a-zA-Z0-9_\.]+ %% Characters for values, printable except =, [ and ] +%% \x3b : $; %% \x3d : $= %% \x5b : $[ %% \x5d : $] -V = [\x21-\x3c\x3e-\x5a\x5c\x5e-\x7e]+ +V = [\x21-\x3a\x3c\x3e-\x5a\x5c\x5e-\x7e]+ %% spaces and breaks S = [\s\t] diff --git a/test/eini_tests.erl b/test/eini_tests.erl index e8bf231..47ff575 100644 --- a/test/eini_tests.erl +++ b/test/eini_tests.erl @@ -26,6 +26,23 @@ one_section_title_only_test_() -> fun setup/0, fun teardown/1, [ + %% comment only + ?_assertEqual({ok, []}, + parse( + ";" + )), + ?_assertEqual({ok, []}, + parse( + "; " + )), + ?_assertEqual({ok, []}, + parse( + "; comment" + )), + ?_assertEqual({ok, []}, + parse( + "; comment in Japanese 日本語" + )), %% Title only ?_assertEqual({ok, [ {title, []} @@ -238,6 +255,14 @@ one_section_title_and_one_prop_test_() -> "[title] \n" "key1=va[lu]e1\n" )), + %% value has < and > chars + ?_assertEqual({ok, [ + {title, [{key1, <<"vae1">>}]} + ]}, + parse( + "[title] \n" + "key1=vae1\n" + )), %% value has ; char ?_assertEqual({ok, [ {title, [{key1, <<"value1;continue">>}]}