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 <config.h>
#include "private.h"
size_t name_len = strcspn (*name, ".");
if (test_len == name_len)
{
- if (memcmp (*test, *name, test_len))
+ if (buf_compare_case (*test, *name, test_len))
return false;
}
else if (test_len < 3 || test_len > name_len)
return false;
else
{
- if (memcmp (*test, *name, test_len))
+ if (buf_compare_case (*test, *name, test_len))
return false;
}
}
}
+static int
+compare_strings (const char *test, const char *name)
+{
+ return strcasecmp (test, name);
+}
+
static bool
lookup_function_helper (const char *name,
int (*compare) (const char *test, const char *name),
const struct operation **last)
{
*first = *last = NULL;
- return (lookup_function_helper (name, strcmp, first, last)
+ return (lookup_function_helper (name, compare_strings, first, last)
|| lookup_function_helper (name, compare_names, first, last));
}
n = expr_allocate_composite (e, f - operations, args, arg_cnt);
n->composite.min_valid = min_valid != -1 ? min_valid : f->array_min_elems;
- if (n->type == OP_LAG_Vnn || n->type == OP_LAG_Vsn)
+ if (n->type == OP_LAG_Vn || n->type == OP_LAG_Vs)
+ {
+ if (n_lag < 1)
+ n_lag = 1;
+ }
+ else if (n->type == OP_LAG_Vnn || n->type == OP_LAG_Vsn)
{
int n_before;
assert (n->composite.arg_cnt == 2);
assert (n->composite.args[1]->type == OP_pos_int);
n_before = n->composite.args[1]->integer.i;
- if (n_before > n_lag)
+ if (n_lag < n_before)
n_lag = n_before;
}
union any_node *
expr_allocate_unary (struct expression *e, operation_type op,
-union any_node *arg0)
+ union any_node *arg0)
{
return expr_allocate_composite (e, op, &arg0, 1);
}