exported strutils.abbrev

This commit is contained in:
Araq 2012-02-24 19:19:13 +01:00
commit f0172b0a5f
4 changed files with 17 additions and 18 deletions

View file

@ -174,7 +174,7 @@ The `incompleteStruct`:idx: pragma tells the compiler to not use the
underlying C ``struct`` in a ``sizeof`` expression: underlying C ``struct`` in a ``sizeof`` expression:
.. code-block:: Nimrod .. code-block:: Nimrod
type type
TDIR* {.importc: "DIR", header: "<dirent.h>", TDIR* {.importc: "DIR", header: "<dirent.h>",
final, pure, incompleteStruct.} = object final, pure, incompleteStruct.} = object

View file

@ -1,7 +1,7 @@
# #
# #
# Nimrod's Runtime Library # Nimrod's Runtime Library
# (c) Copyright 2010 Andreas Rumpf # (c) Copyright 2012 Andreas Rumpf
# #
# See the file "copying.txt", included in this # See the file "copying.txt", included in this
# distribution, for details about the copyright. # distribution, for details about the copyright.

View file

@ -1,7 +1,7 @@
# #
# #
# Nimrod's Runtime Library # Nimrod's Runtime Library
# (c) Copyright 2010 Andreas Rumpf # (c) Copyright 2012 Andreas Rumpf
# #
# See the file "copying.txt", included in this # See the file "copying.txt", included in this
# distribution, for details about the copyright. # distribution, for details about the copyright.

View file

@ -542,17 +542,16 @@ proc allCharsInSet*(s: string, theSet: TCharSet): bool =
if c notin theSet: return false if c notin theSet: return false
return true return true
# 012345 proc abbrev*(s: string, possibilities: openarray[string]): int =
# 345
when false:
proc abbrev(s: string, possibilities: openarray[string]): int =
## returns the index of the first item in `possibilities` if not ## returns the index of the first item in `possibilities` if not
## ambiguous; -1 if no item has been found; -2 if multiple items ## ambiguous; -1 if no item has been found; -2 if multiple items
## match. ## match.
result = -1 # none found result = -1 # none found
for i in 0..possibilities.len-1: for i in 0..possibilities.len-1:
if possibilities[i].startsWith(s): if possibilities[i].startsWith(s):
if possibilities[i] == s:
# special case: exact match shouldn't be ambiguous
return i
if result >= 0: return -2 # ambiguous if result >= 0: return -2 # ambiguous
result = i result = i