summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/eplaser/gdevescv.c')
-rw-r--r--contrib/eplaser/gdevescv.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/contrib/eplaser/gdevescv.c b/contrib/eplaser/gdevescv.c
index afcbdfd7..c7bd29e1 100644
--- a/contrib/eplaser/gdevescv.c
+++ b/contrib/eplaser/gdevescv.c
@@ -33,6 +33,15 @@
*/
+#include <stdlib.h> /* for abs() and free */
+
+/* Get this definition in before we read memento.h */
+static void
+unvectored_free(void *x)
+{
+ free(x);
+}
+
#if ( 6 > GS_VERSION_MAJOR )
#include <string.h>
@@ -59,7 +68,6 @@
#else /* 6 <= GS_VERSION_MAJOR */
#include "math_.h"
-#include <stdlib.h> /* for abs() */
#include <sys/utsname.h> /* for uname(2) */
#include <ctype.h> /* for toupper(3) */
@@ -969,7 +977,11 @@ escv_beginpage(gx_device_vector * vdev)
{
time_t t;
+#ifdef CLUSTER
+ memset(&t, 0, sizeof(t));
+#else
time(&t);
+#endif
lputs(s, " DATE=\"");
{
@@ -977,8 +989,14 @@ escv_beginpage(gx_device_vector * vdev)
char str[32];
size_t i;
+#ifdef CLUSTER
+ memset(&tm, 0, sizeof(tm));
+ strcpy(str, "1970/01/01 00:00:00");
+ i = strlen(str);
+#else
tm = localtime( &t );
i = strftime(str, 30, "%Y/%m/%d %H:%M:%S", tm);
+#endif
if ( 30 >= i )
str[i] = '\0';
@@ -1014,7 +1032,8 @@ escv_beginpage(gx_device_vector * vdev)
if (sysname)
{
lputs(s, sysname );
- free (sysname);
+ /* Carefully avoid memento interfering here. */
+ unvectored_free(sysname);
sysname = NULL;
}
}
@@ -2035,6 +2054,7 @@ escv_put_params(gx_device * dev, gs_param_list * plist)
ecode = code;
pmediae:
param_signal_error(plist, param_name, ecode);
+ /* Fall through. */
case 1:
if(!pdev->MediaType){
pdev->MediaType = 0;