X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmodify-vars.c;h=20898e0a8c525360a88c49ef4556ebfdd2c366af;hb=df034e315b329d26fd6309d19a3f6e53b18e5e3a;hp=bce6ea1bb337daef2736bba4de9c761f0ed4bbeb;hpb=7b98b3a4f58f6dc5a8e9cbc188b627966d5e652d;p=pspp diff --git a/src/modify-vars.c b/src/modify-vars.c index bce6ea1bb3..20898e0a8c 100644 --- a/src/modify-vars.c +++ b/src/modify-vars.c @@ -14,16 +14,17 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include #include -#include +#include "error.h" #include "algorithm.h" #include "alloc.h" #include "bitvector.h" #include "command.h" +#include "dictionary.h" #include "error.h" #include "hash.h" #include "lexer.h" @@ -32,6 +33,9 @@ #include "var.h" #include "vfm.h" +#include "gettext.h" +#define _(msgid) gettext (msgid) + /* FIXME: should change weighting variable, etc. */ /* These control the ordering produced by compare_variables_given_ordering(). */ @@ -83,8 +87,12 @@ cmd_modify_vars (void) size_t i; - lex_match_id ("MODIFY"); - lex_match_id ("VARS"); + if (temporary != 0) + { + msg (SE, _("MODIFY VARS may not be used after TEMPORARY. " + "Temporary transformations will be made permanent.")); + cancel_temporary (); + } vm.reorder_vars = NULL; vm.reorder_cnt = 0; @@ -309,7 +317,7 @@ cmd_modify_vars (void) if (already_encountered & (1 | 4)) { /* Read the data. */ - procedure (NULL, NULL, NULL); + procedure (NULL, NULL); } if (!rearrange_dict (default_dict, &vm)) @@ -343,7 +351,7 @@ compare_variables_given_ordering (const void *a_, const void *b_, if (ordering->positional) result = a->index < b->index ? -1 : a->index > b->index; else - result = strcmp (a->name, b->name); + result = strcasecmp (a->name, b->name); if (!ordering->forward) result = -result; return result; @@ -353,7 +361,7 @@ compare_variables_given_ordering (const void *a_, const void *b_, struct var_renaming { struct variable *var; - char new_name[9]; + char new_name[LONG_NAME_LEN + 1]; }; /* A algo_compare_func that compares new_name members in struct @@ -365,7 +373,7 @@ compare_var_renaming_by_new_name (const void *a_, const void *b_, const struct var_renaming *a = a_; const struct var_renaming *b = b_; - return strcmp (a->new_name, b->new_name); + return strcasecmp (a->new_name, b->new_name); } /* Returns true if performing VM on dictionary D would not cause @@ -382,7 +390,8 @@ validate_var_modification (const struct dictionary *d, struct variable **all_vars; struct variable **keep_vars; struct variable **drop_vars; - size_t all_cnt, keep_cnt, drop_cnt; + size_t keep_cnt, drop_cnt; + int all_cnt; struct var_renaming *var_renaming; int valid;