/[jscoverage]/trunk/jscoverage.c
ViewVC logotype

Diff of /trunk/jscoverage.c

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

trunk/main.c revision 87 by siliconforks, Mon May 5 20:05:27 2008 UTC trunk/jscoverage.c revision 382 by siliconforks, Thu Oct 30 03:12:18 2008 UTC
# Line 1  Line 1 
1  /*  /*
2      main.c - JSCoverage main routine      jscoverage.c - main routine for `jscoverage' program
3      Copyright (C) 2007, 2008 siliconforks.com      Copyright (C) 2007, 2008 siliconforks.com
4    
5      This program is free software; you can redistribute it and/or modify      This program is free software; you can redistribute it and/or modify
# Line 17  Line 17 
17      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */  */
19    
20    #include <config.h>
21    
22  #include <stdio.h>  #include <stdio.h>
23  #include <stdlib.h>  #include <stdlib.h>
24  #include <string.h>  #include <string.h>
25    
26  #include "config.h"  #include "global.h"
27  #include "instrument.h"  #include "instrument.h"
28  #include "instrument-js.h"  #include "instrument-js.h"
29  #include "resource-manager.h"  #include "resource-manager.h"
30  #include "util.h"  #include "util.h"
31    
32    const char * jscoverage_encoding = "ISO-8859-1";
33    bool jscoverage_highlight = true;
34    
35  int main(int argc, char ** argv) {  int main(int argc, char ** argv) {
36    int verbose = 0;    int verbose = 0;
37    
# Line 36  Line 41 
41    char * source = NULL;    char * source = NULL;
42    char * destination = NULL;    char * destination = NULL;
43    
44    char ** no_instrument = xmalloc((argc - 1) * sizeof(char *));    char ** no_instrument = xnew(char *, argc - 1);
45    int num_no_instrument = 0;    int num_no_instrument = 0;
46    
47    char ** exclude = xmalloc((argc - 1) * sizeof(char *));    char ** exclude = xnew(char *, argc - 1);
48    int num_exclude = 0;    int num_exclude = 0;
49    
50    for (int i = 1; i < argc; i++) {    for (int i = 1; i < argc; i++) {
# Line 48  Line 53 
53        exit(EXIT_SUCCESS);        exit(EXIT_SUCCESS);
54      }      }
55      else if (strcmp(argv[i], "-V") == 0 || strcmp(argv[i], "--version") == 0) {      else if (strcmp(argv[i], "-V") == 0 || strcmp(argv[i], "--version") == 0) {
56        printf("jscoverage %s\n", VERSION);        version();
       exit(EXIT_SUCCESS);  
57      }      }
58      else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--verbose") == 0) {      else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--verbose") == 0) {
59        verbose = 1;        verbose = 1;
60      }      }
61        else if (strcmp(argv[i], "--no-highlight") == 0) {
62          jscoverage_highlight = false;
63        }
64        else if (strcmp(argv[i], "--mozilla") == 0) {
65          jscoverage_mozilla = true;
66          jscoverage_set_js_version("180");
67        }
68      else if (strcmp(argv[i], "--no-instrument") == 0) {      else if (strcmp(argv[i], "--no-instrument") == 0) {
69        i++;        i++;
70        if (i == argc) {        if (i == argc) {
71          fatal("--no-instrument: option requires an argument");          fatal_command_line("--no-instrument: option requires an argument");
72        }        }
73        no_instrument[num_no_instrument] = argv[i];        no_instrument[num_no_instrument] = argv[i];
74        num_no_instrument++;        num_no_instrument++;
# Line 69  Line 80 
80      else if (strcmp(argv[i], "--exclude") == 0) {      else if (strcmp(argv[i], "--exclude") == 0) {
81        i++;        i++;
82        if (i == argc) {        if (i == argc) {
83          fatal("--exclude: option requires an argument");          fatal_command_line("--exclude: option requires an argument");
84        }        }
85        exclude[num_exclude] = argv[i];        exclude[num_exclude] = argv[i];
86        num_exclude++;        num_exclude++;
# Line 78  Line 89 
89        exclude[num_exclude] = argv[i] + 10;        exclude[num_exclude] = argv[i] + 10;
90        num_exclude++;        num_exclude++;
91      }      }
92        else if (strcmp(argv[i], "--encoding") == 0) {
93          i++;
94          if (i == argc) {
95            fatal_command_line("--encoding: option requires an argument");
96          }
97          jscoverage_encoding = argv[i];
98        }
99        else if (strncmp(argv[i], "--encoding=", 11) == 0) {
100          jscoverage_encoding = argv[i] + 11;
101        }
102        else if (strcmp(argv[i], "--js-version") == 0) {
103          i++;
104          if (i == argc) {
105            fatal_command_line("--js-version: option requires an argument");
106          }
107          jscoverage_set_js_version(argv[i]);
108        }
109        else if (strncmp(argv[i], "--js-version=", 13) == 0) {
110          jscoverage_set_js_version(argv[i] + 13);
111        }
112      else if (strncmp(argv[i], "-", 1) == 0) {      else if (strncmp(argv[i], "-", 1) == 0) {
113        fatal("unrecognized option `%s'", argv[i]);        fatal_command_line("unrecognized option `%s'", argv[i]);
114      }      }
115      else if (source == NULL) {      else if (source == NULL) {
116        source = argv[i];        source = argv[i];
# Line 88  Line 119 
119        destination = argv[i];        destination = argv[i];
120      }      }
121      else {      else {
122        fatal("too many arguments");        fatal_command_line("too many arguments");
123      }      }
124    }    }
125    
126    if (source == NULL || destination == NULL) {    if (source == NULL || destination == NULL) {
127      fatal("missing argument");      fatal_command_line("missing argument");
128    }    }
129    
130    source = make_canonical_path(source);    source = make_canonical_path(source);

Legend:
Removed from v.87  
changed lines
  Added in v.382

  ViewVC Help
Powered by ViewVC 1.1.24