Monotone-Parent: 962a83d2b39bca57d666c58151e93ea62a7cd0d3

Monotone-Revision: 917b856310d41617cad0757859d22615b99fed50

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-11-20T22:18:30
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2007-11-20 22:18:30 +00:00
parent e636fc143e
commit 45deea7dfb
1 changed files with 123 additions and 217 deletions

View File

@ -1,204 +1,6 @@
Index: sope-gdl1/PostgreSQL/PostgreSQL72Channel.m
===================================================================
--- sope-gdl1/PostgreSQL/PostgreSQL72Channel.m (révision 1546)
+++ sope-gdl1/PostgreSQL/PostgreSQL72Channel.m (copie de travail)
@@ -713,6 +713,39 @@
return ms;
}
+/* GCSEOAdaptorChannel protocol */
+static NSString *sqlFolderFormat = (@"CREATE TABLE %@ (\n" \
+ @" c_name VARCHAR (256) NOT NULL,\n"
+ @" c_content VARCHAR (100000) NOT NULL,\n"
+ @" c_creationdate INT4 NOT NULL,\n"
+ @" c_lastmodified INT4 NOT NULL,\n"
+ @" c_version INT4 NOT NULL,\n"
+ @" c_deleted INT4 NULL\n"
+ @")");
+static NSString *sqlFolderACLFormat = (@"CREATE TABLE %@ (\n" \
+ @" c_uid VARCHAR (256) NOT NULL,\n"
+ @" c_object VARCHAR (256) NOT NULL,\n"
+ @" c_role VARCHAR (80) NOT NULL\n"
+ @")");
+
+- (NSException *) createGCSFolderTableWithName: (NSString *) tableName
+{
+ NSString *sql;
+
+ sql = [NSString stringWithFormat: sqlFolderFormat, tableName];
+
+ return [self evaluateExpressionX: sql];
+}
+
+- (NSException *) createGCSFolderACLTableWithName: (NSString *) tableName
+{
+ NSString *sql;
+
+ sql = [NSString stringWithFormat: sqlFolderACLFormat, tableName];
+
+ return [self evaluateExpressionX: sql];
+}
+
@end /* PostgreSQL72Channel */
@implementation PostgreSQL72Channel(PrimaryKeyGeneration)
Index: sope-gdl1/Oracle8/GNUmakefile
===================================================================
--- sope-gdl1/Oracle8/GNUmakefile (révision 1546)
+++ sope-gdl1/Oracle8/GNUmakefile (copie de travail)
@@ -28,15 +28,23 @@
SOPE_ROOT=../..
ORACLE_VERSION=10.2.0.3
#ORACLE_VERSION=11.1.0.1
-ADDITIONAL_INCLUDE_DIRS += -I../GDLAccess -I.. -I/usr/include/oracle/$(ORACLE_VERSION)/client
+ADDITIONAL_INCLUDE_DIRS += -I../../sope-core -I../../sope-core/NGExtensions -I../GDLAccess -I.. -I/usr/include/oracle/$(ORACLE_VERSION)/client
+local_arch = $(subst 64,,$(shell uname -m))
+
+ifeq ($(local_arch),ppc)
+PPC_LDFLAGS=-L/opt/ibmcmp/lib -libmc++
+else
+PPC_LDFLAGS=
+endif
+
ifneq ($(frameworks),yes)
-Oracle8_BUNDLE_LIBS += -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -lGDLAccess -lEOControl
-otest_TOOL_LIBS += -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -lGDLAccess -lEOControl
+common_LIBS = -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -L../GDLAccess/obj -lGDLAccess -L../../sope-core/EOControl/obj -lEOControl $(PPC_LDFLAGS)
else
-Oracle8_BUNDLE_LIBS += -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -framework GDLAccess -framework EOControl
-otest_TOOL_LIBS += -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -framework GDLAccess -framework EOControl
+common_LIBS = -L/usr/lib/oracle/$(ORACLE_VERSION)/client/lib/ -locci -lociei -lclntsh -lnnz10 -framework GDLAccess -framework EOControl $(PPC_LDFLAGS)
endif
+Oracle8_BUNDLE_LIBS += $(common_LIBS)
+otest_TOOL_LIBS += $(common_LIBS)
# Bundle
BUNDLE_NAME = Oracle8
Index: sope-gdl1/Oracle8/OracleAdaptorChannel.m
===================================================================
--- sope-gdl1/Oracle8/OracleAdaptorChannel.m (révision 1546)
+++ sope-gdl1/Oracle8/OracleAdaptorChannel.m (copie de travail)
@@ -53,14 +53,17 @@
while (c--)
{
info = [[_row_buffer objectAtIndex: c] pointerValue];
- [_row_buffer removeObjectAtIndex: c];
// We free our LOB object. If it fails, it likely mean it isn't a LOB
// so we just free the value instead.
- if (OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB) != OCI_SUCCESS)
- {
- free(info->value);
- }
+ if (info->value)
+ {
+ if (OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB) != OCI_SUCCESS)
+ free(info->value);
+ info->value = NULL;
+ }
+ free(info);
+ [_row_buffer removeObjectAtIndex: c];
}
OCIHandleFree(_current_stm, OCI_HTYPE_STMT);
@@ -75,6 +78,30 @@
//
@implementation OracleAdaptorChannel
+static void
+DBTerminate()
+{
+ if (OCITerminate(OCI_DEFAULT))
+ NSLog(@"FAILED: OCITerminate()");
+ else
+ NSLog(@"Oracle8: environment shut down");
+}
+
++ (void) initialize
+{
+ // We Initialize the OCI process environment.
+ if (OCIInitialize((ub4)OCI_DEFAULT, (dvoid *)0,
+ (dvoid * (*)(dvoid *, size_t)) 0,
+ (dvoid * (*)(dvoid *, dvoid *, size_t))0,
+ (void (*)(dvoid *, dvoid *)) 0 ))
+ NSLog(@"FAILED: OCIInitialize()");
+ else
+ {
+ NSLog(@"Oracle8: environment initialized");
+ atexit(DBTerminate);
+ }
+}
+
- (id) initWithAdaptorContext: (EOAdaptorContext *) theAdaptorContext
{
if ((self = [super initWithAdaptorContext: theAdaptorContext]))
@@ -134,10 +161,14 @@
NSLog(@"FAILED: OCILogoff()");
}
- if (OCITerminate(OCI_DEFAULT))
- {
- NSLog(@"FAILED: OCITerminate()");
- }
+
+ OCIHandleFree(_oci_ctx, OCI_HTYPE_SVCCTX);
+ OCIHandleFree(_oci_err, OCI_HTYPE_ERROR);
+ // OCIHandleFree(_oci_env, OCI_HTYPE_ENV);
+
+ _oci_ctx = (OCISvcCtx *)0;
+ _oci_err = (OCIError *)0;
+ _oci_env = (OCIEnv *)0;
}
}
@@ -151,11 +182,6 @@
[self _cleanup];
RELEASE(_resultSetProperties);
-
- OCIHandleFree(_oci_ctx, OCI_HTYPE_SVCCTX);
- OCIHandleFree(_oci_err, OCI_HTYPE_ERROR);
- OCIHandleFree(_oci_env, OCI_HTYPE_ENV);
-
RELEASE(delegate);
[super dealloc];
@@ -368,16 +394,7 @@
return NO;
}
- // We Initialize the OCI process environment.
- if (OCIInitialize((ub4)OCI_DEFAULT, (dvoid *)0,
- (dvoid * (*)(dvoid *, size_t)) 0,
- (dvoid * (*)(dvoid *, dvoid *, size_t))0,
- (void (*)(dvoid *, dvoid *)) 0 ))
- {
- NSLog(@"FAILED: OCIInitialize()");
- return NO;
- }
-
+
if (OCIEnvInit((OCIEnv **)&_oci_env, (ub4)OCI_DEFAULT, (size_t)0, (dvoid **)0))
{
NSLog(@"FAILED: OCIEnvInit()");
Index: sope-gdl1/Oracle8/OracleAdaptorChannelController.m
===================================================================
--- sope-gdl1/Oracle8/OracleAdaptorChannelController.m (révision 1546)
+++ sope-gdl1/Oracle8/OracleAdaptorChannelController.m (copie de travail)
@@ -155,7 +155,9 @@
OCILobFreeTemporary([theChannel serviceContext], [theChannel errorHandle], info->value);
OCIDescriptorFree((dvoid *)info->value, (ub4)OCI_DTYPE_LOB);
}
+ free(info);
}
+ [theColumns release];
OCIHandleFree(theStatement, OCI_HTYPE_STMT);
}
Index: sope-mime/NGImap4/NGImap4Connection.m
===================================================================
--- sope-mime/NGImap4/NGImap4Connection.m (révision 1546)
--- sope-mime/NGImap4/NGImap4Connection.m (révision 1548)
+++ sope-mime/NGImap4/NGImap4Connection.m (copie de travail)
@@ -381,7 +381,7 @@
@ -211,7 +13,7 @@ Index: sope-mime/NGImap4/NGImap4Connection.m
[self errorWithFormat:@"Could not list mailbox hierarchy!"];
Index: sope-mime/NGImap4/NGImap4ResponseNormalizer.m
===================================================================
--- sope-mime/NGImap4/NGImap4ResponseNormalizer.m (révision 1546)
--- sope-mime/NGImap4/NGImap4ResponseNormalizer.m (révision 1548)
+++ sope-mime/NGImap4/NGImap4ResponseNormalizer.m (copie de travail)
@@ -648,14 +648,13 @@
enumerator = [_flags objectEnumerator];
@ -237,7 +39,7 @@ Index: sope-mime/NGImap4/NGImap4ResponseNormalizer.m
if (objs) free(objs);
Index: sope-mime/NGImap4/NGImap4ResponseParser.m
===================================================================
--- sope-mime/NGImap4/NGImap4ResponseParser.m (révision 1546)
--- sope-mime/NGImap4/NGImap4ResponseParser.m (révision 1548)
+++ sope-mime/NGImap4/NGImap4ResponseParser.m (copie de travail)
@@ -84,6 +84,8 @@
static NSDictionary *_parseMultipartBody(NGImap4ResponseParser *self,
@ -428,7 +230,7 @@ Index: sope-mime/NGImap4/NGImap4ResponseParser.m
{
Index: sope-mime/NGMail/NGSmtpClient.m
===================================================================
--- sope-mime/NGMail/NGSmtpClient.m (révision 1546)
--- sope-mime/NGMail/NGSmtpClient.m (révision 1548)
+++ sope-mime/NGMail/NGSmtpClient.m (copie de travail)
@@ -442,10 +442,10 @@
[self->text flush];
@ -445,7 +247,7 @@ Index: sope-mime/NGMail/NGSmtpClient.m
reply = [self receiveReply];
Index: sope-mime/NGMail/NGMimeMessageGenerator.m
===================================================================
--- sope-mime/NGMail/NGMimeMessageGenerator.m (révision 1546)
--- sope-mime/NGMail/NGMimeMessageGenerator.m (révision 1548)
+++ sope-mime/NGMail/NGMimeMessageGenerator.m (copie de travail)
@@ -86,37 +86,40 @@
char *des = NULL;
@ -511,7 +313,7 @@ Index: sope-mime/NGMail/NGMimeMessageGenerator.m
unsigned isoEndLen = 2;
Index: sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m
===================================================================
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m (révision 1546)
--- sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m (révision 1548)
+++ sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m (copie de travail)
@@ -285,24 +285,16 @@
- (id)parseValue:(id)_data ofHeaderField:(NSString *)_field {
@ -545,7 +347,7 @@ Index: sope-mime/NGMime/NGMimeRFC822DateHeaderFieldParser.m
bytes++;
Index: sope-mime/NGMime/NGMimeBodyPart.m
===================================================================
--- sope-mime/NGMime/NGMimeBodyPart.m (révision 1546)
--- sope-mime/NGMime/NGMimeBodyPart.m (révision 1548)
+++ sope-mime/NGMime/NGMimeBodyPart.m (copie de travail)
@@ -31,18 +31,6 @@
return 2;
@ -583,7 +385,7 @@ Index: sope-mime/NGMime/NGMimeBodyPart.m
- (NSString *)contentId {
Index: sope-mime/NGMime/NGMimeBodyParser.m
===================================================================
--- sope-mime/NGMime/NGMimeBodyParser.m (révision 1546)
--- sope-mime/NGMime/NGMimeBodyParser.m (révision 1548)
+++ sope-mime/NGMime/NGMimeBodyParser.m (copie de travail)
@@ -67,7 +67,10 @@
if (_data == nil) return nil;
@ -599,7 +401,7 @@ Index: sope-mime/NGMime/NGMimeBodyParser.m
Index: sope-mime/NGMime/NGMimePartParser.h
===================================================================
--- sope-mime/NGMime/NGMimePartParser.h (révision 1546)
--- sope-mime/NGMime/NGMimePartParser.h (révision 1548)
+++ sope-mime/NGMime/NGMimePartParser.h (copie de travail)
@@ -117,6 +117,7 @@
BOOL parserParseRawBodyDataOfPart:1;
@ -621,7 +423,7 @@ Index: sope-mime/NGMime/NGMimePartParser.h
@interface NSObject(NGMimePartParser)
Index: sope-mime/NGMime/NGMimePartParser.m
===================================================================
--- sope-mime/NGMime/NGMimePartParser.m (révision 1546)
--- sope-mime/NGMime/NGMimePartParser.m (révision 1548)
+++ sope-mime/NGMime/NGMimePartParser.m (copie de travail)
@@ -227,7 +227,7 @@
}
@ -646,7 +448,7 @@ Index: sope-mime/NGMime/NGMimePartParser.m
: [NGMimeType mimeType:[ctype stringValue]];
Index: sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m
===================================================================
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m (révision 1546)
--- sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m (révision 1548)
+++ sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m (copie de travail)
@@ -49,80 +49,70 @@
@ -780,9 +582,53 @@ Index: sope-mime/NGMime/NGMimeContentDispositionHeaderFieldGenerator.m
}
return data;
}
Index: sope-gdl1/PostgreSQL/PostgreSQL72Channel.m
===================================================================
--- sope-gdl1/PostgreSQL/PostgreSQL72Channel.m (révision 1548)
+++ sope-gdl1/PostgreSQL/PostgreSQL72Channel.m (copie de travail)
@@ -713,6 +713,39 @@
return ms;
}
+/* GCSEOAdaptorChannel protocol */
+static NSString *sqlFolderFormat = (@"CREATE TABLE %@ (\n" \
+ @" c_name VARCHAR (256) NOT NULL,\n"
+ @" c_content VARCHAR (100000) NOT NULL,\n"
+ @" c_creationdate INT4 NOT NULL,\n"
+ @" c_lastmodified INT4 NOT NULL,\n"
+ @" c_version INT4 NOT NULL,\n"
+ @" c_deleted INT4 NULL\n"
+ @")");
+static NSString *sqlFolderACLFormat = (@"CREATE TABLE %@ (\n" \
+ @" c_uid VARCHAR (256) NOT NULL,\n"
+ @" c_object VARCHAR (256) NOT NULL,\n"
+ @" c_role VARCHAR (80) NOT NULL\n"
+ @")");
+
+- (NSException *) createGCSFolderTableWithName: (NSString *) tableName
+{
+ NSString *sql;
+
+ sql = [NSString stringWithFormat: sqlFolderFormat, tableName];
+
+ return [self evaluateExpressionX: sql];
+}
+
+- (NSException *) createGCSFolderACLTableWithName: (NSString *) tableName
+{
+ NSString *sql;
+
+ sql = [NSString stringWithFormat: sqlFolderACLFormat, tableName];
+
+ return [self evaluateExpressionX: sql];
+}
+
@end /* PostgreSQL72Channel */
@implementation PostgreSQL72Channel(PrimaryKeyGeneration)
Index: sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m
===================================================================
--- sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m (révision 1546)
--- sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m (révision 1548)
+++ sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m (copie de travail)
@@ -140,8 +140,12 @@
@ -823,9 +669,69 @@ Index: sope-core/NGExtensions/FdExt.subproj/NSString+Encoding.m
}
static char *iconv_wrapper(id self, char *_src, unsigned _srcLen,
Index: sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.h
===================================================================
--- sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.h (révision 1548)
+++ sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.h (copie de travail)
@@ -19,6 +19,8 @@
02111-1307, USA.
*/
+#include <libxml/encoding.h>
+
#include <SaxObjC/SaxXMLReader.h>
#include <SaxObjC/SaxLexicalHandler.h>
#include <SaxObjC/SaxDeclHandler.h>
Index: sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.m
===================================================================
--- sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.m (révision 1548)
+++ sope-xml/libxmlSAXDriver/libxmlHTMLSAXDriver.m (copie de travail)
@@ -30,6 +30,12 @@
#include <libxml/HTMLparser.h>
#include <libxml/HTMLtree.h>
+@interface NSObject (contentHandlerExtensions) <SaxContentHandler>
+
+- (xmlCharEncoding) contentEncoding;
+
+@end
+
@interface libxmlHTMLSAXDriver(PrivateMethods)
- (void)tearDownParser;
@@ -205,6 +211,7 @@
- (void)setupParserWithDocumentPath:(NSString *)_path {
xmlSAXHandler sax;
+ xmlCharEncoding charEncoding;
if (self->ctxt != NULL) {
NSLog(@"WARNING(%s): HTML parser context already setup !",
@@ -223,14 +230,18 @@
__PRETTY_FUNCTION__, self, activeDriver);
}
activeDriver = self;
-
+
+ if ([self->contentHandler respondsToSelector: @selector (contentEncoding)])
+ charEncoding = [self->contentHandler contentEncoding];
+ else
+ charEncoding = XML_CHAR_ENCODING_8859_1;
+
self->ctxt = htmlCreatePushParserCtxt(&sax /* sax */,
NULL /*self*/ /* userdata */,
NULL /* chunk */,
0 /* chunklen */,
[_path cString] /* filename */,
- XML_CHAR_ENCODING_8859_1
- /* encoding */);
+ charEncoding /* encoding */);
self->doc = NULL;
}
- (void)tearDownParser {
Index: sope-appserver/NGObjWeb/GNUmakefile.postamble
===================================================================
--- sope-appserver/NGObjWeb/GNUmakefile.postamble (révision 1546)
--- sope-appserver/NGObjWeb/GNUmakefile.postamble (révision 1548)
+++ sope-appserver/NGObjWeb/GNUmakefile.postamble (copie de travail)
@@ -23,14 +23,20 @@
@ -854,7 +760,7 @@ Index: sope-appserver/NGObjWeb/GNUmakefile.postamble
-endif
Index: sope-appserver/NGObjWeb/WOContext.m
===================================================================
--- sope-appserver/NGObjWeb/WOContext.m (révision 1546)
--- sope-appserver/NGObjWeb/WOContext.m (révision 1548)
+++ sope-appserver/NGObjWeb/WOContext.m (copie de travail)
@@ -64,11 +64,13 @@
static BOOL testNSURLs = NO;
@ -894,7 +800,7 @@ Index: sope-appserver/NGObjWeb/WOContext.m
serverURL = [@"http://" stringByAppendingString:host];
Index: sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.m
===================================================================
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.m (révision 1546)
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.m (révision 1548)
+++ sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.m (copie de travail)
@@ -216,6 +216,12 @@
assocCount++;
@ -911,7 +817,7 @@ Index: sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.m
Index: sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m
===================================================================
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m (révision 1546)
--- sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m (révision 1548)
+++ sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m (copie de travail)
@@ -40,6 +40,7 @@
WOAssociation *string;
@ -941,7 +847,7 @@ Index: sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m
return YES;
Index: sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h
===================================================================
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h (révision 1546)
--- sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h (révision 1548)
+++ sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h (copie de travail)
@@ -41,7 +41,8 @@
WOAssociation *pageName;
@ -955,7 +861,7 @@ Index: sope-appserver/NGObjWeb/DynamicElements/WOHyperlinkInfo.h
/* 'ivar' associations */
Index: sope-appserver/NGObjWeb/SoObjects/SoObject.m
===================================================================
--- sope-appserver/NGObjWeb/SoObjects/SoObject.m (révision 1546)
--- sope-appserver/NGObjWeb/SoObjects/SoObject.m (révision 1548)
+++ sope-appserver/NGObjWeb/SoObjects/SoObject.m (copie de travail)
@@ -39,22 +39,34 @@
static int debugLookup = -1;
@ -1106,7 +1012,7 @@ Index: sope-appserver/NGObjWeb/SoObjects/SoObject.m
Index: sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m
===================================================================
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m (révision 1546)
--- sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m (révision 1548)
+++ sope-appserver/NGObjWeb/WOHttpAdaptor/WOHttpTransaction.m (copie de travail)
@@ -31,6 +31,7 @@
#include <NGObjWeb/WOCookie.h>