<!--

Copyright 2005 Jonathan Turkanis
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <A HREF="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)

-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<!-- ------------------ Links to Stylesheets and Scripts  ------------ -->

    <link rel="stylesheet" type="text/css" href="../../../boost.css">
    <link rel="stylesheet" type="text/css" href="tree/tree.css">
    <script language="JavaScript" src="tree/tree.js"></script>
    <style> CODE { font-size:80% } </style>

<!-- ------------------ Create and Populate Tree Control ------------- -->

    <script language="JavaScript">
    <!--

    var tree = new tree_control("content"); 
    tree.add("Introduction", "home.html").parent()
    tree.add("Tutorial", "tutorial/tutorial.html")
        .add("Writing Devices")
            .add("Overview", "tutorial/writing_devices.html").parent()
            .add("<CODE>container_source</CODE>", "tutorial/container_source.html").parent()
            .add("<CODE>container_sink</CODE>", "tutorial/container_sink.html").parent()
            .add("<CODE>container_device</CODE>", "tutorial/container_device.html").parent().parent()
        .add("Writing Filters")
            .add("Overview", "tutorial/writing_filters.html", true)
                .add("Input and Output", "tutorial/writing_filters.html#input_filters_and_output_filters").parent()
                .add("Filter Helpers", "tutorial/writing_filters.html#filter_helpers").parent()
                .add("Selecting A Filter", "tutorial/writing_filters.html#selecting_a_filter").parent().parent()
            .add("Filter Usage", "tutorial/filter_usage.html", true).parent()
            .add("Shell Comments", "tutorial/shell_comments_filters.html", true)
                .add("<CODE>stdio_filter</CODE>", "tutorial/shell_comments_filters.html#shell_comments_stdio_filter").parent()
                .add("<CODE>input_filter</CODE>", "tutorial/shell_comments_filters.html#shell_comments_input_filter").parent()
                .add("<CODE>output_filter</CODE>", "tutorial/shell_comments_filters.html#shell_comments_output_filter").parent().parent()
            .add("Line-Wrapping", "tutorial/line_wrapping_filters.html", true)
                .add("<CODE>stdio_filter</CODE>", "tutorial/line_wrapping_filters.html#line_wrapping_stdio_filter").parent()
                .add("<CODE>input_filter</CODE>", "tutorial/line_wrapping_filters.html#line_wrapping_input_filter").parent()
                .add("<CODE>output_filter</CODE>", "tutorial/line_wrapping_filters.html#line_wrapping_output_filter").parent().parent()
            .add("Tab-Expanding", "tutorial/tab_expanding_filters.html", true)
                .add("<CODE>stdio_filter</CODE>", "tutorial/tab_expanding_filters.html#tab_expanding_stdio_filter").parent()
                .add("<CODE>input_filter</CODE>", "tutorial/tab_expanding_filters.html#tab_expanding_input_filter").parent()
                .add("<CODE>output_filter</CODE>", "tutorial/tab_expanding_filters.html#tab_expanding_output_filter").parent().parent()
            .add("Dictionary", "tutorial/dictionary_filters.html", true)
                .add("<CODE>stdio_filter</CODE>", "tutorial/dictionary_filters.html#dictionary_stdio_filter").parent()
                .add("<CODE>input_filter</CODE>", "tutorial/dictionary_filters.html#dictionary_input_filter").parent()
                .add("<CODE>output_filter</CODE>", "tutorial/dictionary_filters.html#dictionary_output_filter").parent().parent()
            .add("UNIX-to-DOS", "tutorial/unix2dos_filters.html", true)
                .add("<CODE>stdio_filter</CODE>", "tutorial/unix2dos_filters.html#unix2dos_stdio_filter").parent()
                .add("<CODE>input_filter</CODE>", "tutorial/unix2dos_filters.html#unix2dos_input_filter").parent()
                .add("<CODE>output_filter</CODE>", "tutorial/unix2dos_filters.html#unix2dos_output_filter").parent().parent()
            .add("Multi-Character Filters", "tutorial/multichar_filters.html", true)
                .add("InputFilters", "tutorial/multichar_filters.html#multichar_input_filters").parent()
                .add("<CODE>shell_comments_mutichar_input_filter</CODE>", "tutorial/multichar_filters.html#shell_comments_multichar_input_filter").parent()
                .add("OutputFilters", "tutorial/multichar_filters.html#multichar_output_filters").parent()
                .add("<CODE>shell_comments_multichar_output_filter</CODE>", "tutorial/multichar_filters.html#shell_comments_multichar_ouput_filter").parent().parent()
            .add("Dual-Use Filters", "tutorial/dual_use_filters.html").parent()
            .add("Finite State Filters", "tutorial/finite_state_filters.html", true)
                .add("Finite State Machines", "tutorial/finite_state_filters.html#finite_state_machine").parent()
                .add("<CODE>dos2unix_fsm</CODE>", "tutorial/finite_state_filters.html#dos2unix_fsm").parent()
                .add("<CODE>unix2dos_fsm</CODE>", "tutorial/finite_state_filters.html#unix2dos_fsm").parent()
                .add("<CODE>uncommenting_fsm</CODE>", "tutorial/finite_state_filters.html#uncommenting_fsm");
    tree.add("User's Guide", "guide/guide.html", true)
        .add("Concepts", "guide/concepts.html").parent()
        .add("Modes", "guide/modes.html").parent()
        .add("Generic Streams", "guide/generic_streams.html").parent()
        .add("Filtering Streams", "guide/filtering_streams.html").parent()
        .add("Code Conversion", "guide/code_conversion.html").parent()
        .add("Asynchronous I/O", "guide/asynchronous.html").parent()
        .add("Object Lifetimes", "guide/lifetimes.html").parent()
        .add("Pipelines", "guide/pipelines.html").parent()
        .add("Views", "guide/views.html").parent()
        .add("Exceptions", "guide/exceptions.html").parent()
        .add("Buffering", "guide/buffering.html");
    var ref = tree.add("Reference", "reference.html");
    ref.add("Concepts", "concepts/concepts.html", true)
            .add("Devices", "concepts/concepts.html#devices")
                .add("BidirectionalDevice", "concepts/bidirectional_device.html").parent()
                .add("Blocking", "concepts/blocking.html").parent()
                .add("Device", "concepts/device.html").parent()
                .add("Direct", "concepts/direct.html").parent()
                .add("Peekable", "concepts/peekable.html").parent()
                .add("SeekableDevice", "concepts/seekable_device.html").parent()
                .add("Sink", "concepts/sink.html").parent()
                .add("Source", "concepts/source.html").parent().parent()
            .add("Filters", "concepts/concepts.html#filters")
                .add("BidirectionalFilter", "concepts/bidirectional_filter.html").parent()
                .add("DualUseFilter", "concepts/dual_use_filter.html").parent()
                .add("Filter", "concepts/filter.html").parent()
                .add("InputFilter", "concepts/input_filter.html").parent()
                .add("Multi-Character", "concepts/multi_character.html").parent()
                .add("OutputFilter", "concepts/output_filter.html").parent()
                .add("Pipable", "concepts/pipable.html").parent()
                .add("SeekableFilter", "concepts/seekable_filter.html").parent().parent()
            .add("Other", "concepts/concepts.html#other")
                .add("Closable", "concepts/closable.html").parent()
                .add("Flushable", "concepts/flushable.html").parent()
                .add("Localizable", "concepts/localizable.html").parent()
                .add("OptimallyBuffered", "concepts/optimally_buffered.html").parent()
                .add("SymmetricFilter", "concepts/symmetric_filter.html");
    var classes = ref.add("Classes", "classes/classes.html", true);
    classes.add("A", "classes/classes.html#a")
                .add("<CODE>aggregate_filter</CODE>", "classes/aggregate.html").parent()
                .add("<CODE>array</CODE>", "classes/array.html#array").parent()
                .add("<CODE>array_sink</CODE>", "classes/array.html#array_sink").parent()
                .add("<CODE>array_source</CODE>", "classes/array.html#array_source").parent().parent()
            .add("B", "classes/classes.html#b")
  				.add("<CODE>back_insert_device</CODE>", "classes/back_inserter.html").parent()
  				.add("<CODE>basic_array</CODE>", "classes/array.html#array").parent()
  				.add("<CODE>basic_array_sink</CODE>", "classes/array.html#array_sink").parent()
  				.add("<CODE>basic_array_source</CODE>", "classes/array.html#array_source").parent()
  				.add("<CODE>basic_bzip2_compressor</CODE>", "classes/bzip2.html#basic_bzip2_compressor").parent()
  				.add("<CODE>basic_bzip2_decompressor</CODE>", "classes/bzip2.html#basic_bzip2_decompressor").parent()
  				.add("<CODE>basic_counter</CODE>", "classes/counter.html").parent()
  				.add("<CODE>basic_file</CODE>", "classes/file.html#file").parent()
  				.add("<CODE>basic_file_sink</CODE>", "classes/file.html#file_sink").parent()
  				.add("<CODE>basic_file_source</CODE>", "classes/file.html#file_source").parent()
  				.add("<CODE>basic_grep_filter</CODE>", "classes/grep_filter.html").parent()
  				.add("<CODE>basic_gzip_compressor</CODE>", "classes/gzip.html#basic_gzip_compressor").parent()
  				.add("<CODE>basic_gzip_decompressor</CODE>", "classes/gzip.html#basic_gzip_decompressor").parent()
  				.add("<CODE>basic_line_filter</CODE>", "classes/line_filter.html").parent()
  				.add("<CODE>basic_null_device</CODE>", "classes/null.html#null_device").parent()
  				.add("<CODE>basic_null_sink</CODE>", "classes/null.html#null_sink").parent()
  				.add("<CODE>basic_null_source</CODE>", "classes/null.html#null_source").parent()
  				.add("<CODE>basic_regex_filter</CODE>", "classes/regex_filter.html").parent()
  				.add("<CODE>basic_stdio_filter</CODE>", "classes/stdio_filter.html").parent()
  				.add("<CODE>basic_zlib_compressor</CODE>", "classes/zlib.html#basic_zlib_compressor").parent()
  				.add("<CODE>basic_zlib_decompressor</CODE>", "classes/zlib.html#basic_zlib_decompressor").parent()
  				.add("<CODE>bzip2_compressor</CODE>", "classes/bzip2.html#basic_bzip2_compressor").parent()
  				.add("<CODE>bzip2_decompressor</CODE>", "classes/bzip2.html#basic_bzip2_decompressor").parent()
  				.add("<CODE>bzip2_error</CODE>", "classes/bzip2.html#bzip2_error").parent()
  				.add("<CODE>bzip2_params</CODE>", "classes/bzip2.html#bzip2_params").parent().parent()
            .add("C", "classes/classes.html#c")
  				.add("<CODE>category_of</CODE>", "classes/../guide/traits.html#category_ref").parent()
  				.add("<CODE>chain</CODE>", "classes/chain.html").parent()
  				.add("<CODE>char_traits</CODE>", "classes/../classes/char_traits.html").parent()
  				.add("<CODE>char_type_of</CODE>", "classes/../guide/traits.html#char_type_of_ref").parent()
  				.add("<CODE>code_converter</CODE>", "classes/code_converter.html").parent()
  				.add("<CODE>combination</CODE>", "classes/../functions/combine.html#synopsis").parent()
  				.add("<CODE>composite</CODE>", "classes/../functions/compose.html#composite").parent()
  				.add("<CODE>counter</CODE>", "classes/counter.html#reference").parent().parent()
            .add("D", "classes/classes.html#d")
  				.add("<CODE>device</CODE>", "classes/device.html").parent()
  				.add("<CODE>dual_use_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>dual_use_wfilter</CODE>", "classes/filter.html#reference").parent().parent()
            .add("F", "classes/classes.html#f")
  				.add("<CODE>file</CODE>", "classes/file.html#file").parent()
  				.add("<CODE>file_descriptor</CODE>", "classes/file_descriptor.html#file_descriptor").parent()
  				.add("<CODE>file_descriptor_sink</CODE>", "classes/file_descriptor.html#file_descriptor_sink").parent()
  				.add("<CODE>file_descriptor_source</CODE>", "classes/file_descriptor.html#file_descriptor_source").parent()
  				.add("<CODE>file_sink</CODE>", "classes/file.html#file_sink").parent()
  				.add("<CODE>file_source</CODE>", "classes/file.html#file_source").parent()
  				.add("<CODE>filtering_stream</CODE>", "classes/filtering_stream.html").parent()
  				.add("<CODE>filtering_streambuf</CODE>", "classes/filtering_streambuf.html").parent()
  				.add("<CODE>filter</CODE>", "classes/filter.html").parent().parent()
            .add("G", "classes/classes.html#g")
  				.add("<CODE>grep_filter</CODE>", "classes/grep_filter.html").parent()
  				.add("<CODE>gzip_compressor</CODE>", "classes/gzip.html#basic_gzip_compressor").parent()
  				.add("<CODE>gzip_compressor</CODE>", "classes/gzip.html#basic_gzip_compressor").parent()
  				.add("<CODE>gzip_decompressor</CODE>", "classes/gzip.html#basic_gzip_decompressor").parent()
  				.add("<CODE>gzip_error</CODE>", "classes/gzip.html#gzip_error").parent()
  				.add("<CODE>gzip_params</CODE>", "classes/gzip.html#gzip_params").parent().parent()
            .add("I", "classes/classes.html#i")
  				.add("<CODE>input_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>input_wfilter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>inverse</CODE>", "classes/../functions/invert.html#inverse");
    classes.add("L", "classes/classes.html#l")
  				.add("<CODE>line_filter</CODE>", "classes/line_filter.html#reference").parent().parent()
            .add("M", "classes/classes.html#m")
  				.add("<CODE>mapped_file</CODE>", "classes/mapped_file.html#mapped_file").parent()
  				.add("<CODE>mapped_file_sink</CODE>", "classes/mapped_file.html#mapped_file_sink").parent()
  				.add("<CODE>mapped_file_source</CODE>", "classes/mapped_file.html#mapped_file_source").parent()
  				.add("<CODE>mode_of</CODE>", "classes/mode.html").parent()
  				.add("<CODE>multichar_dual_use_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_dual_use_wfilter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_filter</CODE>", "classes/filter.html").parent()
  				.add("<CODE>multichar_input_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_input_wfilter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_output_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_output_wfilter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>multichar_wfilter</CODE>", "classes/filter.html#reference").parent().parent()
            .add("N", "classes/classes.html#n")
  				.add("<CODE>newline_filter</CODE>", "classes/newline_filter.html").parent()
  				.add("<CODE>null_sink</CODE>", "classes/null.html#null_sink").parent()
  				.add("<CODE>null_source</CODE>", "classes/null.html#null_source").parent().parent()
            .add("O", "classes/classes.html#o")
  				.add("<CODE>output_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>output_wfilter</CODE>", "classes/filter.html#reference").parent().parent()
            .add("R", "classes/classes.html#r")
  				.add("<CODE>regex_filter</CODE>", "classes/../classes/regex_filter.html#reference").parent()
  				.add("<CODE>restriction</CODE>", "classes/../functions/restrict.html#restriction").parent().parent()
            .add("S", "classes/classes.html#s")
  				.add("<CODE>seekable_filter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>seekable_wfilter</CODE>", "classes/filter.html#reference").parent()
  				.add("<CODE>sink</CODE>", "classes/device.html#reference").parent()
  				.add("<CODE>source</CODE>", "classes/device.html#reference").parent()
  				.add("<CODE>stdio_filter</CODE>", "classes/stdio_filter.html#reference").parent()
  				.add("<CODE>stream</CODE>", "classes/../guide/generic_streams.html#stream").parent()
  				.add("<CODE>stream_buffer</CODE>", "classes/../guide/generic_streams.html#stream_buffer").parent()
  				.add("<CODE>symmetric_filter</CODE>", "classes/symmetric_filter.html").parent().parent()
            .add("T", "classes/classes.html#t")
  				.add("<CODE>tee_device</CODE>", "classes/../functions/tee.html#tee_device").parent()
  				.add("<CODE>tee_filter</CODE>", "classes/../functions/tee.html#tee_filter").parent().parent()
            .add("W", "classes/classes.html#w")
  				.add("<CODE>warray</CODE>", "classes/array.html#array").parent()
  				.add("<CODE>warray_sink</CODE>", "classes/array.html#array_sink").parent()
  				.add("<CODE>warray_source</CODE>", "classes/array.html#array_source").parent()
  				.add("<CODE>wchain</CODE>", "classes/chain.html#wchain").parent()
  				.add("<CODE>wcounter</CODE>", "classes/counter.html#reference").parent()
  				.add("<CODE>wdevice</CODE>", "classes/device.html").parent()
  				.add("<CODE>wfile</CODE>", "classes/file.html#file").parent()
  				.add("<CODE>wfile_sink</CODE>", "classes/file.html#file_sink").parent()
  				.add("<CODE>wfile_source</CODE>", "classes/file.html#file_source").parent()
  				.add("<CODE>wfilter</CODE>", "classes/filter.html").parent()
  				.add("<CODE>wgrep_filter</CODE>", "classes/grep_filter.html").parent()
  				.add("<CODE>wline_filter</CODE>", "classes/line_filter.html#reference").parent()
  				.add("<CODE>wnull_sink</CODE>", "classes/null.html#null_sink").parent()
  				.add("<CODE>wnull_source</CODE>", "classes/null.html#null_source").parent()
  				.add("<CODE>wregex_filter</CODE>", "classes/../classes/regex_filter.html#reference").parent()
  				.add("<CODE>wsink</CODE>", "classes/device.html#reference").parent()
  				.add("<CODE>wsource</CODE>", "classes/device.html#reference").parent()
  				.add("<CODE>wstdio_filter</CODE>", "classes/stdio_filter.html#reference").parent().parent()
            .add("Z", "classes/classes.html#z")
  				.add("<CODE>zlib_compressor</CODE>", "classes/zlib.html#basic_zlib_compressor").parent()
  				.add("<CODE>zlib_decompressor</CODE>", "classes/zlib.html#basic_zlib_decompressor").parent()
  				.add("<CODE>zlib_error</CODE>", "classes/zlib.html#zlib_error").parent()
  				.add("<CODE>zlib_params</CODE>", "classes/zlib.html#zlib_params");
    ref.add("Functions", "functions/functions.html", true)
            .add("<CODE>back_inserter</CODE>", "classes/back_inserter.html#back_inserter").parent()
            .add("<CODE>close</CODE>", "functions/close.html").parent()
            .add("<CODE>combine</CODE>", "functions/combine.html").parent()
            .add("<CODE>compose</CODE>", "functions/compose.html").parent()
            .add("<CODE>copy</CODE>", "functions/copy.html").parent()
            .add("<CODE>flush</CODE>", "functions/flush.html").parent()
            .add("<CODE>get</CODE>", "functions/get.html").parent()
            .add("<CODE>imbue</CODE>", "functions/imbue.html").parent()
            .add("<CODE>invert</CODE>", "functions/invert.html").parent()
            .add("<CODE>offset_to_position</CODE>", "functions/positioning.html#offset_to_position").parent()
            .add("<CODE>optimal_buffer_size</CODE>", "functions/optimal_buffer_size.html").parent()
            .add("<CODE>position_to_offset</CODE>", "functions/positioning.html#position_to_offset").parent()
            .add("<CODE>put</CODE>", "functions/put.html").parent()
            .add("<CODE>putback</CODE>", "functions/putback.html").parent()
            .add("<CODE>read</CODE>", "functions/read.html").parent()
            .add("<CODE>restrict</CODE>", "functions/restrict.html").parent()
            .add("<CODE>seek</CODE>", "functions/seek.html").parent()
            .add("<CODE>slice</CODE>", "functions/slice.html").parent()
            .add("<CODE>tee</CODE>", "functions/tee.html").parent()
            .add("<CODE>test_filter_pair</CODE>", "functions/filter_test.html#test_pair").parent()
            .add("<CODE>test_input_filter</CODE>", "functions/filter_test.html#test_input").parent()
            .add("<CODE>test_output_filter</CODE>", "functions/filter_test.html#test_output").parent()
            .add("<CODE>write</CODE>", "functions/write.html");
    ref.add("Macros", "macros/macros.html", true)
            .add("<CODE>IOS</CODE>", "macros/workarounds.html#ios").parent()
            .add("<CODE>BASIC_ISTREAM</CODE>", "macros/workarounds.html#streams").parent()
            .add("<CODE>BASIC_IOS</CODE>", "macros/workarounds.html#ios").parent()
            .add("<CODE>BASIC_IOSTREAM</CODE>", "macros/workarounds.html#streams").parent()
            .add("<CODE>BASIC_OSTREAM</CODE>", "macros/workarounds.html#streams").parent()
            .add("<CODE>BASIC_STREAMBUF</CODE>", "macros/workarounds.html#streambufs").parent()
            .add("<CODE>CHAR_TRAITS</CODE>", "macros/workarounds.html#char_traits").parent()
            .add("<CODE>COMPONENT</CODE>", "macros/workarounds.html#component_access").parent()
            .add("<CODE>COMPONENT_TYPE</CODE>", "macros/workarounds.html#component_access").parent()
            .add("<CODE>DEFAULT_DEVICE_BUFFER_SIZE</CODE>", "macros/buffer_sizes.html#component_access").parent()
            .add("<CODE>DEFAULT_FILTER_BUFFER_SIZE</CODE>", "macros/buffer_sizes.html#component_access").parent()
            .add("<CODE>DEFAULT_PBACK_BUFFER_SIZE</CODE>", "macros/buffer_sizes.html#component_access").parent()
            .add("<CODE>FAILURE</CODE>", "macros/workarounds.html#ios").parent()
            .add("<CODE>PIPABLE</CODE>", "guide/pipelines.html#boost_iostreams_pipable").parent()
            .add("<CODE>PUBSEEKOFF</CODE>", "macros/workarounds.html#streambufs").parent()
            .add("<CODE>PUBSEEKPOS</CODE>", "macros/workarounds.html#streambufs").parent()
            .add("<CODE>PUBSYNC</CODE>", "macros/workarounds.html#streambufs").parent().parent().parent()
    tree.add("Quick Reference", "quick_reference.html");
    tree.add("FAQ", "faq.html");
    tree.add("Installation", "installation.html");
    tree.add("Portability", "portability.html");
    tree.add("Rationale", "rationale.html");
    tree.add("Bibliography", "bibliography.html");
    tree.add("Acknowledgments", "acknowledgments.html");
    tree.add("Release Notes", "release_notes.html");

    //tree.dump_html = true; 
    tree.indent = 9;
    tree.draw();

    // -->
    </script>

