Index: src/OFHTTPCookie.m ================================================================== --- src/OFHTTPCookie.m +++ src/OFHTTPCookie.m @@ -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); Index: src/OFHTTPResponse.m ================================================================== --- src/OFHTTPResponse.m +++ src/OFHTTPResponse.m @@ -120,58 +120,58 @@ encodingForContentType(OFString *contentType) { const char *UTF8String = contentType.UTF8String; size_t last, length = contentType.UTF8StringLength; enum { - STATE_TYPE, - STATE_BEFORE_PARAM_NAME, - STATE_PARAM_NAME, - STATE_PARAM_VALUE_OR_QUOTE, - STATE_PARAM_VALUE, - STATE_PARAM_QUOTED_VALUE, - STATE_AFTER_PARAM_VALUE - } state = STATE_TYPE; + StateType, + StateBeforeParamName, + StateParamName, + StateParamValueOrQuote, + StateParamValue, + StateParamQuotedValue, + StateAfterParamValue + } state = StateType; OFString *name = nil, *value = nil, *charset = nil; OFStringEncoding ret; last = 0; for (size_t i = 0; i < length; i++) { switch (state) { - case STATE_TYPE: + case StateType: if (UTF8String[i] == ';') { - state = STATE_BEFORE_PARAM_NAME; + state = StateBeforeParamName; last = i + 1; } break; - case STATE_BEFORE_PARAM_NAME: + case StateBeforeParamName: if (UTF8String[i] == ' ') last = i + 1; else { - state = STATE_PARAM_NAME; + state = StateParamName; i--; } break; - case STATE_PARAM_NAME: + case StateParamName: if (UTF8String[i] == '=') { name = [OFString stringWithUTF8String: UTF8String + last length: i - last]; - state = STATE_PARAM_VALUE_OR_QUOTE; + state = StateParamValueOrQuote; last = i + 1; } break; - case STATE_PARAM_VALUE_OR_QUOTE: + case StateParamValueOrQuote: if (UTF8String[i] == '"') { - state = STATE_PARAM_QUOTED_VALUE; + state = StateParamQuotedValue; last = i + 1; } else { - state = STATE_PARAM_VALUE; + state = StateParamValue; i--; } break; - case STATE_PARAM_VALUE: + case StateParamValue: if (UTF8String[i] == ';') { value = [OFString stringWithUTF8String: UTF8String + last length: i - last]; value = @@ -178,36 +178,36 @@ value.stringByDeletingTrailingWhitespaces; if ([name isEqual: @"charset"]) charset = value; - state = STATE_BEFORE_PARAM_NAME; + state = StateBeforeParamName; last = i + 1; } break; - case STATE_PARAM_QUOTED_VALUE: + case StateParamQuotedValue: if (UTF8String[i] == '"') { value = [OFString stringWithUTF8String: UTF8String + last length: i - last]; if ([name isEqual: @"charset"]) charset = value; - state = STATE_AFTER_PARAM_VALUE; + state = StateAfterParamValue; } break; - case STATE_AFTER_PARAM_VALUE: + case StateAfterParamValue: if (UTF8String[i] == ';') { - state = STATE_BEFORE_PARAM_NAME; + state = StateBeforeParamName; last = i + 1; } else if (UTF8String[i] != ' ') return OFStringEncodingAutodetect; break; } } - if (state == STATE_PARAM_VALUE) { + if (state == StateParamValue) { value = [OFString stringWithUTF8String: UTF8String + last length: length - last]; value = value.stringByDeletingTrailingWhitespaces; if ([name isEqual: @"charset"]) Index: src/OFHTTPServer.m ================================================================== --- src/OFHTTPServer.m +++ src/OFHTTPServer.m @@ -74,13 +74,13 @@ @public OFStreamSocket *_socket; OFHTTPServer *_server; OFTimer *_timer; enum { - AWAITING_PROLOG, - PARSING_HEADERS, - SEND_RESPONSE + StateAwaitingProlog, + StateParsingHeaders, + StateSendResponse } _state; uint8_t _HTTPMinorVersion; OFHTTPRequestMethod _method; OFString *_host, *_path; uint16_t _port; @@ -294,11 +294,11 @@ scheduledTimerWithTimeInterval: 10 target: _socket selector: @selector( cancelAsyncRequests) repeats: false] retain]; - _state = AWAITING_PROLOG; + _state = StateAwaitingProlog; } @catch (id e) { [self release]; @throw e; } @@ -328,13 +328,13 @@ if (line == nil || exception != nil) return false; @try { switch (_state) { - case AWAITING_PROLOG: + case StateAwaitingProlog: return [self parseProlog: line]; - case PARSING_HEADERS: + case StateParsingHeaders: return [self parseHeaders: line]; default: return false; } } @catch (OFWriteFailedException *e) { @@ -393,11 +393,11 @@ if (![path hasPrefix: @"/"]) return [self sendErrorAndClose: 400]; _headers = [[OFMutableDictionary alloc] init]; _path = [path copy]; - _state = PARSING_HEADERS; + _state = StateParsingHeaders; return true; } - (bool)parseHeaders: (OFString *)line @@ -435,11 +435,11 @@ [_timer invalidate]; [_timer release]; _timer = nil; } - _state = SEND_RESPONSE; + _state = StateSendResponse; [self createResponse]; return false; } Index: src/OFKernelEventObserver.m ================================================================== --- src/OFKernelEventObserver.m +++ src/OFKernelEventObserver.m @@ -49,18 +49,10 @@ #ifdef OF_AMIGAOS # include #endif -enum { - QUEUE_ADD = 0, - QUEUE_REMOVE = 1, - QUEUE_READ = 0, - QUEUE_WRITE = 2 -}; -#define QUEUE_ACTION (QUEUE_ADD | QUEUE_REMOVE) - @implementation OFKernelEventObserver @synthesize delegate = _delegate; #ifdef OF_AMIGAOS @synthesize execSignalMask = _execSignalMask; #endif Index: src/OFNumber.m ================================================================== --- src/OFNumber.m +++ src/OFNumber.m @@ -41,24 +41,24 @@ @interface OFNumberSingleton: OFNumber @end #ifdef OF_OBJFW_RUNTIME -enum { - TAG_CHAR, - TAG_SHORT, - TAG_INT, - TAG_LONG, - TAG_LONG_LONG, - TAG_UNSIGNED_CHAR, - TAG_UNSIGNED_SHORT, - TAG_UNSIGNED_INT, - TAG_UNSIGNED_LONG, - TAG_UNSIGNED_LONG_LONG, +enum Tag { + TagChar, + TagShort, + TagInt, + TagLong, + TagLongLong, + TagUnsignedChar, + TagUnsignedShort, + TagUnsignedInt, + TagUnsignedLong, + TagUnsignedLongLong, }; -# define TAG_BITS 4 -# define TAG_MASK 0xF +static const uint_fast8_t tagBits = 4; +static const uintptr_t tagMask = 0xF; @interface OFTaggedPointerNumber: OFNumberSingleton @end #endif @@ -170,13 +170,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, charZeroNumberInit); return (id)charZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if ((unsigned char)value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if ((unsigned char)value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)(unsigned char)value << TAG_BITS) | TAG_CHAR); + ((uintptr_t)(unsigned char)value << tagBits) | TagChar); if (ret != nil) return ret; #endif } @@ -189,13 +189,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, shortZeroNumberInit); return (id)shortZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if ((unsigned short)value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if ((unsigned short)value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)(unsigned short)value << TAG_BITS) | TAG_SHORT); + ((uintptr_t)(unsigned short)value << tagBits) | TagShort); if (ret != nil) return ret; #endif } @@ -208,13 +208,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, intZeroNumberInit); return (id)intZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if ((unsigned int)value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if ((unsigned int)value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)(unsigned int)value << TAG_BITS) | TAG_INT); + ((uintptr_t)(unsigned int)value << tagBits) | TagInt); if (ret != nil) return ret; #endif } @@ -227,13 +227,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, longZeroNumberInit); return (id)longZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if ((unsigned long)value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if ((unsigned long)value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)(unsigned long)value << TAG_BITS) | TAG_LONG); + ((uintptr_t)(unsigned long)value << tagBits) | TagLong); if (ret != nil) return ret; #endif } @@ -246,14 +246,14 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, longLongZeroNumberInit); return (id)longLongZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if ((unsigned long long)value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if ((unsigned long long)value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)(unsigned long long)value << TAG_BITS) | - TAG_LONG_LONG); + ((uintptr_t)(unsigned long long)value << tagBits) | + TagLongLong); if (ret != nil) return ret; #endif } @@ -266,13 +266,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, unsignedCharZeroNumberInit); return (id)unsignedCharZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if (value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if (value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)value << TAG_BITS) | TAG_UNSIGNED_CHAR); + ((uintptr_t)value << tagBits) | TagUnsignedChar); if (ret != nil) return ret; #endif } @@ -285,13 +285,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, unsignedShortZeroNumberInit); return (id)unsignedShortZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if (value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if (value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)value << TAG_BITS) | TAG_UNSIGNED_SHORT); + ((uintptr_t)value << tagBits) | TagUnsignedShort); if (ret != nil) return ret; #endif } @@ -304,13 +304,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, unsignedIntZeroNumberInit); return (id)unsignedIntZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if (value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if (value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)value << TAG_BITS) | TAG_UNSIGNED_INT); + ((uintptr_t)value << tagBits) | TagUnsignedInt); if (ret != nil) return ret; #endif } @@ -323,13 +323,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, unsignedLongZeroNumberInit); return (id)unsignedLongZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if (value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if (value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)value << TAG_BITS) | TAG_UNSIGNED_LONG); + ((uintptr_t)value << tagBits) | TagUnsignedLong); if (ret != nil) return ret; #endif } @@ -342,13 +342,13 @@ if (value == 0) { static OFOnceControl onceControl = OFOnceControlInitValue; OFOnce(&onceControl, unsignedLongLongZeroNumberInit); return (id)unsignedLongLongZeroNumber; #ifdef OF_OBJFW_RUNTIME - } else if (value <= (UINTPTR_MAX >> TAG_BITS)) { + } else if (value <= (UINTPTR_MAX >> tagBits)) { id ret = objc_createTaggedPointer(numberTag, - ((uintptr_t)value << TAG_BITS) | TAG_UNSIGNED_LONG_LONG); + ((uintptr_t)value << tagBits) | TagUnsignedLongLong); if (ret != nil) return ret; #endif } @@ -412,62 +412,62 @@ @implementation OFTaggedPointerNumber - (const char *)objCType { uintptr_t value = object_getTaggedPointerValue(self); - switch (value & TAG_MASK) { - case TAG_CHAR: + switch (value & tagMask) { + case TagChar: return @encode(signed char); - case TAG_SHORT: + case TagShort: return @encode(short); - case TAG_INT: + case TagInt: return @encode(int); - case TAG_LONG: + case TagLong: return @encode(long); - case TAG_LONG_LONG: + case TagLongLong: return @encode(long long); - case TAG_UNSIGNED_CHAR: + case TagUnsignedChar: return @encode(unsigned char); - case TAG_UNSIGNED_SHORT: + case TagUnsignedShort: return @encode(unsigned short); - case TAG_UNSIGNED_INT: + case TagUnsignedInt: return @encode(unsigned int); - case TAG_UNSIGNED_LONG: + case TagUnsignedLong: return @encode(unsigned long); - case TAG_UNSIGNED_LONG_LONG: + case TagUnsignedLongLong: return @encode(unsigned long long); default: @throw [OFInvalidArgumentException exception]; } } -# define RETURN_VALUE \ - uintptr_t value = object_getTaggedPointerValue(self); \ - \ - switch (value & TAG_MASK) { \ - case TAG_CHAR: \ - return (signed char)(unsigned char)(value >> TAG_BITS); \ - case TAG_SHORT: \ - return (short)(unsigned short)(value >> TAG_BITS); \ - case TAG_INT: \ - return (int)(unsigned int)(value >> TAG_BITS); \ - case TAG_LONG: \ - return (long)(unsigned long)(value >> TAG_BITS); \ - case TAG_LONG_LONG: \ - return (long long)(unsigned long long)(value >> TAG_BITS); \ - case TAG_UNSIGNED_CHAR: \ - return (unsigned char)(value >> TAG_BITS); \ - case TAG_UNSIGNED_SHORT: \ - return (unsigned short)(value >> TAG_BITS); \ - case TAG_UNSIGNED_INT: \ - return (unsigned int)(value >> TAG_BITS); \ - case TAG_UNSIGNED_LONG: \ - return (unsigned long)(value >> TAG_BITS); \ - case TAG_UNSIGNED_LONG_LONG: \ - return (unsigned long long)(value >> TAG_BITS); \ - default: \ - @throw [OFInvalidArgumentException exception]; \ +# define RETURN_VALUE \ + uintptr_t value = object_getTaggedPointerValue(self); \ + \ + switch (value & tagMask) { \ + case TagChar: \ + return (signed char)(unsigned char)(value >> tagBits); \ + case TagShort: \ + return (short)(unsigned short)(value >> tagBits); \ + case TagInt: \ + return (int)(unsigned int)(value >> tagBits); \ + case TagLong: \ + return (long)(unsigned long)(value >> tagBits); \ + case TagLongLong: \ + return (long long)(unsigned long long)(value >> tagBits); \ + case TagUnsignedChar: \ + return (unsigned char)(value >> tagBits); \ + case TagUnsignedShort: \ + return (unsigned short)(value >> tagBits); \ + case TagUnsignedInt: \ + return (unsigned int)(value >> tagBits); \ + case TagUnsignedLong: \ + return (unsigned long)(value >> tagBits); \ + case TagUnsignedLongLong: \ + return (unsigned long long)(value >> tagBits); \ + default: \ + @throw [OFInvalidArgumentException exception]; \ } - (long long)longLongValue { RETURN_VALUE } Index: utils/ofhttp/OFHTTP.m ================================================================== --- utils/ofhttp/OFHTTP.m +++ utils/ofhttp/OFHTTP.m @@ -130,18 +130,18 @@ { void *pool; const char *UTF8String; size_t UTF8StringLength; enum { - DISPOSITION_TYPE, - DISPOSITION_TYPE_SEMICOLON, - DISPOSITION_PARAM_NAME_SKIP_SPACE, - DISPOSITION_PARAM_NAME, - DISPOSITION_PARAM_VALUE, - DISPOSITION_PARAM_QUOTED, - DISPOSITION_PARAM_UNQUOTED, - DISPOSITION_EXPECT_SEMICOLON + StateDispositionType, + StateDispositionTypeSemicolon, + StateDispositionParamNameSkipSpace, + StateDispositionParamName, + StateDispositionParamValue, + StateDispositionParamQuoted, + StateDispositionParamUnquoted, + StateDispositionExpectSemicolon } state; size_t last; OFString *type = nil, *paramName = nil, *paramValue; OFMutableDictionary *params; OFString *fileName; @@ -151,76 +151,76 @@ pool = objc_autoreleasePoolPush(); UTF8String = contentDisposition.UTF8String; UTF8StringLength = contentDisposition.UTF8StringLength; - state = DISPOSITION_TYPE; + state = StateDispositionType; params = [OFMutableDictionary dictionary]; last = 0; for (size_t i = 0; i < UTF8StringLength; i++) { switch (state) { - case DISPOSITION_TYPE: + case StateDispositionType: if (UTF8String[i] == ';' || UTF8String[i] == ' ') { type = [OFString stringWithUTF8String: UTF8String length: i]; state = (UTF8String[i] == ';' - ? DISPOSITION_PARAM_NAME_SKIP_SPACE - : DISPOSITION_TYPE_SEMICOLON); + ? StateDispositionParamNameSkipSpace + : StateDispositionTypeSemicolon); last = i + 1; } break; - case DISPOSITION_TYPE_SEMICOLON: + case StateDispositionTypeSemicolon: if (UTF8String[i] == ';') { - state = DISPOSITION_PARAM_NAME_SKIP_SPACE; + state = StateDispositionParamNameSkipSpace; last = i + 1; } else if (UTF8String[i] != ' ') { objc_autoreleasePoolPop(pool); return nil; } break; - case DISPOSITION_PARAM_NAME_SKIP_SPACE: + case StateDispositionParamNameSkipSpace: if (UTF8String[i] != ' ') { - state = DISPOSITION_PARAM_NAME; + state = StateDispositionParamName; last = i; i--; } break; - case DISPOSITION_PARAM_NAME: + case StateDispositionParamName: if (UTF8String[i] == '=') { paramName = [OFString stringWithUTF8String: UTF8String + last length: i - last]; - state = DISPOSITION_PARAM_VALUE; + state = StateDispositionParamValue; } break; - case DISPOSITION_PARAM_VALUE: + case StateDispositionParamValue: if (UTF8String[i] == '"') { - state = DISPOSITION_PARAM_QUOTED; + state = StateDispositionParamQuoted; last = i + 1; } else { - state = DISPOSITION_PARAM_UNQUOTED; + state = StateDispositionParamUnquoted; last = i; i--; } break; - case DISPOSITION_PARAM_QUOTED: + case StateDispositionParamQuoted: if (UTF8String[i] == '"') { paramValue = [OFString stringWithUTF8String: UTF8String + last length: i - last]; [params setObject: paramValue forKey: paramName.lowercaseString]; - state = DISPOSITION_EXPECT_SEMICOLON; + state = StateDispositionExpectSemicolon; } break; - case DISPOSITION_PARAM_UNQUOTED: + case StateDispositionParamUnquoted: if (UTF8String[i] <= 31 || UTF8String[i] >= 127) return nil; switch (UTF8String[i]) { case ' ': case '"': case '(': case ')': case ',': @@ -234,34 +234,34 @@ length: i - last]; [params setObject: paramValue forKey: paramName.lowercaseString]; - state = DISPOSITION_PARAM_NAME_SKIP_SPACE; + state = StateDispositionParamNameSkipSpace; break; } break; - case DISPOSITION_EXPECT_SEMICOLON: + case StateDispositionExpectSemicolon: if (UTF8String[i] == ';') { - state = DISPOSITION_PARAM_NAME_SKIP_SPACE; + state = StateDispositionParamNameSkipSpace; last = i + 1; } else if (UTF8String[i] != ' ') { objc_autoreleasePoolPop(pool); return nil; } break; } } - if (state == DISPOSITION_PARAM_UNQUOTED) { + if (state == StateDispositionParamUnquoted) { paramValue = [OFString stringWithUTF8String: UTF8String + last length: UTF8StringLength - last]; [params setObject: paramValue forKey: paramName.lowercaseString]; - } else if (state != DISPOSITION_EXPECT_SEMICOLON) { + } else if (state != StateDispositionExpectSemicolon) { objc_autoreleasePoolPop(pool); return nil; } if (![type isEqual: @"attachment"] ||