diff options
| author | ruki <[email protected]> | 2016-01-14 09:19:14 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2016-01-14 09:19:14 +0800 |
| commit | cdcf953259aee5e7e1a06855ddbedbaabf585bc9 (patch) | |
| tree | 47b8e5de10522cca3b67354fa527b3525193e880 /xmake/scripts/base/string.lua | |
| parent | 8c50566e7ab2139b9f6c2976b9ce875b7ad11b7a (diff) | |
rename script directory to core
Diffstat (limited to 'xmake/scripts/base/string.lua')
| -rw-r--r-- | xmake/scripts/base/string.lua | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/xmake/scripts/base/string.lua b/xmake/scripts/base/string.lua deleted file mode 100644 index b4be08cfa..000000000 --- a/xmake/scripts/base/string.lua +++ /dev/null @@ -1,115 +0,0 @@ ---!The Automatic Cross-platform Build Tool --- --- XMake is free software; you can redistribute it and/or modify --- it under the terms of the GNU Lesser General Public License as published by --- the Free Software Foundation; either version 2.1 of the License, or --- (at your option) any later version. --- --- XMake is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public License --- along with XMake; --- If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a> --- --- Copyright (C) 2009 - 2015, ruki All rights reserved. --- --- @author ruki --- @file string.lua --- - --- define module: string -local string = string or {} - --- find the last substring with the given pattern -function string.find_last(self, pattern, plain) - - -- find the last substring - local curr = 0 - repeat - local next = self:find(pattern, curr + 1, plain) - if next then - curr = next - end - until (not next) - - -- found? - if curr > 0 then - return curr - end -end - --- split string with the given pattern -function string.split(self, pattern) - - -- split it - local list = {} - self:gsub("[^" .. pattern .."]+", function(v) table.insert(list, v) end ) - return list -end - --- trim the spaces -function string.trim(self) - return (self:gsub("^%s*(.-)%s*$", "%1")) -end - --- trim the left spaces -function string.ltrim(self) - return (self:gsub("^%s*", "")) -end - --- trim the right spaces -function string.rtrim(self) - local n = #self - while n > 0 and s:find("^%s", n) do n = n - 1 end - return self:sub(1, n) -end - --- append a substring with a given separator -function string.append(self, substr, separator) - - -- check - assert(self) - - -- not substr? return self - if not substr then - return self - end - - -- append it - local s = self - if #s == 0 then - s = substr - else - s = string.format("%s%s%s", s, separator or "", substr) - end - - -- ok - return s -end - --- encode: ' ', '=', '\"', '<' -function string.encode(self) - - -- null? - if self == nil then return end - - -- done - return (self:gsub("[%s=\"<]", function (w) return string.format("%%%x", w:byte()) end)) -end - --- decode: ' ', '=', '\"' -function string.decode(self) - - -- null? - if self == nil then return end - - -- done - return (self:gsub("%%(%x%x)", function (w) return string.char(tonumber(w, 16)) end)) -end - - --- return module: string -return string |
