Changeset 497

Show
Ignore:
Timestamp:
11/14/07 04:27:55 (10 months ago)
Author:
krobillard
Message:

Iter accepts negative skip.
Updated GL atoms, manual, and encode test.

Location:
trunk/thune
Files:
2 added
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/thune/doc/UserManual

    r480 r497  
    464464pick        (ser index -- val)      Fetch an element from a series. 
    465465poke        (ser val index -- ser)  Set an element of a series. 
     466push        (ser val -- )           Append value to series and drop. 
     467pop         (ser -- )               Remove last element from series and drop. 
    466468first       (ser -- val)            Fetch first value in series. 
    467469second      (ser -- val)            Fetch second value in series. 
  • trunk/thune/gl/gx_atoms.h

    r489 r497  
    11// This file is automatically generated - do not edit. 
    22 
    3 #define UR_ATOM_DRAW_LIST_OPCODES               324 
    4 #define UR_ATOM_WIDTH           325 
    5 #define UR_ATOM_HEIGHT          326 
    6 #define UR_ATOM_AREA            327 
    7 #define UR_ATOM_RECT            328 
    8 #define UR_ATOM_RASTER          329 
    9 #define UR_ATOM_TEXTURE         330 
    10 #define UR_ATOM_ELEM            331 
    11 #define UR_ATOM_CLOSE           183 
    12 #define UR_ATOM_FOCUS           332 
    13 #define UR_ATOM_RESIZE          333 
    14 #define UR_ATOM_KEY_DOWN                334 
    15 #define UR_ATOM_KEY_UP          335 
    16 #define UR_ATOM_MOUSE_MOVE              336 
    17 #define UR_ATOM_MOUSE_UP                337 
    18 #define UR_ATOM_MOUSE_DOWN              338 
    19 #define UR_ATOM_MOUSE_WHEEL             339 
    20 #define UR_ATOM_AMBIENT         340 
    21 #define UR_ATOM_DIFFUSE         341 
    22 #define UR_ATOM_SPECULAR                342 
    23 #define UR_ATOM_POS             343 
    24 #define UR_ATOM_SHADER          344 
    25 #define UR_ATOM_VERTEX          345 
    26 #define UR_ATOM_FRAGMENT                346 
    27 #define UR_ATOM_DEFAULT         347 
     3#define UR_ATOM_DRAW_LIST_OPCODES               325 
     4#define UR_ATOM_WIDTH           326 
     5#define UR_ATOM_HEIGHT          327 
     6#define UR_ATOM_AREA            328 
     7#define UR_ATOM_RECT            329 
     8#define UR_ATOM_RASTER          330 
     9#define UR_ATOM_TEXTURE         331 
     10#define UR_ATOM_ELEM            332 
     11#define UR_ATOM_CLOSE           184 
     12#define UR_ATOM_FOCUS           333 
     13#define UR_ATOM_RESIZE          334 
     14#define UR_ATOM_KEY_DOWN                335 
     15#define UR_ATOM_KEY_UP          336 
     16#define UR_ATOM_MOUSE_MOVE              337 
     17#define UR_ATOM_MOUSE_UP                338 
     18#define UR_ATOM_MOUSE_DOWN              339 
     19#define UR_ATOM_MOUSE_WHEEL             340 
     20#define UR_ATOM_AMBIENT         341 
     21#define UR_ATOM_DIFFUSE         342 
     22#define UR_ATOM_SPECULAR                343 
     23#define UR_ATOM_POS             344 
     24#define UR_ATOM_SHADER          345 
     25#define UR_ATOM_VERTEX          346 
     26#define UR_ATOM_FRAGMENT                347 
     27#define UR_ATOM_DEFAULT         348 
    2828#define UR_ATOM_WAIT            135 
    29 #define UR_ATOM_RGB             348 
    30 #define UR_ATOM_RGBA            349 
    31 #define UR_ATOM_DEPTH           350 
    32 #define UR_ATOM_CLAMP           351 
    33 #define UR_ATOM_REPEAT          352 
    34 #define UR_ATOM_NEAREST         353 
    35 #define UR_ATOM_LINEAR          354 
    36 #define UR_ATOM_MIN             355 
    37 #define UR_ATOM_MAG             356 
    38 #define UR_ATOM_MIPMAP          357 
    39 #define UR_ATOM_GRAY            358 
    40 #define UR_ATOM_RGB             348 
    41 #define UR_ATOM_RGBA            349 
    42 #define UR_ATOM_ON              263 
    43 #define UR_ATOM_OFF             265 
    44 #define UR_ATOM_ADD             202 
    45 #define UR_ATOM_BURN            359 
    46 #define UR_ATOM_COLOR           360 
    47 #define UR_ATOM_TRANS           361 
    48 #define UR_ATOM_SPRITE          362 
    49 #define UR_ATOM_ONCE            363 
    50 #define UR_ATOM_PING_PONG               364 
    51 #define UR_ATOM_PONG            365 
     29#define UR_ATOM_RGB             349 
     30#define UR_ATOM_RGBA            350 
     31#define UR_ATOM_DEPTH           351 
     32#define UR_ATOM_CLAMP           352 
     33#define UR_ATOM_REPEAT          353 
     34#define UR_ATOM_NEAREST         354 
     35#define UR_ATOM_LINEAR          355 
     36#define UR_ATOM_MIN             356 
     37#define UR_ATOM_MAG             357 
     38#define UR_ATOM_MIPMAP          358 
     39#define UR_ATOM_GRAY            359 
     40#define UR_ATOM_RGB             349 
     41#define UR_ATOM_RGBA            350 
     42#define UR_ATOM_ON              264 
     43#define UR_ATOM_OFF             266 
     44#define UR_ATOM_ADD             203 
     45#define UR_ATOM_BURN            360 
     46#define UR_ATOM_COLOR           361 
     47#define UR_ATOM_TRANS           362 
     48#define UR_ATOM_SPRITE          363 
     49#define UR_ATOM_ONCE            364 
     50#define UR_ATOM_PING_PONG               365 
     51#define UR_ATOM_PONG            366 
  • trunk/thune/project.r

    r494 r497  
    2525        cflags {-pedantic} 
    2626        include_from %unix 
     27        universal 
    2728    ] 
    2829    unix [ 
  • trunk/thune/tests/working/encode.good

    r469 r497  
    1313hello 
    1414"hello" 
    15 #{680065006C006C006F00} 
     15#{00680065006C006C006F} 
    16165 
    1717'e' 
  • trunk/thune/thune.c

    r490 r497  
    609609 
    610610                case OP_ITER:           // (series blk -- ) 
    611                     if( ur_is(UR_TOS, UT_BLOCK) && 
    612                         (ur_itLen( ut, ur_s_prev(UR_TOS) ) > 0) ) 
     611                    if( ur_is(UR_TOS, UT_BLOCK) ) 
    613612                    { 
     613                        int skip = ur_sel(val); 
     614                        if( skip == 0 ) 
     615                            skip = 1; 
     616                        if( skip > 0 ) 
     617                        { 
     618                            if( ur_itLen( ut, ur_s_prev(UR_TOS) ) < 1 ) 
     619                                goto no_iter; 
     620                        } 
     621                        else 
     622                        { 
     623                            if( ur_s_prev(UR_TOS)->series.it < 1 ) 
     624                                goto no_iter; 
     625                        } 
    614626                        PUSHC_EVAL( blkN, start, pc ); 
    615627                        SET_BLK_PC( UR_TOS->series.n, 
    616628                                    UR_TOS->series.it ); 
    617                         PUSHC_ITER( blkN, pc, end, 
    618                                     (ur_sel(val) > 1) ? ur_sel(val) : 1 ); 
     629                        PUSHC_ITER( blkN, pc, end, skip ); 
    619630 
    620631                        // Loop code must drop TOS. 
     
    623634                    else 
    624635                    { 
     636no_iter: 
    625637                        UR_S_DROPN(2); 
    626638                    } 
     
    10631075 
    10641076        case CC_ITER: 
    1065             UR_TOS->series.it += UR_TOC->iter.skip; 
    1066             if( ur_itLen(ut, UR_TOS) > 0 ) 
     1077        { 
     1078            int skip = UR_TOC->iter.skip; 
     1079            UR_TOS->series.it += skip; 
     1080            if( ((skip > 0) ? ur_itLen(ut, UR_TOS) : UR_TOS->series.it + 1) 
     1081                    > 0 ) 
    10671082            { 
    10681083                RESET_ITER( pc, end ); 
     
    10721087            UR_C_DEC; 
    10731088            UR_S_DROP;           // Pop iterator value. 
     1089        } 
    10741090            goto control; 
    10751091