diff options
author | Michael Gran <spk121@yahoo.com> | 2009-08-11 22:01:20 -0700 |
---|---|---|
committer | Michael Gran <spk121@yahoo.com> | 2009-08-11 22:12:22 -0700 |
commit | 9909c3956ae653488657c5909547dfd4b97557cc (patch) | |
tree | 309127222afb8e8b0adc188c8c2b02d338e0e20e | |
parent | 4cd00cc6b2ae47f39b8470325aecb776801b57df (diff) | |
download | guile-9909c3956ae653488657c5909547dfd4b97557cc.tar.gz |
Avoid unitialized and unused warnings in scm_string_append
* libguile/strings.c (scm_string_append): avoid warnings
-rw-r--r-- | libguile/strings.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libguile/strings.c b/libguile/strings.c index 437cedcac..74cebd69b 100644 --- a/libguile/strings.c +++ b/libguile/strings.c @@ -1297,9 +1297,12 @@ SCM_DEFINE (scm_string_append, "string-append", 0, 0, 1, size_t len = 0; int wide = 0; SCM l, s; - char *data; - scm_t_wchar *wdata; int i; + union + { + char *narrow; + scm_t_wchar *wide; + } data; SCM_VALIDATE_REST_ARGUMENT (args); for (l = args; !scm_is_null (l); l = SCM_CDR (l)) @@ -1310,10 +1313,11 @@ SCM_DEFINE (scm_string_append, "string-append", 0, 0, 1, if (!scm_i_is_narrow_string (s)) wide = 1; } + data.narrow = NULL; if (!wide) - res = scm_i_make_string (len, &data); + res = scm_i_make_string (len, &data.narrow); else - res = scm_i_make_wide_string (len, &wdata); + res = scm_i_make_wide_string (len, &data.wide); for (l = args; !scm_is_null (l); l = SCM_CDR (l)) { @@ -1323,20 +1327,20 @@ SCM_DEFINE (scm_string_append, "string-append", 0, 0, 1, len = scm_i_string_length (s); if (!wide) { - memcpy (data, scm_i_string_chars (s), len); - data += len; + memcpy (data.narrow, scm_i_string_chars (s), len); + data.narrow += len; } else { if (scm_i_is_narrow_string (s)) { for (i = 0; i < scm_i_string_length (s); i++) - wdata[i] = (unsigned char) scm_i_string_chars (s)[i]; + data.wide[i] = (unsigned char) scm_i_string_chars (s)[i]; } else - u32_cpy ((scm_t_uint32 *) wdata, + u32_cpy ((scm_t_uint32 *) data.wide, (scm_t_uint32 *) scm_i_string_wide_chars (s), len); - wdata += len; + data.wide += len; } scm_remember_upto_here_1 (s); } |