--- ray/src/hd/rholo4.c 1997/11/20 11:40:11 3.6 +++ ray/src/hd/rholo4.c 1997/12/01 16:35:35 3.10 @@ -73,8 +73,10 @@ int block; /* read message header */ n = read(dpd[0], (char *)&msg, sizeof(MSGHEAD)); if (n != sizeof(MSGHEAD)) { - if (n >= 0) + if (n >= 0) { + dpout = NULL; error(USER, "display process died"); + } if (errno != EAGAIN & errno != EINTR) goto readerr; return(2); /* acceptable failure */ @@ -108,6 +110,14 @@ int block; disp_result(DS_STARTIMM, 0, NULL); bundle_set(BS_ADD, (PACKHEAD *)buf, msg.nbytes/sizeof(PACKHEAD)); disp_result(DS_ENDIMM, 0, NULL); + disp_check(0); /* hack -- delete usu. follows add */ + break; + case DR_ADJSET: + if (msg.nbytes % sizeof(PACKHEAD)) + error(INTERNAL, "bad DR_ADJSET from display process"); + disp_result(DS_STARTIMM, 0, NULL); + bundle_set(BS_ADJ, (PACKHEAD *)buf, msg.nbytes/sizeof(PACKHEAD)); + disp_result(DS_ENDIMM, 0, NULL); disp_flush(); break; case DR_DELSET: @@ -125,6 +135,8 @@ int block; if (msg.nbytes) error(INTERNAL, "bad DR_SHUTDOWN from display process"); return(0); /* zero return signals shutdown */ + case DR_NOOP: + break; default: error(INTERNAL, "unrecognized request from display process"); }