gsf 3.0.9-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +55 -0
  3. data/lib/gsf/input.rb +26 -0
  4. data/lib/gsf/loader.rb +57 -0
  5. data/lib/gsf.rb +53 -0
  6. data/test/gsf-test-utils.rb +22 -0
  7. data/test/run-test.rb +46 -0
  8. data/test/test-input-stdio.rb +25 -0
  9. data/vendor/local/bin/gsf-office-thumbnailer.exe +0 -0
  10. data/vendor/local/bin/gsf-vba-dump.exe +0 -0
  11. data/vendor/local/bin/gsf.exe +0 -0
  12. data/vendor/local/bin/libgsf-1-114.dll +0 -0
  13. data/vendor/local/bin/libgsf-win32-1-114.dll +0 -0
  14. data/vendor/local/include/libgsf-1/gsf/gsf-blob.h +39 -0
  15. data/vendor/local/include/libgsf-1/gsf/gsf-clip-data.h +72 -0
  16. data/vendor/local/include/libgsf-1/gsf/gsf-doc-meta-data.h +66 -0
  17. data/vendor/local/include/libgsf-1/gsf/gsf-docprop-vector.h +47 -0
  18. data/vendor/local/include/libgsf-1/gsf/gsf-fwd.h +121 -0
  19. data/vendor/local/include/libgsf-1/gsf/gsf-impl-utils.h +156 -0
  20. data/vendor/local/include/libgsf-1/gsf/gsf-infile-impl.h +50 -0
  21. data/vendor/local/include/libgsf-1/gsf/gsf-infile-msole.h +45 -0
  22. data/vendor/local/include/libgsf-1/gsf/gsf-infile-msvba.h +49 -0
  23. data/vendor/local/include/libgsf-1/gsf/gsf-infile-stdio.h +43 -0
  24. data/vendor/local/include/libgsf-1/gsf/gsf-infile-tar.h +40 -0
  25. data/vendor/local/include/libgsf-1/gsf/gsf-infile-zip.h +43 -0
  26. data/vendor/local/include/libgsf-1/gsf/gsf-infile.h +46 -0
  27. data/vendor/local/include/libgsf-1/gsf/gsf-input-bzip.h +34 -0
  28. data/vendor/local/include/libgsf-1/gsf/gsf-input-gio.h +44 -0
  29. data/vendor/local/include/libgsf-1/gsf/gsf-input-gzip.h +43 -0
  30. data/vendor/local/include/libgsf-1/gsf/gsf-input-http.h +45 -0
  31. data/vendor/local/include/libgsf-1/gsf/gsf-input-impl.h +68 -0
  32. data/vendor/local/include/libgsf-1/gsf/gsf-input-iochannel.h +35 -0
  33. data/vendor/local/include/libgsf-1/gsf/gsf-input-memory.h +46 -0
  34. data/vendor/local/include/libgsf-1/gsf/gsf-input-proxy.h +46 -0
  35. data/vendor/local/include/libgsf-1/gsf/gsf-input-stdio.h +48 -0
  36. data/vendor/local/include/libgsf-1/gsf/gsf-input-textline.h +46 -0
  37. data/vendor/local/include/libgsf-1/gsf/gsf-input.h +69 -0
  38. data/vendor/local/include/libgsf-1/gsf/gsf-libxml.h +225 -0
  39. data/vendor/local/include/libgsf-1/gsf/gsf-meta-names.h +482 -0
  40. data/vendor/local/include/libgsf-1/gsf/gsf-msole-utils.h +70 -0
  41. data/vendor/local/include/libgsf-1/gsf/gsf-open-pkg-utils.h +95 -0
  42. data/vendor/local/include/libgsf-1/gsf/gsf-opendoc-utils.h +162 -0
  43. data/vendor/local/include/libgsf-1/gsf/gsf-outfile-impl.h +46 -0
  44. data/vendor/local/include/libgsf-1/gsf/gsf-outfile-msole.h +47 -0
  45. data/vendor/local/include/libgsf-1/gsf/gsf-outfile-stdio.h +49 -0
  46. data/vendor/local/include/libgsf-1/gsf/gsf-outfile-zip.h +61 -0
  47. data/vendor/local/include/libgsf-1/gsf/gsf-outfile.h +49 -0
  48. data/vendor/local/include/libgsf-1/gsf/gsf-output-bzip.h +43 -0
  49. data/vendor/local/include/libgsf-1/gsf/gsf-output-csv.h +84 -0
  50. data/vendor/local/include/libgsf-1/gsf/gsf-output-gio.h +44 -0
  51. data/vendor/local/include/libgsf-1/gsf/gsf-output-gzip.h +43 -0
  52. data/vendor/local/include/libgsf-1/gsf/gsf-output-iconv.h +47 -0
  53. data/vendor/local/include/libgsf-1/gsf/gsf-output-impl.h +37 -0
  54. data/vendor/local/include/libgsf-1/gsf/gsf-output-iochannel.h +43 -0
  55. data/vendor/local/include/libgsf-1/gsf/gsf-output-memory.h +44 -0
  56. data/vendor/local/include/libgsf-1/gsf/gsf-output-stdio.h +52 -0
  57. data/vendor/local/include/libgsf-1/gsf/gsf-output.h +99 -0
  58. data/vendor/local/include/libgsf-1/gsf/gsf-shared-memory.h +51 -0
  59. data/vendor/local/include/libgsf-1/gsf/gsf-structured-blob.h +45 -0
  60. data/vendor/local/include/libgsf-1/gsf/gsf-timestamp.h +70 -0
  61. data/vendor/local/include/libgsf-1/gsf/gsf-utils.h +340 -0
  62. data/vendor/local/include/libgsf-1/gsf/gsf.h +98 -0
  63. data/vendor/local/include/libgsf-1/gsf-win32/gsf-input-win32.h +41 -0
  64. data/vendor/local/include/libgsf-1/gsf-win32/gsf-output-win32.h +41 -0
  65. data/vendor/local/lib/libgsf-1.a +0 -0
  66. data/vendor/local/lib/libgsf-1.dll.a +0 -0
  67. data/vendor/local/lib/libgsf-1.la +41 -0
  68. data/vendor/local/lib/libgsf-win32-1.a +0 -0
  69. data/vendor/local/lib/libgsf-win32-1.dll.a +0 -0
  70. data/vendor/local/lib/libgsf-win32-1.la +41 -0
  71. data/vendor/local/lib/pkgconfig/libgsf-1.pc +11 -0
  72. data/vendor/local/lib/pkgconfig/libgsf-win32-1.pc +11 -0
  73. data/vendor/local/share/gtk-doc/html/gsf/annotation-glossary.html +56 -0
  74. data/vendor/local/share/gtk-doc/html/gsf/api.html +107 -0
  75. data/vendor/local/share/gtk-doc/html/gsf/dependencies.html +109 -0
  76. data/vendor/local/share/gtk-doc/html/gsf/gsf-Compression.html +369 -0
  77. data/vendor/local/share/gtk-doc/html/gsf/gsf-GIO.html +307 -0
  78. data/vendor/local/share/gtk-doc/html/gsf/gsf-GIOChannel.html +119 -0
  79. data/vendor/local/share/gtk-doc/html/gsf/gsf-Infile-reading-structed-files.html +397 -0
  80. data/vendor/local/share/gtk-doc/html/gsf/gsf-Input-from-unstructured-files.html +887 -0
  81. data/vendor/local/share/gtk-doc/html/gsf/gsf-MS-OLE2.html +894 -0
  82. data/vendor/local/share/gtk-doc/html/gsf/gsf-OASIS-Open-Document.html +398 -0
  83. data/vendor/local/share/gtk-doc/html/gsf/gsf-Outfile-writing-structed-files.html +237 -0
  84. data/vendor/local/share/gtk-doc/html/gsf/gsf-Output-to-unstructured-files.html +830 -0
  85. data/vendor/local/share/gtk-doc/html/gsf/gsf-Reading-and-Writing-from-local-files-and-directories.html +593 -0
  86. data/vendor/local/share/gtk-doc/html/gsf/gsf-Text.html +523 -0
  87. data/vendor/local/share/gtk-doc/html/gsf/gsf-XML-and-libxml.html +2032 -0
  88. data/vendor/local/share/gtk-doc/html/gsf/gsf-Zip.html +338 -0
  89. data/vendor/local/share/gtk-doc/html/gsf/gsf-blobs.html +56 -0
  90. data/vendor/local/share/gtk-doc/html/gsf/gsf-clip-data.html +444 -0
  91. data/vendor/local/share/gtk-doc/html/gsf/gsf-index.html +875 -0
  92. data/vendor/local/share/gtk-doc/html/gsf/gsf-memory.html +332 -0
  93. data/vendor/local/share/gtk-doc/html/gsf/gsf-metadata.html +1762 -0
  94. data/vendor/local/share/gtk-doc/html/gsf/gsf-users.html +73 -0
  95. data/vendor/local/share/gtk-doc/html/gsf/gsf-utils.html +2503 -0
  96. data/vendor/local/share/gtk-doc/html/gsf/gsf.devhelp2 +440 -0
  97. data/vendor/local/share/gtk-doc/html/gsf/history.html +45 -0
  98. data/vendor/local/share/gtk-doc/html/gsf/home.png +0 -0
  99. data/vendor/local/share/gtk-doc/html/gsf/index.html +98 -0
  100. data/vendor/local/share/gtk-doc/html/gsf/index.sgml +572 -0
  101. data/vendor/local/share/gtk-doc/html/gsf/intro.html +39 -0
  102. data/vendor/local/share/gtk-doc/html/gsf/io.html +38 -0
  103. data/vendor/local/share/gtk-doc/html/gsf/left-insensitive.png +0 -0
  104. data/vendor/local/share/gtk-doc/html/gsf/left.png +0 -0
  105. data/vendor/local/share/gtk-doc/html/gsf/misc.html +33 -0
  106. data/vendor/local/share/gtk-doc/html/gsf/parsers.html +59 -0
  107. data/vendor/local/share/gtk-doc/html/gsf/right-insensitive.png +0 -0
  108. data/vendor/local/share/gtk-doc/html/gsf/right.png +0 -0
  109. data/vendor/local/share/gtk-doc/html/gsf/sources.html +50 -0
  110. data/vendor/local/share/gtk-doc/html/gsf/style.css +461 -0
  111. data/vendor/local/share/gtk-doc/html/gsf/up-insensitive.png +0 -0
  112. data/vendor/local/share/gtk-doc/html/gsf/up.png +0 -0
  113. data/vendor/local/share/license/libgsf/AUTHORS +3 -0
  114. data/vendor/local/share/license/libgsf/COPYING +340 -0
  115. data/vendor/local/share/license/libgsf/COPYING.LIB +504 -0
  116. data/vendor/local/share/locale/as/LC_MESSAGES/libgsf.mo +0 -0
  117. data/vendor/local/share/locale/bs/LC_MESSAGES/libgsf.mo +0 -0
  118. data/vendor/local/share/locale/ca/LC_MESSAGES/libgsf.mo +0 -0
  119. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/libgsf.mo +0 -0
  120. data/vendor/local/share/locale/cs/LC_MESSAGES/libgsf.mo +0 -0
  121. data/vendor/local/share/locale/da/LC_MESSAGES/libgsf.mo +0 -0
  122. data/vendor/local/share/locale/de/LC_MESSAGES/libgsf.mo +0 -0
  123. data/vendor/local/share/locale/el/LC_MESSAGES/libgsf.mo +0 -0
  124. data/vendor/local/share/locale/en_GB/LC_MESSAGES/libgsf.mo +0 -0
  125. data/vendor/local/share/locale/eo/LC_MESSAGES/libgsf.mo +0 -0
  126. data/vendor/local/share/locale/es/LC_MESSAGES/libgsf.mo +0 -0
  127. data/vendor/local/share/locale/eu/LC_MESSAGES/libgsf.mo +0 -0
  128. data/vendor/local/share/locale/fi/LC_MESSAGES/libgsf.mo +0 -0
  129. data/vendor/local/share/locale/fr/LC_MESSAGES/libgsf.mo +0 -0
  130. data/vendor/local/share/locale/gl/LC_MESSAGES/libgsf.mo +0 -0
  131. data/vendor/local/share/locale/he/LC_MESSAGES/libgsf.mo +0 -0
  132. data/vendor/local/share/locale/hu/LC_MESSAGES/libgsf.mo +0 -0
  133. data/vendor/local/share/locale/id/LC_MESSAGES/libgsf.mo +0 -0
  134. data/vendor/local/share/locale/it/LC_MESSAGES/libgsf.mo +0 -0
  135. data/vendor/local/share/locale/ja/LC_MESSAGES/libgsf.mo +0 -0
  136. data/vendor/local/share/locale/ko/LC_MESSAGES/libgsf.mo +0 -0
  137. data/vendor/local/share/locale/lt/LC_MESSAGES/libgsf.mo +0 -0
  138. data/vendor/local/share/locale/lv/LC_MESSAGES/libgsf.mo +0 -0
  139. data/vendor/local/share/locale/ml/LC_MESSAGES/libgsf.mo +0 -0
  140. data/vendor/local/share/locale/nb/LC_MESSAGES/libgsf.mo +0 -0
  141. data/vendor/local/share/locale/nn/LC_MESSAGES/libgsf.mo +0 -0
  142. data/vendor/local/share/locale/oc/LC_MESSAGES/libgsf.mo +0 -0
  143. data/vendor/local/share/locale/pa/LC_MESSAGES/libgsf.mo +0 -0
  144. data/vendor/local/share/locale/pl/LC_MESSAGES/libgsf.mo +0 -0
  145. data/vendor/local/share/locale/pt/LC_MESSAGES/libgsf.mo +0 -0
  146. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/libgsf.mo +0 -0
  147. data/vendor/local/share/locale/ro/LC_MESSAGES/libgsf.mo +0 -0
  148. data/vendor/local/share/locale/ru/LC_MESSAGES/libgsf.mo +0 -0
  149. data/vendor/local/share/locale/sk/LC_MESSAGES/libgsf.mo +0 -0
  150. data/vendor/local/share/locale/sl/LC_MESSAGES/libgsf.mo +0 -0
  151. data/vendor/local/share/locale/sr/LC_MESSAGES/libgsf.mo +0 -0
  152. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/libgsf.mo +0 -0
  153. data/vendor/local/share/locale/sv/LC_MESSAGES/libgsf.mo +0 -0
  154. data/vendor/local/share/locale/ta/LC_MESSAGES/libgsf.mo +0 -0
  155. data/vendor/local/share/locale/tg/LC_MESSAGES/libgsf.mo +0 -0
  156. data/vendor/local/share/locale/th/LC_MESSAGES/libgsf.mo +0 -0
  157. data/vendor/local/share/locale/tr/LC_MESSAGES/libgsf.mo +0 -0
  158. data/vendor/local/share/locale/uk/LC_MESSAGES/libgsf.mo +0 -0
  159. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/libgsf.mo +0 -0
  160. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/libgsf.mo +0 -0
  161. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/libgsf.mo +0 -0
  162. data/vendor/local/share/man/man1/gsf-office-thumbnailer.1 +71 -0
  163. data/vendor/local/share/man/man1/gsf-vba-dump.1 +61 -0
  164. data/vendor/local/share/man/man1/gsf.1 +91 -0
  165. data/vendor/local/share/thumbnailers/gsf-office.thumbnailer +4 -0
  166. metadata +235 -0
