diff --git a/ChangeLog b/ChangeLog index e4256d9..2a9221f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2010-06-18 David Wetzel + * GSWeb/GSWContext.m + - computeQueryDictionaryWithPath:queryDictionary:otherQueryDictionary + use boolValue. + This fixes ?wosid in links where it not has to be. + * GSWeb/GSWMessage.h + remove _contentEncodingIMP, GSWMessage_contentEncoding + * GSWeb/GSWMessage.m + remove contentEncodingSEL, GSWMessage_contentEncoding() + * GSWeb/GSWUtils.h + remove NSStringEncoding + remove + encodingNamed: + * GSWeb/GSWUtils.m + remove encodingsByName + remove + encodingNamed: + * GSWeb/GSWResponse.h + remove GSWResponse_contentEncoding + * GSWeb/GSWBundle.m + use [GSMimeDocument encodingFromCharset:encodingObject] + not + encodingNamed (which we trashed above) + 2010-06-17 David Wetzel * GSWAdaptors/Apache2/mod_gsw.c minor cleanups, avoid missing filename message to logs diff --git a/GSWeb/GSWBundle.m b/GSWeb/GSWBundle.m index 997a3cc..c0945b4 100644 --- a/GSWeb/GSWBundle.m +++ b/GSWeb/GSWBundle.m @@ -38,6 +38,7 @@ RCS_ID("$Id$") #include "GSWeb.h" #include #include "WOKeyValueUnarchiver.h" +#include //==================================================================== @interface GSWBundleUnarchiverDelegate : NSObject @@ -842,14 +843,20 @@ RCS_ID("$Id$") //NSLog(@"encodingObject is '%@'", encodingObject); //encodingObject is 'NSISOLatin1StringEncoding' //not very cool to make a int into a string and some time later a string.. - encodingObject=GSWIntToNSString([NSString encodingNamed: encodingObject]); + + encoding = [GSMimeDocument encodingFromCharset:encodingObject]; + + if ((encoding == 0)) { + [NSException raise: NSInvalidArgumentException + format: @"Resource named %@ -- unknown encoding '%@'", aName, encodingObject]; + } + + encodingObject=GSWIntToNSString(encoding); [_encodingCache setObject:encodingObject forKey:aName]; } } } - if (encodingObject) - encoding=[encodingObject intValue]; } NS_HANDLER { diff --git a/GSWeb/GSWContext.m b/GSWeb/GSWContext.m index b4b5537..a33d3fe 100644 --- a/GSWeb/GSWContext.m +++ b/GSWeb/GSWContext.m @@ -1884,8 +1884,7 @@ If none, try request languages } } - // CHECKME: can [newQueryDictionary sessionID] be a NO/FALSE value? - if ((sessionId != nil) && ([newQueryDictionary sessionID] == nil)) { + if ((sessionId != nil) && ([[newQueryDictionary sessionID] boolValue])) { [newQueryDictionary setObject:sessionId forKey:[GSWApp sessionIdKey]]; } else { diff --git a/GSWeb/GSWMessage.h b/GSWeb/GSWMessage.h index 05ea0dd..a518489 100644 --- a/GSWeb/GSWMessage.h +++ b/GSWeb/GSWMessage.h @@ -38,7 +38,6 @@ typedef struct _GSWMessageIMPs { // Instance IMPs - GSWIMP_STRING_ENCODING _contentEncodingIMP; IMP _contentIMP; IMP _contentStringIMP; IMP _appendContentAsciiStringIMP; @@ -64,7 +63,6 @@ typedef struct _GSWMessageIMPs GSWEB_EXPORT void GetGSWMessageIMPs(GSWMessageIMPs* impsPtr,GSWMessage* message); /** functions to accelerate calls of frequently used GSWMessage methods **/ -GSWEB_EXPORT NSStringEncoding GSWMessage_contentEncoding(GSWMessage* aMessage); GSWEB_EXPORT NSData* GSWMessage_content(GSWMessage* aMessage); GSWEB_EXPORT NSString* GSWMessage_contentString(GSWMessage* aMessage); GSWEB_EXPORT void GSWMessage_appendContentAsciiString(GSWMessage* aMessage,NSString* aString); diff --git a/GSWeb/GSWMessage.m b/GSWeb/GSWMessage.m index 07845ff..571d44d 100644 --- a/GSWeb/GSWMessage.m +++ b/GSWeb/GSWMessage.m @@ -43,7 +43,6 @@ static NSString* globalDefaultURLEncoding=nil; static SEL appendDataSel = NULL; -static SEL contentEncodingSEL = NULL; static SEL contentSEL = NULL; static SEL contentStringSEL = NULL; @@ -71,18 +70,6 @@ static SEL stringByConvertingToHTMLSEL = NULL; //==================================================================== /** functions to accelerate calls of frequently used GSWMessage methods **/ -//-------------------------------------------------------------------- -NSStringEncoding GSWMessage_contentEncoding(GSWMessage* aMessage) -{ - if (aMessage) - { - return (*(aMessage->_selfMsgIMPs._contentEncodingIMP)) - (aMessage,contentEncodingSEL); - } - else - return (NSStringEncoding)0; -} - //-------------------------------------------------------------------- NSData* GSWMessage_content(GSWMessage* aMessage) { @@ -329,11 +316,6 @@ void GetGSWMessageIMPs(GSWMessageIMPs* impsPtr,GSWMessage* message) NSCAssert(message,@"No message"); Class messageClass=object_getClass(message); - - NSCAssert(contentEncodingSEL,@"No contentEncodingSEL on GetGSWMessageIMPs"); - - impsPtr->_contentEncodingIMP = - (GSWIMP_STRING_ENCODING)[message methodForSelector:contentEncodingSEL]; impsPtr->_contentIMP = [message methodForSelector:contentSEL]; @@ -413,9 +395,6 @@ static __inline__ NSMutableData *_checkBody(GSWMessage *self) { appendDataSel = @selector(appendData:); NSAssert(appendDataSel,@"No appendDataSel"); - contentEncodingSEL = @selector(contentEncoding); - NSAssert(contentEncodingSEL,@"No contentEncodingSEL"); - contentSEL = @selector(content); NSAssert(contentSEL,@"No contentSEL"); diff --git a/GSWeb/GSWResponse.h b/GSWeb/GSWResponse.h index f54f151..7f141e8 100644 --- a/GSWeb/GSWResponse.h +++ b/GSWeb/GSWResponse.h @@ -51,8 +51,6 @@ GSWEB_EXPORT void GetGSWResponseIMPs(GSWResponseIMPs* impsPtr,GSWResponse* aResp GSWEB_EXPORT void GSWResponse_appendTagAttributeValueEscapingHTMLAttributeValue(GSWResponse* aResponse,NSString* aString,id value,BOOL escaping); /** functions to accelerate calls of frequently used GSResponse methods **/ -#define GSWResponse_contentEncoding(aResponse) \ - GSWMessage_contentEncoding(aResponse) #define GSWResponse_content(aResponse) \ GSWMessage_content(aResponse) #define GSWResponse_contentString(aResponse) \ diff --git a/GSWeb/GSWUtils.h b/GSWeb/GSWUtils.h index 89cb579..2577a20 100644 --- a/GSWeb/GSWUtils.h +++ b/GSWeb/GSWUtils.h @@ -72,7 +72,6 @@ typedef long (*GSWIMP_LONG)(id, SEL, ...); typedef BOOL (*GSWIMP_BOOL)(id, SEL, ...); typedef float (*GSWIMP_FLOAT)(id, SEL, ...); typedef double (*GSWIMP_DOUBLE)(id, SEL, ...); -typedef NSStringEncoding (*GSWIMP_STRING_ENCODING)(id, SEL, ...); GSWEB_EXPORT NSNumber* GSWNumber_Yes(); GSWEB_EXPORT NSNumber* GSWNumber_No(); @@ -448,8 +447,6 @@ typedef enum _NSNumFmtType + (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)encoding; - -+ (NSStringEncoding) encodingNamed:(NSString*) encodingName; @end //==================================================================== diff --git a/GSWeb/GSWUtils.m b/GSWeb/GSWUtils.m index 5d005ad..185fcef 100644 --- a/GSWeb/GSWUtils.m +++ b/GSWeb/GSWUtils.m @@ -68,8 +68,6 @@ static Class nsStringClass=Nil; static Class nsMutableStringClass=Nil; static Class eoNullClass=Nil; -static NSMapTable* encodingsByName=NULL; - //-------------------------------------------------------------------- void GSWInitializeAllMisc() { @@ -111,53 +109,6 @@ void GSWInitializeAllMisc() nsString_stringWithCString_lengthIMP = [nsStringClass methodForSelector:stringWithCString_lengthSEL]; NSCAssert(nsString_stringWithCString_lengthIMP,@"No IMP for stringWithCString:length:"); - // Encodings - encodingsByName=NSCreateMapTable(NSObjectMapKeyCallBacks, - NSIntMapValueCallBacks, - 32); - NSMapInsert(encodingsByName, - @"NSISOLatin1StringEncoding", - (const void*)NSISOLatin1StringEncoding); - NSMapInsert(encodingsByName, - @"NSASCIIStringEncoding", - (const void*)NSASCIIStringEncoding); - NSMapInsert(encodingsByName, - @"NSISOLatin2StringEncoding", - (const void*)NSISOLatin2StringEncoding); - NSMapInsert(encodingsByName, - @"NSJapaneseEUCStringEncoding", - (const void*)NSJapaneseEUCStringEncoding); - NSMapInsert(encodingsByName, - @"NSMacOSRomanStringEncoding", - (const void*)NSMacOSRomanStringEncoding); - NSMapInsert(encodingsByName, - @"NSNEXTSTEPStringEncoding", - (const void*)NSNEXTSTEPStringEncoding); - NSMapInsert(encodingsByName, - @"NSNonLossyASCIIStringEncoding", - (const void*)NSNonLossyASCIIStringEncoding); - - // we might need this for compatibility. -- dw - NSMapInsert(encodingsByName, - @"UTF-8", - (const void*)NSUTF8StringEncoding); - - NSMapInsert(encodingsByName, - @"NSUTF8StringEncoding", - (const void*)NSUTF8StringEncoding); - NSMapInsert(encodingsByName, - @"NSUnicodeStringEncoding", - (const void*)NSUnicodeStringEncoding); - NSMapInsert(encodingsByName, - @"NSWindowsCP1253StringEncoding", - (const void*)NSWindowsCP1253StringEncoding); - NSMapInsert(encodingsByName, - @"NSWindowsCP1252StringEncoding", - (const void*)NSWindowsCP1252StringEncoding); - NSMapInsert(encodingsByName, - @"NSWindowsCP1254StringEncoding", - (const void*)NSWindowsCP1254StringEncoding); - // NSString+HTML NSStringHTML_Initialize(); }; @@ -2061,22 +2012,6 @@ NSString* GSWGetDefaultDocRoot() return tmpString; } -//-------------------------------------------------------------------- -+ (NSStringEncoding) encodingNamed:(NSString*) encodingName -{ - NSStringEncoding encoding; - - NSCAssert(encodingsByName,@"encodingsByName not initialized"); - - encoding=(NSStringEncoding)NSMapGet(encodingsByName,(const void*)encodingName); - if (!encoding) - [NSException raise:NSInvalidArgumentException - format:@"%s: does not know about '%s'", - __PRETTY_FUNCTION__, encodingName]; - - return encoding; -} - @end //====================================================================