[project @ 2002-02-15 11:28:47 by simonpj]
[haskell-directory.git] / cbits / regex / regcomp.c
index 3b50772..a85751b 100644 (file)
@@ -49,9 +49,10 @@ static char sccsid[] = "@(#)regcomp.c        8.5 (Berkeley) 3/20/94";
 #include <ctype.h>
 #include <limits.h>
 #include <stdlib.h>
-#include <regex.h>
+#include "regex.h"
 
-#include "collate.h"
+// removed collate stuff --SDM
+// #include "collate.h"
 
 #include "utils.h"
 #include "regex2.h"
@@ -83,51 +84,51 @@ extern "C" {
 #endif
 
 /* === regcomp.c === */
-static void p_ere __P((struct parse *p, int stop));
-static void p_ere_exp __P((struct parse *p));
-static void p_str __P((struct parse *p));
-static void p_bre __P((struct parse *p, int end1, int end2));
-static int p_simp_re __P((struct parse *p, int starordinary));
-static int p_count __P((struct parse *p));
-static void p_bracket __P((struct parse *p));
-static void p_b_term __P((struct parse *p, cset *cs));
-static void p_b_cclass __P((struct parse *p, cset *cs));
-static void p_b_eclass __P((struct parse *p, cset *cs));
-static char p_b_symbol __P((struct parse *p));
-static char p_b_coll_elem __P((struct parse *p, int endc));
-static char othercase __P((int ch));
-static void bothcases __P((struct parse *p, int ch));
-static void ordinary __P((struct parse *p, int ch));
-static void nonnewline __P((struct parse *p));
-static void repeat __P((struct parse *p, sopno start, int from, int to));
-static int seterr __P((struct parse *p, int e));
-static cset *allocset __P((struct parse *p));
-static void freeset __P((struct parse *p, cset *cs));
-static int freezeset __P((struct parse *p, cset *cs));
-static int firstch __P((struct parse *p, cset *cs));
-static int nch __P((struct parse *p, cset *cs));
-static void mcadd __P((struct parse *p, cset *cs, char *cp));
+static void p_ere (struct parse *p, int stop);
+static void p_ere_exp (struct parse *p);
+static void p_str (struct parse *p);
+static void p_bre (struct parse *p, int end1, int end2);
+static int p_simp_re (struct parse *p, int starordinary);
+static int p_count (struct parse *p);
+static void p_bracket (struct parse *p);
+static void p_b_term (struct parse *p, cset *cs);
+static void p_b_cclass (struct parse *p, cset *cs);
+static void p_b_eclass (struct parse *p, cset *cs);
+static char p_b_symbol (struct parse *p);
+static char p_b_coll_elem (struct parse *p, int endc);
+static char othercase (int ch);
+static void bothcases (struct parse *p, int ch);
+static void ordinary (struct parse *p, int ch);
+static void nonnewline (struct parse *p);
+static void repeat (struct parse *p, sopno start, int from, int to);
+static int seterr (struct parse *p, int e);
+static cset *allocset (struct parse *p);
+static void freeset (struct parse *p, cset *cs);
+static int freezeset (struct parse *p, cset *cs);
+static int firstch (struct parse *p, cset *cs);
+static int nch (struct parse *p, cset *cs);
+static void mcadd (struct parse *p, cset *cs, char *cp);
 #if used
-static void mcsub __P((cset *cs, char *cp));
-static int mcin __P((cset *cs, char *cp));
-static char *mcfind __P((cset *cs, char *cp));
+static void mcsub (cset *cs, char *cp);
+static int mcin (cset *cs, char *cp);
+static char *mcfind (cset *cs, char *cp);
 #endif
-static void mcinvert __P((struct parse *p, cset *cs));
-static void mccase __P((struct parse *p, cset *cs));
-static int isinsets __P((struct re_guts *g, int c));
-static int samesets __P((struct re_guts *g, int c1, int c2));
-static void categorize __P((struct parse *p, struct re_guts *g));
-static sopno dupl __P((struct parse *p, sopno start, sopno finish));
-static void doemit __P((struct parse *p, sop op, size_t opnd));
-static void doinsert __P((struct parse *p, sop op, size_t opnd, sopno pos));
-static void dofwd __P((struct parse *p, sopno pos, sop value));
-static void enlarge __P((struct parse *p, sopno size));
-static void stripsnug __P((struct parse *p, struct re_guts *g));
-static void findmust __P((struct parse *p, struct re_guts *g));
-static int altoffset __P((sop *scan, int offset, int mccs));
-static void computejumps __P((struct parse *p, struct re_guts *g));
-static void computematchjumps __P((struct parse *p, struct re_guts *g));
-static sopno pluscount __P((struct parse *p, struct re_guts *g));
+static void mcinvert (struct parse *p, cset *cs);
+static void mccase (struct parse *p, cset *cs);
+static int isinsets (struct re_guts *g, int c);
+static int samesets (struct re_guts *g, int c1, int c2);
+static void categorize (struct parse *p, struct re_guts *g);
+static sopno dupl (struct parse *p, sopno start, sopno finish);
+static void doemit (struct parse *p, sop op, size_t opnd);
+static void doinsert (struct parse *p, sop op, size_t opnd, sopno pos);
+static void dofwd (struct parse *p, sopno pos, sop value);
+static void enlarge (struct parse *p, sopno size);
+static void stripsnug (struct parse *p, struct re_guts *g);
+static void findmust (struct parse *p, struct re_guts *g);
+static int altoffset (sop *scan, int offset, int mccs);
+static void computejumps (struct parse *p, struct re_guts *g);
+static void computematchjumps (struct parse *p, struct re_guts *g);
+static sopno pluscount (struct parse *p, struct re_guts *g);
 
 #ifdef __cplusplus
 }
@@ -826,10 +827,14 @@ register cset *cs;
                if (start == finish)
                        CHadd(cs, start);
                else {
+// remove collate stuff --SDM
+#if 0
                        if (__collate_load_error) {
                                (void)REQUIRE((uch)start <= (uch)finish, REG_ERANGE);
+#endif 
                                for (i = (uch)start; i <= (uch)finish; i++)
                                        CHadd(cs, i);
+#if 0
                        } else {
                                (void)REQUIRE(__collate_range_cmp(start, finish) <= 0, REG_ERANGE);
                                for (i = CHAR_MIN; i <= CHAR_MAX; i++) {
@@ -839,6 +844,7 @@ register cset *cs;
                                                CHadd(cs, i);
                                }
                        }
+#endif
                }
                break;
        }