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); }
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; }
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; }