26#include "gdbsupport/buildargv.h"
34 char *s = scm_to_latin1_string (
string);
47 return scm_from_latin1_string (
string);
54gdb::unique_xmalloc_ptr<char>
57 return gdb::unique_xmalloc_ptr<char> (scm_to_latin1_string (
string));
68 va_start (args, format);
69 std::string
string = string_vprintf (format, args);
71 result = scm_from_latin1_string (
string.c_str ());
96 data->result = scm_to_stringn (data->string, data->lenp, data->charset,
97 data->conversion_kind);
116gdb::unique_xmalloc_ptr<char>
118 const char *
charset,
int strict, SCM *except_scmp)
126 data.conversion_kind = (strict
127 ? SCM_FAILED_CONVERSION_ERROR
128 : SCM_FAILED_CONVERSION_ESCAPE_SEQUENCE);
135 gdb_assert (data.result != NULL);
136 return gdb::unique_xmalloc_ptr<char> (data.result);
139 *except_scmp = scm_result;
163 data->result = scm_from_stringn (data->string, data->len, data->charset,
164 data->conversion_kind);
178 const char *
charset,
int strict)
187 data.conversion_kind = (strict
188 ? SCM_FAILED_CONVERSION_ERROR
189 : SCM_FAILED_CONVERSION_QUESTION_MARK);
190 data.result = SCM_UNDEFINED;
196 gdb_assert (!SCM_UNBNDP (data.result));
216gdb::unique_xmalloc_ptr<char>
243 string_scm, &
string);
245 if (
string == NULL || *
string ==
'\0')
251 gdb_argv c_argv (
string);
252 for (
char *arg : c_argv)
257 return scm_reverse_x (
result, SCM_EOL);
266Convert a string to a list of strings split up according to\n\
267gdb's argv parsing rules." },
const char * host_charset(void)
void gdbscm_parse_function_args(const char *function_name, int beginning_arg_pos, const SCM *keywords, const char *format,...)
SCM gdbscm_call_guile(SCM(*func)(void *), void *data, excp_matcher_func *ok_excps)
#define gdbscm_is_false(scm)
int gdbscm_is_exception(SCM scm)
void gdbscm_define_functions(const scheme_function *, int is_public)
static scm_t_subr as_a_scm_t_subr(SCM(*func)(void))
int gdbscm_scm_string_to_int(SCM string)
void gdbscm_initialize_strings(void)
static SCM gdbscm_call_scm_from_stringn(void *datap)
static SCM gdbscm_string_to_argv(SCM string_scm)
static const scheme_function string_functions[]
gdb::unique_xmalloc_ptr< char > gdbscm_scm_to_host_string(SCM string, size_t *lenp, SCM *except_scmp)
SCM gdbscm_scm_from_string(const char *string, size_t len, const char *charset, int strict)
gdb::unique_xmalloc_ptr< char > gdbscm_scm_to_c_string(SCM string)
SCM gdbscm_scm_from_printf(const char *format,...)
static SCM gdbscm_call_scm_to_stringn(void *datap)
SCM gdbscm_scm_from_host_string(const char *string, size_t len)
gdb::unique_xmalloc_ptr< char > gdbscm_scm_to_string(SCM string, size_t *lenp, const char *charset, int strict, SCM *except_scmp)
SCM gdbscm_scm_from_c_string(const char *string)
scm_t_string_failed_conversion_handler conversion_kind
scm_t_string_failed_conversion_handler conversion_kind