27 #include "dbus-internals.h" 
   28 #include "dbus-list.h" 
   29 #include "dbus-memory.h" 
   30 #include "dbus-protocol.h" 
   31 #include "dbus-shell.h" 
   32 #include "dbus-string.h" 
   43 unquote_string_inplace (
char* str, 
char** end)
 
   53   if (!(*s == 
'"' || *s == 
'\''))
 
   62   if (quote_char == 
'"')
 
  169 _dbus_shell_unquote (
const char *quoted_string)
 
  178   if (unquoted == 
NULL)
 
  197       while (*start && !(*start == 
'"' || *start == 
'\''))
 
  227           if (!unquote_string_inplace (start, &end))
 
  332       _DBUS_SET_OOM (error);
 
  339       _DBUS_SET_OOM (error);
 
  347 tokenize_command_line (
const char *command_line, 
DBusError *error)
 
  355   current_quote = 
'\0';
 
  361       _DBUS_SET_OOM (error);
 
  367       if (current_quote == 
'\\')
 
  378                   _DBUS_SET_OOM (error);
 
  383           current_quote = 
'\0';
 
  385       else if (current_quote == 
'#')
 
  388           while (*p && *p != 
'\n')
 
  391           current_quote = 
'\0';
 
  396       else if (current_quote)
 
  398           if (*p == current_quote &&
 
  400               !(current_quote == 
'"' && quoted))
 
  403               current_quote = 
'\0';
 
  412               _DBUS_SET_OOM (error);
 
  421               if (!delimit_token (¤t_token, &retval, error))
 
  428                   _DBUS_SET_OOM (error);
 
  440               if (_dbus_string_get_length (¤t_token) > 0)
 
  442                   if (!delimit_token (¤t_token, &retval, error))
 
  449                       _DBUS_SET_OOM (error);
 
  468                   _DBUS_SET_OOM (error);
 
  485                   _DBUS_SET_OOM (error);
 
  503   if (!delimit_token (¤t_token, &retval, error))
 
  553 _dbus_shell_parse_argv (
const char *command_line,
 
  567       _dbus_verbose (
"Command line is NULL\n");
 
  571   tokens = tokenize_command_line (command_line, error);
 
  574       _dbus_verbose (
"No tokens for command line '%s'\n", command_line);
 
  596       _DBUS_SET_OOM (error);
 
  604       argv[i] = _dbus_shell_unquote (tmp_list->
data);
 
  609           for (j = 0; j < i; j++)
 
  613           _DBUS_SET_OOM (error);
 
  
void _dbus_string_free(DBusString *str)
Frees a string created by _dbus_string_init().
void _dbus_list_clear(DBusList **list)
Frees all links in the list and sets the list head to NULL.
void dbus_set_error_const(DBusError *error, const char *name, const char *message)
Assigns an error name and message to a DBusError.
dbus_bool_t _dbus_string_append_byte(DBusString *str, unsigned char byte)
Appends a single byte to the string, returning FALSE if not enough memory.
dbus_bool_t _dbus_string_init(DBusString *str)
Initializes a string.
dbus_bool_t _dbus_list_append(DBusList **list, void *data)
Appends a value to the list.
void dbus_free(void *memory)
Frees a block of memory previously allocated by dbus_malloc() or dbus_malloc0().
#define _dbus_list_get_next_link(list, link)
void * data
Data stored at this element.
#define DBUS_ERROR_INVALID_ARGS
Invalid arguments passed to a method call.
void _dbus_list_foreach(DBusList **list, DBusForeachFunction function, void *data)
Calls the given function for each element in the list.
#define dbus_new(type, count)
#define _dbus_assert(condition)
char * _dbus_strdup(const char *str)
Duplicates a string.
int _dbus_list_get_length(DBusList **list)
Gets the length of a list.
Object representing an exception.
void(* DBusForeachFunction)(void *element, void *data)
void dbus_free_string_array(char **str_array)
Frees a NULL-terminated array of strings.
dbus_bool_t _dbus_string_append(DBusString *str, const char *buffer)
Appends a nul-terminated C-style string to a DBusString.
dbus_uint32_t dbus_bool_t