diff options
Diffstat (limited to 'kdeprint/lpr/printcapreader.cpp')
-rw-r--r-- | kdeprint/lpr/printcapreader.cpp | 176 |
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; -} |