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,9 +174,9 @@ 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
Compile pragma Compile pragma

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,19 +542,18 @@ 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 ## returns the index of the first item in `possibilities` if not
## ambiguous; -1 if no item has been found; -2 if multiple items
when false: ## match.
proc abbrev(s: string, possibilities: openarray[string]): int = result = -1 # none found
## returns the index of the first item in `possibilities` if not for i in 0..possibilities.len-1:
## ambiguous; -1 if no item has been found; -2 if multiple items if possibilities[i].startsWith(s):
## match. if possibilities[i] == s:
result = -1 # none found # special case: exact match shouldn't be ambiguous
for i in 0..possibilities.len-1: return i
if possibilities[i].startsWith(s): if result >= 0: return -2 # ambiguous
if result >= 0: return -2 # ambiguous result = i
result = i
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------