summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/texinfo/info/info-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/texinfo/info/info-utils.h')
-rw-r--r--gnu/usr.bin/texinfo/info/info-utils.h42
1 files changed, 24 insertions, 18 deletions
diff --git a/gnu/usr.bin/texinfo/info/info-utils.h b/gnu/usr.bin/texinfo/info/info-utils.h
index c259da8f2be..8e20a3adcf0 100644
--- a/gnu/usr.bin/texinfo/info/info-utils.h
+++ b/gnu/usr.bin/texinfo/info/info-utils.h
@@ -1,7 +1,8 @@
/* info-utils.h -- Exported functions and variables from info-utils.c.
- $Id: info-utils.h,v 1.3 2000/02/09 02:18:39 espie Exp $
+ $Id: info-utils.h,v 1.4 2006/07/17 16:12:36 espie Exp $
- Copyright (C) 1993, 96, 98 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1996, 1998, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -34,6 +35,7 @@ typedef struct {
char *filename; /* File where this node can be found. */
char *nodename; /* Name of the node. */
int start, end; /* Offsets within the containing node of LABEL. */
+ int line_number; /* Specific line number a menu item points to. */
} REFERENCE;
/* When non-zero, various display and input functions handle ISO Latin
@@ -53,69 +55,73 @@ extern char *info_parsed_nodename;
INFO_PARSED_FILENAME to NULL. If second argument NEWLINES_OKAY is
non-zero, it says to allow the nodename specification to cross a
newline boundary (i.e., only `,', `.', or `TAB' can end the spec). */
-void info_parse_node ();
+void info_parse_node (char *string, int newlines_okay);
/* Return a NULL terminated array of REFERENCE * which represents the menu
found in NODE. If there is no menu in NODE, just return a NULL pointer. */
-extern REFERENCE **info_menu_of_node ();
+extern REFERENCE **info_menu_of_node (NODE *node);
/* Return a NULL terminated array of REFERENCE * which represents the cross
refrences found in NODE. If there are no cross references in NODE, just
return a NULL pointer. */
-extern REFERENCE **info_xrefs_of_node ();
+extern REFERENCE **info_xrefs_of_node (NODE *node);
/* Glean cross references from BINDING->buffer + BINDING->start until
BINDING->end. Return an array of REFERENCE * that represents each
cross reference in this range. */
-extern REFERENCE **info_xrefs ();
+extern REFERENCE **info_xrefs (SEARCH_BINDING *binding);
/* Get the entry associated with LABEL in REFERENCES. Return a pointer to
the reference if found, or NULL. */
-extern REFERENCE *info_get_labeled_reference ();
+extern REFERENCE *info_get_labeled_reference (char *label,
+ REFERENCE **references);
/* Glean menu entries from BINDING->buffer + BINDING->start until we
have looked at the entire contents of BINDING. Return an array
of REFERENCE * that represents each menu item in this range. */
-extern REFERENCE **info_menu_items ();
+extern REFERENCE **info_menu_items (SEARCH_BINDING *binding);
/* A utility function for concatenating REFERENCE **. Returns a new
REFERENCE ** which is the concatenation of REF1 and REF2. The REF1
and REF2 arrays are freed, but their contents are not. */
-REFERENCE **info_concatenate_references ();
+REFERENCE **info_concatenate_references (REFERENCE **ref1, REFERENCE **ref2);
+
+/* Copy an existing reference into new memory. */
+extern REFERENCE *info_copy_reference (REFERENCE *src);
/* Free the data associated with REFERENCES. */
-extern void info_free_references ();
+extern void info_free_references (REFERENCE **references);
/* Search for sequences of whitespace or newlines in STRING, replacing
all such sequences with just a single space. Remove whitespace from
start and end of string. */
-void canonicalize_whitespace ();
+void canonicalize_whitespace (char *string);
/* Return a pointer to a string which is the printed representation
of CHARACTER if it were printed at HPOS. */
-extern char *printed_representation ();
+extern char *printed_representation (unsigned char character, int hpos);
/* Return a pointer to the part of PATHNAME that simply defines the file. */
-extern char *filename_non_directory ();
+extern char *filename_non_directory (char *pathname);
/* Return non-zero if NODE is one especially created by Info. */
-extern int internal_info_node_p ();
+extern int internal_info_node_p (NODE *node);
/* Make NODE appear to be one especially created by Info, and give it NAME. */
-extern void name_internal_node ();
+extern void name_internal_node (NODE *node, char *name);
/* Return the window displaying NAME, the name of an internally created
Info window. */
-extern WINDOW *get_internal_info_window ();
+extern WINDOW *get_internal_info_window (char *name);
/* Return a window displaying the node NODE. */
-extern WINDOW *get_window_of_node ();
+extern WINDOW *get_window_of_node (NODE *node);
/* Return the node addressed by LABEL in NODE (usually one of "Prev:",
"Next:", "Up:", "File:", or "Node:". After a call to this function,
the globals `info_parsed_nodename' and `info_parsed_filename' contain
the information. */
-extern void info_parse_label (/* label, node */);
+extern void info_parse_label (char *label, NODE *node);
#define info_file_label_of_node(n) info_parse_label (INFO_FILE_LABEL, n)
#define info_next_label_of_node(n) info_parse_label (INFO_NEXT_LABEL, n)