/[csv2latex]/csv2latex.c
ViewVC logotype

Diff of /csv2latex.c

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

revision 12 by ben, Sat Feb 6 18:56:24 2010 UTC revision 13 by ben, Sat Apr 17 17:27:58 2010 UTC
# Line 125  config* parseOptions (config* conf, int Line 125  config* parseOptions (config* conf, int
125                          case 'g': /* guess the CSV */                          case 'g': /* guess the CSV */
126                                          conf->guess=1;                                          conf->guess=1;
127                                          break;                                          break;
128                          case 't': /* use package longtable */ /* thanks to <Christof.Bodner@infineon.com> */                          case 't': /* use package longtable */ /* thx to <Christof.Bodner@infineon.com> */
129                                          conf->longtable=1;                                          conf->longtable=1;
130                                          break;                                          break;
131                          case 'b': /* csv block delimiter */                          case 'b': /* csv block delimiter */
# Line 314  void doTeXsub(config* conf, char newsep, Line 314  void doTeXsub(config* conf, char newsep,
314          int inblock=0;          int inblock=0;
315          int csvrows;          int csvrows;
316          int firstrow=1;          int firstrow=1;
317            int nosep=0;
318            int token1=0;
319            int token2=0;
320          char headerrow[1000];          char headerrow[1000];
321          headerrow[0]='\0';          headerrow[0]='\0';
322    
# Line 323  void doTeXsub(config* conf, char newsep, Line 326  void doTeXsub(config* conf, char newsep,
326          lines=(conf->lines)?conf->lines:MAXUINT;          lines=(conf->lines)?conf->lines:MAXUINT;
327    
328          while (token!=EOF) {          while (token!=EOF) {
329                    token2=token1;  /* second last character, used for detection of quotation marks */
330                    token1=token;   /* last character, used for detection of quotation marks */
331                  token=getc(in);                  token=getc(in);
332                                    
333                  /* EOF ? */                  /* EOF ? */
# Line 391  void doTeXsub(config* conf, char newsep, Line 396  void doTeXsub(config* conf, char newsep,
396                          continue;                          continue;
397                  }                  }
398    
399                    /* if commas in cells */
400                    /* thx to <florian@heinze.at> */
401                    if (token == '\"'){
402                            if (nosep==0)
403                                    nosep=1;
404                            else
405                                    nosep=0;
406                    }
407                    
408                  /* new column ? */                  /* new column ? */
409                  if (token == conf->sep && ((conf->block && !inblock) || !conf->block)) {                  if ((token == conf->sep && ((conf->block && !inblock) || !conf->block)) && nosep == 0) {                        
410                          if (!(firstrow && (conf->longtable && conf->repeat)))                          if (!(firstrow && (conf->longtable && conf->repeat)))
411                                  putc(newsep,out);                                  putc(newsep,out);
412                          numcols--;                          numcols--;
# Line 413  void doTeXsub(config* conf, char newsep, Line 427  void doTeXsub(config* conf, char newsep,
427                  }                  }
428    
429                  /* data ? */                  /* data ? */
430                  if (token != conf->block && ((conf->block && inblock) || !conf->block)) {                  if ((token != conf->block && ((conf->block && inblock) || !conf->block)) && ((token=='\"' && token1=='\"' && token2=='\"') || token!='\"')) {
431                          /* look for special TeX char to escape */                          /* look for special TeX char to escape */
432                          /* FIXME: put all that into a subroutine */                          /* FIXME: put all that into a subroutine */
433                          int i=0;                          int i=0;

Legend:
Removed from v.12  
changed lines
  Added in v.13

  ViewVC Help
Powered by ViewVC 1.1.26