Skip to content

Commit 2ae4706

Browse files
committed
dom: add attributeNS funcs
1 parent aaac1e2 commit 2ae4706

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

src/dom/element.zig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,14 +138,26 @@ pub const Element = struct {
138138
return try parser.elementGetAttribute(self, qname);
139139
}
140140

141+
pub fn _getAttributeNS(self: *parser.Element, ns: []const u8, qname: []const u8) !?[]const u8 {
142+
return try parser.elementGetAttributeNS(self, ns, qname);
143+
}
144+
141145
pub fn _setAttribute(self: *parser.Element, qname: []const u8, value: []const u8) !void {
142146
return try parser.elementSetAttribute(self, qname, value);
143147
}
144148

149+
pub fn _setAttributeNS(self: *parser.Element, ns: []const u8, qname: []const u8, value: []const u8) !void {
150+
return try parser.elementSetAttributeNS(self, ns, qname, value);
151+
}
152+
145153
pub fn _removeAttribute(self: *parser.Element, qname: []const u8) !void {
146154
return try parser.elementRemoveAttribute(self, qname);
147155
}
148156

157+
pub fn _removeAttributeNS(self: *parser.Element, ns: []const u8, qname: []const u8) !void {
158+
return try parser.elementRemoveAttributeNS(self, ns, qname);
159+
}
160+
149161
pub fn _hasAttribute(self: *parser.Element, qname: []const u8) !bool {
150162
return try parser.elementHasAttribute(self, qname);
151163
}

src/netsurf/netsurf.zig

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,6 +1436,20 @@ pub fn elementGetAttribute(elem: *Element, name: []const u8) !?[]const u8 {
14361436
return strToData(s.?);
14371437
}
14381438

1439+
pub fn elementGetAttributeNS(elem: *Element, ns: []const u8, name: []const u8) !?[]const u8 {
1440+
var s: ?*String = undefined;
1441+
const err = elementVtable(elem).dom_element_get_attribute_ns.?(
1442+
elem,
1443+
try strFromData(ns),
1444+
try strFromData(name),
1445+
&s,
1446+
);
1447+
try DOMErr(err);
1448+
if (s == null) return null;
1449+
1450+
return strToData(s.?);
1451+
}
1452+
14391453
pub fn elementSetAttribute(elem: *Element, qname: []const u8, value: []const u8) !void {
14401454
const err = elementVtable(elem).dom_element_set_attribute.?(
14411455
elem,
@@ -1445,11 +1459,35 @@ pub fn elementSetAttribute(elem: *Element, qname: []const u8, value: []const u8)
14451459
try DOMErr(err);
14461460
}
14471461

1462+
pub fn elementSetAttributeNS(
1463+
elem: *Element,
1464+
ns: []const u8,
1465+
qname: []const u8,
1466+
value: []const u8,
1467+
) !void {
1468+
const err = elementVtable(elem).dom_element_set_attribute_ns.?(
1469+
elem,
1470+
try strFromData(ns),
1471+
try strFromData(qname),
1472+
try strFromData(value),
1473+
);
1474+
try DOMErr(err);
1475+
}
1476+
14481477
pub fn elementRemoveAttribute(elem: *Element, qname: []const u8) !void {
14491478
const err = elementVtable(elem).dom_element_remove_attribute.?(elem, try strFromData(qname));
14501479
try DOMErr(err);
14511480
}
14521481

1482+
pub fn elementRemoveAttributeNS(elem: *Element, ns: []const u8, qname: []const u8) !void {
1483+
const err = elementVtable(elem).dom_element_remove_attribute_ns.?(
1484+
elem,
1485+
try strFromData(ns),
1486+
try strFromData(qname),
1487+
);
1488+
try DOMErr(err);
1489+
}
1490+
14531491
pub fn elementHasAttribute(elem: *Element, qname: []const u8) !bool {
14541492
var res: bool = undefined;
14551493
const err = elementVtable(elem).dom_element_has_attribute.?(elem, try strFromData(qname), &res);

0 commit comments

Comments
 (0)