[BACK]Return to compat_vasprintf.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/compat_vasprintf.c between version 1.1 and 1.3

version 1.1, 2015/03/19 14:57:29 version 1.3, 2015/10/06 18:32:19
Line 37  int
Line 37  int
 vasprintf(char **ret, const char *format, va_list ap)  vasprintf(char **ret, const char *format, va_list ap)
 {  {
         char     buf[2];          char     buf[2];
           va_list  ap2;
         int      sz;          int      sz;
   
         if ((sz = vsnprintf(buf, sizeof(buf), format, ap)) != -1 &&          va_copy(ap2, ap);
             (*ret = malloc(sz + 1)) != NULL) {          sz = vsnprintf(buf, sizeof(buf), format, ap2);
           va_end(ap2);
   
           if (sz != -1 && (*ret = malloc(sz + 1)) != NULL) {
                 if (vsnprintf(*ret, sz + 1, format, ap) == sz)                  if (vsnprintf(*ret, sz + 1, format, ap) == sz)
                         return(sz);                          return sz;
                 free(*ret);                  free(*ret);
         }          }
         *ret = NULL;          *ret = NULL;
         return(-1);          return -1;
 }  }
   
 #endif  #endif

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

CVSweb