summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-22 19:18:44 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-22 19:18:44 +0000
commited9097a4cb840cc158ab839b8048132fcb2a2013 (patch)
tree3b0e6ebf649da631b442674dc434545baaa3eee7 /ext
parentcbf2c76c4f737c2741aa6733c460e8786577c1b0 (diff)
* ext/syck: suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/syck/emitter.c66
-rw-r--r--ext/syck/handler.c12
-rw-r--r--ext/syck/implicit.c9
-rw-r--r--ext/syck/node.c4
-rw-r--r--ext/syck/rubyext.c21
-rw-r--r--ext/syck/syck.c14
-rw-r--r--ext/syck/syck.h44
-rw-r--r--ext/syck/token.c2
-rw-r--r--ext/syck/yaml2byte.c13
9 files changed, 102 insertions, 83 deletions
diff --git a/ext/syck/emitter.c b/ext/syck/emitter.c
index 9c8ab8d49b..e80c8d2e15 100644
--- a/ext/syck/emitter.c
+++ b/ext/syck/emitter.c
@@ -282,7 +282,7 @@ syck_emitter_clear( SyckEmitter *e )
* Raw write to the emitter buffer.
*/
void
-syck_emitter_write( SyckEmitter *e, char *str, long len )
+syck_emitter_write( SyckEmitter *e, const char *str, long len )
{
long at;
ASSERT( str != NULL )
@@ -392,7 +392,7 @@ syck_emit( SyckEmitter *e, st_data_t n )
/* Look for anchor */
if ( e->anchors != NULL &&
st_lookup( e->markers, n, (st_data_t *)&oid ) &&
- st_lookup( e->anchors, (st_data_t)oid, (st_data_t *)&anchor_name ) )
+ st_lookup( e->anchors, (st_data_t)oid, (void *)&anchor_name ) )
{
if ( e->anchored == NULL )
{
@@ -438,7 +438,7 @@ end_emit:
* and the implicit tag which would be assigned to this node. If a tag is
* required, write the tag.
*/
-void syck_emit_tag( SyckEmitter *e, char *tag, char *ignore )
+void syck_emit_tag( SyckEmitter *e, const char *tag, const char *ignore )
{
SyckLevel *lvl;
if ( tag == NULL ) return;
@@ -457,7 +457,7 @@ void syck_emit_tag( SyckEmitter *e, char *tag, char *ignore )
int skip = 4 + strlen( YAML_DOMAIN ) + 1;
syck_emitter_write( e, tag + skip, taglen - skip );
} else {
- char *subd = tag + 4;
+ const char *subd = tag + 4;
while ( *subd != ':' && *subd != '\0' ) subd++;
if ( *subd == ':' ) {
if ( subd - tag > ( strlen( YAML_DOMAIN ) + 5 ) &&
@@ -539,7 +539,7 @@ void syck_emit_indent( SyckEmitter *e )
* Basic printable test for LATIN-1 characters.
*/
int
-syck_scan_scalar( int req_width, char *cursor, long len )
+syck_scan_scalar( int req_width, const char *cursor, long len )
{
long i = 0, start = 0;
int flags = SCAN_NONE;
@@ -639,13 +639,14 @@ syck_scan_scalar( int req_width, char *cursor, long len )
* All scalars should be emitted through this function, which determines an appropriate style,
* tag and indent.
*/
-void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style, int force_indent, int force_width,
- char keep_nl, char *str, long len )
+void syck_emit_scalar( SyckEmitter *e, const char *tag, enum scalar_style force_style, int force_indent, int force_width,
+ char keep_nl, const char *str, long len )
{
enum scalar_style favor_style = scalar_literal;
SyckLevel *parent = syck_emitter_parent_level( e );
SyckLevel *lvl = syck_emitter_current_level( e );
int scan = 0;
+ const char *match_implicit;
char *implicit;
if ( str == NULL ) str = "";
@@ -659,10 +660,10 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
}
scan = syck_scan_scalar( force_width, str, len );
- implicit = syck_match_implicit( str, len );
+ match_implicit = syck_match_implicit( str, len );
/* quote strings which default to implicits */
- implicit = syck_taguri( YAML_DOMAIN, implicit, strlen( implicit ) );
+ implicit = syck_taguri( YAML_DOMAIN, match_implicit, strlen( match_implicit ) );
if ( syck_tagcmp( tag, implicit ) != 0 && syck_tagcmp( tag, "tag:yaml.org,2002:str" ) == 0 ) {
force_style = scalar_2quote;
} else {
@@ -773,7 +774,7 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
}
void
-syck_emitter_escape( SyckEmitter *e, char *src, long len )
+syck_emitter_escape( SyckEmitter *e, const char *src, long len )
{
int i;
for( i = 0; i < len; i++ )
@@ -802,12 +803,13 @@ syck_emitter_escape( SyckEmitter *e, char *src, long len )
/*
* Outputs a single-quoted block.
*/
-void syck_emit_1quoted( SyckEmitter *e, int width, char *str, long len )
+void
+syck_emit_1quoted( SyckEmitter *e, int width, const char *str, long len )
{
char do_indent = 0;
- char *mark = str;
- char *start = str;
- char *end = str;
+ const char *mark = str;
+ const char *start = str;
+ const char *end = str;
syck_emitter_write( e, "'", 1 );
while ( mark < str + len ) {
if ( do_indent ) {
@@ -849,12 +851,13 @@ void syck_emit_1quoted( SyckEmitter *e, int width, char *str, long len )
/*
* Outputs a double-quoted block.
*/
-void syck_emit_2quoted( SyckEmitter *e, int width, char *str, long len )
+void
+syck_emit_2quoted( SyckEmitter *e, int width, const char *str, long len )
{
char do_indent = 0;
- char *mark = str;
- char *start = str;
- char *end = str;
+ const char *mark = str;
+ const char *start = str;
+ const char *end = str;
syck_emitter_write( e, "\"", 1 );
while ( mark < str + len ) {
if ( do_indent > 0 ) {
@@ -909,11 +912,12 @@ void syck_emit_2quoted( SyckEmitter *e, int width, char *str, long len )
/*
* Outputs a literal block.
*/
-void syck_emit_literal( SyckEmitter *e, char keep_nl, char *str, long len )
+void
+syck_emit_literal( SyckEmitter *e, char keep_nl, const char *str, long len )
{
- char *mark = str;
- char *start = str;
- char *end = str;
+ const char *mark = str;
+ const char *start = str;
+ const char *end = str;
syck_emitter_write( e, "|", 1 );
if ( keep_nl == NL_CHOMP ) {
syck_emitter_write( e, "-", 1 );
@@ -944,11 +948,12 @@ void syck_emit_literal( SyckEmitter *e, char keep_nl, char *str, long len )
/*
* Outputs a folded block.
*/
-void syck_emit_folded( SyckEmitter *e, int width, char keep_nl, char *str, long len )
+void
+syck_emit_folded( SyckEmitter *e, int width, char keep_nl, const char *str, long len )
{
- char *mark = str;
- char *start = str;
- char *end = str;
+ const char *mark = str;
+ const char *start = str;
+ const char *end = str;
syck_emitter_write( e, ">", 1 );
if ( keep_nl == NL_CHOMP ) {
syck_emitter_write( e, "-", 1 );
@@ -993,7 +998,7 @@ void syck_emit_folded( SyckEmitter *e, int width, char keep_nl, char *str, long
/*
* Begins emission of a sequence.
*/
-void syck_emit_seq( SyckEmitter *e, char *tag, enum seq_style style )
+void syck_emit_seq( SyckEmitter *e, const char *tag, enum seq_style style )
{
SyckLevel *parent = syck_emitter_parent_level( e );
SyckLevel *lvl = syck_emitter_current_level( e );
@@ -1014,7 +1019,8 @@ void syck_emit_seq( SyckEmitter *e, char *tag, enum seq_style style )
/*
* Begins emission of a mapping.
*/
-void syck_emit_map( SyckEmitter *e, char *tag, enum map_style style )
+void
+syck_emit_map( SyckEmitter *e, const char *tag, enum map_style style )
{
SyckLevel *parent = syck_emitter_parent_level( e );
SyckLevel *lvl = syck_emitter_current_level( e );
@@ -1218,10 +1224,10 @@ syck_emitter_mark_node( SyckEmitter *e, st_data_t n )
e->anchors = st_init_numtable();
}
- if ( ! st_lookup( e->anchors, (st_data_t)oid, (st_data_t *)&anchor_name ) )
+ if ( ! st_lookup( e->anchors, (st_data_t)oid, (void *)&anchor_name ) )
{
int idx = 0;
- char *anc = ( e->anchor_format == NULL ? DEFAULT_ANCHOR_FORMAT : e->anchor_format );
+ const char *anc = ( e->anchor_format == NULL ? DEFAULT_ANCHOR_FORMAT : e->anchor_format );
/*
* Second time hitting this object, let's give it an anchor
diff --git a/ext/syck/handler.c b/ext/syck/handler.c
index 56fe838fbd..d5889fc587 100644
--- a/ext/syck/handler.c
+++ b/ext/syck/handler.c
@@ -37,7 +37,7 @@ syck_hdlr_add_anchor( SyckParser *p, char *a, SyckNode *n )
if ( p->bad_anchors != NULL )
{
SyckNode *bad;
- if ( st_lookup( p->bad_anchors, (st_data_t)a, (st_data_t *)&bad ) )
+ if ( st_lookup( p->bad_anchors, (st_data_t)a, (void *)&bad ) )
{
if ( n->kind != syck_str_kind )
{
@@ -50,7 +50,7 @@ syck_hdlr_add_anchor( SyckParser *p, char *a, SyckNode *n )
{
p->anchors = st_init_strtable();
}
- if ( st_lookup( p->anchors, (st_data_t)a, (st_data_t *)&ntmp ) )
+ if ( st_lookup( p->anchors, (st_data_t)a, (void *)&ntmp ) )
{
if ( ntmp != (void *)1 )
{
@@ -70,7 +70,7 @@ syck_hdlr_remove_anchor( SyckParser *p, char *a )
{
p->anchors = st_init_strtable();
}
- if ( st_delete( p->anchors, (st_data_t *)&atmp, (st_data_t *)&ntmp ) )
+ if ( st_delete( p->anchors, (void *)&atmp, (void *)&ntmp ) )
{
if ( ntmp != (void *)1 )
{
@@ -87,7 +87,7 @@ syck_hdlr_get_anchor( SyckParser *p, char *a )
if ( p->anchors != NULL )
{
- if ( st_lookup( p->anchors, (st_data_t)a, (st_data_t *)&n ) )
+ if ( st_lookup( p->anchors, (st_data_t)a, (void *)&n ) )
{
if ( n != (void *)1 )
{
@@ -100,7 +100,7 @@ syck_hdlr_get_anchor( SyckParser *p, char *a )
{
p->bad_anchors = st_init_strtable();
}
- if ( ! st_lookup( p->bad_anchors, (st_data_t)a, (st_data_t *)&n ) )
+ if ( ! st_lookup( p->bad_anchors, (st_data_t)a, (void *)&n ) )
{
n = (p->bad_anchor_handler)( p, a );
st_insert( p->bad_anchors, (st_data_t)a, (st_data_t)n );
@@ -155,7 +155,7 @@ syck_xprivate( char *type_id, int type_len )
}
char *
-syck_taguri( char *domain, char *type_id, int type_len )
+syck_taguri( const char *domain, const char *type_id, int type_len )
{
char *uri = S_ALLOC_N( char, strlen( domain ) + type_len + 14 );
uri[0] = '\0';
diff --git a/ext/syck/implicit.c b/ext/syck/implicit.c
index d356faf7d9..2e17da58f3 100644
--- a/ext/syck/implicit.c
+++ b/ext/syck/implicit.c
@@ -21,7 +21,7 @@
void
try_tag_implicit( SyckNode *n, int taguri )
{
- char *tid = "";
+ const char *tid = "";
switch ( n->kind )
{
case syck_str_kind:
@@ -45,9 +45,10 @@ try_tag_implicit( SyckNode *n, int taguri )
}
}
-char *syck_match_implicit( char *str, size_t len )
+const char *
+syck_match_implicit( const char *str, size_t len )
{
- char *cursor, *limit, *marker;
+ const char *cursor, *limit, *marker;
cursor = str;
limit = str + len;
@@ -1585,7 +1586,7 @@ yy201: ++YYCURSOR;
/* Remove ending fragment and compare types */
int
-syck_tagcmp( char *tag1, char *tag2 )
+syck_tagcmp( const char *tag1, const char *tag2 )
{
if ( tag1 == tag2 ) return 1;
if ( tag1 == NULL || tag2 == NULL ) return 0;
diff --git a/ext/syck/node.c b/ext/syck/node.c
index 28fc78c077..cbc2adb6c5 100644
--- a/ext/syck/node.c
+++ b/ext/syck/node.c
@@ -100,13 +100,13 @@ syck_alloc_str()
}
SyckNode *
-syck_new_str( char *str, enum scalar_style style )
+syck_new_str( const char *str, enum scalar_style style )
{
return syck_new_str2( str, strlen( str ), style );
}
SyckNode *
-syck_new_str2( char *str, long len, enum scalar_style style )
+syck_new_str2( const char *str, long len, enum scalar_style style )
{
SyckNode *n;
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
index 76e8279601..f9969a3e37 100644
--- a/ext/syck/rubyext.c
+++ b/ext/syck/rubyext.c
@@ -50,7 +50,7 @@ typedef struct {
* symbols and constants
*/
static ID s_new, s_utc, s_at, s_to_f, s_to_i, s_read, s_binmode, s_call, s_cmp, s_transfer, s_update, s_dup, s_haskey, s_match, s_keys, s_unpack, s_tr_bang, s_default_set, s_tag_read_class, s_tag_subclasses, s_resolver, s_push, s_emitter, s_level, s_detect_implicit, s_node_import, s_out, s_input, s_intern, s_transform, s_yaml_new, s_yaml_initialize, s_node_export, s_to_yaml, s_write, s_set_resolver;
-static ID s_tags, s_domain, s_kind, s_name, s_options, s_type_id, s_type_id_set, s_style, s_style_set, s_value, s_value_set;
+static ID s_tags, s_kind, s_name, s_options, s_type_id, s_type_id_set, s_style, s_style_set, s_value, s_value_set;
static VALUE sym_model, sym_generic, sym_input, sym_bytecode;
static VALUE sym_scalar, sym_seq, sym_map;
static VALUE sym_1quote, sym_2quote, sym_fold, sym_literal, sym_plain, sym_inline;
@@ -71,7 +71,7 @@ static VALUE syck_node_transform( VALUE );
* handler prototypes
*/
SYMID rb_syck_load_handler _((SyckParser *, SyckNode *));
-void rb_syck_err_handler _((SyckParser *, char *));
+void rb_syck_err_handler _((SyckParser *, const char *));
SyckNode * rb_syck_bad_anchor_handler _((SyckParser *, char *));
void rb_syck_output_handler _((SyckEmitter *, char *, long));
void rb_syck_emitter_handler _((SyckEmitter *, st_data_t));
@@ -104,7 +104,8 @@ rb_syck_compile(self, port)
int taint;
char *ret;
VALUE bc;
- bytestring_t *sav;
+ bytestring_t *sav;
+ void *data;
SyckParser *parser = syck_new_parser();
taint = syck_parser_assign_io(parser, &port);
@@ -113,7 +114,7 @@ rb_syck_compile(self, port)
syck_parser_implicit_typing( parser, 0 );
syck_parser_taguri_expansion( parser, 0 );
oid = syck_parse( parser );
- syck_lookup_sym( parser, oid, (char **)&sav );
+ if (syck_lookup_sym( parser, oid, &data )) sav = data;
ret = S_ALLOCA_N( char, strlen( sav->buffer ) + 3 );
ret[0] = '\0';
@@ -646,7 +647,7 @@ rb_syck_load_handler(p, n)
void
rb_syck_err_handler(p, msg)
SyckParser *p;
- char *msg;
+ const char *msg;
{
char *endl = p->cursor;
@@ -962,7 +963,7 @@ syck_resolver_node_import( self, node )
VALUE self, node;
{
SyckNode *n;
- VALUE obj;
+ VALUE obj = Qnil;
int i = 0;
Data_Get_Struct(node, SyckNode, n);
@@ -1229,7 +1230,7 @@ VALUE
syck_defaultresolver_detect_implicit( self, val )
VALUE self, val;
{
- char *type_id;
+ const char *type_id;
VALUE tmp = rb_check_string_type(val);
if ( !NIL_P(tmp) )
@@ -1423,6 +1424,10 @@ syck_node_mark( n )
rb_gc_mark( syck_map_read( n, map_value, i ) );
}
break;
+
+ case syck_str_kind:
+ /* nothing */
+ break;
}
#if 0 /* maybe needed */
if ( n->shortcut ) syck_node_mark( n->shortcut ); /* caution: maybe cyclic */
@@ -1793,7 +1798,7 @@ syck_node_transform( self )
VALUE self;
{
VALUE t;
- SyckNode *n;
+ SyckNode *n = NULL;
SyckNode *orig_n;
Data_Get_Struct(self, SyckNode, orig_n);
t = Data_Wrap_Struct( cNode, syck_node_mark, syck_free_node, 0 );
diff --git a/ext/syck/syck.c b/ext/syck/syck.c
index a83c8813c1..43c7b2d843 100644
--- a/ext/syck/syck.c
+++ b/ext/syck/syck.c
@@ -32,7 +32,7 @@ syck_assert( char *file_name, unsigned line_num )
* Allocates and copies a string
*/
char *
-syck_strndup( char *buf, long len )
+syck_strndup( const char *buf, long len )
{
char *new = S_ALLOC_N( char, len + 1 );
S_MEMZERO( new, char, len + 1 );
@@ -178,7 +178,7 @@ syck_new_parser()
}
int
-syck_add_sym( SyckParser *p, char *data )
+syck_add_sym( SyckParser *p, void *data )
{
SYMID id = 0;
if ( p->syms == NULL )
@@ -191,10 +191,14 @@ syck_add_sym( SyckParser *p, char *data )
}
int
-syck_lookup_sym( SyckParser *p, SYMID id, char **data )
+syck_lookup_sym( SyckParser *p, SYMID id, void **datap )
{
+ st_data_t data = (st_data_t)*datap;
+ int ret;
if ( p->syms == NULL ) return 0;
- return st_lookup( p->syms, id, (st_data_t *)data );
+ ret = st_lookup( p->syms, id, &data );
+ *datap = (void *)data;
+ return ret;
}
int
@@ -494,7 +498,7 @@ syck_parse( SyckParser *p )
}
void
-syck_default_error_handler( SyckParser *p, char *msg )
+syck_default_error_handler( SyckParser *p, const char *msg )
{
printf( "Error at [Line %d, Col %d]: %s\n",
p->linect,
diff --git a/ext/syck/syck.h b/ext/syck/syck.h
index e7d07e9c0d..9d595f8c09 100644
--- a/ext/syck/syck.h
+++ b/ext/syck/syck.h
@@ -156,7 +156,7 @@ typedef struct _syck_str SyckIoStr;
typedef struct _syck_level SyckLevel;
typedef SYMID (*SyckNodeHandler)(SyckParser *, SyckNode *);
-typedef void (*SyckErrorHandler)(SyckParser *, char *);
+typedef void (*SyckErrorHandler)(SyckParser *, const char *);
typedef SyckNode * (*SyckBadAnchorHandler)(SyckParser *, char *);
typedef long (*SyckIoFileRead)(char *, SyckIoFile *, long, long);
typedef long (*SyckIoStrRead)(char *, SyckIoStr *, long, long);
@@ -347,19 +347,19 @@ void syck_hdlr_remove_anchor( SyckParser *, char * );
SyckNode *syck_hdlr_get_anchor( SyckParser *, char * );
void syck_add_transfer( char *, SyckNode *, int );
char *syck_xprivate( char *, int );
-char *syck_taguri( char *, char *, int );
-int syck_tagcmp( char *, char * );
-int syck_add_sym( SyckParser *, char * );
-int syck_lookup_sym( SyckParser *, SYMID, char ** );
+char *syck_taguri( const char *, const char *, int );
+int syck_tagcmp( const char *, const char * );
+int syck_add_sym( SyckParser *, void * );
+int syck_lookup_sym( SyckParser *, SYMID, void ** );
int syck_try_implicit( SyckNode * );
char *syck_type_id_to_uri( char * );
void try_tag_implicit( SyckNode *, int );
-char *syck_match_implicit( char *, size_t );
+const char *syck_match_implicit( const char *, size_t );
/*
* API prototypes
*/
-char *syck_strndup( char *, long );
+char *syck_strndup( const char *, long );
long syck_io_file_read( char *, SyckIoFile *, long, long );
long syck_io_str_read( char *, SyckIoStr *, long, long );
char *syck_base64enc( char *, long );
@@ -371,20 +371,20 @@ void syck_output_handler( SyckEmitter *, SyckOutputHandler );
void syck_emitter_handler( SyckEmitter *, SyckEmitterHandler );
void syck_free_emitter( SyckEmitter * );
void syck_emitter_clear( SyckEmitter * );
-void syck_emitter_write( SyckEmitter *, char *, long );
-void syck_emitter_escape( SyckEmitter *, char *, long );
+void syck_emitter_write( SyckEmitter *, const char *, long );
+void syck_emitter_escape( SyckEmitter *, const char *, long );
void syck_emitter_flush( SyckEmitter *, long );
void syck_emit( SyckEmitter *, st_data_t );
-void syck_emit_scalar( SyckEmitter *, char *, enum scalar_style, int, int, char, char *, long );
-void syck_emit_1quoted( SyckEmitter *, int, char *, long );
-void syck_emit_2quoted( SyckEmitter *, int, char *, long );
-void syck_emit_folded( SyckEmitter *, int, char, char *, long );
-void syck_emit_literal( SyckEmitter *, char, char *, long );
-void syck_emit_seq( SyckEmitter *, char *, enum seq_style );
+void syck_emit_scalar( SyckEmitter *, const char *, enum scalar_style, int, int, char, const char *, long );
+void syck_emit_1quoted( SyckEmitter *, int, const char *, long );
+void syck_emit_2quoted( SyckEmitter *, int, const char *, long );
+void syck_emit_folded( SyckEmitter *, int, char, const char *, long );
+void syck_emit_literal( SyckEmitter *, char, const char *, long );
+void syck_emit_seq( SyckEmitter *, const char *, enum seq_style );
void syck_emit_item( SyckEmitter *, st_data_t );
-void syck_emit_map( SyckEmitter *, char *, enum map_style );
+void syck_emit_map( SyckEmitter *, const char *, enum map_style );
void syck_emit_end( SyckEmitter * );
-void syck_emit_tag( SyckEmitter *, char *, char * );
+void syck_emit_tag( SyckEmitter *, const char *, const char * );
void syck_emit_indent( SyckEmitter * );
SyckLevel *syck_emitter_current_level( SyckEmitter * );
SyckLevel *syck_emitter_parent_level( SyckEmitter * );
@@ -396,7 +396,7 @@ void syck_free_parser( SyckParser * );
void syck_parser_set_root_on_error( SyckParser *, SYMID );
void syck_parser_implicit_typing( SyckParser *, int );
void syck_parser_taguri_expansion( SyckParser *, int );
-int syck_scan_scalar( int, char *, long );
+int syck_scan_scalar( int, const char *, long );
void syck_parser_handler( SyckParser *, SyckNodeHandler );
void syck_parser_error_handler( SyckParser *, SyckErrorHandler );
void syck_parser_bad_anchor_handler( SyckParser *, SyckBadAnchorHandler );
@@ -411,7 +411,7 @@ void free_any_io( SyckParser * );
long syck_parser_read( SyckParser * );
long syck_parser_readlen( SyckParser *, long );
SYMID syck_parse( SyckParser * );
-void syck_default_error_handler( SyckParser *, char * );
+void syck_default_error_handler( SyckParser *, const char * );
SYMID syck_yaml2byte_handler( SyckParser *, SyckNode * );
char *syck_yaml2byte( char * );
@@ -423,8 +423,8 @@ SyckNode *syck_alloc_seq();
SyckNode *syck_alloc_str();
void syck_free_node( SyckNode * );
void syck_free_members( SyckNode * );
-SyckNode *syck_new_str( char *, enum scalar_style );
-SyckNode *syck_new_str2( char *, long, enum scalar_style );
+SyckNode *syck_new_str( const char *, enum scalar_style );
+SyckNode *syck_new_str2( const char *, long, enum scalar_style );
void syck_replace_str( SyckNode *, char *, enum scalar_style );
void syck_replace_str2( SyckNode *, char *, long, enum scalar_style );
void syck_str_blow_away_commas( SyckNode * );
@@ -446,7 +446,7 @@ long syck_seq_count( SyckNode * );
/*
* Lexer prototypes
*/
-void syckerror( char * );
+void syckerror( const char * );
int syckparse( void * );
union YYSTYPE;
int sycklex( union YYSTYPE *, SyckParser * );
diff --git a/ext/syck/token.c b/ext/syck/token.c
index 3c6cd1a9cf..cbe2bf992a 100644
--- a/ext/syck/token.c
+++ b/ext/syck/token.c
@@ -2714,7 +2714,7 @@ syckwrap()
}
void
-syckerror( char *msg )
+syckerror( const char *msg )
{
if ( syck_parser_ptr->error_handler == NULL )
syck_parser_ptr->error_handler = syck_default_error_handler;
diff --git a/ext/syck/yaml2byte.c b/ext/syck/yaml2byte.c
index 821a3cd5b5..bbd029cf10 100644
--- a/ext/syck/yaml2byte.c
+++ b/ext/syck/yaml2byte.c
@@ -129,6 +129,7 @@ syck_yaml2byte_handler(p, n)
char *finish;
bytestring_t *val = NULL;
bytestring_t *sav = NULL;
+ void *data;
/*TRACE0("syck_yaml2byte_handler()");*/
val = bytestring_alloc();
if(n->anchor) bytestring_append(val,YAMLBYTE_ANCHOR, n->anchor, NULL);
@@ -189,7 +190,7 @@ syck_yaml2byte_handler(p, n)
for ( i = 0; i < n->data.list->idx; i++ )
{
oid = syck_seq_read( n, i );
- syck_lookup_sym( p, oid, (char **)&sav );
+ if (syck_lookup_sym( p, oid, &data )) sav = data;
bytestring_extend(val, sav);
}
bytestring_append(val,YAMLBYTE_END_BRANCH,NULL,NULL);
@@ -199,10 +200,10 @@ syck_yaml2byte_handler(p, n)
for ( i = 0; i < n->data.pairs->idx; i++ )
{
oid = syck_map_read( n, map_key, i );
- syck_lookup_sym( p, oid, (char **)&sav );
+ if (syck_lookup_sym( p, oid, &data )) sav = data;
bytestring_extend(val, sav);
oid = syck_map_read( n, map_value, i );
- syck_lookup_sym( p, oid, (char **)&sav );
+ if (syck_lookup_sym( p, oid, &data )) sav = data;
bytestring_extend(val, sav);
}
bytestring_append(val,YAMLBYTE_END_BRANCH,NULL,NULL);
@@ -218,7 +219,8 @@ syck_yaml2byte(char *yamlstr)
{
SYMID oid;
char *ret;
- bytestring_t *sav;
+ bytestring_t *sav;
+ void *data;
SyckParser *parser = syck_new_parser();
syck_parser_str_auto( parser, yamlstr, NULL );
@@ -228,7 +230,8 @@ syck_yaml2byte(char *yamlstr)
syck_parser_taguri_expansion( parser, 1 );
oid = syck_parse( parser );
- if ( syck_lookup_sym( parser, oid, (char **)&sav ) == 1 ) {
+ if ( syck_lookup_sym( parser, oid, &data ) ) {
+ sav = data;
ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
ret[0] = '\0';
strcat( ret, "D\n" );