The Hermit Hacker writes:
> Over time, it gets slightly harder, but if you can, make it a
> seperate patch that we can add to the ftp server itself and that ppl can
> download. (and, of course, add it in for v6.4 *grin*)
Okay, here's the missing bug fix of two minor bugs. I hope I don't have to
keep both source trees from now on. :-)
diff -rcN interfaces/ecpg/preproc/ecpg.c interfaces/ecpg.mm/preproc/ecpg.c
*** interfaces/ecpg/preproc/ecpg.c Tue Mar 3 08:29:49 1998
--- interfaces/ecpg.mm/preproc/ecpg.c Tue Mar 3 11:52:45 1998
***************
*** 58,108 ****
/* after the options there must not be anything but filenames */
for (fnr = optind; fnr < argc; fnr++)
{
! char *filename,
! *ptr2ext;
! int ext = 0;
! filename = mm_alloc(strlen(argv[fnr]) + 4);
! strcpy(filename, argv[fnr]);
! ptr2ext = strrchr(filename, '.');
! /* no extension or extension not equal .pgc */
! if (ptr2ext == NULL || strcmp(ptr2ext, ".pgc") != 0)
{
! if (ptr2ext == NULL)
! ext = 1; /* we need this information a while later */
! ptr2ext = filename + strlen(filename);
ptr2ext[0] = '.';
}
- /* make extension = .c */
- ptr2ext[1] = 'c';
- ptr2ext[2] = '\0';
-
if (out_option == 0)/* calculate the output name */
{
! yyout = fopen(filename, "w");
if (yyout == NULL)
{
! perror(filename);
! free(filename);
continue;
}
}
- if (ext == 1)
- {
- /* no extension => add .pgc */
- ptr2ext = strrchr(filename, '.');
- ptr2ext[1] = 'p';
- ptr2ext[2] = 'g';
- ptr2ext[3] = 'c';
- ptr2ext[4] = '\0';
- input_filename = filename;
- }
- else
- input_filename = argv[fnr];
yyin = fopen(input_filename, "r");
if (yyin == NULL)
perror(argv[fnr]);
--- 58,102 ----
/* after the options there must not be anything but filenames */
for (fnr = optind; fnr < argc; fnr++)
{
! char *output_filename, *ptr2ext;
! input_filename = mm_alloc(strlen(argv[fnr]) + 5);
! strcpy(input_filename, argv[fnr]);
! ptr2ext = strrchr(input_filename, '.');
! /* no extension? */
! if (ptr2ext == NULL)
{
! ptr2ext = input_filename + strlen(input_filename);
!
! /* no extension => add .pgc */
ptr2ext[0] = '.';
+ ptr2ext[1] = 'p';
+ ptr2ext[2] = 'g';
+ ptr2ext[3] = 'c';
+ ptr2ext[4] = '\0';
}
if (out_option == 0)/* calculate the output name */
{
! output_filename = strdup(input_filename);
!
! ptr2ext = strrchr(output_filename, '.');
! /* make extension = .c */
! ptr2ext[1] = 'c';
! ptr2ext[2] = '\0';
!
! yyout = fopen(output_filename, "w");
if (yyout == NULL)
{
! perror(output_filename);
! free(output_filename);
! free(input_filename);
continue;
}
}
yyin = fopen(input_filename, "r");
if (yyin == NULL)
perror(argv[fnr]);
***************
*** 122,128 ****
fclose(yyout);
}
! free(filename);
}
}
return (0);
--- 116,123 ----
fclose(yyout);
}
! free(output_filename);
! free(input_filename);
}
}
return (0);
diff -rcN interfaces/ecpg/preproc/preproc.y interfaces/ecpg.mm/preproc/preproc.y
*** interfaces/ecpg/preproc/preproc.y Tue Mar 3 08:29:49 1998
--- interfaces/ecpg.mm/preproc/preproc.y Fri Feb 27 16:56:12 1998
***************
*** 607,613 ****
/* FIXME: instead of S_SYMBOL we should list all possible commands */
sqlcommand : S_SYMBOL | SQL_DECLARE;
! sqlstatement_words : sqlstatement_word
| sqlstatement_words sqlstatement_word;
sqlstatement_word : ':' symbol
--- 607,613 ----
/* FIXME: instead of S_SYMBOL we should list all possible commands */
sqlcommand : S_SYMBOL | SQL_DECLARE;
! sqlstatement_words : /* empty */
| sqlstatement_words sqlstatement_word;
sqlstatement_word : ':' symbol
diff -rcN interfaces/ecpg/test/perftest.pgc interfaces/ecpg.mm/test/perftest.pgc
*** interfaces/ecpg/test/perftest.pgc Tue Mar 3 08:29:49 1998
--- interfaces/ecpg.mm/test/perftest.pgc Fri Feb 27 17:01:39 1998
***************
*** 16,21 ****
--- 16,22 ----
usec+=1000000;
}
printf("I needed %ld seconds and %ld microseconds for the %s test.\n", sec, usec, text);
+ exec sql vacuum;
}
int
***************
*** 106,113 ****
exec sql drop index number1;
exec sql drop table perftest1;
-
- exec sql commit;
return (0);
}
--- 107,112 ----
Michael
--
Dr. Michael Meskes, Project-Manager | topsystem Systemhaus GmbH
meskes@topsystem.de | Europark A2, Adenauerstr. 20
meskes@debian.org | 52146 Wuerselen
Go SF49ers! Go Rhein Fire! | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux! | Fax: (+49) 2405/4670-10