summary refs log tree commit diff stats
path: root/src/common/tree.h
blob: 4a158052c107da8f6ceec15c9c54cfb928f33b33 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef HEXCHAT_TREE_H
#define HEXCHAT_TREE_H

typedef struct _tree tree;

typedef int (tree_cmp_func) (const void *keya, const void *keyb, void *data);
typedef int (tree_traverse_func) (const void *key, void *data);

tree *tree_new (tree_cmp_func *cmp, void *data);
void tree_destroy (tree *t);
void *tree_find (tree *t, void *key, tree_cmp_func *cmp, void *data, int *pos);
int tree_remove (tree *t, void *key, int *pos);
void *tree_remove_at_pos (tree *t, int pos);
void tree_foreach (tree *t, tree_traverse_func *func, void *data);
int tree_insert (tree *t, void *key);
void tree_append (tree* t, void *key);
int tree_size (tree *t);

#endif
pan class="n">class => $class_name . " synNormal" ); my @content; my $end_tag; EXAMPLE: while( $token = $parser->get_token ) { if( $token->is_end_tag( "div" ) ) { $end_tag = $token; last EXAMPLE; } if( $token->is_text ) { push @content, decode_entities( $token->as_is ); } } my $code = join "", @content; # say $code; my $vim = Text::VimColor->new( string => $code, filetype => "perl", vim_options => [qw( -RXZ -i NONE -u NONE -N -n)], ); my $html = $vim->html; $html =~ s/^\s+//; $html =~ s/\s+$//; print $writer $start_tag->as_is; my $lines = $html =~ tr/\n/\n/; say $writer "<div class='line_number'>"; for my $line ( 0 .. $lines ) { say $writer "<div>",1 + $line,"</div>"; } say $writer "</div>"; print $writer "<div class='content'><pre>"; say $writer $html; say $writer "</pre></div>"; print $writer $end_tag->as_is; } else { print $writer $token->as_is; } }