(expr string)
| 187 | } |
| 188 | |
| 189 | func parseSedSubstituteFlags(expr string) (string, bool) { |
| 190 | if len(expr) < 4 || expr[0] != 's' { |
| 191 | return "", false |
| 192 | } |
| 193 | delimiter := expr[1] |
| 194 | if (delimiter >= 'a' && delimiter <= 'z') || (delimiter >= 'A' && delimiter <= 'Z') || |
| 195 | (delimiter >= '0' && delimiter <= '9') || delimiter == ' ' || delimiter == '\t' || delimiter == '\n' || delimiter == '\r' { |
| 196 | return "", false |
| 197 | } |
| 198 | parts := 0 |
| 199 | escaped := false |
| 200 | for i := 2; i < len(expr); i++ { |
| 201 | ch := expr[i] |
| 202 | if escaped { |
| 203 | escaped = false |
| 204 | continue |
| 205 | } |
| 206 | if ch == '\\' { |
| 207 | escaped = true |
| 208 | continue |
| 209 | } |
| 210 | if ch == delimiter { |
| 211 | parts++ |
| 212 | if parts == 3 { |
| 213 | return expr[i+1:], true |
| 214 | } |
| 215 | } |
| 216 | } |
| 217 | return "", false |
| 218 | } |
no outgoing calls
no test coverage detected