all repos — min @ 2aaa2ea2b80435986e04fd9240c163798a8605bb

A small but practical concatenative programming language.

core/baseutils.nim

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
proc reverse*[T](xs: openarray[T]): seq[T] =
  result = newSeq[T](xs.len)
  for i, x in xs:
    result[result.len-i-1] = x 


when defined(mini):
  import
    strutils
  
  proc parentDirEx*(s: string): string =
    let fslash = s.rfind("/")
    let bslash = s.rfind("\\")
    var dirEnd = fslash-1
    if dirEnd < 0:
      dirEnd = bslash-1
    if dirEnd < 0:
      dirEnd = s.len-1
    if dirEnd < 0:
      return s
    return s[0..dirEnd]
    
else:
  import os
  proc parentDirEx*(s: string): string =
    return s.parentDir