X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fxforms%2Frecode.c;h=62cf387eee9faf30b6afa4cff210c17124e76a26;hb=1b3322acf30d531cefe3cdbf7287ec8cde601bcd;hp=12f1eb435f003c5bfe312efcb42f37ff3379b246;hpb=691c25e36fd1ee722dd35419d6110e3876b99f9c;p=pspp-builds.git diff --git a/src/language/xforms/recode.c b/src/language/xforms/recode.c index 12f1eb43..62cf387e 100644 --- a/src/language/xforms/recode.c +++ b/src/language/xforms/recode.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,6 +34,7 @@ #include "libpspp/assertion.h" #include "libpspp/cast.h" #include "libpspp/compiler.h" +#include "libpspp/i18n.h" #include "libpspp/message.h" #include "libpspp/pool.h" #include "libpspp/str.h" @@ -116,12 +117,12 @@ static bool parse_map_in (struct lexer *lexer, struct map_in *, struct pool *, static void set_map_in_generic (struct map_in *, enum map_in_type); static void set_map_in_num (struct map_in *, enum map_in_type, double, double); static void set_map_in_str (struct map_in *, struct pool *, - const struct string *, size_t width); + struct substring, size_t width); static bool parse_map_out (struct lexer *lexer, struct pool *, struct map_out *); static void set_map_out_num (struct map_out *, double); static void set_map_out_str (struct map_out *, struct pool *, - const struct string *); + struct substring); static void enlarge_dst_widths (struct recode_trns *); static void create_dst_vars (struct recode_trns *, struct dictionary *); @@ -318,10 +319,10 @@ parse_map_in (struct lexer *lexer, struct map_in *in, struct pool *pool, return false; else { - set_map_in_str (in, pool, lex_tokstr (lexer), max_src_width); + set_map_in_str (in, pool, lex_tokss (lexer), max_src_width); lex_get (lexer); if (lex_token (lexer) == T_ID - && lex_id_match (ss_cstr ("THRU"), ss_cstr (lex_tokid (lexer)))) + && lex_id_match (ss_cstr ("THRU"), lex_tokss (lexer))) { msg (SE, _("THRU is not allowed with string variables.")); return false; @@ -370,13 +371,13 @@ set_map_in_num (struct map_in *in, enum map_in_type type, double x, double y) right to WIDTH characters long. */ static void set_map_in_str (struct map_in *in, struct pool *pool, - const struct string *string, size_t width) + struct substring string, size_t width) { in->type = MAP_SINGLE; value_init_pool (pool, &in->x, width); value_copy_buf_rpad (&in->x, width, - CHAR_CAST_BUG (uint8_t *, ds_data (string)), - ds_length (string), ' '); + CHAR_CAST_BUG (uint8_t *, ss_data (string)), + ss_length (string), ' '); } /* Parses a mapping output value into OUT, allocating memory from @@ -393,7 +394,7 @@ parse_map_out (struct lexer *lexer, struct pool *pool, struct map_out *out) set_map_out_num (out, SYSMIS); else if (lex_is_string (lexer)) { - set_map_out_str (out, pool, lex_tokstr (lexer)); + set_map_out_str (out, pool, lex_tokss (lexer)); lex_get (lexer); } else if (lex_match_id (lexer, "COPY")) @@ -421,10 +422,10 @@ set_map_out_num (struct map_out *out, double value) /* Sets OUT as a string mapping output with the given VALUE. */ static void set_map_out_str (struct map_out *out, struct pool *pool, - const struct string *value) + const struct substring value) { - const char *string = ds_data (value); - size_t length = ds_length (value); + const char *string = ss_data (value); + size_t length = ss_length (value); if (length == 0) { @@ -632,7 +633,7 @@ find_src_string (struct recode_trns *trns, const uint8_t *value, char *error; error = data_in (ss_buffer (CHAR_CAST_BUG (char *, value), width), - LEGACY_NATIVE, FMT_F, &uv, 0, encoding); + C_ENCODING, FMT_F, &uv, 0, encoding); match = error == NULL; free (error);