/[pcre]/code/trunk/dftables.c
ViewVC logotype

Diff of /code/trunk/dftables.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 96 by nigel, Fri Mar 2 13:10:43 2007 UTC
# Line 2  Line 2 
2  *      Perl-Compatible Regular Expressions       *  *      Perl-Compatible Regular Expressions       *
3  *************************************************/  *************************************************/
4    
5  /*  /* PCRE is a library of functions to support regular expressions whose syntax
 PCRE is a library of functions to support regular expressions whose syntax  
6  and semantics are as close as possible to those of the Perl 5 language.  and semantics are as close as possible to those of the Perl 5 language.
7    
8  Written by: Philip Hazel <ph10@cam.ac.uk>                         Written by Philip Hazel
9               Copyright (c) 1997-2006 University of Cambridge
            Copyright (c) 1997-2004 University of Cambridge  
10    
11  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
12  Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
# Line 40  POSSIBILITY OF SUCH DAMAGE. Line 38  POSSIBILITY OF SUCH DAMAGE.
38  */  */
39    
40    
41  /* This is a support program to generate the file chartables.c, containing  /* This is a freestanding support program to generate a file containing default
42  character tables of various kinds. They are built according to the default C  character tables for PCRE. The tables are built according to the default C
43  locale and used as the default tables by PCRE. Now that pcre_maketables is  locale. Now that pcre_maketables is a function visible to the outside world, we
44  a function visible to the outside world, we make use of its code from here in  make use of its code from here in order to be consistent. */
 order to be consistent. */  
45    
46  #include <ctype.h>  #include <ctype.h>
47  #include <stdio.h>  #include <stdio.h>
48  #include <string.h>  #include <string.h>
49    
50  #include "internal.h"  #include "pcre_internal.h"
51    
52  #define DFTABLES          /* maketables.c notices this */  #define DFTABLES          /* pcre_maketables.c notices this */
53  #include "maketables.c"  #include "pcre_maketables.c"
54    
55    
56  int main(int argc, char **argv)  int main(int argc, char **argv)
# Line 61  int main(int argc, char **argv) Line 58  int main(int argc, char **argv)
58  int i;  int i;
59  FILE *f;  FILE *f;
60  const unsigned char *tables = pcre_maketables();  const unsigned char *tables = pcre_maketables();
61    const unsigned char *base_of_tables = tables;
62    
63  if (argc != 2)  if (argc != 2)
64    {    {
# Line 68  if (argc != 2) Line 66  if (argc != 2)
66    return 1;    return 1;
67    }    }
68    
69  f = fopen(argv[1], "w");  f = fopen(argv[1], "wb");
70  if (f == NULL)  if (f == NULL)
71    {    {
72    fprintf(stderr, "dftables: failed to open %s for writing\n", argv[1]);    fprintf(stderr, "dftables: failed to open %s for writing\n", argv[1]);
# Line 86  fprintf(f, Line 84  fprintf(f,
84    "program. If you edit it by hand, you might like to edit the Makefile to \n"    "program. If you edit it by hand, you might like to edit the Makefile to \n"
85    "prevent its ever being regenerated.\n\n");    "prevent its ever being regenerated.\n\n");
86  fprintf(f,  fprintf(f,
87    "This file is #included in the compilation of pcre.c to build the default\n"    "This file contains the default tables for characters with codes less than\n"
88    "character tables which are used when no tables are passed to the compile\n"    "128 (ASCII characters). These tables are used when no external tables are\n"
89    "function. */\n\n"    "passed to PCRE.\n\n");
90    "static unsigned char pcre_default_tables[] = {\n\n"  fprintf(f,
91      "The following #include is present because without it gcc 4.x may remove\n"
92      "the array definition from the final binary if PCRE is built into a static\n"
93      "library and dead code stripping is activated. This leads to link errors.\n"
94      "Pulling in the header ensures that the array gets flagged as \"someone\n"
95      "outside this compilation unit might reference this\" and so it will always\n"
96      "be supplied to the linker. */\n\n"
97      "#include \"pcre_internal.h\"\n\n");
98    fprintf(f,
99      "const unsigned char _pcre_default_tables[] = {\n\n"
100    "/* This table is a lower casing table. */\n\n");    "/* This table is a lower casing table. */\n\n");
101    
102  fprintf(f, "  ");  fprintf(f, "  ");
# Line 167  if (isprint(i-1)) fprintf(f, " %c ", i-1 Line 174  if (isprint(i-1)) fprintf(f, " %c ", i-1
174  fprintf(f, " */\n\n/* End of chartables.c */\n");  fprintf(f, " */\n\n/* End of chartables.c */\n");
175    
176  fclose(f);  fclose(f);
177    free((void *)base_of_tables);
178  return 0;  return 0;
179  }  }
180    

Legend:
Removed from v.75  
changed lines
  Added in v.96

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12