summaryrefslogtreecommitdiff
path: root/xc/lib/dps/dpsprintf.c
blob: 1121122f4470a3d1162bc32caef9c753889d82a0 (plain)
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
/*
 * dpsprintf.c
 *
 * (c) Copyright 1985-1994 Adobe Systems Incorporated.
 * All rights reserved.
 * 
 * Permission to use, copy, modify, distribute, and sublicense this software
 * and its documentation for any purpose and without fee is hereby granted,
 * provided that the above copyright notices appear in all copies and that
 * both those copyright notices and this permission notice appear in
 * supporting documentation and that the name of Adobe Systems Incorporated
 * not be used in advertising or publicity pertaining to distribution of the
 * software without specific, written prior permission.  No trademark license
 * to use the Adobe trademarks is hereby granted.  If the Adobe trademark
 * "Display PostScript"(tm) is used to describe this software, its
 * functionality or for any other purpose, such use shall be limited to a
 * statement that this software works in conjunction with the Display
 * PostScript system.  Proper trademark attribution to reflect Adobe's
 * ownership of the trademark shall be given whenever any such reference to
 * the Display PostScript system is made.
 * 
 * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR
 * ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
 * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NON- INFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO EVENT SHALL ADOBE BE LIABLE
 * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,
 * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  ADOBE WILL NOT
 * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
 * 
 * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
 * Incorporated which may be registered in certain jurisdictions
 * 
 * Author:  Adobe Systems Incorporated
 */

#include "publictypes.h"
#include "DPS/dpsclient.h"

#ifdef USE_DOPRINT
extern void DPSdoprint();
#endif /* USE_DOPRINT */

#ifdef _NO_PROTO
#include <varargs.h>

void DPSPrintf(va_alist)
    va_dcl
{
    va_list args;
    DPSContext ctxt;
    char *fmt;

#ifdef VAXC
    va_start_1(args, sizeof(DPSContext) + sizeof(char *));
#else /* VAXC */
    va_start(args);
#endif /* VAXC */

    ctxt = (DPSContext) va_arg(args, DPSContext);
    fmt = va_arg(args, char *);

#ifdef USE_DOPRINT
    DPSdoprint(ctxt, fmt, &args);
#else /* USE_DOPRINT */
    {
	char buffer[10000];
	vsprintf(buffer, fmt, args);
	DPSWritePostScript(ctxt, buffer, strlen(buffer));
    }
#endif /* USE_DOPRINT */
    va_end(args);
}

#else /* _NO_PROTO */

#include <stdarg.h>

void DPSPrintf(DPSContext ctxt, char *fmt, ...)
{
    va_list args;

#if defined(__STDC__) || defined(AIXV3) || defined(ultrix)
    va_start(args, fmt);
#else
    va_start(args);
#endif

#ifdef USE_DOPRINT
    DPSdoprint(ctxt, fmt, &args);
#else /* USE_DOPRINT */
    {
	char buffer[10000];
	vsprintf(buffer, fmt, args);
	DPSWritePostScript(ctxt, buffer, strlen(buffer));
    }
#endif /* USE_DOPRINT */
    va_end(args);
}

#endif /* _NO_PROTO */