From 4ce267c08dd8287668b99d546b3679a9b1347d43 Mon Sep 17 00:00:00 2001 From: Flaviu Tamas Date: Sat, 11 Apr 2015 11:15:51 -0400 Subject: Fix getinfo overflows --- src/nre.nim | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/nre.nim') diff --git a/src/nre.nim b/src/nre.nim index cf99c8d5d..3ff4bade2 100644 --- a/src/nre.nim +++ b/src/nre.nim @@ -189,17 +189,17 @@ proc getinfo[T](pattern: Regex, opt: cint): T = # Regex accessors {{{ proc captureCount*(pattern: Regex): int = - return getinfo[int](pattern, pcre.INFO_CAPTURECOUNT) + return getinfo[cint](pattern, pcre.INFO_CAPTURECOUNT) proc captureNameId*(pattern: Regex): Table[string, int] = return pattern.captureNameToId proc matchesCrLf(pattern: Regex): bool = - let flags = getinfo[cint](pattern, pcre.INFO_OPTIONS) + let flags = uint32(getinfo[culong](pattern, pcre.INFO_OPTIONS)) let newlineFlags = flags and (pcre.NEWLINE_CRLF or pcre.NEWLINE_ANY or pcre.NEWLINE_ANYCRLF) - if newLineFlags > 0: + if newLineFlags > 0u32: return true # get flags from build config @@ -464,7 +464,8 @@ iterator findIter*(str: string, pattern: Regex, start = 0, endpos = int.high): R ## - ``proc findAll(...)`` returns a ``seq[string]`` # see pcredemo for explaination let matchesCrLf = pattern.matchesCrLf() - let unicode = (getinfo[cint](pattern, pcre.INFO_OPTIONS) and pcre.UTF8) > 0 + let unicode = uint32(getinfo[culong](pattern, pcre.INFO_OPTIONS) and + pcre.UTF8) > 0u32 let strlen = if endpos == int.high: str.len else: endpos+1 var offset = start -- cgit 1.4.1-2-gfad0