| 104 | } |
| 105 | |
| 106 | bool WriteEscapedAttributeValue(const char* s, size_t length) { |
| 107 | for (size_t i = 0; i < length; i++) { |
| 108 | switch (s[i]) { |
| 109 | case '&': WriteString("&"); break; |
| 110 | case '<': WriteString("<"); break; |
| 111 | case '"': WriteString("""); break; |
| 112 | default: os_.Put(s[i]); break; |
| 113 | } |
| 114 | } |
| 115 | return true; |
| 116 | } |
| 117 | |
| 118 | bool WriteEscapedText(const char* s, size_t length) { |
| 119 | for (size_t i = 0; i < length; i++) { |