@@ -0,0 +1,68 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-impl.h: implementation details of GsfInput
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_IMPL_H
23
+ #define GSF_INPUT_IMPL_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+
27
+ G_BEGIN_DECLS
28
+
29
+ struct _GsfInput {
30
+ GObject g_object;
31
+
32
+ gsf_off_t size, cur_offset;
33
+ char *name;
34
+ GsfInfile *container;
35
+ };
36
+
37
+ typedef struct {
38
+ GObjectClass g_object_class;
39
+
40
+ GsfInput *(*Dup) (GsfInput *input, GError **err);
41
+ const guint8 *(*Read) (GsfInput *input, size_t num_bytes,
42
+ guint8 *optional_buffer);
43
+ gboolean (*Seek) (GsfInput *input, gsf_off_t offset,
44
+ GSeekType whence);
45
+ GsfInput *(*OpenSibling) (GsfInput const *input,
46
+ char const *path, GError **err);
47
+
48
+ /* Padding for future expansion */
49
+ void (*_gsf_reserved0) (void);
50
+ void (*_gsf_reserved1) (void);
51
+ void (*_gsf_reserved2) (void);
52
+ void (*_gsf_reserved3) (void);
53
+ } GsfInputClass;
54
+
55
+ #define GSF_INPUT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GSF_INPUT_TYPE, GsfInputClass))
56
+ #define GSF_IS_INPUT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSF_INPUT_TYPE))
57
+
58
+ /* protected */
59
+ gboolean gsf_input_set_name (GsfInput *input, char const *name);
60
+ gboolean gsf_input_set_name_from_filename (GsfInput *input, char const *filename);
61
+ gboolean gsf_input_set_container (GsfInput *input, GsfInfile *container);
62
+ gboolean gsf_input_set_size (GsfInput *input, gsf_off_t size);
63
+ gboolean gsf_input_set_modtime (GsfInput *input, GDateTime *modtime);
64
+ gboolean gsf_input_seek_emulate (GsfInput *input, gsf_off_t pos);
65
+
66
+ G_END_DECLS
67
+
68
+ #endif /* GSF_INPUT_IMPL_H */
@@ -0,0 +1,35 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-iochannel.h: interface for use by the structured file layer to read data from IO channels
4
+ *
5
+ * Copyright (C) 2002-2006 Rodrigo Moya (rodrigo@gnome-db.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_IOCHANNEL_H
23
+ #define GSF_INPUT_IOCHANNEL_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <gsf/gsf-input.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ GsfInput *gsf_input_memory_new_from_iochannel (GIOChannel *channel,
31
+ GError **error);
32
+
33
+ G_END_DECLS
34
+
35
+ #endif /* GSF_INPUT_IOCHANNEL_H */
@@ -0,0 +1,46 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-memory.h: interface for used by the ole layer to read raw data
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_MEMORY_H
23
+ #define GSF_INPUT_MEMORY_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <gsf/gsf-input.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ #define GSF_INPUT_MEMORY_TYPE (gsf_input_memory_get_type ())
31
+ #define GSF_INPUT_MEMORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_INPUT_MEMORY_TYPE, GsfInputMemory))
32
+ #define GSF_IS_INPUT_MEMORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_INPUT_MEMORY_TYPE))
33
+
34
+ typedef struct _GsfInputMemory GsfInputMemory;
35
+
36
+ GType gsf_input_memory_get_type (void) G_GNUC_CONST;
37
+ /* void gsf_input_memory_register_type (GTypeModule *module); glib dynamic types are not thread safe */
38
+
39
+ GsfInput *gsf_input_memory_new (guint8 const *buf, gsf_off_t length,
40
+ gboolean needs_free);
41
+ GsfInput *gsf_input_memory_new_clone (guint8 const *buf, gsf_off_t length);
42
+ GsfInput *gsf_input_mmap_new (char const *filename, GError **err);
43
+
44
+ G_END_DECLS
45
+
46
+ #endif /* GSF_INPUT_MEMORY_H */
@@ -0,0 +1,46 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-proxy.h: proxy object (with its own current position)
4
+ *
5
+ * Copyright (C) 2004-2006 Morten Welinder (terra@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_PROXY_H
23
+ #define GSF_INPUT_PROXY_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <gsf/gsf-input.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ #define GSF_INPUT_PROXY_TYPE (gsf_input_proxy_get_type ())
31
+ #define GSF_INPUT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_INPUT_PROXY_TYPE, GsfInputProxy))
32
+ #define GSF_IS_INPUT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_INPUT_PROXY_TYPE))
33
+
34
+ typedef struct _GsfInputProxy GsfInputProxy;
35
+
36
+ GType gsf_input_proxy_get_type (void) G_GNUC_CONST;
37
+ /* void gsf_input_proxy_register_type (GTypeModule *module); glib dynamic types are not thread safe */
38
+
39
+ GsfInput *gsf_input_proxy_new (GsfInput *source);
40
+ GsfInput *gsf_input_proxy_new_section (GsfInput *source,
41
+ gsf_off_t offset,
42
+ gsf_off_t size);
43
+
44
+ G_END_DECLS
45
+
46
+ #endif /* GSF_INPUT_PROXY_H */
@@ -0,0 +1,48 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-stdio.h: interface for use by the structured file layer to read raw data
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_STDIO_H
23
+ #define GSF_INPUT_STDIO_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <gsf/gsf-input.h>
27
+
28
+ #include <stdio.h>
29
+
30
+ G_BEGIN_DECLS
31
+
32
+ #define GSF_INPUT_STDIO_TYPE (gsf_input_stdio_get_type ())
33
+ #define GSF_INPUT_STDIO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_INPUT_STDIO_TYPE, GsfInputStdio))
34
+ #define GSF_IS_INPUT_STDIO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_INPUT_STDIO_TYPE))
35
+
36
+ typedef struct _GsfInputStdio GsfInputStdio;
37
+
38
+ GType gsf_input_stdio_get_type (void) G_GNUC_CONST;
39
+ /* void gsf_input_stdio_register_type (GTypeModule *module); glib dynamic types are not thread safe */
40
+
41
+ GsfInput *gsf_input_stdio_new (char const *filename, GError **err);
42
+
43
+ GsfInput *gsf_input_stdio_new_FILE (char const *filename, FILE *file,
44
+ gboolean keep_open);
45
+
46
+ G_END_DECLS
47
+
48
+ #endif /* GSF_INPUT_STDIO_H */
@@ -0,0 +1,46 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input-textline.h: a utility wrapper to pull in text, line by line.
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_TEXTLINE_H
23
+ #define GSF_INPUT_TEXTLINE_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <gsf/gsf-input.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ #define GSF_INPUT_TEXTLINE_TYPE (gsf_input_textline_get_type ())
31
+ #define GSF_INPUT_TEXTLINE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_INPUT_TEXTLINE_TYPE, GsfInputTextline))
32
+ #define GSF_IS_INPUT_TEXTLINE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_INPUT_TEXTLINE_TYPE))
33
+
34
+ typedef struct _GsfInputTextline GsfInputTextline;
35
+
36
+ GType gsf_input_textline_get_type (void) G_GNUC_CONST;
37
+ /* void gsf_input_textline_register_type (GTypeModule *module); glib dynamic types are not thread safe */
38
+
39
+
40
+ GsfInput *gsf_input_textline_new (GsfInput *source);
41
+ unsigned char *gsf_input_textline_ascii_gets (GsfInputTextline *textline);
42
+ guint8 *gsf_input_textline_utf8_gets (GsfInputTextline *textline);
43
+
44
+ G_END_DECLS
45
+
46
+ #endif /* GSF_INPUT_TEXTLINE_H */
@@ -0,0 +1,69 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-input.h: abstract interface for reading data
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_INPUT_H
23
+ #define GSF_INPUT_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <sys/types.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ #define GSF_INPUT_TYPE (gsf_input_get_type ())
31
+ #define GSF_INPUT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_INPUT_TYPE, GsfInput))
32
+ #define GSF_IS_INPUT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_INPUT_TYPE))
33
+
34
+ GType gsf_input_get_type (void) G_GNUC_CONST;
35
+ /* void gsf_input_register_type (GTypeModule *module); glib dynamic types are not thread safe */
36
+
37
+ char const *gsf_input_name (GsfInput *input);
38
+ GsfInfile *gsf_input_container (GsfInput *input);
39
+
40
+ GsfInput *gsf_input_dup (GsfInput *input, GError **err);
41
+ GsfInput *gsf_input_sibling (GsfInput const *input, char const *name, GError **err);
42
+ gsf_off_t gsf_input_size (GsfInput *input);
43
+ gboolean gsf_input_eof (GsfInput *input);
44
+ guint8 const *gsf_input_read (GsfInput *input, size_t num_bytes,
45
+ guint8 *optional_buffer);
46
+ /* For bindings _only_! */
47
+ guint8 * gsf_input_read0 (GsfInput *input, size_t num_bytes,
48
+ size_t *bytes_read);
49
+
50
+ gsf_off_t gsf_input_remaining (GsfInput *input);
51
+ gsf_off_t gsf_input_tell (GsfInput *input);
52
+ gboolean gsf_input_seek (GsfInput *input,
53
+ gsf_off_t offset, GSeekType whence);
54
+
55
+ GDateTime * gsf_input_get_modtime (GsfInput *input);
56
+
57
+ /* Utilities */
58
+ gboolean gsf_input_copy (GsfInput *input, GsfOutput *output);
59
+ GsfInput *gsf_input_uncompress (GsfInput *src);
60
+
61
+ GQuark gsf_input_error_id (void);
62
+ #ifndef GSF_DISABLE_DEPRECATED
63
+ /* deprecated in 1.12.0, use gsf_input_error_id */
64
+ GQuark gsf_input_error (void);
65
+ #endif /* GSF_DISABLE_DEPRECATED */
66
+
67
+ G_END_DECLS
68
+
69
+ #endif /* GSF_INPUT_H */
@@ -0,0 +1,225 @@
1
+ /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /*
3
+ * gsf-libxml.h: Utility wrappers for using gsf with libxml
4
+ *
5
+ * Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
6
+ *
7
+ * This program is free software; you can redistribute it and/or
8
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public License
17
+ * along with this program; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
19
+ * USA
20
+ */
21
+
22
+ #ifndef GSF_LIBXML_H
23
+ #define GSF_LIBXML_H
24
+
25
+ #include <gsf/gsf-fwd.h>
26
+ #include <libxml/tree.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ /****************************************************************************/
31
+ /* GSF wrappers for libxml2 */
32
+ xmlParserCtxt *gsf_xml_parser_context (GsfInput *input);
33
+ #if 0
34
+ /* this is cleaner, tack it on for 2.0 */
35
+ xmlSAXHandlerPtr sax, gpointer user);
36
+ #endif
37
+ int gsf_xmlDocFormatDump (GsfOutput *output,
38
+ xmlDoc *cur,
39
+ char const *encoding,
40
+ gboolean format);
41
+
42
+ typedef gboolean (*GsfXMLProbeFunc) (const xmlChar *name,
43
+ const xmlChar *prefix,
44
+ const xmlChar *URI,
45
+ int nb_namespaces,
46
+ const xmlChar **namespaces,
47
+ int nb_attributes,
48
+ int nb_defaulted,
49
+ const xmlChar **attributes);
50
+ gboolean gsf_xml_probe (GsfInput *input,
51
+ GsfXMLProbeFunc func);
52
+
53
+ /****************************************************************************/
54
+ /* Simplified wrapper to SAX based xml import */
55
+
56
+ /**
57
+ * GsfXMLContent:
58
+ * @GSF_XML_NO_CONTENT: node has no cstr contents
59
+ * @GSF_XML_CONTENT: node has cstr contents
60
+ * @GSF_XML_SHARED_CONTENT: node has contents that is shared with children
61
+ * @GSF_XML_2ND: node is second or later occurrence
62
+ *
63
+ * Controls the handling of character data within a parser node.
64
+ */
65
+
66
+ typedef enum {
67
+ GSF_XML_NO_CONTENT = FALSE,
68
+ GSF_XML_CONTENT,
69
+ GSF_XML_SHARED_CONTENT,
70
+ GSF_XML_2ND /* Second definition */
71
+ } GsfXMLContent;
72
+ typedef gboolean (*GsfXMLInUnknownFunc) (GsfXMLIn *xin,
73
+ xmlChar const *elem, xmlChar const **attrs);
74
+ typedef void (*GsfXMLInExtDtor) (GsfXMLIn *xin, gpointer old_state);
75
+
76
+ struct _GsfXMLIn {
77
+ /* public state : read only */
78
+ gpointer user_state;
79
+ GString *content;
80
+ GsfXMLInDoc const *doc;
81
+ GsfXMLInNode const *node; /* current node (not on the stack) */
82
+ /*< private >*/
83
+ GSList *node_stack; /* stack of GsfXMLInNode */
84
+ };
85
+
86
+ struct _GsfXMLInNode {
87
+ char const *id; /* unique in the entire tree */
88
+ int ns_id;
89
+ char const *name;
90
+ char const *parent_id;
91
+ void (*start) (GsfXMLIn *xin, xmlChar const **attrs);
92
+ void (*end) (GsfXMLIn *xin, GsfXMLBlob *unknown);
93
+
94
+ union {
95
+ int v_int;
96
+ gboolean v_bool;
97
+ gpointer v_blob;
98
+ char const *v_str;
99
+ } user_data;
100
+ GsfXMLContent has_content;
101
+
102
+ unsigned int check_children_for_ns : 1;
103
+ unsigned int share_children_with_parent : 1;
104
+ };
105
+
106
+ struct _GsfXMLInNS {
107
+ char const *uri;
108
+ unsigned ns_id;
109
+ };
110
+
111
+ #define GSF_XML_IN_NS(id, uri) \
112
+ { uri, id }
113
+ #define GSF_XML_IN_NS_END \
114
+ { NULL, 0 }
115
+
116
+ #define GSF_XML_IN_NODE_FULL(parent_id, id, ns, name, has_content, \
117
+ share_children_with_parent, check_ns, start, end, user) \
118
+ { \
119
+ #id, ns, name, #parent_id, start, end, { user }, has_content, \
120
+ check_ns, share_children_with_parent, \
121
+ }
122
+
123
+ #define GSF_XML_IN_NODE(parent_id, id, ns, name, has_content, start, end) \
124
+ GSF_XML_IN_NODE_FULL(parent_id, id, ns, name, has_content, \
125
+ FALSE, FALSE, start, end, 0)
126
+ #define GSF_XML_IN_NODE_END \
127
+ { NULL, 0, NULL, NULL, NULL, NULL, { 0 }, GSF_XML_NO_CONTENT, FALSE, FALSE }
128
+
129
+ GType gsf_xml_in_doc_get_type (void);
130
+ GsfXMLInDoc *gsf_xml_in_doc_new (GsfXMLInNode const *nodes, GsfXMLInNS const *ns);
131
+ void gsf_xml_in_doc_free (GsfXMLInDoc *doc);
132
+ gboolean gsf_xml_in_doc_parse (GsfXMLInDoc *doc, GsfInput *input,
133
+ gpointer user_state);
134
+ void gsf_xml_in_doc_add_nodes (GsfXMLInDoc *doc,
135
+ GsfXMLInNode const *nodes);
136
+ void gsf_xml_in_doc_set_unknown_handler (GsfXMLInDoc *doc,
137
+ GsfXMLInUnknownFunc handler);
138
+
139
+ void gsf_xml_in_push_state (GsfXMLIn *xin, GsfXMLInDoc const *doc,
140
+ gpointer new_state, GsfXMLInExtDtor dtor,
141
+ xmlChar const **attrs);
142
+
143
+ GsfInput *gsf_xml_in_get_input (GsfXMLIn const *xin);
144
+ char const *gsf_xml_in_check_ns (GsfXMLIn const *xin, char const *str,
145
+ unsigned int ns_id);
146
+ gboolean gsf_xml_in_namecmp (GsfXMLIn const *xin, char const *str,
147
+ unsigned int ns_id, char const *name);
148
+ void gsf_xml_in_set_silent_unknowns (GsfXMLIn *xin, gboolean silent);
149
+
150
+ GType gsf_xml_in_ns_get_type (void);
151
+
152
+ /****************************************************************************/
153
+ /* Simplified GSF based xml export (does not use libxml) */
154
+
155
+ struct GsfXMLOutClass_ {
156
+ GObjectClass base;
157
+
158
+ /*< private >*/
159
+ /* Padding for future expansion */
160
+ void (*_gsf_reserved1) (void);
161
+ void (*_gsf_reserved2) (void);
162
+ void (*_gsf_reserved3) (void);
163
+ void (*_gsf_reserved4) (void);
164
+ };
165
+
166
+ struct _GsfXMLOut {
167
+ GObject base;
168
+ GsfOutput *output;
169
+
170
+ /*< private >*/
171
+ struct _GsfXMLOutPrivate *priv;
172
+ };
173
+
174
+ #define GSF_XML_OUT_TYPE (gsf_xml_out_get_type ())
175
+ #define GSF_XML_OUT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSF_XML_OUT_TYPE, GsfXMLOut))
176
+ #define GSF_IS_XML_OUT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSF_XML_OUT_TYPE))
177
+
178
+ GType gsf_xml_out_get_type (void) G_GNUC_CONST;
179
+ /* void gsf_xml_out_register_type (GTypeModule *module); glib dynamic types are not thread safe */
180
+
181
+ GsfXMLOut *gsf_xml_out_new (GsfOutput *output);
182
+
183
+ void gsf_xml_out_set_doc_type (GsfXMLOut *xout, char const *type);
184
+ void gsf_xml_out_start_element (GsfXMLOut *xout, char const *id);
185
+ char const *gsf_xml_out_end_element (GsfXMLOut *xout);
186
+
187
+ gboolean gsf_xml_out_get_pretty_print (GsfXMLOut *xout);
188
+ gboolean gsf_xml_out_set_pretty_print (GsfXMLOut *xout, gboolean pp);
189
+
190
+ void gsf_xml_out_simple_element (GsfXMLOut *xout, char const *id,
191
+ char const *content);
192
+ void gsf_xml_out_simple_int_element (GsfXMLOut *xout, char const *id,
193
+ int val);
194
+ void gsf_xml_out_simple_float_element (GsfXMLOut *xout, char const *id,
195
+ double val, int precision);
196
+
197
+ void gsf_xml_out_add_cstr_unchecked (GsfXMLOut *xout, char const *id,
198
+ char const *val_utf8);
199
+ void gsf_xml_out_add_cstr (GsfXMLOut *xout, char const *id,
200
+ char const *val_utf8);
201
+ void gsf_xml_out_add_bool (GsfXMLOut *xout, char const *id,
202
+ gboolean val);
203
+ void gsf_xml_out_add_int (GsfXMLOut *xout, char const *id,
204
+ int val);
205
+ void gsf_xml_out_add_uint (GsfXMLOut *xout, char const *id,
206
+ unsigned int val);
207
+ void gsf_xml_out_add_float (GsfXMLOut *xout, char const *id,
208
+ double val, int precision);
209
+ void gsf_xml_out_add_color (GsfXMLOut *xout, char const *id,
210
+ unsigned int r, unsigned int g, unsigned int b);
211
+ void gsf_xml_out_add_base64 (GsfXMLOut *xout, char const *id,
212
+ guint8 const *data, unsigned int len);
213
+ void gsf_xml_out_add_enum (GsfXMLOut *xout, char const *id,
214
+ GType etype, gint val);
215
+ void gsf_xml_out_add_gvalue (GsfXMLOut *xout, char const *id,
216
+ GValue const *val);
217
+
218
+ /****************************************************************************/
219
+ /* Some general utilities */
220
+ gboolean gsf_xml_gvalue_from_str (GValue *res, GType t, char const *str);
221
+ GsfOutput *gsf_xml_out_get_output (GsfXMLOut const *xout);
222
+
223
+ G_END_DECLS
224
+
225
+ #endif /* GSF_LIBXML_H */