Commit cd767e425d1eb154cfb831ab5dee39da7ac48fb7
1 parent
eef3fb16
Fix cookies value parsing.
Fix some path concerning jQuery files
Showing
5 changed files
with
60 additions
and
15 deletions
Show diff stats
web/CXM_cookies.anubis
| ... | ... | @@ -141,7 +141,31 @@ define Bool |
| 141 | 141 | if c +< 124 then false else |
| 142 | 142 | if c = 124 then true else |
| 143 | 143 | c = 126. |
| 144 | - | |
| 144 | + | |
| 145 | + value char are token added of =, (, ) | |
| 146 | + | |
| 147 | +define Bool | |
| 148 | + is_value_char | |
| 149 | + ( | |
| 150 | + Word8 c | |
| 151 | + ) = | |
| 152 | + if c +< 33 then false else | |
| 153 | + if c +< 34 then true else | |
| 154 | + if c +< 35 then false else | |
| 155 | + if c +< 44 then true else | |
| 156 | + if c +< 45 then false else | |
| 157 | + if c +< 47 then true else | |
| 158 | + if c +< 48 then false else | |
| 159 | + if c +< 58 then true else | |
| 160 | + if c +< 61 then false else | |
| 161 | + if c +< 62 then true else | |
| 162 | + if c +< 65 then false else | |
| 163 | + if c +< 91 then true else | |
| 164 | + if c +< 94 then false else | |
| 165 | + if c +< 123 then true else | |
| 166 | + if c +< 124 then false else | |
| 167 | + if c = 124 then true else | |
| 168 | + c = 126. | |
| 145 | 169 | |
| 146 | 170 | From the grammar, it is clear that atomic entities (called 'tokens' by YACC) are: |
| 147 | 171 | |
| ... | ... | @@ -215,14 +239,15 @@ define One |
| 215 | 239 | define Atom |
| 216 | 240 | read_token |
| 217 | 241 | ( |
| 218 | - List(Word8) so_far // contains at least 1 character | |
| 242 | + List(Word8) so_far, // contains at least 1 character | |
| 243 | + (Word8) -> Bool is_valid_char | |
| 219 | 244 | ) = |
| 220 | 245 | if next_char is |
| 221 | 246 | { |
| 222 | - failure then recognize_keyword(implode(reverse(so_far))), | |
| 223 | - success(c) then | |
| 224 | - if is_token_char(c) | |
| 225 | - then read_token([c . so_far]) | |
| 247 | + failure then recognize_keyword(implode(reverse(so_far))), | |
| 248 | + success(c) then | |
| 249 | + if is_valid_char(c) | |
| 250 | + then read_token([c . so_far], is_valid_char) | |
| 226 | 251 | else unput_char; recognize_keyword(implode(reverse(so_far))) |
| 227 | 252 | }. |
| 228 | 253 | |
| ... | ... | @@ -260,7 +285,7 @@ define Atom |
| 260 | 285 | failure then end_of_input, |
| 261 | 286 | success(c) then |
| 262 | 287 | if is_blank(c) then read_atom else // skip blanks |
| 263 | - if is_token_char(c) then read_token([c]) else | |
| 288 | + if is_token_char(c) then read_token([c], is_token_char) else | |
| 264 | 289 | if c = '\"' then read_quoted_string([]) else |
| 265 | 290 | if c = '=' then equals else |
| 266 | 291 | if c = ':' then colon else |
| ... | ... | @@ -271,7 +296,26 @@ define Atom |
| 271 | 296 | unput_atoms <- t; h |
| 272 | 297 | }. |
| 273 | 298 | |
| 274 | - | |
| 299 | +define Atom | |
| 300 | + read_value | |
| 301 | + = | |
| 302 | + if *unput_atoms is | |
| 303 | + { | |
| 304 | + [ ] then | |
| 305 | + if next_char is | |
| 306 | + { | |
| 307 | + failure then end_of_input, | |
| 308 | + success(c) then | |
| 309 | + if is_blank(c) then read_value else // skip blanks | |
| 310 | + if is_value_char(c) then read_token([c], is_value_char) else | |
| 311 | + if c = '\"' then read_quoted_string([]) else | |
| 312 | + if c = ';' then semi_colon else | |
| 313 | + error | |
| 314 | + }, | |
| 315 | + [h . t] then | |
| 316 | + unput_atoms <- t; h | |
| 317 | + }. | |
| 318 | + | |
| 275 | 319 | Reading an attribute-value pair. |
| 276 | 320 | |
| 277 | 321 | type AttrVal: |
| ... | ... | @@ -422,7 +466,8 @@ define Maybe(Cookie) |
| 422 | 466 | ) = |
| 423 | 467 | if read_attr_val is |
| 424 | 468 | { |
| 425 | - failure then success(cookie( | |
| 469 | + failure then | |
| 470 | + success(cookie( | |
| 426 | 471 | *server_name, |
| 427 | 472 | name, |
| 428 | 473 | value, |
| ... | ... | @@ -442,7 +487,8 @@ define Maybe(Cookie) |
| 442 | 487 | ( |
| 443 | 488 | String name |
| 444 | 489 | ) = |
| 445 | - with a = read_atom, | |
| 490 | + with a = read_value, | |
| 491 | + | |
| 446 | 492 | if a is token(value) then read_cookie_n_e_v(name,value,[]) else |
| 447 | 493 | if a is quoted_string(value) then read_cookie_n_e_v(name,value,[]) else |
| 448 | 494 | unput_atom(a); failure. | ... | ... |
web/CXM_making_a_web_site.anubis
| ... | ... | @@ -1836,7 +1836,6 @@ define (String state_name) -> PreviousState($State) |
| 1836 | 1836 | ) = |
| 1837 | 1837 | (String state_name) |-> |
| 1838 | 1838 | with file_path = state_directory+"/s"+state_name, |
| 1839 | - //println("Retreive state ["+file_path+"]"); | |
| 1840 | 1839 | if (RetrieveResult((Int,$State)))retrieve(file_path) is ok(d) |
| 1841 | 1840 | then ( |
| 1842 | 1841 | if d is (time_stamp,s) then | ... | ... |
web/jQuery/CXM_jquery_button.anubis
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | |
| 10 | 10 | read calexium_lib/web/CXM_making_a_web_site.anubis |
| 11 | 11 | read calexium_lib/web/CXM_jquery.anubis |
| 12 | -read calexium_lib/web/CXM_jquery_icons.anubis | |
| 12 | +read calexium_lib/web/jQuery/CXM_jquery_icons.anubis | |
| 13 | 13 | read tools/basis.anubis |
| 14 | 14 | read system/string.anubis |
| 15 | 15 | ... | ... |
web/jQuery/CXM_jquery_datatable.anubis
| ... | ... | @@ -9,8 +9,8 @@ |
| 9 | 9 | |
| 10 | 10 | read calexium_lib/web/CXM_making_a_web_site.anubis |
| 11 | 11 | read calexium_lib/web/CXM_jquery.anubis |
| 12 | -read calexium_lib/web/CXM_jquery_datatable_types.anubis | |
| 13 | -read calexium_lib/web/jquery/CXM_jquery_datatable_translation.anubis | |
| 12 | +read calexium_lib/web/jQuery/CXM_jquery_datatable_types.anubis | |
| 13 | +read calexium_lib/web/jQuery/CXM_jquery_datatable_translation.anubis | |
| 14 | 14 | read tools/basis.anubis |
| 15 | 15 | read system/string.anubis |
| 16 | 16 | read system/convert.anubis | ... | ... |
web/jQuery/CXM_jquery_eudock.anubis
| ... | ... | @@ -9,7 +9,7 @@ |
| 9 | 9 | |
| 10 | 10 | read calexium_lib/web/CXM_making_a_web_site.anubis |
| 11 | 11 | read calexium_lib/web/CXM_jquery.anubis |
| 12 | -read calexium_lib/web/CXM_jquery_eudock_types.anubis | |
| 12 | +read calexium_lib/web/jQuery/CXM_jquery_eudock_types.anubis | |
| 13 | 13 | read tools/basis.anubis |
| 14 | 14 | read system/string.anubis |
| 15 | 15 | read system/convert.anubis | ... | ... |