Changes in / [cefc59f:13099a8b]


Ignore:
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.cfa

    rcefc59f r13099a8b  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Apr 23 17:33:32 2020
    13 // Update Count     : 942
     12// Last Modified On : Fri Apr 24 11:48:53 2020
     13// Update Count     : 954
    1414//
    1515
     
    598598                                                fmt.wd = 1; \
    599599                                                fmt.val = (unsigned long long int)fmt.val >> 2; \
    600                                                 printf( "L %llo %d %d '%c' %x\n", fmt.val, fmt.wd, fmt.pc, fmt.base, fmt.all ); \
    601600                                                fmt2.wd = 1; \
    602                                                 fmt2.val = ((msig & 0x3) << 1) + 1; \
     601                                                fmt2.val = ((msig & 0x3) << 1) + ((lsig & 0x8000000000000000U) != 0); \
     602                                                if ( fmt2.val > 1 && fmt.flags.pc && fmt.pc > 0 ) fmt.pc -= 1; \
     603                                                /* 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 ); */ \
    603604                                                (ostype &)(os | fmt | "" | fmt2); \
    604605                                                sepOff( os ); \
     
    609610                                                fmt2.flags.pc = true; fmt2.pc = 21; \
    610611                                                if ( ! fmt.flags.nobsdp ) { if ( fmt.pc < fmt.wd ) fmt.wd -= 1; else fmt.pc -= 1; } \
    611                                                 fmt2.val = lsig & 0x7fffffffffffffff; \
     612                                                fmt2.val = lsig & 0x7fffffffffffffffU; \
    612613                                                (ostype &)(os | fmt2); \
    613614                                        } else { \
     
    616617                                                if ( ! fmt.flags.nobsdp ) { if ( fmt.pc < fmt.wd ) fmt.wd -= 1; else fmt.pc -= 1; } \
    617618                                                fmt2.wd = 1; \
    618                                                 fmt2.val = ((msig & 0x3) << 1) + 1; \
     619                                                fmt2.val = ((msig & 0x3) << 1) + (lsig & 0x8000000000000000U != 0); \
    619620                                                (ostype &)(os | fmt | "" | fmt2); \
    620621                                                sepOff( os ); \
    621622                                                fmt2.wd = 21; \
    622                                                 fmt2.val = lsig & 0x7fffffffffffffff; \
     623                                                fmt2.val = lsig & 0x7fffffffffffffffU; \
    623624                                                (ostype &)(os | fmt2); \
    624625                                        } /* if */ \
  • tests/manipulatorsOutput3.cfa

    rcefc59f r13099a8b  
    11#include <fstream.hfa>
    22int main() {
    3     int128 x = 0xffff;
    4     x <<= 64;;
     3    int128 x = 0xffff, y = 0x2;
     4    x <<= 64;
    55    x += 0xffff;
     6    y <<= 64;
     7    y += 0123;
     8    y |= 0x8000000000000000;
    69    x = -x;
    710    sout | x;
     
    3235    sout | left(wd( 45, oct(0123) )) | 'X';
    3336    sout | left(wd( 45, oct(x) )) | 'X';
     37    sout | left(wd( 45, oct(y) )) | 'X';
    3438    sout | left(wd( 45,40, oct(0123) )) | 'X';
    3539    sout | left(wd( 45,40, oct(x) )) | 'X';
     40    sout | left(wd( 45,40, oct(y) )) | 'X';
    3641    sout | left(wd( 40,45, oct(0123) )) | 'X';
    3742    sout | left(wd( 40,45, oct(x) )) | 'X';
     43    sout | left(wd( 40,45, oct(y) )) | 'X';
    3844    printf( "%#-1.10oX\n", 0123 );
    3945    sout | left(wd( 1,10, oct(0123) )) | 'X';
     
    4147    sout | left(wd( 40,10, oct(0123) )) | 'X';
    4248    sout | left(wd( 40,10, oct(x) )) | 'X';
     49    sout | left(wd( 40,10, oct(y) )) | 'X';
    4350    sout | left(wd( 10,40, oct(0123) )) | 'X';
    4451    sout | left(wd( 10,40, oct(x) )) | 'X';
     52    sout | left(wd( 10,40, oct(y) )) | 'X';
    4553
    46     int128 y = 123456789;
     54    y = 123456789;
    4755    sout | left(wd( 45, 49, oct(y) )) | 'X';
    4856    sout | nl;
Note: See TracChangeset for help on using the changeset viewer.