The return_value, if specified, becomes the return value of the ADP.
Note that this function returns all the way up the call stack. For example, suppose a.adp includes b.adp which includes c.adp, and c.adp calls ns_adp_break. No code in b.adp or a.adp after the includes will be executed. You can get around this in one of two ways:
* You can execute these calls in a.adp and b.adp, respectively:
catch {ns_adp_include b.adp} retval
catch {ns_adp_include c.adp} retval
* Or, you can execute this call in c.adp:
ns_adp_return ?retval?
The ns_adp_return function returns up only one level.