842e9206c0
As outlined in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr, which refers to the ECMA-262 specification, using the `substr` function is advised against. Hence this PR, which replaces all remaining `substr` occurrences with `substring` instead. Please refer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr#Syntax respectively https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring#Syntax for the differences between the two functions. Note that in most cases in the code-base there's only one argument passed to `substr`, and those require no other changes except replacing "substr" with "substring". For the other cases, the `substr(start, length)` calls are changed to `substring(start, start + length)` instead.
15 lines
414 B
CoffeeScript
15 lines
414 B
CoffeeScript
module.exports = (env, callback) ->
|
|
count = (string, substr) ->
|
|
num = pos = 0
|
|
return 1/0 unless substr.length
|
|
num++ while pos = 1 + string.indexOf(substr, pos)
|
|
num
|
|
|
|
env.helpers.makeRelative = (source, dest) ->
|
|
return dest unless dest.indexOf("/") == 0
|
|
depth = count(source, '/') # 1 being /
|
|
ret = ""
|
|
ret += "../" while depth = depth - 1
|
|
ret + dest.substring(1)
|
|
|
|
callback() |