diff options
author | Araq <rumpf_a@web.de> | 2013-03-16 09:48:32 -0700 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2013-03-16 09:48:32 -0700 |
commit | 109d1ce85d288bb8460dc342dc83577aa07634c1 (patch) | |
tree | 969273eb372f303c745dc842f34cf5796c576c80 | |
parent | 33ccb3315f77d32ca9414bd7f7763a646eda5856 (diff) | |
parent | 75be9c8d552ab83be01d7f173efcbadc7a531e2a (diff) | |
download | Nim-109d1ce85d288bb8460dc342dc83577aa07634c1.tar.gz |
Merge pull request #354 from gradha/pr_adds_stringyfication_of_runes
Implements `$` proc for a sequence of TRunes.
-rw-r--r-- | lib/pure/unicode.nim | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim index f76573788..142178a86 100644 --- a/lib/pure/unicode.nim +++ b/lib/pure/unicode.nim @@ -132,6 +132,11 @@ proc toUTF8*(c: TRune): string {.rtl, extern: "nuc$1".} = result = newString(1) result[0] = chr(i) +proc `$`*(runes: seq[TRune]): string = + ## converts a sequence of runes to a string + result = "" + for rune in runes: result.add(rune.toUTF8) + const alphaRanges = [ 0x00d8, 0x00f6, # - @@ -1208,3 +1213,10 @@ proc cmpRunesIgnoreCase*(a, b: string): int {.rtl, extern: "nuc$1", procvar.} = result = irune(toLower(ar)) - irune(toLower(br)) if result != 0: return result = a.len - b.len + +when isMainModule: + let + someString = "öÑ" + someRunes = @[runeAt(someString, 0), runeAt(someString, 2)] + compared = (someString == $someRunes) + assert compared == true |