Changeset dab31d0


Ignore:
Timestamp:
Apr 26, 2020, 12:06:54 PM (4 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
b25aafa
Parents:
0a2e1c05
Message:

more work on manipulators for int128 numbers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.cfa

    r0a2e1c05 rdab31d0  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Apr 25 17:24:26 2020
    13 // Update Count     : 974
     12// Last Modified On : Sun Apr 26 11:13:25 2020
     13// Update Count     : 979
    1414//
    1515
     
    565565                                fmt2.flags.pad0 = fmt2.flags.nobsdp = true;     \
    566566                                if ( f.base == 'b' | f.base == 'B' ) { \
    567                                         if ( fmt.flags.pc && fmt.pc > 64 ) fmt.pc -= 64; \
     567                                        if ( fmt.flags.pc && fmt.pc > 64 ) fmt.pc -= 64; else { fmt.flags.pc = false; fmt.pc = 0; } \
    568568                                        if ( fmt.flags.left ) { \
    569569                                                fmt2.wd = fmt.wd; \
     
    584584                                                printf( "left %d %d %x\n", fmt.wd, fmt.pc, fmt.all ); \
    585585                                        } else { \
     586                                                if ( fmt.wd > 64 ) fmt.wd -= 64; \
     587                                                if ( ! fmt.flags.nobsdp && fmt.pc < fmt.wd ) fmt.wd -= 1; \
    586588                                                fmt2.wd = 64; \
    587                                                 if ( fmt.wd > 64 ) fmt.wd -= 64; \
    588                                                 printf( "left %d %d %x\n", f.wd, f.pc, f.all ); \
    589                                                 printf( "left %d %d %x\n", fmt.wd, fmt.pc, fmt.all ); \
     589                                                /* printf( "R %llo %llo %llo %llo %d %d '%c' %x\n", msig, lsig, fmt.val, fmt2.val, fmt.wd, fmt.pc, fmt.base, fmt.all ); */ \
    590590                                        } /* if */ \
    591                                         fmt2.pc = 64; fmt2.flags.pc = true;     \
    592                                         printf( "left %d %d %x\n", fmt2.wd, fmt2.pc, fmt2.all ); \
     591                                        /* printf( "\nC %llo %d %d '%c' %x\n", fmt2.val, fmt2.wd, fmt2.pc, fmt2.base, fmt2.all ); */ \
    593592                                        (ostype &)(os | fmt | "" | fmt2); \
    594593                                } else if ( f.base == 'o' ) { \
     
    599598                                                fmt.flags.left = false; \
    600599                                                fmt.wd = 0; \
    601                                                 if ( fmt2.val > 1 && fmt.flags.pc && fmt.pc > 0 ) fmt.pc -= 1; \
     600                                                /* if ( fmt2.val > 1 && fmt.flags.pc && fmt.pc > 0 ) fmt.pc -= 1; */ \
    602601                                                /* printf( "L %llo %llo %llo %llo %d %d '%c' %x\n", msig, lsig, fmt.val, fmt2.val, fmt.wd, fmt.pc, fmt.base, fmt.all ); */ \
    603602                                                (ostype &)(os | fmt | "" | fmt2); \
     
    606605                                                int msigd = ceiling( high1( fmt.val ), 3 ) + 1; \
    607606                                                fmt2.wd = f.wd - (fmt.pc > msigd ? fmt.pc : msigd) - 1; \
    608                                                 if ( fmt2.wd < 0 ) fmt2.wd = 21; \
     607                                                if ( fmt2.wd < 21 ) fmt2.wd = 21; \
     608                                                fmt2.flags.pc = true; fmt2.pc = 21; \
    609609                                                if ( ! fmt.flags.nobsdp && fmt.pc < fmt.wd ) fmt.wd -= 1; \
    610610                                        } else { \
Note: See TracChangeset for help on using the changeset viewer.