diff options
author | bptato <nincsnevem662@gmail.com> | 2024-12-17 17:07:46 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-12-17 17:07:46 +0100 |
commit | f2eae49c8b9eb877c437f802590677b26f631f42 (patch) | |
tree | 72236e7b50dcf278a7d6bcaf9f48df0ed4e68f95 | |
parent | 48a69e1b774092c8b55cbbd5281b6d61d1cd2556 (diff) | |
download | chawan-f2eae49c8b9eb877c437f802590677b26f631f42.tar.gz |
default(T) -> T.default, add some strict defs
-rw-r--r-- | adapter/img/sixel.nim | 4 | ||||
-rw-r--r-- | adapter/protocol/lcgi.nim | 12 | ||||
-rw-r--r-- | adapter/protocol/man.nim | 4 | ||||
-rw-r--r-- | doc/hacking.md | 2 | ||||
-rw-r--r-- | src/config/config.nim | 6 | ||||
-rw-r--r-- | src/config/toml.nim | 2 | ||||
-rw-r--r-- | src/css/cascade.nim | 12 | ||||
-rw-r--r-- | src/html/dom.nim | 2 | ||||
-rw-r--r-- | src/html/formdata.nim | 2 | ||||
-rw-r--r-- | src/io/bufreader.nim | 2 | ||||
-rw-r--r-- | src/io/promise.nim | 6 | ||||
-rw-r--r-- | src/local/pager.nim | 4 | ||||
-rw-r--r-- | src/server/buffer.nim | 4 | ||||
-rw-r--r-- | src/server/forkserver.nim | 4 | ||||
-rw-r--r-- | src/server/loader.nim | 4 | ||||
-rw-r--r-- | src/types/cookie.nim | 10 | ||||
-rw-r--r-- | src/types/url.nim | 2 | ||||
-rw-r--r-- | src/utils/luwrap.nim | 4 | ||||
-rw-r--r-- | src/utils/twtstr.nim | 3 |
19 files changed, 45 insertions, 44 deletions
diff --git a/adapter/img/sixel.nim b/adapter/img/sixel.nim index 61227edd..d3d04033 100644 --- a/adapter/img/sixel.nim +++ b/adapter/img/sixel.nim @@ -149,7 +149,7 @@ proc trim(trimMap: var TrimMap; K: var uint) = proc quantize(img: openArray[RGBAColorBE]; outk: var uint; outTransparent: var bool): NodeChildren = - var root = default(NodeChildren) + var root = NodeChildren.default if outk <= 2: # monochrome; not much we can do with an octree... root[0] = cast[Node](alloc0(sizeof(NodeObj))) root[0].u.leaf.c = rgb(0, 0, 0) @@ -209,7 +209,7 @@ type proc getColor(nodes: seq[Node]; c: ARGBColor; diff: var DitherDiff): Node = var child: Node = nil var minDist = uint32.high - var mdiff = default(DitherDiff) + var mdiff = DitherDiff.default for node in nodes: let ic = node.u.leaf.c let ad = int32(c.a) - 100 diff --git a/adapter/protocol/lcgi.nim b/adapter/protocol/lcgi.nim index a2da4cc8..fbaa6aa2 100644 --- a/adapter/protocol/lcgi.nim +++ b/adapter/protocol/lcgi.nim @@ -64,7 +64,7 @@ proc authenticateSocks5(os, ps: PosixStream; buf: array[2, uint8]; os.die("InternalError", "username or password too long") let sbuf = "\x01" & char(user.len) & user & char(pass.len) & pass ps.sendDataLoop(sbuf) - var rbuf = default(array[2, uint8]) + var rbuf = array[2, uint8].default ps.recvDataLoop(rbuf) if rbuf[0] != 1: os.die("ProxyInvalidResponse", "wrong auth version") @@ -86,7 +86,7 @@ proc sendSocks5Domain(os, ps: PosixStream; host, port: string; let port = x.get let sbuf = "\x05\x01\x00" & dstaddr & char(port shr 8) & char(port and 0xFF) ps.sendDataLoop(sbuf) - var rbuf = default(array[4, uint8]) + var rbuf = array[4, uint8].default ps.recvDataLoop(rbuf) if rbuf[0] != 5: os.die("ProxyInvalidResponse") @@ -94,7 +94,7 @@ proc sendSocks5Domain(os, ps: PosixStream; host, port: string; os.die("ProxyRefusedToConnect") case rbuf[3] of 0x01: - var ipv4 = default(array[4, uint8]) + var ipv4 = array[4, uint8].default ps.recvDataLoop(ipv4) outIpv6 = false of 0x03: @@ -105,12 +105,12 @@ proc sendSocks5Domain(os, ps: PosixStream; host, port: string; # we don't really know, so just assume it's ipv4. outIpv6 = false of 0x04: - var ipv6 = default(array[16, uint8]) + var ipv6 = array[16, uint8].default ps.recvDataLoop(ipv6) outIpv6 = true else: os.die("ProxyInvalidResponse") - var bndport = default(array[2, uint8]) + var bndport = array[2, uint8].default ps.recvDataLoop(bndport) proc connectSocks5Socket(os: PosixStream; host, port, proxyHost, proxyPort, @@ -121,7 +121,7 @@ proc connectSocks5Socket(os: PosixStream; host, port, proxyHost, proxyPort, const NoAuth = "\x05\x01\x00" const WithAuth = "\x05\x02\x00\x02" ps.sendDataLoop(if proxyUser != "": NoAuth else: WithAuth) - var buf = default(array[2, uint8]) + var buf = array[2, uint8].default ps.recvDataLoop(buf) os.authenticateSocks5(ps, buf, proxyUser, proxyPass) os.sendSocks5Domain(ps, host, port, outIpv6) diff --git a/adapter/protocol/man.nim b/adapter/protocol/man.nim index 1b0724ad..265862bb 100644 --- a/adapter/protocol/man.nim +++ b/adapter/protocol/man.nim @@ -236,8 +236,8 @@ proc processManpage(ofile, efile: File; header, keyword: string) = efile.close() proc myOpen(cmd: string): tuple[ofile, efile: File] = - var opipe = default(array[2, cint]) - var epipe = default(array[2, cint]) + var opipe = array[2, cint].default + var epipe = array[2, cint].default if pipe(opipe) == -1 or pipe(epipe) == -1: return (nil, nil) case fork() diff --git a/doc/hacking.md b/doc/hacking.md index fe9e0e60..6aa409c2 100644 --- a/doc/hacking.md +++ b/doc/hacking.md @@ -114,7 +114,7 @@ let myObj = MyObject( For arrays, use: ```nim -var buf1 = default(array[1234, char]) # when you need 0-initialization +var buf1 = array[1234, char].default # when you need 0-initialization var buf2 {.noinit.}: array[1234, char] # when you don't need 0-initialization ``` diff --git a/src/config/config.nim b/src/config/config.nim index fb740e81..2e0eaacf 100644 --- a/src/config/config.nim +++ b/src/config/config.nim @@ -607,7 +607,7 @@ proc parseConfigValue(ctx: var ConfigParser; x: var MimeTypes; v: TomlValue; k: string) = var paths: seq[ChaPathResolved] ctx.parseConfigValue(paths, v, k) - x = default(MimeTypes) + x = MimeTypes.default for p in paths: let ps = newPosixStream(p) if ps != nil: @@ -620,7 +620,7 @@ proc parseConfigValue(ctx: var ConfigParser; x: var Mailcap; v: TomlValue; k: string) = var paths: seq[ChaPathResolved] ctx.parseConfigValue(paths, v, k) - x = default(Mailcap) + x = Mailcap.default for p in paths: let ps = newPosixStream(p) if ps != nil: @@ -657,7 +657,7 @@ proc parseConfigValue(ctx: var ConfigParser; x: var URIMethodMap; v: TomlValue; k: string) = var paths: seq[ChaPathResolved] ctx.parseConfigValue(paths, v, k) - x = default(URIMethodMap) + x = URIMethodMap.default for p in paths: let ps = newPosixStream(p) if ps != nil: diff --git a/src/config/toml.nim b/src/config/toml.nim index 64c908ea..296c7766 100644 --- a/src/config/toml.nim +++ b/src/config/toml.nim @@ -283,7 +283,7 @@ proc consumeComment(state: var TomlParser; buf: openArray[char]) = proc consumeKey(state: var TomlParser; buf: openArray[char]): Result[seq[string], TomlError] = - var res: seq[string] + var res: seq[string] = @[] var str = "" while state.has(buf): let c = state.consume(buf) diff --git a/src/css/cascade.nim b/src/css/cascade.nim index 9a49cf48..7da77664 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -232,9 +232,9 @@ func buildComputedValues(rules: CSSValueEntryMap; presHints: openArray[CSSComputedEntry]; parent: CSSValues): CSSValues = new(result) - var inited = default(array[CSSPropertyType, bool]) - var uaInited = default(array[CSSPropertyType, bool]) - var userInited = default(array[CSSPropertyType, bool]) + var inited = array[CSSPropertyType, bool].default + var uaInited = array[CSSPropertyType, bool].default + var userInited = array[CSSPropertyType, bool].default for entry in rules[coUserAgent].normal: # user agent result.applyValue(entry, parent, nil, inited) inited[entry.t] = true @@ -333,10 +333,10 @@ func applyMediaQuery(ss: CSSStylesheet; window: Window): CSSStylesheet = func calcRules(styledNode: StyledNode; ua, user: CSSStylesheet; author: seq[CSSStylesheet]): RuleListMap = let uadecls = calcRules(styledNode, ua) - var userdecls: RuleList + var userdecls = RuleList.default if user != nil: userdecls = calcRules(styledNode, user) - var authordecls: seq[RuleList] + var authordecls: seq[RuleList] = @[] for rule in author: authordecls.add(calcRules(styledNode, rule)) return RuleListMap( @@ -362,7 +362,7 @@ type CascadeFrame = object parentDeclMap: RuleListMap proc getAuthorSheets(document: Document): seq[CSSStylesheet] = - var author: seq[CSSStylesheet] + var author: seq[CSSStylesheet] = @[] for sheet in document.sheets(): author.add(sheet.applyMediaQuery(document.window)) return author diff --git a/src/html/dom.nim b/src/html/dom.nim index fdadd5f7..b8ab0787 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -526,7 +526,7 @@ proc reset(state: var DrawingState) = proc create2DContext(jctx: JSContext; target: HTMLCanvasElement; options = JS_UNDEFINED) = - var pipefd: array[2, cint] + var pipefd {.noinit.}: array[2, cint] if pipe(pipefd) == -1: return let window = jctx.getWindow() diff --git a/src/html/formdata.nim b/src/html/formdata.nim index 808609d4..99fa1c5b 100644 --- a/src/html/formdata.nim +++ b/src/html/formdata.nim @@ -16,7 +16,7 @@ proc constructEntryList*(form: HTMLFormElement; submitter: Element = nil; encoding = "UTF-8"): seq[FormDataEntry] proc generateBoundary(urandom: PosixStream): string = - var s: array[33, uint8] + var s {.noinit.}: array[33, uint8] urandom.recvDataLoop(s) # 33 * 4 / 3 = 44 + prefix string is 22 bytes = 66 bytes return "----WebKitFormBoundary" & btoa(s) diff --git a/src/io/bufreader.nim b/src/io/bufreader.nim index c7ec04b1..5267d198 100644 --- a/src/io/bufreader.nim +++ b/src/io/bufreader.nim @@ -38,7 +38,7 @@ proc initReader*(stream: DynStream; len, auxLen: int): BufferedReader = return reader proc initPacketReader*(stream: DynStream): BufferedReader = - var len: array[2, int] + var len {.noinit.}: array[2, int] stream.recvDataLoop(addr len[0], sizeof(len)) return stream.initReader(len[0], len[1]) diff --git a/src/io/promise.nim b/src/io/promise.nim index a53f530b..544ed0a2 100644 --- a/src/io/promise.nim +++ b/src/io/promise.nim @@ -187,7 +187,7 @@ proc fromJS*(ctx: JSContext; val: JSValue; res: var EmptyPromise): Opt[void] = proc toJS*(ctx: JSContext; promise: EmptyPromise): JSValue = if promise == nil: return JS_NULL - var resolvingFuncs: array[2, JSValue] + var resolvingFuncs {.noinit.}: array[2, JSValue] let jsPromise = JS_NewPromiseCapability(ctx, resolvingFuncs.toJSValueArray()) if JS_IsException(jsPromise): return JS_EXCEPTION @@ -201,7 +201,7 @@ proc toJS*(ctx: JSContext; promise: EmptyPromise): JSValue = proc toJS*[T](ctx: JSContext; promise: Promise[T]): JSValue = if promise == nil: return JS_NULL - var resolvingFuncs: array[2, JSValue] + var resolvingFuncs {.noinit.}: array[2, JSValue] let jsPromise = JS_NewPromiseCapability(ctx, resolvingFuncs.toJSValueArray()) if JS_IsException(jsPromise): return JS_EXCEPTION @@ -218,7 +218,7 @@ proc toJS*[T](ctx: JSContext; promise: Promise[T]): JSValue = proc toJS*[T, E](ctx: JSContext; promise: Promise[Result[T, E]]): JSValue = if promise == nil: return JS_NULL - var resolvingFuncs: array[2, JSValue] + var resolvingFuncs {.noinit.}: array[2, JSValue] let jsPromise = JS_NewPromiseCapability(ctx, resolvingFuncs.toJSValueArray()) if JS_IsException(jsPromise): return JS_EXCEPTION diff --git a/src/local/pager.nim b/src/local/pager.nim index c457f836..b378bbba 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -1976,7 +1976,7 @@ proc loadURL(pager: Pager; url: string; ctype = none(string); none(URL) discard pager.gotoURL(newRequest(firstparse.get), prev, ctype, cs) return - var urls: seq[URL] + var urls: seq[URL] = @[] if pager.config.network.prepend_https and pager.config.network.prepend_scheme != "" and url[0] != '/': let pageurl = parseURL(pager.config.network.prepend_scheme & url) @@ -2207,7 +2207,7 @@ proc updateReadLine(pager: Pager) = else: pager.saveTo(data, lineedit.news) of lmMailcap: - var mailcap = default(Mailcap) + var mailcap = Mailcap.default let res = mailcap.parseMailcap(lineedit.news) let data = LineDataMailcap(pager.lineData) if res.isSome and mailcap.len == 1: diff --git a/src/server/buffer.nim b/src/server/buffer.nim index da9b8bb5..bbae50f2 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -295,7 +295,7 @@ macro proxy1(fun: typed) = pfun.iname = ident(fun[0].strVal & "_internal") pfun.ename = iproc[1] pfun.params.add(fun[3][0]) - var params2: seq[NimNode] + var params2: seq[NimNode] = @[] params2.add(fun[3][0]) for i in 1 ..< fun[3].len: let param = fun[3][i] @@ -956,7 +956,7 @@ var gpstream* {.global.}: SocketStream # Create an exact clone of the current buffer. # This clone will share the loader process with the previous buffer. proc clone*(buffer: Buffer; newurl: URL): int {.proxy.} = - var pipefd: array[2, cint] + var pipefd {.noinit.}: array[2, cint] if pipe(pipefd) == -1: buffer.estream.write("Failed to open pipe.\n") return -1 diff --git a/src/server/forkserver.nim b/src/server/forkserver.nim index 5fedf484..3352b39d 100644 --- a/src/server/forkserver.nim +++ b/src/server/forkserver.nim @@ -81,7 +81,7 @@ proc trapSIGINT() = setControlCHook(proc() {.noconv.} = discard) proc forkLoader(ctx: var ForkServerContext; config: LoaderConfig): int = - var pipefd: array[2, cint] + var pipefd {.noinit.}: array[2, cint] if pipe(pipefd) == -1: raise newException(Defect, "Failed to open pipe.") stdout.flushFile() @@ -127,7 +127,7 @@ proc forkBuffer(ctx: var ForkServerContext; r: var BufferedReader): int = r.sread(attrs) r.sread(ishtml) r.sread(charsetStack) - var pipefd: array[2, cint] + var pipefd {.noinit.}: array[2, cint] if pipe(pipefd) == -1: raise newException(Defect, "Failed to open pipe.") stdout.flushFile() diff --git a/src/server/loader.nim b/src/server/loader.nim index 60e37610..31c4f767 100644 --- a/src/server/loader.nim +++ b/src/server/loader.nim @@ -1134,7 +1134,7 @@ proc addClient(ctx: LoaderContext; stream: SocketStream; r.sread(config) r.sread(clonedFrom) stream.withPacketWriter w: - if pid in ctx.clientData or key == default(ClientKey): + if pid in ctx.clientData or key == ClientKey.default: w.swrite(false) else: let client = ClientData(pid: pid, key: key, config: config) @@ -1401,7 +1401,7 @@ proc initLoaderContext(fd: cint; config: LoaderConfig): LoaderContext = # pager's key is still null var key: ClientKey r.sread(key) - doAssert key == default(ClientKey) + doAssert key == ClientKey.default var cmd: LoaderCommand r.sread(cmd) doAssert cmd == lcAddClient diff --git a/src/types/cookie.nim b/src/types/cookie.nim index 486c6789..93d3757f 100644 --- a/src/types/cookie.nim +++ b/src/types/cookie.nim @@ -33,10 +33,10 @@ proc parseCookieDate(val: string): Option[DateTime] = var foundMonth = false var foundYear = false # date-token-list - var time: array[3, int] - var dayOfMonth: int - var month: int - var year: int + var time = array[3, int].default + var dayOfMonth = 0 + var month = 0 + var year = 0 for dateToken in val.split(Delimiters): if dateToken == "": continue # *delimiter if not foundTime: @@ -47,7 +47,7 @@ proc parseCookieDate(val: string): Option[DateTime] = if i > 2: break timeBlock # too many time fields # 1*2DIGIT if timeField.len != 1 and timeField.len != 2: break timeBlock - var timeFields: array[3, int] + var timeFields = array[3, int].default for c in timeField: if c notin AsciiDigit: break timeBlock timeFields[i] *= 10 diff --git a/src/types/url.nim b/src/types/url.nim index 80df920d..cca36eea 100644 --- a/src/types/url.nim +++ b/src/types/url.nim @@ -108,7 +108,7 @@ func parseIpv6(input: openArray[char]): Option[array[8, uint16]] = var pieceindex = 0 var compress = -1 var pointer = 0 - var address: array[8, uint16] + var address = array[8, uint16].default template c(i = 0): char = input[pointer + i] template has(i = 0): bool = (pointer + i < input.len) diff --git a/src/utils/luwrap.nim b/src/utils/luwrap.nim index bc1a64f8..06cf8d6e 100644 --- a/src/utils/luwrap.nim +++ b/src/utils/luwrap.nim @@ -34,7 +34,7 @@ proc mnormalize*(s: var string) = proc toUpperLU(s: string; n: cint): string = result = newStringOfCap(s.len) for u in s.points: - var outa: array[LRE_CC_RES_LEN_MAX, uint32] + var outa {.noinit.}: array[LRE_CC_RES_LEN_MAX, uint32] let n = lre_case_conv(cast[ptr UncheckedArray[uint32]](addr outa[0]), u, n) result.addUTF8(outa.toOpenArray(0, n - 1)) @@ -52,7 +52,7 @@ proc capitalizeLU*(s: string): string = wordStart = true result.addUTF8(u) elif wordStart: - var outa: array[LRE_CC_RES_LEN_MAX, uint32] + var outa {.noinit.}: array[LRE_CC_RES_LEN_MAX, uint32] let n = lre_case_conv(cast[ptr UncheckedArray[uint32]](addr outa[0]), u, 0) result.addUTF8(outa.toOpenArray(0, n - 1)) diff --git a/src/utils/twtstr.nim b/src/utils/twtstr.nim index f6fd2680..5f3b8f74 100644 --- a/src/utils/twtstr.nim +++ b/src/utils/twtstr.nim @@ -469,6 +469,7 @@ func percentEncode*(s: openArray[char]; set: set[char]; spaceAsPlus = false): result.percentEncode(s, set, spaceAsPlus) func percentDecode*(input: openArray[char]): string = + result = "" var i = 0 while i < input.len: let c = input[i] @@ -741,7 +742,7 @@ func atob(c: char): uint8 {.inline.} = # (it should really be out string, just can't use out because of 1.6.14) func atob*(outs: var string; data: string): Err[cstring] = outs = newStringOfCap(data.len div 4 * 3) - var buf = default(array[4, uint8]) + var buf = array[4, uint8].default var i = 0 var j = 0 var pad = 0 |