X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fxforms%2Fcompute.c;h=a508933c68cb7686d2690ec0d75048662b3b4e18;hb=d775f576e4ffc0973c5f183b57b2baa089f555dc;hp=09fc2155abc82c0a678364301b1ea0de6b3fa9c9;hpb=5f19b467a68c1f2b4973c5eb398e5e1b802ef394;p=pspp diff --git a/src/language/xforms/compute.c b/src/language/xforms/compute.c index 09fc2155ab..a508933c68 100644 --- a/src/language/xforms/compute.c +++ b/src/language/xforms/compute.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2009 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009, 2010 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 @@ -173,10 +173,11 @@ compute_str (void *compute_, struct ccase **c, casenumber case_num) if (compute->test == NULL || expr_evaluate_num (compute->test, *c, case_num) == 1.0) { + char *s; + *c = case_unshare (*c); - expr_evaluate_str (compute->rvalue, *c, case_num, - case_str_rw (*c, compute->variable), - compute->width); + s = CHAR_CAST_BUG (char *, case_str_rw (*c, compute->variable)); + expr_evaluate_str (compute->rvalue, *c, case_num, s, compute->width); } return TRNS_CONTINUE; @@ -216,7 +217,8 @@ compute_str_vec (void *compute_, struct ccase **c, casenumber case_num) vr = vector_get_var (compute->vector, rindx - 1); *c = case_unshare (*c); expr_evaluate_str (compute->rvalue, *c, case_num, - case_str_rw (*c, vr), var_get_width (vr)); + CHAR_CAST_BUG (char *, case_str_rw (*c, vr)), + var_get_width (vr)); } return TRNS_CONTINUE;