1 /* This file is part of the GNU plotutils package. Copyright (C) 1995,
2 1996, 1997, 1998, 1999, 2000, 2005, 2008, Free Software Foundation, Inc.
3
4 The GNU plotutils package is free software. You may redistribute it
5 and/or modify it under the terms of the GNU General Public License as
6 published by the Free Software foundation; either version 2, or (at your
7 option) any later version.
8
9 The GNU plotutils package is distributed in the hope that it will be
10 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
13
14 You should have received a copy of the GNU General Public License along
15 with the GNU plotutils package; see the file COPYING. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin St., Fifth Floor,
17 Boston, MA 02110-1301, USA. */
18
19 /* These are the lowest-level output routines in libplot/libplotter.
20 Plotters that write to output streams use these. */
21
22 #include "sys-defines.h"
23 #include "extern.h"
24
25 void
_write_byte(const plPlotterData * data,unsigned char c)26 _write_byte (const plPlotterData *data, unsigned char c)
27 {
28 if (data->outfp)
29 putc ((int)c, data->outfp);
30 #ifdef LIBPLOTTER
31 else if (data->outstream)
32 data->outstream->put (c);
33 #endif
34 }
35
36 void
_write_bytes(const plPlotterData * data,int n,const unsigned char * c)37 _write_bytes (const plPlotterData *data, int n, const unsigned char *c)
38 {
39 int i;
40
41 if (data->outfp)
42 {
43 for (i = 0; i < n; i++)
44 putc ((int)(c[i]), data->outfp);
45 }
46 #ifdef LIBPLOTTER
47 else if (data->outstream)
48 data->outstream->write((const char *)c, n);
49 #endif
50 }
51
52 void
_write_string(const plPlotterData * data,const char * s)53 _write_string (const plPlotterData *data, const char *s)
54 {
55 if (data->outfp)
56 fputs (s, data->outfp);
57 #ifdef LIBPLOTTER
58 else if (data->outstream)
59 (*(data->outstream)) << s;
60 #endif
61 }
62