Changeset 1440


Ignore:
Timestamp:
2000-08-23T14:02:41+12:00 (24 years ago)
Author:
jrm21
Message:

Errors from parsing the z39.50 config file go to file (etc/recpt/z3950log.txt)
instead of stderr (which might screw up the cgi headers or html).

Location:
trunk/gsdl
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/zparse.tab.c

    r1372 r1440  
    7171/* defined in z3950proto.cpp */
    7272struct z3950cfg *zserver_list=NULL;
     73
     74/* this is set in z3950proto.cpp */
    7375FILE *errfile;
    7476
     
    8082
    8183
    82 #line 62 "zparse.y"
     84#line 64 "zparse.y"
    8385typedef union {
    8486  char *string;
     
    138140#if YYDEBUG != 0
    139141static const short yyprhs[] = {     0,
    140      0,     3,     5,     6,     9,    11,    20,    22,    24,    25,
    141     28,    29,    32,    35,    36,    39,    42,    43,    45,    46,
    142     48,    51,    55,    58,    62,    64,    66,    69,    70,    73
     142     0,     3,     5,     7,     8,    11,    13,    22,    24,    26,
     143    27,    30,    31,    34,    37,    38,    41,    44,    45,    47,
     144    48,    50,    53,    57,    60,    64,    66
    143145};
    144146
    145147static const short yyrhs[] = {    45,
    146     46,     0,     3,     0,     0,    46,    47,     0,    47,     0,
    147     41,    41,    49,    41,    48,    50,    51,    52,     0,     1,
    148      0,    19,     0,     0,    42,    41,     0,     0,    20,    19,
    149      0,    20,    41,     0,     0,    21,    19,     0,    21,    41,
    150      0,     0,    53,     0,     0,    54,     0,    53,    54,     0,
    151     22,    55,    19,     0,    22,    19,     0,    41,    43,    41,
    152      0,    41,     0,     1,     0,    37,    19,     0,     0,    38,
    153     19,     0,     0
     148    46,     0,    45,     0,     3,     0,     0,    46,    47,     0,
     149    47,     0,    41,    41,    49,    41,    48,    50,    51,    52,
     150     0,     1,     0,    19,     0,     0,    42,    41,     0,     0,
     151    20,    19,     0,    20,    41,     0,     0,    21,    19,     0,
     152    21,    41,     0,     0,    53,     0,     0,    54,     0,    53,
     153    54,     0,    22,    55,    19,     0,    22,    19,     0,    41,
     154    43,    41,     0,    41,     0,     1,     0
    154155};
    155156
     
    158159#if YYDEBUG != 0
    159160static const short yyrline[] = { 0,
    160    107,   110,   111,   113,   114,   116,   136,   140,   141,   146,
    161    147,   150,   151,   154,   155,   156,   161,   163,   164,   166,
    162    168,   171,   182,   204,   212,   220,   222,   223,   225,   226
     161   109,   110,   113,   114,   116,   117,   119,   139,   143,   144,
     162   149,   150,   153,   154,   157,   158,   159,   164,   166,   167,
     163   169,   171,   174,   185,   207,   215,   223
    163164};
    164165#endif
     
    179180
    180181static const short yyr1[] = {     0,
    181     44,    45,    45,    46,    46,    47,    47,    48,    48,    49,
    182     49,    50,    50,    50,    51,    51,    51,    52,    52,    53,
    183     53,    54,    54,    55,    55,    55,    -1,    -1,    -1,    -1
     182    44,    44,    45,    45,    46,    46,    47,    47,    48,    48,
     183    49,    49,    50,    50,    50,    51,    51,    51,    52,    52,
     184    53,    53,    54,    54,    55,    55,    55
    184185};
    185186
    186187static const short yyr2[] = {     0,
    187      2,     1,     0,     2,     1,     8,     1,     1,     0,     2,
    188      0,     2,     2,     0,     2,     2,     0,     1,     0,     1,
    189      2,     3,     2,     3,     1,     1,     2,     0,     2,     0
    190 };
    191 
    192 static const short yydefact[] = {     3,
    193      2,     0,     7,     0,     0,     5,    11,     4,     0,     0,
    194     10,     9,     8,    14,     0,    17,    12,    13,     0,    19,
    195     15,    16,     0,     6,    18,    20,    26,    23,    25,     0,
    196     21,     0,    22,    24,     0,     0,     0
     188     2,     1,     1,     0,     2,     1,     8,     1,     1,     0,
     189     2,     0,     2,     2,     0,     2,     2,     0,     1,     0,
     190     1,     2,     3,     2,     3,     1,     1
     191};
     192
     193static const short yydefact[] = {     4,
     194     3,     0,     8,     0,     0,     6,    12,     5,     0,     0,
     195    11,    10,     9,    15,     0,    18,    13,    14,     0,    20,
     196    16,    17,     0,     7,    19,    21,    27,    24,    26,     0,
     197    22,     0,    23,    25,     0,     0,     0
    197198};
    198199
     
    202203};
    203204
    204 static const short yypact[] = {     3,
    205 -32768,     2,-32768,   -34,     0,-32768,   -33,-32768,   -31,   -30,
    206 -32768,   -11,-32768,    -8,   -15,    -7,-32768,-32768,   -14,    -9,
    207 -32768,-32768,     1,-32768,    -9,-32768,-32768,-32768,   -28,    -3,
    208 -32768,   -24,-32768,-32768,    18,    19,-32768
     205static const short yypact[] = {     4,
     206-32768,     0,-32768,   -33,     2,-32768,   -32,-32768,   -30,   -29,
     207-32768,   -10,-32768,    -7,   -14,    -6,-32768,-32768,   -13,    -8,
     208-32768,-32768,     3,-32768,    -8,-32768,-32768,-32768,   -27,    -2,
     209-32768,   -23,-32768,-32768,    19,    20,-32768
    209210};
    210211
    211212static const short yypgoto[] = {-32768,
    212 -32768,-32768,    16,-32768,-32768,-32768,-32768,-32768,-32768,    -2,
     213-32768,-32768,    16,-32768,-32768,-32768,-32768,-32768,-32768,    -1,
    213214-32768
    214215};
    215216
    216217
    217 #define YYLAST      43
    218 
    219 
    220 static const short yytable[] = {    -1,
    221      3,    27,     3,    17,    21,     1,     7,    13,     9,    11,
    222     12,    15,    23,    19,    32,    33,    34,    36,    37,    28,
    223      8,     0,    31,     0,     0,    18,    22,     0,     0,     0,
     218#define YYLAST      44
     219
     220
     221static const short yytable[] = {    -2,
     222     3,    -1,     3,    27,    17,    21,     1,     7,    13,     9,
     223    11,    12,    15,    23,    19,    32,    33,    34,    36,    37,
     224     8,    28,     0,    31,     0,     0,    18,    22,     0,     0,
    224225     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    225      4,    29,     4
     226     4,     0,     4,    29
    226227};
    227228
    228229static const short yycheck[] = {     0,
    229      1,     1,     1,    19,    19,     3,    41,    19,    42,    41,
    230     41,    20,    22,    21,    43,    19,    41,     0,     0,    19,
    231      5,    -1,    25,    -1,    -1,    41,    41,    -1,    -1,    -1,
     230     1,     0,     1,     1,    19,    19,     3,    41,    19,    42,
     231    41,    41,    20,    22,    21,    43,    19,    41,     0,     0,
     232     5,    19,    -1,    25,    -1,    -1,    41,    41,    -1,    -1,
    232233    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    233     41,    41,    41
     234    41,    -1,    41,    41
    234235};
    235236/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
     
    779780
    780781case 1:
    781 #line 107 "zparse.y"
     782#line 109 "zparse.y"
    782783{zserver_list=yyvsp[0].cfg;;
    783784    break;}
    784785case 2:
    785786#line 110 "zparse.y"
     787{zserver_list=NULL;;
     788    break;}
     789case 3:
     790#line 113 "zparse.y"
    786791{;;
    787792    break;}
    788 case 3:
    789 #line 111 "zparse.y"
    790 {fprintf(stderr,"No version - not GSDL config file?\n");return(1);;
    791     break;}
    792793case 4:
    793 #line 113 "zparse.y"
     794#line 114 "zparse.y"
     795{fprintf(errfile,"No version - not GSDL config file?\n");return(1);;
     796    break;}
     797case 5:
     798#line 116 "zparse.y"
    794799{if (yyvsp[0].cfg!=NULL) {yyvsp[0].cfg->next=yyvsp[-1].cfg;yyval.cfg=yyvsp[0].cfg;};
    795800    break;}
    796 case 6:
    797 #line 117 "zparse.y"
     801case 7:
     802#line 120 "zparse.y"
    798803{
    799804             if (YYRECOVERING)
     
    802807               if((yyval.cfg=malloc(sizeof(struct z3950cfg)))==NULL)
    803808             {
    804                fprintf(stderr,"malloc failed\n");
     809               fprintf(errfile,"malloc failed\n");
    805810               return(1);
    806811             }
     
    816821           ;
    817822    break;}
    818 case 7:
    819 #line 136 "zparse.y"
     823case 8:
     824#line 139 "zparse.y"
    820825{yyval.cfg=NULL;
    821           fprintf(stderr,"discarding zserver (line %d)\n",lineno);;
    822     break;}
    823 case 8:
    824 #line 140 "zparse.y"
     826          fprintf(errfile,"discarding zserver (line %d)\n",lineno);;
     827    break;}
     828case 9:
     829#line 143 "zparse.y"
    825830{;;
    826831    break;}
    827 case 9:
    828 #line 141 "zparse.y"
     832case 10:
     833#line 144 "zparse.y"
    829834{errormsg("Database name needs to be followed by a short "
    830835              "descriptive name (enclosed in \" marks)");
     
    832837             YYRECOVERING=1;;
    833838    break;}
    834 case 10:
    835 #line 146 "zparse.y"
     839case 11:
     840#line 149 "zparse.y"
    836841{yyval.number=atoi(yyvsp[0].string);;
    837     break;}
    838 case 11:
    839 #line 147 "zparse.y"
    840 {yyval.number=210;;
    841842    break;}
    842843case 12:
    843844#line 150 "zparse.y"
     845{yyval.number=210;;
     846    break;}
     847case 13:
     848#line 153 "zparse.y"
    844849{yyval.string=yyvsp[0].string;;
    845850    break;}
    846 case 13:
    847 #line 151 "zparse.y"
     851case 14:
     852#line 154 "zparse.y"
    848853{yyval.string=yyvsp[0].string;
    849854                  errormsg("Icon must be enclosed in quotes");
    850855          yylex();yylex();;
    851856    break;}
    852 case 14:
    853 #line 154 "zparse.y"
     857case 15:
     858#line 157 "zparse.y"
    854859{yyval.string=NULL;;
    855860    break;}
    856 case 15:
    857 #line 155 "zparse.y"
     861case 16:
     862#line 158 "zparse.y"
    858863{yyval.string=yyvsp[0].string;;
    859864    break;}
    860 case 16:
    861 #line 156 "zparse.y"
     865case 17:
     866#line 159 "zparse.y"
    862867{yyval.string=yyvsp[0].string;
    863868          /* this is because of the ':' */
     
    866871          ;
    867872    break;}
    868 case 17:
    869 #line 161 "zparse.y"
     873case 18:
     874#line 164 "zparse.y"
    870875{yyval.string=NULL;;
    871876    break;}
    872 case 18:
    873 #line 163 "zparse.y"
     877case 19:
     878#line 166 "zparse.y"
    874879{defLanguage=0;;
    875880    break;}
    876 case 19:
    877 #line 164 "zparse.y"
     881case 20:
     882#line 167 "zparse.y"
    878883{yyval.about=NULL;;
    879884    break;}
    880 case 20:
    881 #line 166 "zparse.y"
     885case 21:
     886#line 169 "zparse.y"
    882887{;;
    883888    break;}
    884 case 21:
    885 #line 168 "zparse.y"
     889case 22:
     890#line 171 "zparse.y"
    886891{yyval.about=yyvsp[0].about;yyvsp[0].about->next=yyvsp[-1].about;;
    887892    break;}
    888 case 22:
    889 #line 172 "zparse.y"
     893case 23:
     894#line 175 "zparse.y"
    890895{
    891896                   if((yyval.about=malloc(sizeof(struct z3950aboutlist)))
    892897                  ==NULL) {
    893                  fprintf(stderr,"Malloc failed\n");
     898                 fprintf(errfile,"Malloc failed\n");
    894899                 return(1);
    895900                   }
     
    899904                 ;
    900905    break;}
    901 case 23:
    902 #line 183 "zparse.y"
     906case 24:
     907#line 186 "zparse.y"
    903908{
    904909                   if (defLanguage)
    905910                         {
    906                    fprintf(stderr,"warning: (line %d): already have a default language in config file\n",lineno);
     911                   fprintf(errfile,"warning: (line %d): already have a default language in config file\n",lineno);
    907912                 }
    908913                   else defLanguage=1;
     
    910915                   if((yyval.about=malloc(sizeof(struct z3950aboutlist)))
    911916                  ==NULL) {
    912                  fprintf(stderr,"Malloc failed\n");
     917                 fprintf(errfile,"Malloc failed\n");
    913918                 return(1);
    914919                   }
     
    918923                 ;
    919924    break;}
    920 case 24:
    921 #line 205 "zparse.y"
     925case 25:
     926#line 208 "zparse.y"
    922927{
    923928                   yyval.string=malloc(strlen(yyvsp[-2].string)+strlen(yyvsp[0].string)+1);
     
    928933                 ;
    929934    break;}
    930 case 25:
    931 #line 212 "zparse.y"
     935case 26:
     936#line 215 "zparse.y"
    932937{;;
    933938    break;}
    934 case 26:
    935 #line 220 "zparse.y"
     939case 27:
     940#line 223 "zparse.y"
    936941{errormsg("missing language");;
    937     break;}
    938 case 27:
    939 #line 222 "zparse.y"
    940 {;;
    941     break;}
    942 case 28:
    943 #line 223 "zparse.y"
    944 {;;
    945     break;}
    946 case 29:
    947 #line 225 "zparse.y"
    948 {;;
    949     break;}
    950 case 30:
    951 #line 226 "zparse.y"
    952 {;;
    953942    break;}
    954943}
     
    11751164  return 1;
    11761165}
    1177 #line 229 "zparse.y"
     1166#line 232 "zparse.y"
    11781167
    11791168/*int strncasecmp (const char *, const char *,size_t);*/
    11801169int yyerror(char *string) {
    1181   fprintf(stderr,"Parse error (line %d) near \n\"%s\"<---:%s\n",lineno,
     1170  fprintf(errfile,"Parse error (line %d) near \n\"%s\"<---:%s\n",lineno,
    11821171      yylval.string,string);
    11831172  return(1);
     
    11851174
    11861175void errormsg(char *str) {
    1187   fprintf(stderr,"Err (line %d, near \"%s\"): %s.\n",lineno,
     1176  fprintf(errfile,"Err (line %d, near \"%s\"): %s.\n",lineno,
    11881177      yylval.string,str);
    11891178}
  • trunk/gsdl/src/recpt/zparse.y

    r1372 r1440  
    4949/* defined in z3950proto.cpp */
    5050struct z3950cfg *zserver_list=NULL;
     51
     52/* this is set in z3950proto.cpp */
    5153FILE *errfile;
    5254
     
    106108/* grammar */
    107109z3950         : version zserverlist {zserver_list=$2;}
     110              | version {zserver_list=NULL;} /* if all commented out or none... */
    108111
    109112
    110113version       : GSDLVERSION {;}
    111               | {fprintf(stderr,"No version - not GSDL config file?\n");return(1);}
     114              | {fprintf(errfile,"No version - not GSDL config file?\n");return(1);}
    112115
    113116zserverlist   : zserverlist zserver {if ($2!=NULL) {$2->next=$1;$$=$2;}}
     
    121124               if(($$=malloc(sizeof(struct z3950cfg)))==NULL)
    122125             {
    123                fprintf(stderr,"malloc failed\n");
     126               fprintf(errfile,"malloc failed\n");
    124127               return(1);
    125128             }
     
    135138           }
    136139              | error {$$=NULL;
    137           fprintf(stderr,"discarding zserver (line %d)\n",lineno);}
     140          fprintf(errfile,"discarding zserver (line %d)\n",lineno);}
    138141              ;
    139142
     
    173176                   if(($$=malloc(sizeof(struct z3950aboutlist)))
    174177                  ==NULL) {
    175                  fprintf(stderr,"Malloc failed\n");
     178                 fprintf(errfile,"Malloc failed\n");
    176179                 return(1);
    177180                   }
     
    184187                   if (defLanguage)
    185188                         {
    186                    fprintf(stderr,"warning: (line %d): already have a default language in config file\n",lineno);
     189                   fprintf(errfile,"warning: (line %d): already have a default language in config file\n",lineno);
    187190                 }
    188191                   else defLanguage=1;
     
    190193                   if(($$=malloc(sizeof(struct z3950aboutlist)))
    191194                  ==NULL) {
    192                  fprintf(stderr,"Malloc failed\n");
     195                 fprintf(errfile,"Malloc failed\n");
    193196                 return(1);
    194197                   }
     
    220223              | error {errormsg("missing language");}
    221224
    222 documentHeader : DOCUMENTHEADER STRING {;}
     225/*documentHeader : DOCUMENTHEADER STRING {;}
    223226              | {;}
    224227
    225228documentText  : DOCUMENTTEXT STRING {;}
    226229              | {;}
    227 
     230*/
    228231
    229232%%
    230233/*int strncasecmp (const char *, const char *,size_t);*/
    231234int yyerror(char *string) {
    232   fprintf(stderr,"Parse error (line %d) near \n\"%s\"<---:%s\n",lineno,
     235  fprintf(errfile,"Parse error (line %d) near \n\"%s\"<---:%s\n",lineno,
    233236      yylval.string,string);
    234237  return(1);
     
    236239
    237240void errormsg(char *str) {
    238   fprintf(stderr,"Err (line %d, near \"%s\"): %s.\n",lineno,
     241  fprintf(errfile,"Err (line %d, near \"%s\"): %s.\n",lineno,
    239242      yylval.string,str);
    240243}
Note: See TracChangeset for help on using the changeset viewer.