|
|
/* This file is part of the KDE libraries Copyright (C) 1997 Martin Jones (mjones@kde.org) (C) 1997 Torben Weis (weis@kde.org) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ //----------------------------------------------------------------------------- // // This is a modified HTMLTokenizer from khtmlw. // #ifndef BOOKTOKEN_H #define BOOKTOKEN_H #include#include #include // Every tag as deliverd by HTMLTokenizer starts with TAG_ESCAPE. This way // you can devide between tags and words. #define TAG_ESCAPE 13 // The count of spaces used for each tab. #define TAB_SIZE 8 //----------------------------------------------------------------------------- /** * @internal */ class BMToken { public: BMToken( const char *t, int len ) { tok = new char [ len + 1 ]; memcpy( tok, t, len+1 ); nextToken = 0; } ~BMToken() { delete [] tok; } char *token() { return tok; } BMToken *next() { return nextToken; } void setNext( BMToken *n ) { nextToken = n; } private: char *tok; BMToken *nextToken; }; //----------------------------------------------------------------------------- /** * @internal */ class BookmarkTokenizer { public: BookmarkTokenizer(); ~BookmarkTokenizer(); void begin(); void write( const QString& ); void end(); char* nextToken(); bool hasMoreTokens(); void first() { curr = head; } protected: void reset(); void appendToken( const char *t, int len ) { if ( len < 1 ) return; BMToken *tok = new BMToken( t, len ); if ( head ) { tail->setNext( tok ); tail = tok; } else { head = tail = tok; } if ( !curr ) curr = tok; } protected: char *buffer; char *dest; BMToken *head; BMToken *tail; BMToken *curr; // the size of buffer int size; // are we in a html tag bool tag; // are we in quotes within a html tag bool tquote; // To avoid multiple spaces bool space; // Discard line breaks immediately after tags bool discardCR; // Area we in a block bool comment; }; //----------------------------------------------------------------------------- #endif
Generated by: dfaure on kde.faure.org on Thu Jan 17 22:17:38 2002, using kdoc 2.0a53. |