summaryrefslogtreecommitdiff
path: root/src/cups
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2009-01-04 18:17:34 +0000
committerRoger Leigh <rleigh@debian.org>2009-01-04 18:17:34 +0000
commita68ece422e0be1a0101dae2fa2408ef0e533c2e9 (patch)
tree5d93ef65025dd086862fed887902ebaddc3d3291 /src/cups
parent15fd5cc391273464beef576568675599633a9827 (diff)
Imported Upstream version 5.2.3
Diffstat (limited to 'src/cups')
-rw-r--r--src/cups/genppd.c42
-rwxr-xr-xsrc/cups/test-rastertogutenprint.in8
2 files changed, 28 insertions, 22 deletions
diff --git a/src/cups/genppd.c b/src/cups/genppd.c
index 2325fbd..580c59c 100644
--- a/src/cups/genppd.c
+++ b/src/cups/genppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: genppd.c,v 1.170 2008/09/25 23:41:00 rlk Exp $"
+ * "$Id: genppd.c,v 1.171 2008/12/05 03:27:20 easysw Exp $"
*
* PPD file generation program for the CUPS drivers.
*
@@ -200,6 +200,13 @@ int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - 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");
/*
* Initialise libgutenprint
@@ -893,6 +900,7 @@ write_ppd(
min_height,
max_width,
max_height;
+ char dimstr[255]; /* Dimension string */
stp_parameter_t desc;
stp_parameter_list_t param_list;
const stp_param_string_t *opt;
@@ -1794,13 +1802,10 @@ write_ppd(
for (i = desc.bounds.dimension.lower;
i <= desc.bounds.dimension.upper; i++)
{
- /* FIXME
- * For now, just use mm; we'll fix it later
- * for the locale-appropriate setting.
- * --rlk 20040818
- */
- gzprintf(fp, "*Stp%s %d/%.1f mm: \"\"\n",
- desc.name, i, ((double) i) * 25.4 / 72);
+ snprintf(dimstr, sizeof(dimstr), _("%.1f mm"),
+ (double)i * 25.4 / 72.0);
+ gzprintf(fp, "*Stp%s %d/%s: \"\"\n",
+ desc.name, i, dimstr);
}
print_close_ui = 0;
@@ -2197,19 +2202,14 @@ write_ppd(
if (!desc.is_mandatory)
gzprintf(fp, "*%s.Stp%s %s/%s: \"\"\n", lang, desc.name,
"None", _("None"));
- if (localize_numbers)
+ /* Unlike the other fields, dimensions are not strictly numbers */
+ for (i = desc.bounds.dimension.lower;
+ i <= desc.bounds.dimension.upper; i++)
{
- for (i = desc.bounds.dimension.lower;
- i <= desc.bounds.dimension.upper; i++)
- {
- /* FIXME
- * For now, just use mm; we'll fix it later
- * for the locale-appropriate setting.
- * --rlk 20040818
- */
- gzprintf(fp, "*%s.Stp%s %d/%.1f mm: \"\"\n", lang,
- desc.name, i, ((double) i) * 25.4 / 72);
- }
+ snprintf(dimstr, sizeof(dimstr), _("%.1f mm"),
+ (double)i * 25.4 / 72.0);
+ gzprintf(fp, "*%s.Stp%s %d/%s: \"\"\n", lang,
+ desc.name, i, dimstr);
}
gzprintf(fp, "*%s.ParamCustomStp%s Value/%s: \"\"\n", lang,
desc.name, _("Value"));
@@ -2320,5 +2320,5 @@ write_ppd(
/*
- * End of "$Id: genppd.c,v 1.170 2008/09/25 23:41:00 rlk Exp $".
+ * End of "$Id: genppd.c,v 1.171 2008/12/05 03:27:20 easysw Exp $".
*/
diff --git a/src/cups/test-rastertogutenprint.in b/src/cups/test-rastertogutenprint.in
index 40e7b49..97ae27d 100755
--- a/src/cups/test-rastertogutenprint.in
+++ b/src/cups/test-rastertogutenprint.in
@@ -64,7 +64,7 @@ fi
version="@GUTENPRINT_MAJOR_VERSION@.@GUTENPRINT_MINOR_VERSION@";
cupsdir="@cups_conf_serverbin@/filter"
-if [ -x "$cupsdir/pstoraster" ] ; then
+if [ -x "$cupsdir/pstoraster" -o -x "$cupsdir/cgpdftoraster" ] ; then
pages='page-ranges=24-26 '
else
pages=''
@@ -84,6 +84,10 @@ cleanup() {
pdftops="`type -p pdftops`"
+if [ ! -n "$pdftops" -o ! -x "$pdftops" ] ; then
+ pdftops="`whence pdftops`"
+fi
+
if [ -n "$pdftops" -a ! -x "$cupsdir/cgpdftoraster" ] ; then
tfile=`mktemp`
trap cleanup 1 2 3 6 14 15 30
@@ -185,6 +189,8 @@ get_ppds() {
if [ -n "$make_ppds" -o ! -d ppd/C ] ; then
make ppd-nonls
+## Not all systems can work with gzipped PPDs
+ find ppd/C -name '*.ppd.gz' | xargs gunzip -f
fi
do_output() {