home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.comp.os.windows-xp      Actually wasn't too bad for a M$-OS      17,273 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 17,121 of 17,273   
   Paul to R.Wieser   
   Re: wsprintf I64 - how to get it to incl   
   08 Jan 26 08:12:51   
   
   XPost: comp.os.ms-windows.programmer.win32, alt.windows7.general   
   From: nospam@needed.invalid   
      
   On Thu, 1/8/2026 2:00 AM, R.Wieser wrote:   
   > Paul,   
   >   
   >> Generated 45 characters   
   >>   
   >> Pack my box with  +5000000000000  liquor jugs   
   >   
   > Hmmm....   It works for you, but not for me.  Did you use XP or some other,   
   > later version ?   
   >   
   > By the way, quite the box you have there. :-)   
   >   
   > Regards,   
   > Rudy Wieser   
   >   
   >   
      
   The routine you were using, was supposed to be a "legacy"   
   version with no floating point printout capability.   
   The "w" stands for "wombat" rather than "wide". That's what   
   a Google was telling me. So I switched to another print   
   variant that a couple of posts suggested would be   
   a successor to it.   
      
   I did my compiling in a mingw64 variant, because I wasn't sure whether   
   the original mingw had "c99".   
      
   If I could have copy/pasted any text examples using hex strings,   
   to flesh out the wide characters, I would have. But nothing   
   presented itself that I could copy.   
      
   The leading "+" as a sign indicator [ %+lld ], seems to work. Running   
   the program with a negative number, prints out a sign too.   
      
   $ ./wide   
   Generated 45 characters   
      
   Pack my box with  -5000000000000  liquor jugs   
      
   *******   
      
   Using "history" in the terminal, it looks like the first sub-package   
   I populated was this one.   
      
   pacman -S mingw-w64-ucrt-x86_64-gcc   
      
   pacman -Ss  gcc   
      
   So I added a couple more. These are in a way, cross compilers by   
   naming convention, but doing x86-to-x86 or something.   
      
    pacman -S mingw64/mingw-w64-x86_64-gcc   
    pacman -S mingw32/mingw-w64-i686-gcc   
      
    MINGW32 ~   
   $ gcc -m64 -std=c99 -o wide.exe wide.c   
   cc1.exe: sorry, unimplemented: 64-bit mode not compiled in   
      
    MINGW32 ~   
   $ gcc -m32 -std=c99 -o wide.exe wide.c   
      
   $ ./wide   
   Generated 18 characters   
      
   P -5000000000000   
      
   And then it doesn't work right.   
      
    MINGW64 ~   
   $ gcc -m64 -std=c99 -o wide.exe wide.c   
      
    MINGW64 ~   
   $ ./wide   
   Generated 18 characters   
      
   P -5000000000000   
      
   Nope. and gcc -m32  does not link there.   
      
   So whatever UCRT does, seems to work.   
      
   *******   
      
   If I take it over to the original MINGW, then only   
   one flavor would be supported.   
      
   gcc  -std=c99 -o wide.exe wide.c   
      
      16 |    int len = swprintf( buf, 100, L"%s %+lld %s", L"Pack my box with ",   
   i, L" liquor jugs" );   
         |              ^~~~~~~~   
         |              snwprintf   
      
   Fixing that, gives   
      
   $ ./wide   
   Generated 45 characters   
      
   Pack my box with  -5000000000000  liquor jugs   
      
   And the final program is:   
      
   /* #include  */   
   /* #include  */   
   #include    
      
   /* gcc      -std=c99 -o wide.exe wide.c */   
      
   int main( void )   
   {   
      wchar_t buf[100];   
      /* int64_t i; */   
      long long int i;   
      
      i = -5000000000000 ;   
      
      int len = snwprintf( buf, 100, L"%s %+lld %s", L"Pack my box with ", i, L"   
   liquor jugs" );   
      printf( "Generated %d characters\n\n", len );   
      
      wprintf(L"%ls\n\n", buf);   
   }   
      
      Paul   
      
      
      
      
      
      
      
      
      Paul   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca