Package: gimp
Version: 2.2.6-1
Debian-3.1
printing system: lpr (with lpstat)

Print plug-in duplicates printer and forgets printer settings. See bug
#149324 for gimp1.2-print of Debian-3.0.

Bug is fixed upstream in file print.c of gimp-print-4.2.7 (and
-4.2.5), but building them --with-gimp does not work on Debian-3.1 (->
empty Makefiles), although it worked for -4.2.5 on Debian-3.0. Print
plugin is now provided by the gimp deb-package, but that contains a
print.c which does not have the bugfix, although the files version
number is higher than in gimp-print-4.2.7.

These are the bugfix lines with some context in gimp-print-4.2.7:

          case PRINTERS_LPC :
              if (!strncmp(line, "Press RETURN to continue", 24) &&
                  (ptr = strchr(line, ':')) != NULL &&
                  (strlen(ptr) - 2) < (ptr - line))
                strcpy(line, ptr + 2);

              if ((ptr = strchr(line, ':')) != NULL &&
                  line[0] != ' ' && line[0] != '\t')
              {
                int printer_exists = 0;
                *ptr = '\0';
                /* check for duplicate printers--yes, they can happen,
                 * and it makes gimp-print forget everything about the
                 * printer */
                for (i = 1; i < plist_count; i++)
                  if (strcmp(line, plist[i].name) == 0)
                    {
                      printer_exists = 1;
                      break;
                    }
                if (printer_exists)
                  break;

                check_plist(plist_count + 1);

and:

          case PRINTERS_LPSTAT :
              if ((sscanf(line, "printer %127s", name) == 1) ||
                  (sscanf(line, "Printer: %127s", name) == 1))
              {
                int printer_exists = 0;
                /* check for duplicate printers--yes, they can happen,
                 * and it makes gimp-print forget everything about the
                 * printer */
                for (i = 1; i < plist_count; i++)
                  if (strcmp(name, plist[i].name) == 0)
                    {
                      printer_exists = 1;
                      break;
                    }
                if (printer_exists)
                  break;
                check_plist(plist_count + 1);

Regards,

Olaf


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to