From 9ab2b735bbd45ea62185fe202ac6e4c3520cd9e5 Mon Sep 17 00:00:00 2001 From: Till Kamppeter Date: Fri, 22 Oct 2021 21:20:52 +0200 Subject: [PATCH] libcupsfilters: In ieee1284NormalizeMakeAndModel() fix parsing device IDs Some IEEE-1284 device IDs have spaces before and after the manufacturer and model names. These need to be removed when generating make-and-model strings for display, sorting, ... THis especially leads to duplicate manufacturer names (extra mention of manufacturer in model name) not being recognized and removed. --- cupsfilters/ieee1284.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cupsfilters/ieee1284.c b/cupsfilters/ieee1284.c index ed0e52979..1bcbeddcc 100644 --- a/cupsfilters/ieee1284.c +++ b/cupsfilters/ieee1284.c @@ -787,6 +787,7 @@ ieee1284NormalizeMakeAndModel( bufptr = buffer; while (*makeptr != ':') makeptr ++; makeptr ++; + while (isspace(*makeptr)) makeptr ++; while (*makeptr != ';' && *makeptr != '\0' && bufptr < buffer + bufsize - 1) { @@ -794,6 +795,7 @@ ieee1284NormalizeMakeAndModel( makeptr ++; bufptr ++; } + while (isspace(*(bufptr - 1))) bufptr --; if (bufptr < buffer + bufsize - 1) { *bufptr = ' '; @@ -803,6 +805,7 @@ ieee1284NormalizeMakeAndModel( makeptr = bufptr; while (*modelptr != ':') modelptr ++; modelptr ++; + while (isspace(*modelptr)) modelptr ++; while (*modelptr != ';' && *modelptr != '\0' && bufptr < buffer + bufsize - 1) { @@ -810,6 +813,7 @@ ieee1284NormalizeMakeAndModel( modelptr ++; bufptr ++; } + while (isspace(*(bufptr - 1))) bufptr --; *bufptr = '\0'; if (!nomakemodel && makeptr != bufptr) modelptr = makeptr; -- 2.47.3