## cong-node

cong-node —

## Synopsis

    typedef     CongNodePtr;
    typedef     CongXMLChar;
    CongNodePtr cong_node_prev                  (CongNodePtr node);
    CongNodePtr cong_node_next                  (CongNodePtr node);
    CongNodePtr cong_node_first_child           (CongNodePtr node);
    CongNodePtr cong_node_parent                (CongNodePtr node);
    gchar*      cong_node_get_path              (CongNodePtr node);
    gchar*      cong_node_debug_description     (CongNodePtr node);
    const gchar* cong_node_type_description     ();
    CongXMLChar* cong_node_get_attribute        (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const CongXMLChar *local_attribute_name);
    void        cong_node_self_test             (CongNodePtr node);
    void        cong_node_self_test_recursive   (CongNodePtr node);
    void        cong_node_recursive_set_doc     (CongNodePtr node,
                                                 xmlDocPtr xml_doc);
    CongNodePtr cong_node_recursive_dup         (CongNodePtr node);
    gboolean    cong_node_is_descendant_of      (CongNodePtr node,
                                                 CongNodePtr potential_ancestor);
    gboolean    cong_node_should_recurse        (CongNodePtr node);
    #define     CONG_NODE_SELF_TEST             (node)
    int         cong_node_get_length            (CongNodePtr node);
    CongNodePtr cong_node_new_element           (xmlNsPtr ns,
                                                 const gchar *tagname,
                                                 CongDocument *doc);
    CongNodePtr cong_node_new_element_from_dispspec
                                                (CongDispspecElement *element,
                                                 CongDocument *doc);
    CongNodePtr cong_node_new_text              (const gchar *text,
                                                 CongDocument *doc);
    CongNodePtr cong_node_new_text_len          (const gchar *text,
                                                 int len,
                                                 CongDocument *doc);
    void        cong_node_free                  (CongNodePtr node);
    gchar*      cong_node_generate_source       (CongNodePtr node);
    gchar*      cong_node_generate_source_from_byte_offset
                                                (CongNodePtr node,
                                                 int byte_offset);
    gchar*      cong_node_generate_source_up_to_byte_offset
                                                (CongNodePtr node,
                                                 int byte_offset);
    gchar*      cong_node_generate_source_between_byte_offsets
                                                (CongNodePtr node,
                                                 int start_byte_offset,
                                                 int end_byte_offset);
    void        cong_node_private_make_orphan   (CongNodePtr node);
    void        cong_node_private_add_after     (CongNodePtr node,
                                                 CongNodePtr older_sibling);
    void        cong_node_private_add_before    (CongNodePtr node,
                                                 CongNodePtr younger_sibling);
    void        cong_node_private_set_parent    (CongNodePtr node,
                                                 CongNodePtr adoptive_parent,
                                                 gboolean add_to_end);
    void        cong_node_private_set_text      (CongNodePtr node,
                                                 const xmlChar *new_content);
    void        cong_node_private_set_attribute (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const xmlChar *local_attribute_name,
                                                 const xmlChar *value);
    void        cong_node_private_remove_attribute
                                                (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const xmlChar *local_attribute_name);
    CongNodePtr cong_node_get_child_by_name     (CongNodePtr node,
                                                 const gchar *ns_uri,
                                                 const gchar *local_name);
    CongNodePtr cong_node_get_first_text_node_descendant
                                                (CongNodePtr node);
    gboolean    cong_node_is_valid_cursor_location
                                                (CongNodePtr node);

## Description

## Details

### CongNodePtr

    typedef xmlNodePtr CongNodePtr;

### CongXMLChar

    typedef xmlChar CongXMLChar;

