Browse Source

Fix some ANSI bg/fg attributes

master
Alec Murphy 4 years ago
parent
commit
a56991c90e
  1. 61
      Load.HC

61
Load.HC

@ -108,6 +108,8 @@ U0 TempleTermSession(I64 sock)
DCFill(tt_buf,tt_cur_bg);
tt_buf->color=tt_cur_fg;
I64 rv;
I64 ansi_pos=0;
I64 rx_size=1024;
I64 i=0;
@ -638,7 +640,7 @@ U0 TempleTermSession(I64 sock)
DCDel(sr_dc);
break;
 case 'T':
case 'T':
StrPrint(sr_buf, ansi_buf);
StrFirstOcc(sr_buf,"S")[0]=0;
sr_dc=DCNew(640,(tt_sr_y2*8)-(tt_sr_y1*8));
@ -648,6 +650,24 @@ U0 TempleTermSession(I64 sock)
break;
case 'm':
if (StrFind(";7m",ansi_buf))
{ tt_cur_fg=rv; tt_cur_fg=tt_cur_bg; tt_cur_bg=rv;
if (tt_cur_bg>7) { tt_cur_bg-=8; };
};
if (StrFind("[7m",ansi_buf))
{ tt_cur_fg=rv; tt_cur_fg=tt_cur_bg; tt_cur_bg=rv;
if (tt_cur_bg>7) { tt_cur_bg-=8; };
};
if (StrFind("[7;",ansi_buf))
{ tt_cur_fg=rv; tt_cur_fg=tt_cur_bg; tt_cur_bg=rv;
if (tt_cur_bg>7) { tt_cur_bg-=8; };
};
if (StrFind(";7;",ansi_buf))
{ tt_cur_fg=rv; tt_cur_fg=tt_cur_bg; tt_cur_bg=rv;
if (tt_cur_bg>7) { tt_cur_bg-=8; };
};
if (StrFind(";1m",ansi_buf)) { bold=8; };
if (StrFind("[1m",ansi_buf)) { bold=8; };
if (StrFind("[1;",ansi_buf)) { bold=8; };
@ -706,7 +726,11 @@ U0 TempleTermSession(I64 sock)
if (StrFind("107",ansi_buf)) { tt_cur_bg=bold+7; };
if (StrFind("[0m",ansi_buf)) { tt_cur_bg=BLACK; tt_cur_fg=WHITE; };
if (StrFind("[7m",ansi_buf)) { tt_cur_bg=WHITE; tt_cur_fg=BLACK; };
if (StrFind("[7m",ansi_buf))
{ tt_cur_fg=rv; tt_cur_fg=tt_cur_bg; tt_cur_bg=rv;
if (tt_cur_bg>7) { tt_cur_bg-=8; };
};
break;
@ -755,6 +779,8 @@ U0 TempleTermSession(I64 sock)
ansi_buf[ansi_pos-1]=0;
tt_cur_x=Str2I64(ansi_buf+k);
tt_cur_y=Str2I64(ansi_buf+1);
tt_cur_fg=WHITE;
tt_cur_bg=BLACK;
};
break;
@ -810,7 +836,15 @@ U0 TempleTermSession(I64 sock)
};
break;
// line wrapping doesn't seem to matter...
case 'h':
break;
case 'l':
break;
default:
//StrPrint(sr_buf, "Code: %02X", ansi_buf[ansi_pos-1]);
//PopUpOk(sr_buf);
break;
};
@ -847,6 +881,10 @@ U0 TempleTermSession(I64 sock)
if(tt_cur_x<0) { tt_cur_x=0; };
break;
case 10:
// change back to default attrs when we line feed?
tt_cur_bg=BLACK;
tt_cur_fg=WHITE;
tt_cur_y++;
break;
case 13:
@ -867,6 +905,10 @@ U0 TempleTermSession(I64 sock)
if(tt_cur_x==Fs->parent_task->win_width)
{
tt_cur_x-=Fs->parent_task->win_width;
// change back to default attrs when we line wrap?
tt_cur_bg=BLACK;
tt_cur_fg=WHITE;
tt_cur_y++;
};
break;
@ -953,6 +995,12 @@ U0 TempleTermSession(I64 sock)
Sleep(1);
};
Free(rz_ibuf);
Free(rz_filename);
Free(rz_shortfn);
Free(rx_buf);
Free(ad_seq);
Free(sr_buf);
PostMsg(Fs->parent_task,MSG_KEY_DOWN_UP,REMOTE_Q,0);
}
@ -1118,9 +1166,6 @@ I64 TempleTermConnect(U8 *host, I64 port=23)
};
Free(rz_shortfn);
Free(rz_filename);
Free(rz_ibuf);
RegWrite("WalnutLabs/TempleTerm", "Fs->parent_task->display_flags=%d;\n",
Fs->display_flags);
RegAppend("WalnutLabs/TempleTerm", "Fs->parent_task->win_left=%d;\n",
@ -1137,10 +1182,10 @@ I64 TempleTermConnect(U8 *host, I64 port=23)
Fs->win_height);
Kill(session);
close(sock);
Fs->draw_it=NULL;
PopUpOk("Connection closed.");
 Fs->draw_it=NULL;
DCFill;
SndRst;
PopUpOk("Connection closed.");
MenuPop;
return 0;
}
@ -1152,8 +1197,6 @@ I64 TempleTermConnect(U8 *host, I64 port=23)
};
}
U0 Run()
{
res=0;

Loading…
Cancel
Save