Example #1
0
int
Yap_OpenBufWriteStream( USES_REGS1 )
{
  char *nbuf;
  size_t sz =  Yap_page_size;


  while ((nbuf = (char *)Yap_AllocAtomSpace(Yap_page_size*sizeof(char))) == NULL) {
    if (!Yap_growheap(FALSE, Yap_page_size*sizeof(char), NULL)) {
      Yap_Error(RESOURCE_ERROR_HEAP, TermNil,  LOCAL_ErrorMessage);
      return -1;
    }
  }
  return Yap_open_buf_write_stream(nbuf, sz, &GLOBAL_Stream[LOCAL_c_output_stream].encoding, 0);
}
Example #2
0
int Yap_FormatFloat(Float f, char **s, size_t sz) {
  CACHE_REGS
  struct write_globs wglb;
  int sno;
  char *so;

  sno = Yap_open_buf_write_stream(
      *s, sz, &GLOBAL_Stream[LOCAL_c_output_stream].encoding, 0);
  if (sno < 0)
    return FALSE;
  wglb.stream = GLOBAL_Stream + sno;
  wrputf(f, &wglb);
  so = Yap_MemExportStreamPtr(sno);
  Yap_CloseStream(sno);
  *s = so;
  return TRUE;
}
Example #3
0
int Yap_FormatFloat(Float f, char **s, size_t sz) {
  CACHE_REGS
    struct write_globs wglb;
  int sno;
  char *so;

  sno = Yap_open_buf_write_stream(GLOBAL_Stream[LOCAL_c_output_stream].encoding,
                                  0);
  if (sno < 0)
    return false;
  wglb.lw = separator;
  wglb.stream = GLOBAL_Stream + sno;
  wrputf(f, &wglb);
  wrputc('\0', wglb.stream);
  so = Yap_MemExportStreamPtr(sno);
  *s = Malloc( strlen(so) )+1;
  strcpy(*s, so );
  Yap_CloseStream(sno);
  return true;
}