|
@ -1,99 +0,0 @@ |
|
|
From a380fb089499f6b5192c07ae2feaa3376997382f Mon Sep 17 00:00:00 2001 |
|
|
|
|
|
From: Olaf Meeuwissen <paddy-hack@member.fsf.org> |
|
|
|
|
|
Date: Sun, 13 Sep 2020 18:47:32 +0900 |
|
|
|
|
|
Subject: [PATCH] pixma: Restore old behaviour in case XML support is missing |
|
|
|
|
|
|
|
|
|
|
|
Fixes #345. |
|
|
|
|
|
---
|
|
|
|
|
|
backend/pixma/pixma_common.c | 4 ++-- |
|
|
|
|
|
backend/pixma/pixma_common.h | 2 ++ |
|
|
|
|
|
backend/pixma/pixma_mp150.c | 8 ++++++++ |
|
|
|
|
|
backend/pixma/pixma_mp800.c | 8 ++++++++ |
|
|
|
|
|
4 files changed, 20 insertions(+), 2 deletions(-) |
|
|
|
|
|
|
|
|
|
|
|
--- a/backend/pixma/pixma_common.c
|
|
|
|
|
|
+++ b/backend/pixma/pixma_common.c
|
|
|
|
|
|
@@ -56,8 +56,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(HAVE_LIBXML2) |
|
|
|
|
|
# include <libxml/parser.h> |
|
|
|
|
|
-#else
|
|
|
|
|
|
-# error "The pixma backend requires libxml2"
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#include "pixma_rename.h" |
|
|
|
|
|
@@ -1241,6 +1239,7 @@ pixma_get_device_status (pixma_t * s, pi
|
|
|
|
|
|
return s->ops->get_status (s, status); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
+#if defined(HAVE_LIBXML2)
|
|
|
|
|
|
static const char * |
|
|
|
|
|
format_xml_response(const char *resp_details) |
|
|
|
|
|
{ |
|
|
|
|
|
@@ -1334,3 +1333,4 @@ clean:
|
|
|
|
|
|
xmlFreeDoc(doc); |
|
|
|
|
|
return status; |
|
|
|
|
|
} |
|
|
|
|
|
+#endif
|
|
|
|
|
|
--- a/backend/pixma/pixma_common.h
|
|
|
|
|
|
+++ b/backend/pixma/pixma_common.h
|
|
|
|
|
|
@@ -205,7 +205,9 @@ uint8_t *pixma_newcmd (pixma_cmdbuf_t *,
|
|
|
|
|
|
int pixma_exec (pixma_t *, pixma_cmdbuf_t *); |
|
|
|
|
|
int pixma_exec_short_cmd (pixma_t *, pixma_cmdbuf_t *, unsigned cmd); |
|
|
|
|
|
int pixma_map_status_errno (unsigned status); |
|
|
|
|
|
+#if defined(HAVE_LIBXML2)
|
|
|
|
|
|
int pixma_parse_xml_response(const char *xml_message); |
|
|
|
|
|
+#endif
|
|
|
|
|
|
/**@}*/ |
|
|
|
|
|
|
|
|
|
|
|
#define pixma_fill_checksum(start, end) do { \ |
|
|
|
|
|
--- a/backend/pixma/pixma_mp150.c
|
|
|
|
|
|
+++ b/backend/pixma/pixma_mp150.c
|
|
|
|
|
|
@@ -322,6 +322,10 @@
|
|
|
|
|
|
<ivec:param_set servicetype=\"scan\"><ivec:jobID>00000001</ivec:jobID>\ |
|
|
|
|
|
</ivec:param_set></ivec:contents></cmd>" |
|
|
|
|
|
|
|
|
|
|
|
+#if !defined(HAVE_LIBXML2)
|
|
|
|
|
|
+#define XML_OK "<ivec:response>OK</ivec:response>"
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
+
|
|
|
|
|
|
enum mp150_state_t |
|
|
|
|
|
{ |
|
|
|
|
|
state_idle, |
|
|
|
|
|
@@ -459,7 +463,11 @@ send_xml_dialog (pixma_t * s, const char
|
|
|
|
|
|
PDBG (pixma_dbg (10, "XML message sent to scanner:\n%s\n", xml_message)); |
|
|
|
|
|
PDBG (pixma_dbg (10, "XML response back from scanner:\n%s\n", mp->cb.buf)); |
|
|
|
|
|
|
|
|
|
|
|
+#if defined(HAVE_LIBXML2)
|
|
|
|
|
|
return pixma_parse_xml_response((const char*)mp->cb.buf) == PIXMA_STATUS_OK; |
|
|
|
|
|
+#else
|
|
|
|
|
|
+ return (strcasestr ((const char *) mp->cb.buf, XML_OK) != NULL);
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int |
|
|
|
|
|
--- a/backend/pixma/pixma_mp800.c
|
|
|
|
|
|
+++ b/backend/pixma/pixma_mp800.c
|
|
|
|
|
|
@@ -152,6 +152,10 @@
|
|
|
|
|
|
<ivec:param_set servicetype=\"scan\"><ivec:jobID>00000001</ivec:jobID>\ |
|
|
|
|
|
</ivec:param_set></ivec:contents></cmd>" |
|
|
|
|
|
|
|
|
|
|
|
+#if !defined(HAVE_LIBXML2)
|
|
|
|
|
|
+#define XML_OK "<ivec:response>OK</ivec:response>"
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
+
|
|
|
|
|
|
enum mp810_state_t |
|
|
|
|
|
{ |
|
|
|
|
|
state_idle, |
|
|
|
|
|
@@ -291,7 +295,11 @@ static int send_xml_dialog (pixma_t * s,
|
|
|
|
|
|
PDBG(pixma_dbg (10, "XML message sent to scanner:\n%s\n", xml_message)); |
|
|
|
|
|
PDBG(pixma_dbg (10, "XML response back from scanner:\n%s\n", mp->cb.buf)); |
|
|
|
|
|
|
|
|
|
|
|
+#if defined(HAVE_LIBXML2)
|
|
|
|
|
|
return pixma_parse_xml_response((const char*)mp->cb.buf) == PIXMA_STATUS_OK; |
|
|
|
|
|
+#else
|
|
|
|
|
|
+ return (strcasestr ((const char *) mp->cb.buf, XML_OK) != NULL);
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void new_cmd_tpu_msg (pixma_t *s, pixma_cmdbuf_t * cb, uint16_t cmd) |
|
|
|