### cong_node_prev ()

    CongNodePtr cong_node_prev                  (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_next ()

    CongNodePtr cong_node_next                  (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_first_child ()

    CongNodePtr cong_node_first_child           (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_parent ()

    CongNodePtr cong_node_parent                (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_get_path ()

    gchar*      cong_node_get_path              (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_debug_description ()

    gchar*      cong_node_debug_description     (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_type_description ()

    const gchar* cong_node_type_description     ();

TODO: Write me

Returns : |

### cong_node_get_attribute ()

    CongXMLChar* cong_node_get_attribute        (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const CongXMLChar *local_attribute_name);

TODO: Write me

`node` : |
`ns_ptr` : |
`local_attribute_name` : |
Returns : |

### cong_node_self_test ()

    void        cong_node_self_test             (CongNodePtr node);

TODO: Write me

`node` : |

### cong_node_self_test_recursive ()

    void        cong_node_self_test_recursive   (CongNodePtr node);

TODO: Write me

`node` : |

### cong_node_recursive_set_doc ()

    void        cong_node_recursive_set_doc     (CongNodePtr node,
                                                 xmlDocPtr xml_doc);

TODO: Write me

`node` : |
`xml_doc` : |

### cong_node_recursive_dup ()

    CongNodePtr cong_node_recursive_dup         (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_is_descendant_of ()

    gboolean    cong_node_is_descendant_of      (CongNodePtr node,
                                                 CongNodePtr potential_ancestor);

TODO: Write me

`node` : |
`potential_ancestor` : |
Returns : |

### cong_node_should_recurse ()

    gboolean    cong_node_should_recurse        (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### CONG_NODE_SELF_TEST()

    #define     CONG_NODE_SELF_TEST(node)

`node` : |

### cong_node_get_length ()

    int         cong_node_get_length            (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_new_element ()

    CongNodePtr cong_node_new_element           (xmlNsPtr ns,
                                                 const gchar *tagname,
                                                 CongDocument *doc);

TODO: Write me

`ns` : |
`tagname` : |
`doc` : |
Returns : |

### cong_node_new_element_from_dispspec ()

    CongNodePtr cong_node_new_element_from_dispspec
                                                (CongDispspecElement *element,
                                                 CongDocument *doc);

TODO: Write me

`element` : |
`doc` : |
Returns : |

### cong_node_new_text ()

    CongNodePtr cong_node_new_text              (const gchar *text,
                                                 CongDocument *doc);

TODO: Write me

`text` : |
`doc` : |
Returns : |

### cong_node_new_text_len ()

    CongNodePtr cong_node_new_text_len          (const gchar *text,
                                                 int len,
                                                 CongDocument *doc);

TODO: Write me

`text` : |
`len` : |
`doc` : |
Returns : |

### cong_node_free ()

    void        cong_node_free                  (CongNodePtr node);

TODO: Write me

`node` : |

### cong_node_generate_source ()

    gchar*      cong_node_generate_source       (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_generate_source_from_byte_offset ()

    gchar*      cong_node_generate_source_from_byte_offset
                                                (CongNodePtr node,
                                                 int byte_offset);

TODO: Write me

`node` : |
`byte_offset` : |
Returns : |

### cong_node_generate_source_up_to_byte_offset ()

    gchar*      cong_node_generate_source_up_to_byte_offset
                                                (CongNodePtr node,
                                                 int byte_offset);

TODO: Write me

`node` : |
`byte_offset` : |
Returns : |

### cong_node_generate_source_between_byte_offsets ()

    gchar*      cong_node_generate_source_between_byte_offsets
                                                (CongNodePtr node,
                                                 int start_byte_offset,
                                                 int end_byte_offset);

TODO: Write me

`node` : |
`start_byte_offset` : |
`end_byte_offset` : |
Returns : |

### cong_node_private_make_orphan ()

    void        cong_node_private_make_orphan   (CongNodePtr node);

TODO: Write me

`node` : |

### cong_node_private_add_after ()

    void        cong_node_private_add_after     (CongNodePtr node,
                                                 CongNodePtr older_sibling);

TODO: Write me

`node` : |
`older_sibling` : |

### cong_node_private_add_before ()

    void        cong_node_private_add_before    (CongNodePtr node,
                                                 CongNodePtr younger_sibling);

TODO: Write me

`node` : |
`younger_sibling` : |

### cong_node_private_set_parent ()

    void        cong_node_private_set_parent    (CongNodePtr node,
                                                 CongNodePtr adoptive_parent,
                                                 gboolean add_to_end);

TODO: Write me

`node` : |
`adoptive_parent` : |
`add_to_end` : |

### cong_node_private_set_text ()

    void        cong_node_private_set_text      (CongNodePtr node,
                                                 const xmlChar *new_content);

TODO: Write me

`node` : |
`new_content` : |

### cong_node_private_set_attribute ()

    void        cong_node_private_set_attribute (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const xmlChar *local_attribute_name,
                                                 const xmlChar *value);

TODO: Write me

`node` : |
`ns_ptr` : |
`local_attribute_name` : |
`value` : |

### cong_node_private_remove_attribute ()

    void        cong_node_private_remove_attribute
                                                (CongNodePtr node,
                                                 xmlNs *ns_ptr,
                                                 const xmlChar *local_attribute_name);

TODO: Write me

`node` : |
`ns_ptr` : |
`local_attribute_name` : |

### cong_node_get_child_by_name ()

    CongNodePtr cong_node_get_child_by_name     (CongNodePtr node,
                                                 const gchar *ns_uri,
                                                 const gchar *local_name);

TODO: Write me

`node` : |
`ns_uri` : |
`local_name` : |
Returns : |

### cong_node_get_first_text_node_descendant ()

    CongNodePtr cong_node_get_first_text_node_descendant
                                                (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |

### cong_node_is_valid_cursor_location ()

    gboolean    cong_node_is_valid_cursor_location
                                                (CongNodePtr node);

TODO: Write me

`node` : |
Returns : |