From be1fc6a46f0b5f46ac319190fbf59ec5c30b570a Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Fri, 28 Aug 2015 20:49:31 -0400 Subject: [PATCH] dnpds40: Don't allow BUFCNTRL on DS80D when not using roll media. --- backend_dnpds40.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend_dnpds40.c b/backend_dnpds40.c index e7b1a89..c7f6124 100644 --- a/backend_dnpds40.c +++ b/backend_dnpds40.c @@ -990,10 +990,15 @@ static int dnpds40_main_loop(void *vctx, int copies) { snprintf(buf, sizeof(buf), "%08d", 1); if (ctx->buffctrl_offset) { memcpy(ctx->buffctrl_offset, buf, 8); - } else { // XXX disable on DS80D if mcut >= 100 - dnpds40_build_cmd(&cmd, "CNTRL", "BUFFCNTRL", 8); - if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)buf, 8))) - return CUPS_BACKEND_FAILED; + } else { + /* DS80D does not support BUFFCNTRL when using + cut media; all others support this */ + if (ctx->type != P_DNP_DS80D || + ctx->multicut < 100) { + dnpds40_build_cmd(&cmd, "CNTRL", "BUFFCNTRL", 8); + if ((ret = dnpds40_do_cmd(ctx, &cmd, (uint8_t*)buf, 8))) + return CUPS_BACKEND_FAILED; + } } }