Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.90
 
1.91
 
MAIN:ragge:20080815152927
 
cpp.c
_>152152  *   1->   - number of args.
 153153  */
 154154 
<> 155+#define GCCARG  0xfd    /* has gcc varargs that may be replaced with 0 */
155156 #define VARG    0xfe    /* has varargs */
 156157 #define OBJCT   0xff
 157158 #define WARN    1       /* SOH, not legal char */
     
 !
627628         int ellips = 0;
 628629 #ifdef GCC_VARI
 629630         usch *gccvari = NULL;
<> 631+        int wascon;
630632 #endif
 631633 
 632634         if (flslvl)
     
 !
698700         /* parse replacement-list, substituting arguments */
 699701         savch('\0');
 700702         while (c != '\n') {
<> 703+#ifdef GCC_VARI
  704+                wascon = 0;
  705+loop:
  706+#endif
701707                 switch (c) {
 702708                 case WSPACE:
 703709                         /* remove spaces if it surrounds a ## directive */
     
 !
709715                                 savch(CONC);
 710716                                 if ((c = yylex()) == WSPACE)
 711717                                         c = yylex();
<> 718+#ifdef GCC_VARI
  719+                                if (c == '\n')
  720+                                        break;
  721+                                wascon = 1;
  722+                                goto loop;
  723+#endif
712724                         }
 713725                         continue;
 714726 
     
 !
717729                         savch(CONC);
 718730                         if ((c = yylex()) == WSPACE)
 719731                                 c = yylex();
<> 732+#ifdef GCC_VARI
  733+                        if (c == '\n')
  734+                                break;
  735+                        wascon = 1;
  736+                        goto loop;
  737+#else
720738                         continue;
<> 739+#endif
721740 
 722741                 case MKSTR:
 723742                         if (narg < 0) {
     
 !
745764 #ifdef GCC_VARI
 746765                                 if (gccvari &&
 747766                                     strcmp(yytext, (char *)gccvari) == 0) {
<>748 -                                        savch(VARG);
  767+                                        savch(wascon ? GCCARG : VARG);
749768                                         savch(WARN);
 750769                                         if (mkstr)
 751770                                                 savch(SNUFF), mkstr = 0;
     
 !
13251344                         if (sp[-1] == VARG) {
 13261345                                 bp = ap = args[narg];
 13271346                                 sp--;
<> 1347+#ifdef GCC_VARI
  1348+                        } else if (sp[-1] == GCCARG) {
  1349+                                ap = args[narg];
  1350+                                if (ap[0] == 0)
  1351+                                        ap = (usch *)"0";
  1352+                                bp = ap;
  1353+                                sp--;
  1354+#endif
<_13281355                         } else
 13291356                                 bp = ap = args[(int)*--sp];
 13301357                         if (sp[2] != CONC && !snuff && sp[-1] != CONC) {
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-09-19 21:50 +0200