ObjFW  Diff

Differences From Artifact [3d118891eb]:

To Artifact [0af39e8a26]:


25
26
27
28
29
30
31
32
33


34
35
36
37
38


39
40
41
42
43
44
45
46
47



48
49
50
51
52
53
54


55
56
57
58


59
60
61
62
63


64
65
66

67
68
69
70
71
72
73


74
75
76

77
78
79
80
81
25
26
27
28
29
30
31


32
33
34
35
36


37
38
39
40
41
42
43
44



45
46
47
48
49
50
51
52


53
54
55
56


57
58
59
60
61


62
63
64
65

66
67
68
69
70
71


72
73
74
75

76
77
78
79
80
81







-
-
+
+



-
-
+
+






-
-
-
+
+
+





-
-
+
+


-
-
+
+



-
-
+
+


-
+





-
-
+
+


-
+





#endif

#ifdef OF_HAVE_BLOCKS
typedef OFString* (^of_string_xml_unescaping_block_t)(OFString *str,
    OFString *entity);
#endif

/**
 * \brief A protocol that needs to be implemented by delegates for
/*!
 * @brief A protocol that needs to be implemented by delegates for
 *	  -[stringByXMLUnescapingWithHandler:].
 */
@protocol OFStringXMLUnescapingDelegate <OFObject>
/**
 * \brief This callback is called when an unknown entity was found while trying
/*!
 * @brief This callback is called when an unknown entity was found while trying
 *	  to unescape XML.
 *
 * The callback is supposed to return a substitution for the entity or nil if
 * it is unknown to the callback as well, in which case an exception will be
 * thrown.
 *
 * \param str The string which contains the unknown entity
 * \param entity The name of the entity that is unknown
 * \return A substitution for the entity or nil
 * @param str The string which contains the unknown entity
 * @param entity The name of the entity that is unknown
 * @return A substitution for the entity or nil
 */
-	   (OFString*)string: (OFString*)str
  containsUnknownEntityNamed: (OFString*)entity;
@end

/**
 * \brief A category for unescaping XML in strings.
/*!
 * @brief A category for unescaping XML in strings.
 */
@interface OFString (XMLUnescaping)
/**
 * \brief Unescapes XML in the string.
/*!
 * @brief Unescapes XML in the string.
 */
- (OFString*)stringByXMLUnescaping;

/**
 * \brief Unescapes XML in the string and uses the specified delegate for
/*!
 * @brief Unescapes XML in the string and uses the specified delegate for
 *	  unknown entities.
 *
 * \param delegate An OFXMLUnescapingDelegate as a handler for unknown entities
 * @param delegate An OFXMLUnescapingDelegate as a handler for unknown entities
 */
- (OFString*)stringByXMLUnescapingWithDelegate:
    (id <OFStringXMLUnescapingDelegate>)delegate;

#ifdef OF_HAVE_BLOCKS
/**
 * \brief Unescapes XML in the string and uses the specified block for unknown
/*!
 * @brief Unescapes XML in the string and uses the specified block for unknown
 *	  entities.
 *
 * \param block A block which handles unknown entities
 * @param block A block which handles unknown entities
 */
- (OFString*)stringByXMLUnescapingWithBlock:
    (of_string_xml_unescaping_block_t)block;
#endif
@end