Changeset 678db5 in git


Ignore:
Timestamp:
Oct 13, 2008, 7:17:06 PM (16 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
47fa19583c6aac5d7fbb8a1d45f75499e841eafd
Parents:
557ebdfb9713d33ae4d3f50db45c8018a9c4c377
Message:
*hannes: minor opt: StringAppend


git-svn-id: file:///usr/local/Singular/svn/trunk@11132 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/febase.cc

    r557ebd r678db5  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: febase.cc,v 1.19 2008-10-13 16:17:14 Singular Exp $ */
     4/* $Id: febase.cc,v 1.20 2008-10-13 17:17:06 Singular Exp $ */
    55/*
    66* ABSTRACT: i/o system
     
    822822  long more;
    823823  va_start(ap, fmt);
    824   if ((more=feBufferStart-feBuffer+strlen(fmt)+100)>feBufferLength)
    825   {
    826     more = ((more + (4*1024-1))/(4*1024))*(4*1024);
    827     int l=s-feBuffer;
    828     feBuffer=(char *)omReallocSize((ADDRESS)feBuffer,feBufferLength,
    829                                                      more);
    830     omMarkAsStaticAddr(feBuffer);
    831     feBufferLength=more;
    832     s=feBuffer+l;
     824  if (*fmt!='\0')
     825  {
     826    if ((more=feBufferStart-feBuffer+strlen(fmt)+100)>feBufferLength)
     827    {
     828      more = ((more + (4*1024-1))/(4*1024))*(4*1024);
     829      int l=s-feBuffer;
     830      if (more!=feBufferLength)
     831      {
     832        feBuffer=(char *)omReallocSize((ADDRESS)feBuffer,feBufferLength,
     833                                                       more);
     834        omMarkAsStaticAddr(feBuffer);
     835        feBufferLength=more;
     836        s=feBuffer+l;
    833837#ifndef BSD_SPRINTF
    834     feBufferStart=s;
    835 #endif
    836   }
     838        feBufferStart=s;
     839#endif
     840      }
     841    }
    837842#ifdef BSD_SPRINTF
    838   vsprintf(s, fmt, ap);
    839   while (*s!='\0') s++;
    840   feBufferStart =s;
     843    vsprintf(s, fmt, ap);
     844    while (*s!='\0') s++;
     845    feBufferStart =s;
    841846#else
    842847#ifdef HAVE_VSNPRINTF
    843   vs = vsnprintf(s, feBufferLength - (feBufferStart - feBuffer), fmt, ap);
    844   if (vs == -1)
    845   {
    846     assume(0);
    847     feBufferStart = feBuffer + feBufferLength -1;
    848   }
    849   else
    850   {
    851     feBufferStart += vs;
    852   }
     848    vs = vsnprintf(s, feBufferLength - (feBufferStart - feBuffer), fmt, ap);
     849    if (vs == -1)
     850    {
     851      assume(0);
     852      feBufferStart = feBuffer + feBufferLength -1;
     853    }
     854    else
     855    {
     856      feBufferStart += vs;
     857    }
    853858#else
    854   feBufferStart += vsprintf(s, fmt, ap);
    855 #endif
    856 #endif
    857   omCheckAddrSize(feBuffer, feBufferLength);
     859    feBufferStart += vsprintf(s, fmt, ap);
     860#endif
     861#endif
     862    omCheckAddrSize(feBuffer, feBufferLength);
     863  }
    858864  va_end(ap);
    859865  return feBuffer;
Note: See TracChangeset for help on using the changeset viewer.