Variables are passed to diff, ident, search and source scripts as varname=value while state information and requests are also passed as param=value.
If a variable is given the same name as a state information argument (e.g. showattic or raw), mayhem may result.
To avoid this potential problem, use a prefix for all internal URL args, e.g. a dot, and forbid that prefix in variable names.