diff --git a/src/kiss/Kiss.hx b/src/kiss/Kiss.hx index 4878692..67f1523 100644 --- a/src/kiss/Kiss.hx +++ b/src/kiss/Kiss.hx @@ -111,6 +111,7 @@ class Kiss { "zipThrow" => Symbol("Prelude.zipThrow"), "joinPath" => Symbol("Prelude.joinPath"), "readDirectory" => Symbol("Prelude.readDirectory"), + "substr" => Symbol("Prelude.substr") ], fieldList: [], fieldDict: new Map(), diff --git a/src/kiss/Prelude.hx b/src/kiss/Prelude.hx index 6e49997..88682f5 100644 --- a/src/kiss/Prelude.hx +++ b/src/kiss/Prelude.hx @@ -632,6 +632,16 @@ class Prelude { } #end + public static function substr(str:String, startIdx:Int, ?endIdx:Int) { + function negIdx(idx) { + return if (idx < 0) str.length + idx else idx; + } + + if (endIdx == null) endIdx = str.length; + + return str.substr(negIdx(startIdx), negIdx(endIdx)); + } + public static var newLine = "\n"; public static var backSlash = "\\"; }