Skip to content

Commit ef364f8

Browse files
committed
upgrade to zig 0.12.1
1 parent 33c9277 commit ef364f8

File tree

8 files changed

+175
-157
lines changed

8 files changed

+175
-157
lines changed

src/async/Client.zig

Lines changed: 112 additions & 129 deletions
Large diffs are not rendered by default.

src/async/test.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ test "blocking mode open/send/wait API" {
6868
});
6969
defer req.deinit();
7070

71-
try req.send(.{});
71+
try req.send();
7272
try req.finish();
7373
try req.wait();
7474

@@ -120,7 +120,7 @@ const AsyncClient = struct {
120120
},
121121
.open => {
122122
self.state = .send;
123-
self.req.?.send(.{}) catch |e| return self.onerr(e);
123+
self.req.?.send() catch |e| return self.onerr(e);
124124
},
125125
.send => {
126126
self.state = .finish;

src/browser/browser.zig

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ pub const Page = struct {
224224
// own the url
225225
if (self.rawuri) |prev| alloc.free(prev);
226226
self.rawuri = try alloc.dupe(u8, uri);
227-
self.uri = std.Uri.parse(self.rawuri.?) catch try std.Uri.parseWithoutScheme(self.rawuri.?);
227+
self.uri = std.Uri.parse(self.rawuri.?) catch try std.Uri.parseAfterScheme("", self.rawuri.?);
228228

229229
// prepare origin value.
230230
var buf = std.ArrayList(u8).init(alloc);
@@ -511,7 +511,8 @@ pub const Page = struct {
511511
log.debug("starting fetch script {s}", .{src});
512512

513513
var buffer: [1024]u8 = undefined;
514-
const u = try std.Uri.resolve_inplace(self.uri, src, &buffer);
514+
var b: []u8 = buffer[0..];
515+
const u = try std.Uri.resolve_inplace(self.uri, src, &b);
515516

516517
var fetchres = try self.session.loader.get(alloc, u);
517518
defer fetchres.deinit();
@@ -529,7 +530,7 @@ pub const Page = struct {
529530
// check no body
530531
if (body.len == 0) return FetchError.NoBody;
531532

532-
var res = try self.session.env.execTryCatch(alloc, fetchres.body.?, src);
533+
var res = try self.session.env.execTryCatch(alloc, body, src);
533534
defer res.deinit(alloc);
534535

535536
if (res.success) {

src/browser/loader.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub const Loader = struct {
6969
});
7070
errdefer resp.req.deinit();
7171

72-
try resp.req.send(.{});
72+
try resp.req.send();
7373
try resp.req.finish();
7474
try resp.req.wait();
7575

src/html/elements.zig

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -246,10 +246,10 @@ pub const HTMLAnchorElement = struct {
246246
defer u.deinit(alloc);
247247

248248
if (p) |pp| {
249-
u.uri.host = h;
249+
u.uri.host = .{ .raw = h };
250250
u.uri.port = pp;
251251
} else {
252-
u.uri.host = v;
252+
u.uri.host = .{ .raw = v };
253253
u.uri.port = null;
254254
}
255255

@@ -271,7 +271,7 @@ pub const HTMLAnchorElement = struct {
271271
var u = try url(self, alloc);
272272
defer u.deinit(alloc);
273273

274-
u.uri.host = v;
274+
u.uri.host = .{ .raw = v };
275275
const href = try u.format(alloc);
276276
try parser.anchorSetHref(self, href);
277277
}
@@ -312,7 +312,11 @@ pub const HTMLAnchorElement = struct {
312312
var u = try url(self, alloc);
313313
defer u.deinit(alloc);
314314

315-
u.uri.user = v;
315+
if (v) |vv| {
316+
u.uri.user = .{ .raw = vv };
317+
} else {
318+
u.uri.user = null;
319+
}
316320
const href = try u.format(alloc);
317321
defer alloc.free(href);
318322

@@ -331,7 +335,11 @@ pub const HTMLAnchorElement = struct {
331335
var u = try url(self, alloc);
332336
defer u.deinit(alloc);
333337

334-
u.uri.password = v;
338+
if (v) |vv| {
339+
u.uri.password = .{ .raw = vv };
340+
} else {
341+
u.uri.password = null;
342+
}
335343
const href = try u.format(alloc);
336344
defer alloc.free(href);
337345

@@ -350,7 +358,7 @@ pub const HTMLAnchorElement = struct {
350358
var u = try url(self, alloc);
351359
defer u.deinit(alloc);
352360

353-
u.uri.path = v;
361+
u.uri.path = .{ .raw = v };
354362
const href = try u.format(alloc);
355363
defer alloc.free(href);
356364

@@ -369,7 +377,11 @@ pub const HTMLAnchorElement = struct {
369377
var u = try url(self, alloc);
370378
defer u.deinit(alloc);
371379

372-
u.uri.query = v;
380+
if (v) |vv| {
381+
u.uri.query = .{ .raw = vv };
382+
} else {
383+
u.uri.query = null;
384+
}
373385
const href = try u.format(alloc);
374386
defer alloc.free(href);
375387

@@ -388,7 +400,11 @@ pub const HTMLAnchorElement = struct {
388400
var u = try url(self, alloc);
389401
defer u.deinit(alloc);
390402

391-
u.uri.fragment = v;
403+
if (v) |vv| {
404+
u.uri.fragment = .{ .raw = vv };
405+
} else {
406+
u.uri.fragment = null;
407+
}
392408
const href = try u.format(alloc);
393409
defer alloc.free(href);
394410

src/run_tests.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ pub fn main() !void {
182182
while (args.next()) |arg| {
183183
if (std.mem.eql(u8, "-h", arg) or std.mem.eql(u8, "--help", arg)) {
184184
try std.io.getStdErr().writer().print(usage, .{});
185-
std.os.exit(0);
185+
std.posix.exit(0);
186186
}
187187
if (std.mem.eql(u8, "--json", arg)) {
188188
out = .json;

src/url/url.zig

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@ pub const URL = struct {
6262
return .{
6363
.rawuri = raw,
6464
.uri = uri,
65-
.search_params = try URLSearchParams.constructor(alloc, uri.query),
65+
.search_params = try URLSearchParams.constructor(
66+
alloc,
67+
uriComponentNullStr(uri.query),
68+
),
6669
};
6770
}
6871

@@ -102,7 +105,7 @@ pub const URL = struct {
102105
var q = std.ArrayList(u8).init(alloc);
103106
defer q.deinit();
104107
try self.search_params.values.encode(q.writer());
105-
self.uri.query = q.items;
108+
self.uri.query = .{ .raw = q.items };
106109

107110
return try self.format(alloc);
108111
}
@@ -116,9 +119,9 @@ pub const URL = struct {
116119
.scheme = true,
117120
.authentication = true,
118121
.authority = true,
119-
.path = self.uri.path.len > 0,
120-
.query = self.uri.query != null and self.uri.query.?.len > 0,
121-
.fragment = self.uri.fragment != null and self.uri.fragment.?.len > 0,
122+
.path = uriComponentNullStr(self.uri.path).len > 0,
123+
.query = uriComponentNullStr(self.uri.query).len > 0,
124+
.fragment = uriComponentNullStr(self.uri.fragment).len > 0,
122125
}, buf.writer());
123126
return try buf.toOwnedSlice();
124127
}
@@ -131,11 +134,11 @@ pub const URL = struct {
131134
}
132135

133136
pub fn get_username(self: *URL) []const u8 {
134-
return self.uri.user orelse "";
137+
return uriComponentNullStr(self.uri.user);
135138
}
136139

137140
pub fn get_password(self: *URL) []const u8 {
138-
return self.uri.password orelse "";
141+
return uriComponentNullStr(self.uri.password);
139142
}
140143

141144
// the caller must free the returned string.
@@ -157,7 +160,7 @@ pub const URL = struct {
157160
}
158161

159162
pub fn get_hostname(self: *URL) []const u8 {
160-
return self.uri.host orelse "";
163+
return uriComponentNullStr(self.uri.host);
161164
}
162165

163166
// the caller must free the returned string.
@@ -174,8 +177,8 @@ pub const URL = struct {
174177
}
175178

176179
pub fn get_pathname(self: *URL) []const u8 {
177-
if (self.uri.path.len == 0) return "/";
178-
return self.uri.path;
180+
if (uriComponentStr(self.uri.path).len == 0) return "/";
181+
return uriComponentStr(self.uri.path);
179182
}
180183

181184
// the caller must free the returned string.
@@ -198,7 +201,7 @@ pub const URL = struct {
198201
pub fn get_hash(self: *URL, alloc: std.mem.Allocator) ![]const u8 {
199202
if (self.uri.fragment == null) return try alloc.dupe(u8, "");
200203

201-
return try std.mem.concat(alloc, u8, &[_][]const u8{ "#", self.uri.fragment.? });
204+
return try std.mem.concat(alloc, u8, &[_][]const u8{ "#", uriComponentNullStr(self.uri.fragment) });
202205
}
203206

204207
pub fn get_searchParams(self: *URL) *URLSearchParams {
@@ -210,6 +213,21 @@ pub const URL = struct {
210213
}
211214
};
212215

216+
// uriComponentNullStr converts an optional std.Uri.Component to string value.
217+
// The string value can be undecoded.
218+
fn uriComponentNullStr(c: ?std.Uri.Component) []const u8 {
219+
if (c == null) return "";
220+
221+
return uriComponentStr(c.?);
222+
}
223+
224+
fn uriComponentStr(c: std.Uri.Component) []const u8 {
225+
return switch (c) {
226+
.raw => |v| v,
227+
.percent_encoded => |v| v,
228+
};
229+
}
230+
213231
// https://url.spec.whatwg.org/#interface-urlsearchparams
214232
// TODO array like
215233
pub const URLSearchParams = struct {

src/xhr/xhr.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ pub const XMLHttpRequestBodyInit = union(XMLHttpRequestBodyInitTag) {
9797
pub const XMLHttpRequest = struct {
9898
proto: XMLHttpRequestEventTarget = XMLHttpRequestEventTarget{},
9999
alloc: std.mem.Allocator,
100-
cli: Client,
100+
cli: *Client,
101101
impl: YieldImpl,
102102

103103
priv_state: PrivState = .new,
@@ -509,7 +509,7 @@ pub const XMLHttpRequest = struct {
509509
if (self.payload) |v| self.req.?.transfer_encoding = .{ .content_length = v.len };
510510

511511
self.priv_state = .send;
512-
self.req.?.send(.{}) catch |e| return self.onErr(e);
512+
self.req.?.send() catch |e| return self.onErr(e);
513513
},
514514
.send => {
515515
if (self.payload) |payload| {

0 commit comments

Comments
 (0)