That was the wrong fix. MSG_ERROR should set the error and the client should

use the error and exit on MSG_EXIT (it was being handled in the default
case). Undo the last change, move the errstr check into the MSG_EXIT case, and
add a comment.
This commit is contained in:
Nicholas Marriott 2009-09-02 20:15:49 +00:00
parent 7a4bac82d7
commit 459abafcea
2 changed files with 7 additions and 7 deletions

View File

@ -214,16 +214,17 @@ client_main(struct client_ctx *cctx)
printf("[server exited]\n");
return (0);
case CCTX_EXIT:
if (cctx->errstr != NULL) {
printf("[error: %s]\n", cctx->errstr);
return (1);
}
printf("[exited]\n");
return (0);
case CCTX_DETACH:
printf("[detached]\n");
return (0);
case CCTX_ERROR:
printf("[error: %s]\n", cctx->errstr);
return (1);
default:
printf("[error: unknown error]\n");
printf("[unknown error]\n");
return (1);
}
}
@ -277,8 +278,8 @@ client_msg_dispatch(struct client_ctx *cctx)
memcpy(&printdata, imsg.data, sizeof printdata);
printdata.msg[(sizeof printdata.msg) - 1] = '\0';
/* Error string used after exit message from server. */
cctx->errstr = xstrdup(printdata.msg);
cctx->exittype = CCTX_ERROR;
imsg_free(&imsg);
return (-1);
case MSG_EXIT:

3
tmux.h
View File

@ -973,8 +973,7 @@ struct client_ctx {
CCTX_DETACH,
CCTX_EXIT,
CCTX_DIED,
CCTX_SHUTDOWN,
CCTX_ERROR
CCTX_SHUTDOWN
} exittype;
const char *errstr;
};