diff -Nur gnome-cups-manager-0.31/libgnomecups/gnome-cups-ui-driver.c gnome-cups-manager-0.31.new/libgnomecups/gnome-cups-ui-driver.c --- gnome-cups-manager-0.31/libgnomecups/gnome-cups-ui-driver.c 2006-05-18 11:58:51.000000000 +0200 +++ libgnomecups/gnome-cups-ui-driver.c 2006-05-18 11:58:56.000000000 +0200 @@ -267,6 +267,7 @@ static char const *dymo[] = { "Dymo-CoStar", "DYMO", NULL }; static char const *canon[] = { "Canon Inc. (Kosugi Offic", "CANON", NULL }; static char const *generic[] = { "Raw Queue", "Postscript", NULL }; + static char const *oce[] = { "Océ", "Océ", NULL }; alias_to_vendor_map = g_hash_table_new (str_case_hash, str_case_equal); vendor_to_alias_map = g_hash_table_new (str_case_hash, str_case_equal); @@ -279,6 +280,7 @@ add_vendor_aliases ("HP", hp); add_vendor_aliases ("Dymo", dymo); add_vendor_aliases ("Canon", canon); + add_vendor_aliases ("Oce", oce); add_vendor_aliases ("Generic", generic); } @@ -325,16 +327,26 @@ * - CUPS+Gimp-Print vm.n.o' * The filename may have a subdirectory--treat the subdir as a language, and set * the driver string accordingly. Use the regular driver string for the "C" language. */ - } else if (NULL != (tmp = strstr (without_vendor, " - CUPS+Gimp-Print v"))) { + } else if (NULL != (tmp = strstr (without_vendor, " - CUPS+Gimp-Print v")) + || NULL != (tmp = strstr (without_vendor, " - CUPS+Gutenprint v"))) { + char *ppd_filename = g_strdup(ppd->filename); + char *basename = strrchr (ppd_filename, '/'); + if (basename) + *basename++ = '\0'; + language = strrchr (ppd_filename, '/'); + if (language) + *language++ = '\0'; + + //printf("FILENAME: %s | %s | %s\n", ppd_filename, language, basename); model = g_strndup (without_vendor, tmp - without_vendor); - if((NULL != (language_position = strstr (ppd->filename, "/"))) && - strncmp ("C/", ppd->filename, 2) && - strncmp ("stp/", ppd->filename, 4)) { - language = g_strndup (ppd->filename, language_position - ppd->filename); - driver = g_strdup_printf (_("High Quality Image (GIMP-Print) (%s)"), language); - g_free(language); + if (language && + strcmp("C", language) && + (NULL != (language_position = strstr (ppd->filename, "/"))) && + strncmp ("C/", ppd->filename, 2) && + strncmp ("stp/", ppd->filename, 4)) { + driver = g_strdup_printf (_("High Quality Image (Gutenprint) (%s)"), language); } else { - driver = g_strdup (_("High Quality Image (GIMP-Print)")); + driver = g_strdup (_("High Quality Image (Gutenprint)")); } /* RH style entries @@ -364,6 +376,7 @@ if (without_vendor != ppd->nickname) g_free (without_vendor); + //printf("FILENAME: %s | %s | %s\n", ppd->filename, ppd->model, ppd->driver); } static int