[Dosemu-cvs] dosemu/src/arch/linux/debugger mhpdbg.c,1.7,1.8
Brought to you by:
bartoldeman
From: <st...@us...> - 2003-12-12 23:21:27
|
Update of /cvsroot/dosemu/dosemu/src/arch/linux/debugger In directory sc8-pr-cvs1:/tmp/cvs-serv4311 Modified Files: mhpdbg.c Log Message: dosdebug: - Parse multiple commands properly - Stop trace loop in mhp_intercept() Index: mhpdbg.c =================================================================== RCS file: /cvsroot/dosemu/dosemu/src/arch/linux/debugger/mhpdbg.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- mhpdbg.c 30 Aug 2003 18:34:22 -0000 1.7 +++ mhpdbg.c 12 Dec 2003 23:21:24 -0000 1.8 @@ -209,6 +209,7 @@ static void mhp_poll_loop(void) { + char *ptr, *ptr1; for (;;) { handle_signals(); /* NOTE: if there is input on mhpdbg.fdin, as result of handle_signals @@ -243,8 +244,16 @@ return; } mhpdbg.recvbuf[mhpdbg.nbytes] = 0x00; - mhp_cmd(mhpdbg.recvbuf); - mhp_send(); + ptr = mhpdbg.recvbuf; + while (ptr && *ptr) { + ptr1 = strsep(&ptr, "\r\n"); + if (!ptr1) + ptr1 = ptr; + if (!ptr1) + break; + mhp_cmd(ptr1); + mhp_send(); + } mhpdbg.nbytes = 0; } } @@ -298,6 +307,7 @@ if (!mhpdbg.active || (mhpdbg.fdin == -1)) return; mhpdbgc.stopped = 1; mhpdbgc.want_to_stop = 0; + traceloop = 0; mhp_printf(msg); mhp_cmd("r0"); mhp_send(); |