function edit(macroname, linenumber)
// macroname : character string giving a macroname
- // linenumber : line number
+ // linenumber : line number (as decimal number or literal one)
[lhs,rhs] = argn(0);
if (rhs > 2) then
- error(sprintf(gettext("%s: Wrong number of input argument(s): At least %d expected.\n"), "edit", 1));
+ msg = _("%s: Wrong number of input argument(s): At least %d expected.\n")
+ error(msprintf(msg, "edit", 1));
end
if (rhs >= 1 & type(macroname) ~= 10) then
- error(sprintf(gettext("%s: Wrong type for input argument #%d: String expected.\n"),"edit",1));
+ msg = _("%s: Wrong type for input argument #%d: String expected.\n")
+ error(msprintf(msg, "edit", 1));
end
- if (rhs == 2 & type(linenumber) ~= 1) then
- error(msprintf(gettext("%s: Wrong type for input argument #%d: Double expected.\n"),"edit",2));
+ if rhs == 2 then
+ if and(type(linenumber)~=[1 10]) | (type(linenumber)==10 & isnan(strtod(linenumber(1)))) then
+ msg = _("%s: Wrong type for input argument #%d: Number expected.\n")
+ error(msprintf(msg, "edit", 2));
+ end
+ linenumber = strtod(linenumber(1))
end
found = %f;