Changeset 888bfe6 in git


Ignore:
Timestamp:
Oct 14, 2008, 9:56:47 AM (15 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
Children:
5c9d99573bf1433cfce050d20faf365415f0e341
Parents:
0ebb922e88968aeb8c46d80e1e4f0e32a6039f3d
Message:
*hannes: StringAppend opt. again


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

Legend:

Unmodified
Added
Removed
  • kernel/febase.cc

    r0ebb922 r888bfe6  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: febase.cc,v 1.21 2008-10-13 17:32:34 Singular Exp $ */
     4/* $Id: febase.cc,v 1.22 2008-10-14 07:56:47 Singular Exp $ */
    55/*
    66* ABSTRACT: i/o system
     
    822822  long more;
    823823  va_start(ap, fmt);
    824   if (*fmt!='\0')
    825   {
    826     if ((more=feBufferStart-feBuffer+strlen(fmt)+100)>feBufferLength)
    827     {
    828       more = ((more + (8*1024-1))/(8*1024))*(8*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;
     824  if ((more=feBufferStart-feBuffer+strlen(fmt)+100)>feBufferLength)
     825  {
     826    more = ((more + (8*1024-1))/(8*1024))*(8*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;
    837833#ifndef BSD_SPRINTF
    838         feBufferStart=s;
    839 #endif
    840       }
    841     }
     834    feBufferStart=s;
     835#endif
     836  }
    842837#ifdef BSD_SPRINTF
    843     vsprintf(s, fmt, ap);
    844     while (*s!='\0') s++;
    845     feBufferStart =s;
     838  vsprintf(s, fmt, ap);
     839  while (*s!='\0') s++;
     840  feBufferStart =s;
    846841#else
    847842#ifdef HAVE_VSNPRINTF
    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     }
     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  }
    858853#else
    859     feBufferStart += vsprintf(s, fmt, ap);
    860 #endif
    861 #endif
    862     omCheckAddrSize(feBuffer, feBufferLength);
    863   }
     854  feBufferStart += vsprintf(s, fmt, ap);
     855#endif
     856#endif
     857  omCheckAddrSize(feBuffer, feBufferLength);
    864858  va_end(ap);
    865859  return feBuffer;
Note: See TracChangeset for help on using the changeset viewer.