X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fexpressions%2Fevaluate.c;h=b7f665d49bc461ff2366700516fd43e88315d415;hb=12f1ba95a6eb660bf60b8e6a1bb09ecffee16630;hp=c2868429b246b6f9dc06d5d739b0629ce80c01e3;hpb=d807ad29cc0d3caa4f0e04ee4b75c70a225cfeaf;p=pspp diff --git a/src/expressions/evaluate.c b/src/expressions/evaluate.c index c2868429b2..b7f665d49b 100644 --- a/src/expressions/evaluate.c +++ b/src/expressions/evaluate.c @@ -14,8 +14,8 @@ 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 "private.h" @@ -127,7 +127,7 @@ cmd_debug_evaluate (void) dump_postfix = 1; else if (lex_match ('(')) { - char name[MAX_VAR_NAME_LEN + 1]; + char name[LONG_NAME_LEN + 1]; struct variable *v; size_t old_value_cnt; int width; @@ -140,7 +140,7 @@ cmd_debug_evaluate (void) if (!lex_force_match ('=')) goto done; - if (token == T_NUM) + if (lex_is_number ()) { width = 0; fprintf (stderr, "(%s = %.2f)", name, tokval); @@ -174,7 +174,7 @@ cmd_debug_evaluate (void) } case_resize (c, old_value_cnt, dict_get_next_value_idx (d)); - if (token == T_NUM) + if (lex_is_number ()) case_data_rw (c, v->fv)->f = tokval; else memcpy (case_data_rw (c, v->fv)->s, ds_data (&tokstr), @@ -198,7 +198,7 @@ cmd_debug_evaluate (void) lex_get (); expr = expr_parse_any (d, optimize); - if (!expr || token != '.') + if (!expr || lex_end_of_command () != CMD_SUCCESS) { if (expr != NULL) expr_free (expr); @@ -248,8 +248,12 @@ cmd_debug_evaluate (void) retval = CMD_SUCCESS; done: - if (c != NULL) - case_destroy (c); + if (c != NULL) + { + case_destroy (c); + free (c); + } + dict_destroy (d); return retval; }