Exemplo n.º 1
0
void CFX_BinaryBuf::EstimateSize(FX_STRSIZE size, FX_STRSIZE step) {
  m_AllocStep = step;
  if (m_AllocSize >= size) {
    return;
  }
  ExpandBuf(size - m_DataSize);
}
Exemplo n.º 2
0
void CFX_BinaryBuf::AppendBlock(const void* pBuf, FX_STRSIZE size) {
  ExpandBuf(size);
  if (pBuf && m_pBuffer) {
    FXSYS_memcpy(m_pBuffer + m_DataSize, pBuf, size);
  }
  m_DataSize += size;
}
Exemplo n.º 3
0
void CFX_WideTextBuf::AppendChar(FX_WCHAR ch) {
  if (m_AllocSize < m_DataSize + (FX_STRSIZE)sizeof(FX_WCHAR)) {
    ExpandBuf(sizeof(FX_WCHAR));
  }
  ASSERT(m_pBuffer);
  *(FX_WCHAR*)(m_pBuffer + m_DataSize) = ch;
  m_DataSize += sizeof(FX_WCHAR);
}
Exemplo n.º 4
0
void CFX_BinaryBuf::AppendFill(uint8_t byte, FX_STRSIZE count) {
  ExpandBuf(count);
  if (!m_pBuffer) {
    return;
  }
  FXSYS_memset(m_pBuffer + m_DataSize, byte, count);
  m_DataSize += count;
}
Exemplo n.º 5
0
void CFX_BinaryBuf::InsertBlock(FX_STRSIZE pos, const void* pBuf, FX_STRSIZE size)
{
    ExpandBuf(size);
    if (!m_pBuffer) {
        return;
    }
    FXSYS_memmove(m_pBuffer + pos + size, m_pBuffer + pos, m_DataSize - pos);
    if (pBuf) {
        FXSYS_memcpy(m_pBuffer + pos, pBuf, size);
    }
    m_DataSize += size;
}
Exemplo n.º 6
0
void CFX_BinaryBuf::CopyData(const void* pStr, FX_STRSIZE size) {
  if (size == 0) {
    m_DataSize = 0;
    return;
  }
  if (m_AllocSize < size) {
    ExpandBuf(size - m_DataSize);
  }
  if (!m_pBuffer) {
    return;
  }
  FXSYS_memcpy(m_pBuffer, pStr, size);
  m_DataSize = size;
}
Exemplo n.º 7
0
CFX_WideTextBuf& CFX_WideTextBuf::operator<<(double f) {
  char buf[32];
  FX_STRSIZE len = FX_ftoa((FX_FLOAT)f, buf);
  if (m_AllocSize < m_DataSize + (FX_STRSIZE)(len * sizeof(FX_WCHAR))) {
    ExpandBuf(len * sizeof(FX_WCHAR));
  }
  ASSERT(m_pBuffer);
  FX_WCHAR* str = (FX_WCHAR*)(m_pBuffer + m_DataSize);
  for (FX_STRSIZE i = 0; i < len; i++) {
    *str++ = buf[i];
  }
  m_DataSize += len * sizeof(FX_WCHAR);
  return *this;
}
Exemplo n.º 8
0
CFX_WideTextBuf& CFX_WideTextBuf::operator<<(int i) {
  char buf[32];
  FXSYS_itoa(i, buf, 10);
  FX_STRSIZE len = FXSYS_strlen(buf);
  if (m_AllocSize < m_DataSize + (FX_STRSIZE)(len * sizeof(FX_WCHAR))) {
    ExpandBuf(len * sizeof(FX_WCHAR));
  }
  ASSERT(m_pBuffer);
  FX_WCHAR* str = (FX_WCHAR*)(m_pBuffer + m_DataSize);
  for (FX_STRSIZE j = 0; j < len; j++) {
    *str++ = buf[j];
  }
  m_DataSize += len * sizeof(FX_WCHAR);
  return *this;
}
Exemplo n.º 9
0
int32_t CFDE_CSSTextBuf::LoadFromStream(IFX_Stream* pTxtStream,
                                        int32_t iStreamOffset,
                                        int32_t iMaxChars,
                                        FX_BOOL& bEOS) {
  ASSERT(iStreamOffset >= 0 && iMaxChars > 0);
  Clear();
  m_bExtBuf = FALSE;
  if (!ExpandBuf(iMaxChars)) {
    return 0;
  }
  if (pTxtStream->GetPosition() != iStreamOffset) {
    pTxtStream->Seek(FX_STREAMSEEK_Begin, iStreamOffset);
  }
  m_iDatLen = pTxtStream->ReadString(m_pBuffer, iMaxChars, bEOS);
  return m_iDatLen;
}
Exemplo n.º 10
0
FX_BOOL CFDE_CSSTextBuf::EstimateSize(int32_t iAllocSize) {
  FXSYS_assert(iAllocSize > 0);
  Clear();
  m_bExtBuf = FALSE;
  return ExpandBuf(iAllocSize);
}
Exemplo n.º 11
0
U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL,Bool raw=FALSE)
{
  CHashGeneric *temph;
  U8 *absname,*altname,*curname,*result=NULL;
  I64 i,size=0,attr=0;
  CFileAccess *fa;
  CArcCompress *ac=NULL;
  if (_attr) *_attr=0;
  absname=FileNameAbs(filename);
  altname=ToggleZorNotZ(absname);
  if (!raw && ((temph=HashFind(absname,adam_task->hash_table,HTT_FILE))||
	       (temph=HashFind(altname,adam_task->hash_table,HTT_FILE)))) {
    if (FileAttr(absname) & _ATTR_COMPRESSED) {
      ac=temph->user_data0;
      if (_size) *_size=ac->expanded_size;
      if (_attr) *_attr=FileAttr(absname,*_attr);
      result=ExpandBuf(ac);
    } else {
      result=MAlloc(temph->user_data1+1);
      MemCpy(result,temph->user_data0,temph->user_data1);
      result[temph->user_data1]=0; //Terminate
      if (_size) *_size=temph->user_data1;
    }
  } else {
    for (i=0;i<2 && !result;i++) {//Try name, then altname
      if (!i)
	curname=absname;
      else
	curname=altname;
      if (fa=FileAccessNew(curname)) {
	switch (fa->p->type) {
	  case PT_REDSEA:
	    result=RedSeaFSFileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	    break;
	  case PT_FAT32:
	    result=FAT32FileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	    break;
	  case PT_ISO9660:
	    result=ISO1FileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	    break;
	  default:
	    PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
	}
	FileAccessDel(fa);
      }
    }

    //Search parent directories.
    for (i=0;i<2 && !result;i++) {//Try name, then altname
      if (!i)
	curname=absname;
      else
	curname=altname;
      if (fa=FileAccessNew(curname)) {
	while (!result && StrCmp(Fs->cur_dir,"/")) {
	  Cd("..");
	  switch (Fs->cur_prt->type) {
	    case PT_REDSEA:
	      result=RedSeaFSFileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	      break;
	    case PT_FAT32:
	      result=FAT32FileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	      break;
	    case PT_ISO9660:
	      result=ISO1FileRead(fa->p,Fs->cur_dir,fa->mask,&size,&attr,raw,&ac);
	      break;
	    default:
	      PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM");
	  }
	}
	FileAccessDel(fa);
      }
    }
    if (!result) {
      "%s ",filename;
      PutDefineErr("ST_FILE_NOT_FOUND");
    }
    if (_size) *_size=size;
    if (_attr) *_attr=attr;
    if (result && !raw && attr & _ATTR_RESIDENT)
      HashGenericAdd(curname,HTT_FILE,AMAllocIdentical(ac),size,0,adam_task);
    Free(ac);
  }
  Free(absname);
  Free(altname);
  return result;
}