summaryrefslogtreecommitdiff
path: root/ext/syck/syck.h
diff options
context:
space:
mode:
authorwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-19 16:38:02 +0000
committerwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-08-19 16:38:02 +0000
commit360b0a015aba72f62ea2ffee4f52ce2b9132a2d1 (patch)
treed9ea3de53d9d04bd0234fd061fdcfda9e57910ec /ext/syck/syck.h
parent94c2e6f18a7e3146802ebc5c08b4cbec627143f5 (diff)
* ext/syck/syck.h: Parser definition problems on HP-UX. [ruby-talk:79389]
* ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak. * ext/syck/syck.s (syck_io_file_read): Bad arguments to fread. * ext/syck/rubyext.c: Tainting issues. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck/syck.h')
-rw-r--r--ext/syck/syck.h40
1 files changed, 25 insertions, 15 deletions
diff --git a/ext/syck/syck.h b/ext/syck/syck.h
index 124e6c5d4e..49efd35da0 100644
--- a/ext/syck/syck.h
+++ b/ext/syck/syck.h
@@ -13,7 +13,7 @@
#define SYCK_YAML_MAJOR 1
#define SYCK_YAML_MINOR 0
-#define SYCK_VERSION "0.38"
+#define SYCK_VERSION "0.39"
#define YAML_DOMAIN "yaml.org,2002"
#include <stdio.h>
@@ -152,8 +152,28 @@ enum syck_level_status {
};
/*
- * Parser struct
+ * Parser structs
*/
+struct _syck_file {
+ /* File pointer */
+ FILE *ptr;
+ /* Function which FILE -> buffer */
+ SyckIoFileRead read;
+};
+
+struct _syck_str {
+ /* String buffer pointers */
+ char *beg, *ptr, *end;
+ /* Function which string -> buffer */
+ SyckIoStrRead read;
+};
+
+struct _syck_level {
+ int spaces;
+ char *domain;
+ enum syck_level_status status;
+};
+
struct _syck_parser {
/* Root node */
SYMID root, root_on_error;
@@ -180,25 +200,15 @@ struct _syck_parser {
/* EOF flag */
int eof;
union {
- struct _syck_file {
- FILE *ptr;
- SyckIoFileRead read;
- } *file;
- struct _syck_str {
- char *beg, *ptr, *end;
- SyckIoStrRead read;
- } *str;
+ SyckIoFile *file;
+ SyckIoStr *str;
} io;
/* Symbol table for anchors */
st_table *anchors, *bad_anchors;
/* Optional symbol table for SYMIDs */
st_table *syms;
/* Levels of indentation */
- struct _syck_level {
- int spaces;
- char *domain;
- enum syck_level_status status;
- } *levels;
+ SyckLevel *levels;
int lvl_idx;
int lvl_capa;
void *bonus;