@@ -121,8 +121,8 @@ proc getString*(node: StructNode): string {.noSideEffect, inline.} =
121
121
proc computeLength * (format: string ): int =
122
122
# # Compute the length for string represent `format`
123
123
var repeat = newString (0 )
124
- for i in 0 .. format.len- 1 :
125
- let f: char = format[i]
124
+ for i in 0 ..< format.len:
125
+ let f = format[i]
126
126
if f in '0' .. '9' :
127
127
repeat.add ($ f)
128
128
else :
@@ -169,7 +169,7 @@ proc load_32f*[T: SomeByte](a, b, c, d: T, endian: Endianness): float32 {.inline
169
169
o[0 ] = d
170
170
171
171
proc load_64 * (s: string , endian: Endianness ): int64 {.inline .} =
172
- for i in 0 .. sizeof (int64 )- 1 :
172
+ for i in 0 ..< sizeof (int64 ):
173
173
result = result shl 8
174
174
if endian == littleEndian:
175
175
result = result or s[8 - i - 1 ].int64
@@ -178,7 +178,7 @@ proc load_64*(s: string, endian: Endianness): int64 {.inline.} =
178
178
179
179
proc load_64f * (s: string , endian: Endianness ): float64 {.inline .} =
180
180
var o = cast [cstring ](addr result )
181
- for i in 0 .. sizeof (float64 )- 1 :
181
+ for i in 0 ..< sizeof (float64 ):
182
182
if endian == littleEndian:
183
183
o[i] = s[i]
184
184
else :
@@ -276,10 +276,10 @@ proc unpack*(fmt, buf: string): seq[StructNode] =
276
276
context.buffer = buf
277
277
278
278
var repeat = newString (0 )
279
- for i in 0 .. fmt.len- 1 :
279
+ for i in 0 ..< fmt.len:
280
280
let f: char = fmt[i]
281
281
if f in '0' .. '9' :
282
- repeat.add ($ f)
282
+ repeat.add (f)
283
283
continue
284
284
else :
285
285
if repeat == " " :
@@ -352,7 +352,7 @@ proc pack_16(result: var string, vars: openarray[StructNode], ctx: var StructCon
352
352
353
353
proc pack_32 (result: var string , vars: openarray [StructNode ], ctx: var StructContext , signed: bool ) =
354
354
for i in 0 ..< ctx.repeat:
355
- var value: array [0 .. 3 , char ]
355
+ var value: array [4 , char ]
356
356
case vars[ctx.offset].kind:
357
357
of StructFloat :
358
358
value = extract_32 (vars[ctx.offset].fval.float32 , ctx.byteOrder)
@@ -363,16 +363,14 @@ proc pack_32(result: var string, vars: openarray[StructNode], ctx: var StructCon
363
363
value = extract_32 (vars[ctx.offset].num.uint32 , ctx.byteOrder)
364
364
else :
365
365
raise newException (ValueError , " not supported" )
366
-
367
366
for j in 0 .. 3 :
368
- result [ctx.index + i + j] = value[j]
369
-
367
+ result [ctx.index + i * 4 + j] = value[j]
370
368
inc (ctx.offset)
371
369
inc (ctx.index, 4 * ctx.repeat)
372
370
373
371
proc pack_64 (result: var string , vars: openarray [StructNode ], ctx: var StructContext , signed: bool ) =
374
372
for i in 0 ..< ctx.repeat:
375
- var value: array [0 .. 7 , char ]
373
+ var value: array [8 , char ]
376
374
case vars[ctx.offset].kind:
377
375
of StructFloat :
378
376
value = extract_64 (vars[ctx.offset].fval, ctx.byteOrder)
@@ -385,7 +383,7 @@ proc pack_64(result: var string, vars: openarray[StructNode], ctx: var StructCon
385
383
raise newException (ValueError , " not supported" )
386
384
387
385
for j in 0 .. 7 :
388
- result [ctx.index + i + j] = value[j]
386
+ result [ctx.index + i * 8 + j] = value[j]
389
387
390
388
inc (ctx.offset)
391
389
inc (ctx.index, 8 * ctx.repeat)
@@ -394,10 +392,10 @@ proc pack_string(result: var string, vars: openarray[StructNode], ctx: var Struc
394
392
assert vars[ctx.offset].kind == StructString
395
393
396
394
let value = vars[ctx.offset].str
397
- for i in 0 .. value.len- 1 :
395
+ for i in 0 ..< value.len:
398
396
result [ctx.index + i] = value[i]
399
397
if (value.len < ctx.repeat):
400
- for i in value.len.. ctx.repeat- 1 :
398
+ for i in value.len..< ctx.repeat:
401
399
result [ctx.index + i] = '\x00 '
402
400
403
401
inc (ctx.offset)
@@ -412,11 +410,10 @@ proc pack*(fmt: string, vars: varargs[StructNode]): string =
412
410
result = newString (computeLength (fmt))
413
411
var context = newStructContext ()
414
412
var repeat = newString (0 )
415
- for i in 0 .. fmt.len- 1 :
416
- let f: char = fmt[i]
417
-
413
+ for i in 0 ..< fmt.len:
414
+ let f = fmt[i]
418
415
if f in '0' .. '9' :
419
- repeat.add ($ f)
416
+ repeat.add (f)
420
417
continue
421
418
else :
422
419
if repeat == " " :
@@ -474,7 +471,7 @@ macro pack_m(n: openarray[typed]): untyped =
474
471
result = newNimNode (nnkStmtList, n)
475
472
result .add (newCall (" initStruct" , ident (" s" ), n[0 ]))
476
473
if n.len > 1 :
477
- for i in 1 .. n.len- 1 :
474
+ for i in 1 ..< n.len:
478
475
result .add (newCall (ident (" add" ), ident (" s" ), n[i]))
479
476
480
477
template `pack` * (n: varargs [typed ]): untyped =
0 commit comments