</head>
<body>

<!-- ------------------ Boost Logo and Library Name ------------------ -->

    <table cellpadding=0 cellspacing=0 clear="both" style="margin:0;padding:0" width=170>
    <tr>
    <td>
    <P CLASS="clipped"><a href="../../../index.htm" target="_top">
    <img border=0 style="position:relative;left:10" SRC="theme/boost_small.png"></a></P>
    </td>
    </tr>
    </table>

    <table clear="both" style="margin-top:0;margin-left:1em;margin-bottom:.5em;padding:0" width=170>
    <tr>
    <td align=left width=170>
        <a style="text-decoration:none" href="index.html" target="_top">
            <h1 class="lib-name" style="margin:0">Boost.Iostreams</h1>
        </a>
    </td>
    </tr>
    </table>

    <hr align="center" width="90%">

    <table style="margin:0;padding:0" width=170>
    <tr><td>

<!-- ------------------ Markup for Browsers with Scripting Disabled -- -->

    <noscript>
        <table><tr><td align='left'><table width=150><tr><td><h1 class=tree-caption>Contents</h1></td></tr></table></td></tr><tr><td><div id='list' style='white-space:nowrap;display:'>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>1</span>  <a class='tree-text' onfocus='blur_tree()' href='home.html' target='content'><span class='tree-text'>Introduction</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>2</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/tutorial.html' target='content'><span class='tree-text'>Tutorial</span></a></div><div id='list.2' style='white-space:nowrap;display:'>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>2.1</span>  <span class='tree-text'>Writing Devices</span></div><div id='list.2.1' style='white-space:nowrap;display:'>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.1</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/writing_devices.html' target='content'><span class='tree-text'>Overview</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.2</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_source.html' target='content'><span class='tree-text'><CODE>container_source</CODE></span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.3</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_sink.html' target='content'><span class='tree-text'><CODE>container_sink</CODE></span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.4</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_device.html' target='content'><span class='tree-text'><CODE>container_device</CODE></span></a></div></div></div></div>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>2.2</span>  <span class='tree-text'>Writing Filters</span></div><div id='list.2.2' style='white-space:nowrap;display:'>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.1</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/writing_filters.html' target='content'><span class='tree-text'>Overview</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.2</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/filter_usage.html' target='content'><span class='tree-text'>Filter Usage</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.3</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/shell_comments_filters.html' target='content'><span class='tree-text'>Shell Comments</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.4</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/line_wrapping_filters.html' target='content'><span class='tree-text'>Line-Wrapping</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.5</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/tab_expanding_filters.html' target='content'><span class='tree-text'>Tab-Expanding</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.6</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/dictionary_filters.html' target='content'><span class='tree-text'>Dictionary</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.7</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/unix2dos_filters.html' target='content'><span class='tree-text'>UNIX-to-DOS</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.8</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/multichar_filters.html' target='content'><span class='tree-text'>Multi-Character Filters</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.9</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/dual_use_filters.html' target='content'><span class='tree-text'>Dual-Use Filters</span></a></div></div>
