Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: third_party/libxml/src/xlink.c

Issue 1193533007: Upgrade to libxml 2.9.2 and libxslt 1.1.28 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: no iconv Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libxml/src/xinclude.c ('k') | third_party/libxml/src/xml2-config.1 » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * xlink.c : implementation of the hyperlinks detection module 2 * xlink.c : implementation of the hyperlinks detection module
3 * This version supports both XML XLinks and HTML simple links 3 * This version supports both XML XLinks and HTML simple links
4 * 4 *
5 * See Copyright for the status of this software. 5 * See Copyright for the status of this software.
6 * 6 *
7 * daniel@veillard.com 7 * daniel@veillard.com
8 */ 8 */
9 9
10 10
(...skipping 29 matching lines...) Expand all
40 #include <libxml/globals.h> 40 #include <libxml/globals.h>
41 41
42 #define XLINK_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xlink/namespace/") 42 #define XLINK_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xlink/namespace/")
43 #define XHTML_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xhtml/") 43 #define XHTML_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xhtml/")
44 44
45 /**************************************************************** 45 /****************************************************************
46 * * 46 * *
47 * Default setting and related functions * 47 * Default setting and related functions *
48 * * 48 * *
49 ****************************************************************/ 49 ****************************************************************/
50 50
51 static xlinkHandlerPtr xlinkDefaultHandler = NULL; 51 static xlinkHandlerPtr xlinkDefaultHandler = NULL;
52 static xlinkNodeDetectFunc xlinkDefaultDetect = NULL; 52 static xlinkNodeDetectFunc xlinkDefaultDetect = NULL;
53 53
54 /** 54 /**
55 * xlinkGetDefaultHandler: 55 * xlinkGetDefaultHandler:
56 * 56 *
57 * Get the default xlink handler. 57 * Get the default xlink handler.
58 * 58 *
59 * Returns the current xlinkHandlerPtr value. 59 * Returns the current xlinkHandlerPtr value.
60 */ 60 */
(...skipping 25 matching lines...) Expand all
86 xlinkGetDefaultDetect (void) { 86 xlinkGetDefaultDetect (void) {
87 return(xlinkDefaultDetect); 87 return(xlinkDefaultDetect);
88 } 88 }
89 89
90 /** 90 /**
91 * xlinkSetDefaultDetect: 91 * xlinkSetDefaultDetect:
92 * @func: pointer to the new detection routine. 92 * @func: pointer to the new detection routine.
93 * 93 *
94 * Set the default xlink detection routine 94 * Set the default xlink detection routine
95 */ 95 */
96 void 96 void
97 xlinkSetDefaultDetect (xlinkNodeDetectFunc func) { 97 xlinkSetDefaultDetect (xlinkNodeDetectFunc func) {
98 xlinkDefaultDetect = func; 98 xlinkDefaultDetect = func;
99 } 99 }
100 100
101 /**************************************************************** 101 /****************************************************************
102 * * 102 * *
103 * The detection routines * 103 * The detection routines *
104 * * 104 * *
105 ****************************************************************/ 105 ****************************************************************/
106 106
107 107
108 /** 108 /**
109 * xlinkIsLink: 109 * xlinkIsLink:
110 * @doc: the document containing the node 110 * @doc: the document containing the node
111 * @node: the node pointer itself 111 * @node: the node pointer itself
112 * 112 *
113 * Check whether the given node carries the attributes needed 113 * Check whether the given node carries the attributes needed
114 * to be a link element (or is one of the linking elements issued 114 * to be a link element (or is one of the linking elements issued
115 * from the (X)HTML DtDs). 115 * from the (X)HTML DtDs).
116 * This routine don't try to do full checking of the link validity 116 * This routine don't try to do full checking of the link validity
117 * but tries to detect and return the appropriate link type. 117 * but tries to detect and return the appropriate link type.
118 * 118 *
119 * Returns the xlinkType of the node (XLINK_TYPE_NONE if there is no 119 * Returns the xlinkType of the node (XLINK_TYPE_NONE if there is no
120 * link detected. 120 * link detected.
121 */ 121 */
122 xlinkType 122 xlinkType
123 xlinkIsLink (xmlDocPtr doc, xmlNodePtr node) { 123 xlinkIsLink (xmlDocPtr doc, xmlNodePtr node) {
124 xmlChar *type = NULL, *role = NULL; 124 xmlChar *type = NULL, *role = NULL;
125 xlinkType ret = XLINK_TYPE_NONE; 125 xlinkType ret = XLINK_TYPE_NONE;
126 126
127 if (node == NULL) return(XLINK_TYPE_NONE); 127 if (node == NULL) return(XLINK_TYPE_NONE);
128 if (doc == NULL) doc = node->doc; 128 if (doc == NULL) doc = node->doc;
129 if ((doc != NULL) && (doc->type == XML_HTML_DOCUMENT_NODE)) { 129 if ((doc != NULL) && (doc->type == XML_HTML_DOCUMENT_NODE)) {
130 /* 130 /*
131 * This is an HTML document. 131 * This is an HTML document.
132 */ 132 */
(...skipping 10 matching lines...) Expand all
143 } 143 }
144 144
145 /* 145 /*
146 * We don't prevent a-priori having XML Linking constructs on 146 * We don't prevent a-priori having XML Linking constructs on
147 * XHTML elements 147 * XHTML elements
148 */ 148 */
149 type = xmlGetNsProp(node, BAD_CAST"type", XLINK_NAMESPACE); 149 type = xmlGetNsProp(node, BAD_CAST"type", XLINK_NAMESPACE);
150 if (type != NULL) { 150 if (type != NULL) {
151 if (xmlStrEqual(type, BAD_CAST "simple")) { 151 if (xmlStrEqual(type, BAD_CAST "simple")) {
152 ret = XLINK_TYPE_SIMPLE; 152 ret = XLINK_TYPE_SIMPLE;
153 » } if (xmlStrEqual(type, BAD_CAST "extended")) { 153 » } else if (xmlStrEqual(type, BAD_CAST "extended")) {
154 role = xmlGetNsProp(node, BAD_CAST "role", XLINK_NAMESPACE); 154 role = xmlGetNsProp(node, BAD_CAST "role", XLINK_NAMESPACE);
155 if (role != NULL) { 155 if (role != NULL) {
156 xmlNsPtr xlink; 156 xmlNsPtr xlink;
157 xlink = xmlSearchNs(doc, node, XLINK_NAMESPACE); 157 xlink = xmlSearchNs(doc, node, XLINK_NAMESPACE);
158 if (xlink == NULL) { 158 if (xlink == NULL) {
159 /* Humm, fallback method */ 159 /* Humm, fallback method */
160 » » if (xmlStrEqual(role, BAD_CAST"xlink:external-linkset")) 160 » » if (xmlStrEqual(role, BAD_CAST"xlink:external-linkset"))
161 ret = XLINK_TYPE_EXTENDED_SET; 161 ret = XLINK_TYPE_EXTENDED_SET;
162 } else { 162 } else {
163 xmlChar buf[200]; 163 xmlChar buf[200];
164 snprintf((char *) buf, sizeof(buf), "%s:external-linkset", 164 snprintf((char *) buf, sizeof(buf), "%s:external-linkset",
165 (char *) xlink->prefix); 165 (char *) xlink->prefix);
166 buf[sizeof(buf) - 1] = 0; 166 buf[sizeof(buf) - 1] = 0;
167 if (xmlStrEqual(role, buf)) 167 if (xmlStrEqual(role, buf))
168 ret = XLINK_TYPE_EXTENDED_SET; 168 ret = XLINK_TYPE_EXTENDED_SET;
169 169
170 } 170 }
171 171
172 } 172 }
173 ret = XLINK_TYPE_EXTENDED; 173 ret = XLINK_TYPE_EXTENDED;
174 } 174 }
175 } 175 }
176 176
177 if (type != NULL) xmlFree(type); 177 if (type != NULL) xmlFree(type);
178 if (role != NULL) xmlFree(role); 178 if (role != NULL) xmlFree(role);
179 return(ret); 179 return(ret);
180 } 180 }
181 #endif /* LIBXML_XPTR_ENABLED */ 181 #endif /* LIBXML_XPTR_ENABLED */
182 #define bottom_xlink 182 #define bottom_xlink
183 #include "elfgcchack.h" 183 #include "elfgcchack.h"
OLDNEW
« no previous file with comments | « third_party/libxml/src/xinclude.c ('k') | third_party/libxml/src/xml2-config.1 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698