+/**
+ * gtk_target_entry_new:
+ * @target: String identifier for target
+ * @flags: Set of flags, see #GtkTargetFlags
+ * @info: an ID that will be passed back to the application
+ *
+ * Makes a new #GtkTargetEntry structure.
+ *
+ * Return value: a pointer to a new GtkTargetEntry structure.
+ * Free with gtk_target_entry_free()
+ **/
+GtkTargetEntry *
+gtk_target_entry_new (const char *target,
+ guint flags,
+ guint info)
+{
+ GtkTargetEntry entry = { (char *) target, flags, info };
+ return gtk_target_entry_copy (&entry);
+}
+
+/**
+ * gtk_target_entry_copy:
+ * @data: a pointer to a #GtkTargetEntry structure.
+ *
+ * Makes a copy of a #GtkTargetEntry structure and its data.
+ *
+ * Return value: a pointer to a copy of @data.
+ * Free with gtk_target_entry_free()
+ **/
+GtkTargetEntry *
+gtk_target_entry_copy (GtkTargetEntry *data)
+{
+ GtkTargetEntry *new_data;
+
+ g_return_val_if_fail (data != NULL, NULL);
+
+ new_data = g_slice_new (GtkTargetEntry);
+ new_data->target = g_strdup (data->target);
+ new_data->flags = data->flags;
+ new_data->info = data->info;
+
+ return new_data;
+}
+
+/**
+ * gtk_target_entry_free:
+ * @data: a pointer to a #GtkTargetEntry structure.
+ *
+ * Frees a #GtkTargetEntry structure returned from
+ * gtk_target_entry_new() or gtk_target_entry_copy().
+ **/
+void
+gtk_target_entry_free (GtkTargetEntry *data)
+{
+ g_return_if_fail (data != NULL);
+
+ g_free (data->target);
+
+ g_slice_free (GtkTargetEntry, data);
+}
+
+