53
55
INFO_PARSED_FILENAME to NULL. If second argument NEWLINES_OKAY is
54
56
non-zero, it says to allow the nodename specification to cross a
55
57
newline boundary (i.e., only `,', `.', or `TAB' can end the spec). */
56
void info_parse_node ();
58
void info_parse_node (char *string, int newlines_okay);
58
60
/* Return a NULL terminated array of REFERENCE * which represents the menu
59
61
found in NODE. If there is no menu in NODE, just return a NULL pointer. */
60
extern REFERENCE **info_menu_of_node ();
62
extern REFERENCE **info_menu_of_node (NODE *node);
62
64
/* Return a NULL terminated array of REFERENCE * which represents the cross
63
65
refrences found in NODE. If there are no cross references in NODE, just
64
66
return a NULL pointer. */
65
extern REFERENCE **info_xrefs_of_node ();
67
extern REFERENCE **info_xrefs_of_node (NODE *node);
67
69
/* Glean cross references from BINDING->buffer + BINDING->start until
68
70
BINDING->end. Return an array of REFERENCE * that represents each
69
71
cross reference in this range. */
70
extern REFERENCE **info_xrefs ();
72
extern REFERENCE **info_xrefs (SEARCH_BINDING *binding);
72
74
/* Get the entry associated with LABEL in REFERENCES. Return a pointer to
73
75
the reference if found, or NULL. */
74
extern REFERENCE *info_get_labeled_reference ();
76
extern REFERENCE *info_get_labeled_reference (char *label,
77
REFERENCE **references);
76
79
/* Glean menu entries from BINDING->buffer + BINDING->start until we
77
80
have looked at the entire contents of BINDING. Return an array
78
81
of REFERENCE * that represents each menu item in this range. */
79
extern REFERENCE **info_menu_items ();
82
extern REFERENCE **info_menu_items (SEARCH_BINDING *binding);
81
84
/* A utility function for concatenating REFERENCE **. Returns a new
82
85
REFERENCE ** which is the concatenation of REF1 and REF2. The REF1
83
86
and REF2 arrays are freed, but their contents are not. */
84
REFERENCE **info_concatenate_references ();
87
REFERENCE **info_concatenate_references (REFERENCE **ref1, REFERENCE **ref2);
89
/* Copy an existing reference into new memory. */
90
extern REFERENCE *info_copy_reference (REFERENCE *src);
86
92
/* Free the data associated with REFERENCES. */
87
extern void info_free_references ();
93
extern void info_free_references (REFERENCE **references);
89
95
/* Search for sequences of whitespace or newlines in STRING, replacing
90
96
all such sequences with just a single space. Remove whitespace from
91
97
start and end of string. */
92
void canonicalize_whitespace ();
98
void canonicalize_whitespace (char *string);
94
100
/* Return a pointer to a string which is the printed representation
95
101
of CHARACTER if it were printed at HPOS. */
96
extern char *printed_representation ();
102
extern char *printed_representation (unsigned char character, int hpos);
98
104
/* Return a pointer to the part of PATHNAME that simply defines the file. */
99
extern char *filename_non_directory ();
105
extern char *filename_non_directory (char *pathname);
101
107
/* Return non-zero if NODE is one especially created by Info. */
102
extern int internal_info_node_p ();
108
extern int internal_info_node_p (NODE *node);
104
110
/* Make NODE appear to be one especially created by Info, and give it NAME. */
105
extern void name_internal_node ();
111
extern void name_internal_node (NODE *node, char *name);
107
113
/* Return the window displaying NAME, the name of an internally created
109
extern WINDOW *get_internal_info_window ();
115
extern WINDOW *get_internal_info_window (char *name);
111
117
/* Return a window displaying the node NODE. */
112
extern WINDOW *get_window_of_node ();
118
extern WINDOW *get_window_of_node (NODE *node);
114
120
/* Return the node addressed by LABEL in NODE (usually one of "Prev:",
115
121
"Next:", "Up:", "File:", or "Node:". After a call to this function,
116
122
the globals `info_parsed_nodename' and `info_parsed_filename' contain
117
123
the information. */
118
extern void info_parse_label (/* label, node */);
124
extern void info_parse_label (char *label, NODE *node);
120
126
#define info_file_label_of_node(n) info_parse_label (INFO_FILE_LABEL, n)
121
127
#define info_next_label_of_node(n) info_parse_label (INFO_NEXT_LABEL, n)