1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3<title>buffio.h File Reference</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5</head><body> 6<!-- Generated by Doxygen 1.2.17 --> 7<h1>buffio.h File Reference</h1> 8<p> 9<a href="buffio_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0> 10<tr><td></td></tr> 11<tr><td colspan=2><br><h2>Data Structures</h2></td></tr> 12<tr><td nowrap align=right valign=top>struct </td><td valign=bottom><a class="el" href="struct__TidyBuffer.html">_TidyBuffer</a></td></tr> 13<tr><td colspan=2><br><h2>Functions</h2></td></tr> 14<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a0">tidyBufInit</a> (TidyBuffer *buf)</td></tr> 15<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a1">tidyBufAlloc</a> (TidyBuffer *buf, uint allocSize)</td></tr> 16<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a2">tidyBufCheckAlloc</a> (TidyBuffer *buf, uint allocSize, uint chunkSize)</td></tr> 17<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a3">tidyBufFree</a> (TidyBuffer *buf)</td></tr> 18<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a4">tidyBufClear</a> (TidyBuffer *buf)</td></tr> 19<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a5">tidyBufAttach</a> (TidyBuffer *buf, void *bp, uint size)</td></tr> 20<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a6">tidyBufDetach</a> (TidyBuffer *buf)</td></tr> 21<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a7">tidyBufAppend</a> (TidyBuffer *buf, void *vp, uint size)</td></tr> 22<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a8">tidyBufPutByte</a> (TidyBuffer *buf, byte bv)</td></tr> 23<tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="buffio_8h.html#a9">tidyBufPopByte</a> (TidyBuffer *buf)</td></tr> 24<tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="buffio_8h.html#a10">tidyBufGetByte</a> (TidyBuffer *buf)</td></tr> 25<tr><td nowrap align=right valign=top>Bool </td><td valign=bottom><a class="el" href="buffio_8h.html#a11">tidyBufEndOfInput</a> (TidyBuffer *buf)</td></tr> 26<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a12">tidyBufUngetByte</a> (TidyBuffer *buf, byte bv)</td></tr> 27<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a13">initInputBuffer</a> (<a class="el" href="group__IO.html#a3">TidyInputSource</a> *inp, TidyBuffer *buf)</td></tr> 28<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="buffio_8h.html#a14">initOutputBuffer</a> (<a class="el" href="group__IO.html#a5">TidyOutputSink</a> *outp, TidyBuffer *buf)</td></tr> 29</table> 30<hr><a name="_details"></a><h2>Detailed Description</h2> 31<ul> 32<li>Treat buffer as an I/O stream.</ul> 33(c) 1998-2002 (W3C) MIT, INRIA, Keio University See <a class="el" href="tidy_8h.html">tidy.h</a> for the copyright notice. 34<p> 35CVS Info : 36<p> 37<dl compact><dt><b>Author: </b></dt><dd> 38 creitzel </dl> <dl compact><dt><b>Date: </b></dt><dd> 39 2002/10/15 19:46:52 </dl> <dl compact><dt><b>Revision: </b></dt><dd> 40 1.1.2.3 </dl> 41<p> 42Requires buffer to automatically grow as bytes are added. Must keep track of current read and write points. 43<p> 44<hr><h2>Function Documentation</h2> 45<a name="a0" doxytag="buffio.h::tidyBufInit"></a><p> 46<table width="100%" cellpadding="2" cellspacing="0" border="0"> 47 <tr> 48 <td class="md"> 49 <table cellpadding="0" cellspacing="0" border="0"> 50 <tr> 51 <td class="md" nowrap valign="top"> void tidyBufInit </td> 52 <td class="md" valign="top">( </td> 53 <td class="md" nowrap valign="top">TidyBuffer * </td> 54 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 55 <td class="md" valign="top">) </td> 56 <td class="md" nowrap></td> 57 </tr> 58 59 </table> 60 </td> 61 </tr> 62</table> 63<table cellspacing=5 cellpadding=0 border=0> 64 <tr> 65 <td> 66 67 </td> 68 <td> 69 70<p> 71Zero out data structure </td> 72 </tr> 73</table> 74<a name="a1" doxytag="buffio.h::tidyBufAlloc"></a><p> 75<table width="100%" cellpadding="2" cellspacing="0" border="0"> 76 <tr> 77 <td class="md"> 78 <table cellpadding="0" cellspacing="0" border="0"> 79 <tr> 80 <td class="md" nowrap valign="top"> void tidyBufAlloc </td> 81 <td class="md" valign="top">( </td> 82 <td class="md" nowrap valign="top">TidyBuffer * </td> 83 <td class="mdname" nowrap> <em>buf</em>, </td> 84 </tr> 85 <tr> 86 <td></td> 87 <td></td> 88 <td class="md" nowrap>uint </td> 89 <td class="mdname" nowrap> <em>allocSize</em></td> 90 </tr> 91 <tr> 92 <td></td> 93 <td class="md">) </td> 94 <td class="md" colspan="2"></td> 95 </tr> 96 97 </table> 98 </td> 99 </tr> 100</table> 101<table cellspacing=5 cellpadding=0 border=0> 102 <tr> 103 <td> 104 105 </td> 106 <td> 107 108<p> 109Free current buffer, allocate given amount, reset input pointer </td> 110 </tr> 111</table> 112<a name="a2" doxytag="buffio.h::tidyBufCheckAlloc"></a><p> 113<table width="100%" cellpadding="2" cellspacing="0" border="0"> 114 <tr> 115 <td class="md"> 116 <table cellpadding="0" cellspacing="0" border="0"> 117 <tr> 118 <td class="md" nowrap valign="top"> void tidyBufCheckAlloc </td> 119 <td class="md" valign="top">( </td> 120 <td class="md" nowrap valign="top">TidyBuffer * </td> 121 <td class="mdname" nowrap> <em>buf</em>, </td> 122 </tr> 123 <tr> 124 <td></td> 125 <td></td> 126 <td class="md" nowrap>uint </td> 127 <td class="mdname" nowrap> <em>allocSize</em>, </td> 128 </tr> 129 <tr> 130 <td></td> 131 <td></td> 132 <td class="md" nowrap>uint </td> 133 <td class="mdname" nowrap> <em>chunkSize</em></td> 134 </tr> 135 <tr> 136 <td></td> 137 <td class="md">) </td> 138 <td class="md" colspan="2"></td> 139 </tr> 140 141 </table> 142 </td> 143 </tr> 144</table> 145<table cellspacing=5 cellpadding=0 border=0> 146 <tr> 147 <td> 148 149 </td> 150 <td> 151 152<p> 153Expand buffer to given size. Chunk size is minimum growth. Pass 0 for default of 256 bytes. </td> 154 </tr> 155</table> 156<a name="a3" doxytag="buffio.h::tidyBufFree"></a><p> 157<table width="100%" cellpadding="2" cellspacing="0" border="0"> 158 <tr> 159 <td class="md"> 160 <table cellpadding="0" cellspacing="0" border="0"> 161 <tr> 162 <td class="md" nowrap valign="top"> void tidyBufFree </td> 163 <td class="md" valign="top">( </td> 164 <td class="md" nowrap valign="top">TidyBuffer * </td> 165 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 166 <td class="md" valign="top">) </td> 167 <td class="md" nowrap></td> 168 </tr> 169 170 </table> 171 </td> 172 </tr> 173</table> 174<table cellspacing=5 cellpadding=0 border=0> 175 <tr> 176 <td> 177 178 </td> 179 <td> 180 181<p> 182Free current contents and zero out </td> 183 </tr> 184</table> 185<a name="a4" doxytag="buffio.h::tidyBufClear"></a><p> 186<table width="100%" cellpadding="2" cellspacing="0" border="0"> 187 <tr> 188 <td class="md"> 189 <table cellpadding="0" cellspacing="0" border="0"> 190 <tr> 191 <td class="md" nowrap valign="top"> void tidyBufClear </td> 192 <td class="md" valign="top">( </td> 193 <td class="md" nowrap valign="top">TidyBuffer * </td> 194 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 195 <td class="md" valign="top">) </td> 196 <td class="md" nowrap></td> 197 </tr> 198 199 </table> 200 </td> 201 </tr> 202</table> 203<table cellspacing=5 cellpadding=0 border=0> 204 <tr> 205 <td> 206 207 </td> 208 <td> 209 210<p> 211Set buffer bytes to 0 </td> 212 </tr> 213</table> 214<a name="a5" doxytag="buffio.h::tidyBufAttach"></a><p> 215<table width="100%" cellpadding="2" cellspacing="0" border="0"> 216 <tr> 217 <td class="md"> 218 <table cellpadding="0" cellspacing="0" border="0"> 219 <tr> 220 <td class="md" nowrap valign="top"> void tidyBufAttach </td> 221 <td class="md" valign="top">( </td> 222 <td class="md" nowrap valign="top">TidyBuffer * </td> 223 <td class="mdname" nowrap> <em>buf</em>, </td> 224 </tr> 225 <tr> 226 <td></td> 227 <td></td> 228 <td class="md" nowrap>void * </td> 229 <td class="mdname" nowrap> <em>bp</em>, </td> 230 </tr> 231 <tr> 232 <td></td> 233 <td></td> 234 <td class="md" nowrap>uint </td> 235 <td class="mdname" nowrap> <em>size</em></td> 236 </tr> 237 <tr> 238 <td></td> 239 <td class="md">) </td> 240 <td class="md" colspan="2"></td> 241 </tr> 242 243 </table> 244 </td> 245 </tr> 246</table> 247<table cellspacing=5 cellpadding=0 border=0> 248 <tr> 249 <td> 250 251 </td> 252 <td> 253 254<p> 255Attach to existing buffer </td> 256 </tr> 257</table> 258<a name="a6" doxytag="buffio.h::tidyBufDetach"></a><p> 259<table width="100%" cellpadding="2" cellspacing="0" border="0"> 260 <tr> 261 <td class="md"> 262 <table cellpadding="0" cellspacing="0" border="0"> 263 <tr> 264 <td class="md" nowrap valign="top"> void tidyBufDetach </td> 265 <td class="md" valign="top">( </td> 266 <td class="md" nowrap valign="top">TidyBuffer * </td> 267 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 268 <td class="md" valign="top">) </td> 269 <td class="md" nowrap></td> 270 </tr> 271 272 </table> 273 </td> 274 </tr> 275</table> 276<table cellspacing=5 cellpadding=0 border=0> 277 <tr> 278 <td> 279 280 </td> 281 <td> 282 283<p> 284Detach from buffer. Caller must free. </td> 285 </tr> 286</table> 287<a name="a7" doxytag="buffio.h::tidyBufAppend"></a><p> 288<table width="100%" cellpadding="2" cellspacing="0" border="0"> 289 <tr> 290 <td class="md"> 291 <table cellpadding="0" cellspacing="0" border="0"> 292 <tr> 293 <td class="md" nowrap valign="top"> void tidyBufAppend </td> 294 <td class="md" valign="top">( </td> 295 <td class="md" nowrap valign="top">TidyBuffer * </td> 296 <td class="mdname" nowrap> <em>buf</em>, </td> 297 </tr> 298 <tr> 299 <td></td> 300 <td></td> 301 <td class="md" nowrap>void * </td> 302 <td class="mdname" nowrap> <em>vp</em>, </td> 303 </tr> 304 <tr> 305 <td></td> 306 <td></td> 307 <td class="md" nowrap>uint </td> 308 <td class="mdname" nowrap> <em>size</em></td> 309 </tr> 310 <tr> 311 <td></td> 312 <td class="md">) </td> 313 <td class="md" colspan="2"></td> 314 </tr> 315 316 </table> 317 </td> 318 </tr> 319</table> 320<table cellspacing=5 cellpadding=0 border=0> 321 <tr> 322 <td> 323 324 </td> 325 <td> 326 327<p> 328Append bytes to buffer. Expand if necessary. </td> 329 </tr> 330</table> 331<a name="a8" doxytag="buffio.h::tidyBufPutByte"></a><p> 332<table width="100%" cellpadding="2" cellspacing="0" border="0"> 333 <tr> 334 <td class="md"> 335 <table cellpadding="0" cellspacing="0" border="0"> 336 <tr> 337 <td class="md" nowrap valign="top"> void tidyBufPutByte </td> 338 <td class="md" valign="top">( </td> 339 <td class="md" nowrap valign="top">TidyBuffer * </td> 340 <td class="mdname" nowrap> <em>buf</em>, </td> 341 </tr> 342 <tr> 343 <td></td> 344 <td></td> 345 <td class="md" nowrap>byte </td> 346 <td class="mdname" nowrap> <em>bv</em></td> 347 </tr> 348 <tr> 349 <td></td> 350 <td class="md">) </td> 351 <td class="md" colspan="2"></td> 352 </tr> 353 354 </table> 355 </td> 356 </tr> 357</table> 358<table cellspacing=5 cellpadding=0 border=0> 359 <tr> 360 <td> 361 362 </td> 363 <td> 364 365<p> 366Append one byte to buffer. Expand if necessary. </td> 367 </tr> 368</table> 369<a name="a9" doxytag="buffio.h::tidyBufPopByte"></a><p> 370<table width="100%" cellpadding="2" cellspacing="0" border="0"> 371 <tr> 372 <td class="md"> 373 <table cellpadding="0" cellspacing="0" border="0"> 374 <tr> 375 <td class="md" nowrap valign="top"> int tidyBufPopByte </td> 376 <td class="md" valign="top">( </td> 377 <td class="md" nowrap valign="top">TidyBuffer * </td> 378 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 379 <td class="md" valign="top">) </td> 380 <td class="md" nowrap></td> 381 </tr> 382 383 </table> 384 </td> 385 </tr> 386</table> 387<table cellspacing=5 cellpadding=0 border=0> 388 <tr> 389 <td> 390 391 </td> 392 <td> 393 394<p> 395Get byte from end of buffer </td> 396 </tr> 397</table> 398<a name="a10" doxytag="buffio.h::tidyBufGetByte"></a><p> 399<table width="100%" cellpadding="2" cellspacing="0" border="0"> 400 <tr> 401 <td class="md"> 402 <table cellpadding="0" cellspacing="0" border="0"> 403 <tr> 404 <td class="md" nowrap valign="top"> int tidyBufGetByte </td> 405 <td class="md" valign="top">( </td> 406 <td class="md" nowrap valign="top">TidyBuffer * </td> 407 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 408 <td class="md" valign="top">) </td> 409 <td class="md" nowrap></td> 410 </tr> 411 412 </table> 413 </td> 414 </tr> 415</table> 416<table cellspacing=5 cellpadding=0 border=0> 417 <tr> 418 <td> 419 420 </td> 421 <td> 422 423<p> 424Get byte from front of buffer. Increment input offset. </td> 425 </tr> 426</table> 427<a name="a11" doxytag="buffio.h::tidyBufEndOfInput"></a><p> 428<table width="100%" cellpadding="2" cellspacing="0" border="0"> 429 <tr> 430 <td class="md"> 431 <table cellpadding="0" cellspacing="0" border="0"> 432 <tr> 433 <td class="md" nowrap valign="top"> Bool tidyBufEndOfInput </td> 434 <td class="md" valign="top">( </td> 435 <td class="md" nowrap valign="top">TidyBuffer * </td> 436 <td class="mdname1" valign="top" nowrap> <em>buf</em> </td> 437 <td class="md" valign="top">) </td> 438 <td class="md" nowrap></td> 439 </tr> 440 441 </table> 442 </td> 443 </tr> 444</table> 445<table cellspacing=5 cellpadding=0 border=0> 446 <tr> 447 <td> 448 449 </td> 450 <td> 451 452<p> 453At end of buffer? </td> 454 </tr> 455</table> 456<a name="a12" doxytag="buffio.h::tidyBufUngetByte"></a><p> 457<table width="100%" cellpadding="2" cellspacing="0" border="0"> 458 <tr> 459 <td class="md"> 460 <table cellpadding="0" cellspacing="0" border="0"> 461 <tr> 462 <td class="md" nowrap valign="top"> void tidyBufUngetByte </td> 463 <td class="md" valign="top">( </td> 464 <td class="md" nowrap valign="top">TidyBuffer * </td> 465 <td class="mdname" nowrap> <em>buf</em>, </td> 466 </tr> 467 <tr> 468 <td></td> 469 <td></td> 470 <td class="md" nowrap>byte </td> 471 <td class="mdname" nowrap> <em>bv</em></td> 472 </tr> 473 <tr> 474 <td></td> 475 <td class="md">) </td> 476 <td class="md" colspan="2"></td> 477 </tr> 478 479 </table> 480 </td> 481 </tr> 482</table> 483<table cellspacing=5 cellpadding=0 border=0> 484 <tr> 485 <td> 486 487 </td> 488 <td> 489 490<p> 491Put a byte back into the buffer. Decrement input offset. </td> 492 </tr> 493</table> 494<a name="a13" doxytag="buffio.h::initInputBuffer"></a><p> 495<table width="100%" cellpadding="2" cellspacing="0" border="0"> 496 <tr> 497 <td class="md"> 498 <table cellpadding="0" cellspacing="0" border="0"> 499 <tr> 500 <td class="md" nowrap valign="top"> void initInputBuffer </td> 501 <td class="md" valign="top">( </td> 502 <td class="md" nowrap valign="top"><a class="el" href="group__IO.html#a3">TidyInputSource</a> * </td> 503 <td class="mdname" nowrap> <em>inp</em>, </td> 504 </tr> 505 <tr> 506 <td></td> 507 <td></td> 508 <td class="md" nowrap>TidyBuffer * </td> 509 <td class="mdname" nowrap> <em>buf</em></td> 510 </tr> 511 <tr> 512 <td></td> 513 <td class="md">) </td> 514 <td class="md" colspan="2"></td> 515 </tr> 516 517 </table> 518 </td> 519 </tr> 520</table> 521<table cellspacing=5 cellpadding=0 border=0> 522 <tr> 523 <td> 524 525 </td> 526 <td> 527 528<p> 529Initialize a buffer input source </td> 530 </tr> 531</table> 532<a name="a14" doxytag="buffio.h::initOutputBuffer"></a><p> 533<table width="100%" cellpadding="2" cellspacing="0" border="0"> 534 <tr> 535 <td class="md"> 536 <table cellpadding="0" cellspacing="0" border="0"> 537 <tr> 538 <td class="md" nowrap valign="top"> void initOutputBuffer </td> 539 <td class="md" valign="top">( </td> 540 <td class="md" nowrap valign="top"><a class="el" href="group__IO.html#a5">TidyOutputSink</a> * </td> 541 <td class="mdname" nowrap> <em>outp</em>, </td> 542 </tr> 543 <tr> 544 <td></td> 545 <td></td> 546 <td class="md" nowrap>TidyBuffer * </td> 547 <td class="mdname" nowrap> <em>buf</em></td> 548 </tr> 549 <tr> 550 <td></td> 551 <td class="md">) </td> 552 <td class="md" colspan="2"></td> 553 </tr> 554 555 </table> 556 </td> 557 </tr> 558</table> 559<table cellspacing=5 cellpadding=0 border=0> 560 <tr> 561 <td> 562 563 </td> 564 <td> 565 566<p> 567Initialize a buffer output sink </td> 568 </tr> 569</table> 570<hr><address style="align: right;"><small>Generated on Fri Dec 13 18:27:08 2002 for HTML Tidy by 571<a href="http://www.doxygen.org/index.html"> 572<img src="doxygen.png" alt="doxygen" align="middle" border=0 573width=110 height=53></a>1.2.17 </small></address> 574</body> 575</html> 576