Lines Matching refs:file_buffer
35 static void remember_info_file (FILE_BUFFER *file_buffer);
36 static void free_file_buffer_tags (FILE_BUFFER *file_buffer);
38 static void get_nodes_of_tags_table (FILE_BUFFER *file_buffer,
40 static void get_nodes_of_info_file (FILE_BUFFER *file_buffer);
41 static void get_tags_of_indirect_tags_table (FILE_BUFFER *file_buffer,
47 static NODE *info_node_of_file_buffer_tags (FILE_BUFFER *file_buffer,
85 FILE_BUFFER *file_buffer = NULL; in info_get_node() local
107 file_buffer = info_find_file (filename); in info_get_node()
108 if (!file_buffer) in info_get_node()
117 node = info_get_node_of_file_buffer (nodename, file_buffer); in info_get_node()
122 node = info_get_node_of_file_buffer ("Top", file_buffer); in info_get_node()
124 node = info_get_node_of_file_buffer ("top", file_buffer); in info_get_node()
126 node = info_get_node_of_file_buffer ("TOP", file_buffer); in info_get_node()
137 info_get_node_of_file_buffer (char *nodename, FILE_BUFFER *file_buffer) in info_get_node_of_file_buffer() argument
143 if (!file_buffer) in info_get_node_of_file_buffer()
147 if (!file_buffer->contents) in info_get_node_of_file_buffer()
148 info_reload_file_buffer_contents (file_buffer); in info_get_node_of_file_buffer()
160 node->filename = file_buffer->fullpath; in info_get_node_of_file_buffer()
163 node->contents = file_buffer->contents; in info_get_node_of_file_buffer()
164 node->nodelen = file_buffer->filesize; in info_get_node_of_file_buffer()
171 else if (file_buffer->flags & N_IsManPage) in info_get_node_of_file_buffer()
173 node = get_manpage_node (file_buffer, nodename); in info_get_node_of_file_buffer()
180 else if (file_buffer->tags) in info_get_node_of_file_buffer()
182 node = info_node_of_file_buffer_tags (file_buffer, nodename); in info_get_node_of_file_buffer()
220 FILE_BUFFER *file_buffer; in info_find_file_internal() local
225 for (i = 0; (file_buffer = info_loaded_files[i]); i++) in info_find_file_internal()
226 if ((FILENAME_CMP (filename, file_buffer->filename) == 0) in info_find_file_internal()
227 || (FILENAME_CMP (filename, file_buffer->fullpath) == 0) in info_find_file_internal()
230 filename_non_directory (file_buffer->fullpath)) in info_find_file_internal()
238 return file_buffer; in info_find_file_internal()
242 if (file_buffer->flags & N_IsManPage) in info_find_file_internal()
243 return file_buffer; in info_find_file_internal()
248 if (stat (file_buffer->fullpath, &new_info) == -1) in info_find_file_internal()
254 old_info = &file_buffer->finfo; in info_find_file_internal()
271 if (!file_buffer->contents) in info_find_file_internal()
274 info_reload_file_buffer_contents (file_buffer); in info_find_file_internal()
275 if (!file_buffer->contents) in info_find_file_internal()
279 if (get_tags && !file_buffer->tags) in info_find_file_internal()
280 build_tags_and_nodes (file_buffer); in info_find_file_internal()
282 return file_buffer; in info_find_file_internal()
292 file_buffer = create_manpage_file_buffer (); in info_find_file_internal()
295 file_buffer = info_load_file_internal (filename, get_tags); in info_find_file_internal()
298 if (file_buffer) in info_find_file_internal()
299 remember_info_file (file_buffer); in info_find_file_internal()
301 return file_buffer; in info_find_file_internal()
315 FILE_BUFFER *file_buffer = NULL; in info_load_file_internal() local
367 file_buffer = make_file_buffer (); in info_load_file_internal()
368 file_buffer->filename = xstrdup (filename); in info_load_file_internal()
369 file_buffer->fullpath = xstrdup (fullpath); in info_load_file_internal()
370 file_buffer->finfo = finfo; in info_load_file_internal()
371 file_buffer->filesize = filesize; in info_load_file_internal()
372 file_buffer->contents = contents; in info_load_file_internal()
374 file_buffer->flags |= N_IsCompressed; in info_load_file_internal()
378 build_tags_and_nodes (file_buffer); in info_load_file_internal()
380 return file_buffer; in info_load_file_internal()
386 build_tags_and_nodes (FILE_BUFFER *file_buffer) in build_tags_and_nodes() argument
391 free_file_buffer_tags (file_buffer); in build_tags_and_nodes()
392 file_buffer->flags &= ~N_HasTagsTable; in build_tags_and_nodes()
395 binding.buffer = file_buffer->contents; in build_tags_and_nodes()
396 binding.start = file_buffer->filesize; in build_tags_and_nodes()
443 file_buffer->flags |= N_HasTagsTable; in build_tags_and_nodes()
450 binding.end = file_buffer->filesize; in build_tags_and_nodes()
456 get_nodes_of_tags_table (file_buffer, &binding); in build_tags_and_nodes()
481 get_tags_of_indirect_tags_table (file_buffer, &indirect, &binding); in build_tags_and_nodes()
488 get_nodes_of_info_file (file_buffer); in build_tags_and_nodes()
496 get_nodes_of_info_file (FILE_BUFFER *file_buffer) in get_nodes_of_info_file() argument
502 binding.buffer = file_buffer->contents; in get_nodes_of_info_file()
504 binding.end = file_buffer->filesize; in get_nodes_of_info_file()
562 entry->filename = file_buffer->fullpath; in get_nodes_of_info_file()
565 add_pointer_to_array (entry, tags_index, file_buffer->tags, in get_nodes_of_info_file()
566 file_buffer->tags_slots, 100, TAG *); in get_nodes_of_info_file()
589 get_nodes_of_tags_table (FILE_BUFFER *file_buffer, in get_nodes_of_tags_table() argument
673 entry->filename = file_buffer->fullpath; in get_nodes_of_tags_table()
677 add_pointer_to_array (entry, tags_index, file_buffer->tags, in get_nodes_of_tags_table()
678 file_buffer->tags_slots, 100, TAG *); in get_nodes_of_tags_table()
694 get_tags_of_indirect_tags_table (FILE_BUFFER *file_buffer, in get_tags_of_indirect_tags_table() argument
704 get_nodes_of_tags_table (file_buffer, tags_binding); in get_tags_of_indirect_tags_table()
742 free_file_buffer_tags (file_buffer); in get_tags_of_indirect_tags_table()
756 binding.buffer = file_buffer->contents; in get_tags_of_indirect_tags_table()
758 binding.end = file_buffer->filesize; in get_tags_of_indirect_tags_table()
767 char *containing_dir = xstrdup (file_buffer->fullpath); in get_tags_of_indirect_tags_table()
773 if (HAVE_DRIVE (file_buffer->fullpath) && in get_tags_of_indirect_tags_table()
787 file_buffer->subfiles = (char **) xmalloc ((1 + i) * sizeof (char *)); in get_tags_of_indirect_tags_table()
799 file_buffer->subfiles[i] = fullpath; in get_tags_of_indirect_tags_table()
801 file_buffer->subfiles[i] = NULL; in get_tags_of_indirect_tags_table()
807 for (tags_index = 0; (entry = file_buffer->tags[tags_index]); in get_tags_of_indirect_tags_table()
824 free (file_buffer->subfiles[i]); in get_tags_of_indirect_tags_table()
826 file_buffer->subfiles = NULL; in get_tags_of_indirect_tags_table()
827 free_file_buffer_tags (file_buffer); in get_tags_of_indirect_tags_table()
836 entry->filename = file_buffer->subfiles[i - 1]; in get_tags_of_indirect_tags_table()
843 file_buffer->flags |= N_TagsIndirect; in get_tags_of_indirect_tags_table()
860 find_node_of_anchor (FILE_BUFFER *file_buffer, TAG *tag) in find_node_of_anchor() argument
867 for (anchor_pos = 0; file_buffer->tags[anchor_pos]; anchor_pos++) in find_node_of_anchor()
869 TAG *t = file_buffer->tags[anchor_pos]; in find_node_of_anchor()
875 if (!file_buffer->tags[anchor_pos]) in find_node_of_anchor()
882 node_pos >= 0 && file_buffer->tags[node_pos]->nodelen == 0; in find_node_of_anchor()
892 node_tag = file_buffer->tags[node_pos]; in find_node_of_anchor()
897 node = info_node_of_file_buffer_tags (file_buffer, node_tag->nodename); in find_node_of_anchor()
909 node->display_pos = file_buffer->tags[anchor_pos]->nodestart in find_node_of_anchor()
929 info_node_of_file_buffer_tags (FILE_BUFFER *file_buffer, char *nodename) in info_node_of_file_buffer_tags() argument
935 if (!file_buffer->tags) { in info_node_of_file_buffer_tags()
939 for (i = 0; (tag = file_buffer->tags[i]); i++) in info_node_of_file_buffer_tags()
965 if (file_buffer->flags & N_HasTagsTable) in info_node_of_file_buffer_tags()
969 if (file_buffer->flags & N_TagsIndirect) in info_node_of_file_buffer_tags()
972 node->parent = file_buffer->fullpath; in info_node_of_file_buffer_tags()
1028 node = find_node_of_anchor (file_buffer, tag); in info_node_of_file_buffer_tags()
1055 FILE_BUFFER *file_buffer = xmalloc (sizeof (FILE_BUFFER)); in make_file_buffer() local
1057 file_buffer->filename = file_buffer->fullpath = NULL; in make_file_buffer()
1058 file_buffer->contents = NULL; in make_file_buffer()
1059 file_buffer->tags = NULL; in make_file_buffer()
1060 file_buffer->subfiles = NULL; in make_file_buffer()
1061 file_buffer->tags_slots = 0; in make_file_buffer()
1062 file_buffer->flags = 0; in make_file_buffer()
1064 return file_buffer; in make_file_buffer()
1069 remember_info_file (FILE_BUFFER *file_buffer) in remember_info_file() argument
1076 add_pointer_to_array (file_buffer, i, info_loaded_files, in remember_info_file()
1085 FILE_BUFFER *file_buffer; in forget_info_file() local
1090 for (i = 0; (file_buffer = info_loaded_files[i]); i++) in forget_info_file()
1091 if (FILENAME_CMP (filename, file_buffer->filename) == 0 in forget_info_file()
1092 || FILENAME_CMP (filename, file_buffer->fullpath) == 0) in forget_info_file()
1094 free (file_buffer->filename); in forget_info_file()
1095 free (file_buffer->fullpath); in forget_info_file()
1097 if (file_buffer->contents) in forget_info_file()
1098 free (file_buffer->contents); in forget_info_file()
1102 free_file_buffer_tags (file_buffer); in forget_info_file()
1118 free_file_buffer_tags (FILE_BUFFER *file_buffer) in free_file_buffer_tags() argument
1122 if (file_buffer->tags) in free_file_buffer_tags()
1126 for (i = 0; (tag = file_buffer->tags[i]); i++) in free_file_buffer_tags()
1129 free (file_buffer->tags); in free_file_buffer_tags()
1130 file_buffer->tags = NULL; in free_file_buffer_tags()
1131 file_buffer->tags_slots = 0; in free_file_buffer_tags()
1134 if (file_buffer->subfiles) in free_file_buffer_tags()
1136 for (i = 0; file_buffer->subfiles[i]; i++) in free_file_buffer_tags()
1137 free (file_buffer->subfiles[i]); in free_file_buffer_tags()
1139 free (file_buffer->subfiles); in free_file_buffer_tags()
1140 file_buffer->subfiles = NULL; in free_file_buffer_tags()