summary refs log tree commit diff stats
path: root/lib/pure/strutils.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #8911Andreas Rumpf2018-09-161-7/+7
|
* Fix too broad generic match for toHex (#8889)LemonBoy2018-09-051-1/+1
| | | Fixes #8865
* strutils: don't deprecate escape/unescape, too much code uses itAraq2018-08-311-6/+2
|
* Merge branch 'devel' into araq-miscAraq2018-08-131-11/+20
|\
| * Fixed 7478: splitLines keepEol option (#8621)Iván Montes2018-08-131-12/+21
| |
* | fixes more nil string bugsAraq2018-08-081-4/+6
| |
* | strutils: minor code cleanupAraq2018-08-081-4/+1
|/
* Testament should run tests with no action (#8232)genotrance2018-07-081-3/+6
| | | | | | * Testament should run tests with no action * Fix strutils tests for JS
* Workaround VM bug in strutilsDominik Picheta2018-06-171-2/+3
|
* Exports unicode.toUpper/toLower in strutils module.Dominik Picheta2018-06-171-0/+3
|
* Add parse bin int, fixes #8018 (#8020)Vindaar2018-06-131-39/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * clarify `parseHexInt`, `parseOctInt` docstring and exception msgs * add `parseBinInt` based on `parseutil.parseBin` implementation Adds a `parseBinInt`, which parses a binary integer string and returns it as an integer. This is based on the implementation of `parseutil.parseBin`, removing the unnecessary parts. * add tests for all `parse(Hex|Oct|Bin)Int` procs * replace `parse*Int` proc impls by call to parseutil procs Replaces the `parse(Hex|Oct|Bin)Int` procedure implementation by calls to the `parseutil` procs, which receive a mutable argument. Has the main advantage that the empty string as well as a "prefix only" string, e.g. "0x" counts as an invalid integer. Also moves the `parseOctInt` proc further up in the file so that all `parse` procs are below one another. * replace `var L` by `let L` in `parse` procs There's no reason for the usage of `var` here. * add `maxLen` optional arg for `parseutil.parse(Oct|Bin)` Plus small change to test cases. * update changelog about `parse*Int` procs * fix `rejectParse` template in `tstrutils` * make sure only `s.len` chars are parsed, if `maxLen+start` > s.len Fixes a previous bug in `parseHex` (and now affected `parseOct` and `parseBin`), which allowed to set `start + maxLen` to be larger than the strings length. This resulted in an out of bounds access. * move `parse*Int` proc change to breaking changes, add double `
* Make isUpper (and variants) work for strings with non-alpha charsKaushal Modi2018-06-081-19/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The other variants are isLower, isUpperAscii and isLowerAscii Fixes https://github.com/nim-lang/Nim/issues/7963. This commit changes the behavior and signatures of: - isUpper, isLower in the unicode module - isUpperAscii, isLowerAscii in the strutils module A second mandatory parameter skipNonAlpha is added to these 4 procs. (This change affects only for the case where the input is a *string*.) --- With skipNonAlpha set to true, the behavior mimics the Python isupper and islower behavior i.e. non-alphabetic chars/runes are ignored when checking if the string is upper-case or lower-case. Before this commit: doAssert(not isUpper("A B")) After this commit: doAssert(not isUpper("A B", false)) <-- old behavior doAssert isUpper("A B", true) Below two are equivalent: isUpper("A B", true) isAlpha("A B") and isUpper("A B", false) .. and the similar for other 3 procs.
* fix handling of default precision in formatBiggestFloat for the js backend ↵skilchen2018-06-011-0/+7
| | | | (#7928)
* bugfix: strutils.find was broken for strings with uneven number of charsZahary Karadjov2018-05-071-248/+284
| | | | | | | | | | | | For some reason, the problem was manifesting only inside the VM, it was detecting an attempt to read past the string end (i.e. the formerly accessible null byte). To catch such errors, strutils now performs static tests too. I've solved the problem by re-implementing the Boyer-Moore algotihm in a cleaner way and I took the opportunity to make some other optimisations to strutils.
* make more tests greenAndreas Rumpf2018-04-301-1/+1
|
* strutils: code cleanups and do not rely on the terminating binary zero anymoreAndreas Rumpf2018-04-281-289/+94
|
* Don't escape multibyte characters (#7570)Oscar Nihlgård2018-04-231-3/+14
|
* remove dead code elimination option (#7669)Jacek Sieka2018-04-231-1/+1
|
* fixes #7507Araq2018-04-191-3/+11
|
* move eqIdent to vm.nim (#7585)Arne Döring2018-04-151-5/+6
| | | | | | * Strutils comment changes. * fix typo
* fixes #6205Andreas Rumpf2018-04-141-19/+19
|
* FIXUP: Removed +1 causing substr slicing to skip chars on first iteration of ↵ryanc-signiq2018-03-081-1/+6
| | | | while loop (#7312)
* strutils.strip: improve the documentation; fixes #7159Andreas Rumpf2018-03-051-1/+3
|
* fixes #7293Andreas Rumpf2018-03-051-3/+3
|
* Merge pull request #6517 from FedericoCeratto/hexstrDominik Picheta2018-01-261-0/+50
|\ | | | | Add string-to-hex and back conversions
| * Add string-to-hex and back conversionsFederico Ceratto2017-11-271-0/+50
| | | | | | | | Add parseHexStr and toHex and tests.
* | Improved collection-to-string behavior (#6825)Fabian Keller2017-12-141-20/+6
| |
* | Fixes #4377.Dominik Picheta2017-11-281-28/+46
| |
* | cleaned up strutils.nimAraq2017-11-281-17/+13
|/
* fixes system.runnableExamples; strutils makes use of runnableExamplesAraq2017-11-261-75/+66
|
* fixes #6589 again (#6766)Fabian Keller2017-11-171-3/+2
|
* Modified handling of zero precision in formatFloat (#6719)Fabian Keller2017-11-151-9/+12
|
* added doc examples for formatFloat (#6704)Fabian Keller2017-11-071-0/+10
|
* Adds optional maxsplit parameter to splitWhitespace (#6503) (#6690)olwi2017-11-061-15/+52
| | | | | * Adds optional maxsplit parameter to splitWhitespace() (#6503) * Adds an example to splitWhitespace doc comment. Minor fixes to several doc comments
* make tests green againAraq2017-11-011-1/+2
|
* Update `removeSuffix` implementations to match `removePrefix` (#6636)Bo Lingen2017-10-301-27/+27
|
* Merge branch 'devel' of github.com:nim-lang/Nim into develAndreas Rumpf2017-10-291-0/+11
|\
| * fixes #6589 (#6590)Fabian Keller2017-10-291-0/+11
| |
* | more replacements for the deprecated '<'Andreas Rumpf2017-10-291-3/+3
|/
* add `strutils.removePrefix` proc (#6473)Bo Lingen2017-10-281-2/+38
|
* strutils.find enhancements (#6582)Dmitry Atamanov2017-10-281-27/+49
|
* isAlphaNumberic and isDigit improvement + tests (#6579)Viktor Marosvary2017-10-241-2/+4
| | | if we encounter a character that does not satisfy the proc, we return immediately, without continuing to loop over the rest of the chars in the string.
* Fix `removeSuffix` rst code blocks Silvio2017-10-231-0/+3
| | | Add newline before `code-block` for `removeSuffix`
* Merge pull request #6051 from couven92/alignLeftDominik Picheta2017-10-221-2/+29
|\ | | | | Add left-aligning string proc to strutils
| * Add safeties for alignLeftFredrik Høisæther Rasch2017-07-041-2/+2
| |
| * Augment align proc with alignLeft procFredrik Høisæther Rasch2017-07-041-2/+29
| |
* | breaking change: arrays of char do not convert to cstring; ptr to array of ↵Andreas Rumpf2017-10-101-2/+8
| | | | | | | | char does
* | minor breacking change: in string formats '' the '1' is now interpreted as a ↵Andreas Rumpf2017-10-061-5/+21
| | | | | | | | number, not as an identifier. This is more consistent with the rest of the mini language and allows '12'.
* | in prepration for the upcoming different integer inference rulesAndreas Rumpf2017-09-161-1/+1
| |
* | Fix wrong result of countLines() (#6371)Simon Krauter2017-09-151-1/+2
| |