summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorGrzegorz Adam Hankiewicz <gradha@imap.cc>2013-03-12 00:21:42 +0100
committerGrzegorz Adam Hankiewicz <gradha@imap.cc>2013-03-12 00:21:42 +0100
commit9c0798d638e5d5aebc45056804ba11b9932abb96 (patch)
tree75411cfb021b1e6a8688877031ed0320c35f242c /lib
parent5ac5bedc66c94a781c4a23fa6d0407c012276aa7 (diff)
downloadNim-9c0798d638e5d5aebc45056804ba11b9932abb96.tar.gz
Adds left alignment example to strutils.
Diffstat (limited to 'lib')
-rwxr-xr-xlib/pure/strutils.nim13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim
index 090ad640c..b5f5a41eb 100755
--- a/lib/pure/strutils.nim
+++ b/lib/pure/strutils.nim
@@ -415,7 +415,15 @@ proc parseEnum*[T: enum](s: string, default: T): T =
 proc repeatChar*(count: int, c: Char = ' '): string {.noSideEffect,

   rtl, extern: "nsuRepeatChar".} =

   ## Returns a string of length `count` consisting only of

-  ## the character `c`.

+  ## the character `c`. You can use this proc to left align strings. Example:

+  ##

+  ## .. code-block:: nimrod

+  ##   let

+  ##     width = 15

+  ##     text1 = "Hello user!"

+  ##     text2 = "This is a very long string"

+  ##   echo text1 & repeatChar(max(0, width - text1.len)) & "|"

+  ##   echo text2 & repeatChar(max(0, width - text2.len)) & "|"

   result = newString(count)

   for i in 0..count-1: result[i] = c

 

@@ -429,7 +437,8 @@ proc align*(s: string, count: int): string {.
   noSideEffect, rtl, extern: "nsuAlignString".} =

   ## Aligns a string `s` with spaces, so that is of length `count`. Spaces are

   ## added before `s` resulting in right alignment. If ``s.len >= count``, no

-  ## spaces are added and `s` is returned unchanged.

+  ## spaces are added and `s` is returned unchanged. If you need to left align

+  ## a string use the repeatChar proc.

   if s.len < count:

     result = newString(count)

     var spaces = count - s.len