diff --git a/src/uri.c b/src/uri.c index 31cdf758cb3398058c97ddd8a53cc6b5a37125e4..498c6842099e9d3ffa5e64e357655af044395778 100644 --- a/src/uri.c +++ b/src/uri.c @@ -282,6 +282,7 @@ case 146: case 37: goto tr166; case 61: goto tr165; case 95: goto tr165; + case 124: goto tr165; case 126: goto tr165; } if ( (*p) < 63 ) { @@ -301,12 +302,13 @@ case 146: if ( ++p == pe ) goto _test_eof147; case 147: -#line 305 "src/uri.c" +#line 306 "src/uri.c" switch( (*p) ) { case 33: goto st147; case 37: goto st1; case 61: goto st147; case 95: goto st147; + case 124: goto st147; case 126: goto st147; } if ( (*p) < 63 ) { @@ -326,7 +328,7 @@ case 147: if ( ++p == pe ) goto _test_eof1; case 1: -#line 330 "src/uri.c" +#line 332 "src/uri.c" switch( (*p) ) { case 37: goto st147; case 117: goto st2; @@ -402,7 +404,7 @@ case 5: if ( ++p == pe ) goto _test_eof6; case 6: -#line 406 "src/uri.c" +#line 408 "src/uri.c" switch( (*p) ) { case 37: goto st145; case 117: goto st7; @@ -505,7 +507,7 @@ case 10: if ( ++p == pe ) goto _test_eof148; case 148: -#line 509 "src/uri.c" +#line 511 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr151; @@ -513,6 +515,7 @@ case 148: case 61: goto st148; case 63: goto tr155; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 64 ) { @@ -726,13 +729,14 @@ case 15: if ( ++p == pe ) goto _test_eof149; case 149: -#line 730 "src/uri.c" +#line 733 "src/uri.c" switch( (*p) ) { case 33: goto tr169; case 35: goto tr170; case 37: goto tr171; case 61: goto tr169; case 95: goto tr169; + case 124: goto tr169; case 126: goto tr169; } if ( (*p) < 63 ) { @@ -752,13 +756,14 @@ case 149: if ( ++p == pe ) goto _test_eof150; case 150: -#line 756 "src/uri.c" +#line 760 "src/uri.c" switch( (*p) ) { case 33: goto st150; case 35: goto tr172; case 37: goto st16; case 61: goto st150; case 95: goto st150; + case 124: goto st150; case 126: goto st150; } if ( (*p) < 63 ) { @@ -778,7 +783,7 @@ case 150: if ( ++p == pe ) goto _test_eof16; case 16: -#line 782 "src/uri.c" +#line 787 "src/uri.c" switch( (*p) ) { case 37: goto st150; case 117: goto st17; @@ -863,7 +868,7 @@ case 20: if ( ++p == pe ) goto _test_eof151; case 151: -#line 867 "src/uri.c" +#line 872 "src/uri.c" switch( (*p) ) { case 33: goto tr174; case 35: goto tr175; @@ -896,7 +901,7 @@ case 151: if ( ++p == pe ) goto _test_eof21; case 21: -#line 900 "src/uri.c" +#line 905 "src/uri.c" switch( (*p) ) { case 33: goto st21; case 37: goto st22; @@ -926,7 +931,7 @@ case 21: if ( ++p == pe ) goto _test_eof22; case 22: -#line 930 "src/uri.c" +#line 935 "src/uri.c" switch( (*p) ) { case 37: goto st21; case 117: goto st23; @@ -1016,7 +1021,7 @@ case 26: if ( ++p == pe ) goto _test_eof27; case 27: -#line 1020 "src/uri.c" +#line 1025 "src/uri.c" switch( (*p) ) { case 33: goto tr28; case 37: goto tr29; @@ -1048,7 +1053,7 @@ case 27: if ( ++p == pe ) goto _test_eof152; case 152: -#line 1052 "src/uri.c" +#line 1057 "src/uri.c" switch( (*p) ) { case 33: goto st152; case 35: goto tr159; @@ -1077,7 +1082,7 @@ case 152: if ( ++p == pe ) goto _test_eof28; case 28: -#line 1081 "src/uri.c" +#line 1086 "src/uri.c" switch( (*p) ) { case 37: goto st152; case 117: goto st29; @@ -1158,7 +1163,7 @@ case 32: if ( ++p == pe ) goto _test_eof153; case 153: -#line 1162 "src/uri.c" +#line 1167 "src/uri.c" switch( (*p) ) { case 35: goto tr175; case 47: goto tr177; @@ -1181,7 +1186,7 @@ case 153: if ( ++p == pe ) goto _test_eof154; case 154: -#line 1185 "src/uri.c" +#line 1190 "src/uri.c" switch( (*p) ) { case 35: goto tr186; case 47: goto tr187; @@ -1198,7 +1203,7 @@ case 154: if ( ++p == pe ) goto _test_eof155; case 155: -#line 1202 "src/uri.c" +#line 1207 "src/uri.c" switch( (*p) ) { case 35: goto tr186; case 47: goto tr187; @@ -1218,12 +1223,13 @@ case 155: if ( ++p == pe ) goto _test_eof156; case 156: -#line 1222 "src/uri.c" +#line 1227 "src/uri.c" switch( (*p) ) { case 33: goto st157; case 37: goto st33; case 61: goto st157; case 95: goto st157; + case 124: goto st157; case 126: goto st157; } if ( (*p) < 48 ) { @@ -1247,6 +1253,7 @@ case 157: case 37: goto st33; case 61: goto st157; case 95: goto st157; + case 124: goto st157; case 126: goto st157; } if ( (*p) < 64 ) { @@ -1337,7 +1344,7 @@ case 37: if ( ++p == pe ) goto _test_eof158; case 158: -#line 1341 "src/uri.c" +#line 1348 "src/uri.c" switch( (*p) ) { case 33: goto st152; case 35: goto tr159; @@ -1767,7 +1774,7 @@ case 38: if ( ++p == pe ) goto _test_eof39; case 39: -#line 1771 "src/uri.c" +#line 1778 "src/uri.c" if ( (*p) == 58 ) goto st43; if ( (*p) > 57 ) { @@ -2326,7 +2333,7 @@ case 82: if ( ++p == pe ) goto _test_eof173; case 173: -#line 2330 "src/uri.c" +#line 2337 "src/uri.c" switch( (*p) ) { case 35: goto tr210; case 47: goto tr211; @@ -2342,7 +2349,7 @@ case 173: if ( ++p == pe ) goto _test_eof83; case 83: -#line 2346 "src/uri.c" +#line 2353 "src/uri.c" switch( (*p) ) { case 58: goto st84; case 93: goto tr52; @@ -2578,7 +2585,7 @@ case 103: if ( ++p == pe ) goto _test_eof174; case 174: -#line 2582 "src/uri.c" +#line 2589 "src/uri.c" switch( (*p) ) { case 33: goto st152; case 35: goto tr159; @@ -2684,7 +2691,7 @@ case 177: if ( ++p == pe ) goto _test_eof178; case 178: -#line 2688 "src/uri.c" +#line 2695 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr151; @@ -2693,6 +2700,7 @@ case 178: case 61: goto st148; case 63: goto tr155; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 64 ) { @@ -2717,6 +2725,7 @@ case 179: case 61: goto tr219; case 63: goto tr155; case 95: goto tr219; + case 124: goto st148; case 126: goto tr219; } if ( (*p) < 64 ) { @@ -2736,7 +2745,7 @@ case 179: if ( ++p == pe ) goto _test_eof180; case 180: -#line 2740 "src/uri.c" +#line 2749 "src/uri.c" switch( (*p) ) { case 33: goto st180; case 35: goto tr151; @@ -2746,6 +2755,7 @@ case 180: case 61: goto st180; case 63: goto tr155; case 95: goto st180; + case 124: goto st148; case 126: goto st180; } if ( (*p) < 64 ) { @@ -2765,7 +2775,7 @@ case 180: if ( ++p == pe ) goto _test_eof104; case 104: -#line 2769 "src/uri.c" +#line 2779 "src/uri.c" switch( (*p) ) { case 37: goto st180; case 117: goto st105; @@ -2843,7 +2853,7 @@ case 108: if ( ++p == pe ) goto _test_eof181; case 181: -#line 2847 "src/uri.c" +#line 2857 "src/uri.c" switch( (*p) ) { case 33: goto st181; case 35: goto tr151; @@ -2852,6 +2862,7 @@ case 181: case 61: goto st181; case 63: goto tr155; case 95: goto st181; + case 124: goto st181; case 126: goto st181; } if ( (*p) < 64 ) { @@ -2954,7 +2965,7 @@ case 113: if ( ++p == pe ) goto _test_eof182; case 182: -#line 2958 "src/uri.c" +#line 2969 "src/uri.c" switch( (*p) ) { case 33: goto st181; case 35: goto tr210; @@ -2964,6 +2975,7 @@ case 182: case 61: goto st181; case 63: goto tr213; case 95: goto st181; + case 124: goto st181; case 126: goto st181; } if ( (*p) < 64 ) { @@ -3017,7 +3029,7 @@ case 182: if ( ++p == pe ) goto _test_eof183; case 183: -#line 3021 "src/uri.c" +#line 3033 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr210; @@ -3026,6 +3038,7 @@ case 183: case 61: goto st148; case 63: goto tr213; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 64 ) { @@ -3047,7 +3060,7 @@ case 183: if ( ++p == pe ) goto _test_eof184; case 184: -#line 3051 "src/uri.c" +#line 3064 "src/uri.c" switch( (*p) ) { case 33: goto st21; case 35: goto tr186; @@ -3082,7 +3095,7 @@ case 184: if ( ++p == pe ) goto _test_eof185; case 185: -#line 3086 "src/uri.c" +#line 3099 "src/uri.c" switch( (*p) ) { case 33: goto st21; case 35: goto tr186; @@ -3112,7 +3125,7 @@ case 185: if ( ++p == pe ) goto _test_eof186; case 186: -#line 3116 "src/uri.c" +#line 3129 "src/uri.c" switch( (*p) ) { case 33: goto st187; case 35: goto tr151; @@ -3120,6 +3133,7 @@ case 186: case 61: goto st187; case 63: goto tr155; case 95: goto st187; + case 124: goto st187; case 126: goto st187; } if ( (*p) < 48 ) { @@ -3145,6 +3159,7 @@ case 187: case 61: goto st187; case 63: goto tr155; case 95: goto st187; + case 124: goto st187; case 126: goto st187; } if ( (*p) < 64 ) { @@ -3239,7 +3254,7 @@ case 118: if ( ++p == pe ) goto _test_eof188; case 188: -#line 3243 "src/uri.c" +#line 3258 "src/uri.c" switch( (*p) ) { case 33: goto st145; case 35: goto tr159; @@ -3719,7 +3734,7 @@ case 204: if ( ++p == pe ) goto _test_eof205; case 205: -#line 3723 "src/uri.c" +#line 3738 "src/uri.c" switch( (*p) ) { case 33: goto st145; case 35: goto tr159; @@ -3758,7 +3773,7 @@ case 205: if ( ++p == pe ) goto _test_eof206; case 206: -#line 3762 "src/uri.c" +#line 3777 "src/uri.c" switch( (*p) ) { case 33: goto tr174; case 35: goto tr175; @@ -3797,7 +3812,7 @@ case 206: if ( ++p == pe ) goto _test_eof207; case 207: -#line 3801 "src/uri.c" +#line 3816 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr151; @@ -3806,6 +3821,7 @@ case 207: case 61: goto st148; case 63: goto tr155; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 64 ) { @@ -3834,6 +3850,7 @@ case 208: case 91: goto st38; case 95: goto tr251; case 117: goto tr254; + case 124: goto st148; case 126: goto tr251; } if ( (*p) < 48 ) { @@ -3858,7 +3875,7 @@ case 208: if ( ++p == pe ) goto _test_eof209; case 209: -#line 3862 "src/uri.c" +#line 3879 "src/uri.c" switch( (*p) ) { case 33: goto st209; case 35: goto tr159; @@ -3869,6 +3886,7 @@ case 209: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -3890,7 +3908,7 @@ case 209: if ( ++p == pe ) goto _test_eof119; case 119: -#line 3894 "src/uri.c" +#line 3912 "src/uri.c" switch( (*p) ) { case 37: goto st209; case 117: goto st120; @@ -3975,7 +3993,7 @@ case 123: if ( ++p == pe ) goto _test_eof210; case 210: -#line 3979 "src/uri.c" +#line 3997 "src/uri.c" switch( (*p) ) { case 33: goto tr258; case 35: goto tr175; @@ -3987,6 +4005,7 @@ case 210: case 63: goto tr179; case 64: goto tr261; case 95: goto tr258; + case 124: goto st148; case 126: goto tr258; } if ( (*p) < 48 ) { @@ -4009,7 +4028,7 @@ case 210: if ( ++p == pe ) goto _test_eof211; case 211: -#line 4013 "src/uri.c" +#line 4032 "src/uri.c" switch( (*p) ) { case 33: goto st211; case 35: goto tr151; @@ -4020,6 +4039,7 @@ case 211: case 63: goto tr155; case 64: goto tr264; case 95: goto st211; + case 124: goto st148; case 126: goto st211; } if ( (*p) < 65 ) { @@ -4039,7 +4059,7 @@ case 211: if ( ++p == pe ) goto _test_eof124; case 124: -#line 4043 "src/uri.c" +#line 4063 "src/uri.c" switch( (*p) ) { case 37: goto st211; case 117: goto st125; @@ -4129,7 +4149,7 @@ case 128: if ( ++p == pe ) goto _test_eof212; case 212: -#line 4133 "src/uri.c" +#line 4153 "src/uri.c" switch( (*p) ) { case 33: goto tr265; case 35: goto tr151; @@ -4143,6 +4163,7 @@ case 212: case 91: goto st38; case 95: goto tr265; case 117: goto tr268; + case 124: goto st148; case 126: goto tr265; } if ( (*p) < 48 ) { @@ -4165,7 +4186,7 @@ case 212: if ( ++p == pe ) goto _test_eof213; case 213: -#line 4169 "src/uri.c" +#line 4190 "src/uri.c" switch( (*p) ) { case 33: goto st213; case 35: goto tr159; @@ -4176,6 +4197,7 @@ case 213: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4195,7 +4217,7 @@ case 213: if ( ++p == pe ) goto _test_eof129; case 129: -#line 4199 "src/uri.c" +#line 4221 "src/uri.c" switch( (*p) ) { case 37: goto st213; case 117: goto st130; @@ -4276,7 +4298,7 @@ case 133: if ( ++p == pe ) goto _test_eof214; case 214: -#line 4280 "src/uri.c" +#line 4302 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr175; @@ -4286,6 +4308,7 @@ case 214: case 63: goto tr179; case 64: goto st148; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 58 ) { @@ -4311,7 +4334,7 @@ case 214: if ( ++p == pe ) goto _test_eof215; case 215: -#line 4315 "src/uri.c" +#line 4338 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr186; @@ -4320,6 +4343,7 @@ case 215: case 61: goto st148; case 63: goto tr189; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 58 ) { @@ -4345,7 +4369,7 @@ case 215: if ( ++p == pe ) goto _test_eof216; case 216: -#line 4349 "src/uri.c" +#line 4373 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr186; @@ -4355,6 +4379,7 @@ case 216: case 63: goto tr189; case 64: goto st148; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 65 ) { @@ -4376,7 +4401,7 @@ case 216: if ( ++p == pe ) goto _test_eof217; case 217: -#line 4380 "src/uri.c" +#line 4405 "src/uri.c" switch( (*p) ) { case 33: goto st213; case 35: goto tr159; @@ -4389,6 +4414,7 @@ case 217: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4418,6 +4444,7 @@ case 218: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4448,6 +4475,7 @@ case 219: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4477,6 +4505,7 @@ case 220: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4507,6 +4536,7 @@ case 221: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4536,6 +4566,7 @@ case 222: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4565,6 +4596,7 @@ case 223: case 63: goto tr205; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4594,6 +4626,7 @@ case 224: case 63: goto tr205; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4622,6 +4655,7 @@ case 225: case 63: goto tr205; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4649,6 +4683,7 @@ case 226: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4678,6 +4713,7 @@ case 227: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4705,6 +4741,7 @@ case 228: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4734,6 +4771,7 @@ case 229: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4761,6 +4799,7 @@ case 230: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 48 ) { @@ -4790,6 +4829,7 @@ case 231: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4809,7 +4849,7 @@ case 231: if ( ++p == pe ) goto _test_eof232; case 232: -#line 4813 "src/uri.c" +#line 4853 "src/uri.c" switch( (*p) ) { case 33: goto st213; case 35: goto tr159; @@ -4821,6 +4861,7 @@ case 232: case 64: goto st148; case 95: goto st213; case 110: goto st233; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4847,6 +4888,7 @@ case 233: case 64: goto st148; case 95: goto st213; case 105: goto st234; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4873,6 +4915,7 @@ case 234: case 64: goto st148; case 95: goto st213; case 120: goto st235; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4898,6 +4941,7 @@ case 235: case 63: goto tr163; case 64: goto st148; case 95: goto st213; + case 124: goto st148; case 126: goto st213; } if ( (*p) < 65 ) { @@ -4919,7 +4963,7 @@ case 235: if ( ++p == pe ) goto _test_eof236; case 236: -#line 4923 "src/uri.c" +#line 4967 "src/uri.c" switch( (*p) ) { case 33: goto st211; case 35: goto tr186; @@ -4931,6 +4975,7 @@ case 236: case 63: goto tr189; case 64: goto tr264; case 95: goto st211; + case 124: goto st148; case 126: goto st211; } if ( (*p) < 48 ) { @@ -4955,7 +5000,7 @@ case 236: if ( ++p == pe ) goto _test_eof237; case 237: -#line 4959 "src/uri.c" +#line 5004 "src/uri.c" switch( (*p) ) { case 33: goto st211; case 35: goto tr186; @@ -4966,6 +5011,7 @@ case 237: case 63: goto tr189; case 64: goto tr264; case 95: goto st211; + case 124: goto st148; case 126: goto st211; } if ( (*p) < 65 ) { @@ -4989,7 +5035,7 @@ case 237: if ( ++p == pe ) goto _test_eof238; case 238: -#line 4993 "src/uri.c" +#line 5039 "src/uri.c" switch( (*p) ) { case 33: goto st209; case 35: goto tr159; @@ -5002,6 +5048,7 @@ case 238: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5031,6 +5078,7 @@ case 239: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5061,6 +5109,7 @@ case 240: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5090,6 +5139,7 @@ case 241: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5120,6 +5170,7 @@ case 242: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5149,6 +5200,7 @@ case 243: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5178,6 +5230,7 @@ case 244: case 63: goto tr205; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5207,6 +5260,7 @@ case 245: case 63: goto tr205; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5235,6 +5289,7 @@ case 246: case 63: goto tr205; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5262,6 +5317,7 @@ case 247: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5291,6 +5347,7 @@ case 248: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5318,6 +5375,7 @@ case 249: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5347,6 +5405,7 @@ case 250: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5374,6 +5433,7 @@ case 251: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 48 ) { @@ -5403,6 +5463,7 @@ case 252: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5424,7 +5485,7 @@ case 252: if ( ++p == pe ) goto _test_eof253; case 253: -#line 5428 "src/uri.c" +#line 5489 "src/uri.c" switch( (*p) ) { case 33: goto st209; case 35: goto tr159; @@ -5436,6 +5497,7 @@ case 253: case 64: goto tr257; case 95: goto st209; case 110: goto st254; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5462,6 +5524,7 @@ case 254: case 64: goto tr257; case 95: goto st209; case 105: goto st255; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5488,6 +5551,7 @@ case 255: case 64: goto tr257; case 95: goto st209; case 120: goto st256; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5513,6 +5577,7 @@ case 256: case 63: goto tr163; case 64: goto tr257; case 95: goto st209; + case 124: goto st148; case 126: goto st209; } if ( (*p) < 65 ) { @@ -5534,7 +5599,7 @@ case 256: if ( ++p == pe ) goto _test_eof257; case 257: -#line 5538 "src/uri.c" +#line 5603 "src/uri.c" switch( (*p) ) { case 33: goto st148; case 35: goto tr151; @@ -5543,6 +5608,7 @@ case 257: case 61: goto st148; case 63: goto tr155; case 95: goto st148; + case 124: goto st148; case 126: goto st148; } if ( (*p) < 64 ) { @@ -5567,6 +5633,7 @@ case 258: case 61: goto tr315; case 63: goto tr319; case 95: goto tr315; + case 124: goto st148; case 126: goto tr315; } if ( (*p) < 64 ) { @@ -5586,7 +5653,7 @@ case 258: if ( ++p == pe ) goto _test_eof259; case 259: -#line 5590 "src/uri.c" +#line 5657 "src/uri.c" switch( (*p) ) { case 33: goto st259; case 35: goto tr320; @@ -5596,6 +5663,7 @@ case 259: case 61: goto st259; case 63: goto tr322; case 95: goto st259; + case 124: goto st148; case 126: goto st259; } if ( (*p) < 64 ) { @@ -5615,7 +5683,7 @@ case 259: if ( ++p == pe ) goto _test_eof134; case 134: -#line 5619 "src/uri.c" +#line 5687 "src/uri.c" switch( (*p) ) { case 37: goto st259; case 117: goto st135; @@ -5693,7 +5761,7 @@ case 138: if ( ++p == pe ) goto _test_eof260; case 260: -#line 5697 "src/uri.c" +#line 5765 "src/uri.c" switch( (*p) ) { case 33: goto st260; case 35: goto tr320; @@ -5702,6 +5770,7 @@ case 260: case 61: goto st260; case 63: goto tr322; case 95: goto st260; + case 124: goto st260; case 126: goto st260; } if ( (*p) < 64 ) { @@ -5804,7 +5873,7 @@ case 143: if ( ++p == pe ) goto _test_eof261; case 261: -#line 5808 "src/uri.c" +#line 5877 "src/uri.c" switch( (*p) ) { case 33: goto st260; case 35: goto tr325; @@ -5814,6 +5883,7 @@ case 261: case 61: goto st260; case 63: goto tr327; case 95: goto st260; + case 124: goto st260; case 126: goto st260; } if ( (*p) < 64 ) { @@ -5837,7 +5907,7 @@ case 261: if ( ++p == pe ) goto _test_eof262; case 262: -#line 5841 "src/uri.c" +#line 5911 "src/uri.c" switch( (*p) ) { case 33: goto st145; case 35: goto tr159; @@ -6494,7 +6564,7 @@ case 265: #line 166 "src/uri.rl" { uri->path = s; uri->path_len = p - s; } break; -#line 6498 "src/uri.c" +#line 6568 "src/uri.c" } } diff --git a/src/uri.rl b/src/uri.rl index c44ef4b12272987aa5c8e7faddfe18cbae93b2ca..45cb13fbbdb68a9e3f63a5e55cd8a3a36f33e730 100644 --- a/src/uri.rl +++ b/src/uri.rl @@ -64,7 +64,7 @@ uri_parse(struct uri *uri, const char *p) | ("%u" xdigit xdigit xdigit xdigit)); pchar_nc = unreserved | pct_encoded | sub_delims | "@"; - pchar = pchar_nc | ":"; + pchar = pchar_nc | ":" | "|"; query = (pchar | "/" | "?")* >{ s = p; } diff --git a/test/app-tap/uri.test.lua b/test/app-tap/uri.test.lua index f3f2ae499ac8169169125c5d7fbe2861ca7050d0..2ce13ec44f26ad93edfdf4c295292789be222a9c 100755 --- a/test/app-tap/uri.test.lua +++ b/test/app-tap/uri.test.lua @@ -11,25 +11,25 @@ local function test_parse(test) local u u = uri.parse("scheme://login:password@host:service".. - "/path1/path2/path3?q1=v1&q2=v2#fragment") + "/path1/path2/path3?q1=v1&q2=v2&q3=v3:1|v3:2#fragment") test:is(u.scheme, "scheme", "scheme") test:is(u.login, "login", "login") test:is(u.password, "password", "password") test:is(u.host, "host", "host") test:is(u.service, "service", "service") test:is(u.path, "/path1/path2/path3", "path") - test:is(u.query, "q1=v1&q2=v2", "query") + test:is(u.query, "q1=v1&q2=v2&q3=v3:1|v3:2", "query") test:is(u.fragment, "fragment", "fragment") u = uri.parse("scheme://login:@host:service".. - "/path1/path2/path3?q1=v1&q2=v2#fragment") + "/path1/path2/path3?q1=v1&q2=v2&q3=v3:1|v3:2#fragment") test:is(u.scheme, "scheme", "scheme") test:is(u.login, "login", "login") test:is(u.password, "", "password") test:is(u.host, "host", "host") test:is(u.service, "service", "service") test:is(u.path, "/path1/path2/path3", "path") - test:is(u.query, "q1=v1&q2=v2", "query") + test:is(u.query, "q1=v1&q2=v2&q3=v3:1|v3:2", "query") test:is(u.fragment, "fragment", "fragment") u = uri.parse('login@host')