@@ -1187,22 +1187,26 @@ void jsiTabComplete() {
1187
1187
}
1188
1188
jslKill ();
1189
1189
jslSetLex (oldLex );
1190
- if (!data .partial ) {
1191
- jsvUnLock (object );
1190
+ if (!object && !data .partial ) {
1192
1191
return ;
1193
1192
}
1194
- data .partialLen = jsvGetStringLength (data .partial );
1195
- size_t actualPartialLen = inputCursorPos + 1 - partialStart ;
1196
- if (actualPartialLen > data .partialLen ) {
1197
- // we had a token but were past the end of it when asked
1198
- // to autocomplete ---> no token
1199
- jsvUnLock (data .partial );
1200
- return ;
1201
- } else if (actualPartialLen < data .partialLen ) {
1202
- JsVar * v = jsvNewFromStringVar (data .partial , 0 , actualPartialLen );
1203
- jsvUnLock (data .partial );
1204
- data .partial = v ;
1205
- data .partialLen = actualPartialLen ;
1193
+ if (data .partial ) {
1194
+ data .partialLen = jsvGetStringLength (data .partial );
1195
+ size_t actualPartialLen = inputCursorPos + 1 - partialStart ;
1196
+ if (actualPartialLen > data .partialLen ) {
1197
+ // we had a token but were past the end of it when asked
1198
+ // to autocomplete ---> no token
1199
+ jsvUnLock (data .partial );
1200
+ return ;
1201
+ } else if (actualPartialLen < data .partialLen ) {
1202
+ JsVar * v = jsvNewFromStringVar (data .partial , 0 , actualPartialLen );
1203
+ jsvUnLock (data .partial );
1204
+ data .partial = v ;
1205
+ data .partialLen = actualPartialLen ;
1206
+ }
1207
+ } else {
1208
+ data .partial = jsvNewFromEmptyString ();
1209
+ data .partialLen = 0 ;
1206
1210
}
1207
1211
1208
1212
// If we had the name of an object here, try and look it up
0 commit comments