diff options
Diffstat (limited to 'dbus/dbus-string.c')
| -rw-r--r-- | dbus/dbus-string.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index 2061e8be..7381dab2 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -757,6 +757,30 @@ _dbus_string_copy_data_len (const DBusString  *str,  }  /** + * Copies the contents of a DBusString into a different + * buffer. The resulting buffer will be nul-terminated. + *  + * @param str a string + * @param buffer a C buffer to copy data to + * @param len maximum length of C buffer + */ +void +_dbus_string_copy_to_buffer (const DBusString  *str, +			     char              *buffer, +			     int                avail_len) +{ +  int copy_len; +  DBUS_CONST_STRING_PREAMBLE (str); + +  _dbus_assert (avail_len >= 0); + +  copy_len = MIN (avail_len, real->len+1); +  memcpy (buffer, real->str, copy_len); +  if (avail_len > 0 && avail_len == copy_len) +    buffer[avail_len-1] = '\0'; +} + +/**   * Gets the length of a string (not including nul termination).   *   * @returns the length.  | 
