Function

GLibset_str

since: 2.76

Declaration [src]

static inline gboolean
g_set_str (
  char** str_pointer,
  const char* new_str
)

Description [src]

Updates a pointer to a string to a copy of new_str and returns whether the string was changed.

If new_str matches the previous string, this function is a no-op. If new_str is different, a copy of it will be assigned to str_pointer and the previous string pointed to by str_pointer will be freed with g_free().

str_pointer must not be NULL, but can point to a NULL value.

One convenient usage of this function is in implementing property settings:

void
foo_set_bar (Foo        *foo,
             const char *new_bar)
{
  g_return_if_fail (IS_FOO (foo));

  if (g_set_str (&foo->bar, new_bar))
    g_object_notify (foo, "bar");
}

Available since: 2.76

This function is not directly available to language bindings.

Parameters

str_pointer

Type: char**

A pointer to either a string or NULL.

The argument will be modified by the function.
The caller of the function takes ownership of the returned data, and is responsible for freeing it.
The value is a NUL terminated UTF-8 string.
new_str

Type: const char*

A string to assign to str_pointer.

The argument can be NULL.
The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.

Return value

Type: gboolean

True if the value of str_pointer changed, false otherwise.