summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mbbsd/io.c13
-rw-r--r--mbbsd/mbbsd.c1
2 files changed, 14 insertions, 0 deletions
diff --git a/mbbsd/io.c b/mbbsd/io.c
index 4b324b8c..57d639c2 100644
--- a/mbbsd/io.c
+++ b/mbbsd/io.c
@@ -484,6 +484,19 @@ strip_ansi(char *buf, char *str, int mode)
* (buf) *buf = '\0'; return count; */
}
+void
+strip_iac(unsigned char *str, int maxlen)
+{
+ int i,len=0;
+
+ for(i=0;i<maxlen && str[i]; i++)
+ if(str[i]!=255) {
+ str[len++]=str[i];
+ }
+ if(len<maxlen)
+ str[len]='\0';
+}
+
int
oldgetdata(int line, int col, char *prompt, char *buf, int len, int echo)
{
diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c
index 611d603b..101299c9 100644
--- a/mbbsd/mbbsd.c
+++ b/mbbsd/mbbsd.c
@@ -734,6 +734,7 @@ setup_utmp(int mode)
strlcpy(uinfo.userid, cuser.userid, sizeof(uinfo.userid));
//strlcpy(uinfo.realname, cuser.realname, sizeof(uinfo.realname));
strlcpy(uinfo.username, cuser.username, sizeof(uinfo.username));
+ strip_iac(uinfo.username, sizeof(uinfo.username));
strlcpy(uinfo.from, fromhost, sizeof(uinfo.from));
uinfo.five_win = cuser.five_win;
uinfo.five_lose = cuser.five_lose;