aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/stardict-private.h65
-rw-r--r--src/stardict.c69
2 files changed, 80 insertions, 54 deletions
diff --git a/src/stardict-private.h b/src/stardict-private.h
new file mode 100644
index 0000000..dc7c3b1
--- /dev/null
+++ b/src/stardict-private.h
@@ -0,0 +1,65 @@
+/*
+ * stardict-private.h: internal StarDict API
+ *
+ * Copyright (c) 2013, Přemysl Janouch <p.janouch@gmail.com>
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#ifndef STARDICTPRIVATE_H
+#define STARDICTPRIVATE_H
+
+/** Describes a single entry in the dictionary index. */
+typedef struct stardict_index_entry StardictIndexEntry;
+
+/** Describes a single entry in the synonyms index. */
+typedef struct stardict_synonym_entry StardictSynonymEntry;
+
+
+typedef enum stardict_version StardictVersion;
+enum stardict_version { SD_VERSION_2_4_2, SD_VERSION_3_0_0 };
+
+struct stardict_info
+{
+ gchar * path;
+ StardictVersion version;
+
+ gchar * book_name;
+ gulong word_count;
+ gulong syn_word_count;
+ gulong idx_filesize;
+ gulong idx_offset_bits;
+ gchar * author;
+ gchar * email;
+ gchar * website;
+ gchar * description;
+ gchar * date;
+ gchar * same_type_sequence;
+};
+
+struct stardict_index_entry
+{
+ gchar * name; //!< The word in utf-8
+ guint64 data_offset; //!< Offset of the definition
+ guint32 data_size; //!< Size of the definition
+};
+
+struct stardict_synonym_entry
+{
+ gchar * word; //!< A synonymous word
+ guint32 original_word; //!< The original word's index
+};
+
+#endif /* ! STARDICTPRIVATE_H */
diff --git a/src/stardict.c b/src/stardict.c
index 4439022..bebe3d2 100644
--- a/src/stardict.c
+++ b/src/stardict.c
@@ -27,62 +27,9 @@
#include <gio/gio.h>
#include "stardict.h"
+#include "stardict-private.h"
-/** Describes a single entry in the dictionary index. */
-typedef struct stardict_index_entry StardictIndexEntry;
-
-/** Describes a single entry in the synonyms index. */
-typedef struct stardict_synonym_entry StardictSynonymEntry;
-
-/** Helper class for reading .ifo files. */
-typedef struct ifo_reader IfoReader;
-
-
-typedef enum stardict_version StardictVersion;
-enum stardict_version { SD_VERSION_2_4_2, SD_VERSION_3_0_0 };
-
-struct stardict_info
-{
- gchar * path;
- StardictVersion version;
-
- gchar * book_name;
- gulong word_count;
- gulong syn_word_count;
- gulong idx_filesize;
- gulong idx_offset_bits;
- gchar * author;
- gchar * email;
- gchar * website;
- gchar * description;
- gchar * date;
- gchar * same_type_sequence;
-};
-
-struct stardict_index_entry
-{
- gchar * name; //!< The word in utf-8
- guint64 data_offset; //!< Offset of the definition
- guint32 data_size; //!< Size of the definition
-};
-
-struct stardict_synonym_entry
-{
- gchar * word; //!< A synonymous word
- guint32 original_word; //!< The original word's index
-};
- struct ifo_reader
-{
- gchar * data; //!< File data terminated with \0
- gchar * data_end; //!< Where the final \0 char. is
-
- gchar * start; //!< Start of the current token
-
- gchar * key; //!< The key (points into @a data)
- gchar * value; //!< The value (points into @a data)
-};
-
// --- Utilities ---------------------------------------------------------------
/** Read the whole stream into a byte array. */
@@ -159,6 +106,20 @@ stardict_error_quark (void)
// --- IFO reader --------------------------------------------------------------
+/** Helper class for reading .ifo files. */
+typedef struct ifo_reader IfoReader;
+
+struct ifo_reader
+{
+ gchar * data; //!< File data terminated with \0
+ gchar * data_end; //!< Where the final \0 char. is
+
+ gchar * start; //!< Start of the current token
+
+ gchar * key; //!< The key (points into @a data)
+ gchar * value; //!< The value (points into @a data)
+};
+
static gboolean
ifo_reader_init (IfoReader *ir, const gchar *path, GError **error)
{