/* udstr.h:
*
****************************************************************
* Copyright (C) 2004 Tom Lord
*
* See the file "COPYING" for further information about
* the copyright and warranty status of this work.
*/
#ifndef INCLUDE__STRINGS__UDSTR_H
#define INCLUDE__STRINGS__UDSTR_H
#include "hackerlab/strings/ustr.h"
struct udstr_handle;
typedef struct udstr_handle * t_udstr;
/* automatically generated __STDC__ prototypes */
extern t_udstr udstr_save (alloc_limits limits,
uni_string str,
enum uni_encoding_scheme enc);
extern t_udstr udstr_save_n (alloc_limits limits,
uni_string str,
enum uni_encoding_scheme enc,
ustr_cv_index_t len);
extern t_udstr udstr_save_fw (alloc_limits limits,
uni_string str,
enum uni_encoding_scheme enc);
extern t_udstr udstr_save_fw_n (alloc_limits limits,
uni_string str,
enum uni_encoding_scheme enc,
ustr_cv_index_t len);
extern t_udstr udstr_save_generic (alloc_limits limits,
enum uni_encoding_scheme dest_enc,
ustr_cv_index_t dest_len,
uni_string str,
enum uni_encoding_scheme enc,
ustr_cv_index_t len,
ustr_cp_index_t cp_len);
extern void udstr_ref (t_udstr d);
extern void udstr_unref (t_udstr d);
extern ustr_cv_index_t udstr_cv_length (t_udstr dstr);
extern ustr_cp_index_t udstr_cp_length (t_udstr dstr);
extern enum uni_encoding_scheme udstr_encoding (t_udstr dstr);
extern uni_string udstr_str (t_udstr dstr);
extern t_unicode udstr_cv_ref (ustr_cv_index_t * pos_after,
t_udstr dstr,
ustr_cv_index_t pos);
extern t_unicode udstr_cp_ref (ustr_cv_index_t * pos_after,
t_udstr dstr,
ustr_cp_index_t pos);
extern t_udstr udstr_cv_set (alloc_limits limits,
t_udstr s,
ustr_cv_index_t x,
t_unicode c);
extern t_udstr udstr_cv_set_fw (alloc_limits limits,
t_udstr s,
ustr_cv_index_t x,
t_unicode c);
extern t_udstr udstr_cp_set (alloc_limits limits,
t_udstr s,
ustr_cp_index_t x,
t_unicode c);
extern t_udstr udstr_cp_set_fw (alloc_limits limits,
t_udstr s,
ustr_cp_index_t x,
t_unicode c);
extern t_udstr udstr_fw_x (t_udstr d);
extern t_udstr udstr_copy (alloc_limits limits, t_udstr dstr);
extern t_udstr udstr_copy_fw (alloc_limits limits, t_udstr dstr);
extern t_udstr udstr_cv_substr (alloc_limits limits,
t_udstr dstr,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cv_substr_x (t_udstr dstr,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cv_substr_fw (alloc_limits limits,
t_udstr dstr,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cv_substr_fw_x (t_udstr dstr,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cp_substr (alloc_limits limits,
t_udstr dstr,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cp_substr_x (t_udstr dstr,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cp_substr_fw (alloc_limits limits,
t_udstr dstr,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cp_substr_fw_x (t_udstr dstr,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_append (alloc_limits limits,
t_udstr a_dstr,
t_udstr b_dstr);
extern t_udstr udstr_append_x (t_udstr a_dstr,
t_udstr b_dstr);
extern t_udstr udstr_append_fw (alloc_limits limits,
t_udstr a_dstr,
t_udstr b_dstr);
extern t_udstr udstr_append_fw_x (t_udstr a_dstr,
t_udstr b_dstr);
extern t_udstr udstr_cv_delete (alloc_limits limits,
t_udstr d,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cp_delete (alloc_limits limits,
t_udstr d,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cv_delete_x (t_udstr d,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cp_delete_x (t_udstr d,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cv_delete_fw (alloc_limits limits,
t_udstr d,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cp_delete_fw (alloc_limits limits,
t_udstr d,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cv_delete_fw_x (t_udstr d,
ustr_cv_index_t from,
ustr_cv_index_t to);
extern t_udstr udstr_cp_delete_fw_x (t_udstr d,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern t_udstr udstr_cv_replace (alloc_limits limits,
t_udstr into,
ustr_cv_index_t i_from,
ustr_cv_index_t i_to,
t_udstr from,
ustr_cv_index_t f_from,
ustr_cv_index_t f_to);
extern t_udstr udstr_cp_replace (alloc_limits limits,
t_udstr into,
ustr_cp_index_t i_from,
ustr_cp_index_t i_to,
t_udstr from,
ustr_cp_index_t f_from,
ustr_cp_index_t f_to);
extern t_udstr udstr_cv_replace_x (t_udstr into,
ustr_cv_index_t i_from,
ustr_cv_index_t i_to,
t_udstr from,
ustr_cv_index_t f_from,
ustr_cv_index_t f_to);
extern t_udstr udstr_cp_replace_x (t_udstr into,
ustr_cp_index_t i_from,
ustr_cp_index_t i_to,
t_udstr from,
ustr_cp_index_t f_from,
ustr_cp_index_t f_to);
extern t_udstr udstr_cv_replace_fw (alloc_limits limits,
t_udstr into,
ustr_cv_index_t i_from,
ustr_cv_index_t i_to,
t_udstr from,
ustr_cv_index_t f_from,
ustr_cv_index_t f_to);
extern t_udstr udstr_cp_replace_fw (alloc_limits limits,
t_udstr into,
ustr_cp_index_t i_from,
ustr_cp_index_t i_to,
t_udstr from,
ustr_cp_index_t f_from,
ustr_cp_index_t f_to);
extern t_udstr udstr_cv_replace_fw_x (t_udstr into,
ustr_cv_index_t i_from,
ustr_cv_index_t i_to,
t_udstr from,
ustr_cv_index_t f_from,
ustr_cv_index_t f_to);
extern t_udstr udstr_cp_replace_fw_x (t_udstr into,
ustr_cp_index_t i_from,
ustr_cp_index_t i_to,
t_udstr from,
ustr_cp_index_t f_from,
ustr_cp_index_t f_to);
extern ustr_cv_index_t udstr_cv_normalize (t_udstr dstr,
ustr_cv_index_t orig_index);
extern ustr_cv_index_t udstr_cv_inc (t_udstr dstr,
ustr_cv_index_t orig_index);
extern ustr_cv_index_t udstr_cv_dec (t_udstr dstr,
ustr_cv_index_t orig_index);
extern ustr_cv_index_t udstr_cp_to_cv (t_udstr dstr,
ustr_cp_index_t cpi);
extern void udstr_cp_to_cv_range (ustr_cv_index_t * from_v,
ustr_cv_index_t * to_v,
t_udstr d,
ustr_cp_index_t from,
ustr_cp_index_t to);
extern ustr_cp_index_t udstr_cv_to_cp (t_udstr dstr,
ustr_cv_index_t cvi);
#endif /* INCLUDE__STRINGS__UDSTR_H */
/* tag: Tom Lord Fri Jan 2 08:46:35 2004 (udstr.h)
*/
syntax highlighted by Code2HTML, v. 0.9.1