summaryrefslogtreecommitdiffstats
path: root/tdeio/tdeio/kmimemagic.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-27 01:04:16 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-01-27 01:04:16 -0600
commit5159cd2beb2e87806a5b54e9991b7895285c9d3e (patch)
tree9b70e8be47a390f8f4d56ead812ab0c9dad88709 /tdeio/tdeio/kmimemagic.h
parentc17cb900dcf52b8bd6dc300d4f103392900ec2b4 (diff)
downloadtdelibs-5159cd2beb2e87806a5b54e9991b7895285c9d3e.tar.gz
tdelibs-5159cd2beb2e87806a5b54e9991b7895285c9d3e.zip
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'tdeio/tdeio/kmimemagic.h')
-rw-r--r--tdeio/tdeio/kmimemagic.h218
1 files changed, 218 insertions, 0 deletions
diff --git a/tdeio/tdeio/kmimemagic.h b/tdeio/tdeio/kmimemagic.h
new file mode 100644
index 000000000..f5430a219
--- /dev/null
+++ b/tdeio/tdeio/kmimemagic.h
@@ -0,0 +1,218 @@
+/* This file is part of the KDE project
+ Copyright (C) 1998, 1999 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+/*
+ * KMimeMagic is inspired by the code of the
+ * Apache Web Server.
+ *
+ * Rewritten for KDE by Fritz Elfert
+ * fritz@kde.org
+ * Adaptations by Torben Weis <weis@kde.org>
+ * Fixes and documentation by David Faure <faure@kde.org>
+ */
+
+#ifndef KMIMEMAGIC_H
+#define KMIMEMAGIC_H
+
+#include <tqstring.h>
+#include <tdelibs_export.h>
+
+class KMimeMagic; // see below (read this one first)
+
+/**
+ * @deprecated Use KMimeType::findByContent() instead
+ * May be removed in KDE 4.0.
+ * Returned by KMimeMagic @p find...Type methods.
+ *
+ * It contains the mimetype and the encoding of
+ * the file or buffer read.
+ */
+class TDEIO_EXPORT_DEPRECATED KMimeMagicResult
+{
+public:
+ KMimeMagicResult() { m_iAccuracy = 100; }
+ ~KMimeMagicResult() { }
+
+ /**
+ * Retrieve the mimetype (e.g. "text/html") of the file or buffer parsed.
+ */
+ TQString mimeType() const { return m_strMimeType; }
+ /**
+ * Retrieve the accuracy of the matching.
+ */
+ int accuracy() const { return m_iAccuracy; }
+ /**
+ * Returns whether the result is valid (i.e. mimetype not empty).
+ */
+ bool isValid() const { return !m_strMimeType.isEmpty(); }
+
+ /////////////////
+ // Internal functions only
+ /////////////////
+ void setMimeType( const TQString& _mime ) { m_strMimeType = _mime; }
+ void setAccuracy( int _accuracy ) { m_iAccuracy = _accuracy; }
+ void setInvalid() { m_strMimeType = TQString::null; }
+
+protected:
+ TQString m_strMimeType;
+ int m_iAccuracy;
+};
+
+/**
+ * @deprecated Use KMimeType::findByContent() instead
+ * May be removed in KDE 4.0.
+ * Determine auto-magically the type of file,
+ * not only by using its extension, but also by reading its contents.
+ *
+ *
+ * Unless specified otherwise, KMimeMagic uses
+ * $TDEDIR/share/mimelnk/magic for this purpose.
+ *
+ * To make KMimeMagic restore the 'atime' of a file after it opened it,
+ * add its directory in kmimemagicrc like:
+ * [Settings]
+ * atimeDirs=/tmp,/var/tmp,/home/dfaure/tmp
+ * This isn't done by default because it changes the 'ctime'.
+ * See kmimemagic.cpp for a full discussion on this issue.
+ *
+ * The basic usage of KMimeMagic is :
+ * @li Get a pointer to it, using KMimeMagic::self().
+ * @li Use it for any file or buffer you want, using one of the three
+ * @p find...Type() methods.
+ *
+ * The result is contained in the class KMimeMagicResult.
+ */
+class TDEIO_EXPORT_DEPRECATED KMimeMagic
+{
+public:
+ /**
+ * Create a parser and initialize it with the KDE-global data:
+ * the "magic" config file as well as the snippets from share/config/magic.
+ * @since 3.1
+ */
+ KMimeMagic();
+
+ /**
+ * Create a parser and initialize it with the given config file.
+ */
+ KMimeMagic( const TQString & configFile );
+
+ /**
+ * Destroy the parser.
+ */
+ ~KMimeMagic();
+
+ /**
+ * Merge an existing parse table with the data from the
+ * given file.
+ *
+ * @return @p true on success.
+ */
+ bool mergeConfig( const TQString & configFile );
+
+ /**
+ * Merge an existing parse table with the data from the
+ * given buffer.
+ *
+ * @return @p true on success.
+ */
+ bool mergeBufConfig(char *);
+
+ /**
+ * Enable/Disable follow-links.
+ *
+ * (Default is disabled.)
+ */
+ void setFollowLinks( bool _enable );
+
+ /**
+ * Try to find a MimeType for the given file.
+ *
+ * If no special
+ * MimeType is found, the default MimeType is returned.
+ * This function looks at the content of the file.
+ *
+ * @return A pointer to the result object. Do @em not delete the
+ * result object. After another call to KMimeMagic
+ * the returned result object changes its value
+ * since it is reused by KMimeMagic.
+ */
+ KMimeMagicResult* findFileType( const TQString & _filename );
+
+ /**
+ * Same functionality as above, except data is not
+ * read from a file.
+ *
+ * Instead a buffer can be supplied which
+ * is examined.
+ *
+ * @return A pointer to the result object. Do @em not delete the
+ * result object. After another call to KMimeMagic
+ * the returned result object changes its value
+ * since it is reused by KMimeMagic.
+ */
+ KMimeMagicResult* findBufferType( const TQByteArray &p );
+
+ /**
+ * Same functionality as findBufferType() but with
+ * additional capability of distinguishing between
+ * C-headers and C-Source.
+ *
+ * For this purpose this function looks
+ * at the extension of the filename. This means that 'filename'
+ * can be a filename on some FTP server, too.
+ *
+ * @return A pointer to the result object. Do @em not delete the
+ * result object. After another call to KMimeMagic
+ * the returned result object changes its value
+ * since it is reused by KMimeMagic.
+ */
+ KMimeMagicResult * findBufferFileType( const TQByteArray &, const TQString & filename );
+
+ /**
+ * Returns a pointer to the unique KMimeMagic instance in this process.
+ */
+ static KMimeMagic* self();
+
+protected:
+ /**
+ * The result type.
+ */
+ KMimeMagicResult * magicResult;
+
+ static void initStatic();
+ static KMimeMagic* s_pSelf;
+
+private:
+ void init( const TQString& configFile );
+
+ bool bunused;
+ TQString sunused;
+
+ int parse_line(char *line, int *rule, int lineno);
+ int parse(char *, int);
+ int buff_apprentice(char*buff);
+ int apprentice(const TQString &configFile);
+
+ struct config_rec *conf; // this is also our "d pointer"
+ int iunused;
+};
+
+#endif
+