Implements {{Redirect-distinguish-for}}.


mArguments = require('Module:Arguments')
mRedirectHatnote = require("Module:Redirect hatnote")

local p = {}

function p.redirectDistinguishFor(frame)
	local args = mArguments.getArgs(frame, {parentOnly = true})
	local maxArg = 0
	for k, v in pairs(args) do
		if type(k) == 'number' and k > maxArg then maxArg = k end
	end
	local parsedArgs = {}
	for i = 1, maxArg do
		if i ~= 2 then
			parsedArgs[i == 1 and 1 or i - 1] = args[i] end
	end
	return (string.gsub( --Note that the outer parentheses are necessary!
		mRedirectHatnote._redirect(parsedArgs, 1, {selfref = args.selfref}),
		"(redirects? here.)",
		"%1 Not to be confused with [[:" .. (args[2]:match('^:?(.*)')) .. "]].",
		1
	))
end

return p