From b0c69488486ab58fd5e9a3e2d9fc2e90ad922fb9 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Thu, 7 Dec 2023 17:42:15 +0100 Subject: [PATCH] dom: implement document.createAttributeNS --- src/dom/document.zig | 4 ++++ src/netsurf.zig | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/dom/document.zig b/src/dom/document.zig index 3411b52a..faa6dc54 100644 --- a/src/dom/document.zig +++ b/src/dom/document.zig @@ -157,6 +157,10 @@ pub const Document = struct { return try parser.documentCreateAttribute(self, name); } + pub fn _createAttributeNS(self: *parser.Document, ns: []const u8, qname: []const u8) !*parser.Attribute { + return try parser.documentCreateAttributeNS(self, ns, qname); + } + pub fn deinit(_: *parser.Document, _: std.mem.Allocator) void {} }; diff --git a/src/netsurf.zig b/src/netsurf.zig index ea33315d..d32b2cee 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -1199,6 +1199,18 @@ pub inline fn documentCreateAttribute(doc: *Document, name: []const u8) !*Attrib return attr.?; } +pub inline fn documentCreateAttributeNS(doc: *Document, ns: []const u8, qname: []const u8) !*Attribute { + var attr: ?*Attribute = undefined; + const err = documentVtable(doc).dom_document_create_attribute_ns.?( + doc, + try strFromData(ns), + try strFromData(qname), + &attr, + ); + try DOMErr(err); + return attr.?; +} + // DocumentHTML pub const DocumentHTML = c.dom_html_document;