From: <ama...@us...> - 2006-12-30 18:20:32
|
Revision: 8958 http://svn.sourceforge.net/bibdesk/?rev=8958&view=rev Author: amaxwell Date: 2006-12-30 10:20:27 -0800 (Sat, 30 Dec 2006) Log Message: ----------- add API for converting syntax type to string Modified Paths: -------------- trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.h trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.m Modified: trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.h =================================================================== --- trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.h 2006-12-30 15:49:01 UTC (rev 8957) +++ trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.h 2006-12-30 18:20:27 UTC (rev 8958) @@ -26,6 +26,7 @@ + (NSArray *)validKeys; + (NSString *)stringWithSyntaxType:(BDSKZoomSyntaxType)type; ++ (BDSKZoomSyntaxType)syntaxTypeWithString:(NSString *)string; // encoding of 0 (not used) means that only UTF-8 will be tried + (void)setFallbackEncoding:(NSStringEncoding)enc; Modified: trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.m =================================================================== --- trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.m 2006-12-30 15:49:01 UTC (rev 8957) +++ trunk/bibdesk_vendorsrc/indexdata/yaz/BDSKZoomRecord.m 2006-12-30 18:20:27 UTC (rev 8958) @@ -50,6 +50,30 @@ } } ++ (BDSKZoomSyntaxType)syntaxTypeWithString:(NSString *)string; +{ + // these calls and the corresponding enum were lifted from zrec.cpp in yazpp-1.0.0 + const char *syn = [string UTF8String]; + + // These string constants are from yaz/util/oid.c + if (!yaz_matchstr(syn, "xml")) + return XML; + else if (!yaz_matchstr(syn, "GRS-1")) + return GRS1; + else if (!yaz_matchstr(syn, "SUTRS")) + return SUTRS; + else if (!yaz_matchstr(syn, "USmarc")) + return USMARC; + else if (!yaz_matchstr(syn, "UKmarc")) + return UKMARC; + else if (!yaz_matchstr(syn, "XML") || + !yaz_matchstr(syn, "text-XML") || + !yaz_matchstr(syn, "application-XML")) + return XML; + else + return UNKNOWN; +} + + (id)recordWithZoomRecord:(ZOOM_record)record; { return [[[self allocWithZone:[self zone]] initWithZoomRecord:record] autorelease]; @@ -110,25 +134,7 @@ - (BDSKZoomSyntaxType)syntaxType; { - // these calls and the corresponding enum were lifted from zrec.cpp in yazpp-1.0.0 - const char *syn = ZOOM_record_get(_record, "syntax", 0); - - // These string constants are from yaz/util/oid.c - if (!yaz_matchstr(syn, "xml")) - return XML; - else if (!yaz_matchstr(syn, "GRS-1")) - return GRS1; - else if (!yaz_matchstr(syn, "SUTRS")) - return SUTRS; - else if (!yaz_matchstr(syn, "USmarc")) - return USMARC; - else if (!yaz_matchstr(syn, "UKmarc")) - return UKMARC; - else if (!yaz_matchstr(syn, "XML") || - !yaz_matchstr(syn, "text-XML") || - !yaz_matchstr(syn, "application-XML")) - return XML; - else return UNKNOWN; + return [BDSKZoomRecord syntaxTypeWithString:[self valueForKey:@"syntax"]]; } @end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |