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

Side by Side Diff: third_party/libxslt/libxslt/preproc.c

Issue 1848793005: Roll libxslt to 891681e3e948f31732229f53cb6db7215f740fc7 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/libxslt/libxslt/pattern.c ('k') | third_party/libxslt/libxslt/transform.c » ('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 * preproc.c: Preprocessing of style operations 2 * preproc.c: Preprocessing of style operations
3 * 3 *
4 * References: 4 * References:
5 * http://www.w3.org/TR/1999/REC-xslt-19991116 5 * http://www.w3.org/TR/1999/REC-xslt-19991116
6 * 6 *
7 * Michael Kay "XSLT Programmer's Reference" pp 637-643 7 * Michael Kay "XSLT Programmer's Reference" pp 637-643
8 * Writing Multiple Output Files 8 * Writing Multiple Output Files
9 * 9 *
10 * XSLT-1.1 Working Draft 10 * XSLT-1.1 Working Draft
(...skipping 931 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 * in effect for the xsl:element element, including any default 942 * in effect for the xsl:element element, including any default
943 * namespace declaration. 943 * namespace declaration.
944 */ 944 */
945 ns = xmlSearchNs(inst->doc, inst, prefix); 945 ns = xmlSearchNs(inst->doc, inst, prefix);
946 if (ns != NULL) { 946 if (ns != NULL) {
947 comp->ns = xmlDictLookup(style->dict, ns->href, -1); 947 comp->ns = xmlDictLookup(style->dict, ns->href, -1);
948 comp->has_ns = 1; 948 comp->has_ns = 1;
949 #ifdef XSLT_REFACTORED 949 #ifdef XSLT_REFACTORED
950 comp->nsPrefix = prefix; 950 comp->nsPrefix = prefix;
951 comp->name = name; 951 comp->name = name;
952 #else
953 (void)name; /* Suppress unused variable warning. */
952 #endif 954 #endif
953 } else if (prefix != NULL) { 955 } else if (prefix != NULL) {
954 xsltTransformError(NULL, style, inst, 956 xsltTransformError(NULL, style, inst,
955 "xsl:element: The prefixed QName '%s' " 957 "xsl:element: The prefixed QName '%s' "
956 "has no namespace binding in scope in the " 958 "has no namespace binding in scope in the "
957 "stylesheet; this is an error, since the namespace was " 959 "stylesheet; this is an error, since the namespace was "
958 "not specified by the instruction itself.\n", comp->name ); 960 "not specified by the instruction itself.\n", comp->name );
959 style->errors++; 961 style->errors++;
960 } 962 }
961 } 963 }
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 * namespace declarations in effect for the xsl:element 1069 * namespace declarations in effect for the xsl:element
1068 * element, including any default namespace declaration. 1070 * element, including any default namespace declaration.
1069 */ 1071 */
1070 ns = xmlSearchNs(inst->doc, inst, prefix); 1072 ns = xmlSearchNs(inst->doc, inst, prefix);
1071 if (ns != NULL) { 1073 if (ns != NULL) {
1072 comp->ns = xmlDictLookup(style->dict, ns->href, -1); 1074 comp->ns = xmlDictLookup(style->dict, ns->href, -1);
1073 comp->has_ns = 1; 1075 comp->has_ns = 1;
1074 #ifdef XSLT_REFACTORED 1076 #ifdef XSLT_REFACTORED
1075 comp->nsPrefix = prefix; 1077 comp->nsPrefix = prefix;
1076 comp->name = name; 1078 comp->name = name;
1079 #else
1080 (void)name; /* Suppress unused variable warning. */
1077 #endif 1081 #endif
1078 } else { 1082 } else {
1079 xsltTransformError(NULL, style, inst, 1083 xsltTransformError(NULL, style, inst,
1080 "xsl:attribute: The prefixed QName '%s' " 1084 "xsl:attribute: The prefixed QName '%s' "
1081 "has no namespace binding in scope in the " 1085 "has no namespace binding in scope in the "
1082 "stylesheet; this is an error, since the " 1086 "stylesheet; this is an error, since the "
1083 "namespace was not specified by the instruction " 1087 "namespace was not specified by the instruction "
1084 "itself.\n", comp->name); 1088 "itself.\n", comp->name);
1085 style->errors++; 1089 style->errors++;
1086 } 1090 }
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 style->errors++; 1298 style->errors++;
1295 return; 1299 return;
1296 } else { 1300 } else {
1297 /* 1301 /*
1298 * @prop will be in the string dict afterwards, @URI not. 1302 * @prop will be in the string dict afterwards, @URI not.
1299 */ 1303 */
1300 URI = xsltGetQNameURI2(style, inst, &prop); 1304 URI = xsltGetQNameURI2(style, inst, &prop);
1301 if (prop == NULL) { 1305 if (prop == NULL) {
1302 style->errors++; 1306 style->errors++;
1303 } else { 1307 } else {
1304 » » *localName = prop; 1308 » » if (localName)
1309 » » *localName = prop;
1305 if (hasProp) 1310 if (hasProp)
1306 *hasProp = 1; 1311 *hasProp = 1;
1307 if (URI != NULL) { 1312 if (URI != NULL) {
1308 /* 1313 /*
1309 * Fixes bug #308441: Put the ns-name in the dict 1314 * Fixes bug #308441: Put the ns-name in the dict
1310 * in order to pointer compare names during XPath's 1315 * in order to pointer compare names during XPath's
1311 * variable lookup. 1316 * variable lookup.
1312 */ 1317 */
1313 if (nsName) 1318 if (nsName)
1314 *nsName = xmlDictLookup(style->dict, URI, -1); 1319 *nsName = xmlDictLookup(style->dict, URI, -1);
(...skipping 923 matching lines...) Expand 10 before | Expand all | Expand 10 after
2238 xsltChooseComp(style, inst); 2243 xsltChooseComp(style, inst);
2239 } else if (IS_XSLT_NAME(inst, "for-each")) { 2244 } else if (IS_XSLT_NAME(inst, "for-each")) {
2240 xsltCheckInstructionElement(style, inst); 2245 xsltCheckInstructionElement(style, inst);
2241 xsltForEachComp(style, inst); 2246 xsltForEachComp(style, inst);
2242 } else if (IS_XSLT_NAME(inst, "apply-imports")) { 2247 } else if (IS_XSLT_NAME(inst, "apply-imports")) {
2243 xsltCheckInstructionElement(style, inst); 2248 xsltCheckInstructionElement(style, inst);
2244 xsltApplyImportsComp(style, inst); 2249 xsltApplyImportsComp(style, inst);
2245 } else if (IS_XSLT_NAME(inst, "attribute")) { 2250 } else if (IS_XSLT_NAME(inst, "attribute")) {
2246 xmlNodePtr parent = inst->parent; 2251 xmlNodePtr parent = inst->parent;
2247 2252
2248 » if ((parent == NULL) || (parent->ns == NULL) || 2253 » if ((parent == NULL) ||
2254 » (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) ||
2249 ((parent->ns != inst->ns) && 2255 ((parent->ns != inst->ns) &&
2250 (!xmlStrEqual(parent->ns->href, inst->ns->href))) || 2256 (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
2251 (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) { 2257 (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {
2252 xsltCheckInstructionElement(style, inst); 2258 xsltCheckInstructionElement(style, inst);
2253 } 2259 }
2254 xsltAttributeComp(style, inst); 2260 xsltAttributeComp(style, inst);
2255 } else if (IS_XSLT_NAME(inst, "element")) { 2261 } else if (IS_XSLT_NAME(inst, "element")) {
2256 xsltCheckInstructionElement(style, inst); 2262 xsltCheckInstructionElement(style, inst);
2257 xsltElementComp(style, inst); 2263 xsltElementComp(style, inst);
2258 } else if (IS_XSLT_NAME(inst, "text")) { 2264 } else if (IS_XSLT_NAME(inst, "text")) {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2364 2370
2365 /* 2371 /*
2366 * Unknown element, maybe registered at the context 2372 * Unknown element, maybe registered at the context
2367 * level. Mark it for later recognition. 2373 * level. Mark it for later recognition.
2368 */ 2374 */
2369 if (inst->psvi == NULL) 2375 if (inst->psvi == NULL)
2370 inst->psvi = (void *) xsltExtMarker; 2376 inst->psvi = (void *) xsltExtMarker;
2371 } 2377 }
2372 } 2378 }
2373 #endif /* XSLT_REFACTORED */ 2379 #endif /* XSLT_REFACTORED */
OLDNEW
« no previous file with comments | « third_party/libxslt/libxslt/pattern.c ('k') | third_party/libxslt/libxslt/transform.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698