~binli/ubuntu/trusty/cups/from-xenial

« back to all changes in this revision

Viewing changes to ppdc/ppdc-file.cxx

  • Committer: Bin Li
  • Date: 2017-03-07 06:11:18 UTC
  • Revision ID: bin.li@canonical.com-20170307061118-n3d3wp36al9zoz17
Init version from 16.04

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// "$Id: ppdc-file.cxx 3755 2012-03-30 05:59:14Z msweet $"
 
3
//
 
4
//   File class for the CUPS PPD Compiler.
 
5
//
 
6
//   Copyright 2007-2010 by Apple Inc.
 
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
 
 
27
#include "ppdc-private.h"
 
28
 
 
29
 
 
30
//
 
31
// 'ppdcFile::ppdcFile()' - Create (open) a file.
 
32
//
 
33
 
 
34
ppdcFile::ppdcFile(const char  *f,              // I - File to open
 
35
                   cups_file_t *ffp)            // I - File pointer to use
 
36
{
 
37
  if (ffp)
 
38
  {
 
39
    fp = ffp;
 
40
    cupsFileRewind(fp);
 
41
  }
 
42
  else
 
43
    fp = cupsFileOpen(f, "r");
 
44
 
 
45
  close_on_delete = !ffp;
 
46
  filename        = f;
 
47
  line            = 1;
 
48
 
 
49
  if (!fp)
 
50
    _cupsLangPrintf(stderr, _("ppdc: Unable to open %s: %s"), f,
 
51
                    strerror(errno));
 
52
}
 
53
 
 
54
 
 
55
//
 
56
// 'ppdcFile::~ppdcFile()' - Delete (close) a file.
 
57
//
 
58
 
 
59
ppdcFile::~ppdcFile()
 
60
{
 
61
  if (close_on_delete && fp)
 
62
    cupsFileClose(fp);
 
63
}
 
64
 
 
65
 
 
66
//
 
67
// 'ppdcFile::get()' - Get a character from a file.
 
68
//
 
69
 
 
70
int
 
71
ppdcFile::get()
 
72
{
 
73
  int   ch;                                     // Character from file
 
74
 
 
75
 
 
76
  // Return EOF if there is no open file...
 
77
  if (!fp)
 
78
    return (EOF);
 
79
 
 
80
  // Get the character...
 
81
  ch = cupsFileGetChar(fp);
 
82
 
 
83
  // Update the line number as needed...
 
84
  if (ch == '\n')
 
85
    line ++;
 
86
 
 
87
  // Return the character...
 
88
  return (ch);
 
89
}
 
90
 
 
91
 
 
92
//
 
93
// 'ppdcFile::peek()' - Look at the next character from a file.
 
94
//
 
95
 
 
96
int                                     // O - Next character in file
 
97
ppdcFile::peek()
 
98
{
 
99
  // Return immediaely if there is no open file...
 
100
  if (!fp)
 
101
    return (EOF);
 
102
 
 
103
  // Otherwise return the next character without advancing...
 
104
  return (cupsFilePeekChar(fp));
 
105
}
 
106
 
 
107
 
 
108
//
 
109
// End of "$Id: ppdc-file.cxx 3755 2012-03-30 05:59:14Z msweet $".
 
110
//