summaryrefslogtreecommitdiff
path: root/src/cups
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2009-08-02 12:01:21 +0100
committerRoger Leigh <rleigh@debian.org>2009-08-02 12:01:21 +0100
commit0f09a5be038c93c1bd5ca2988e152345bbf74c00 (patch)
tree279995ae9eece33b9b05cd82993f4fce98356fe8 /src/cups
parenta68ece422e0be1a0101dae2fa2408ef0e533c2e9 (diff)
Imported Upstream version 5.2.4
Diffstat (limited to 'src/cups')
-rw-r--r--src/cups/Makefile.am5
-rw-r--r--src/cups/Makefile.in36
-rw-r--r--src/cups/cups-genppdupdate.in54
-rw-r--r--src/cups/genppd.c81
-rw-r--r--src/cups/i18n.c12
-rw-r--r--src/cups/i18n.h10
6 files changed, 136 insertions, 62 deletions
diff --git a/src/cups/Makefile.am b/src/cups/Makefile.am
index c093bde..bebc47f 100644
--- a/src/cups/Makefile.am
+++ b/src/cups/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.118 2008/09/22 03:10:45 easysw Exp $
+## $Id: Makefile.am,v 1.119 2009/04/11 16:16:20 rlk Exp $
## Copyright (C) 2000 Roger Leigh
##
## This program is free software; you can redistribute it and/or modify
@@ -182,10 +182,11 @@ all-local: $(INSTALL_DATA_LOCAL_DEPS)
ppd: ppd-stamp
ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(top_srcdir)/src/xml/xml-stamp
+ $(MAKE) ppd-stamp-pre
$(MAKE) ppd-stamp-phony
touch ppd-stamp
-ppd-stamp-phony: ppd-stamp-pre $(PPD)
+ppd-stamp-phony: $(PPD)
ppd-stamp-pre:
-$(RM) -r ppd
diff --git a/src/cups/Makefile.in b/src/cups/Makefile.in
index 4bbd121..29ce8e8 100644
--- a/src/cups/Makefile.in
+++ b/src/cups/Makefile.in
@@ -52,11 +52,14 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
- $(top_srcdir)/m4/stp.m4 $(top_srcdir)/m4/stp_cups.m4 \
- $(top_srcdir)/m4/stp_gimp.m4 $(top_srcdir)/m4/stp_option.m4 \
- $(top_srcdir)/m4/stp_release.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stp.m4 \
+ $(top_srcdir)/m4/stp_cups.m4 $(top_srcdir)/m4/stp_gimp.m4 \
+ $(top_srcdir)/m4/stp_option.m4 $(top_srcdir)/m4/stp_release.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/scripts/mkinstalldirs
@@ -175,10 +178,6 @@ CUPS_CFLAGS = @CUPS_CFLAGS@
CUPS_CONFIG = @CUPS_CONFIG@
CUPS_LIBS = @CUPS_LIBS@
CUPS_PPD_PS_LEVEL = @CUPS_PPD_PS_LEVEL@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DB2HTML = @DB2HTML@
DB2PDF = @DB2PDF@
@@ -188,16 +187,15 @@ DEPDIR = @DEPDIR@
DIALOG = @DIALOG@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
DVIPDF = @DVIPDF@
DVIPS = @DVIPS@
-ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
FIND = @FIND@
FOOMATIC_CONFIGURE = @FOOMATIC_CONFIGURE@
FOOMATIC_KITLOAD = @FOOMATIC_KITLOAD@
@@ -242,6 +240,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
@@ -253,6 +252,7 @@ LIBREADLINE_DEPS = @LIBREADLINE_DEPS@
LIBS = $(INTLLIBS) @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIPO = @LIPO@
LN_S = @LN_S@
LTALLOCA = @LTALLOCA@
LTLIBICONV = @LTLIBICONV@
@@ -265,8 +265,12 @@ MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
+NM = @NM@
NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = cups
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -300,8 +304,7 @@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -346,6 +349,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -358,6 +362,7 @@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS)
@@ -1087,10 +1092,11 @@ all-local: $(INSTALL_DATA_LOCAL_DEPS)
ppd: ppd-stamp
ppd-stamp: cups-genppd.@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@ $(top_srcdir)/src/xml/xml-stamp
+ $(MAKE) ppd-stamp-pre
$(MAKE) ppd-stamp-phony
touch ppd-stamp
-ppd-stamp-phony: ppd-stamp-pre $(PPD)
+ppd-stamp-phony: $(PPD)
ppd-stamp-pre:
-$(RM) -r ppd
diff --git a/src/cups/cups-genppdupdate.in b/src/cups/cups-genppdupdate.in
index 48324ee..1286c45 100644
--- a/src/cups/cups-genppdupdate.in
+++ b/src/cups/cups-genppdupdate.in
@@ -1,5 +1,5 @@
#! @PERL@ -w
-# $Id: cups-genppdupdate.in,v 1.53 2008/09/22 11:04:24 rlk Exp $
+# $Id: cups-genppdupdate.in,v 1.57 2009/06/07 02:34:55 rlk Exp $
# Update CUPS PPDs for Gutenprint queues.
# Copyright (C) 2002-2003 Roger Leigh (rleigh@debian.org)
#
@@ -20,8 +20,11 @@
use strict;
use Getopt::Std;
use Fcntl qw(:mode);
+use FileHandle;
+use IPC::Open2;
sub parse_options ();
+sub get_driver_version ();
sub update_ppd ($); # Original PPD filename
sub get_ppd_fh ($$$$$); # Return contents of desired PPD
sub find_ppd ($$$$); # Gutenprint Filename, driver, language (e.g. en, sv),
@@ -68,9 +71,11 @@ my @languages = qw(Global C @ALL_LINGUAS@);
my $serverdir = "@cups_conf_serverbin@";
my $driver_bin = "$serverdir/driver/gutenprint.$version";
my $driver_version = "";
+my $server_multicat = 0;
+my $server_multicat_initialized = 0;
+
if (-x $driver_bin) {
- $driver_version = `$driver_bin VERSION`;
- chomp $driver_version;
+ get_driver_version();
}
$Getopt::Std::STANDARD_HELP_VERSION = 1;
@@ -222,6 +227,24 @@ sub VERSION_MESSAGE($;$$$) {
sub help() {
HELP_MESSAGE(\*STDOUT);
}
+
+sub check_multicat() {
+}
+
+sub get_driver_version() {
+ open(DBIN, "$driver_bin org.gutenprint.extensions 2>/dev/null |") or return 0;
+ my ($line);
+ $server_multicat = 0;
+ while ($line = <DBIN>) {
+ if ($line =~ /^org.gutenprint.multicat$/) {
+ $server_multicat = 1;
+ last;
+ }
+ }
+ close DBIN;
+ $driver_version = `$driver_bin VERSION`;
+ chomp $driver_version;
+}
sub parse_options () {
if (!getopts('d:hnqs:vNo:p:P:r:ifl:')) {
@@ -259,6 +282,7 @@ sub parse_options () {
if (-d $opt_s) {
$ppd_base_dir = "$opt_s";
$driver_bin = "";
+ $server_multicat = 0;
$use_static_ppd = "yes";
} else {
die "$opt_s: invalid directory: $!\n";
@@ -272,9 +296,8 @@ sub parse_options () {
# for an exact match.
$file_version = "\"$version";
if (-x $driver_bin) {
- $driver_version = `$driver_bin VERSION`;
+ get_driver_version();
$use_static_ppd = "no";
- chomp $driver_version;
$file_version = "\"$driver_version\"\$";
} elsif (! -d $ppd_base_dir && ! -l $ppd_base_dir) {
die "Gutenprint $version does not appear to be installed!\n";
@@ -285,6 +308,7 @@ sub parse_options () {
if (-d $opt_s) {
$ppd_base_dir = "$opt_s";
$driver_bin = "";
+ $server_multicat = 0;
$driver_version = "";
$use_static_ppd = "yes";
}
@@ -303,8 +327,7 @@ sub parse_options () {
if ($opt_P) {
if (-x $opt_P) {
$driver_bin = "$opt_P";
- $driver_version = `$driver_bin VERSION`;
- chomp $driver_version;
+ get_driver_version();
$use_static_ppd = "no";
}
else {
@@ -356,7 +379,15 @@ sub get_ppd_fh($$$$$) {
foreach $url (@url_list) {
$new_ppd_filename = $url;
if ($debug & 8) {
- print "Trying $driver_bin cat $url for $driver, $simplified, $locale, $region\n";
+ print "Trying ", (! $server_multicat ? "$driver_bin cat " : ""), "$url for $driver, $simplified, $locale, $region\n";
+ }
+ if ($server_multicat) {
+ if (! $server_multicat_initialized) {
+ my ($pid) = open2(*Reader, *Writer, "$driver_bin org.gutenprint.multicat");
+ $server_multicat_initialized = 1;
+ }
+ print Writer "$url\n";
+ return ($new_ppd_filename, \*Reader);
}
if (open PPD, "$driver_bin cat $url |") {
return ($new_ppd_filename, \*PPD);
@@ -491,11 +522,11 @@ sub update_ppd ($) {
print "Update PPD $ppd_source_filename from $new_ppd_filename [nyq]? ";
my $input = readline(*STDIN);
if ($input =~ /^q/i) {
- close $source_fd;
+ close $source_fd if !$server_multicat;
print "Skipping all...\n";
return -2;
} elsif (! ($input =~ /^y/i)) {
- close $source_fd;
+ close $source_fd if !$server_multicat;
print "Skipping...\n";
return -1;
}
@@ -511,7 +542,7 @@ sub update_ppd ($) {
# Close original and temporary files...
close ORIG;
- if (! close $source_fd) {
+ if (! $server_multicat && ! close $source_fd) {
print "Unable to retrieve new PPD file: $!\n";
return 0;
}
@@ -808,6 +839,7 @@ sub get_ppd_data(*$$$$$) {
if ($resolutions || $types || $opts || $defaults || $data) {
while (<$fh>) {
+ last if $_ eq "*%*%EOFEOF\n";
$source_data .= $_ if ($data);
chomp;
if (($types || $opts) && m/^\*OpenUI/) {
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index 580c59c..2af44a6 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,5 +1,5 @@
-/*
- * "$Id: genppd.c,v 1.171 2008/12/05 03:27:20 easysw Exp $"
+ /*
+ * "$Id: genppd.c,v 1.178 2009/07/18 00:55:45 rlk Exp $"
*
* PPD file generation program for the CUPS drivers.
*
@@ -161,7 +161,7 @@ const char *parameter_level_names[] =
*/
#ifdef CUPS_DRIVER_INTERFACE
-static int cat_ppd(int argc, char **argv);
+static int cat_ppd(const char *uri);
static int list_ppds(const char *argv0);
#else /* !CUPS_DRIVER_INTERFACE */
static int generate_ppd(const char *prefix, int verbose,
@@ -176,10 +176,12 @@ static char **getlangs(void);
static int is_special_option(const char *name);
static void print_group_close(gzFile fp, stp_parameter_class_t p_class,
stp_parameter_level_t p_level,
- const char *language, stp_string_list_t *po);
+ const char *language,
+ const stp_string_list_t *po);
static void print_group_open(gzFile fp, stp_parameter_class_t p_class,
stp_parameter_level_t p_level,
- const char *language, stp_string_list_t *po);
+ const char *language,
+ const stp_string_list_t *po);
static int write_ppd(gzFile fp, const stp_printer_t *p,
const char *language, const char *ppd_location,
int simplified);
@@ -196,6 +198,13 @@ static int write_ppd(gzFile fp, const stp_printer_t *p,
* 'main()' - Process files on the command-line...
*/
+const char slang_c[] = "LANG=C";
+const char slcall_c[] = "LC_ALL=C";
+const char slcnumeric_c[] = "LC_NUMERIC=C";
+char lang_c[sizeof(slang_c) + 1];
+char lcall_c[sizeof(slcall_c) + 1];
+char lcnumeric_c[sizeof(slcnumeric_c) + 1];
+
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
@@ -204,9 +213,12 @@ main(int argc, /* I - Number of command-line arguments */
* Force POSIX locale, since stp_init incorrectly calls setlocale...
*/
- putenv((char *)"LANG=C");
- putenv((char *)"LC_ALL=C");
- putenv((char *)"LC_NUMERIC=C");
+ strcpy(lang_c, slang_c);
+ strcpy(lcall_c, slcall_c);
+ strcpy(lcnumeric_c, slcnumeric_c);
+ putenv(lang_c);
+ putenv(lcall_c);
+ putenv(lcnumeric_c);
/*
* Initialise libgutenprint
@@ -221,12 +233,34 @@ main(int argc, /* I - Number of command-line arguments */
if (argc == 2 && !strcmp(argv[1], "list"))
return (list_ppds(argv[0]));
else if (argc == 3 && !strcmp(argv[1], "cat"))
- return (cat_ppd(argc, argv));
+ return (cat_ppd(argv[2]));
+ else if (argc == 2 && !strcmp(argv[1], "org.gutenprint.multicat"))
+ {
+ char buf[1024];
+ int status = 0;
+ while (status == 0 && fgets(buf, sizeof(buf) - 1, stdin))
+ {
+ size_t len = strlen(buf);
+ if (len == 0)
+ continue;
+ if (buf[len - 1] == '\n')
+ buf[len - 1] = '\0';
+ status = cat_ppd(buf);
+ fputs("*%*%EOFEOF\n", stdout);
+ (void) fflush(stdout);
+ }
+ return status;
+ }
else if (argc == 2 && !strcmp(argv[1], "VERSION"))
{
printf("%s\n", VERSION);
return (0);
}
+ else if (argc == 2 && !strcasecmp(argv[1], "org.gutenprint.extensions"))
+ {
+ printf("org.gutenprint.multicat");
+ return (0);
+ }
else
{
fprintf(stderr, "Usage: %s list\n", argv[0]);
@@ -241,9 +275,8 @@ main(int argc, /* I - Number of command-line arguments */
*/
static int /* O - Exit status */
-cat_ppd(int argc, char **argv) /* I - Driver URI */
+cat_ppd(const char *uri) /* I - Driver URI */
{
- const char *uri = argv[2];
char scheme[64], /* URI scheme */
userpass[32], /* URI user/pass (unused) */
hostname[32], /* URI hostname */
@@ -800,7 +833,7 @@ print_group(
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
const char *language, /* I - Language */
- stp_string_list_t *po) /* I - Message catalog */
+ const stp_string_list_t *po) /* I - Message catalog */
{
char buf[64];
const char *class = stp_i18n_lookup(po, parameter_class_names[p_class]);
@@ -816,7 +849,7 @@ print_group(
for (langnum = 0; all_langs[langnum]; langnum ++)
{
- stp_string_list_t *altpo;
+ const stp_string_list_t *altpo;
lang = all_langs[langnum];
@@ -846,7 +879,7 @@ print_group_close(
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
const char *language, /* I - language */
- stp_string_list_t *po) /* I - Message catalog */
+ const stp_string_list_t *po) /* I - Message catalog */
{
print_group(fp, "Close", p_class, p_level, NULL, NULL);
}
@@ -862,7 +895,7 @@ print_group_open(
stp_parameter_class_t p_class, /* I - Option class */
stp_parameter_level_t p_level, /* I - Option level */
const char *language, /* I - language */
- stp_string_list_t *po) /* I - Message catalog */
+ const stp_string_list_t *po) /* I - Message catalog */
{
print_group(fp, "Open", p_class, p_level, language ? language : "C", po);
}
@@ -911,7 +944,7 @@ write_ppd(
char *default_resolution = NULL; /* Default resolution mapped name */
stp_string_list_t *resolutions = stp_string_list_create();
char **all_langs = getlangs();/* All languages */
- stp_string_list_t *po = stp_i18n_load(language);
+ const stp_string_list_t *po = stp_i18n_load(language);
/* Message catalog */
@@ -1535,7 +1568,7 @@ write_ppd(
!stp_string_list_is_present(res_list, res_name))
{
resolution_ok = 1;
- stp_string_list_add_string(res_list, res_name, res_name);
+ stp_string_list_add_string(res_list, res_name, opt->text);
}
else if (tmp_ydpi > tmp_xdpi &&
tmp_ydpi < MAXIMUM_SAFE_PPD_Y_RESOLUTION)
@@ -1548,7 +1581,7 @@ write_ppd(
else
tmp_xdpi /= 2;
} while (!resolution_ok);
- stp_string_list_add_string(resolutions, res_name, res_name);
+ stp_string_list_add_string(resolutions, res_name, opt->text);
gzprintf(fp, "*Resolution %s/%s:\t\"<</HWResolution[%d %d]/cupsCompression %d>>setpagedevice\"\n",
res_name, stp_i18n_lookup(po, opt->text), xdpi, ydpi, i + 1);
if (strcmp(res_name, opt->name) != 0)
@@ -1760,7 +1793,7 @@ write_ppd(
{
gzprintf(fp, "*OpenUI *StpFine%s/%s %s: PickOne\n",
desc.name, stp_i18n_lookup(po, desc.text), _("Fine Adjustment"));
- gzprintf(fp, "*OPOptionHints Stp%s: \"hide\"\n",
+ gzprintf(fp, "*OPOptionHints StpFine%s: \"hide\"\n",
lparam->name);
gzprintf(fp, "*StpStpFine%s: %d %d %d %d %d %.3f %.3f %.3f\n",
desc.name, STP_PARAMETER_TYPE_INVALID, 0,
@@ -1860,7 +1893,7 @@ write_ppd(
*/
gzprintf(fp, "*CustomStp%s True: \"pop\"\n", desc.name);
- gzprintf(fp, "*ParamCustomStp%s Value/%s: 1 points %d %d\n\n",
+ gzprintf(fp, "*ParamCustomStp%s Value/%s: 1 int %d %d\n\n",
desc.name, _("Value"),
desc.bounds.dimension.lower,
desc.bounds.dimension.upper);
@@ -1878,6 +1911,7 @@ write_ppd(
print_group_close(fp, j, k, language, po);
}
}
+ stp_parameter_list_destroy(param_list);
stp_describe_parameter(v, "ImageType", &desc);
if (desc.is_active && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
@@ -1906,7 +1940,7 @@ write_ppd(
*/
const char *lang;
- stp_string_list_t *altpo;
+ const stp_string_list_t *altpo;
int langnum;
for (langnum = 0; all_langs[langnum]; langnum ++)
@@ -2240,6 +2274,7 @@ write_ppd(
}
}
}
+ stp_parameter_list_destroy(param_list);
stp_describe_parameter(v, "ImageType", &desc);
if (desc.is_active && desc.p_type == STP_PARAMETER_TYPE_STRING_LIST)
{
@@ -2262,8 +2297,6 @@ write_ppd(
stp_free(default_resolution);
stp_string_list_destroy(resolutions);
- stp_parameter_list_destroy(param_list);
-
#undef _
#define _(x) x
@@ -2320,5 +2353,5 @@ write_ppd(
/*
- * End of "$Id: genppd.c,v 1.171 2008/12/05 03:27:20 easysw Exp $".
+ * End of "$Id: genppd.c,v 1.178 2009/07/18 00:55:45 rlk Exp $".
*/
diff --git a/src/cups/i18n.c b/src/cups/i18n.c
index 59406ec..81c4488 100644
--- a/src/cups/i18n.c
+++ b/src/cups/i18n.c
@@ -1,5 +1,5 @@
/*
- * "$Id: i18n.c,v 1.6 2008/08/16 16:56:06 rlk Exp $"
+ * "$Id: i18n.c,v 1.8 2009/04/11 19:05:12 rlk Exp $"
*
* Internationalization functions for CUPS drivers.
*
@@ -87,7 +87,7 @@ static stpi_i18n_t *stpi_pocache = NULL;
* 'stp_i18n_load()' - Load a message catalog for a locale.
*/
-stp_string_list_t * /* O - Message catalog */
+const stp_string_list_t * /* O - Message catalog */
stp_i18n_load(const char *locale) /* I - Locale name */
{
stp_string_list_t *po; /* Message catalog */
@@ -385,6 +385,8 @@ stp_i18n_load(const char *locale) /* I - Locale name */
stpi_pocache = pocache;
}
+ if (ic)
+ iconv_close(ic);
return (po);
}
@@ -395,7 +397,7 @@ stp_i18n_load(const char *locale) /* I - Locale name */
const char * /* O - Localized message */
stp_i18n_lookup(
- stp_string_list_t *po, /* I - Message catalog */
+ const stp_string_list_t *po, /* I - Message catalog */
const char *message) /* I - Message */
{
stp_param_string_t *param; /* Matching message */
@@ -414,7 +416,7 @@ stp_i18n_lookup(
void
stp_i18n_printf(
- stp_string_list_t *po, /* I - Message catalog */
+ const stp_string_list_t *po, /* I - Message catalog */
const char *message, /* I - Printf-style message */
...) /* I - Additional arguments as needed */
{
@@ -477,5 +479,5 @@ stpi_unquote(char *s) /* IO - Original string */
/*
- * End of "$Id: i18n.c,v 1.6 2008/08/16 16:56:06 rlk Exp $".
+ * End of "$Id: i18n.c,v 1.8 2009/04/11 19:05:12 rlk Exp $".
*/
diff --git a/src/cups/i18n.h b/src/cups/i18n.h
index f5ae7af..a75510b 100644
--- a/src/cups/i18n.h
+++ b/src/cups/i18n.h
@@ -1,5 +1,5 @@
/*
- * "$Id: i18n.h,v 1.1 2008/08/13 07:35:52 easysw Exp $"
+ * "$Id: i18n.h,v 1.3 2009/04/11 19:05:12 rlk Exp $"
*
* Internationalization definitions for CUPS drivers.
*
@@ -35,13 +35,13 @@
* Prototypes...
*/
-extern stp_string_list_t *stp_i18n_load(const char *locale);
-extern const char *stp_i18n_lookup(stp_string_list_t *po,
+extern const stp_string_list_t *stp_i18n_load(const char *locale);
+extern const char *stp_i18n_lookup(const stp_string_list_t *po,
const char *message);
-extern void stp_i18n_printf(stp_string_list_t *po,
+extern void stp_i18n_printf(const stp_string_list_t *po,
const char *message, ...);
/*
- * End of "$Id: i18n.h,v 1.1 2008/08/13 07:35:52 easysw Exp $".
+ * End of "$Id: i18n.h,v 1.3 2009/04/11 19:05:12 rlk Exp $".
*/