summaryrefslogtreecommitdiffstats
path: root/kdeprint/lpr/printcapreader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/lpr/printcapreader.cpp')
-rw-r--r--kdeprint/lpr/printcapreader.cpp176
1 files changed, 0 insertions, 176 deletions
diff --git a/kdeprint/lpr/printcapreader.cpp b/kdeprint/lpr/printcapreader.cpp
deleted file mode 100644
index 00016c14f..000000000
--- a/kdeprint/lpr/printcapreader.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * This file is part of the KDE libraries
- * Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License version 2 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- **/
-
-#include "printcapreader.h"
-#include "printcapentry.h"
-
-#include <tqfile.h>
-#include <kdebug.h>
-
-void PrintcapReader::setPrintcapFile(TQFile *f)
-{
- if (f->isOpen())
- {
- m_stream.setDevice(TQT_TQIODEVICE(f));
- m_buffer = TQString::null;
- }
-}
-
-bool PrintcapReader::nextLine(TQString& line)
-{
- if (m_stream.atEnd() && m_buffer.isEmpty())
- return false;
- else if (!m_buffer.isEmpty())
- {
- line = m_buffer;
- m_buffer = TQString::null;
- }
- else
- line = m_stream.readLine().stripWhiteSpace();
- // strip any '\' at the end
- if (line[line.length()-1] == '\\')
- line = line.left(line.length()-1).stripWhiteSpace();
- return true;
-}
-
-void PrintcapReader::unputLine(const TQString& s)
-{
- m_buffer = s;
-}
-
-PrintcapEntry* PrintcapReader::nextEntry()
-{
- if (!m_stream.tqdevice())
- return NULL;
-
- TQString line, comment, name, fields, buf;
- // skip comments, keep last one
- while (1)
- {
- if (!nextLine(line))
- return NULL;
- else if (line.isEmpty())
- continue;
- else if (line[0] == '#')
- comment = line;
- else
- {
- buf = line;
- break;
- }
- }
-
- // look for the complete entry
- while (1)
- {
- // we found the entry if we reached the end of file or
- // found an empty line
- if (!nextLine(line) || line.isEmpty())
- break;
- // just skip comments
- else if (line[0] == '#')
- continue;
- // lines starting with ':' or '|' are appended
- else if (line[0] == ':' || line[0] == '|')
- buf += line;
- // otherwise it's another entry, put it back in the
- // buffer
- else
- {
- unputLine(line);
- break;
- }
- }
-
- // now parse the entry
- kdDebug() << "COMMENT: " << comment << endl;
- kdDebug() << "LINE: " << buf << endl;
- int p = buf.find(':');
- if (p == -1)
- name = buf;
- else
- {
- name = buf.left(p);
- fields = buf.right(buf.length()-p-1);
- }
-
- // construct the printcap entry
- if (!name.isEmpty())
- {
- PrintcapEntry *entry = new PrintcapEntry;
- TQStringList l = TQStringList::split('|', name, false);
- entry->name = l[0];
- entry->comment = comment;
- // kdDebug() << "Printer: " << entry->name << endl;
- // kdDebug() << "Aliases:" << endl;
- for (uint i=1; i<l.count(); i++)
- {
- entry->aliases << l[i];
- // kdDebug() << " " << l[i] << endl;
- }
- if (!fields.isEmpty())
- {
- // kdDebug() << "Fields:" << endl;
- // kdDebug() << "(" << fields << ")" << endl;
- l = TQStringList::split(':', fields, false);
- for (TQStringList::ConstIterator it=l.begin(); it!=l.end(); ++it)
- {
- Field f;
- int p = (*it).find('=');
- if (p == -1)
- {
- p = (*it).find('#');
- if (p == -1)
- {
- f.type = Field::Boolean;
- p = (*it).find('@');
- if (p == -1)
- {
- f.name = (*it);
- f.value = "1";
- }
- else
- {
- f.name = (*it).left(p);
- f.value = "0";
- }
- }
- else
- {
- f.type = Field::Integer;
- f.name = (*it).left(p);
- f.value = (*it).mid(p+1);
- }
- }
- else
- {
- f.type = Field::String;
- f.name = (*it).left(p);
- f.value = (*it).mid(p+1);
- if (f.value.startsWith("\""))
- f.value = f.value.mid(1, f.value.length()-2);
- }
- entry->fields[f.name] = f;
- }
- }
- // kdDebug() << endl;
- return entry;
- }
- return NULL;
-}