diff options
Diffstat (limited to 'arch/common/printers.h')
-rw-r--r-- | arch/common/printers.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/arch/common/printers.h b/arch/common/printers.h index 01beb5dd..3daf28e6 100644 --- a/arch/common/printers.h +++ b/arch/common/printers.h @@ -1,6 +1,6 @@ /* * HardInfo - Displays System Information - * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br> + * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@linuxmag.com.br> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,11 +17,12 @@ */ void -scan_printers(void) +__scan_printers(void) { static GModule *cups = NULL; static int (*cupsGetPrinters) (char ***printers) = NULL; static char *(*cupsGetDefault) (void) = NULL; + static char *libcups[] = { "libcups", "libcups.so", "libcups.so.1", @@ -47,11 +48,9 @@ scan_printers(void) } if (!g_module_symbol(cups, "cupsGetPrinters", (gpointer) & cupsGetPrinters) - || !g_module_symbol(cups, "cupsGetDefault", - (gpointer) & cupsGetDefault)) { - printer_list = - g_strdup("[Printers]\n" - "No suitable CUPS library found="); + || !g_module_symbol(cups, "cupsGetDefault", (gpointer) & cupsGetDefault)) { + printer_list = g_strdup("[Printers]\n" + "No suitable CUPS library found="); g_module_close(cups); return; } @@ -63,19 +62,22 @@ scan_printers(void) noprinters = cupsGetPrinters(&printers); default_printer = cupsGetDefault(); - + + if (!default_printer) { + default_printer = ""; + } + if (noprinters > 0) { printer_list = g_strdup_printf("[Printers (CUPS)]\n"); for (i = 0; i < noprinters; i++) { printer_list = g_strconcat(printer_list, printers[i], - !strcmp(default_printer, - printers[i]) ? + g_str_equal(default_printer, printers[i]) ? "=<i>(Default)</i>\n" : "=\n", NULL); g_free(printers[i]); } } else { printer_list = g_strdup("[Printers]\n" - "No printers found"); + "No printers found=\n"); } } |