/[public]/psiconv/trunk/program/extra/rewrite.c
ViewVC logotype

Diff of /psiconv/trunk/program/extra/rewrite.c

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

Revision 79 Revision 168
17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/ 18*/
19 19
20#include <psiconv/parse.h> 20#include <psiconv/parse.h>
21#include <psiconv/generate.h> 21#include <psiconv/generate.h>
22#include <psiconv/configuration.h>
22 23
24#include <stdlib.h>
23#include <stdio.h> 25#include <stdio.h>
24 26
25int main(int argc, char *argv[]) 27int main(int argc, char *argv[])
26{ 28{
27 FILE *fp; 29 FILE *fp;
28 psiconv_buffer buf; 30 psiconv_buffer buf;
29 psiconv_file psionfile; 31 psiconv_file psionfile;
32 psiconv_config config;
33
34 /* psiconv_verbosity = PSICONV_VERB_DEBUG; */
30 35
31 if (argc < 3) { 36 if (argc < 3) {
32 fprintf(stderr,"Not enough arguments\n"); 37 fprintf(stderr,"Not enough arguments\n");
38 fprintf(stderr,"Syntax: INFILE OUTFILE\n");
33 exit(1); 39 exit(1);
34 } 40 }
41 if (!(config = psiconv_config_read(NULL))) {
42 fprintf(stderr,"Can't get config\n");
43 exit(1);
44 }
35 if (!(fp = fopen(argv[1],"r"))) { 45 if (!(fp = fopen(argv[1],"r"))) {
36 perror("Can't open file"); 46 perror("Can't open file");
37 exit(1); 47 exit(1);
38 } 48 }
39 if (!(buf=psiconv_buffer_new(0))) { 49 if (!(buf=psiconv_buffer_new())) {
40 perror("Can't allocate buf"); 50 perror("Can't allocate buf");
41 exit(1); 51 exit(1);
42 } 52 }
43 if ((psiconv_buffer_fread_all(buf,fp))) { 53 if ((psiconv_buffer_fread_all(buf,fp))) {
44 perror("Can't fread file"); 54 perror("Can't fread file");
45 exit(1); 55 exit(1);
46 } 56 }
47 fclose(fp); 57 fclose(fp);
48 if ((psiconv_parse(buf,&psionfile))) { 58 if ((psiconv_parse(config,buf,&psionfile))) {
49 fprintf(stderr,"Parse error\n"); 59 fprintf(stderr,"Parse error\n");
50 exit(1); 60 exit(1);
51 } 61 }
62
52 psiconv_buffer_free(buf); 63 psiconv_buffer_free(buf);
53 buf = NULL; 64 buf = NULL;
54 if (psiconv_write(&buf,psionfile)) { 65 if (psiconv_write(config,&buf,psionfile)) {
55 fprintf(stderr,"Parse error\n"); 66 fprintf(stderr,"Generate error\n");
56 exit(1); 67 exit(1);
57 } 68 }
69 psiconv_free_file(psionfile);
58 if (!(fp = fopen(argv[2],"w"))) { 70 if (!(fp = fopen(argv[2],"w"))) {
59 perror("Can't open file"); 71 perror("Can't open file");
60 exit(1); 72 exit(1);
61 } 73 }
62 if ((psiconv_buffer_fwrite_all(buf,fp))) { 74 if ((psiconv_buffer_fwrite_all(buf,fp))) {
63 perror("Can't fwrite file"); 75 perror("Can't fwrite file");
64 exit(1); 76 exit(1);
65 } 77 }
78 fclose(fp);
79 psiconv_buffer_free(buf);
66 exit(0); 80 exit(0);
67} 81}

Legend:
Removed from v.79  
changed lines
  Added in v.168

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26