On Fri, 7 Sep 2012 11:45:35 -0300 Gustavo Sverzut Barbieri
<barbi...@profusion.mobi> said:

> On Friday, September 7, 2012, Enlightenment SVN wrote:
> 
> > Log:
> > vincent - try this on windows.
> 
> 
> If this fixes his problems, we may have a bug on windows code that
> GENERATES the string/array. The characters are stores in integers, yes, but
> for strings they should be in 0-255

i'm hunting it. this is an attempt to narrow down what exactly is causing it.
as such the array contains exactly the same bytes as in linux. now i'm
wondering by sign-extending the SIGNED char to an int, this causes the windows
is*() funcs to be different to linux. thus my little thing to avoid sign
extending. :)

> > Author:       raster
> > Date:         2012-09-07 03:12:50 -0700 (Fri, 07 Sep 2012)
> > New Revision: 76293
> > Trac:         http://trac.enlightenment.org/e/changeset/76293
> >
> > Modified:
> >   trunk/embryo/src/bin/embryo_cc_sc.h trunk/embryo/src/bin/embryo_cc_sc1.c
> > trunk/embryo/src/bin/embryo_cc_sc2.c trunk/embryo/src/bin/embryo_cc_sc6.c
> > trunk/embryo/src/bin/embryo_cc_sc7.c
> >
> > Modified: trunk/embryo/src/bin/embryo_cc_sc.h
> > ===================================================================
> > --- trunk/embryo/src/bin/embryo_cc_sc.h 2012-09-07 10:07:09 UTC (rev 76292)
> > +++ trunk/embryo/src/bin/embryo_cc_sc.h 2012-09-07 10:12:50 UTC (rev 76293)
> > @@ -664,4 +664,10 @@
> >
> >  extern jmp_buf    errbuf;      /* target of longjmp() on a fatal error */
> >
> > +#define sc_isspace(x)  isspace ((int)((unsigned char)x))
> > +#define sc_isalpha(x)  isalpha ((int)((unsigned char)x))
> > +#define sc_isdigit(x)  isdigit ((int)((unsigned char)x))
> > +#define sc_isupper(x)  isupper ((int)((unsigned char)x))
> > +#define sc_isxdigit(x) isxdigit((int)((unsigned char)x))
> > +
> >  #endif
> >
> > Modified: trunk/embryo/src/bin/embryo_cc_sc1.c
> > ===================================================================
> > --- trunk/embryo/src/bin/embryo_cc_sc1.c        2012-09-07 10:07:09 UTC
> > (rev 76292)
> > +++ trunk/embryo/src/bin/embryo_cc_sc1.c        2012-09-07 10:12:50 UTC
> > (rev 76293)
> > @@ -489,7 +489,7 @@
> >
> >     /* tagname currently unknown, add it */
> >     tag = last + 1;             /* guaranteed not to exist already */
> > -   if (isupper(*name))
> > +   if (sc_isupper(*name))
> >        tag |= (int)FIXEDTAG;
> >     append_constval(&tagname_tab, name, (cell) tag, 0);
> >     return tag;
> > @@ -1949,7 +1949,7 @@
> >     tag &= TAGMASK;
> >     assert(tag >= 0);
> >     sprintf(dest, "0%x", tag);
> > -   return isdigit(dest[1]) ? &dest[1] : dest;
> > +   return sc_isdigit(dest[1]) ? &dest[1] : dest;
> >  }
> >
> >  char       *
> > @@ -1995,7 +1995,7 @@
> >       }                         /* if */
> >     assert(!unary || *tag1 == 0);
> >     assert(*ptr != '\0');
> > -   for (name = opname; !isdigit(*ptr);)
> > +   for (name = opname; !sc_isdigit(*ptr);)
> >        *name++ = *ptr++;
> >     *name = '\0';
> >     *tag2 = (int)strtol(ptr, NULL, 16);
> > @@ -2010,7 +2010,7 @@
> >     constvalue         *tagsym[2];
> >     int                 unary;
> >
> > -   if (isalpha(*funcname) || *funcname == '_' || *funcname == PUBLIC_CHAR
> > +   if (sc_isalpha(*funcname) || *funcname == '_' || *funcname ==
> > PUBLIC_CHAR
> >         || *funcname == '\0')
> >       {
> >         if (dest != funcname)
> >
> > Modified: trunk/embryo/src/bin/embryo_cc_sc2.c
> > ===================================================================
> > --- trunk/embryo/src/bin/embryo_cc_sc2.c        2012-09-07 10:07:09 UTC
> > (rev 76292)
> > +++ trunk/embryo/src/bin/embryo_cc_sc2.c        2012-09-07 10:12:50 UTC
> > (rev 76293)
> > @@ -443,9 +443,9 @@
> >
> >     *val = 0;
> >     ptr = curptr;
> > -   if (!isdigit(*ptr))         /* should start with digit */
> > +   if (!sc_isdigit(*ptr))              /* should start with digit */
> >        return 0;
> > -   while (isdigit(*ptr) || *ptr == '_')
> > +   while (sc_isdigit(*ptr) || *ptr == '_')
> >       {
> >         if (*ptr != '_')
> >            *val = (*val * 10) + (*ptr - '0');
> > @@ -453,7 +453,7 @@
> >       }                         /* while */
> >     if (alphanum(*ptr))         /* number must be delimited by
> > non-alphanumerical */
> >        return 0;
> > -   if (*ptr == '.' && isdigit(*(ptr + 1)))
> > +   if (*ptr == '.' && sc_isdigit(*(ptr + 1)))
> >        return 0;                        /* but a fractional part must not
> > be present */
> >     return (int)(ptr - curptr);
> >  }
> > @@ -471,18 +471,18 @@
> >
> >     *val = 0;
> >     ptr = curptr;
> > -   if (!isdigit(*ptr))         /* should start with digit */
> > +   if (!sc_isdigit(*ptr))              /* should start with digit */
> >        return 0;
> >     if (*ptr == '0' && *(ptr + 1) == 'x')
> >       {                         /* C style hexadecimal notation */
> >         ptr += 2;
> > -       while (isxdigit(*ptr) || *ptr == '_')
> > +       while (sc_isxdigit(*ptr) || *ptr == '_')
> >           {
> >              if (*ptr != '_')
> >                {
> > -                 assert(isxdigit(*ptr));
> > +                 assert(sc_isxdigit(*ptr));
> >                   *val = *val << 4;
> > -                 if (isdigit(*ptr))
> > +                 if (sc_isdigit(*ptr))
> >                      *val += (*ptr - '0');
> >                   else
> >                      *val += (tolower(*ptr) - 'a' + 10);
> > @@ -554,9 +554,9 @@
> >     fnum = 0.0;
> >     dnum = 0L;
> >     ptr = curptr;
> > -   if (!isdigit(*ptr))         /* should start with digit */
> > +   if (!sc_isdigit(*ptr))              /* should start with digit */
> >        return 0;
> > -   while (isdigit(*ptr) || *ptr == '_')
> > +   while (sc_isdigit(*ptr) || *ptr == '_')
> >       {
> >         if (*ptr != '_')
> >           {
> > @@ -568,12 +568,12 @@
> >     if (*ptr != '.')
> >        return 0;                        /* there must be a period */
> >     ptr++;
> > -   if (!isdigit(*ptr))         /* there must be at least one digit after
> > the dot */
> > +   if (!sc_isdigit(*ptr))              /* there must be at least one
> > digit after the dot */
> >        return 0;
> >     ffrac = 0.0;
> >     fmult = 1.0;
> >     ignore = FALSE;
> > -   while (isdigit(*ptr) || *ptr == '_')
> > +   while (sc_isdigit(*ptr) || *ptr == '_')
> >       {
> >         if (*ptr != '_')
> >           {
> > @@ -605,10 +605,10 @@
> >           {
> >              sign = 1;
> >           }                     /* if */
> > -       if (!isdigit(*ptr))     /* 'e' should be followed by a digit */
> > +       if (!sc_isdigit(*ptr))  /* 'e' should be followed by a digit */
> >            return 0;
> >         exp = 0;
> > -       while (isdigit(*ptr))
> > +       while (sc_isdigit(*ptr))
> >           {
> >              exp = (exp * 10) + (*ptr - '0');
> >              ptr++;
> > @@ -1109,7 +1109,7 @@
> >                                lptr++;
> >                             for (i = 0;
> >                                   (i < (int)(sizeof(name))) &&
> > -                                 (isalpha(*lptr));
> > +                                 (sc_isalpha(*lptr));
> >                                  i++, lptr++)
> >                                name[i] = *lptr;
> >                             name[i] = '\0';
> > @@ -1171,7 +1171,7 @@
> >
> >            while (*lptr <= ' ' && *lptr != '\0')
> >               lptr++;
> > -          for (i = 0; i < 40 && (isalpha(*lptr) || *lptr == '.'); i++,
> > lptr++)
> > +          for (i = 0; i < 40 && (sc_isalpha(*lptr) || *lptr == '.'); i++,
> > lptr++)
> >               name[i] = (char)tolower(*lptr);
> >            name[i] = '\0';
> >            stgwrite("\t");
> > @@ -1253,7 +1253,7 @@
> >                   }             /* while */
> >                 end = lptr;
> >                 /* check pattern to match */
> > -               if (!isalpha(*start) && *start != '_')
> > +               if (!sc_isalpha(*start) && *start != '_')
> >                   {
> >                      error(74); /* pattern must start with an alphabetic
> > character */
> >                      break;
> > @@ -1272,7 +1272,7 @@
> >                   }             /* while */
> >                 pattern[count] = '\0';
> >                 /* special case, erase trailing variable, because it could
> > match anything */
> > -               if (count >= 2 && isdigit(pattern[count - 1])
> > +               if (count >= 2 && sc_isdigit(pattern[count - 1])
> >                     && pattern[count - 2] == '%')
> >                    pattern[count - 2] = '\0';
> >                 /* find substitution string */
> > @@ -1313,7 +1313,7 @@
> >                 substitution[count] = '\0';
> >                 /* check whether the definition already exists */
> >                 for (prefixlen = 0, start = pattern;
> > -                    isalpha(*start) || isdigit(*start) || *start == '_';
> > +                    sc_isalpha(*start) || sc_isdigit(*start) || *start ==
> > '_';
> >                      prefixlen++, start++)
> >                    /* nothing */ ;
> >                 assert(prefixlen > 0);
> > @@ -1484,7 +1484,7 @@
> >     memset(args, 0, sizeof args);
> >
> >     /* check the length of the prefix */
> > -   for (prefixlen = 0, s = pattern; isalpha(*s) || isdigit(*s) || *s ==
> > '_';
> > +   for (prefixlen = 0, s = pattern; sc_isalpha(*s) || sc_isdigit(*s) ||
> > *s == '_';
> >         prefixlen++, s++)
> >        /* nothing */ ;
> >     assert(prefixlen > 0);
> > @@ -1501,7 +1501,7 @@
> >         if (*p == '%')
> >           {
> >              p++;               /* skip '%' */
> > -            if (isdigit(*p))
> > +            if (sc_isdigit(*p))
> >                {
> >                   arg = *p - '0';
> >                   assert(arg >= 0 && arg <= 9);
> > @@ -1596,7 +1596,7 @@
> >         /* calculate the length of the substituted string */
> >         for (e = substitution, len = 0; *e != '\0'; e++)
> >           {
> > -            if (*e == '%' && isdigit(*(e + 1)))
> > +            if (*e == '%' && sc_isdigit(*(e + 1)))
> >                {
> >                   arg = *(e + 1) - '0';
> >                   assert(arg >= 0 && arg <= 9);
> > @@ -1620,7 +1620,7 @@
> >              strdel(line, (int)(s - line));
> >              for (e = substitution, s = line; *e != '\0'; e++)
> >                {
> > -                 if (*e == '%' && isdigit(*(e + 1)))
> > +                 if (*e == '%' && sc_isdigit(*(e + 1)))
> >                     {
> >                        arg = *(e + 1) - '0';
> >                        assert(arg >= 0 && arg <= 9);
> > @@ -1660,7 +1660,7 @@
> >         /* find the start of a prefix (skip all non-alphabetic characters),
> >          * also skip strings
> >          */
> > -       while (!isalpha(*start) && *start != '_' && *start != '\0')
> > +       while (!sc_isalpha(*start) && *start != '_' && *start != '\0')
> >           {
> >              /* skip strings */
> >              if (is_startstring(start))
> > @@ -1676,7 +1676,7 @@
> >         /* get the prefix (length), look for a matching definition */
> >         prefixlen = 0;
> >         end = start;
> > -       while (isalpha(*end) || isdigit(*end) || *end == '_')
> > +       while (sc_isalpha(*end) || sc_isdigit(*end) || *end == '_')
> >           {
> >              prefixlen++;
> >              end++;
> > @@ -2318,7 +2318,7 @@
> >                   cptr += 1;
> >                   break;
> >                default:
> > -                 if (isdigit(*cptr))
> > +                 if (sc_isdigit(*cptr))
> >                     {           /* \ddd */
> >                        c = 0;
> >                        while (*cptr >= '0' && *cptr <= '9')     /*
> > decimal! */
> > @@ -2346,7 +2346,7 @@
> >  static int
> >  alpha(char c)
> >  {
> > -   return (isalpha(c) || c == '_' || c == PUBLIC_CHAR);
> > +   return (sc_isalpha(c) || c == '_' || c == PUBLIC_CHAR);
> >  }
> >
> >  /*  alphanum
> > @@ -2356,7 +2356,7 @@
> >  int
> >  alphanum(char c)
> >  {
> > -   return (alpha(c) || isdigit(c));
> > +   return (alpha(c) || sc_isdigit(c));
> >  }
> >
> >  /* The local variable table must be searched backwards, so that the
> > deepest
> > @@ -2476,7 +2476,7 @@
> >              /* for user defined operators, also remove the "prototyped"
> > flag, as
> >               * user-defined operators *must* be declared before use
> >               */
> > -            if (sym->ident == iFUNCTN && !isalpha(*sym->name)
> > +            if (sym->ident == iFUNCTN && !sc_isalpha(*sym->name)
> >                  && *sym->name != '_' && *sym->name != PUBLIC_CHAR)
> >                 sym->usage &= ~uPROTOTYPED;
> >              root = sym;        /* skip the symbol */
> >
> > Modified: trunk/embryo/src/bin/embryo_cc_sc6.c
> > ===================================================================
> > --- trunk/embryo/src/bin/embryo_cc_sc6.c        2012-09-07 10:07:09 UTC
> > (rev 76292)
> > +++ trunk/embryo/src/bin/embryo_cc_sc6.c        2012-09-07 10:12:50 UTC
> > (rev 76293)
> > @@ -134,7 +134,7 @@
> >  static char        *
> >  skipwhitespace(char *str)
> >  {
> > -   while (isspace(*str))
> > +   while (
> 
> 
> 
> -- 
> Gustavo Sverzut Barbieri
> http://profusion.mobi embedded systems
> --------------------------------------
> MSN: barbi...@gmail.com
> Skype: gsbarbieri
> Mobile: +55 (19) 9225-2202
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to