Re: Patch for print plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 15, 2000 at 08:09:37AM -0500, Robert L Krawitz wrote:

>    Here is a patch for the print plugin. The patch fixes an anoyance
>    with the print dialog: If you have lots of printers (we have about
>    50 here), it takes *several minutes* to open. Fix: Just use lpstat
>    -d -v (just list the names of the printers instead of checking if
>    they are enabled; the information is discarded anyway). Later, when
>    it becomes clear that we can use that info, we can reenable it
>    again (including some kind of caching and a progress report which
>    shows that Gimp is still doing something).
> 
> That patch AS IS isn't going to work.  On my system (using
> PrintPro/CUPS), lpstat -d -v prints out in a slightly different
> format:
> 
> $ lpstat -d -v
> system default destination: epson
> device for epson: parallel:/dev/lp0
> device for epson-big: parallel:/dev/lp0
> device for foo: /tmp/out
> device for null: /dev/null

Ok, then only the second word (for) seems to be stable (the third always seems
to be the printer name). Any other systems around ?

> Note that it uses "device" rather than "system".  If you want to
> figure out how to make it work in general, go ahead -- it's a
> reasonable idea for 3.0.
> 
> In the intermediate term, we're considering getting rid of all of this
> stuff and using some kind of printer definition dialog, partly because
> we haven't found any robust programmatic way of determining the list
> of printers on the system and partly because it's reasonable for users
> to want to define virtual printers with different combinations of
> settings.  Something like that's likely to make it into 3.2 (after
> having been in 3.1 for a while) as part of a general overhaul of the
> UI.
> 
> In the longer run, a more general solution to the printing problem is
> needed.

I agree. But the patch should be included nonetheless because it makes
printing with Gimp possible :-)

>    *** gimp-1.1.16/plug-ins/print/print.c~	Mon Jan 31 03:32:25 2000
>    --- gimp-1.1.16/plug-ins/print/print.c	Tue Feb  8 15:51:56 2000
>    ***************
>    *** 3146,3152 ****
>      #endif /* LPC_COMMAND */
> 
>      #ifdef LPSTAT_COMMAND
>    !   if ((pfile = popen(LPSTAT_COMMAND " -d -p", "r")) != NULL)
>        {
> 	 char name[17];	
> 
>    --- 3146,3152 ----
>      #endif /* LPC_COMMAND */
> 
>      #ifdef LPSTAT_COMMAND
>    !   if ((pfile = popen(LPSTAT_COMMAND " -v -d", "r")) != NULL)
>        {
> 	 char name[17];	
> 
>    ***************
>    *** 3153,3159 ****
> 	 while (fgets(line, sizeof(line), pfile) != NULL &&
> 		plist_count < MAX_PLIST)
> 	 {
>    !       if (sscanf(line, "printer %s", name) == 1)
> 	   {
> 	   strcpy(plist[plist_count].name, name);
> 	   sprintf(plist[plist_count].v.output_to, LP_COMMAND " -s -d%s", name);
>    --- 3153,3159 ----
> 	 while (fgets(line, sizeof(line), pfile) != NULL &&
> 		plist_count < MAX_PLIST)
> 	 {
>    !       if (sscanf(line, "system for %[^:]s:", name) == 1)
> 	   {
> 	   strcpy(plist[plist_count].name, name);
> 	   sprintf(plist[plist_count].v.output_to, LP_COMMAND " -s -d%s", name);

-- 
Dipl. Inf. (FH) Aaron "Optimizer" Digulla
"(to) optimize: Make a program faster by
improving the algorithms rather than by       
buying a faster machine."                     


[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux