summaryrefslogtreecommitdiff
path: root/print/ghostscript-gpl/files/patch-contrib__pcl3__eprn__gdeveprn.c
blob: 696feccb9a52b2148ea862060e8f6af19e9fcbf9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
--- contrib/pcl3/eprn/gdeveprn.c.orig	Thu Apr 26 01:27:24 2007
+++ contrib/pcl3/eprn/gdeveprn.c	Tue May 15 01:34:15 2007
@@ -95,6 +95,7 @@
 #ifdef EPRN_TRACE
 #include "gdebug.h"
 #endif	/* EPRN_TRACE */
+#include "gxstdio.h"
 
 /* Special headers for this device */
 #ifndef EPRN_NO_PAGECOUNTFILE
@@ -143,8 +144,8 @@
       "! eprn_get_initial_matrix(): code is still ms_none.\n");
 #endif
     if (eprn_set_page_layout(dev) != 0)
-      fputs("  Processing can't be stopped at this point although this error "
-	"occurred.\n", stderr);
+      eprintf("  Processing can't be stopped at this point although this error "
+	"occurred.\n");
       /* The current function has a signature without the ability to signal
 	 an error condition. */
   }
@@ -303,17 +304,17 @@
 
   Function: print_flags
 
-  Print a textual description of 'flags' on 'f'.
+  Print a textual description of 'flags' to the error stream.
 
 ******************************************************************************/
 
