X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Fbset.c;h=6ca49e43ce5a8da48e596db2e8a945c380207638;hp=e514b4f5c8e494995b1317363aabeef9f945474c;hb=aeea139423b8eaf28a4de53b3d7b2ad1f22284e7;hpb=b879b04a092d5b00cc866cf16f755e55053d2e89 diff --git a/dfa/bset.c b/dfa/bset.c index e514b4f..6ca49e4 100644 --- a/dfa/bset.c +++ b/dfa/bset.c @@ -1,42 +1,47 @@ -/* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: bset.c,v $ - * Revision 1.3 1995-09-04 12:33:25 adam - * Various cleanup. YAZ util used instead. - * - * Revision 1.2 1995/01/24 16:00:21 adam - * Added -ansi to CFLAGS. - * Some changes to the dfa module. - * - * Revision 1.1 1994/09/26 10:16:53 adam - * First version of dfa module in alex. This version uses yacc to parse - * regular expressions. This should be hand-made instead. - * - */ +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data + +Zebra 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) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the 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, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + + +#if HAVE_CONFIG_H +#include +#endif #include #include #include #include -#include +#include #include #include "imalloc.h" -#define GET_BIT(s,m) (s[(m)/(sizeof(BSetWord)*8)]&(1<<(m&(sizeof(BSetWord)*8-1)))) +#define GET_BIT(s,m) (s[(m)/(sizeof(BSetWord)*8)]&(1<<(m&(sizeof(BSetWord)*8-1)))) #define SET_BIT(s,m) (s[(m)/(sizeof(BSetWord)*8)]|=(1<<(m&(sizeof(BSetWord)*8-1)))) BSetHandle *mk_BSetHandle (int size, int chunk) { - int wsize = 1+size/(sizeof(BSetWord)*8); + int wsize = 1+size/(sizeof(BSetWord)*8); BSetHandle *sh; if (chunk <= 1) chunk = 32; - sh = (BSetHandle *) imalloc (sizeof(BSetHandle) + + sh = (BSetHandle *) imalloc (sizeof(BSetHandle) + chunk*sizeof(BSetWord)*wsize); sh->size = size; @@ -89,7 +94,7 @@ BSet mk_BSet (BSetHandle **shp) off = sh->offset; if ((off + sh->wsize) > sh->chunk) { - sh1 = (BSetHandle *) imalloc (sizeof(BSetHandle) + + sh1 = (BSetHandle *) imalloc (sizeof(BSetHandle) + sh->chunk*sizeof(BSetWord)); sh1->size = sh->size; sh1->wsize = sh->wsize; @@ -256,8 +261,9 @@ void pr_charBSet (BSetHandle *sh, BSet src, void (*f) (int)) i1 = trav_BSet (sh, src, ++i); if (i1 == i) { - while ((i1=trav_BSet (sh, src, ++i)) == i) - ; + do + ++i; + while ((i1=trav_BSet (sh, src, i)) == i); if (i != i0+2) f ('-'); if (i-1 == '-') @@ -269,3 +275,12 @@ void pr_charBSet (BSetHandle *sh, BSet src, void (*f) (int)) } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +