summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-12-20 22:39:14 +0100
committerAraq <rumpf_a@web.de>2014-12-20 22:39:14 +0100
commit18f00a1fa1d8a71c74340d7803a29af81d5f9860 (patch)
treec82ee02759171ef590e1f614f5a637d8dd3b5bd6 /lib
parent7deb8b2e7b61a93ee42d5cadbc4170f83ac638a0 (diff)
parent7d80a26b3fad2859208b3fd53f5fef61048d62c9 (diff)
downloadNim-18f00a1fa1d8a71c74340d7803a29af81d5f9860.tar.gz
Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/strutils.nim10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index 55a204b4c..4f449cb0e 100644
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -803,6 +803,16 @@ proc rfind*(s, sub: string, start: int = -1): int {.noSideEffect.} =
     if result != -1: return
   return -1
 
+proc rfind*(s: string, sub: char, start: int = -1): int {.noSideEffect,
+  rtl.} =
+  ## Searches for `sub` in `s` in reverse starting at position `start`.
+  ##
+  ## Searching is case-sensitive. If `sub` is not in `s`, -1 is returned.
+  let realStart = if start == -1: s.len-1 else: start
+  for i in countdown(realStart, 0):
+    if sub == s[i]: return i
+  return -1
+
 proc count*(s: string, sub: string, overlapping: bool = false): int {.noSideEffect,
   rtl, extern: "nsuCountString".} =
   ## Count the occurences of a substring `sub` in the string `s`.