[CalendarServer-changes] [1052]
PyOpenDirectory/branches/users/cdaboo/od-schema-1044
source_changes at macosforge.org
source_changes at macosforge.org
Tue Jan 16 12:30:25 PST 2007
Revision: 1052
http://trac.macosforge.org/projects/calendarserver/changeset/1052
Author: cdaboo at apple.com
Date: 2007-01-16 12:30:25 -0800 (Tue, 16 Jan 2007)
Log Message:
-----------
Added new query method to allow querying for specific records that match particular attribute/value criteria.
Modified Paths:
--------------
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/dsattributes.py
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/opendirectory.py
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.cpp
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.h
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/PythonWrapper.cpp
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1v3
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.pbxuser
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/project.pbxproj
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/test.cpp
PyOpenDirectory/branches/users/cdaboo/od-schema-1044/test.py
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/dsattributes.py
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/dsattributes.py 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/dsattributes.py 2007-01-16 20:30:25 UTC (rev 1052)
@@ -21,6 +21,18 @@
This comes directly (with C->Python conversion) from <DirectoryServices/DirServicesConst.h>
"""
+# Specific match types
+
+eDSExact = 0x2001
+eDSStartsWith = 0x2002
+eDSEndsWith = 0x2003
+eDSContains = 0x2004
+
+eDSLessThan = 0x2005
+eDSGreaterThan = 0x2006
+eDSLessEqual = 0x2007
+eDSGreaterEqual = 0x2008
+
# Specific Record Type Constants
"""
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/opendirectory.py
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/opendirectory.py 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/pysrc/opendirectory.py 2007-01-16 20:30:25 UTC (rev 1052)
@@ -40,6 +40,21 @@
or C{None} otherwise.
"""
+def queryRecordsWithAttributes(obj, query, matchType, casei, allmatch, recordType, attributes):
+ """
+ List records in Open Directory matching specified criteria, and return key attributes for each one.
+
+ @param obj: C{object} the object obtained from an odInit call.
+ @param query: C{dict} containing attribute/value pairs to search.
+ @param matchType: C{int} DS match type to use when searching.
+ @param casei: C{True} to do case-insenstive match, C{False} otherwise.
+ @param allmatch: C{True} to do require all attribute/value pairs to match (AND), C{False} otherwise (OR).
+ @param recordType: C{str} containing the OD record type to lookup.
+ @param attributes: C{list} containing the attributes to return for each record.
+ @return: C{dict} containing a C{dict} of attributes for each record found,
+ or C{None} otherwise.
+ """
+
def authenticateUserBasic(obj, user, pswd):
"""
Authenticate a user with a password to Open Directory.
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.cpp
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.cpp 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.cpp 2007-01-16 20:30:25 UTC (rev 1052)
@@ -23,7 +23,7 @@
#include "CFStringUtil.h"
-#include <Python.h>
+#include <Python/Python.h>
#include <stdlib.h>
#include <string.h>
@@ -108,6 +108,39 @@
}
}
+// QueryRecordsWithAttributes
+//
+// Get specific attributes for one or more user records with matching attributes in the directory.
+//
+// @param query: CFDictionary of CFString listing the attributes to query.
+// @param matchType: the match type to query.
+// @param casei: true if case-insensitive match is to be used, false otherwise.
+// @param allmatch: true if a match to every attribute/value must occur (AND), false if only one needs to match (OR).
+// @param recordType: the record type to list.
+// @param attributes: CFArray of CFString listing the attributes to return for each record.
+// @return: CFMutableDictionaryRef composed of CFMutableDictionaryRef of CFStringRef key and value entries
+// for each attribute/value requested in the record indexed by uid,
+// or NULL if it fails.
+//
+CFMutableDictionaryRef CDirectoryService::QueryRecordsWithAttributes(CFDictionaryRef query, int matchType, bool casei, bool allmatch, const char* recordType, CFArrayRef attributes)
+{
+ try
+ {
+ // Get attribute map
+ return _QueryRecordsWithAttributes(query, matchType, casei, allmatch, recordType, attributes);
+ }
+ catch(long dserror)
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices Error", dserror));
+ return NULL;
+ }
+ catch(...)
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "Unknown Error", -1));
+ return NULL;
+ }
+}
+
// AuthenticateUserBasic
//
// Authenticate a user to the directory using plain text credentials.
@@ -169,6 +202,7 @@
// Get specific attributes for records of a specified type in the directory.
//
// @param type: the record type to check.
+// @param names: a list of record names to target if NULL all records are matched.
// @param attrs: a list of attributes to return.
// @return: CFMutableDictionaryRef composed of CFMutableDictionaryRef of CFStringRef key and value entries
// for each attribute/value requested in the record indexed by uid,
@@ -375,6 +409,234 @@
return result;
}
+// _QueryRecordsWithAttributes
+//
+// Get specific attributes for records of a specified type in the directory.
+//
+// @param query: a dictionary containg attribute/value pairs to match in records.
+// @param matchType: the match type to to use.
+// @param casei: true if case-insensitive match is to be used, false otherwise.
+// @param allmatch: true if a match to every attribute/value must occur (AND), false if only one needs to match (OR).
+// @param type: the record type to check.
+// @param attrs: a list of attributes to return.
+// @return: CFMutableDictionaryRef composed of CFMutableDictionaryRef of CFStringRef key and value entries
+// for each attribute/value requested in the record indexed by uid,
+// or NULL if it fails.
+//
+CFMutableDictionaryRef CDirectoryService::_QueryRecordsWithAttributes(CFDictionaryRef query, int matchType, bool casei, bool allmatch, const char* type, CFArrayRef attrs)
+{
+ CFMutableDictionaryRef result = NULL;
+ CFMutableDictionaryRef vresult = NULL;
+ CFMutableArrayRef values = NULL;
+ tDataNodePtr queryAttr = NULL;
+ tDataNodePtr queryValue = NULL;
+ tDataListPtr recTypes = NULL;
+ tDataListPtr attrTypes = NULL;
+ tContextData context = NULL;
+ tAttributeListRef attrListRef = 0L;
+ tRecordEntry* pRecEntry = NULL;
+
+ // Must have attributes
+ if (::CFArrayGetCount(attrs) == 0)
+ return NULL;
+
+ try
+ {
+ // Make sure we have a valid directory service
+ OpenService();
+
+ // Open the node we want to query
+ OpenNode();
+
+ // We need a buffer for what comes next
+ CreateBuffer();
+
+ // Determine attribute to search
+ if (::CFDictionaryGetCount(query) == 1)
+ {
+ BuildSimpleQuery(query, queryAttr, queryValue);
+ if (casei)
+ matchType |= 0x0100;
+ else
+ matchType &= 0xFEFF;
+ }
+ else
+ {
+ queryAttr = ::dsDataNodeAllocateString(mDir, kDS1AttrDistinguishedName);
+ BuildCompoundQuery(query, (tDirPatternMatch)matchType, allmatch, queryValue);
+ matchType = (casei) ? eDSiCompoundExpression : eDSCompoundExpression;
+ }
+
+ // Build data list of types
+ recTypes = ::dsDataListAllocate(mDir);
+ ThrowIfNULL(recTypes);
+ ThrowIfDSErr(::dsBuildListFromStringsAlloc(mDir, recTypes, type, NULL));
+
+ // Build data list of attributes
+ attrTypes = ::dsDataListAllocate(mDir);
+ ThrowIfNULL(attrTypes);
+ BuildStringDataList(attrs, attrTypes);
+
+ result = ::CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+
+ do
+ {
+ // List all the appropriate records
+ unsigned long recCount = 0;
+ tDirStatus err;
+ do
+ {
+ err = ::dsDoAttributeValueSearchWithData(mNode, mData, recTypes, queryAttr, (tDirPatternMatch)matchType, queryValue, attrTypes, false, &recCount, &context);
+ if (err == eDSBufferTooSmall)
+ ReallocBuffer();
+ } while(err == eDSBufferTooSmall);
+ ThrowIfDSErr(err);
+ for(unsigned long i = 1; i <= recCount; i++)
+ {
+ // Get the record entry
+ ThrowIfDSErr(::dsGetRecordEntry(mNode, mData, i, &attrListRef, &pRecEntry));
+
+ // Get the entry's name
+ char* temp = NULL;
+ ThrowIfDSErr(::dsGetRecordNameFromEntry(pRecEntry, &temp));
+ std::auto_ptr<char> recname(temp);
+
+ // Create a dictionary for the values
+ vresult = ::CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+
+ // Look at each requested attribute and get one value
+ for(unsigned long j = 1; j <= pRecEntry->fRecordAttributeCount; j++)
+ {
+ tAttributeValueListRef attributeValueListRef = NULL;
+ tAttributeEntryPtr attributeInfoPtr = NULL;
+
+ ThrowIfDSErr(::dsGetAttributeEntry(mNode, mData, attrListRef, j, &attributeValueListRef, &attributeInfoPtr));
+
+ if (attributeInfoPtr->fAttributeValueCount > 0)
+ {
+ // Determine what the attribute is and where in the result list it should be put
+ std::auto_ptr<char> attrname(CStringFromBuffer(&attributeInfoPtr->fAttributeSignature));
+ CFStringUtil cfattrname(attrname.get());
+
+ if (attributeInfoPtr->fAttributeValueCount > 1)
+ {
+ values = ::CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks);
+
+ for(unsigned long k = 1; k <= attributeInfoPtr->fAttributeValueCount; k++)
+ {
+ // Get the attribute value and store in results
+ tAttributeValueEntryPtr attributeValue = NULL;
+ ThrowIfDSErr(::dsGetAttributeValue(mNode, mData, k, attributeValueListRef, &attributeValue));
+ std::auto_ptr<char> data(CStringFromBuffer(&attributeValue->fAttributeValueData));
+ CFStringUtil strvalue(data.get());
+ ::CFArrayAppendValue(values, strvalue.get());
+ ::dsDeallocAttributeValueEntry(mDir, attributeValue);
+ attributeValue = NULL;
+ }
+ ::CFDictionarySetValue(vresult, cfattrname.get(), values);
+ ::CFRelease(values);
+ values = NULL;
+ }
+ else
+ {
+ // Get the attribute value and store in results
+ tAttributeValueEntryPtr attributeValue = NULL;
+ ThrowIfDSErr(::dsGetAttributeValue(mNode, mData, 1, attributeValueListRef, &attributeValue));
+ std::auto_ptr<char> data(CStringFromBuffer(&attributeValue->fAttributeValueData));
+ CFStringUtil strvalue(data.get());
+ ::CFDictionarySetValue(vresult, cfattrname.get(), strvalue.get());
+ ::dsDeallocAttributeValueEntry(mDir, attributeValue);
+ attributeValue = NULL;
+ }
+ }
+
+ ::dsCloseAttributeValueList(attributeValueListRef);
+ attributeValueListRef = NULL;
+ ::dsDeallocAttributeEntry(mDir, attributeInfoPtr);
+ attributeInfoPtr = NULL;
+ }
+
+ // Add dictionary of values to result array
+ CFStringUtil str(recname.get());
+ ::CFDictionarySetValue(result, str.get(), vresult);
+ ::CFRelease(vresult);
+ vresult = NULL;
+
+ // Clean-up
+ ::dsCloseAttributeList(attrListRef);
+ attrListRef = 0L;
+ ::dsDeallocRecordEntry(mDir, pRecEntry);
+ pRecEntry = NULL;
+ }
+ } while (context != NULL); // Loop until all data has been obtained.
+
+ // Cleanup
+ ::dsDataListDeallocate(mDir, recTypes);
+ ::dsDataListDeallocate(mDir, attrTypes);
+ ::dsDataNodeDeAllocate(mDir, queryValue);
+ ::dsDataNodeDeAllocate(mDir, queryAttr);
+ free(recTypes);
+ free(attrTypes);
+ RemoveBuffer();
+ CloseNode();
+ CloseService();
+ }
+ catch(long dsStatus)
+ {
+ // Cleanup
+ if (context != NULL)
+ ::dsReleaseContinueData(mDir, context);
+ if (attrListRef != 0L)
+ ::dsCloseAttributeList(attrListRef);
+ if (pRecEntry != NULL)
+ dsDeallocRecordEntry(mDir, pRecEntry);
+ if (recTypes != NULL)
+ {
+ ::dsDataListDeallocate(mDir, recTypes);
+ free(recTypes);
+ recTypes = NULL;
+ }
+ if (attrTypes != NULL)
+ {
+ ::dsDataListDeallocate(mDir, attrTypes);
+ free(attrTypes);
+ attrTypes = NULL;
+ }
+ if (queryValue != NULL)
+ {
+ ::dsDataNodeDeAllocate(mDir, queryValue);
+ queryValue = NULL;
+ }
+ if (queryAttr != NULL)
+ {
+ ::dsDataNodeDeAllocate(mDir, queryAttr);
+ queryAttr = NULL;
+ }
+ RemoveBuffer();
+ CloseNode();
+ CloseService();
+
+ if (values != NULL)
+ {
+ ::CFRelease(values);
+ values = NULL;
+ }
+ if (vresult != NULL)
+ {
+ ::CFRelease(vresult);
+ vresult = NULL;
+ }
+ if (result != NULL)
+ {
+ ::CFRelease(result);
+ result = NULL;
+ }
+ throw;
+ }
+
+ return result;
+}
+
// AuthenticationGetNode
//
// Authenticate a user to the directory.
@@ -846,6 +1108,106 @@
}
}
+struct SBuildSimpleQueryIterator
+{
+ tDirReference mDir;
+ tDataNodePtr& mAttr;
+ tDataNodePtr& mValue;
+
+ SBuildSimpleQueryIterator(tDirReference dir, tDataNodePtr& attr, tDataNodePtr& value) :
+ mDir(dir), mAttr(attr), mValue(value) {}
+};
+
+// CFDictionary iterator callback that adds either the key or value to a DS list.
+static void BuildSimpleQueryIterator(const void* key, const void* value, void* ref)
+{
+ SBuildSimpleQueryIterator* info = (SBuildSimpleQueryIterator*)ref;
+
+ CFStringRef strkey = (CFStringRef)key;
+ CFStringUtil cstrkey(strkey);
+ info->mAttr = ::dsDataNodeAllocateString(info->mDir, cstrkey.temp_str());
+ ThrowIfNULL(info->mAttr);
+
+ CFStringRef strvalue = (CFStringRef)value;
+ CFStringUtil cstrvalue(strvalue);
+ info->mValue = ::dsDataNodeAllocateString(info->mDir, cstrvalue.temp_str());
+ ThrowIfNULL(info->mValue);
+}
+
+void CDirectoryService::BuildSimpleQuery(CFDictionaryRef dict, tDataNodePtr& attr, tDataNodePtr& value)
+{
+ SBuildSimpleQueryIterator info(mDir, attr, value);
+
+ ::CFDictionaryApplyFunction(dict, BuildSimpleQueryIterator, &info);
+}
+
+struct SBuildCompoundQueryIterator
+{
+ CFStringRef mFormat;
+ CFMutableStringRef mCompound;
+
+ SBuildCompoundQueryIterator(CFStringRef format, CFMutableStringRef compound) :
+ mFormat(format), mCompound(compound) {}
+};
+
+// CFDictionary iterator callback that adds either the key or value to a DS list.
+static void BuildCompoundQueryIterator(const void* key, const void* value, void* ref)
+{
+ SBuildCompoundQueryIterator* info = (SBuildCompoundQueryIterator*)ref;
+
+ CFStringRef strkey = (CFStringRef)key;
+ CFStringRef strvalue = (CFStringRef)value;
+ ::CFStringAppendFormat(info->mCompound, NULL, info->mFormat, strkey, strvalue);
+}
+
+void CDirectoryService::BuildCompoundQuery(CFDictionaryRef dict, tDirPatternMatch matchType, bool allmatch, tDataNodePtr& value)
+{
+ CFStringRef format = NULL;
+ switch(matchType)
+ {
+ case eDSExact:
+ case eDSiExact:
+ format = CFSTR("(%@=%@)");
+ break;
+ case eDSStartsWith:
+ case eDSiStartsWith:
+ format = CFSTR("(%@=%@*)");
+ break;
+ case eDSEndsWith:
+ case eDSiEndsWith:
+ format = CFSTR("(%@=*%@)");
+ break;
+ case eDSContains:
+ case eDSiContains:
+ format = CFSTR("(%@=*%@*)");
+ break;
+ case eDSLessThan:
+ case eDSiLessThan:
+ format = CFSTR("(%@<%@)");
+ break;
+ case eDSGreaterThan:
+ case eDSiGreaterThan:
+ format = CFSTR("(%@>%@)");
+ break;
+ default:
+ format = CFSTR("(%@=*%@*)");
+ break;
+ }
+
+ // Now build the compound expression using the match type format we just setup
+ CFMutableStringRef compound = CFStringCreateMutable(kCFAllocatorDefault, 0);
+ ::CFStringAppend(compound, allmatch ? CFSTR("(&") : CFSTR("(|"));
+
+ SBuildCompoundQueryIterator info(format, compound);
+ ::CFDictionaryApplyFunction(dict, BuildCompoundQueryIterator, &info);
+
+ ::CFStringAppend(compound, CFSTR(")"));
+ CFStringUtil cstrvalue(compound);
+ value = ::dsDataNodeAllocateString(mDir, cstrvalue.temp_str());
+ ::CFRelease(compound);
+ ThrowIfNULL(value);
+}
+
// CStringFromBuffer
//
// Convert data in a buffer into a c-string.
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.h
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.h 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/CDirectoryService.h 2007-01-16 20:30:25 UTC (rev 1052)
@@ -33,6 +33,7 @@
~CDirectoryService();
CFMutableDictionaryRef ListAllRecordsWithAttributes(const char* recordType, CFArrayRef attributes);
+ CFMutableDictionaryRef QueryRecordsWithAttributes(CFDictionaryRef query, int matchType, bool casei, bool allmatch, const char* recordType, CFArrayRef attributes);
bool AuthenticateUserBasic(const char* user, const char* pswd, bool& result);
bool AuthenticateUserDigest(const char* user, const char* challenge, const char* response, const char* method, bool& result);
@@ -45,6 +46,7 @@
UInt32 mDataSize;
CFMutableDictionaryRef _ListAllRecordsWithAttributes(const char* type, CFArrayRef names, CFArrayRef attrs);
+ CFMutableDictionaryRef _QueryRecordsWithAttributes(CFDictionaryRef query, int matchType, bool casei, bool allmatch, const char* recordType, CFArrayRef attributes);
CFStringRef CDirectoryService::AuthenticationGetNode(const char* user);
bool NativeAuthenticationBasic(const char* user, const char* pswd);
@@ -64,6 +66,9 @@
void ReallocBuffer();
void BuildStringDataList(CFArrayRef strs, tDataListPtr data);
+
+ void BuildSimpleQuery(CFDictionaryRef dict, tDataNodePtr& attr, tDataNodePtr& value);
+ void BuildCompoundQuery(CFDictionaryRef dict, tDirPatternMatch matchType, bool allmatch, tDataNodePtr& value);
char* CStringFromBuffer(tDataBufferPtr data);
char* CStringFromData(const char* data, size_t len);
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/PythonWrapper.cpp
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/PythonWrapper.cpp 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/src/PythonWrapper.cpp 2007-01-16 20:30:25 UTC (rev 1052)
@@ -345,6 +345,83 @@
}
/*
+def queryRecordsWithAttributes(obj, query, matchType, casei, allmatch, recordType, attributes):
+ """
+ List records in Open Directory matching specified criteria, and return key attributes for each one.
+
+ @param obj: C{object} the object obtained from an odInit call.
+ @param query: C{dict} containing attribute/value pairs to search.
+ @param matchType: C{int} DS match type to use when searching.
+ @param casei: C{True} to do case-insenstive match, C{False} otherwise.
+ @param allmatch: C{True} to do require all attribute/value pairs to match (AND), C{False} otherwise (OR).
+ @param recordType: C{str} containing the OD record type to lookup.
+ @param attributes: C{list} containing the attributes to return for each record.
+ @return: C{dict} containing a C{dict} of attributes for each record found,
+ or C{None} otherwise.
+ """
+ */
+extern "C" PyObject *queryRecordsWithAttributes(PyObject *self, PyObject *args)
+{
+ PyObject* pyds;
+ PyObject* query;
+ int matchType;
+ PyObject* caseio;
+ bool casei;
+ PyObject* allmatcho;
+ bool allmatch;
+ const char* recordType;
+ PyObject* attributes;
+ if (!PyArg_ParseTuple(args, "OOiOOsO", &pyds, &query, &matchType, &caseio, &allmatcho, &recordType, &attributes) ||
+ !PyCObject_Check(pyds) || !PyDict_Check(query) || !PyBool_Check(caseio) || !PyBool_Check(allmatcho) || !PyList_Check(attributes))
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices queryRecordsWithAttributes: could not parse arguments", 0));
+ return NULL;
+ }
+
+ // Convert dict to CFDictionary of CFString
+ CFDictionaryRef cfquery = PyDictToCFDictionary(query);
+ if (cfquery == NULL)
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices queryRecordsWithAttributes: could not parse query dict", 0));
+ return NULL;
+ }
+
+ casei = (caseio == Py_True);
+
+ allmatch = (allmatcho == Py_True);
+
+ // Convert list to CFArray of CFString
+ CFArrayRef cfattributes = PyListToCFArray(attributes);
+ if (cfattributes == NULL)
+ {
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices queryRecordsWithAttributes: could not parse attributes list", 0));
+ CFRelease(cfquery);
+ return NULL;
+ }
+
+ CDirectoryService* ds = static_cast<CDirectoryService*>(PyCObject_AsVoidPtr(pyds));
+ if (ds != NULL)
+ {
+ CFMutableDictionaryRef dict = ds->QueryRecordsWithAttributes(cfquery, matchType, casei, allmatch, recordType, cfattributes);
+ if (dict != NULL)
+ {
+ PyObject* result = CFDictionaryDictionaryToPyDict(dict);
+ CFRelease(dict);
+ CFRelease(cfquery);
+ CFRelease(cfattributes);
+
+ return result;
+ }
+ }
+ else
+ PyErr_SetObject(ODException_class, Py_BuildValue("((s:i))", "DirectoryServices queryRecordsWithAttributes: invalid directory service argument", 0));
+
+ CFRelease(cfquery);
+ CFRelease(cfattributes);
+ return NULL;
+}
+
+/*
def authenticateUserBasic(obj, user, pswd):
"""
Authenticate a user with a password to Open Directory.
@@ -433,6 +510,8 @@
"Initialize the Open Directory system."},
{"listAllRecordsWithAttributes", listAllRecordsWithAttributes, METH_VARARGS,
"List all records of the specified type in Open Directory, returning requested attributes."},
+ {"queryRecordsWithAttributes", queryRecordsWithAttributes, METH_VARARGS,
+ "List records in Open Directory matching specified criteria, and return key attributes for each one."},
{"authenticateUserBasic", authenticateUserBasic, METH_VARARGS,
"Authenticate a user with a password to Open Directory using plain text authentication."},
{"authenticateUserDigest", authenticateUserDigest, METH_VARARGS,
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1 2007-01-16 20:30:25 UTC (rev 1052)
@@ -185,48 +185,7 @@
<key>Notifications</key>
<array/>
<key>OpenEditors</key>
- <array>
- <dict>
- <key>Content</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>AF8B08260AA33EF5008DBE58</string>
- <key>PBXProjectModuleLabel</key>
- <string>PythonWrapper.cpp</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>AF8B08270AA33EF5008DBE58</string>
- <key>PBXProjectModuleLabel</key>
- <string>PythonWrapper.cpp</string>
- <key>_historyCapacity</key>
- <integer>0</integer>
- <key>bookmark</key>
- <string>AF5B518E0AA3689500DCCB52</string>
- <key>history</key>
- <array>
- <string>AF8B08280AA33EF5008DBE58</string>
- </array>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
- <key>StatusBarVisibility</key>
- <true/>
- </dict>
- <key>Geometry</key>
- <dict>
- <key>Frame</key>
- <string>{{0, 20}, {811, 731}}</string>
- <key>PBXModuleWindowStatusBarHidden2</key>
- <false/>
- <key>RubberWindowFrame</key>
- <string>113 60 811 772 0 0 1680 1028 </string>
- </dict>
- </dict>
- </array>
+ <array/>
<key>PerspectiveWidths</key>
<array>
<integer>-1</integer>
@@ -238,11 +197,12 @@
<key>ChosenToolbarItems</key>
<array>
<string>active-target-popup</string>
+ <string>active-buildstyle-popup</string>
<string>action</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>buildOrClean</string>
- <string>build-and-runOrDebug</string>
<string>build-and-debug</string>
+ <string>build-and-runOrDebug</string>
<string>com.apple.ide.PBXToolbarStopButton</string>
<string>get-info</string>
<string>toggle-editor</string>
@@ -327,7 +287,7 @@
<real>186</real>
</array>
<key>RubberWindowFrame</key>
- <string>374 263 1006 600 0 0 1680 1028 </string>
+ <string>152 154 1006 600 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -364,7 +324,7 @@
<key>Frame</key>
<string>{{0, 0}, {798, 0}}</string>
<key>RubberWindowFrame</key>
- <string>374 263 1006 600 0 0 1680 1028 </string>
+ <string>152 154 1006 600 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -386,7 +346,7 @@
<key>Frame</key>
<string>{{0, 5}, {798, 554}}</string>
<key>RubberWindowFrame</key>
- <string>374 263 1006 600 0 0 1680 1028 </string>
+ <string>152 154 1006 600 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -410,9 +370,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>AF5B51850AA343BE00DCCB52</string>
+ <string>AF15D5FF0B5726C000E9069E</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>AF5B51860AA343BE00DCCB52</string>
+ <string>AF15D6000B5726C000E9069E</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -546,11 +506,16 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>AF8B08260AA33EF5008DBE58</string>
+ <string>AF15D6040B5726C000E9069E</string>
+ <string>AF15D6050B5726C000E9069E</string>
+ <string>AF155AB60A502582007E1E6E</string>
+ <string>AF155A7F0A501FE9007E1E6E</string>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>AF15D5DB0B571E0F00E9069E</string>
<string>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/PyOpenDirectory/support/PyOpenDirectory.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>374 263 1006 600 0 0 1680 1028 </string>
+ <string>152 154 1006 600 0 0 1280 832 </string>
<key>WindowTools</key>
<array>
<dict>
@@ -573,7 +538,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>test.cpp</string>
+ <string>CDirectoryService.cpp</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -582,7 +547,7 @@
<key>Frame</key>
<string>{{0, 0}, {1075, 361}}</string>
<key>RubberWindowFrame</key>
- <string>511 368 1075 643 0 0 1680 1028 </string>
+ <string>173 182 1075 643 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -606,7 +571,7 @@
<key>Frame</key>
<string>{{0, 366}, {1075, 236}}</string>
<key>RubberWindowFrame</key>
- <string>511 368 1075 643 0 0 1680 1028 </string>
+ <string>173 182 1075 643 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -629,14 +594,14 @@
<key>TableOfContents</key>
<array>
<string>AF155A7F0A501FE9007E1E6E</string>
- <string>AF8B08020AA33E0B008DBE58</string>
+ <string>AF15D5E40B571E2200E9069E</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.build</string>
<key>WindowString</key>
- <string>511 368 1075 643 0 0 1680 1028 </string>
+ <string>173 182 1075 643 0 0 1280 832 </string>
<key>WindowToolGUID</key>
<string>AF155A7F0A501FE9007E1E6E</string>
<key>WindowToolIsVisible</key>
@@ -671,8 +636,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {457, 329}}</string>
- <string>{{457, 0}, {561, 329}}</string>
+ <string>{{0, 0}, {454, 360}}</string>
+ <string>{{454, 0}, {564, 360}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -687,8 +652,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {1018, 329}}</string>
- <string>{{0, 329}, {1018, 374}}</string>
+ <string>{{0, 0}, {1018, 360}}</string>
+ <string>{{0, 360}, {1018, 343}}</string>
</array>
</dict>
</dict>
@@ -712,7 +677,7 @@
<key>Frame</key>
<string>{{0, 0}, {1018, 703}}</string>
<key>RubberWindowFrame</key>
- <string>36 261 1018 744 0 0 1680 1028 </string>
+ <string>14 85 1018 744 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXDebugSessionModule</string>
@@ -735,19 +700,19 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>AF155B9E0A503D93007E1E6E</string>
+ <string>AF15D5D50B571E0F00E9069E</string>
<string>1C162984064C10D400B95A72</string>
- <string>AF155B9F0A503D93007E1E6E</string>
- <string>AF155BA00A503D93007E1E6E</string>
- <string>AF155BA10A503D93007E1E6E</string>
- <string>AF155BA20A503D93007E1E6E</string>
- <string>AF155BA30A503D93007E1E6E</string>
- <string>AF155BA40A503D93007E1E6E</string>
+ <string>AF15D5D60B571E0F00E9069E</string>
+ <string>AF15D5D70B571E0F00E9069E</string>
+ <string>AF15D5D80B571E0F00E9069E</string>
+ <string>AF15D5D90B571E0F00E9069E</string>
+ <string>AF15D5DA0B571E0F00E9069E</string>
+ <string>AF15D5DB0B571E0F00E9069E</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debug</string>
<key>WindowString</key>
- <string>36 261 1018 744 0 0 1680 1028 </string>
+ <string>14 85 1018 744 0 0 1280 832 </string>
<key>WindowToolGUID</key>
<string>1CD10A99069EF8BA00B06720</string>
<key>WindowToolIsVisible</key>
@@ -873,7 +838,7 @@
<key>Frame</key>
<string>{{0, 0}, {440, 358}}</string>
<key>RubberWindowFrame</key>
- <string>523 605 440 400 0 0 1680 1028 </string>
+ <string>354 416 440 400 0 0 1280 832 </string>
</dict>
<key>Module</key>
<string>PBXDebugCLIModule</string>
@@ -896,11 +861,11 @@
<key>TableOfContents</key>
<array>
<string>AF155AB60A502582007E1E6E</string>
- <string>AF155C1A0A50583F007E1E6E</string>
+ <string>AF15D5E50B571E2200E9069E</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>WindowString</key>
- <string>523 605 440 400 0 0 1680 1028 </string>
+ <string>354 416 440 400 0 0 1280 832 </string>
<key>WindowToolGUID</key>
<string>AF155AB60A502582007E1E6E</string>
<key>WindowToolIsVisible</key>
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1v3
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1v3 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.mode1v3 2007-01-16 20:30:25 UTC (rev 1052)
@@ -195,7 +195,48 @@
<key>Notifications</key>
<array/>
<key>OpenEditors</key>
- <array/>
+ <array>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>AF99D3960B5D69F100F4C984</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>PythonWrapper.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>AF99D3970B5D69F100F4C984</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>PythonWrapper.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>AF99D3AE0B5D6F5D00F4C984</string>
+ <key>history</key>
+ <array>
+ <string>AF99D3940B5D69C700F4C984</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {972, 884}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>303 147 972 925 0 0 1920 1178 </string>
+ </dict>
+ </dict>
+ </array>
<key>PerspectiveWidths</key>
<array>
<integer>-1</integer>
@@ -304,14 +345,12 @@
<key>Dock</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>CDirectoryService.cpp</string>
+ <string>test.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -319,27 +358,31 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>CDirectoryService.cpp</string>
+ <string>test.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>AFAC4ECD0B4C437900D59661</string>
+ <string>AF99D3AD0B5D6F5D00F4C984</string>
<key>history</key>
<array>
- <string>AF8974920B4AFA6600965268</string>
- <string>AFAC4E900B4C267800D59661</string>
- <string>AFAC4ECB0B4C437900D59661</string>
- <string>AFAC4EBA0B4C41FE00D59661</string>
+ <string>AF99D2C70B5D2FD100F4C984</string>
+ <string>AF99D3790B5D55FC00F4C984</string>
+ <string>AF99D35C0B5D539800F4C984</string>
</array>
<key>prevStack</key>
<array>
- <string>AF8974940B4AFA6600965268</string>
- <string>AFAC4E700B4C18D400D59661</string>
- <string>AFAC4E790B4C23EC00D59661</string>
- <string>AFAC4E890B4C25AD00D59661</string>
- <string>AFAC4E920B4C267800D59661</string>
- <string>AFAC4EC00B4C431100D59661</string>
- <string>AFAC4ECC0B4C437900D59661</string>
+ <string>AF99D2B40B5D2CF000F4C984</string>
+ <string>AF99D2BC0B5D2D2A00F4C984</string>
+ <string>AF99D2C80B5D2FD100F4C984</string>
+ <string>AF99D2E00B5D381900F4C984</string>
+ <string>AF99D3310B5D4C9300F4C984</string>
+ <string>AF99D3320B5D4C9300F4C984</string>
+ <string>AF99D3330B5D4C9300F4C984</string>
+ <string>AF99D3340B5D4C9300F4C984</string>
+ <string>AF99D3350B5D4C9300F4C984</string>
+ <string>AF99D35E0B5D539800F4C984</string>
+ <string>AF99D35F0B5D539800F4C984</string>
+ <string>AF99D37A0B5D55FC00F4C984</string>
</array>
</dict>
<key>SplitCount</key>
@@ -361,6 +404,8 @@
<string>503pt</string>
</dict>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -397,9 +442,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>AFAC4E720B4C18D400D59661</string>
+ <string>AF99D2690B5D1D6000F4C984</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>AFAC4E730B4C18D400D59661</string>
+ <string>AF99D26A0B5D1D6000F4C984</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -533,14 +578,50 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>AFAC4EC90B4C436E00D59661</string>
+ <string>AF99D3AF0B5D6F5D00F4C984</string>
+ <string>AF99D3AA0B5D6EB600F4C984</string>
+ <string>AF99D3AB0B5D6EB600F4C984</string>
+ <string>AF99D3990B5D69F100F4C984</string>
+ <string>AF99D3910B5D5FA700F4C984</string>
+ <string>AF99D37E0B5D56A900F4C984</string>
+ <string>AF99D3640B5D539800F4C984</string>
+ <string>AF99D3650B5D539800F4C984</string>
+ <string>AF99D3610B5D539800F4C984</string>
+ <string>AF99D3660B5D539800F4C984</string>
+ <string>AF99D3670B5D539800F4C984</string>
+ <string>AF99D3480B5D503D00F4C984</string>
+ <string>AF99D3410B5D4E3A00F4C984</string>
+ <string>AF99D33E0B5D4E3A00F4C984</string>
+ <string>AF99D3370B5D4C9300F4C984</string>
+ <string>AF99D3380B5D4C9300F4C984</string>
+ <string>AF99D3390B5D4C9300F4C984</string>
+ <string>AF99D3230B5D483900F4C984</string>
+ <string>AF99D31C0B5D471300F4C984</string>
+ <string>AF99D30F0B5D469A00F4C984</string>
+ <string>AF99D3030B5D3E5F00F4C984</string>
+ <string>AF99D3040B5D3E5F00F4C984</string>
+ <string>AF99D2EB0B5D3BA200F4C984</string>
+ <string>AF99D2EC0B5D3BA200F4C984</string>
+ <string>AF99D2ED0B5D3BA200F4C984</string>
+ <string>AF99D2E60B5D3BA200F4C984</string>
+ <string>AF99D2CB0B5D2FD100F4C984</string>
+ <string>AF99D2C10B5D2D2A00F4C984</string>
<string>AFBD6A500B4AC44700A565AE</string>
- <string>AFAC4E740B4C18D400D59661</string>
- <string>AFAC4E750B4C18D400D59661</string>
- <string>AFAC4E760B4C18D400D59661</string>
- <string>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/PyOpenDirectory/support/PyOpenDirectory.xcodeproj</string>
+ <string>AF99D2A60B5D2C2C00F4C984</string>
+ <string>AF99D29B0B5D275900F4C984</string>
+ <string>AF99D29C0B5D275900F4C984</string>
+ <string>AF99D29D0B5D275900F4C984</string>
+ <string>AF99D29E0B5D275900F4C984</string>
+ <string>AF99D29F0B5D275900F4C984</string>
+ <string>AF99D2A00B5D275900F4C984</string>
+ <string>AF99D2A10B5D275900F4C984</string>
+ <string>AF99D2A20B5D275900F4C984</string>
+ <string>AF99D2980B5D275900F4C984</string>
+ <string>AF99D2A30B5D275900F4C984</string>
<string>1CD10A99069EF8BA00B06720</string>
+ <string>AF99D3960B5D69F100F4C984</string>
<string>1C78EAAD065D492600B07095</string>
+ <string>/Users/cyrusdaboo/Documents/Development/Apple/eclipse/PyOpenDirectory/support/PyOpenDirectory.xcodeproj</string>
</array>
<key>WindowString</key>
<string>3 232 1359 946 0 0 1920 1178 </string>
@@ -566,7 +647,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>test.cpp</string>
+ <string>PythonWrapper.cpp</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -622,7 +703,7 @@
<key>TableOfContents</key>
<array>
<string>AFBD6A500B4AC44700A565AE</string>
- <string>AFAC4E640B4C182700D59661</string>
+ <string>AF99D2AE0B5D2CCB00F4C984</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@@ -664,8 +745,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {588, 382}}</string>
- <string>{{588, 0}, {701, 382}}</string>
+ <string>{{0, 0}, {588, 390}}</string>
+ <string>{{588, 0}, {701, 390}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -680,8 +761,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {1289, 382}}</string>
- <string>{{0, 382}, {1289, 368}}</string>
+ <string>{{0, 0}, {1289, 390}}</string>
+ <string>{{0, 390}, {1289, 360}}</string>
</array>
</dict>
</dict>
@@ -709,17 +790,17 @@
<string>Name</string>
<real>213</real>
<string>Value</string>
- <real>85</real>
+ <real>140</real>
<string>Summary</string>
- <real>378</real>
+ <real>323</real>
</array>
<key>Frame</key>
- <string>{{588, 0}, {701, 382}}</string>
+ <string>{{588, 0}, {701, 390}}</string>
<key>RubberWindowFrame</key>
- <string>300 338 1289 791 0 0 1920 1178 </string>
+ <string>1 380 1289 791 0 0 1920 1178 </string>
</dict>
<key>RubberWindowFrame</key>
- <string>300 338 1289 791 0 0 1920 1178 </string>
+ <string>1 380 1289 791 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXDebugSessionModule</string>
@@ -742,22 +823,22 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>AFAC4E650B4C182700D59661</string>
+ <string>AF99D26B0B5D1D6000F4C984</string>
<string>1C162984064C10D400B95A72</string>
- <string>AFAC4E660B4C182700D59661</string>
- <string>AFAC4E670B4C182700D59661</string>
- <string>AFAC4E680B4C182700D59661</string>
- <string>AFAC4E690B4C182700D59661</string>
- <string>AFAC4E6A0B4C182700D59661</string>
+ <string>AF99D26C0B5D1D6000F4C984</string>
+ <string>AF99D26D0B5D1D6000F4C984</string>
+ <string>AF99D26E0B5D1D6000F4C984</string>
+ <string>AF99D26F0B5D1D6000F4C984</string>
+ <string>AF99D2700B5D1D6000F4C984</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
<key>WindowString</key>
- <string>300 338 1289 791 0 0 1920 1178 </string>
+ <string>1 380 1289 791 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
<string>1CD10A99069EF8BA00B06720</string>
<key>WindowToolIsVisible</key>
- <true/>
+ <false/>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
@@ -881,7 +962,7 @@
<key>Frame</key>
<string>{{0, 0}, {1110, 583}}</string>
<key>RubberWindowFrame</key>
- <string>695 422 1110 624 0 0 1920 1178 </string>
+ <string>768 420 1110 624 0 0 1920 1178 </string>
</dict>
<key>Module</key>
<string>PBXDebugCLIModule</string>
@@ -904,13 +985,13 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>AFAC4E6B0B4C182700D59661</string>
+ <string>AF99D2EA0B5D3BA200F4C984</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.consoleV3</string>
<key>WindowString</key>
- <string>695 422 1110 624 0 0 1920 1178 </string>
+ <string>768 420 1110 624 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
<string>1C78EAAD065D492600B07095</string>
<key>WindowToolIsVisible</key>
@@ -1259,8 +1340,8 @@
<true/>
<key>TableOfContents</key>
<array>
- <string>AFAC4EC90B4C436E00D59661</string>
- <string>AFAC4ECA0B4C436E00D59661</string>
+ <string>AF99D31C0B5D471300F4C984</string>
+ <string>AF99D31D0B5D471300F4C984</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>1CA1AED706398EBD00589147</string>
</array>
@@ -1269,7 +1350,7 @@
<key>WindowString</key>
<string>44 723 744 409 0 0 1920 1178 </string>
<key>WindowToolGUID</key>
- <string>AFAC4EC90B4C436E00D59661</string>
+ <string>AF99D31C0B5D471300F4C984</string>
<key>WindowToolIsVisible</key>
<false/>
</dict>
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.pbxuser
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.pbxuser 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/cyrusdaboo.pbxuser 2007-01-16 20:30:25 UTC (rev 1052)
@@ -1,6 +1,7 @@
// !$*UTF8*$!
{
08FB7793FE84155DC02AAC07 /* Project object */ = {
+ activeArchitecture = i386;
activeBuildConfigurationName = Debug;
activeExecutable = AF155A290A501F5C007E1E6E /* PyOpenDirectory */;
activeTarget = 8DD76F620486A84900D96B5E /* PyOpenDirectory */;
@@ -60,59 +61,154 @@
PBXFileDataSource_Target_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 189535876;
- PBXWorkspaceStateSaveDate = 189535876;
+ PBXPerProjectTemplateStateSaveDate = 190651725;
+ PBXWorkspaceStateSaveDate = 190651725;
};
perUserProjectItems = {
- AF8974920B4AFA6600965268 = AF8974920B4AFA6600965268 /* PBXTextBookmark */;
- AF8974940B4AFA6600965268 = AF8974940B4AFA6600965268 /* PBXTextBookmark */;
- AF8974950B4AFA6600965268 = AF8974950B4AFA6600965268 /* PBXTextBookmark */;
- AF89749E0B4B07D600965268 = AF89749E0B4B07D600965268 /* PBXTextBookmark */;
- AF8974D80B4B0BC500965268 = AF8974D80B4B0BC500965268 /* PBXTextBookmark */;
- AF8974D90B4B0BC500965268 = AF8974D90B4B0BC500965268 /* PBXTextBookmark */;
- AF8974DA0B4B0BC500965268 = AF8974DA0B4B0BC500965268 /* PBXTextBookmark */;
- AF8974E30B4B0C6000965268 = AF8974E30B4B0C6000965268 /* PBXTextBookmark */;
- AFAC4E620B4C182700D59661 /* PBXTextBookmark */ = AFAC4E620B4C182700D59661 /* PBXTextBookmark */;
- AFAC4E630B4C182700D59661 /* PBXTextBookmark */ = AFAC4E630B4C182700D59661 /* PBXTextBookmark */;
- AFAC4E6E0B4C18D400D59661 /* PBXTextBookmark */ = AFAC4E6E0B4C18D400D59661 /* PBXTextBookmark */;
- AFAC4E6F0B4C18D400D59661 /* PBXTextBookmark */ = AFAC4E6F0B4C18D400D59661 /* PBXTextBookmark */;
- AFAC4E700B4C18D400D59661 /* PBXTextBookmark */ = AFAC4E700B4C18D400D59661 /* PBXTextBookmark */;
- AFAC4E710B4C18D400D59661 /* PBXTextBookmark */ = AFAC4E710B4C18D400D59661 /* PBXTextBookmark */;
- AFAC4E780B4C23EC00D59661 /* PBXTextBookmark */ = AFAC4E780B4C23EC00D59661 /* PBXTextBookmark */;
- AFAC4E790B4C23EC00D59661 /* PBXTextBookmark */ = AFAC4E790B4C23EC00D59661 /* PBXTextBookmark */;
- AFAC4E7A0B4C23EC00D59661 /* PBXTextBookmark */ = AFAC4E7A0B4C23EC00D59661 /* PBXTextBookmark */;
- AFAC4E7B0B4C246E00D59661 /* PBXTextBookmark */ = AFAC4E7B0B4C246E00D59661 /* PBXTextBookmark */;
- AFAC4E810B4C259700D59661 /* PBXTextBookmark */ = AFAC4E810B4C259700D59661 /* PBXTextBookmark */;
- AFAC4E820B4C259700D59661 /* PBXTextBookmark */ = AFAC4E820B4C259700D59661 /* PBXTextBookmark */;
- AFAC4E840B4C259700D59661 /* PBXTextBookmark */ = AFAC4E840B4C259700D59661 /* PBXTextBookmark */;
- AFAC4E850B4C259700D59661 /* PBXTextBookmark */ = AFAC4E850B4C259700D59661 /* PBXTextBookmark */;
- AFAC4E870B4C25AD00D59661 /* PBXTextBookmark */ = AFAC4E870B4C25AD00D59661 /* PBXTextBookmark */;
- AFAC4E880B4C25AD00D59661 /* PBXTextBookmark */ = AFAC4E880B4C25AD00D59661 /* PBXTextBookmark */;
- AFAC4E890B4C25AD00D59661 /* PBXTextBookmark */ = AFAC4E890B4C25AD00D59661 /* PBXTextBookmark */;
- AFAC4E8A0B4C25AD00D59661 /* PBXTextBookmark */ = AFAC4E8A0B4C25AD00D59661 /* PBXTextBookmark */;
- AFAC4E900B4C267800D59661 /* PBXTextBookmark */ = AFAC4E900B4C267800D59661 /* PBXTextBookmark */;
- AFAC4E910B4C267800D59661 /* PBXTextBookmark */ = AFAC4E910B4C267800D59661 /* PBXTextBookmark */;
- AFAC4E920B4C267800D59661 /* PBXTextBookmark */ = AFAC4E920B4C267800D59661 /* PBXTextBookmark */;
- AFAC4E930B4C267800D59661 /* PBXTextBookmark */ = AFAC4E930B4C267800D59661 /* PBXTextBookmark */;
- AFAC4E980B4C26BC00D59661 /* PBXTextBookmark */ = AFAC4E980B4C26BC00D59661 /* PBXTextBookmark */;
- AFAC4E9A0B4C279100D59661 /* PBXTextBookmark */ = AFAC4E9A0B4C279100D59661 /* PBXTextBookmark */;
- AFAC4EB00B4C3E7700D59661 /* PBXTextBookmark */ = AFAC4EB00B4C3E7700D59661 /* PBXTextBookmark */;
- AFAC4EB40B4C41C300D59661 /* PBXTextBookmark */ = AFAC4EB40B4C41C300D59661 /* PBXTextBookmark */;
- AFAC4EB60B4C41D100D59661 /* PBXTextBookmark */ = AFAC4EB60B4C41D100D59661 /* PBXTextBookmark */;
- AFAC4EB80B4C41E500D59661 /* PBXTextBookmark */ = AFAC4EB80B4C41E500D59661 /* PBXTextBookmark */;
- AFAC4EB90B4C41E500D59661 /* PBXTextBookmark */ = AFAC4EB90B4C41E500D59661 /* PBXTextBookmark */;
- AFAC4EBA0B4C41FE00D59661 /* PBXTextBookmark */ = AFAC4EBA0B4C41FE00D59661 /* PBXTextBookmark */;
- AFAC4EBE0B4C431100D59661 /* PBXTextBookmark */ = AFAC4EBE0B4C431100D59661 /* PBXTextBookmark */;
- AFAC4EBF0B4C431100D59661 /* PBXTextBookmark */ = AFAC4EBF0B4C431100D59661 /* PBXTextBookmark */;
- AFAC4EC00B4C431100D59661 /* PBXTextBookmark */ = AFAC4EC00B4C431100D59661 /* PBXTextBookmark */;
- AFAC4EC10B4C431100D59661 /* PBXTextBookmark */ = AFAC4EC10B4C431100D59661 /* PBXTextBookmark */;
- AFAC4EC30B4C434200D59661 /* PBXTextBookmark */ = AFAC4EC30B4C434200D59661 /* PBXTextBookmark */;
- AFAC4EC40B4C434200D59661 /* PBXTextBookmark */ = AFAC4EC40B4C434200D59661 /* PBXTextBookmark */;
- AFAC4EC50B4C434200D59661 /* PBXTextBookmark */ = AFAC4EC50B4C434200D59661 /* PBXTextBookmark */;
- AFAC4EC80B4C436E00D59661 /* PBXTextBookmark */ = AFAC4EC80B4C436E00D59661 /* PBXTextBookmark */;
- AFAC4ECB0B4C437900D59661 /* PBXTextBookmark */ = AFAC4ECB0B4C437900D59661 /* PBXTextBookmark */;
- AFAC4ECC0B4C437900D59661 /* PBXTextBookmark */ = AFAC4ECC0B4C437900D59661 /* PBXTextBookmark */;
- AFAC4ECD0B4C437900D59661 /* PBXTextBookmark */ = AFAC4ECD0B4C437900D59661 /* PBXTextBookmark */;
+ AF99D25A0B5D1D4D00F4C984 /* PBXTextBookmark */ = AF99D25A0B5D1D4D00F4C984 /* PBXTextBookmark */;
+ AF99D2720B5D1D9600F4C984 /* PBXBookmark */ = AF99D2720B5D1D9600F4C984 /* PBXBookmark */;
+ AF99D2960B5D275900F4C984 /* PBXTextBookmark */ = AF99D2960B5D275900F4C984 /* PBXTextBookmark */;
+ AF99D2970B5D275900F4C984 /* PBXTextBookmark */ = AF99D2970B5D275900F4C984 /* PBXTextBookmark */;
+ AF99D29A0B5D275900F4C984 /* PBXTextBookmark */ = AF99D29A0B5D275900F4C984 /* PBXTextBookmark */;
+ AF99D2A40B5D2C2C00F4C984 /* PBXTextBookmark */ = AF99D2A40B5D2C2C00F4C984 /* PBXTextBookmark */;
+ AF99D2A50B5D2C2C00F4C984 /* PBXTextBookmark */ = AF99D2A50B5D2C2C00F4C984 /* PBXTextBookmark */;
+ AF99D2A80B5D2C2C00F4C984 /* PBXTextBookmark */ = AF99D2A80B5D2C2C00F4C984 /* PBXTextBookmark */;
+ AF99D2A90B5D2C2C00F4C984 /* PBXTextBookmark */ = AF99D2A90B5D2C2C00F4C984 /* PBXTextBookmark */;
+ AF99D2B10B5D2CEF00F4C984 /* PBXTextBookmark */ = AF99D2B10B5D2CEF00F4C984 /* PBXTextBookmark */;
+ AF99D2B20B5D2CEF00F4C984 /* PBXTextBookmark */ = AF99D2B20B5D2CEF00F4C984 /* PBXTextBookmark */;
+ AF99D2B30B5D2CF000F4C984 /* PBXTextBookmark */ = AF99D2B30B5D2CF000F4C984 /* PBXTextBookmark */;
+ AF99D2B40B5D2CF000F4C984 /* PBXTextBookmark */ = AF99D2B40B5D2CF000F4C984 /* PBXTextBookmark */;
+ AF99D2B50B5D2CF000F4C984 /* PBXTextBookmark */ = AF99D2B50B5D2CF000F4C984 /* PBXTextBookmark */;
+ AF99D2B60B5D2CF000F4C984 /* PBXTextBookmark */ = AF99D2B60B5D2CF000F4C984 /* PBXTextBookmark */;
+ AF99D2B70B5D2CF000F4C984 /* PBXTextBookmark */ = AF99D2B70B5D2CF000F4C984 /* PBXTextBookmark */;
+ AF99D2BB0B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2BB0B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2BC0B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2BC0B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2BD0B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2BD0B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2BE0B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2BE0B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2BF0B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2BF0B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2C00B5D2D2A00F4C984 /* PBXTextBookmark */ = AF99D2C00B5D2D2A00F4C984 /* PBXTextBookmark */;
+ AF99D2C40B5D2FA100F4C984 /* PBXTextBookmark */ = AF99D2C40B5D2FA100F4C984 /* PBXTextBookmark */;
+ AF99D2C50B5D2FA100F4C984 /* PBXTextBookmark */ = AF99D2C50B5D2FA100F4C984 /* PBXTextBookmark */;
+ AF99D2C70B5D2FD100F4C984 /* PBXTextBookmark */ = AF99D2C70B5D2FD100F4C984 /* PBXTextBookmark */;
+ AF99D2C80B5D2FD100F4C984 /* PBXTextBookmark */ = AF99D2C80B5D2FD100F4C984 /* PBXTextBookmark */;
+ AF99D2C90B5D2FD100F4C984 /* PBXTextBookmark */ = AF99D2C90B5D2FD100F4C984 /* PBXTextBookmark */;
+ AF99D2CA0B5D2FD100F4C984 /* PBXTextBookmark */ = AF99D2CA0B5D2FD100F4C984 /* PBXTextBookmark */;
+ AF99D2CF0B5D303C00F4C984 /* PBXTextBookmark */ = AF99D2CF0B5D303C00F4C984 /* PBXTextBookmark */;
+ AF99D2D00B5D303C00F4C984 /* PBXTextBookmark */ = AF99D2D00B5D303C00F4C984 /* PBXTextBookmark */;
+ AF99D2D30B5D311000F4C984 /* PBXTextBookmark */ = AF99D2D30B5D311000F4C984 /* PBXTextBookmark */;
+ AF99D2D40B5D311000F4C984 /* PBXTextBookmark */ = AF99D2D40B5D311000F4C984 /* PBXTextBookmark */;
+ AF99D2DA0B5D381700F4C984 /* PBXTextBookmark */ = AF99D2DA0B5D381700F4C984 /* PBXTextBookmark */;
+ AF99D2DB0B5D381700F4C984 /* PBXTextBookmark */ = AF99D2DB0B5D381700F4C984 /* PBXTextBookmark */;
+ AF99D2DC0B5D381700F4C984 /* PBXTextBookmark */ = AF99D2DC0B5D381700F4C984 /* PBXTextBookmark */;
+ AF99D2DD0B5D381700F4C984 /* PBXTextBookmark */ = AF99D2DD0B5D381700F4C984 /* PBXTextBookmark */;
+ AF99D2DE0B5D381900F4C984 /* PBXTextBookmark */ = AF99D2DE0B5D381900F4C984 /* PBXTextBookmark */;
+ AF99D2DF0B5D381900F4C984 /* PBXBookmark */ = AF99D2DF0B5D381900F4C984 /* PBXBookmark */;
+ AF99D2E00B5D381900F4C984 /* PBXTextBookmark */ = AF99D2E00B5D381900F4C984 /* PBXTextBookmark */;
+ AF99D2E10B5D381900F4C984 /* PBXTextBookmark */ = AF99D2E10B5D381900F4C984 /* PBXTextBookmark */;
+ AF99D2E20B5D381900F4C984 /* PBXTextBookmark */ = AF99D2E20B5D381900F4C984 /* PBXTextBookmark */;
+ AF99D2E30B5D3B8100F4C984 /* PBXBookmark */ = AF99D2E30B5D3B8100F4C984 /* PBXBookmark */;
+ AF99D2E50B5D3BA200F4C984 /* PBXTextBookmark */ = AF99D2E50B5D3BA200F4C984 /* PBXTextBookmark */;
+ AF99D2E80B5D3BA200F4C984 /* PBXTextBookmark */ = AF99D2E80B5D3BA200F4C984 /* PBXTextBookmark */;
+ AF99D2E90B5D3BA200F4C984 /* PBXTextBookmark */ = AF99D2E90B5D3BA200F4C984 /* PBXTextBookmark */;
+ AF99D2EE0B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2EE0B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2EF0B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2EF0B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2F00B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2F00B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2F10B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2F10B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2F20B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2F20B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2F30B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2F30B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D2F40B5D3CB700F4C984 /* PBXTextBookmark */ = AF99D2F40B5D3CB700F4C984 /* PBXTextBookmark */;
+ AF99D3010B5D3E5F00F4C984 /* PBXTextBookmark */ = AF99D3010B5D3E5F00F4C984 /* PBXTextBookmark */;
+ AF99D3020B5D3E5F00F4C984 /* PBXTextBookmark */ = AF99D3020B5D3E5F00F4C984 /* PBXTextBookmark */;
+ AF99D3050B5D3E6300F4C984 /* PBXTextBookmark */ = AF99D3050B5D3E6300F4C984 /* PBXTextBookmark */;
+ AF99D3060B5D3E6300F4C984 /* PBXTextBookmark */ = AF99D3060B5D3E6300F4C984 /* PBXTextBookmark */;
+ AF99D30D0B5D469A00F4C984 /* PBXTextBookmark */ = AF99D30D0B5D469A00F4C984 /* PBXTextBookmark */;
+ AF99D30E0B5D469A00F4C984 /* PBXTextBookmark */ = AF99D30E0B5D469A00F4C984 /* PBXTextBookmark */;
+ AF99D3100B5D469C00F4C984 /* PBXTextBookmark */ = AF99D3100B5D469C00F4C984 /* PBXTextBookmark */;
+ AF99D3110B5D469C00F4C984 /* PBXTextBookmark */ = AF99D3110B5D469C00F4C984 /* PBXTextBookmark */;
+ AF99D3150B5D46D300F4C984 /* PBXTextBookmark */ = AF99D3150B5D46D300F4C984 /* PBXTextBookmark */;
+ AF99D3160B5D46D500F4C984 /* PBXTextBookmark */ = AF99D3160B5D46D500F4C984 /* PBXTextBookmark */;
+ AF99D31B0B5D471300F4C984 /* PBXTextBookmark */ = AF99D31B0B5D471300F4C984 /* PBXTextBookmark */;
+ AF99D3210B5D483900F4C984 /* PBXTextBookmark */ = AF99D3210B5D483900F4C984 /* PBXTextBookmark */;
+ AF99D3220B5D483900F4C984 /* PBXTextBookmark */ = AF99D3220B5D483900F4C984 /* PBXTextBookmark */;
+ AF99D32B0B5D4C0200F4C984 /* PBXTextBookmark */ = AF99D32B0B5D4C0200F4C984 /* PBXTextBookmark */;
+ AF99D32D0B5D4C7100F4C984 /* PBXTextBookmark */ = AF99D32D0B5D4C7100F4C984 /* PBXTextBookmark */;
+ AF99D32F0B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D32F0B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3300B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3300B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3310B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3310B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3320B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3320B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3330B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3330B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3340B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3340B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3350B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3350B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D3360B5D4C9300F4C984 /* PBXTextBookmark */ = AF99D3360B5D4C9300F4C984 /* PBXTextBookmark */;
+ AF99D33A0B5D4CF300F4C984 /* PBXTextBookmark */ = AF99D33A0B5D4CF300F4C984 /* PBXTextBookmark */;
+ AF99D33B0B5D4CF700F4C984 /* PBXBookmark */ = AF99D33B0B5D4CF700F4C984 /* PBXBookmark */;
+ AF99D33D0B5D4E3A00F4C984 /* PBXTextBookmark */ = AF99D33D0B5D4E3A00F4C984 /* PBXTextBookmark */;
+ AF99D3400B5D4E3A00F4C984 /* PBXTextBookmark */ = AF99D3400B5D4E3A00F4C984 /* PBXTextBookmark */;
+ AF99D3430B5D4E3A00F4C984 /* PBXTextBookmark */ = AF99D3430B5D4E3A00F4C984 /* PBXTextBookmark */;
+ AF99D3440B5D4E3A00F4C984 /* PBXTextBookmark */ = AF99D3440B5D4E3A00F4C984 /* PBXTextBookmark */;
+ AF99D3460B5D503D00F4C984 /* PBXTextBookmark */ = AF99D3460B5D503D00F4C984 /* PBXTextBookmark */;
+ AF99D3470B5D503D00F4C984 /* PBXTextBookmark */ = AF99D3470B5D503D00F4C984 /* PBXTextBookmark */;
+ AF99D34A0B5D503D00F4C984 /* PBXTextBookmark */ = AF99D34A0B5D503D00F4C984 /* PBXTextBookmark */;
+ AF99D34C0B5D503D00F4C984 /* PBXTextBookmark */ = AF99D34C0B5D503D00F4C984 /* PBXTextBookmark */;
+ AF99D34E0B5D503D00F4C984 /* PBXTextBookmark */ = AF99D34E0B5D503D00F4C984 /* PBXTextBookmark */;
+ AF99D3530B5D51EA00F4C984 /* PBXTextBookmark */ = AF99D3530B5D51EA00F4C984 /* PBXTextBookmark */;
+ AF99D3540B5D51EA00F4C984 /* PBXTextBookmark */ = AF99D3540B5D51EA00F4C984 /* PBXTextBookmark */;
+ AF99D3550B5D51EA00F4C984 /* PBXTextBookmark */ = AF99D3550B5D51EA00F4C984 /* PBXTextBookmark */;
+ AF99D3560B5D51EA00F4C984 /* PBXTextBookmark */ = AF99D3560B5D51EA00F4C984 /* PBXTextBookmark */;
+ AF99D35B0B5D52FC00F4C984 /* PBXBookmark */ = AF99D35B0B5D52FC00F4C984 /* PBXBookmark */;
+ AF99D35C0B5D539800F4C984 /* PBXTextBookmark */ = AF99D35C0B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D35D0B5D539800F4C984 /* PBXTextBookmark */ = AF99D35D0B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D35E0B5D539800F4C984 /* PBXTextBookmark */ = AF99D35E0B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D35F0B5D539800F4C984 /* PBXTextBookmark */ = AF99D35F0B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D3600B5D539800F4C984 /* PBXTextBookmark */ = AF99D3600B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D3630B5D539800F4C984 /* PBXTextBookmark */ = AF99D3630B5D539800F4C984 /* PBXTextBookmark */;
+ AF99D3690B5D554E00F4C984 /* PBXTextBookmark */ = AF99D3690B5D554E00F4C984 /* PBXTextBookmark */;
+ AF99D36A0B5D554E00F4C984 /* PBXTextBookmark */ = AF99D36A0B5D554E00F4C984 /* PBXTextBookmark */;
+ AF99D36C0B5D556100F4C984 /* PBXTextBookmark */ = AF99D36C0B5D556100F4C984 /* PBXTextBookmark */;
+ AF99D36D0B5D556100F4C984 /* PBXTextBookmark */ = AF99D36D0B5D556100F4C984 /* PBXTextBookmark */;
+ AF99D36F0B5D559300F4C984 /* PBXTextBookmark */ = AF99D36F0B5D559300F4C984 /* PBXTextBookmark */;
+ AF99D3700B5D559300F4C984 /* PBXTextBookmark */ = AF99D3700B5D559300F4C984 /* PBXTextBookmark */;
+ AF99D3730B5D55E000F4C984 /* PBXTextBookmark */ = AF99D3730B5D55E000F4C984 /* PBXTextBookmark */;
+ AF99D3740B5D55E000F4C984 /* PBXTextBookmark */ = AF99D3740B5D55E000F4C984 /* PBXTextBookmark */;
+ AF99D3750B5D55E000F4C984 /* PBXTextBookmark */ = AF99D3750B5D55E000F4C984 /* PBXTextBookmark */;
+ AF99D3760B5D55E000F4C984 /* PBXTextBookmark */ = AF99D3760B5D55E000F4C984 /* PBXTextBookmark */;
+ AF99D3790B5D55FC00F4C984 /* PBXTextBookmark */ = AF99D3790B5D55FC00F4C984 /* PBXTextBookmark */;
+ AF99D37A0B5D55FC00F4C984 /* PBXTextBookmark */ = AF99D37A0B5D55FC00F4C984 /* PBXTextBookmark */;
+ AF99D37B0B5D55FC00F4C984 /* PBXTextBookmark */ = AF99D37B0B5D55FC00F4C984 /* PBXTextBookmark */;
+ AF99D37C0B5D561300F4C984 /* PBXBookmark */ = AF99D37C0B5D561300F4C984 /* PBXBookmark */;
+ AF99D37D0B5D56A900F4C984 /* PBXTextBookmark */ = AF99D37D0B5D56A900F4C984 /* PBXTextBookmark */;
+ AF99D3800B5D56A900F4C984 /* PBXTextBookmark */ = AF99D3800B5D56A900F4C984 /* PBXTextBookmark */;
+ AF99D3820B5D579A00F4C984 /* PBXTextBookmark */ = AF99D3820B5D579A00F4C984 /* PBXTextBookmark */;
+ AF99D3830B5D579A00F4C984 /* PBXTextBookmark */ = AF99D3830B5D579A00F4C984 /* PBXTextBookmark */;
+ AF99D3840B5D579A00F4C984 /* PBXTextBookmark */ = AF99D3840B5D579A00F4C984 /* PBXTextBookmark */;
+ AF99D3850B5D58E800F4C984 /* PBXTextBookmark */ = AF99D3850B5D58E800F4C984 /* PBXTextBookmark */;
+ AF99D3860B5D58E800F4C984 /* PBXTextBookmark */ = AF99D3860B5D58E800F4C984 /* PBXTextBookmark */;
+ AF99D3870B5D5A5C00F4C984 /* PBXTextBookmark */ = AF99D3870B5D5A5C00F4C984 /* PBXTextBookmark */;
+ AF99D3880B5D5A5C00F4C984 /* PBXTextBookmark */ = AF99D3880B5D5A5C00F4C984 /* PBXTextBookmark */;
+ AF99D3890B5D5DD300F4C984 /* PBXTextBookmark */ = AF99D3890B5D5DD300F4C984 /* PBXTextBookmark */;
+ AF99D38A0B5D5DD300F4C984 /* PBXTextBookmark */ = AF99D38A0B5D5DD300F4C984 /* PBXTextBookmark */;
+ AF99D38C0B5D5E2700F4C984 /* PBXTextBookmark */ = AF99D38C0B5D5E2700F4C984 /* PBXTextBookmark */;
+ AF99D38D0B5D5E2700F4C984 /* PBXTextBookmark */ = AF99D38D0B5D5E2700F4C984 /* PBXTextBookmark */;
+ AF99D38F0B5D5F8500F4C984 /* PBXBookmark */ = AF99D38F0B5D5F8500F4C984 /* PBXBookmark */;
+ AF99D3900B5D5FA700F4C984 /* PBXTextBookmark */ = AF99D3900B5D5FA700F4C984 /* PBXTextBookmark */;
+ AF99D3930B5D5FA700F4C984 /* PBXTextBookmark */ = AF99D3930B5D5FA700F4C984 /* PBXTextBookmark */;
+ AF99D3940B5D69C700F4C984 /* PBXBookmark */ = AF99D3940B5D69C700F4C984 /* PBXBookmark */;
+ AF99D3950B5D69F100F4C984 /* PBXTextBookmark */ = AF99D3950B5D69F100F4C984 /* PBXTextBookmark */;
+ AF99D3980B5D69F100F4C984 /* PBXTextBookmark */ = AF99D3980B5D69F100F4C984 /* PBXTextBookmark */;
+ AF99D39A0B5D6A5B00F4C984 /* PBXTextBookmark */ = AF99D39A0B5D6A5B00F4C984 /* PBXTextBookmark */;
+ AF99D39B0B5D6A5B00F4C984 /* PBXTextBookmark */ = AF99D39B0B5D6A5B00F4C984 /* PBXTextBookmark */;
+ AF99D39C0B5D6A7C00F4C984 /* PBXTextBookmark */ = AF99D39C0B5D6A7C00F4C984 /* PBXTextBookmark */;
+ AF99D39D0B5D6A7C00F4C984 /* PBXTextBookmark */ = AF99D39D0B5D6A7C00F4C984 /* PBXTextBookmark */;
+ AF99D39E0B5D6AFF00F4C984 /* PBXTextBookmark */ = AF99D39E0B5D6AFF00F4C984 /* PBXTextBookmark */;
+ AF99D39F0B5D6AFF00F4C984 /* PBXTextBookmark */ = AF99D39F0B5D6AFF00F4C984 /* PBXTextBookmark */;
+ AF99D3A00B5D6B3700F4C984 /* PBXTextBookmark */ = AF99D3A00B5D6B3700F4C984 /* PBXTextBookmark */;
+ AF99D3A10B5D6B3700F4C984 /* PBXTextBookmark */ = AF99D3A10B5D6B3700F4C984 /* PBXTextBookmark */;
+ AF99D3A20B5D6BCD00F4C984 /* PBXTextBookmark */ = AF99D3A20B5D6BCD00F4C984 /* PBXTextBookmark */;
+ AF99D3A30B5D6BCD00F4C984 /* PBXTextBookmark */ = AF99D3A30B5D6BCD00F4C984 /* PBXTextBookmark */;
+ AF99D3A80B5D6EB600F4C984 /* PBXTextBookmark */ = AF99D3A80B5D6EB600F4C984 /* PBXTextBookmark */;
+ AF99D3A90B5D6EB600F4C984 /* PBXTextBookmark */ = AF99D3A90B5D6EB600F4C984 /* PBXTextBookmark */;
+ AF99D3AD0B5D6F5D00F4C984 /* PBXTextBookmark */ = AF99D3AD0B5D6F5D00F4C984 /* PBXTextBookmark */;
+ AF99D3AE0B5D6F5D00F4C984 /* PBXTextBookmark */ = AF99D3AE0B5D6F5D00F4C984 /* PBXTextBookmark */;
};
sourceControlManager = AF155A2D0A501F7B007E1E6E /* Source Control */;
userBuildSettings = {
@@ -120,10 +216,10 @@
};
08FB7796FE84155DC02AAC07 /* test.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1104, 2856}}";
- sepNavSelRange = "{5935, 0}";
- sepNavVisRect = "{{0, 1690}, {1104, 448}}";
- sepNavWindowFrame = "{{436, 4}, {811, 828}}";
+ sepNavIntBoundsRect = "{{0, 0}, {2534, 3094}}";
+ sepNavSelRange = "{3457, 0}";
+ sepNavVisRect = "{{0, 1081}, {1090, 471}}";
+ sepNavWindowFrame = "{{50, 4}, {1175, 828}}";
};
};
8DD76F620486A84900D96B5E /* PyOpenDirectory */ = {
@@ -174,6 +270,7 @@
$esp = 1;
$gs = 1;
$ss = 1;
+ "matchType-int-CDirectoryService::_QueryRecordsWithAttributes" = 1;
};
};
AF155A2D0A501F7B007E1E6E /* Source Control */ = {
@@ -190,523 +287,1416 @@
};
AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1104, 11914}}";
- sepNavSelRange = "{9255, 26}";
- sepNavVisRect = "{{0, 4025}, {1104, 471}}";
- sepNavWindowFrame = "{{144, 200}, {1046, 828}}";
+ sepNavIntBoundsRect = "{{0, 0}, {987, 11074}}";
+ sepNavSelRange = "{34667, 11}";
+ sepNavVisRect = "{{0, 10046}, {987, 699}}";
+ sepNavWindowFrame = "{{144, 4}, {1046, 828}}";
};
};
AF155A300A501F84007E1E6E /* CDirectoryService.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {766, 1106}}";
- sepNavSelRange = "{1276, 0}";
- sepNavVisRect = "{{0, 163}, {766, 699}}";
- sepNavWindowFrame = "{{15, 4}, {811, 828}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1010, 1064}}";
+ sepNavSelRange = "{2642, 0}";
+ sepNavVisRect = "{{0, 267}, {931, 797}}";
+ sepNavWindowFrame = "{{179, 55}, {990, 926}}";
};
};
AF155A310A501F84007E1E6E /* PythonWrapper.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1134, 6790}}";
- sepNavSelRange = "{14121, 0}";
- sepNavVisRect = "{{0, 1858}, {1134, 471}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1016, 7406}}";
+ sepNavSelRange = "{3328, 36}";
+ sepNavVisRect = "{{0, 1639}, {913, 852}}";
sepNavWindowFrame = "{{113, 4}, {811, 828}}";
};
};
AF155AFB0A502C09007E1E6E /* CFStringUtil.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {766, 699}}";
- sepNavSelRange = "{546, 0}";
- sepNavVisRect = "{{0, 0}, {766, 699}}";
+ sepNavIntBoundsRect = "{{0, 0}, {752, 699}}";
+ sepNavSelRange = "{762, 19}";
+ sepNavVisRect = "{{0, 0}, {752, 699}}";
sepNavWindowFrame = "{{746, 81}, {811, 828}}";
};
};
AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1242, 1736}}";
- sepNavSelRange = "{2369, 0}";
- sepNavVisRect = "{{0, 1307}, {1242, 313}}";
+ sepNavIntBoundsRect = "{{0, 0}, {752, 1736}}";
+ sepNavSelRange = "{2303, 0}";
+ sepNavVisRect = "{{0, 841}, {752, 895}}";
sepNavWindowFrame = "{{36, 4}, {811, 1024}}";
};
};
- AF8974920B4AFA6600965268 /* PBXTextBookmark */ = {
+ AF99D25A0B5D1D4D00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ rLen = 1;
+ rLoc = 108;
+ rType = 1;
+ };
+ AF99D2720B5D1D9600F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ };
+ AF99D2960B5D275900F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
- name = "PythonWrapper.cpp: 485";
+ name = "PythonWrapper.cpp: 462";
rLen = 0;
- rLoc = 14121;
+ rLoc = 14598;
rType = 0;
- vrLen = 900;
- vrLoc = 3735;
+ vrLen = 1473;
+ vrLoc = 8373;
};
- AF8974940B4AFA6600965268 /* PBXTextBookmark */ = {
+ AF99D2970B5D275900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
- name = Python/Python.h;
- rLen = 15;
- rLoc = 726;
+ name = "PythonWrapper.cpp: 225";
+ rLen = 65;
+ rLoc = 6280;
rType = 0;
- vrLen = 1115;
- vrLoc = 0;
+ vrLen = 1004;
+ vrLoc = 5827;
};
- AF8974950B4AFA6600965268 /* PBXTextBookmark */ = {
+ AF99D29A0B5D275900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
- name = "PythonWrapper.cpp: 485";
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 456";
rLen = 0;
- rLoc = 14121;
+ rLoc = 14011;
rType = 0;
- vrLen = 900;
- vrLoc = 3735;
+ vrLen = 1930;
+ vrLoc = 12882;
};
- AF89749E0B4B07D600965268 /* PBXTextBookmark */ = {
+ AF99D2A40B5D2C2C00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 225";
+ rLen = 65;
+ rLoc = 6280;
+ rType = 0;
+ vrLen = 1004;
+ vrLoc = 5827;
+ };
+ AF99D2A50B5D2C2C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 840";
+ name = "CDirectoryService.cpp: 492";
rLen = 0;
- rLoc = 22889;
+ rLoc = 15065;
rType = 0;
- vrLen = 1059;
- vrLoc = 15544;
+ vrLen = 1976;
+ vrLoc = 13468;
};
- AF8974D80B4B0BC500965268 /* PBXTextBookmark */ = {
+ AF99D2A80B5D2C2C00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 59";
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
rLen = 0;
- rLoc = 1922;
+ rLoc = 2948;
rType = 0;
- vrLen = 790;
- vrLoc = 1868;
};
- AF8974D90B4B0BC500965268 /* PBXTextBookmark */ = {
+ AF99D2A90B5D2C2C00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: no matching function for call to 'CDirectoryService::_ListAllRecordsWithAttributes(const char*&, const __CFArray*&)'";
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D2B10B5D2CEF00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: Python.h: No such file or directory";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
rLen = 1;
- rLoc = 92;
+ rLoc = 25;
rType = 1;
};
- AF8974DA0B4B0BC500965268 /* PBXTextBookmark */ = {
+ AF99D2B20B5D2CEF00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 59";
- rLen = 0;
- rLoc = 1922;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 26";
+ rLen = 27;
+ rLoc = 820;
rType = 0;
- vrLen = 790;
- vrLoc = 1868;
+ vrLen = 654;
+ vrLoc = 755;
};
- AF8974E30B4B0C6000965268 /* PBXTextBookmark */ = {
+ AF99D2B30B5D2CF000F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 225";
+ rLen = 65;
+ rLoc = 6280;
+ rType = 0;
+ vrLen = 1004;
+ vrLoc = 5827;
+ };
+ AF99D2B40B5D2CF000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 225";
+ rLen = 65;
+ rLoc = 6280;
+ rType = 0;
+ vrLen = 1004;
+ vrLoc = 5827;
+ };
+ AF99D2B50B5D2CF000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 843";
+ name = "CDirectoryService.cpp: 26";
+ rLen = 27;
+ rLoc = 820;
+ rType = 0;
+ vrLen = 1030;
+ vrLoc = 0;
+ };
+ AF99D2B60B5D2CF000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 424";
+ rLen = 147;
+ rLoc = 13167;
+ rType = 0;
+ vrLen = 2117;
+ vrLoc = 12455;
+ };
+ AF99D2B70B5D2CF000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D2BB0B5D2D2A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 26";
+ rLen = 27;
+ rLoc = 820;
+ rType = 0;
+ vrLen = 1030;
+ vrLoc = 0;
+ };
+ AF99D2BC0B5D2D2A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 26";
+ rLen = 27;
+ rLoc = 820;
+ rType = 0;
+ vrLen = 1030;
+ vrLoc = 0;
+ };
+ AF99D2BD0B5D2D2A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 20";
+ rLen = 15;
+ rLoc = 721;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 201;
+ };
+ AF99D2BE0B5D2D2A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 424";
+ rLen = 147;
+ rLoc = 13167;
+ rType = 0;
+ vrLen = 2117;
+ vrLoc = 12455;
+ };
+ AF99D2BF0B5D2D2A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 26";
rLen = 0;
- rLoc = 22991;
+ rLoc = 843;
rType = 0;
- vrLen = 1128;
- vrLoc = 1882;
+ vrLen = 1778;
+ vrLoc = 0;
};
- AFAC4E620B4C182700D59661 /* PBXTextBookmark */ = {
+ AF99D2C00B5D2D2A00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: no matching function for call to 'CDirectoryService::BuildStringDataList(<type error>, tDataList*&)'";
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D2C40B5D2FA100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: 'recNames' was not declared in this scope";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
rLen = 1;
- rLoc = 413;
+ rLoc = 592;
rType = 1;
};
- AFAC4E630B4C182700D59661 /* PBXTextBookmark */ = {
+ AF99D2C50B5D2FA100F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "";
- rLen = 3;
- rLoc = 12268;
+ name = "CDirectoryService.cpp: 609";
+ rLen = 0;
+ rLoc = 19263;
rType = 0;
- vrLen = 767;
- vrLoc = 11968;
+ vrLen = 462;
+ vrLoc = 18712;
};
- AFAC4E6E0B4C18D400D59661 /* PBXTextBookmark */ = {
+ AF99D2C70B5D2FD100F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 177";
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 20";
+ rLen = 15;
+ rLoc = 721;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 201;
+ };
+ AF99D2C80B5D2FD100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 20";
+ rLen = 15;
+ rLoc = 721;
+ rType = 0;
+ vrLen = 1058;
+ vrLoc = 201;
+ };
+ AF99D2C90B5D2FD100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 11";
rLen = 0;
- rLoc = 5134;
+ rLoc = 389;
rType = 0;
- vrLen = 1062;
- vrLoc = 1408;
+ vrLen = 1037;
+ vrLoc = 0;
};
- AFAC4E6F0B4C18D400D59661 /* PBXTextBookmark */ = {
+ AF99D2CA0B5D2FD100F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: no matching function for call to 'CDirectoryService::BuildStringDataList(<type error>, tDataList*&)'";
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D2CF0B5D303C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: '::dsBuildNodeAllocateString' has not been declared";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
rLen = 1;
- rLoc = 413;
+ rLoc = 1127;
rType = 1;
};
- AFAC4E700B4C18D400D59661 /* PBXTextBookmark */ = {
+ AF99D2D00B5D303C00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 177";
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1153";
+ rLen = 102;
+ rLoc = 32193;
+ rType = 0;
+ vrLen = 821;
+ vrLoc = 32006;
+ };
+ AF99D2D30B5D311000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: expected `;' before ')' token";
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ rLen = 1;
+ rLoc = 1132;
+ rType = 1;
+ };
+ AF99D2D40B5D311000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1158";
rLen = 0;
- rLoc = 5134;
+ rLoc = 32451;
rType = 0;
- vrLen = 1062;
- vrLoc = 1408;
+ vrLen = 967;
+ vrLoc = 32226;
};
- AFAC4E710B4C18D400D59661 /* PBXTextBookmark */ = {
+ AF99D2DA0B5D381700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 1069";
+ name = "CDirectoryService.cpp: 1158";
rLen = 0;
- rLoc = 30221;
+ rLoc = 32451;
rType = 0;
- vrLen = 1047;
- vrLoc = 11877;
+ vrLen = 967;
+ vrLoc = 32226;
};
- AFAC4E780B4C23EC00D59661 /* PBXTextBookmark */ = {
+ AF99D2DB0B5D381700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: conversion from 'int' to 'CFStringUtil' is ambiguous";
- fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ comments = "error: invalid conversion from 'const char*' to 'int'";
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
rLen = 1;
- rLoc = 370;
+ rLoc = 404;
rType = 1;
};
- AFAC4E790B4C23EC00D59661 /* PBXTextBookmark */ = {
+ AF99D2DC0B5D381700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 1069";
+ name = "CDirectoryService.cpp: 1158";
rLen = 0;
- rLoc = 30221;
+ rLoc = 32451;
rType = 0;
- vrLen = 1047;
- vrLoc = 11877;
+ vrLen = 967;
+ vrLoc = 32226;
};
- AFAC4E7A0B4C23EC00D59661 /* PBXTextBookmark */ = {
+ AF99D2DD0B5D381700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D2DE0B5D381900F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "return NULL;";
- rLen = 15;
- rLoc = 10914;
+ name = "CDirectoryService.cpp: 11";
+ rLen = 0;
+ rLoc = 389;
rType = 0;
- vrLen = 1309;
- vrLoc = 10178;
+ vrLen = 874;
+ vrLoc = 819;
};
- AFAC4E7B0B4C246E00D59661 /* PBXTextBookmark */ = {
+ AF99D2DF0B5D381900F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ };
+ AF99D2E00B5D381900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 822";
+ name = "CDirectoryService.cpp: 11";
rLen = 0;
- rLoc = 22141;
+ rLoc = 389;
rType = 0;
- vrLen = 1064;
- vrLoc = 10347;
+ vrLen = 874;
+ vrLoc = 819;
};
- AFAC4E810B4C259700D59661 /* PBXTextBookmark */ = {
+ AF99D2E10B5D381900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 87";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1870;
+ vrLoc = 2601;
+ };
+ AF99D2E20B5D381900F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D2E30B5D3B8100F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ };
+ AF99D2E50B5D3BA200F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 87";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1796;
+ vrLoc = 2601;
+ };
+ AF99D2E80B5D3BA200F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 43";
+ rLen = 0;
+ rLoc = 1512;
+ rType = 0;
+ vrLen = 2245;
+ vrLoc = 817;
+ };
+ AF99D2E90B5D3BA200F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2114;
+ vrLoc = 714;
+ };
+ AF99D2EE0B5D3CB700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 106";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1793;
+ vrLoc = 2601;
+ };
+ AF99D2EF0B5D3CB700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 822";
+ name = "CDirectoryService.cpp: 668";
rLen = 0;
- rLoc = 22141;
+ rLoc = 20796;
rType = 0;
- vrLen = 1064;
- vrLoc = 10347;
+ vrLen = 1857;
+ vrLoc = 19365;
};
- AFAC4E820B4C259700D59661 /* PBXTextBookmark */ = {
+ AF99D2F00B5D3CB700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AFAC4E830B4C259700D59661 /* asm _class_isInitialized 0x90863f5e */;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
rLen = 0;
- rLoc = 1;
+ rLoc = 115;
rType = 1;
};
- AFAC4E830B4C259700D59661 /* asm _class_isInitialized 0x90863f5e */ = {
- isa = PBXFileReference;
- lastKnownFileType = file;
- path = "asm _class_isInitialized 0x90863f5e";
- sourceTree = "<group>";
+ AF99D2F10B5D3CB700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 43";
+ rLen = 0;
+ rLoc = 1512;
+ rType = 0;
+ vrLen = 2245;
+ vrLoc = 817;
};
- AFAC4E840B4C259700D59661 /* PBXTextBookmark */ = {
+ AF99D2F20B5D3CB700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 822";
+ name = "CDirectoryService.cpp: 668";
rLen = 0;
- rLoc = 22141;
+ rLoc = 20796;
rType = 0;
- vrLen = 1064;
- vrLoc = 10347;
+ vrLen = 1857;
+ vrLoc = 19365;
};
- AFAC4E850B4C259700D59661 /* PBXTextBookmark */ = {
+ AF99D2F30B5D3CB700F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AFAC4E860B4C259700D59661 /* asm _class_isInitialized 0x90863f5e */;
- name = "(null): 2";
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 87";
rLen = 0;
- rLoc = 42;
+ rLoc = 3402;
rType = 0;
- vrLen = 168;
- vrLoc = 0;
+ vrLen = 2693;
+ vrLoc = 2098;
};
- AFAC4E860B4C259700D59661 /* asm _class_isInitialized 0x90863f5e */ = {
- isa = PBXFileReference;
- path = "asm _class_isInitialized 0x90863f5e";
- sourceTree = "<group>";
+ AF99D2F40B5D3CB700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
};
- AFAC4E870B4C25AD00D59661 /* PBXTextBookmark */ = {
+ AF99D3010B5D3E5F00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 112";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1212;
+ vrLoc = 2601;
+ };
+ AF99D3020B5D3E5F00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2114;
+ vrLoc = 714;
+ };
+ AF99D3050B5D3E6300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 112";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1212;
+ vrLoc = 2601;
+ };
+ AF99D3060B5D3E6300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2114;
+ vrLoc = 714;
+ };
+ AF99D30D0B5D469A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 112";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1191;
+ vrLoc = 2601;
+ };
+ AF99D30E0B5D469A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2114;
+ vrLoc = 714;
+ };
+ AF99D3100B5D469C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 112";
+ rLen = 0;
+ rLoc = 4743;
+ rType = 0;
+ vrLen = 1191;
+ vrLoc = 2601;
+ };
+ AF99D3110B5D469C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2114;
+ vrLoc = 714;
+ };
+ AF99D3150B5D46D300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D3160B5D46D500F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D31B0B5D471300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D3210B5D483900F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 85";
+ rLen = 0;
+ rLoc = 2879;
+ rType = 0;
+ vrLen = 1652;
+ vrLoc = 2601;
+ };
+ AF99D3220B5D483900F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 71";
+ rLen = 87;
+ rLoc = 2644;
+ rType = 0;
+ vrLen = 2168;
+ vrLoc = 714;
+ };
+ AF99D32B0B5D4C0200F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D32D0B5D4C7100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D32F0B5D4C9300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 93";
+ rLen = 0;
+ rLoc = 3435;
+ rType = 0;
+ vrLen = 1105;
+ vrLoc = 2562;
+ };
+ AF99D3300B5D4C9300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 822";
rLen = 0;
- rLoc = 22141;
+ rLoc = 457;
+ rType = 1;
+ };
+ AF99D3310B5D4C9300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 93";
+ rLen = 0;
+ rLoc = 3450;
rType = 0;
- vrLen = 1267;
- vrLoc = 10178;
+ vrLen = 1230;
+ vrLoc = 2565;
};
- AFAC4E880B4C25AD00D59661 /* PBXTextBookmark */ = {
+ AF99D3320B5D4C9300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */;
- name = "FStringUtil(CFSt";
- rLen = 16;
- rLoc = 1112;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 11";
+ rLen = 0;
+ rLoc = 389;
rType = 0;
- vrLen = 633;
- vrLoc = 736;
+ vrLen = 839;
+ vrLoc = 13460;
};
- AFAC4E890B4C25AD00D59661 /* PBXTextBookmark */ = {
+ AF99D3330B5D4C9300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 93";
+ rLen = 0;
+ rLoc = 3450;
+ rType = 0;
+ vrLen = 1103;
+ vrLoc = 2565;
+ };
+ AF99D3340B5D4C9300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 822";
+ name = "CDirectoryService.cpp: 456";
rLen = 0;
- rLoc = 22141;
+ rLoc = 14062;
rType = 0;
- vrLen = 1267;
- vrLoc = 10178;
+ vrLen = 839;
+ vrLoc = 13460;
};
- AFAC4E8A0B4C25AD00D59661 /* PBXTextBookmark */ = {
+ AF99D3350B5D4C9300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */;
- name = "CFStringUtil.cpp: 124";
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 93";
rLen = 0;
- rLoc = 2726;
+ rLoc = 3435;
rType = 0;
- vrLen = 533;
- vrLoc = 842;
+ vrLen = 1105;
+ vrLoc = 2562;
};
- AFAC4E900B4C267800D59661 /* PBXTextBookmark */ = {
+ AF99D3360B5D4C9300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */;
- name = "CFStringUtil.cpp: 124";
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 456";
rLen = 0;
- rLoc = 2726;
+ rLoc = 14062;
rType = 0;
- vrLen = 599;
- vrLoc = 842;
+ vrLen = 839;
+ vrLoc = 13460;
};
- AFAC4E910B4C267800D59661 /* PBXTextBookmark */ = {
+ AF99D33A0B5D4CF300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: cannot convert 'CFStringUtil' to 'const __CFString*' in return";
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
+ rType = 0;
+ vrLen = 906;
+ vrLoc = 11446;
+ };
+ AF99D33B0B5D4CF700F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ };
+ AF99D33D0B5D4E3A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 424";
+ rLen = 5;
+ rLoc = 13257;
+ rType = 0;
+ vrLen = 980;
+ vrLoc = 13633;
+ };
+ AF99D3400B5D4E3A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1175";
+ rLen = 0;
+ rLoc = 34610;
+ rType = 0;
+ vrLen = 2047;
+ vrLoc = 31874;
+ };
+ AF99D3430B5D4E3A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ rLen = 0;
+ rLoc = 2948;
+ rType = 0;
+ };
+ AF99D3440B5D4E3A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 72";
+ rLen = 112;
+ rLoc = 2731;
+ rType = 0;
+ vrLen = 2227;
+ vrLoc = 755;
+ };
+ AF99D3460B5D503D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 424";
+ rLen = 5;
+ rLoc = 13257;
+ rType = 0;
+ vrLen = 979;
+ vrLoc = 13633;
+ };
+ AF99D3470B5D503D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1203";
+ rLen = 0;
+ rLoc = 34430;
+ rType = 0;
+ vrLen = 2012;
+ vrLoc = 32467;
+ };
+ AF99D34A0B5D503D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF99D34B0B5D503D00F4C984 /* DirServicesTypes.h */;
rLen = 1;
- rLoc = 391;
+ rLoc = 351;
rType = 1;
};
- AFAC4E920B4C267800D59661 /* PBXTextBookmark */ = {
+ AF99D34B0B5D503D00F4C984 /* DirServicesTypes.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = DirServicesTypes.h;
+ path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/DirectoryService.framework/Versions/A/Headers/DirServicesTypes.h;
+ sourceTree = "<absolute>";
+ };
+ AF99D34C0B5D503D00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */;
- name = "CFStringUtil.cpp: 124";
+ fRef = AF99D34D0B5D503D00F4C984 /* DirServicesTypes.h */;
+ name = "DirServicesTypes.h: 354";
+ rLen = 11;
+ rLoc = 12302;
+ rType = 0;
+ vrLen = 2488;
+ vrLoc = 10949;
+ };
+ AF99D34D0B5D503D00F4C984 /* DirServicesTypes.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = DirServicesTypes.h;
+ path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/DirectoryService.framework/Versions/A/Headers/DirServicesTypes.h;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {862, 7238}}";
+ sepNavSelRange = "{12198, 899}";
+ sepNavVisRect = "{{0, 4246}, {862, 1040}}";
+ sepNavWindowFrame = "{{15, 4}, {921, 1169}}";
+ };
+ };
+ AF99D34E0B5D503D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A300A501F84007E1E6E /* CDirectoryService.h */;
+ name = "CDirectoryService.h: 72";
+ rLen = 112;
+ rLoc = 2731;
+ rType = 0;
+ vrLen = 2227;
+ vrLoc = 755;
+ };
+ AF99D3530B5D51EA00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
rLen = 0;
- rLoc = 2726;
+ rLoc = 12611;
rType = 0;
- vrLen = 599;
- vrLoc = 842;
+ vrLen = 906;
+ vrLoc = 11446;
};
- AFAC4E930B4C267800D59661 /* PBXTextBookmark */ = {
+ AF99D3540B5D51EA00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ comments = "error: 'compund' was not declared in this scope";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "return CFStringUtil(result);";
- rLen = 32;
- rLoc = 11575;
+ rLen = 1;
+ rLoc = 1206;
+ rType = 1;
+ };
+ AF99D3550B5D51EA00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 395";
+ rLen = 0;
+ rLoc = 12611;
rType = 0;
- vrLen = 1069;
- vrLoc = 10993;
+ vrLen = 906;
+ vrLoc = 11446;
};
- AFAC4E980B4C26BC00D59661 /* PBXTextBookmark */ = {
+ AF99D3560B5D51EA00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 826";
+ name = "CDirectoryService.cpp: 1229";
rLen = 0;
- rLoc = 22175;
+ rLoc = 34590;
rType = 0;
- vrLen = 741;
- vrLoc = 12242;
+ vrLen = 561;
+ vrLoc = 34050;
};
- AFAC4E9A0B4C279100D59661 /* PBXTextBookmark */ = {
+ AF99D35B0B5D52FC00F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ };
+ AF99D35C0B5D539800F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 87";
+ rLen = 0;
+ rLoc = 2905;
+ rType = 0;
+ vrLen = 1170;
+ vrLoc = 2556;
+ };
+ AF99D35D0B5D539800F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 826";
+ name = "CDirectoryService.cpp: 424";
+ rLen = 5;
+ rLoc = 13257;
+ rType = 0;
+ vrLen = 997;
+ vrLoc = 13633;
+ };
+ AF99D35E0B5D539800F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 424";
+ rLen = 5;
+ rLoc = 13257;
+ rType = 0;
+ vrLen = 997;
+ vrLoc = 13633;
+ };
+ AF99D35F0B5D539800F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 87";
rLen = 0;
- rLoc = 22175;
+ rLoc = 2905;
rType = 0;
- vrLen = 1055;
- vrLoc = 10993;
+ vrLen = 1170;
+ vrLoc = 2556;
};
- AFAC4EB00B4C3E7700D59661 /* PBXTextBookmark */ = {
+ AF99D3600B5D539800F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 827";
+ name = "CDirectoryService.cpp: 1215";
rLen = 0;
- rLoc = 22211;
+ rLoc = 33956;
rType = 0;
- vrLen = 939;
- vrLoc = 10994;
+ vrLen = 902;
+ vrLoc = 34152;
};
- AFAC4EB40B4C41C300D59661 /* PBXTextBookmark */ = {
+ AF99D3630B5D539800F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1223";
rLen = 0;
- rLoc = 22653;
+ rLoc = 34300;
rType = 0;
- vrLen = 1010;
- vrLoc = 10903;
+ vrLen = 1338;
+ vrLoc = 34369;
};
- AFAC4EB60B4C41D100D59661 /* PBXTextBookmark */ = {
+ AF99D3690B5D554E00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ comments = "error: expected primary-expression before ')' token";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ rLen = 1;
+ rLoc = 1198;
+ rType = 1;
+ };
+ AF99D36A0B5D554E00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1223";
rLen = 0;
- rLoc = 22652;
+ rLoc = 34300;
rType = 0;
- vrLen = 1010;
- vrLoc = 10902;
+ vrLen = 742;
+ vrLoc = 34650;
};
- AFAC4EB80B4C41E500D59661 /* PBXTextBookmark */ = {
+ AF99D36C0B5D556100F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: 'RemoveBuffer' was not declared in this scope";
+ comments = "error: expected primary-expression before ')' token";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
rLen = 1;
- rLoc = 801;
+ rLoc = 1198;
rType = 1;
};
- AFAC4EB90B4C41E500D59661 /* PBXTextBookmark */ = {
+ AF99D36D0B5D556100F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1223";
rLen = 0;
- rLoc = 22671;
+ rLoc = 34268;
rType = 0;
- vrLen = 652;
- vrLoc = 21167;
+ vrLen = 741;
+ vrLoc = 34650;
};
- AFAC4EBA0B4C41FE00D59661 /* PBXTextBookmark */ = {
+ AF99D36F0B5D559300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ comments = "error: expected primary-expression before ')' token";
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
rLen = 1;
- rLoc = 303;
+ rLoc = 1198;
rType = 1;
};
- AFAC4EBE0B4C431100D59661 /* PBXTextBookmark */ = {
+ AF99D3700B5D559300F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1223";
rLen = 0;
- rLoc = 22671;
+ rLoc = 34296;
rType = 0;
- vrLen = 1010;
- vrLoc = 10902;
+ vrLen = 748;
+ vrLoc = 34650;
};
- AFAC4EBF0B4C431100D59661 /* PBXTextBookmark */ = {
+ AF99D3730B5D55E000F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- comments = "error: invalid conversion from 'const __CFArray*' to '__CFArray*'";
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1223";
+ rLen = 0;
+ rLoc = 34296;
+ rType = 0;
+ vrLen = 748;
+ vrLoc = 34650;
+ };
+ AF99D3740B5D55E000F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: no matching function for call to 'CDirectoryService::QueryRecordsWithAttributes(const __CFDictionary*&, tDirPatternMatch, bool, const char*&, const __CFArray*&)'";
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
rLen = 1;
- rLoc = 147;
+ rLoc = 404;
rType = 1;
};
- AFAC4EC00B4C431100D59661 /* PBXTextBookmark */ = {
+ AF99D3750B5D55E000F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1223";
rLen = 0;
- rLoc = 22671;
+ rLoc = 34296;
rType = 0;
- vrLen = 1010;
- vrLoc = 10902;
+ vrLen = 748;
+ vrLoc = 34650;
};
- AFAC4EC10B4C431100D59661 /* PBXTextBookmark */ = {
+ AF99D3760B5D55E000F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "PrintArray(arrayvalue);";
- rLen = 26;
- rLoc = 4366;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 397";
+ rLen = 0;
+ rLoc = 12580;
rType = 0;
- vrLen = 1015;
- vrLoc = 3547;
+ vrLen = 917;
+ vrLoc = 11467;
};
- AFAC4EC30B4C434200D59661 /* PBXTextBookmark */ = {
+ AF99D3790B5D55FC00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1215";
rLen = 0;
- rLoc = 22671;
+ rLoc = 33956;
rType = 0;
- vrLen = 652;
- vrLoc = 21167;
+ vrLen = 902;
+ vrLoc = 34152;
};
- AFAC4EC40B4C434200D59661 /* PBXTextBookmark */ = {
+ AF99D37A0B5D55FC00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "CDirectoryService.cpp: 851";
+ name = "CDirectoryService.cpp: 1215";
rLen = 0;
- rLoc = 22671;
+ rLoc = 33956;
rType = 0;
- vrLen = 652;
- vrLoc = 21167;
+ vrLen = 902;
+ vrLoc = 34152;
};
- AFAC4EC50B4C434200D59661 /* PBXTextBookmark */ = {
+ AF99D37B0B5D55FC00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 204";
+ name = "test.cpp: 95";
rLen = 0;
- rLoc = 5935;
+ rLoc = 3457;
rType = 0;
- vrLen = 837;
- vrLoc = 3572;
+ vrLen = 2065;
+ vrLoc = 2724;
};
- AFAC4EC80B4C436E00D59661 /* PBXTextBookmark */ = {
+ AF99D37C0B5D561300F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ };
+ AF99D37D0B5D56A900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 204";
+ name = "test.cpp: 95";
rLen = 0;
- rLoc = 5935;
+ rLoc = 3457;
rType = 0;
- vrLen = 832;
- vrLoc = 3572;
+ vrLen = 2065;
+ vrLoc = 2724;
};
- AFAC4ECB0B4C437900D59661 /* PBXTextBookmark */ = {
+ AF99D3800B5D56A900F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 348";
+ rLen = 874;
+ rLoc = 10132;
+ rType = 0;
+ vrLen = 2588;
+ vrLoc = 9565;
+ };
+ AF99D3820B5D579A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 204";
+ name = "test.cpp: 95";
rLen = 0;
- rLoc = 5935;
+ rLoc = 3457;
rType = 0;
- vrLen = 964;
- vrLoc = 3540;
+ vrLen = 2065;
+ vrLoc = 2724;
};
- AFAC4ECC0B4C437900D59661 /* PBXTextBookmark */ = {
+ AF99D3830B5D579A00F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 348";
+ rLen = 874;
+ rLoc = 10132;
+ rType = 0;
+ vrLen = 2588;
+ vrLoc = 9565;
+ };
+ AF99D3840B5D579A00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 372";
+ rLen = 0;
+ rLoc = 11301;
+ rType = 0;
+ vrLen = 2572;
+ vrLoc = 10228;
+ };
+ AF99D3850B5D58E800F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
- name = "test.cpp: 204";
+ name = "test.cpp: 95";
rLen = 0;
- rLoc = 5935;
+ rLoc = 3457;
rType = 0;
- vrLen = 964;
- vrLoc = 3540;
+ vrLen = 2065;
+ vrLoc = 2724;
};
- AFAC4ECD0B4C437900D59661 /* PBXTextBookmark */ = {
+ AF99D3860B5D58E800F4C984 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 373";
+ rLen = 0;
+ rLoc = 11489;
+ rType = 0;
+ vrLen = 2560;
+ vrLoc = 10084;
+ };
+ AF99D3870B5D5A5C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3880B5D5A5C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 374";
+ rLen = 0;
+ rLoc = 11350;
+ rType = 0;
+ vrLen = 2584;
+ vrLoc = 10129;
+ };
+ AF99D3890B5D5DD300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D38A0B5D5DD300F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 390";
+ rLen = 0;
+ rLoc = 12064;
+ rType = 0;
+ vrLen = 2434;
+ vrLoc = 9558;
+ };
+ AF99D38C0B5D5E2700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D38D0B5D5E2700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 391";
+ rLen = 0;
+ rLoc = 12049;
+ rType = 0;
+ vrLen = 2624;
+ vrLoc = 10317;
+ };
+ AF99D38F0B5D5F8500F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
- name = "printf(\"%d\", dsStatus);";
- rLen = 26;
- rLoc = 9255;
+ };
+ AF99D3900B5D5FA700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
rType = 0;
- vrLen = 814;
- vrLoc = 8902;
+ vrLen = 2065;
+ vrLoc = 2724;
};
+ AF99D3930B5D5FA700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A2F0A501F84007E1E6E /* CDirectoryService.cpp */;
+ name = "CDirectoryService.cpp: 1222";
+ rLen = 0;
+ rLoc = 34075;
+ rType = 0;
+ vrLen = 1249;
+ vrLoc = 34284;
+ };
+ AF99D3940B5D69C700F4C984 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ };
+ AF99D3950B5D69F100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3980B5D69F100F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 374";
+ rLen = 0;
+ rLoc = 11301;
+ rType = 0;
+ vrLen = 2034;
+ vrLoc = 10970;
+ };
+ AF99D39A0B5D6A5B00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D39B0B5D6A5B00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 375";
+ rLen = 0;
+ rLoc = 11514;
+ rType = 0;
+ vrLen = 2038;
+ vrLoc = 10970;
+ };
+ AF99D39C0B5D6A7C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D39D0B5D6A7C00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 374";
+ rLen = 16;
+ rLoc = 11270;
+ rType = 0;
+ vrLen = 2038;
+ vrLoc = 10970;
+ };
+ AF99D39E0B5D6AFF00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D39F0B5D6AFF00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 374";
+ rLen = 0;
+ rLoc = 11301;
+ rType = 0;
+ vrLen = 2037;
+ vrLoc = 10970;
+ };
+ AF99D3A00B5D6B3700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3A10B5D6B3700F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 375";
+ rLen = 0;
+ rLoc = 11409;
+ rType = 0;
+ vrLen = 2034;
+ vrLoc = 10970;
+ };
+ AF99D3A20B5D6BCD00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3A30B5D6BCD00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 514";
+ rLen = 0;
+ rLoc = 16188;
+ rType = 0;
+ vrLen = 2154;
+ vrLoc = 14864;
+ };
+ AF99D3A80B5D6EB600F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3A90B5D6EB600F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 121";
+ rLen = 36;
+ rLoc = 3328;
+ rType = 0;
+ vrLen = 1678;
+ vrLoc = 3258;
+ };
+ AF99D3AD0B5D6F5D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 08FB7796FE84155DC02AAC07 /* test.cpp */;
+ name = "test.cpp: 95";
+ rLen = 0;
+ rLoc = 3457;
+ rType = 0;
+ vrLen = 2065;
+ vrLoc = 2724;
+ };
+ AF99D3AE0B5D6F5D00F4C984 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = AF155A310A501F84007E1E6E /* PythonWrapper.cpp */;
+ name = "PythonWrapper.cpp: 121";
+ rLen = 36;
+ rLoc = 3328;
+ rType = 0;
+ vrLen = 1678;
+ vrLoc = 3258;
+ };
}
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/project.pbxproj
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/project.pbxproj 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/PyOpenDirectory.xcodeproj/project.pbxproj 2007-01-16 20:30:25 UTC (rev 1052)
@@ -15,6 +15,7 @@
AF155A380A501F9D007E1E6E /* DirectoryService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF155A360A501F9D007E1E6E /* DirectoryService.framework */; };
AF155AFD0A502C09007E1E6E /* CFStringUtil.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = AF155AFB0A502C09007E1E6E /* CFStringUtil.h */; };
AF155AFE0A502C09007E1E6E /* CFStringUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */; };
+ AFEF82220B571AC200ACEED3 /* Python.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFEF82210B571AC200ACEED3 /* Python.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -41,6 +42,7 @@
AF155A360A501F9D007E1E6E /* DirectoryService.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DirectoryService.framework; path = /System/Library/Frameworks/DirectoryService.framework; sourceTree = "<absolute>"; };
AF155AFB0A502C09007E1E6E /* CFStringUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CFStringUtil.h; path = ../src/CFStringUtil.h; sourceTree = SOURCE_ROOT; };
AF155AFC0A502C09007E1E6E /* CFStringUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CFStringUtil.cpp; path = ../src/CFStringUtil.cpp; sourceTree = SOURCE_ROOT; };
+ AFEF82210B571AC200ACEED3 /* Python.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Python.framework; path = /Library/Frameworks/Python.framework; sourceTree = "<absolute>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -50,6 +52,7 @@
files = (
AF155A370A501F9D007E1E6E /* CoreFoundation.framework in Frameworks */,
AF155A380A501F9D007E1E6E /* DirectoryService.framework in Frameworks */,
+ AFEF82220B571AC200ACEED3 /* Python.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -90,6 +93,7 @@
AF155A3D0A501FA0007E1E6E /* Frameworks */ = {
isa = PBXGroup;
children = (
+ AFEF82210B571AC200ACEED3 /* Python.framework */,
AF155A350A501F9D007E1E6E /* CoreFoundation.framework */,
AF155A360A501F9D007E1E6E /* DirectoryService.framework */,
);
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/test.cpp
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/test.cpp 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/support/test.cpp 2007-01-16 20:30:25 UTC (rev 1052)
@@ -34,11 +34,13 @@
void PrintArrayArray(CFMutableArrayRef list);
void PrintArray(CFArrayRef list);
void AuthenticateUser(CDirectoryService* dir, const char* user, const char* pswd);
+void AuthenticateUserDigest(CDirectoryService* dir, const char* user, const char* challenge, const char* response, const char* method);
int main (int argc, const char * argv[]) {
CDirectoryService* dir = new CDirectoryService("/Search");
+#if 0
CFStringRef strings[2];
strings[0] = CFSTR(kDS1AttrDistinguishedName);
strings[1] = CFSTR(kDS1AttrGeneratedUID);
@@ -76,18 +78,62 @@
AuthenticateUser(dir, "cdaboo", "appledav1234");
AuthenticateUser(dir, "cdaboo", "appledav6585");
+#elif 1
+ CFStringRef keys[2];
+ keys[0] = CFSTR(kDS1AttrFirstName);
+ keys[1] = CFSTR(kDS1AttrLastName);
+ CFStringRef values[2];
+ values[0] = CFSTR("cyrus");
+ values[1] = CFSTR("daboo");
+ CFDictionaryRef kvdict = CFDictionaryCreate(kCFAllocatorDefault, (const void **)keys, (const void**)values, 2, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+
+ CFStringRef strings[2];
+ strings[0] = CFSTR(kDS1AttrDistinguishedName);
+ strings[1] = CFSTR(kDS1AttrGeneratedUID);
+ CFArrayRef array = CFArrayCreate(kCFAllocatorDefault, (const void **)strings, 2, &kCFTypeArrayCallBacks);
+
+ CFMutableDictionaryRef dict = dir->QueryRecordsWithAttributes(kvdict, eDSContains, false, false, kDSStdRecordTypeUsers, array);
+ if (dict != NULL)
+ {
+ printf("\n*** Users: %d ***\n", CFDictionaryGetCount(dict));
+ CFDictionaryApplyFunction(dict, PrintDictionaryDictionary, NULL);
+ CFRelease(dict);
+ }
+ else
+ {
+ printf("\nNo Users returned\n");
+ }
+ CFRelease(array);
+#else
+ const char* u = "cyrusdaboo";
+ //const char* c = "nonce=\"1\", qop=\"auth\", realm=\"Test\", algorithm=\"md5\", opaque=\"1\"";
+ //const char* r = "username=\"cyrusdaboo\", nonce=\"1\", cnonce=\"1\", nc=\"1\", realm=\"Test\", algorithm=\"md5\", opaque=\"1\", qop=\"auth\", uri=\"/\", response=\"4241f31ffe6f9c99b891f88e9c41caa9\"";
+ const char* c = "WWW-Authenticate: digest nonce=\"1621696297327727918745238639\", opaque=\"121994e78694cbdff74f12cb32ee6f00-MTYyMTY5NjI5NzMyNzcyNzkxODc0NTIzODYzOSwxMjcuMC4wLjEsMTE2ODU2ODg5NQ==\", realm=\"Test Realm\", algorithm=\"md5\", qop=\"auth\"";
+ const char* r = "Authorization: Digest username=\"cyrusdaboo\", realm=\"Test Realm\", nonce=\"1621696297327727918745238639\", uri=\"/principals/users/cyrusdaboo/\", response=\"e260f13cffcc15572ddeec9c31de437b\", opaque=\"121994e78694cbdff74f12cb32ee6f00-MTYyMTY5NjI5NzMyNzcyNzkxODc0NTIzODYzOSwxMjcuMC4wLjEsMTE2ODU2ODg5NQ==\", algorithm=\"md5\", cnonce=\"70cbd8f04227d8d46c0193b290beaf0d\", nc=00000001, qop=\"auth\"";
+ AuthenticateUserDigest(dir, u, c, r, "GET");
+#endif
return 0;
}
void AuthenticateUser(CDirectoryService* dir, const char* user, const char* pswd)
{
- if (dir->AuthenticateUserBasic(user, pswd))
+ bool result = false;
+ if (dir->AuthenticateUserBasic(user, pswd, result))
printf("Authenticated user: %s\n", user);
else
printf("Not Authenticated user: %s\n", user);
}
+void AuthenticateUserDigest(CDirectoryService* dir, const char* user, const char* challenge, const char* response, const char* method)
+{
+ bool result = false;
+ if (dir->AuthenticateUserDigest(user, challenge, response, method, result))
+ printf("Authenticated user: %s\n", user);
+ else
+ printf("Not Authenticated user: %s\n", user);
+}
+
void CFDictionaryIterator(const void* key, const void* value, void* ref)
{
CFStringRef strkey = (CFStringRef)key;
Modified: PyOpenDirectory/branches/users/cdaboo/od-schema-1044/test.py
===================================================================
--- PyOpenDirectory/branches/users/cdaboo/od-schema-1044/test.py 2007-01-16 18:30:59 UTC (rev 1051)
+++ PyOpenDirectory/branches/users/cdaboo/od-schema-1044/test.py 2007-01-16 20:30:25 UTC (rev 1052)
@@ -26,34 +26,109 @@
print "Failed odInit"
else:
print "OK odInit"
+
+ def listUsers():
+ d = opendirectory.listAllRecordsWithAttributes(ref, dsattributes.kDSStdRecordTypeUsers,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,])
+ if d is None:
+ print "Failed to list users"
+ else:
+ names = [v for v in d.iterkeys()]
+ names.sort()
+ for n in names:
+ print "Name: %s" % n
+ print "dict: %s" % str(d[n])
- d = opendirectory.listAllRecordsWithAttributes(ref, dsattributes.kDSStdRecordTypeUsers,
- [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,])
- if d is None:
- print "Failed to list users"
- else:
- names = [v for v in d.iterkeys()]
- names.sort()
- for n in names:
- print "Name: %s" % n
- print "dict: %s" % str(d[n])
+ def listGroups():
+ d = opendirectory.listAllRecordsWithAttributes(ref, dsattributes.kDSStdRecordTypeGroups,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDSNAttrGroupMembers,])
+ if d is None:
+ print "Failed to list groups"
+ else:
+ names = [v for v in d.iterkeys()]
+ names.sort()
+ for n in names:
+ print "Name: %s" % n
+ print "dict: %s" % str(d[n])
- d = opendirectory.listAllRecordsWithAttributes(ref, dsattributes.kDSStdRecordTypeGroups,
- [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDSNAttrGroupMembers,])
- if d is None:
- print "Failed to list groups"
- else:
- names = [v for v in d.iterkeys()]
- names.sort()
- for n in names:
- print "Name: %s" % n
- print "dict: %s" % str(d[n])
+ def query(title, dict, matchType, casei, allmatch, recordType, attrs):
+ d = opendirectory.queryRecordsWithAttributes(
+ ref,
+ dict,
+ matchType,
+ casei,
+ allmatch,
+ recordType,
+ attrs
+ )
+ if d is None:
+ print "Failed to query users"
+ else:
+ names = [v for v in d.iterkeys()]
+ names.sort()
+ print "\n%s number of results = %d" % (title, len(names),)
+ for n in names:
+ print "Name: %s" % n
+ print "dict: %s" % str(d[n])
+
+ def queryUsers():
+ query(
+ "queryUsers",
+ {dsattributes.kDS1AttrFirstName: "cyrus",},
+ dsattributes.eDSExact,
+ True,
+ True,
+ dsattributes.kDSStdRecordTypeUsers,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,]
+ )
+
+ def queryUsersCompoundOr():
+ query(
+ "queryUsersCompoundOr",
+ {dsattributes.kDS1AttrFirstName: "chris", dsattributes.kDS1AttrLastName: "roy",},
+ dsattributes.eDSContains,
+ True,
+ False,
+ dsattributes.kDSStdRecordTypeUsers,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,]
+ )
+
+ def queryUsersCompoundOrExact():
+ query(
+ "queryUsersCompoundOrExact",
+ {dsattributes.kDS1AttrFirstName: "chris", dsattributes.kDS1AttrLastName: "roy",},
+ dsattributes.eDSExact,
+ True,
+ False,
+ dsattributes.kDSStdRecordTypeUsers,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,]
+ )
+
+ def queryUsersCompoundAnd():
+ query(
+ "queryUsersCompoundAnd",
+ {dsattributes.kDS1AttrFirstName: "chris", dsattributes.kDS1AttrLastName: "roy",},
+ dsattributes.eDSContains,
+ True,
+ True,
+ dsattributes.kDSStdRecordTypeUsers,
+ [dsattributes.kDS1AttrGeneratedUID, dsattributes.kDS1AttrDistinguishedName,]
+ )
+
+ def authentciateBasic():
+ if opendirectory.authenticateUserBasic(ref, "test", "test"):
+ print "Authenticated user"
+ else:
+ print "Failed to authenticate user"
- if opendirectory.authenticateUserBasic(ref, "test", "test"):
- print "Authenticated user"
- else:
- print "Failed to authenticate user"
-
+ listUsers()
+ listGroups()
+ queryUsers()
+ queryUsersCompoundOr()
+ queryUsersCompoundOrExact()
+ queryUsersCompoundAnd()
+ authentciateBasic()
+
ref = None
except opendirectory.ODError, ex:
print ex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070116/cfebab59/attachment.html
More information about the calendarserver-changes
mailing list