@@ -33,6 +33,13 @@ CF_INLINE struct _NSCFXMLBridgeStrong __CFSwiftXMLParserBridgeGetStronglyTyped()
33
33
}
34
34
#define __CFSwiftXMLParserBridgeCF (__CFSwiftXMLParserBridgeGetStronglyTyped())
35
35
36
+ // CFSTR is not supported on Windows, so we have to fake it just for this file
37
+ #ifndef __CONSTANT_CFSTRINGS__
38
+ #pragma push_macro("CFSTR")
39
+ #undef CFSTR
40
+ #define CFSTR (x ) __CFSwiftXMLParserBridgeCF.CFStringCreateWithCString(NULL, (x), kCFStringEncodingUTF8)
41
+ #endif
42
+
36
43
/*
37
44
libxml2 does not have nullability annotations and does not import well into swift when given potentially differing versions of the library that might be installed on the host operating system. This is a simple C wrapper to simplify some of that interface layer to libxml2.
38
45
*/
@@ -350,7 +357,7 @@ void _CFXMLInterfaceSAX2UnparsedEntityDecl(_CFXMLInterfaceParserContext ctx, con
350
357
}
351
358
352
359
CFErrorRef _CFErrorCreateFromXMLInterface (_CFXMLInterfaceError err ) {
353
- return __CFSwiftXMLParserBridgeCF .CFErrorCreate (* (__CFSwiftXMLParserBridgeCF .kCFAllocatorSystemDefault ), __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "NSXMLParserErrorDomain" , kCFStringEncodingUTF8 ), err -> code , NULL );
360
+ return __CFSwiftXMLParserBridgeCF .CFErrorCreate (* (__CFSwiftXMLParserBridgeCF .kCFAllocatorSystemDefault ), CFSTR ( "NSXMLParserErrorDomain" ), err -> code , NULL );
354
361
}
355
362
356
363
_CFXMLNodePtr _CFXMLNewNode (_CFXMLNamespacePtr namespace , const char * name ) {
@@ -594,14 +601,14 @@ void _CFXMLNodeSetContent(_CFXMLNodePtr node, const unsigned char* _Nullable co
594
601
// rather than writing custom code to parse the new content into the correct
595
602
// xmlElementContent structures, let's leverage what we've already got.
596
603
CFMutableStringRef xmlString = __CFSwiftXMLParserBridgeCF .CFStringCreateMutable (NULL , 0 );
597
- __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "<!ELEMENT " , kCFStringEncodingUTF8 ));
604
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , CFSTR ( "<!ELEMENT " ));
598
605
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (xmlString , (const char * )element -> name , kCFStringEncodingUTF8 );
599
- __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , " " , kCFStringEncodingUTF8 ));
606
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , CFSTR ( " " ));
600
607
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (xmlString , (const char * )content , kCFStringEncodingUTF8 );
601
- __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , ">" , kCFStringEncodingUTF8 ));
608
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (xmlString , CFSTR ( ">" ));
602
609
603
610
size_t bufferSize = __CFSwiftXMLParserBridgeCF .CFStringGetMaximumSizeForEncoding (__CFSwiftXMLParserBridgeCF .CFStringGetLength (xmlString ), kCFStringEncodingUTF8 ) + 1 ;
604
- char * buffer = calloc (bufferSize , 1 );
611
+ char * buffer = calloc (1 , bufferSize );
605
612
__CFSwiftXMLParserBridgeCF .CFStringGetCString (xmlString , buffer , bufferSize , kCFStringEncodingUTF8 );
606
613
xmlElementPtr resultNode = _CFXMLParseDTDNode ((const xmlChar * )buffer );
607
614
@@ -864,35 +871,35 @@ CFStringRef _CFXMLCopyStringWithOptions(_CFXMLNodePtr node, uint32_t options) {
864
871
// predefined entities need special handling, libxml2 just tosses an error and returns a NULL string
865
872
// if we try to use xmlSaveTree on a predefined entity
866
873
CFMutableStringRef result = __CFSwiftXMLParserBridgeCF .CFStringCreateMutable (NULL , 0 );
867
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "<!ENTITY " , kCFStringEncodingUTF8 ));
874
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "<!ENTITY " ));
868
875
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (result , (const char * )((xmlEntityPtr )node )-> name , kCFStringEncodingUTF8 );
869
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , " \"" , kCFStringEncodingUTF8 ));
876
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( " \"" ));
870
877
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (result , (const char * )((xmlEntityPtr )node )-> content , kCFStringEncodingUTF8 );
871
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "\">" , kCFStringEncodingUTF8 ));
878
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "\">" ));
872
879
873
880
return result ;
874
881
} else if (((xmlNodePtr )node )-> type == XML_NOTATION_NODE ) {
875
882
// This is not actually a thing that occurs naturally in libxml2
876
883
xmlNotationPtr notation = ((_cfxmlNotation * )node )-> notation ;
877
884
CFMutableStringRef result = __CFSwiftXMLParserBridgeCF .CFStringCreateMutable (NULL , 0 );
878
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "<!NOTATION " , kCFStringEncodingUTF8 ));
885
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "<!NOTATION " ));
879
886
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (result , (const char * )notation -> name , kCFStringEncodingUTF8 );
880
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , " " , kCFStringEncodingUTF8 ));
887
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( " " ));
881
888
if (notation -> PublicID == NULL && notation -> SystemID != NULL ) {
882
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "SYSTEM " , kCFStringEncodingUTF8 ));
889
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "SYSTEM " ));
883
890
} else if (notation -> PublicID != NULL ) {
884
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "PUBLIC \"" , kCFStringEncodingUTF8 ));
891
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "PUBLIC \"" ));
885
892
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (result , (const char * )notation -> PublicID , kCFStringEncodingUTF8 );
886
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "\"" , kCFStringEncodingUTF8 ));
893
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "\"" ));
887
894
}
888
895
889
896
if (notation -> SystemID != NULL ) {
890
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "\"" , kCFStringEncodingUTF8 ));
897
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "\"" ));
891
898
__CFSwiftXMLParserBridgeCF .CFStringAppendCString (result , (const char * )notation -> SystemID , kCFStringEncodingUTF8 );
892
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "\"" , kCFStringEncodingUTF8 ));
899
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( "\"" ));
893
900
}
894
901
895
- __CFSwiftXMLParserBridgeCF .CFStringAppend (result , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , " >" , kCFStringEncodingUTF8 ));
902
+ __CFSwiftXMLParserBridgeCF .CFStringAppend (result , CFSTR ( " >" ));
896
903
897
904
return result ;
898
905
}
@@ -918,7 +925,7 @@ CFStringRef _CFXMLCopyStringWithOptions(_CFXMLNodePtr node, uint32_t options) {
918
925
int error = xmlSaveClose (ctx );
919
926
920
927
if (error == -1 ) {
921
- return __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "" , kCFStringEncodingUTF8 );
928
+ return CFSTR ( "" );
922
929
}
923
930
924
931
const xmlChar * bufferContents = xmlBufferContent (buffer );
@@ -1111,7 +1118,7 @@ bool _CFXMLDocValidate(_CFXMLDocPtr doc, CFErrorRef _Nullable * error) {
1111
1118
CFMutableDictionaryRef userInfo = __CFSwiftXMLParserBridgeCF .CFDictionaryCreateMutable (NULL , 1 , __CFSwiftXMLParserBridgeCF .kCFCopyStringDictionaryKeyCallBacks , __CFSwiftXMLParserBridgeCF .kCFTypeDictionaryValueCallBacks );
1112
1119
__CFSwiftXMLParserBridgeCF .CFDictionarySetValue (userInfo , * (__CFSwiftXMLParserBridgeCF .kCFErrorLocalizedDescriptionKey ), errorMessage );
1113
1120
1114
- * error = __CFSwiftXMLParserBridgeCF .CFErrorCreate (NULL , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "NSXMLParserErrorDomain" , kCFStringEncodingUTF8 ), 0 , userInfo );
1121
+ * error = __CFSwiftXMLParserBridgeCF .CFErrorCreate (NULL , CFSTR ( "NSXMLParserErrorDomain" ), 0 , userInfo );
1115
1122
1116
1123
__CFSwiftXMLParserBridgeCF .CFRelease (userInfo );
1117
1124
}
@@ -1177,7 +1184,7 @@ _CFXMLDTDPtr _Nullable _CFXMLParseDTDFromData(CFDataRef data, CFErrorRef _Nullab
1177
1184
CFMutableDictionaryRef userInfo = __CFSwiftXMLParserBridgeCF .CFDictionaryCreateMutable (NULL , 1 , __CFSwiftXMLParserBridgeCF .kCFCopyStringDictionaryKeyCallBacks , __CFSwiftXMLParserBridgeCF .kCFTypeDictionaryValueCallBacks );
1178
1185
__CFSwiftXMLParserBridgeCF .CFDictionarySetValue (userInfo , * (__CFSwiftXMLParserBridgeCF .kCFErrorLocalizedDescriptionKey ), errorMessage );
1179
1186
1180
- * error = __CFSwiftXMLParserBridgeCF .CFErrorCreate (NULL , __CFSwiftXMLParserBridgeCF . CFStringCreateWithCString ( NULL , "NSXMLParserErrorDomain" , kCFStringEncodingUTF8 ), 0 , userInfo );
1187
+ * error = __CFSwiftXMLParserBridgeCF .CFErrorCreate (NULL , CFSTR ( "NSXMLParserErrorDomain" ), 0 , userInfo );
1181
1188
1182
1189
__CFSwiftXMLParserBridgeCF .CFRelease (userInfo );
1183
1190
}
@@ -1598,3 +1605,7 @@ bool _CFXMLGetLengthOfPrefixInQualifiedName(const char *_Nonnull qname, size_t *
1598
1605
return false;
1599
1606
}
1600
1607
}
1608
+
1609
+ #ifndef __CONSTANT_CFSTRINGS__
1610
+ #pragma pop_macro("CFSTR")
1611
+ #endif
0 commit comments