Index: openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl,v
diff -u -r1.30.2.11 -r1.30.2.12
--- openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl 30 Dec 2015 13:14:59 -0000 1.30.2.11
+++ openacs-4/packages/acs-api-browser/tcl/acs-api-documentation-procs.tcl 1 Jan 2016 11:58:55 -0000 1.30.2.12
@@ -1008,13 +1008,13 @@
return $score
}
- ad_proc -private is_xotcl_object {scope proc_name} {
+ ad_proc -private is_object {scope proc_name} {
Checks, whether the specified argument is an xotcl object.
Does not cause problems when xocl is not loaded.
@return boolean value
} {
set result 0
- catch {set result [::xo::api inscope $scope ::xotcl::Object isobject $proc_name]}
+ catch {set result [::xo::api inscope $scope ::nsf::is object $proc_name]}
return $result
}
@@ -1164,6 +1164,8 @@
} {
+ set $namespace_provided_p [expr {$proc_namespace ne ""}]
+
set script [string trimright $script]
template::head::add_style -style $::apidoc::style
@@ -1295,13 +1297,6 @@
} elseif {$proc_name in $XOTCL_KEYWORDS} {
append html [pretty_token keyword $proc_name]
- } elseif {[is_xotcl_object $scope $proc_name]} {
- set url [::xo::api object_url \
- -show_source 1 -show_methods 2 \
- $scope $proc_name]
- append html "" \
- [pretty_token object $proc_name]
-
} elseif {[string match "ns*" $proc_name]} {
set url "/api-doc/tcl-proc-view?tcl_proc=$proc_name"
append html "" \
@@ -1312,21 +1307,46 @@
} elseif {$proc_namespace ne ""
&& [info commands ::${proc_namespace}::${proc_name}] ne ""} {
- set url [api_proc_url ${proc_namespace}::${proc_name}]
- append html "" \
- [pretty_token proc $proc_name]
-
+ ns_log notice "proc_namespace <$proc_namespace> ::${proc_namespace}::${proc_name}"
+
+ if {[is_object $scope ${proc_namespace}::${proc_name}]} {
+ set url [::xo::api object_url \
+ -show_source 1 -show_methods 2 \
+ $scope ::${proc_namespace}::${proc_name}]
+ append html "" \
+ [pretty_token object $proc_name]
+ } else {
+ set url [api_proc_url ${proc_namespace}::${proc_name}]
+ append html "" \
+ [pretty_token proc $proc_name]
+ }
} elseif {[info commands ::$proc_name] ne ""} {
- set url [api_proc_url $proc_name]
- append html "" \
- [pretty_token proc $proc_name]
-
+ ns_log notice "absolute ::${proc_name}"
+ if {[is_object $scope ::${proc_name}]} {
+ set url [::xo::api object_url \
+ -show_source 1 -show_methods 2 \
+ $scope ::${proc_name}]
+ append html "" \
+ [pretty_token object $proc_name]
+ } else {
+ set url [api_proc_url $proc_name]
+ append html "" \
+ [pretty_token proc $proc_name]
+ }
} else {
- append html ${proc_name}
+ append html $proc_name
set proc_ok 1
}
incr i $procl
+ if {$proc_name eq "namespace" && !$namespace_provided_p} {
+ set endPos [string first \n $data $i+1]
+ if {$endPos > -1} {
+ set line [string range $data $i+1 $endPos]
+ regexp {\s*eval\s+(\S+)\s+} $line . proc_namespace
+ }
+ }
+
if {$proc_name eq "regexp" || $proc_name eq "regsub"} {
#
# Hack for nasty regexp stuff