gsf 3.0.9-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 */