From 6003326d476ae5bb81261395724e85d8d686071d Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Fri, 7 Apr 2017 22:20:23 +0000 Subject: bc-1.07.1 --- dc/array.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) (limited to 'dc/array.c') diff --git a/dc/array.c b/dc/array.c index d97f716..573e8e3 100644 --- a/dc/array.c +++ b/dc/array.c @@ -1,11 +1,12 @@ -/* +/* * implement arrays for dc * - * Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc. + * Copyright (C) 1994, 1997, 1998, 2000, 2006, 2008 + * 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 - * the Free Software Foundation; either version 2, or (at your option) + * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, @@ -14,12 +15,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, you can either send email to this - * program's author (see below) or write to: + * along with this program. If not, see . * - * The Free Software Foundation, Inc. - * 59 Temple Place, Suite 330 - * Boston, MA 02111 USA */ /* This module is the only one that knows what arrays look like. */ @@ -58,15 +55,14 @@ dc_array_set DC_DECLARG((array_id, Index, value)) dc_data value DC_DECLEND { struct dc_array *cur; - struct dc_array *prev=NULL; - struct dc_array *newentry; + struct dc_array *prev = NULL; cur = dc_get_stacked_array(array_id); - while (cur && cur->Index < Index){ + while (cur != NULL && cur->Index < Index){ prev = cur; cur = cur->next; } - if (cur && cur->Index == Index){ + if (cur != NULL && cur->Index == Index){ if (cur->value.dc_type == DC_NUMBER) dc_free_num(&cur->value.v.number); else if (cur->value.dc_type == DC_STRING) @@ -75,11 +71,11 @@ dc_array_set DC_DECLARG((array_id, Index, value)) dc_garbage(" in array", array_id); cur->value = value; }else{ - newentry = dc_malloc(sizeof *newentry); + struct dc_array *newentry = dc_malloc(sizeof *newentry); newentry->Index = Index; newentry->value = value; newentry->next = cur; - if (prev) + if (prev != NULL) prev->next = newentry; else dc_set_stacked_array(array_id, newentry); @@ -93,11 +89,12 @@ dc_array_get DC_DECLARG((array_id, Index)) int array_id DC_DECLSEP int Index DC_DECLEND { - struct dc_array *cur; + struct dc_array *cur = dc_get_stacked_array(array_id); - for (cur=dc_get_stacked_array(array_id); cur; cur=cur->next) - if (cur->Index == Index) - return dc_dup(cur->value); + while (cur != NULL && cur->Index < Index) + cur = cur->next; + if (cur !=NULL && cur->Index == Index) + return dc_dup(cur->value); return dc_int2data(0); } @@ -109,7 +106,7 @@ dc_array_free DC_DECLARG((a_head)) struct dc_array *cur; struct dc_array *next; - for (cur=a_head; cur; cur=next) { + for (cur=a_head; cur!=NULL; cur=next) { next = cur->next; if (cur->value.dc_type == DC_NUMBER) dc_free_num(&cur->value.v.number); @@ -120,3 +117,12 @@ dc_array_free DC_DECLARG((a_head)) free(cur); } } + + +/* + * Local Variables: + * mode: C + * tab-width: 4 + * End: + * vi: set ts=4 : + */ -- cgit v1.2.1