home bbs files messages ]

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

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

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

   Message 262,715 of 264,096   
   Craig A. Berry to All   
   Re: FreeTDS port to VMS V9.x on x86?   
   24 Jun 25 06:51:33   
   
   From: craigberry@nospam.mac.com   
      
   On 6/23/25 9:35 PM, Arne Vajhøj wrote:   
   > On 6/23/2025 10:16 PM, Arne Vajhøj wrote:   
   >> On 6/23/2025 9:49 PM, Craig A. Berry wrote:   
   >>> This one looks pretty simple and depends only on vsnprintf, which has   
   >>> been in VMS since 7.3-2, so it was probably in some ancient standard,   
   >>> though I haven't looked yet:   
   >>>   
   >>> https://github.com/jkaivo/asprintf/blob/asprintf/asprintf.h   
   >>>   
   >>> It's MIT which I think can be included in a GPL project like FreeTDS. I   
   >>> will try to remember to look at this when I get some other things sorted   
   >>> out.   
   >>   
   >> It could definitely be used.   
   >>   
   >> But why not just steal the trick from it instead of the whole code?   
   >>   
   >> The trick they use is va_copy.   
   >>   
   >> I think tds_vasprintf could use va_copy to solve the problem as well!   
   >   
   > On the other side, then ditching existing code and taking this   
   > would also switch form vfprintf to vsnprintf for length   
   > determination, which Lawrence is correct would be   
   > better.   
      
   It turns out tds_vasprtintf already uses vsnprintf if HAVE_VSNPRINTF is   
   defined and only falls back to the /dev/null hack if not:   
      
   https://github.com/FreeTDS/freetds/blob/master/src/replacements/vasprintf.c   
      
   So my next change to FreeTDS will look something like this:   
      
   --- vms/config_h.vms;-0	Tue Sep 26 09:23:25 2023   
   +++ vms/config_h.vms	Tue Jun 24 05:23:20 2025   
   @@ -237,7 +237,9 @@   
     #define HAVE_SNPRINTF @D_SNPRINTF@   
      
     /* Define to 1 if you have the `vsnprintf' function. */   
   -#define HAVE_VSNPRINTF 0   
   +#if __CRTL_VER >= 70302000   
   +#define HAVE_VSNPRINTF 1   
   +#endif   
      
     /* Define as const if the declaration of iconv() needs const. */   
     #if HAVE_ICONV   
   [end_of_patch]   
      
   That should cover everybody with a VMS system from recent decades.   
      
   --- 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