From 75be9c8d552ab83be01d7f173efcbadc7a531e2a Mon Sep 17 00:00:00 2001 From: Grzegorz Adam Hankiewicz Date: Mon, 11 Mar 2013 23:48:15 +0100 Subject: Implements `$` proc for a sequence of TRunes. --- lib/pure/unicode.nim | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/pure/unicode.nim') 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 -- cgit 1.4.1-2-gfad0