Crossfire Server, Trunk  R22047
stringbuffer.h File Reference
#include <ctype.h>
#include "global.h"
+ Include dependency graph for stringbuffer.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct StringBuffer StringBuffer
 

Functions

void stringbuffer_append_printf (StringBuffer *sb, const char *format,...)
 
void stringbuffer_append_string (StringBuffer *sb, const char *str)
 
void stringbuffer_append_stringbuffer (StringBuffer *sb, const StringBuffer *sb2)
 
void stringbuffer_delete (StringBuffer *sb)
 
char * stringbuffer_finish (StringBuffer *sb)
 
sstring stringbuffer_finish_shared (StringBuffer *sb)
 
size_t stringbuffer_length (StringBuffer *sb)
 
StringBufferstringbuffer_new (void)
 
void stringbuffer_trim_whitespace (StringBuffer *sb)
 

Detailed Description

Implements a general string buffer: it builds a string by concatenating. It allocates enough memory to hold the whole string; there is no upper limit for the total string length.

Usage is: StringBuffer *sb = stringbuffer_new(); stringbuffer_append_string(sb, "abc"); stringbuffer_append_string(sb, "def"); ... more calls to stringbuffer_append_xxx() char *str = stringbuffer_finish(sb) ... use str free(str);

No function ever fails. In case not enough memory is availabl, fatal() is called.

Definition in file stringbuffer.h.

Typedef Documentation

◆ StringBuffer

typedef struct StringBuffer StringBuffer

The string buffer state.

Definition at line 33 of file stringbuffer.h.

Function Documentation

◆ stringbuffer_append_printf()

◆ stringbuffer_append_string()

◆ stringbuffer_append_stringbuffer()

void stringbuffer_append_stringbuffer ( StringBuffer sb,
const StringBuffer sb2 
)

Append the contents of a string buffer instance to another string buffer instance.

Parameters
sbThe string buffer to modify.
sb2The string buffer to append; it must be different from sb.

Definition at line 131 of file stringbuffer.c.

References StringBuffer::buf, StringBuffer::pos, and stringbuffer_ensure().

Referenced by artifact_describe(), artifact_msg(), describe_god(), and mon_info_msg().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stringbuffer_delete()

void stringbuffer_delete ( StringBuffer sb)

Totally delete a string buffer.

Parameters
sbString to delete, pointer becomes invalid after the call.

Definition at line 71 of file stringbuffer.c.

References StringBuffer::buf.

Referenced by artifact_msg(), assets_pack(), cost_approx_str(), god_info_msg(), mon_info_msg(), and spellpath_msg().

+ Here is the caller graph for this function:

◆ stringbuffer_finish()

char* stringbuffer_finish ( StringBuffer sb)

Deallocate the string buffer instance and return the string.

The passed string buffer must not be accessed afterwards.

Parameters
sbThe string buffer to deallocate.
Returns
The result string; to free it, call free() on it.

Definition at line 76 of file stringbuffer.c.

References StringBuffer::buf, and StringBuffer::pos.

Referenced by add_one_item(), animate_object(), artifact_describe(), CREArtifactPanel::artifactChanged(), assets_pack(), cfapi_object_describe(), command_bowmode(), command_diff(), command_dump(), common_ob_describe(), cost_approx_str(), cost_string_from_value(), describe_god(), do_dump(), dump_abilities(), dump_all_archetypes(), dump_gods(), examine(), gate_type_process(), generate_random_map(), knowledge_do_display(), knowledge_item_can_be_used_alchemy(), knowledge_process_incremental(), knowledge_show(), knowledge_show_monster_detail(), load_quests_from_file(), QuestManager::loadQuestFile(), make_formula_book(), monster_npc_say(), object_dump_all(), object_free(), object_insert_in_map(), object_insert_in_ob(), object_remove(), perceive_self(), place_exits(), place_special_exit(), power_crystal_describe(), power_crystal_type_apply(), process_events(), query_base_name(), query_short_name(), Archetypes::recursive_update(), save_object(), CRERandomMapPanel::setItem(), CREArchetypePanel::setItem(), CREArtifactPanel::setItem(), SockList_AddStringBuffer(), spellbook_type_apply(), spellbook_type_describe(), START_TEST(), CREMapInformationManager::storeCache(), stringbuffer_finish_shared(), tailor_readable_ob(), and EditMonstersDialog::write().

◆ stringbuffer_finish_shared()

sstring stringbuffer_finish_shared ( StringBuffer sb)

Deallocate the string buffer instance and return the string as a shared string.

The passed string buffer must not be accessed afterwards.

Parameters
sbThe string buffer to deallocate.
Returns
The result shared string; to free it, call free_string() on it.

Definition at line 85 of file stringbuffer.c.

References add_string(), and stringbuffer_finish().

Referenced by knowledge_god_add(), make_formula_book(), mon_info_msg(), monster_do_talk_npc(), and object_set_msg().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stringbuffer_length()

size_t stringbuffer_length ( StringBuffer sb)

Return the current length of the buffer.

Parameters
sbThe string buffer to check.
Returns
current length of sb.

Definition at line 162 of file stringbuffer.c.

References StringBuffer::pos.

Referenced by artifact_describe(), artifact_msg(), assets_pack(), describe_god(), do_spellpath_msg(), god_info_msg(), mon_info_msg(), ring_desc(), and EditMonstersDialog::write().

+ Here is the caller graph for this function:

◆ stringbuffer_new()

◆ stringbuffer_trim_whitespace()

void stringbuffer_trim_whitespace ( StringBuffer sb)

Trim trailing whitespace from a stringbuffer.

Parameters
sbThe stringbuffer.

Definition at line 166 of file stringbuffer.c.

References StringBuffer::buf, and StringBuffer::pos.

Referenced by examine(), and spellbook_type_apply().

+ Here is the caller graph for this function: