Mercurial > hg > octave-lyh
diff src/input.cc @ 1288:4acabfbdd381
[project @ 1995-04-28 20:23:04 by jwe]
author | jwe |
---|---|
date | Fri, 28 Apr 1995 20:31:13 +0000 |
parents | b01f9577b0da |
children | 611d403c7f3d |
line wrap: on
line diff
--- a/src/input.cc +++ b/src/input.cc @@ -460,7 +460,6 @@ } } - // Use GNU readline to get an input line and store it in the history // list. @@ -638,6 +637,8 @@ { char **names = 0; + assert (text); + char *id = strsave (text); char *ptr = strchr (id, '.'); *ptr = '\0'; @@ -653,6 +654,7 @@ ptr = strrchr (prefix, '.'); *ptr = '\0'; + delete [] hint; hint = strsave (ptr + 1); symbol_record *sr = curr_sym_tab->lookup (id, 0, 0); @@ -703,15 +705,9 @@ if (text && *text && *text != '.') { if (strrchr (text, '.')) - { - names = generate_struct_completions (text, prefix, hint); - } + names = generate_struct_completions (text, prefix, hint); else - { - hint = strsave (text); - - names = make_name_list (); - } + names = make_name_list (); } return names; @@ -722,6 +718,8 @@ { int retval = 0; + assert (nm); + char *id = strsave (nm); char *elts = 0; char *ptr = strchr (id, '.'); @@ -795,17 +793,16 @@ prefix = 0; delete [] hint; - prefix = 0; + hint = strsave (text); name_list = generate_possible_completions (text, prefix, hint); prefix_len = 0; if (prefix) - prefix_len = strlen (prefix) + 1; + prefix_len = strlen (prefix); - hint_len = 0; - if (hint) - hint_len = strlen (hint); + assert (hint); + hint_len = strlen (hint); matches = 0; if (name_list) @@ -825,8 +822,8 @@ list_index++; if (strncmp (name, hint, hint_len) == 0) { - int len = 3 + prefix_len + strlen (name); - char *buf = xmalloc (len); + int len = 2 + prefix_len + strlen (name); + char *buf = (char *) xmalloc (len); if (prefix) {