<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.10</span>  <a class='tree-text' onfocus='blur_tree()' href='tutorial/finite_state_filters.html' target='content'><span class='tree-text'>Finite State Filters</span></a></div></div></div></div></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>3</span>  <a class='tree-text' onfocus='blur_tree()' href='guide/guide.html' target='content'><span class='tree-text'>User's Guide</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>4</span>  <a class='tree-text' onfocus='blur_tree()' href='reference.html' target='content'><span class='tree-text'>Reference</span></a></div><div id='list.4' style='white-space:nowrap;display:'>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.1</span>  <a class='tree-text' onfocus='blur_tree()' href='concepts/concepts.html' target='content'><span class='tree-text'>Concepts</span></a></div></div>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.2</span>  <a class='tree-text' onfocus='blur_tree()' href='classes/classes.html' target='content'><span class='tree-text'>Classes</span></a></div></div>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.3</span>  <a class='tree-text' onfocus='blur_tree()' href='functions/functions.html' target='content'><span class='tree-text'>Functions</span></a></div></div>
<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.4</span>  <a class='tree-text' onfocus='blur_tree()' href='macros/macros.html' target='content'><span class='tree-text'>Macros</span></a></div></div></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>5</span>  <a class='tree-text' onfocus='blur_tree()' href='quick_reference.html' target='content'><span class='tree-text'>Quick Reference</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>6</span>  <a class='tree-text' onfocus='blur_tree()' href='faq.html' target='content'><span class='tree-text'>FAQ</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>7</span>  <a class='tree-text' onfocus='blur_tree()' href='installation.html' target='content'><span class='tree-text'>Installation</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>8</span>  <a class='tree-text' onfocus='blur_tree()' href='portability.html' target='content'><span class='tree-text'>Portability</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>9</span>  <a class='tree-text' onfocus='blur_tree()' href='rationale.html' target='content'><span class='tree-text'>Rationale</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>10</span>  <a class='tree-text' onfocus='blur_tree()' href='bibliography.html' target='content'><span class='tree-text'>Bibliography</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>11</span>  <a class='tree-text' onfocus='blur_tree()' href='acknowledgments.html' target='content'><span class='tree-text'>Acknowledgments</span></a></div></div>
<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>12</span>  <a class='tree-text' onfocus='blur_tree()' href='release_notes.html' target='content'><span class='tree-text'>Release Notes</span></a></div></div></div></td></tr></table>


    </noscript>

<!-- ------------------ Tree Control --------------------------------- -->

    <span id="tree_control"></span>

    </td></tr>
    </table>

</body>
</html>

