@@ -69,50 +69,50 @@ OFString *string = [headerFields objectForKey: @"Set-Cookie"]; OFString *domain = URL.host; const OFUnichar *characters = string.characters; size_t length = string.length, last = 0; enum { - STATE_PRE_NAME, - STATE_NAME, - STATE_EXPECT_VALUE, - STATE_VALUE, - STATE_QUOTED_VALUE, - STATE_POST_QUOTED_VALUE, - STATE_PRE_ATTR_NAME, - STATE_ATTR_NAME, - STATE_ATTR_VALUE - } state = STATE_PRE_NAME; - OFString *name = nil, *value = nil; - - for (size_t i = 0; i < length; i++) { - switch (state) { - case STATE_PRE_NAME: - if (characters[i] != ' ') { - state = STATE_NAME; - last = i; - i--; - } - break; - case STATE_NAME: - if (characters[i] == '=') { - name = [string substringWithRange: - OFRangeMake(last, i - last)]; - state = STATE_EXPECT_VALUE; - } - break; - case STATE_EXPECT_VALUE: - if (characters[i] == '"') { - state = STATE_QUOTED_VALUE; - last = i + 1; - } else { - state = STATE_VALUE; - last = i; - } - - i--; - break; - case STATE_VALUE: + StatePreName, + StateName, + StateExpectValue, + StateValue, + StateQuotedValue, + StatePostQuotedValue, + StatePreAttrName, + StateAttrName, + StateAttrValue + } state = StatePreName; + OFString *name = nil, *value = nil; + + for (size_t i = 0; i < length; i++) { + switch (state) { + case StatePreName: + if (characters[i] != ' ') { + state = StateName; + last = i; + i--; + } + break; + case StateName: + if (characters[i] == '=') { + name = [string substringWithRange: + OFRangeMake(last, i - last)]; + state = StateExpectValue; + } + break; + case StateExpectValue: + if (characters[i] == '"') { + state = StateQuotedValue; + last = i + 1; + } else { + state = StateValue; + last = i; + } + + i--; + break; + case StateValue: if (characters[i] == ';' || characters[i] == ',') { value = [string substringWithRange: OFRangeMake(last, i - last)]; [ret addObject: @@ -119,61 +119,61 @@ [OFHTTPCookie cookieWithName: name value: value domain: domain]]; state = (characters[i] == ';' - ? STATE_PRE_ATTR_NAME : STATE_PRE_NAME); + ? StatePreAttrName : StatePreName); } break; - case STATE_QUOTED_VALUE: + case StateQuotedValue: if (characters[i] == '"') { value = [string substringWithRange: OFRangeMake(last, i - last)]; [ret addObject: [OFHTTPCookie cookieWithName: name value: value domain: domain]]; - state = STATE_POST_QUOTED_VALUE; + state = StatePostQuotedValue; } break; - case STATE_POST_QUOTED_VALUE: + case StatePostQuotedValue: if (characters[i] == ';') - state = STATE_PRE_ATTR_NAME; + state = StatePreAttrName; else if (characters[i] == ',') - state = STATE_PRE_NAME; + state = StatePreName; else @throw [OFInvalidFormatException exception]; break; - case STATE_PRE_ATTR_NAME: + case StatePreAttrName: if (characters[i] != ' ') { - state = STATE_ATTR_NAME; + state = StateAttrName; last = i; i--; } break; - case STATE_ATTR_NAME: + case StateAttrName: if (characters[i] == '=') { name = [string substringWithRange: OFRangeMake(last, i - last)]; - state = STATE_ATTR_VALUE; + state = StateAttrValue; last = i + 1; } else if (characters[i] == ';' || characters[i] == ',') { name = [string substringWithRange: OFRangeMake(last, i - last)]; handleAttribute(ret.lastObject, name, nil); state = (characters[i] == ';' - ? STATE_PRE_ATTR_NAME : STATE_PRE_NAME); + ? StatePreAttrName : StatePreName); } break; - case STATE_ATTR_VALUE: + case StateAttrValue: if (characters[i] == ';' || characters[i] == ',') { value = [string substringWithRange: OFRangeMake(last, i - last)]; /* @@ -196,47 +196,47 @@ break; handleAttribute(ret.lastObject, name, value); state = (characters[i] == ';' - ? STATE_PRE_ATTR_NAME : STATE_PRE_NAME); + ? StatePreAttrName : StatePreName); } break; } } switch (state) { - case STATE_PRE_NAME: - case STATE_POST_QUOTED_VALUE: - case STATE_PRE_ATTR_NAME: + case StatePreName: + case StatePostQuotedValue: + case StatePreAttrName: break; - case STATE_NAME: - case STATE_QUOTED_VALUE: + case StateName: + case StateQuotedValue: @throw [OFInvalidFormatException exception]; break; - case STATE_VALUE: + case StateValue: value = [string substringWithRange: OFRangeMake(last, length - last)]; [ret addObject: [OFHTTPCookie cookieWithName: name value: value domain: domain]]; break; /* We end up here if the cookie is just foo= */ - case STATE_EXPECT_VALUE: + case StateExpectValue: [ret addObject: [OFHTTPCookie cookieWithName: name value: @"" domain: domain]]; break; - case STATE_ATTR_NAME: + case StateAttrName: if (last != length) { name = [string substringWithRange: OFRangeMake(last, length - last)]; handleAttribute(ret.lastObject, name, nil); } break; - case STATE_ATTR_VALUE: + case StateAttrValue: value = [string substringWithRange: OFRangeMake(last, length - last)]; handleAttribute(ret.lastObject, name, value);