OLD | NEW |
1 /* | 1 /* |
2 * xpointer.c : Code to handle XML Pointer | 2 * xpointer.c : Code to handle XML Pointer |
3 * | 3 * |
4 * Base implementation was made accordingly to | 4 * Base implementation was made accordingly to |
5 * W3C Candidate Recommendation 7 June 2000 | 5 * W3C Candidate Recommendation 7 June 2000 |
6 * http://www.w3.org/TR/2000/CR-xptr-20000607 | 6 * http://www.w3.org/TR/2000/CR-xptr-20000607 |
7 * | 7 * |
8 * Added support for the element() scheme described in: | 8 * Added support for the element() scheme described in: |
9 * W3C Proposed Recommendation 13 November 2002 | 9 * W3C Proposed Recommendation 13 November 2002 |
10 * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ | 10 * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ |
(...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 } | 1000 } |
1001 | 1001 |
1002 cur = buffer; | 1002 cur = buffer; |
1003 while (CUR != 0) { | 1003 while (CUR != 0) { |
1004 if (CUR == ')') { | 1004 if (CUR == ')') { |
1005 level--; | 1005 level--; |
1006 if (level == 0) { | 1006 if (level == 0) { |
1007 NEXT; | 1007 NEXT; |
1008 break; | 1008 break; |
1009 } | 1009 } |
1010 *cur++ = CUR; | |
1011 } else if (CUR == '(') { | 1010 } else if (CUR == '(') { |
1012 level++; | 1011 level++; |
1013 *cur++ = CUR; | |
1014 } else if (CUR == '^') { | 1012 } else if (CUR == '^') { |
1015 » NEXT; | 1013 » if ((NXT(1) == ')') || (NXT(1) == '(') || (NXT(1) == '^')) { |
1016 » if ((CUR == ')') || (CUR == '(') || (CUR == '^')) { | 1014 » NEXT; |
1017 » » *cur++ = CUR; | |
1018 » } else { | |
1019 » » *cur++ = '^'; | |
1020 » » *cur++ = CUR; | |
1021 } | 1015 } |
1022 } else { | |
1023 *cur++ = CUR; | |
1024 } | 1016 } |
| 1017 *cur++ = CUR; |
1025 NEXT; | 1018 NEXT; |
1026 } | 1019 } |
1027 *cur = 0; | 1020 *cur = 0; |
1028 | 1021 |
1029 if ((level != 0) && (CUR == 0)) { | 1022 if ((level != 0) && (CUR == 0)) { |
1030 xmlFree(buffer); | 1023 xmlFree(buffer); |
1031 XP_ERROR(XPTR_SYNTAX_ERROR); | 1024 XP_ERROR(XPTR_SYNTAX_ERROR); |
1032 } | 1025 } |
1033 | 1026 |
1034 if (xmlStrEqual(name, (xmlChar *) "xpointer")) { | 1027 if (xmlStrEqual(name, (xmlChar *) "xpointer")) { |
(...skipping 1967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3002 } | 2995 } |
3003 | 2996 |
3004 NEXT; | 2997 NEXT; |
3005 SKIP_BLANKS; | 2998 SKIP_BLANKS; |
3006 } | 2999 } |
3007 | 3000 |
3008 #define bottom_xpointer | 3001 #define bottom_xpointer |
3009 #include "elfgcchack.h" | 3002 #include "elfgcchack.h" |
3010 #endif | 3003 #endif |
3011 | 3004 |
OLD | NEW |