59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
end
m.codestr = terra(code: uint16)
var [resptext] var [resplen]
switch code do [respbranches] end
return resptext, resplen
end
terra m.hier(uri: lib.mem.ptr(int8)): lib.mem.ptr(lib.mem.ref(int8))
if uri.ct == 0 then return [lib.mem.ptr(lib.mem.ref(int8))] { ptr = nil, ct = 0 } end
var sz = 1
var start = 0 if uri.ptr[0] == @'/' then start = 1 end
for i = start, uri.ct do if uri.ptr[i] == @'/' then sz = sz + 1 end end
var lst = lib.mem.heapa([lib.mem.ref(int8)], sz)
if sz == 0 then
lst.ptr[0].ptr = uri.ptr
lst.ptr[0].ct = uri.ct
return lst
end
var idx: intptr = 0
|
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
end
m.codestr = terra(code: uint16)
var [resptext] var [resplen]
switch code do [respbranches] end
return resptext, resplen
end
terra m.hier(pool: &lib.mem.pool, uri: lib.mem.ptr(int8)): lib.mem.ptr(lib.mem.ref(int8))
if uri.ct == 0 then return [lib.mem.ptr(lib.mem.ref(int8))] { ptr = nil, ct = 0 } end
var sz = 1
var start = 0 if uri.ptr[0] == @'/' then start = 1 end
for i = start, uri.ct do if uri.ptr[i] == @'/' then sz = sz + 1 end end
var lst = pool:alloc([lib.mem.ref(int8)], sz)
if sz == 0 then
lst.ptr[0].ptr = uri.ptr
lst.ptr[0].ct = uri.ct
return lst
end
var idx: intptr = 0
|