/usr/share/doc/libladr-dev/html/strbuf.html is in libladr-dev 0.0.200902a-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | <HTML>
<HEAD>
<TITLE>strbuf.h</TITLE>
</HEAD>
<BODY>
<H1>#include "strbuf.h"</H1>
This page has information from files
<A HREF="../strbuf.h">strbuf.h</A> and <A HREF="../strbuf.c">strbuf.c</A>.
<H2>Contents</H2>
<UL>
<LI><A HREF="#routines">Public Routines</A>
<LI><A HREF="#defns">Public Definitions</A>
<LI><A HREF="#intro">Introduction</A>
</UL>
<P>
<HR><A NAME=routines></A><H2>Public Routines in File strbuf.c</H2>
<H4>Index</H4>
<TABLE CELLPADDING=3>
<TR><TD><A HREF="#fprint_sb">fprint_sb</A></TD><TD><A HREF="#p_strbuf_mem">p_strbuf_mem</A></TD><TD><A HREF="#sb_cat_copy">sb_cat_copy</A></TD><TD><A HREF="#sb_to_malloc_string">sb_to_malloc_string</A></TD>
</TR>
<TR><TD><A HREF="#fprint_strbuf_mem">fprint_strbuf_mem</A></TD><TD><A HREF="#sb_append">sb_append</A></TD><TD><A HREF="#sb_char">sb_char</A></TD><TD><A HREF="#zap_string_buf">zap_string_buf</A></TD>
</TR>
<TR><TD><A HREF="#get_string_buf">get_string_buf</A></TD><TD><A HREF="#sb_append_char">sb_append_char</A></TD><TD><A HREF="#sb_replace_char">sb_replace_char</A></TD><TD></TD>
</TR>
<TR><TD><A HREF="#init_string_buf">init_string_buf</A></TD><TD><A HREF="#sb_append_int">sb_append_int</A></TD><TD><A HREF="#sb_size">sb_size</A></TD><TD></TD>
</TR>
<TR><TD><A HREF="#p_sb">p_sb</A></TD><TD><A HREF="#sb_cat">sb_cat</A></TD><TD><A HREF="#sb_to_malloc_char_array">sb_to_malloc_char_array</A></TD><TD></TD>
</TR>
</TABLE>
<H4>Details</H4>
<A NAME="fprint_sb"></A><HR><PRE><B>void fprint_sb(FILE *fp, <A HREF="strbuf.html">String_buf</A> sb);
</B></PRE>This routine prints <A HREF="strbuf.html">String_buf</A> sb to FILE *fp.
<A NAME="fprint_strbuf_mem"></A><HR><PRE><B>void fprint_strbuf_mem(FILE *fp, BOOL heading);
</B></PRE>This routine prints (to FILE *fp) memory usage statistics for data types
associated with the strbuf package.
The Boolean argument heading tells whether to print a heading on the table.
<A NAME="get_string_buf"></A><HR><PRE><B><A HREF="strbuf.html">String_buf</A> get_string_buf(void);
</B></PRE><A NAME="init_string_buf"></A><HR><PRE><B><A HREF="strbuf.html">String_buf</A> init_string_buf(char *s);
</B></PRE>This routine allocates and returns a <A HREF="strbuf.html">String_buf</A>, initialized
to string s. Don't forget to call <A HREF="#zap_string_buf">zap_string_buf</A>(sb) when
finished with it.
Also see <A HREF="#get_string_buf">get_string_buf</A>().
<A NAME="p_sb"></A><HR><PRE><B>void p_sb(<A HREF="strbuf.html">String_buf</A> sb);
</B></PRE>This routine prints <A HREF="strbuf.html">String_buf</A> sb, followed by '\n' and fflush, to stdout.
If you don't want the newline, use <A HREF="#fprint_sb">fprint_sb</A>() instead.
<A NAME="p_strbuf_mem"></A><HR><PRE><B>void p_strbuf_mem();
</B></PRE>This routine prints (to stdout) memory usage statistics for data types
associated with the strbuf package.
<A NAME="sb_append"></A><HR><PRE><B>void sb_append(<A HREF="strbuf.html">String_buf</A> sb, char *s);
</B></PRE>This routine appends string s to <A HREF="strbuf.html">String_buf</A> sb.
The NULL character that marks the end of s does not go into
the <A HREF="strbuf.html">String_buf</A>.
<A NAME="sb_append_char"></A><HR><PRE><B>void sb_append_char(<A HREF="strbuf.html">String_buf</A> sb, char c);
</B></PRE>This routine appends character c to <A HREF="strbuf.html">String_buf</A> sb.
<A NAME="sb_append_int"></A><HR><PRE><B>void sb_append_int(<A HREF="strbuf.html">String_buf</A> sb, int i);
</B></PRE>Convert an integer to a string and append the string to a <A HREF="strbuf.html">String_buf</A>.
<A NAME="sb_cat"></A><HR><PRE><B>void sb_cat(<A HREF="strbuf.html">String_buf</A> sb1, <A HREF="strbuf.html">String_buf</A> sb2);
</B></PRE>This routine appends a copy of sb2 to sb1, then deallocates sb2.
Do not refer to sb2 after calling this rouine because it won't exist.
You can use <A HREF="#sb_cat_copy">sb_cat_copy</A>() instead if you need to save sb2.
<A NAME="sb_cat_copy"></A><HR><PRE><B>void sb_cat_copy(<A HREF="strbuf.html">String_buf</A> sb1, <A HREF="strbuf.html">String_buf</A> sb2);
</B></PRE>This routine appends a copy of sb2 to sb1.
<A HREF="strbuf.html">String_buf</A> sb2 is not changed.
You can use <A HREF="#sb_cat">sb_cat</A>() instead if you won't be needing sb2.
<A NAME="sb_char"></A><HR><PRE><B>char sb_char(<A HREF="strbuf.html">String_buf</A> sb, int n);
</B></PRE>This routine returns the n-th character (counting from 0) of <A HREF="strbuf.html">String_buf</A> sb.
If index n is out of range, the NULL character '\0' is returned.
<A NAME="sb_replace_char"></A><HR><PRE><B>void sb_replace_char(<A HREF="strbuf.html">String_buf</A> sb, int i, char c);
</B></PRE>This routine replaces a character in a <A HREF="strbuf.html">String_buf</A>.
If the index i is out of range, nothing happens.
<A NAME="sb_size"></A><HR><PRE><B>int sb_size(<A HREF="strbuf.html">String_buf</A> sb);
</B></PRE><A NAME="sb_to_malloc_char_array"></A><HR><PRE><B>char *sb_to_malloc_char_array(<A HREF="strbuf.html">String_buf</A> sb);
</B></PRE>This routine is similar to <A HREF="#sb_to_malloc_string">sb_to_malloc_string</A>(), except that
null characters are copied to the new string.
<A NAME="sb_to_malloc_string"></A><HR><PRE><B>char *sb_to_malloc_string(<A HREF="strbuf.html">String_buf</A> sb);
</B></PRE>This routine returns a new, ordinary C string corresponding to the
<A HREF="strbuf.html">String_buf</A> argument sb. WARNING: the new string, say s, is
dynamically allocated (malloced), so don't forget to call
free(s) when you are finished with the string. (This routine
is not intended for printing String_bufs; use <A HREF="#fprint_sb">fprint_sb</A>() instead.)
<P>
String_bufs do not have a NULL character marking the end;
instead, they keep a count of the number of characters.
<p>
If the <A HREF="strbuf.html">String_buf</A> contains NULL characters, they do NOT mark the
end of the string. Instead, they are simply ignored when constructing
the ordinary string.
<A NAME="zap_string_buf"></A><HR><PRE><B>void zap_string_buf(<A HREF="strbuf.html">String_buf</A> sb);
</B></PRE>This routine deallocates a <A HREF="strbuf.html">String_buf</A> and frees all memory
associated with it.
<HR><A NAME=defns></A><H2>Public Definitions in File strbuf.h</H2>
<PRE>
typedef struct string_buf * <A HREF="strbuf.html">String_buf</A>;
</PRE><HR><A NAME=intro></A><H2>Introduction</H2>
A String_buf is a kind of string that can grow as big as you need.
This is implemented as a list of dynamically allocated character
arrays of fixed size.
The only problem with using String_bufs is that you have to remember
to free a String_buf when you are finished with it.
<P>
This is similar to the StringBuffer class in Java, and the
cstrings of our old theorem prover LMA/ITP. We didn't have anything
like this in Otter, but there were times when I wish we had,
so here it is.
<HR>
</BODY>
</HTML>
|