diff options
author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-19 16:38:02 +0000 |
---|---|---|
committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-19 16:38:02 +0000 |
commit | 360b0a015aba72f62ea2ffee4f52ce2b9132a2d1 (patch) | |
tree | d9ea3de53d9d04bd0234fd061fdcfda9e57910ec /ext/syck/syck.h | |
parent | 94c2e6f18a7e3146802ebc5c08b4cbec627143f5 (diff) | |
download | ruby-360b0a015aba72f62ea2ffee4f52ce2b9132a2d1.tar.gz |
* 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.h | 40 |
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; |