Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
// By pumpkin typedef void *CPRecordRef; typedef struct CPRecordClass { char *name; int unk0; int unk1; int unk2; void *deletefn; int unk3; void *beforesavefn; int unk4; void *nameforpropertyfn; int property_count; void *properties; int unk6; } *CPRecordClassRef; typedef struct CPRecordProperty { char *name; int unk0; CPRecordPropertyCallbacksRef callbacks; int unk2; int unk3; } *CPRecordPropertyRef; typedef struct CPRecordPropertyCallbacks { CPRecordRef (*createCopy)(CPRecordRef); void (*destroy)(CPRecordRef); void (*show)(CPRecordRef); void * (*load)(CPRecordRef, int); int (*save)(CPRecordRef, int, void *); } *CPRecordPropertyCallbacksRef; CPRecordCopyProperty // Creates a new record of the given class CPRecordRef CPRecordCreate(void *class); // Frees the memory associated with the specified record void CPRecordDestroy(CPRecordRef record); CPRecordGetCachedProperty // Returns the class of the specified record void *CPRecordGetClass(CPRecordRef record); // Returns the records ID int CPRecordGetID(CPRecordRef record); // Returns the value of the specified property void *CPRecordGetProperty(CPRecordRef record, int index); CPRecordGetPropertyDescriptor // Returns the CPRecordStore that this record came from CPRecordStoreRef CPRecordGetStore(CPRecordRef record); // Returns the index of the specified property name (this prototype is wrong) int CPRecordIndexOfPropertyNamed(CPRecordRef record, int count, char *name); CPRecordInitializeProperty // Marks a record as changed int CPRecordMarkChanged(CPRecordRef record); // Sets a property in the specified record int CPRecordSetProperty(CPRecordRef record, int index, void *value); // Shows the specified record void CPRecordShow(CPRecordRef record); // Clears the cache of a record's property int CPRecordUnloadProperty(CPRecordRef record, int index); CPSqliteDatabaseCreateWithPath // Sets the ClientVersion key on the database (stored in the _SqliteDatabaseProperties table, in the database) int CPSqliteDatabaseSetVersion(CPSQliteDatabaseRef database, int version); CPSqliteDatabaseSetSetupHandler // Returns the path for the given database CFStringRef CPSqliteDatabasePath(CPSqliteDatabaseRef database); _CPSqliteCreateDatabaseConnectionForWriting CPSqliteDatabaseReleaseSqliteConnection CPSqliteConnectionRowidOfLastInsert CPSqliteStatementStringResult CPSqliteStatementIntegerResult CPSqliteStatementFinalize CPSqliteStatementApplyValuesFromRecord CPSqliteComparePhoneNumbers CPSqlitePhoneNumberContainsAlphaCharacters CPSqliteNormalizePhoneNumber // Frees the given statement int CPSqliteStatementReset(CPSqliteStatementRef statement); // Performs the given statement int CPSqliteStatementPerform(CPSqliteStatementRef statement); CPSqliteDatabaseDefaultSetupHandler // Creates a Statement object for the given sql on the provided connection CPSqliteStatementRef CPSqliteConnectionStatementForSQL(CPSqliteConnectionRef connection, CFStringRef sql); CPSqliteCompareSortKeyPrefixes CPSqliteHasSortKeyPrefix CPSqliteDatabaseReleaseSqliteStatement CPSqliteStatementProcessPhoneQuery // Closes the specified database int CPSqliteDatabaseClose(CPSqliteDatabaseRef database); CPSqliteDatabaseCloseAllConnections CPSqliteConnectionSetValueForProperty CPSqliteConnectionPerformSQL CPSqliteConnectionRollback CPSqliteConnectionCommit CPSqliteConnectionBegin CPSqliteConnectionAddRecord CPSqliteConnectionUpdateRecord CPSqliteConnectionCopyValueForProperty CPSqliteConnectionIntegerForProperty CPSqliteConnectionSetIntegerForProperty CPSqliteDatabaseConnectionForWriting CPSqliteDatabaseSetLoggingEnabled // Registers a custom sqlite function with the database int CPSqliteDatabaseRegisterFunction(CPSqliteDatabaseRef database, char *name, void *function, int parameterCount); CPSqliteDatabaseSetValueForProperty CPSqliteDatabaseStatementForWriting CPSqliteDatabaseConnectionForReading CPSqliteDatabaseCopyValueForProperty CPSqliteDatabaseStatementForReading CPSqliteDatabaseCopyUniqueIdentifier CPSqliteStatementSendResults // Sets a context (arbitrary user data pointer) for the given record store int CPRecordStoreSetContext(CPRecordStoreRef store, void *context); // Returns the context associated with the given record store void *CPRecordStoreGetContext(CPRecordStoreRef store); int CPRecordStoreSetValueForProperty(void *value, CFStringRef property); // Creates a record store with the given path CPRecordStoreRef CPRecordStoreCreateWithPath(CFStringRef path); // Sets a callback that should be called when the database needs to be initialized (TODO: give a stronger type to the function pointer) int CPRecordStoreSetSetupHandler(CPRecordStoreRef store, void *handler); // Returns the sqlite backing database for the given record store CPSqliteDatabaseRef CPRecordStoreGetDatabase(CPRecordStoreRef store); CPRecordStoreGetCache CPRecordStoreGetDeletedRecords CPRecordStoreSaveProperty CPRecordStoreDeleteRecord CPRecordStoreDeleteRecordsInDictionary _CPRecordStoreSaveAddedRecords // Logs the changes (the flush parameter is a guess) int CPRecordStoreLogChanges(CPRecordStoreRef store, BOOL flush); CPRecordStoreIsLoggingChanges CPRecordStoreDestroy CPRecordStoreCreateTablesForClass CPRecordStoreRegisterClass CPRecordStoreCreateSelectPrefixFromRecordDescriptorWithAdditionalColumns CPRecordStoreCreateSelectPrefixFromRecordDescriptorWithAdditionalColumn CPRecordStoreCreateSelectPrefixFromRecordDescriptor CPRecordStoreProcessStatement CPRecordStoreAddRecord CPRecordStoreRemoveRecordInternal CPRecordStoreRemoveRecord CPRecordStoreRemoveRecordOfClassWithUID CPRecordStoreInvalidateCachedInstancesOfClass CPRecordStoreWriteColumnsForRecord CPRecordStoreSaveRecord CPRecordStoreUpdateRecord CPRecordStoreCopyValueForProperty CPRecordStoreProcessAddedRecords CPRecordStoreProcessAddedRecordsOfClass CPRecordStoreSaveWithCallback CPRecordStoreSave CPRecordStoreInvalidateCaches CPRecordStoreProcessQuery CPRecordStoreLoadInstancesOfClassWhere CPRecordStoreCopyAllInstancesOfClass CPRecordStoreGetInstanceOfClassWithUID CPRecordStoreGetInstancesOfClassWithUIDs CPRecordStoreGetChangesForClass CPRecordStoreDeleteChangesForClassToIndex CPRecordStoreGetCountOfAllInstancesOfClass
This paste will be private.
From the Design Piracy series on my blog: