diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-15 00:19:35 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-11-15 00:19:35 +0000 |
commit | 39724221b9e67fb7af6b70ec98d48c56e1073cba (patch) | |
tree | 3ff3a10cf419f11c7d4b7560cc545d30b3d881dc /main/term.c | |
parent | 651d90dae64a69f5a62664a39622bece24ca7b66 (diff) |
Merged revisions 47641 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r47641 | kpfleming | 2006-11-14 18:19:05 -0600 (Tue, 14 Nov 2006) | 2 lines
more formatting cleanup, and avoid running off the end of the string
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@47642 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/term.c')
-rw-r--r-- | main/term.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/main/term.c b/main/term.c index bdafa49e2..940396ee3 100644 --- a/main/term.c +++ b/main/term.c @@ -266,28 +266,26 @@ char *term_prompt(char *outbuf, const char *inbuf, int maxout) /* filter escape sequences */ void term_filter_escapes(char *line) - { - int i; - - for (i = 0; i < strlen(line); i++) { +{ + int i; + int len = strlen(line); + + for (i = 0; i < len; i++) { if (line[i] != ESC) continue; - if (line[i + 1] == '\x5b') { + if ((i < (len - 2)) && + (line[i + 1] == 0x5B)) { switch (line[i + 2]) { - case '\x30': - case '\x31': - case '\x33': - break; - default: - /* replace ESC with a space */ - line[i] = ' '; + case 0x30: + case 0x31: + case 0x33: + continue; } - } else { - /* replace ESC with a space */ - line[i] = ' '; } - } - } + /* replace ESC with a space */ + line[i] = ' '; + } +} char *term_prep(void) { |