-static void print_flags(FILE *f, ms_MediaCode flags, const ms_Flag *user_flags)
+static void print_flags(ms_MediaCode flags, const ms_Flag *user_flags)
 {
   /* Non-standard flags first */
   if (user_flags != NULL) {
     while (user_flags->code != ms_none) {
       if (user_flags->code & flags) {
-	fputs(user_flags->name, f);
+	errprintf(user_flags->name);
 	flags &= ~user_flags->code;
       }
       user_flags++;
@@ -321,17 +322,17 @@
   }
 
   /* Standard substrings */
-  if (flags & MS_SMALL_FLAG) fputs(MS_SMALL_STRING, f);
-  if (flags & MS_BIG_FLAG  ) fputs(MS_BIG_STRING,   f);
-  if (flags & MS_EXTRA_FLAG) fputs(MS_EXTRA_STRING, f);
+  if (flags & MS_SMALL_FLAG) eprintf(MS_SMALL_STRING);
+  if (flags & MS_BIG_FLAG  ) eprintf(MS_BIG_STRING);
+  if (flags & MS_EXTRA_FLAG) eprintf(MS_EXTRA_STRING);
   flags &= ~(MS_SMALL_FLAG | MS_BIG_FLAG | MS_EXTRA_FLAG);
 
   /* Completeness check */
   if (flags & ~MS_TRANSVERSE_FLAG)
-    fprintf(f, "0x%04X", (unsigned int)(flags & ~MS_TRANSVERSE_FLAG));
+    eprintf1("0x%04X", (unsigned int)(flags & ~MS_TRANSVERSE_FLAG));
 
   /* Standard qualifier */
-  if (flags & MS_TRANSVERSE_FLAG) fputs("." MS_TRANSVERSE_STRING, f);
+  if (flags & MS_TRANSVERSE_FLAG) eprintf("." MS_TRANSVERSE_STRING);
 
   return;
 }
@@ -347,37 +348,37 @@
 
   If the derived device has set a flag mismatch error reporting function, the
   call will be passed to that function. Otherwise a general error message is
-  written on 'err'.
+  written through the graphics library's eprintf().
 
 ******************************************************************************/
 
-static void eprn_flag_mismatch(FILE *err, const struct s_eprn_Device *eprn,
+static void eprn_flag_mismatch(const struct s_eprn_Device *eprn,
   bool no_match)
 {
-  if (eprn->fmr != NULL) (*eprn->fmr)(err, eprn, no_match);
+  if (eprn->fmr != NULL) (*eprn->fmr)(eprn, no_match);
   else {
     const char *epref = eprn->CUPS_messages? CUPS_ERRPREF: "";
 
-    fprintf(err, "%s" ERRPREF "The %s does not support ",
+    eprintf2("%s" ERRPREF "The %s does not support ",
       epref, eprn->cap->name);
-    if (eprn->desired_flags == 0) fprintf(err, "an empty set of media flags");
+    if (eprn->desired_flags == 0) eprintf("an empty set of media flags");
     else {
-      fputs("the \"", err);
-      print_flags(err, eprn->desired_flags, eprn->flag_desc);
-      fputs("\" flag(s)", err);
+      eprintf("the \"");
+      print_flags(eprn->desired_flags, eprn->flag_desc);
+      eprintf("\" flag(s)");
     }
-    fprintf(err, "\n%s  (ignoring presence or absence of \"", epref);
+    eprintf1("\n%s  (ignoring presence or absence of \"", epref);
     {
       ms_MediaCode optional = MS_TRANSVERSE_FLAG;
       if (eprn->optional_flags != NULL) {
 	const ms_MediaCode *of = eprn->optional_flags;
 	while (*of != ms_none) optional |= *of++;
       }
-      print_flags(err, optional, eprn->flag_desc);
+      print_flags(optional, eprn->flag_desc);
     }
-    fputs("\") for ", err);
-    if (no_match) fputs("any", err); else fputs("this", err);
-    fputs(" page size.\n", err);
+    eprintf("\") for ");
+    if (no_match) eprintf("any"); else eprintf("this");
+    eprintf(" page size.\n");
   }
 
   return;
@@ -483,7 +484,7 @@
   the media flags, or the page descriptions have been changed.
 
   The function returns zero on success and a non-zero value otherwise.
-  In the latter case, an error message has been issued on stderr. This can only
+  In the latter case, an error message has been issued. This can only
   occur if the media size is not supported with the flags requested.
 
   On success, the following variables in the device structure are consistent:
@@ -615,21 +616,21 @@
     /* No discrete match */
     if (best_cmatch == NULL) {
       /* No match at all. */
-      fprintf(stderr, "%s" ERRPREF
+      eprintf3("%s" ERRPREF
 	"This document requests a page size of %.0f x %.0f bp.\n",
 	   epref, dev->MediaSize[0], dev->MediaSize[1]);
       if (eprn->cap->custom == NULL) {
 	/* The printer does not support custom page sizes */
 	if (eprn->media_overrides != NULL)
-	  fprintf(stderr,
+	  eprintf1(
 	    "%s  The media configuration file does not contain an entry for "
 	      " this size.\n", epref);
 	else
-	  fprintf(stderr, "%s  This size is not supported by the %s.\n",
+	  eprintf2("%s  This size is not supported by the %s.\n",
 	    epref, eprn->cap->name);
       }
       else
-	fprintf(stderr,
+	eprintf3(
 	  "%s  This size is not supported as a discrete size and it exceeds "
 	    "the\n"
 	  "%s  custom page size limits for the %s.\n",
@@ -637,7 +638,7 @@
       return -1;
     }
     if (eprn->media_overrides != NULL && best_cdmatch == NULL) {
-      fprintf(stderr, "%s" ERRPREF
+      eprintf6("%s" ERRPREF
 	"This document requests a page size of %.0f x %.0f bp\n"
 	"%s  but there is no entry for this size in the "
 	  "media configuration file\n"
@@ -692,7 +693,7 @@
   }
   /* If we've found a match, 'code' is no longer 'ms_none'. */
   if (eprn->code == ms_none) {
-    eprn_flag_mismatch(stderr, eprn, no_match);
+    eprn_flag_mismatch(eprn, no_match);
     return -1;
   }
 
@@ -762,7 +763,7 @@
 
       rc = gdev_prn_open((gx_device *)dev);
       if (rc < 0) {
-	fprintf(stderr, "%s" ERRPREF
+	eprintf2("%s" ERRPREF
 	  "Failure of gdev_prn_open(), code is %d.\n",
 	  epref, rc);
 	return rc;
@@ -944,13 +945,13 @@
       &eprn->black_levels, &eprn->non_black_levels) != 0) {
     gs_param_string str;
 
-    fprintf(stderr, "%s" ERRPREF "The requested combination of colour model (",
+    eprintf1("%s" ERRPREF "The requested combination of colour model (",
       epref);
     str.size = 0;
     if (eprn_get_string(eprn->colour_model, eprn_colour_model_list, &str) != 0)
       assert(0); /* Bug. No harm on NDEBUG because I've just set the size. */
-    fwrite(str.data, str.size, sizeof(str.data[0]), stderr);
-    fprintf(stderr, "),\n"
+    errwrite(str.data, str.size * sizeof(str.data[0]));
+    eprintf7("),\n"
       "%s  resolution (%gx%g ppi) and intensity levels (%d, %d) is\n"
       "%s  not supported by the %s.\n",
       epref, device->HWResolution[0], device->HWResolution[1],
@@ -1022,9 +1023,8 @@
 	  updating the file. */
     else {
       /* pcf_getcount() has issued an error message. */
-      fputs(
-        "  No further attempts will be made to access the page count file.\n",
-	stderr);
+      eprintf(
+        "  No further attempts will be made to access the page count file.\n");
       gs_free(gs_lib_ctx_get_non_gc_memory_t(), eprn->pagecount_file, strlen(eprn->pagecount_file) + 1,
 	sizeof(char), "eprn_open_device");
       eprn->pagecount_file = NULL;
@@ -1060,7 +1060,7 @@
     }
   }
   if (eprn->scan_line.str == NULL) {
-    fprintf(stderr, "%s" ERRPREF
+    eprintf1("%s" ERRPREF
       "Memory allocation failure from gs_malloc() in eprn_open_device().\n",
       epref);
     return_error(gs_error_VMerror);
@@ -1156,7 +1156,7 @@
       accounting, this seems unfair.
   */
   if (rc == 0 && eprn->CUPS_accounting)
-    fprintf(stderr, "PAGE: %ld %d\n", dev->ShowpageCount, num_copies);
+    eprintf2("PAGE: %ld %d\n", dev->ShowpageCount, num_copies);
     /* The arguments are the number of the page, starting at 1, and the number
        of copies of that page. */
 
@@ -1166,9 +1166,8 @@
     assert(num_copies > 0);	/* because of signed/unsigned */
     if (pcf_inccount(eprn->pagecount_file, num_copies) != 0) {
       /* pcf_inccount() has issued an error message. */
-      fputs(
-	"  No further attempts will be made to access the page count file.\n",
-	stderr);
+      eprintf(
+	"  No further attempts will be made to access the page count file.\n");
       gs_free(gs_lib_ctx_get_non_gc_memory_t(), eprn->pagecount_file, strlen(eprn->pagecount_file) + 1,
 	sizeof(char), "eprn_output_page");
       eprn->pagecount_file = NULL;