]> git.ipfire.org Git - thirdparty/cups.git/blame - ppdc/ppdc-file.cxx
Merge changes from CUPS 1.5svn-r9374.
[thirdparty/cups.git] / ppdc / ppdc-file.cxx
CommitLineData
ac884b6a
MS
1//
2// "$Id$"
3//
4// File class for the CUPS PPD Compiler.
5//
71e16022 6// Copyright 2007-2010 by Apple Inc.
ac884b6a
MS
7// Copyright 2002-2005 by Easy Software Products.
8//
9// These coded instructions, statements, and computer programs are the
10// property of Apple Inc. and are protected by Federal copyright
11// law. Distribution and use rights are outlined in the file "LICENSE.txt"
12// which should have been included with this file. If this file is
13// file is missing or damaged, see the license at "http://www.cups.org/".
14//
15// Contents:
16//
17// ppdcFile::ppdcFile() - Create (open) a file.
18// ppdcFile::~ppdcFile() - Delete (close) a file.
19// ppdcFile::get() - Get a character from a file.
20// ppdcFile::peek() - Look at the next character from a file.
21//
22
23//
24// Include necessary headers...
25//
26
38e73f87 27#include "ppdc-private.h"
ac884b6a
MS
28
29
30//
31// 'ppdcFile::ppdcFile()' - Create (open) a file.
32//
33
4509bb49
MS
34ppdcFile::ppdcFile(const char *f, // I - File to open
35 cups_file_t *ffp) // I - File pointer to use
ac884b6a 36{
4509bb49
MS
37 if (ffp)
38 {
39 fp = ffp;
40 cupsFileRewind(fp);
41 }
42 else
43 fp = cupsFileOpen(f, "r");
44
ac884b6a
MS
45 filename = f;
46 line = 1;
47
48 if (!fp)
61cf44e2
MS
49 _cupsLangPrintf(stderr, _("%s: Unable to open %s: %s\n"), "ppdc", f,
50 strerror(errno));
ac884b6a
MS
51}
52
53
54//
55// 'ppdcFile::~ppdcFile()' - Delete (close) a file.
56//
57
58ppdcFile::~ppdcFile()
59{
60 if (fp)
61 cupsFileClose(fp);
62}
63
64
65//
66// 'ppdcFile::get()' - Get a character from a file.
67//
68
69int
70ppdcFile::get()
71{
72 int ch; // Character from file
73
74
75 // Return EOF if there is no open file...
76 if (!fp)
77 return (EOF);
78
79 // Get the character...
80 ch = cupsFileGetChar(fp);
81
82 // Update the line number as needed...
83 if (ch == '\n')
84 line ++;
85
86 // Return the character...
87 return (ch);
88}
89
90
91//
92// 'ppdcFile::peek()' - Look at the next character from a file.
93//
94
95int // O - Next character in file
96ppdcFile::peek()
97{
98 // Return immediaely if there is no open file...
99 if (!fp)
100 return (EOF);
101
102 // Otherwise return the next character without advancing...
103 return (cupsFilePeekChar(fp));
104}
105
106
107//
108// End of "$Id$".
109//