Check-in [c132505b1b]

Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merge forked trunk
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c132505b1bae6b0e7573cf52ded28c32cfd07a73b623c85fda4fa765d11c73ef
User & Date: oehhar 2018-09-23 11:53:01.550
Context
2018-09-23
12:54
TIP #517 accepted 8/0/0: YES: 8 (Decoster, Fellows, Griffin, Kenny, Kupries, Landers, Nijtmans, Vogel). NO: -. PRESENT: -. Vote conclusion email was sent 23-Sep-2018 to Tcl Core list. Implementation was merged same day. check-in: a70938fd8b user: fvogel tags: trunk
11:53
Merge forked trunk check-in: c132505b1b user: oehhar tags: trunk
09:53
TIP518: discussion why not use virtual event <<Configure>> instead <<NoManagedChild>>. Use consistently <<NoManagedChild>> (not <<NoManagedChilds>>) check-in: 475fbebb73 user: oehhar tags: trunk
07:58
Fix formatting bug in 426. Clarify a bit of confusing wording. check-in: cacd40b86f user: dkf tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to tip/426.md.
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83


84
85


86
87
88
89
90
91


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
## Supporting C API

The supporting public C functions shall be:

 > void **Tcl\_RegisterCommandTypeName**\(Tcl\_ObjCmdProc
   *_implementationProc_, const char \*_nameStr_\)

	 > const char \* **Tcl\_GetCommandTypeName**\(Tcl\_Command _command_\)

**Tcl\_RegisterCommandTypeName** will associate a particular
implementation function, _implementationProc_, with an \(assumed
literal constant\) string, _nameStr_; if _nameStr_ is supplied as
NULL, the mapping for _implementationProc_ will be removed. The
_implementationProc_ argument must not be NULL. The use of a package
prefix within the name is _recommended_.

**Tcl\_GetCommandTypeName** shall take a command handle, _command_,
and return the registered type name string \(as previously passed to
Tcl\_RegisterCommandTypeName\) for the command implementation function
that the _command_ is using. If there is no type name registered for
the command's implementation function, the literal string **native**
will be returned instead. The result will never be NULL.

## Predefined Command Types

The following command types are guaranteed to be among the set defined
by default, but others may be done as well.

 proc: Procedures defined by the **proc** command.



 alias: Aliases defined by the **interp alias** command.



 ensemble: Ensembles defined by the **namespace ensemble** command.

 import: Commands imported by the **namespace import** command.

 object: Object \(or class\) defined by instantiating any TclOO class.



## Impact on Tk

It is anticipated that Tk widget instances will report themselves
through this mechanism as well, with a prefix to their names of
**tk::**; that prefix _should not_ be used by any other package.
Note however that not all widget types will be distinguishable; this
is part of the way that Tk is implemented.

The built-in widget creation functions _may_ declare themselves to
be of type **tk::widgetFactory**.

# Copyright

This document has been placed in the public domain.








|




















|
>
>

|
>
>

|

|

|
>
>















<
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

## Supporting C API

The supporting public C functions shall be:

 > void **Tcl\_RegisterCommandTypeName**\(Tcl\_ObjCmdProc
   *_implementationProc_, const char \*_nameStr_\)

 > const char \* **Tcl\_GetCommandTypeName**\(Tcl\_Command _command_\)

**Tcl\_RegisterCommandTypeName** will associate a particular
implementation function, _implementationProc_, with an \(assumed
literal constant\) string, _nameStr_; if _nameStr_ is supplied as
NULL, the mapping for _implementationProc_ will be removed. The
_implementationProc_ argument must not be NULL. The use of a package
prefix within the name is _recommended_.

**Tcl\_GetCommandTypeName** shall take a command handle, _command_,
and return the registered type name string \(as previously passed to
Tcl\_RegisterCommandTypeName\) for the command implementation function
that the _command_ is using. If there is no type name registered for
the command's implementation function, the literal string **native**
will be returned instead. The result will never be NULL.

## Predefined Command Types

The following command types are guaranteed to be among the set defined
by default, but others may be done as well.

**proc**: Procedures defined by the **proc** command. Introspection
commands like **info body** may be used (without error due to the
command not being a procedure).

**alias**: Aliases defined by the **interp alias** command, which will
be able to perform introspection on it. _Inter-interpreter aliases are
not required to report themselves this way to the slave interpreter._

**ensemble**: Ensembles defined by the **namespace ensemble** command.

**import**: Commands imported by the **namespace import** command.

**object**: Object \(or class\) defined by instantiating any TclOO
class.  The introspection command **info object** may be used (without
error due to the command not being an object).

## Impact on Tk

It is anticipated that Tk widget instances will report themselves
through this mechanism as well, with a prefix to their names of
**tk::**; that prefix _should not_ be used by any other package.
Note however that not all widget types will be distinguishable; this
is part of the way that Tk is implemented.

The built-in widget creation functions _may_ declare themselves to
be of type **tk::widgetFactory**.

# Copyright

This document has been placed in the public domain.