Line 0
Link Here
|
|
|
1 |
=================================================================== |
2 |
RCS file: /cvsroot/incrtcl/incrTcl/itcl/generic/itcl_cmds.c,v |
3 |
retrieving revision 1.13 |
4 |
retrieving revision 1.15 |
5 |
diff -u -r1.13 -r1.15 |
6 |
--- generic/itcl_cmds.c 2001/05/22 01:50:21 1.13 |
7 |
+++ generic/itcl_cmds.c 2002/01/10 11:43:37 1.15 |
8 |
@@ -21,7 +21,7 @@ |
9 |
* mmclennan@lucent.com |
10 |
* http://www.tcltk.com/itcl |
11 |
* |
12 |
- * RCS: $Id: itcl_cmds.c,v 1.13 2001/05/22 01:50:21 davygrvy Exp $ |
13 |
+ * RCS: $Id: itcl_cmds.c,v 1.15 2002/01/10 11:43:37 davygrvy Exp $ |
14 |
* ======================================================================== |
15 |
* Copyright (c) 1993-1998 Lucent Technologies, Inc. |
16 |
* ------------------------------------------------------------------------ |
17 |
@@ -469,7 +469,7 @@ |
18 |
int forceFullNames = 0; |
19 |
|
20 |
char *pattern; |
21 |
- CONST char *name; |
22 |
+ CONST char *cmdName; |
23 |
int newEntry, handledActiveNs; |
24 |
Tcl_HashTable unique; |
25 |
Tcl_HashEntry *entry; |
26 |
@@ -477,7 +477,7 @@ |
27 |
Itcl_Stack search; |
28 |
Tcl_Command cmd, originalCmd; |
29 |
Namespace *nsPtr; |
30 |
- Tcl_Obj *listPtr, *objPtr; |
31 |
+ Tcl_Obj *objPtr; |
32 |
|
33 |
if (objc > 2) { |
34 |
Tcl_WrongNumArgs(interp, 1, objv, "?pattern?"); |
35 |
@@ -485,7 +485,7 @@ |
36 |
} |
37 |
|
38 |
if (objc == 2) { |
39 |
- pattern = Tcl_GetStringFromObj(objv[1], (int*)NULL); |
40 |
+ pattern = Tcl_GetString(objv[1]); |
41 |
forceFullNames = (strstr(pattern, "::") != NULL); |
42 |
} else { |
43 |
pattern = NULL; |
44 |
@@ -497,7 +497,6 @@ |
45 |
* in this interpreter. If we find any commands that |
46 |
* represent classes, report them. |
47 |
*/ |
48 |
- listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL); |
49 |
|
50 |
Itcl_InitStack(&search); |
51 |
Itcl_PushStack((ClientData)globalNs, &search); |
52 |
@@ -532,10 +531,10 @@ |
53 |
|
54 |
objPtr = Tcl_NewStringObj((char*)NULL, 0); |
55 |
Tcl_GetCommandFullName(interp, cmd, objPtr); |
56 |
- name = Tcl_GetStringFromObj(objPtr, (int*)NULL); |
57 |
+ cmdName = Tcl_GetString(objPtr); |
58 |
} else { |
59 |
- name = Tcl_GetCommandName(interp, cmd); |
60 |
- objPtr = Tcl_NewStringObj(name, -1); |
61 |
+ cmdName = Tcl_GetCommandName(interp, cmd); |
62 |
+ objPtr = Tcl_NewStringObj(cmdName, -1); |
63 |
} |
64 |
|
65 |
if (originalCmd) { |
66 |
@@ -543,9 +542,10 @@ |
67 |
} |
68 |
Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); |
69 |
|
70 |
- if (newEntry && (!pattern || Tcl_StringMatch(name, pattern))) { |
71 |
+ if (newEntry && |
72 |
+ (!pattern || Tcl_StringMatch(cmdName, pattern))) { |
73 |
Tcl_ListObjAppendElement((Tcl_Interp*)NULL, |
74 |
- listPtr, objPtr); |
75 |
+ Tcl_GetObjResult(interp), objPtr); |
76 |
} |
77 |
} |
78 |
entry = Tcl_NextHashEntry(&place); |
79 |
@@ -565,7 +565,6 @@ |
80 |
Tcl_DeleteHashTable(&unique); |
81 |
Itcl_DeleteStack(&search); |
82 |
|
83 |
- Tcl_SetObjResult(interp, listPtr); |
84 |
return TCL_OK; |
85 |
} |
86 |
|
87 |
@@ -598,8 +597,8 @@ |
88 |
ItclClass *classDefn = NULL; |
89 |
ItclClass *isaDefn = NULL; |
90 |
|
91 |
- char *name, *token; |
92 |
- CONST char *cmdName; |
93 |
+ char *name = NULL, *token = NULL; |
94 |
+ CONST char *cmdName = NULL; |
95 |
int pos, newEntry, match, handledActiveNs; |
96 |
ItclObject *contextObj; |
97 |
Tcl_HashTable unique; |
98 |
@@ -609,7 +608,7 @@ |
99 |
Tcl_Command cmd, originalCmd; |
100 |
Namespace *nsPtr; |
101 |
Command *cmdPtr; |
102 |
- Tcl_Obj *listPtr, *objPtr; |
103 |
+ Tcl_Obj *objPtr; |
104 |
|
105 |
/* |
106 |
* Parse arguments: |
107 |
@@ -617,7 +616,7 @@ |
108 |
*/ |
109 |
pos = 0; |
110 |
while (++pos < objc) { |
111 |
- token = Tcl_GetStringFromObj(objv[pos], (int*)NULL); |
112 |
+ token = Tcl_GetString(objv[pos]); |
113 |
if (*token != '-') { |
114 |
if (!pattern) { |
115 |
pattern = token; |
116 |
@@ -627,7 +626,7 @@ |
117 |
} |
118 |
} |
119 |
else if ((pos+1 < objc) && (strcmp(token,"-class") == 0)) { |
120 |
- name = Tcl_GetStringFromObj(objv[pos+1], (int*)NULL); |
121 |
+ name = Tcl_GetString(objv[pos+1]); |
122 |
classDefn = Itcl_FindClass(interp, name, /* autoload */ 1); |
123 |
if (classDefn == NULL) { |
124 |
return TCL_ERROR; |
125 |
@@ -635,7 +634,7 @@ |
126 |
pos++; |
127 |
} |
128 |
else if ((pos+1 < objc) && (strcmp(token,"-isa") == 0)) { |
129 |
- name = Tcl_GetStringFromObj(objv[pos+1], (int*)NULL); |
130 |
+ name = Tcl_GetString(objv[pos+1]); |
131 |
isaDefn = Itcl_FindClass(interp, name, /* autoload */ 1); |
132 |
if (isaDefn == NULL) { |
133 |
return TCL_ERROR; |
134 |
@@ -669,7 +668,6 @@ |
135 |
* in this interpreter. If we find any commands that |
136 |
* represent objects, report them. |
137 |
*/ |
138 |
- listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL); |
139 |
|
140 |
Itcl_InitStack(&search); |
141 |
Itcl_PushStack((ClientData)globalNs, &search); |
142 |
@@ -709,7 +707,7 @@ |
143 |
|
144 |
objPtr = Tcl_NewStringObj((char*)NULL, 0); |
145 |
Tcl_GetCommandFullName(interp, cmd, objPtr); |
146 |
- name = Tcl_GetStringFromObj(objPtr, (int*)NULL); |
147 |
+ cmdName = Tcl_GetString(objPtr); |
148 |
} else { |
149 |
cmdName = Tcl_GetCommandName(interp, cmd); |
150 |
objPtr = Tcl_NewStringObj(cmdName, -1); |
151 |
@@ -718,7 +716,8 @@ |
152 |
Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); |
153 |
|
154 |
match = 0; |
155 |
- if (newEntry && (!pattern || Tcl_StringMatch(name, pattern))) { |
156 |
+ if (newEntry && |
157 |
+ (!pattern || Tcl_StringMatch(cmdName, pattern))) { |
158 |
if (!classDefn || (contextObj->classDefn == classDefn)) { |
159 |
if (!isaDefn) { |
160 |
match = 1; |
161 |
@@ -736,10 +735,9 @@ |
162 |
|
163 |
if (match) { |
164 |
Tcl_ListObjAppendElement((Tcl_Interp*)NULL, |
165 |
- listPtr, objPtr); |
166 |
+ Tcl_GetObjResult(interp), objPtr); |
167 |
} else { |
168 |
- Tcl_IncrRefCount(objPtr); /* throw away the name */ |
169 |
- Tcl_DecrRefCount(objPtr); |
170 |
+ Tcl_DecrRefCount(objPtr); /* throw away the name */ |
171 |
} |
172 |
} |
173 |
entry = Tcl_NextHashEntry(&place); |
174 |
@@ -759,7 +757,6 @@ |
175 |
Tcl_DeleteHashTable(&unique); |
176 |
Itcl_DeleteStack(&search); |
177 |
|
178 |
- Tcl_SetObjResult(interp, listPtr); |
179 |
return TCL_OK; |
180 |
} |
181 |
|
182 |
@@ -821,9 +818,8 @@ |
183 |
} |
184 |
else if (result != TCL_OK) { |
185 |
char mesg[256], *name; |
186 |
- name = Tcl_GetStringFromObj(objv[0], (int*)NULL); |
187 |
- sprintf(mesg, "\n (%.100s body line %d)", |
188 |
- name, interp->errorLine); |
189 |
+ name = Tcl_GetString(objv[0]); |
190 |
+ sprintf(mesg, "\n (%.100s body line %d)", name, interp->errorLine); |
191 |
Tcl_AddErrorInfo(interp, mesg); |
192 |
} |
193 |
|
194 |
@@ -865,7 +861,7 @@ |
195 |
* then delete them. |
196 |
*/ |
197 |
for (i=1; i < objc; i++) { |
198 |
- name = Tcl_GetStringFromObj(objv[i], (int*)NULL); |
199 |
+ name = Tcl_GetString(objv[i]); |
200 |
cdefn = Itcl_FindClass(interp, name, /* autoload */ 1); |
201 |
if (cdefn == NULL) { |
202 |
return TCL_ERROR; |
203 |
@@ -873,7 +869,7 @@ |
204 |
} |
205 |
|
206 |
for (i=1; i < objc; i++) { |
207 |
- name = Tcl_GetStringFromObj(objv[i], (int*)NULL); |
208 |
+ name = Tcl_GetString(objv[i]); |
209 |
cdefn = Itcl_FindClass(interp, name, /* autoload */ 0); |
210 |
|
211 |
if (cdefn) { |